Материалы тренинга по AnyLogic
.pdfРитейлер. Фаза3. Шаг3
Перетащите блокРешение (If .. else) вветвьдиаграммыдействий
Измените свойстваблока
Комментари станет виденвнутриблокав графическомредакторе
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
241 |
Мы хотим, чтобынаш алгоритм проверял определенноеусловие и |
|
выполнял то илидругое действиев зависимостиот результата этой |
|
проверки. ля этогомы воспользуемся локом ешение |
.. se . |
Задайте Условие блока: inventory < s. Здесьмы проверяем, не ниже ли |
|
текущий уровень товарных запасовминимальнодопустимогоуровня s. |
|
БлокРешение (If … Else) |
|
.. |
. |
есть двеисходящие ветви true и false. С помощью другихблоков Вы можете задатьпоследовательность действий для каждойиз этих ветвей. Когда управление
дойдетдоданногоблока, будетприниматьсярешениеотом, покакойветви
управлениепойдет дальше. Если заданное для блокаусловие будет выполнено, то будетвыбрана ветвьtrue. В противном случаебудет выбрана ветвьfalse.
• Перетаскивая блокнадобластьюграфическогоредактора, Вы увидите, что определенные точки наветвях диаграммыдействийбудутвыделяться с помощью маленькихкружков. Чтобы вставитьблокв одну из этих точек, отпустите кнопку мыши, когдакурсор будет наднужной Вам точкой.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
242 |
|
|
Ритейлер. Фаза3. Шаг4
Локальная
переменная
Ко
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
243 |
Поместите дваблока в ветвь true блока Решение для того, чтобы
реализоватьзаказтовароввслучаенизкогоуровнятоварныхзапасов
ритейлера.
Локальнаяпеременная quantity будет подсчитывать количество единиц товара, которое должнобыть заказано (путем вычисления разницы между верхним уровнем товарных запасовитекущим уровнем: S inventory)
Блокcode будет выполнять следующийкод: source.inject(quantity);
nven ory += quan y;
Первая строка создает в объекте source заданноечисло заявок(равное quantity). Вторая увеличивает текущее значение уровнязапасов на это значение.
Локальная переменная
ото ражаться внутри лока и о ъяснять смысл локадругим
• Блок Локальная переменная используется для заданияпеременной внутри диаграммыдействий. Такаяпеременная видна тольконе во всейдиаграмме действий, а только в той ее части, которая следует заточкой объявления переменной.
Код
• Блок Код позволяет добавлятьвВашу диаграммудействийфрагменты кода, выполняющиенужные ам де ствия.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
244 |
Ритейлер. Фаза3. Шаг5
Выделите
Retailer
Введите applyInventoryPolicy();
в поле Действие при запуске
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
245 |
|
|
Мы хотим проверять уровень товарныхзапасовпризапуске
моделииприпродажекаждойединицытовара.
Первым делом мы хотим реализоватьпроверку при
запускемодели. Чтобывыполнитьалгоритмпризапуске, мы
помещаем вызовдиаграммыдействий в Действие при запуске классаRetailer.
Действие при запуске
• Действие при запуске выполняетсянафинальнойстадииинициализации
модели, после того, каквсе объектымодели будутсозданы, соединены и проинициализированы, но до выполнения каких либоактивностей модели. Здесь Вы можете, например, запустить какие либособытия этого объекта.
Как выполнить алгоритм, заданный диаграммой действий?
,
кодвызовдиаграммыдействий(имя диаграммы, за которыми следуютскобки): applyInventoryPolicy();
• слиу диаграммыде стви есть аргументы, то ы должныуказатьзначения этих параметров внутрискобок, разделивихзапятыми, например:
moveTo(15, 20);
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
246 |
|
|
Ритейлер. Фаза3. Шаг6
Заявки прибываютсогласно:
Вызовам метода inject()
Действие при выходе: inventory ; applyInventoryPolicy();
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
247 |
Измените режим генерации заявокобъектаsource.
Пустьон создаетзаявки не согласнозаданной интенсивности, а повызовам метода inject() (какВы помните, мы поместили вызов этогометодав блок кодаcode диаграммы действий applyInventoryPolicy).
Задайте действия, которыедолжнывыполнятьсяпри продажетоварасо склада:
inventory ; applyInventoryPolicy();
уровнятоварныхзапасовна единицу. Вторая
выполняетдиаграммудействий, котораяпроверяет
новый уровень товарныхзапасов, и в случае его недостаточностизаказывает производствои доставку новыхтоваров.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
248 |
Ритейлер. Фаза3. Шаг7
ДобавьтеВременную диаграммус накоплением
Добавьтеэлементы данных
дляотображениянадиаграмме
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
249 |
|
|
единиц товара, хранимогов текущий момент времени
, .
ДобавьтеВременную диаграмму с накоплением с
палитры татистика и измените ее размер, как показанона слайде выше.
Добавьтедва элемента данных, один отображающий
Значение storage.size() сЗаголовком On the stock, а другой отображающийinventory storage.size() с
Заголовком Expecting.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
250 |
Ритейлер. Фаза3. Шаг8
родолжите настраивать свойствадиаграммы
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
251 |
|
|
Измените свойствадиаграммы:
•Задайтевременной диапазондиаграммыравнымодному часу.
•ЗадайтеФиксированную шкалус максимальным значением для оси y 60.
•Задайтеотображение модельного времени в метках временной оси диаграммы.
Отображение модельного времени в метках временных диаграмм
• Все временные диаграммы(временной график, временная диаграммас накоплением и временная цветовая диаграмма) могут отображать модельные датыв меткахсвоей временной оси. Вы можете выбратьнаиболееподходящий Вам формат в поле Формат временнойоси на странице свойствВнешний вид.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
252 |
|
|
Ритейлер. Фаза3. Шаг9
о авьте
Бегунокна диаграмму
Измените свойства бегунка
одинбегунок
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
253 |
,
варьироватьзначения параметровs и S вовремя
.
Добавьтебегунокиз палитрыЭлементы управления.
Установитефлажок Связать с и введите имя параметра, значение которогоВыхотитеварьироватьс помощьюэтогобегунка, в расположенномсправа поле:
S.
Создайтекопию этогобегунка. Пустьэтотбегунок
изменяетзначениепараметра s.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
254 |
Ритейлер. Фаза3. Шаг10
элемент frame
ведите здесь
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
255 |
|
|
,
в себя толькочтодобавленные нами элементы.
Разверните в дереве проектовэлемент эксперимента Simulation:Main и затем разверните его подветвь резентация. елкните на элементе rame, что ы просмотретьего свойства.
Задайте ширину рамки равной1000 и оставьте заданную поумолчанию высоту600. Таким способом Вызадаете начальный размер окнапрезентации.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
256 |
Ритейлер. Фаза3. Шаг11
Запустите модель |
Поэкспериментируйте |
|
|
|
со значениямиs и S |
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
257 |
Ритейлер. Фаза3. Вопросы
1.
2.
3.
4.
5.
Обсуждение: в чем заключается разница между переменными и параметрами?
Диаграмма действия выполняется:
(a) за 1 единицу времени
(b) в течение нулевого времени (c) зависит от диаграммы
Какможноизменить размер окна презентации?
Какимобразомможносвязатьпараметрсэлементом
управления (например, бегунком)?
Перечислитевсережимысозданиязаявокобъекта
Source.
6.КакВыможетепромоделироватьсоздание
ограниченногоколичествазаявок?
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
258 |
Ритейлер. Фаза4
Давайтесоздадим 3D анимацию для нашей
модели ритейлера. Она будет отображаться п лл льн уж ущ т у щ д ум н анимацией.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
259 |
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
260 |