Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

mmvu_lab_mag

.pdf
Скачиваний:
33
Добавлен:
24.03.2016
Размер:
1.43 Mб
Скачать

 

 

 

 

21

 

 

 

 

Таблица 1.4

 

 

 

 

 

 

Пред-

Длитель-

 

Работа

шест-

ность

Ресурсы

п/ п

вующие

работ,

 

 

 

 

работы

дни

 

1

Определение целей

 

1

Менеджер

продаж

 

 

 

 

 

 

Определение задач

 

 

 

2

выпуска (сроки выпуска

1

2

Менеджер

и цели рекламной кам-

 

 

 

 

 

пании)

 

 

 

 

 

 

 

 

3

Утверждение бюджета

1

4

Менеджер

выпуска

 

 

 

 

4

Создание опытных об-

3, 2

7

Специалист произ-

разцов продукта

водственного от-

 

 

 

 

дела

5

Создание торговых пре-

3

5

Специалист отдела

зентаций

маркетинга

 

 

 

6

Создание каналов про-

4

3

Специалист отдела

даж

маркетинга

 

 

 

7

Сертификация продукта

4

10

Менеджер

8

Наем и обучение торго-

3

4

Менеджер

вого персонала

 

 

 

 

 

Производство заплани-

 

 

Специалист произ-

9

рованного объема про-

 

 

8, 7, 6, 5

6

водственного от-

дукта в соответствии с

 

 

 

дела

 

целями продаж

 

 

 

 

 

 

 

 

 

 

Таблица 1.5

 

 

 

 

 

Ресурсы

Тип

Максимум

Календарь

доступности,

 

 

 

%

 

1

Специалист

Трудовой

100

Стандартный

 

производственного

 

отдела

 

 

 

2

Специалист отдела

Трудовой

100

Стандартный

 

маркетинга

 

 

 

 

3

Специалист отдела

Трудовой

100

Стандартный

 

продаж

 

 

 

 

4

Менеджер

Трудовой

100

Стандартный

22

Ответ.

1. Сетевой график проекта.

2.Критические работы: 1, 3, 4, 7, 9.

3.Дата окончания проекта: 09.06.10. Длительность проекта – 28 дней.

4.Объем работы ресурса «Специалист отдела маркетинга» – 64 часа.

5.Работы, запланированные на 10.05.10:

1)создание опытных образцов продукта;

2)создание торговых презентаций;

3)наем и обучение торгового персонала.

2.Имитационное моделирование.

Применение системы компьютерного моделирования GPSS World

В данном разделе рассматривается создание моделей систем массового обслуживания (СМО) в системе моделирования GPSS World. Система представляет собой среду программирования, состо# ящую из языка GPSS и транслятора.

Модели в GPSS World записываются в виде блоков, каждый из которых предназначен для выполнения своей функции и имеет раз# личные свойства. В программе свойства блоков называют систем! ными числовыми атрибутами (СЧА), они могут быть использованы

23

вдальнейшем для формирования результатов моделирования. Блоки в программе записываются последовательно в соответствии с алгоритмом модели. Заявки или требования в программе пред# ставлены в виде транзактов, которые формируются в начале моде# ли, проходят последовательно через блоки программы и фиксиру# ются на выходе из нее.

Каждый шаг модели фиксируется с помощью модального време! ни. Моделирование может прекращаться по выходу всех сформиро# ванных транзактов или по прошествии какого#либо заранее уста# новленного времени. Возможность окончания моделирования без условия выхода всех транзактов позволяет моделировать системы,

вкоторых не выполняется баланс потоков.

Блоки условных и безусловных переходов позволяют состав# лять замкнутые и многоканальные модели, причем количество кана# лов и этапов выполнения заявок теоретически не ограничено. Таким образом, с помощью GPSS World можно составлять из бло# ков (которых около 30) достаточно сложные модели и проводить анализ результатов.

Для начала рассмотрим основные блоки, которые необходимы для моделирования любой системы.

Первый блок GENERATE формирует транзакты (заявки, тре# бования) в системе. Этот блок располагается в начале модели и выда# ет в модель транзакты в соответствии с заданными в блоке свойст# вами. Формат записи блока в программе следующий:

GENERATE A, B, C, D, E,

то есть блок содержит пять операндов (свойств), которые разделя# ются запятой.

Операнд А в виде числа или ссылки на функцию задает среднее значение интервала поступления транзактов в модель.

Операнд В задает интервал отклонения от среднего значения целым положительным числом. Например, блок GENERATE 50, 20 генерирует транзакты через интервалы времени от 30 (50 – 20) до 70 (50 + 20) единиц модального времени по равномерному закону распределения. Соответственно, для детерминированного процесса второй операнд не используется (например, GENERATE 50 генери# рует транзакты строго через 50 единиц модального времени). Для

24

моделирования интервалов поступления заявок по экспоненциаль# ному закону с помощью встроенной функции второй операнд также не используется (например, GENERATE (exponential (1, 0, 20)), где exponential (1, 0, 20) – встроенная функция экспоненциального за# кона распределения).

Операнд С задает момент поступления в модель первого тран# закта. Если он не задан, то момент поступления первого транзакта определяется операндами А и В. Например, при задании блока GENERATE 50, 200 первый транзакт будет сгенерирован через 200 единиц модального времени, остальные будут приходить через 50 единиц.

Операнд D ограничивает количество сгенерированных транзак# тов, то есть им можно задавать максимальное количество заявок

вмодели и этим ограничивать время моделирования. Если этот операнд не задан, то время моделирования необходимо ограничи# вать другими способами, иначе оно будет бесконечно.

Операнд Е задает уровень приоритета сгенерированным тран# зактам. Если он не задан, то назначается нулевой приоритет.

Следует обратить внимание, что транзакты выходят из блока GENERATE в том случае, если ничто не мешает зайти им в следую# щий блок. Таким образом, при проектировании модели нужно пре# дусмотреть какой#то накопитель после блока GENERATE, если далее возможна задержка заявок, например их обработка. Если не заданы операнды А и В, то транзакты формируются в нулевой мо# мент времени (например, при GENERATE ,,,15 при запуске модели

внее войдут сразу 15 транзактов).

Для удаления транзактов из модели используется блок TERMINATE. Этим блоком обычно завершается модель. Его фор# мат:

TERMINATE А.

Операнд А – это целое число, вычитаемое из счетчика заверше# ния моделирования, который задается оператором START в модели или при запуске модели в программной среде. Блок TERMINATE считывает количество уничтоженных транзактов. Моделирование прекращается, если значение счетчика завершения становится меньше или равно нулю. Если операнд А не задан, то блок

25

TERMINATE не ведет счет уничтоженных транзактов. Чтобы мо# делирование не было бесконечным, в модели должен быть хотя бы один блок TERMINATE с ненулевым операндом А.

На данном этапе можно уже построить простейшую модель по генерированию заявок и их уничтожению. Например:

GENERATE 60, 10

TERMINATE 2

START 40

В этой модели счетчик завершения равен 40 (START 40). Вычи# таемое число из счетчика завершения равно 2 (TERMINATE 2), то есть при каждом приходе транзакта в блок TERMINATE счетчик завершения будет уменьшаться на 2. Итого моделирование завер# шится через 40/2 = 20 уничтоженных в блоке TERMINATE тран# зактов.

Транзакты в данной модели будут поступать через интервалы времени от 50 до 70 (блок GENERATE 60, 10).

Из данного примера видно, что в этой модели можно точно по# считать количество пройденных через модель транзактов, но нельзя предсказать время завершения моделирования. Если важно заранее указать время моделирования, то необходимо ввести в модель еще один сегмент, например:

GENERATE 60, 10

TERMINATE

GENERATE 1000

TERMINATE 1

START 1

В этой модели блок TERMINATE в первой части модели не учи# тывает уничтоженные транзакты (операнд А равен нулю), а во вто# рой части модели генерируется один транзакт через 1000 единиц модального времени. Поскольку счетчик завершения равен единице (START 1) и операнд А в блоке TERMINATE равен единице, то моделирование завершится после уничтожения этого транзакта, то есть через 1000 единиц модального времени. Таким образом, можно

26

заранее установить время моделирования, но нельзя рассчитать количество пройденных транзактов через первую часть модели.

Блок ADVANCE предназначен для задержки транзактов и моде# лирования обработки заявок в системе. Его формат:

ADVANCE А, В

Операнды А и В имеют тот же смысл, что и в блоке GENERATE, то есть устанавливают время задержки транзактов по определенно# му закону. В этом блоке может находиться любое количество тран# зактов, что имеет значение при моделировании многоканальной СМО. Причем закон поступления транзактов и задержки может различаться, например:

GENERATE 60, 10

ADVANCE (exponential(1,0,50))

TERMINATE

GENERATE 1000

TERMINATE 1

START 1

В приведенной модели закон поступления заявок является рав# номерным с отклонением 10, а закон обработки заявок – экспонен# циальным со средним временем обслуживания 50.

Для моделирования различных законов распределения интер# валов поступления заявок в модель в блоке GENERATE и времени задержки (обработки) заявки в блоке ADVANCE, отличного от рав# номерного распределения, в GPSS World предусмотрены различные встроенные функции. Рассмотрим некоторые из них.

Если моделируемый процесс без последствий (марковский про# цесс), то поток заявок описывается распределением Пуассона. Тог# да интервал поступления и обработки заявок будет подчиняться экспоненциальному закону распределения. В этом случае можно воспользоваться встроенной функцией EXPONENTIAL(S, λ, â), где параметр S определяет номер генератора случайных чисел и явля# ется целым числом, а λ и â– параметры функции распределения.

27

Функция определяется по формуле:

 

1

 

(x )

f (x)

e

 

.

 

 

 

 

 

Например, если необходимо задать интервал поступления зая# вок с интенсивностью λ = 5 заявок в час (â= 1/5 = 0,2), то блок гене# рации транзактов записывается следующим образом:

GENERATE (exponential(1, 0, 0.2)).

Обратите внимание, что в GPSS World разделение дробных и целых разрядов числа осуществляется точкой, а не запятой.

Номер генератора случайных чисел может назначаться в виде любого целого числа (в данном примере это число 1). При исполь# зовании одного и того же генератора случайных чисел (с одинако# вым номером) будут выдаваться одни и те же случайные числа при нескольких «прогонах» модели. При необходимости получения дру# гих данных следует сменить номер генератора в модели или на# стройках программы.

Для получения нормального распределения используется функ# ция NORMAL(S,m,σ), где параметр S задает номер генератора слу# чайных чисел, m – среднее значение распределения, а σ – стандар# тное (среднеквадратическое) отклонение.

Функция плотности распределения имеет вид:

(x m)2

f (x) e 2 2 .

2 2

Остальные встроенные функции распределения можно посмот# реть в справочной информации по программе.

Для моделирования одноканальных СМО в модели необходимо указать какие#либо устройства, производящие обработку заявок и собирающие статистическую информацию по обработке заявок. Такие устройства моделируются блоками SEIZE и RELEASE, име# ющими следующий формат:

SEIZE A

RELEASE A

28

Единственный обязательный операнд А задает номер или имя устройства. Для обоих блоков значение операнда А должно совпа# дать. Блок SEIZE фиксирует вход транзакта и блокирует вход дру# гих транзактов. Блок RELEASE фиксирует выход транзакта и раз# блокирует вход в прибор. Естественно, между этими блоками логич# но вставить блок ADVANCE, имитирующий обработку заявки. Пар блоков SEIZE и RELEASE в модели может быть бесконечно много, что необходимо для моделирования многофазных СМО.

Для имитации и сбора статистической информации об очередях в GPSS World предусмотрены блоки QUEUE и DEPART, имеющие следующий формат:

QUEUE A, B

DEPART A, B

Обязательный в обоих блоках операнд A задает номер или имя очереди, а операнд B – число единиц, на которое текущая очередь увеличивается при входе транзакта в блок QUEUE или уменьша# ется при его входе в блок DEPART. Как правило, операнд В не зада# ется и в этом случае его значение принимается равным единице.

Теперь можно составить полноценную рабочую модель СМО. Для начала составим упрощенную модель одноканальной однофаз# ной системы с ожиданием.

Пример 2.1. В магазин, где работает один продавец, прихо# дят покупатели с интенсивностью λ = 8 чел./ч. Время обслужива# ния одного покупателя составляет 6 мин. В обоих случаях распреде# ление экспоненциальное.

Составить модель данной системы и найти среднее время ожи# дания в очереди, среднее время обслуживания, коэффициент загруз# ки продавца за 8#часовой рабочий день. За единицу времени при# нять одну минуту.

Ре ш е н и е. Определяем среднее время прихода покупателей

вмагазин:

t = 60/8 = 7,5 мин.

29

Обозначим очередь как QUEUE_CUST, а продавца – как SALES. Построим модель:

GENERATE (exponential(1,0,7.5))

;приход покупателей

QUEUE QUEUE_CUST

;покупатели встают в очередь

SEIZE SALES

;покупатель подходит к продавцу

DEPART QUEUE_CUST

;покупатель выходит из очереди

ADVANCE (exponential(1,0,6))

;время обслуживания покупателя

RELEASE SALES

;окончание обслуживания

TERMINATE

;выход покупателя из магазина

GENERATE 480

 

TERMINATE 1

 

START 1

 

Проведем расчет модели. Для этого необходимо запустить GPSS World.

После запуска программы окно выглядит так, как это показано на рис. 2.1.

Рис. 2.1. Окно программы GPSS World

Открываем новое окно модели: меню File – New. В открывшем# ся окне (рис. 2.2) указываем Model и нажимаем кнопку ОК.

30

Рис. 2.2. Окно открытия новой модели

В появившемся окне вводим составленную выше модель (рис. 2.3). Комментарии на русском языке необходимо отделить от блоков модели символом точка с запятой («;»).

Рис. 2.3. Окно создания модели

Чтобы не набивать блоки модели вручную, можно воспользо# ваться библиотекой блоков (рис. 2.4), которая находится в меню (Edit – Insert GPSS Blocks), и выбрать оттуда необходимые блоки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]