Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Описание модели примера 2




На рис. 2.22 приведена структура модели примера 2. Она призвана проиллюстрировать только принцип моделирования неоднородных по­токов и потому описана здесь не полностью.

В этой структуре первый блок генерирует единственный тэг, кото­рый запускает на вход парикмахерской два потока клиентов: первого типа (client I stream) и второго (client 2 stream). В этих блоках отраба­тываются задержки между приходами клиентов и «навешиваются ви­зитные карточки». Для этого в поле Beginning Effect блока 2 (client I stream) размещаются операторы: tag:=tag+l; client_type[tag]:=l; а в блоке 3 (client 2 stream) — операторы: tag:=tag+l; client_type[tag]:=2;. Перед блоком 4 образуется общая очередь клиентов разных типов, по­скольку вход в этот блок ограничивается условием: St = =0; где St — переменная, имитирующая состояние парикмахера (0 — свободен, 1 — занят). Это условие выносится в поле Release Condition блока 4.

Задержка на время обслуживания в этом блоке определяется вели­чиной 18±6 ед. времени. В поле Beginning Effect размещается оператор St:=l, который имитирует переход парикмахера в состояние занято-


108


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


Дополнительные методы и средства имитации


109


 


Рис. 2.22. Структура модели примера 2

сти, а в поле Ending Effect размещается оператор освобождения парик­махера. В нашем примере он может быть освобожден, если заверши­лось обслуживание клиента первого типа, если же стригся клиент вто­рого типа, то его обслуживание должно быть продолжено (в блоке 5 — shaving), и следовательно парикмахер не может быть освобожден. В соответствии с этим содержанием в поле Ending Effect блока 4 раз­мещается оператор: if client_type[tag]= =1 then St:= 0;.

Клиент, выходящий из четвертого блока, направляется в пятый при выполнении условия: client_type[tag]= =2; и направляется в шес­той при выполнении условия client_type[tag]= =1. Эти условия разме­щаются в разветвителе, стоящем на выходе пятого блока.

Соответственно в поле Ending Effect блока 5 размещается оператор освобождения парикмахера: St:= 0;. В остальном эта модель мало чем отличается от модели примера 1.

Задача как накопитель тэгов

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

Пример 3; модель автозаправки с несколькими колонками

Эта модель отличается от модели примера 1 наличием нескольких бензоколонок.

В этом случае целесообразно, сохраняя структуру модели примера 1 (см. рис. 2.1), ввести переменную Nb — число свободных бензоко-


лонок и переопределить блок 2 описанием, приведенным на рис. 2.23 (переменная Status при этом оказывается ненужной).

Рис. 2.23. Пример описания задачи-накопителя тэгов

В этом случае блок 2 примера 1 превращается в накопитель, в ко­тором одновременно могут находиться Nb тэгов, имитирующих авто­мобили.

Замкнутые системы

Замкнутыми будем называть системы, в которых отсутствуют входные потоки тэгов. Все изменения в таких системах происходят за счет внутренних преобразований, внутренних процессов, происходя­щих в системе.

Деление систем на открытые и замкнутые достаточно условно. В любой реальной системе обычно можно выделить компоненты того и другого вида, однако понятие замкнутой системы полезно для осво­ения приемов имитации сложных систем.


110


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


Дополнительные методы и средства имитации


111


 


Пример 4: модель использования общего оборудования

Производство изделий определенного вида включает в себя длите­льный процесс индивидуального изготовления, заканчивающийся ко­ротким периодом обжига изделия в печи. Поскольку содержание печи обходится довольно дорого, несколько рабочих, каждый из которых изготовляет «свое» изделие, используют одну печь, в которой одно­временно можно обжигать только одно изделие. Рабочий не может начать новую работу, пока не вытащит из печи законченное изделие.

Таким образом, рабочий трудится в следующем режиме:

1) изготавливает изделие;

2) ожидает возможности использования печи по принципу «пер­
вым пришел — первым обслужен»;

3) использует печь;

4) переходит к изготовлению нового изделия.

На операцию изготовления изделия требуется 30+5 мин., на опе­рацию обжига 8+2 мин. Требуется построить имитационную модель для определения такого количества рабочих, при котором с одной стороны очередь минимальна, с другой — простои печи минимальны.

Решение этой задачи связано с разработкой модели, в которой ис­пользуется переменная Nw — количество используемых рабочих, зна­чение которой подбирается в процессе моделирования таким обра­зом, чтобы обеспечить наилучший баланс между длиной очереди и временем занятости печи.

Структура модели иллюстрируется схемой рис. 2.24.


редь—БлокЗ. Подобное «хождение» имитирует рабочий цикл, выпол­няемый каждым рабочим в течение рабочего дня.

Приведем содержимое основных полей блоков 1—3.

Бдрк1. (Begin)

Release Condition: tag<Nw;

Beginning Effect: tag:=ta.g+l;

Ending Effect: if tag = =Nw then Start:=l;

{Start — сигнал для начала работы}

Блок2. (Operation 1)

Release Condition: Start = = 1;

Mean Time: 30;

Standard Deviation: 25;

Frequency Distribution: Rectangular

БлокЗ. (Operation 2)

Release Condition: St = = 0;

Mean Time: 8;

Standard Deviation: 6;

Frequency Distribution: Rectangular

{St — состояние печи: 0 — свободна, 1 — занята}

Beginning Effect: St:=l; {Занять печь}

Ending Effect: St:=O; {Освободить печь}

(Блоки 1 и 2 в этом, примере используются как накопители тэгов.)


 


Рис. 2.24. Структура модели примера 4

Блок 1 (Begin) создает тэги в количестве, определяемом величи­ной Nw. Каждый тэг имитирует рабочего. Все созданные тэги-рабо­чие становятся в очередь перед вторым блоком (Operation 1) и ждут «начала работы». Работа начинается с появлением в модели (Nw)-oro тэга, который «разрешает» тэгам-рабочим войти во 2-ой блок. После входа каждый из рабочих начинает «ходить по кругу»: Блок2—-Оче-


Язык описания эффектов

Для описания модели используется язык описания эффектов. Основными элементами этого языка являются переменные, операто­ры и функции. Переменные были кратко описаны в разделе Описание элементов модели, там же был описан и оператор присваивания. Здесь мы излагаем дополнительные сведения о средствах языка описания эффектов, необходимые для разработки имитационных моделей.

Любое текстовое описание представляется последовательностью операторов языка, разделенных знаком «;». Кроме того, в любое место такого описания может быть вставлен комментарий — произвольный текст, заключенный в фигурные скобки, например {Это текст ком­ментария}.

К операторам, которые используются наиболее часто, относятся операторы присваивания, уточняющие (adjustment) и логические опе­раторы. Два последних описываются ниже. Более подробные сведе-


112


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


Дополнительные методы и средства имитации


113


 


ния по составу операторов и особенностям их использования содер­жатся в справочном разделе системы.

Уточняющий оператор определяет лаконичную запись соответству­ющего оператора присваивания. Например, оператор присваивания Х:=Х+1 эквивалентен уточняющему оператору Х+=1. Аналогично оператор Х:=Х—6 эквивалентен оператору X—=6, оператор Х:=Х*п оператору X*=n, a X:=X/Nn оператору X/=Nn. Здесь X, n, Nn f— име­на переменных.

Логические операторы сравнивают два числовых значения или ло­гических аргумента. Результат равен 1, если сравнение является ис­тинным, или 0, если сравнение ложно. Соответственно 1 рассматри­вается как значение ИСТИНА, а 0 — как значение ЛОЖЬ. Например, если известно, что а равно 0,01 a b равно 3, то следующие выражения истинны: a<=b;a<b;a<>b;a следующие ложны: а = = Ь; а >= Ь; а > Ь. (Здесь запись < = означает «меньше или равно», < означает «меньше», <> — «не равно», = = — «равно», >= — «больше или рав­но», > — «больше».)

Не путайте записи «= =» и «:=»: логический оператор «= =» срав­нивает значения двух переменных, а оператор присваивания «:=» на­значает значение переменной, стоящей слева от оператора.

К логическим операторам относятся также операторы «&» (логи­ческое И) и «|» (логическое ИЛИ). Оператор «&» проверяет истин­ность двух логических выражений (одновременно) и возвращает зна­чение 1, они оба истинны, в противном случае он возвращает значе­ние 0. Например, если а равно 0,01 a b равно 3, то следующие выражения истинны:

(а = = 0,01) & (Ь = = 3); (а < 2) & (Ь > 2); (а < Ь) & (Ь <> 0).

Заметим, что выражение (а & Ь) также истинно, поскольку оба ар­гумента больше нуля, соответственно истинным будет и выражение (а * 100) & (Ь / 3). В этом смысле любое число, не равное нулю в ло­гическом операторе, интерпретируется как ИСТИНА, а ноль — как ЛОЖЬ.

Логический оператор (|) проверяет, есть ли из двух значений хотя бы одно, не нулевое, и возвращает в этом случае значение ИСТИНА, а если нет, то возвращает значение ЛОЖЬ. В нашем примере логиче­ские операторы (а= =0,01) | (Ь>4), (а>0) | (Ь>0) истинны, а (а = = 0) | (а = = Ь), (а-0,01) | (Ь-3) — ложны.

If-then-else оператор обеспечивает выполнение действий, необхо­димых при заданных условиях. Например, оператор: if а + 3 == 5 then b:= I, c:= 1; в случае, когда (а + 3 = = 5), т. е. переменная а имеет


значение 2, запишет в переменные b и с значения 1, а в противном случае он ничего не сделает.

Оператор:

if а then b += 1 else b -= 1;

в случае, когда а не равно нулю, увеличит значение переменной b на 1, а в противном случае (а равно нулю) уменьшит b на единицу.

Оператор: if a < b then b else а; при условии, что а меньше Ь, вер­нет значение переменной Ь, а в противном случае — значение пере­менной а.




Поделиться с друзьями:


Дата добавления: 2015-06-27; Просмотров: 399; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.024 сек.