Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Пример 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 а; при условии, что а меньше Ь, вер­нет значение переменной Ь, а в противном случае — значение пере­менной а.

Date: 2015-07-23; view: 372; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию