Материалы тренинга по AnyLogic
.pdfРынок. Фаза5. Шаг3
Source
Имя: sourceOrders
Заявки прибываютсогласно:
Вызовам метода inject()
исоедините ихс объектами
n
Действиепри входе: if( ! waitingForProduct.isEmpty() ) waitingForProduct.removeFirst().receive("Collect your order");
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
441 |
Добавьте объект Source. Назовите его sourceOrders.
Сделайте так, чтобы этот объект создавалзаявки по вызовамметода inject().
Добавьте объект ink. Введите
if( ! waitingForProduct.isEmpty() ) waitingForProduct.removeFirst().receive("Collect your order");
в поле Действие при входе. Этот код будет проверять, нет ли потребителей, ждущих получения товара. Если такие
,
потребитель, и ему будет посылатьсясообщение о том, что он может забратьприбывший товар.
Добавьте двапорта.
Назовите один из них ordersOut и соедините его с
объектом sourceOrders. Этотпортбудетотсылатьзаказы
из объекта наружу, в цепочку поставок. Назовитедругой порт. productsIn исоедините его с
цепочки поставок, извне объекта.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
442 |
Рынок. Фаза5. Шаг4
Измените свойства
перехода Purchase
Добавьте параметр
MaxWaitingTime
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
443 |
|
|
.
будетзадаватьмаксимальное время, котороеможет товара.
ада те wee в качестве начения по умолчанию,
посколькумы предполагаем, чтоэтовремя равно двум неделям.
Сделайте так, чтопереход Purchase будет происходить поприходусообщения“Collect your order”.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
444 |
Рынок. Фаза5. Шаг5
Измените сво ства состояния WantsToBuy
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
445 |
Измените свойства состояния WantsToBuy. Введите две новые
строкикодавполе Действие при входе: get_Market().sourceOrders.inject(1); get_Market().waitingForProduct.addLast(this);
Первая строка кодасоздает новый заказ и добавляет его в объект sourceOrders. Вторая строкапомещает этогоконкретного потребителя в очередь потребителей, ожидающихсвоих товаров. Здесь мы обращаемся к активному объекту класса Market (расположенному в дереве моделина один уровень выше) с помощьюспециального метода get_Market().
t is здесь служит ссылко на этот конкретны экземпляр класса
Consumer.
Добавьтепереход, ведущийизсостояния WantsToBuy в
PotentialUser. Этот переходбудетмоделировать то, как потребитель, не дождавшись товара, расстается с желанием его
приобрести.
Назовите этот переходCantWait. Сделайте так, что он будет происходитьпо истечении таймаута MaxWaitingTime. Задайте следующее Действие: get_Market().waitingForProduct.remove(this);
Этот кодбудетудалять потребителей из очереди.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
446 |
Рынок. Фаза5. Шаг6
его с нижнимлевымпортом Match
Добавьтепорт productsOut исоедините
Match |
Sink |
|
|
Максимальнаявместимость1: |
|
Максимальнаявместимость2: |
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
447 |
|
|
Match
• Синхронизируетдвапотока заявок путем нахожденияпар заявок, удовлетворяющих заданномукритерию соответствия. Заявки, для которых не было
найденопары, хранятсявочередях (пооднойнакаждыйвходящийпотокзаявок).
• По прибытииновой заявкив один из двухвходных портов она проверяется на соответствие со всеми заявками, находящимися в очереди, хранящей
заявкидругогопотока. Еслисоответствиенайдено, обезаявкипокидаютобъек .
Замените объект storing объектом Match. Оставьте заданное по умолчанию
условиесоответствия (true). Вэтомслучаелюбыедвезаявкибудут
соответствовать друг другу, и объект будет работать как простой синхронизатор потока: он будет выдавать пары заявок.
Добавьте порт productsOut. Удалите объект sink и соедините порт productsOut с выходным портом объекта productExit.
Добавьте порт ordersIn. Соедините его с нижним входным портом объекта
Match.
Добавьте объект Sink и соедините его с нижним выходным портом объекта Match. Этот объект будет удалять удовлетворенные заказы.
Когдановыйзаказпоступитвобъект Match, изаказитоварпокинутобъектчерез
соответствующие выходные порты. Заказ будет удален объектом Sink, а продуктпроследует далее по диаграмме процесса и в итоге покинет объект retailer через порт productsOut.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
448 |
|
|
Рынок. Фаза5. Шаг7
Перетащите активный объект Market надиаграмму классаMain
Соедините порты только что созданногообъекта с портами объекта retailer
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
449 |
Добавьтеэкземпляр класса активногообъектаMarket
на диаграмму класса Main.
market с портамиобъектаretailer: |
|
|
• |
or ers u сor ers n |
|
• |
productsIn с productsOut |
|
Этонужнодля того, чтобымы могли установить |
|
|
взаимодействие между этими двумя объектами. Мы |
|
|
хотимпозволитьобъекту, моделирующему |
|
|
потребительскийрынок(market) отсылатьзаказы |
|
|
|
. |
|
На тойже диаграмме Main переместите вложенную |
|
|
презентацию о ъектаmar e вправо, на сво одное |
|
|
местодиаграммы. |
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
450 |
Рынок. Фаза5. Шаг8
Добавьтетекст Market на Добавьтеобласть диаграммуклассаMain просмотра на
диаграммуMarket
|
|
|
|
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
451 |
Market. Назовите ее viewMarket.
ДобавьтетекстMarket на диаграмму Main. Сделайте егоссылкойна областьпросмотраviewMarket вложенногоо ъектаmar e , введя market.viewMarket.navigateTo(); в динамическом сво стве е ствие по щелчку игуры текста.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
452 |
Рынок. Фаза5. Шаг9
Запустите модель
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
453 |
поставок, состоящей из нескольких моделей завода, ритейлераи потребительскогорынка.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
454 |
Рынок. Фаза5. Вопросы
1.Поэкспериментируйте с различными начальными расположениями агентов в пространстве.
2. |
Попробуйтевариантсетисконтактами, |
|
устанавливаемыми согласнорасстоянию. |
. |
. |
4.Опишите, какВыпромоделируете распространение
5.Расскажите, как Выбудете учитыватьприоритетыпри о служивании клиентов.
6.Объясните, какВыбудете проверятьсоответствие заказа и оформившего этотзаказ агента.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
455 |
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
456 |
Системная динамика
Эта презентация является частью стандартной программы обучения
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru
СистемнаядинамикаДж.Форрестер’50е
• Накопители, потоки и их причинные зависимости. Структура
как взаимодействующиеобратные связи
|
Потен- |
|
Продажи |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
циальные |
|
|
|
|
Клиенты |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|||
|
клиенты |
|
+ |
|
|
|
|
|
|
Всё |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
Продажи |
|
+ |
|
н л ни |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
из-за устной |
|
- |
|
|
|||
|
рекламы |
|
B |
|
|
рекламы |
|
+ |
Эффективность |
||
+ |
|
|
+ |
+ |
Частота |
устной рекламы |
|||||
|
|
рекламы |
|
|
|
|
|
||||
|
|
|
|
контактов |
|
|
|||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
Модель диффузии нового продукта/инновации по Бассу |
|
||||
|
|
|
|
|
|
|
|||||
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
|
|
|
458 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
СистемнаядинамикаДж.Форрестер’50е |
|||||||
• |
|
Накопители, потоки и их причинные зависимости. Структура |
|||||
|
как взаимодействующиеобратные связи |
|
|||||
|
|
|
|
Эквивалентная математическая модель: |
|
||
|
|
|
d( Потенциальные клиенты )/dt = - Продажи |
|
|||
|
|
|
d( Клиенты )/dt = Продажи |
|
|
|
|
|
|
|
родажи = |
родажи из-за рекламы + |
родажи из-за стно рекламын л ни |
||
|
|
|
Продажи из-за рекламы = Эффективность рекламы * Потенциальные клиенты |
||||
|
|
|
рекламы |
|
рекламы |
|
|
|
|
|
Продажи из-за устной рекламы = |
|
|
|
|
|
|
|
Частота контактов * Эффективность устной рекламы * Потенциальные |
||||
|
|
|
клиенты * Клиенты / Всё население |
|
|
|
|
|
|
|
|
рекламы |
|
контактов |
|
|
|
|
|
|
|
нового продукта/инновации по Бассу |
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
459 |
||||||
ЭлементыпотоковойдиаграммывAnyLogic |
|||||||
|
|
VenSim |
AnyLogic |
|
|
|
|
|
|
|
|
|
Тип: Накопитель |
|
|
|
|
Накопитель |
|
Имя: Stock |
|
||
|
|
|
|
|
d(Stock)/dt = : InFlow – |
OutFlow1 – OutFlow2 |
|
|
|
Поток |
|
Тип: Поток |
|
||
|
|
|
|
|
Имя: Flow |
|
|
|
|
+ |
- |
|
Flow = : Aux1 / Aux2 |
|
|
|
|
|
|
|
|
||
|
|
Вспомогат. |
|
Тип: Вспомогательная переменная |
|||
+ |
|
|
Имя: Aux1 |
|
|||
|
переменная |
|
|
||||
|
|
+ |
|
Flow = : Aux1 + Table1(Constant) |
|||
|
|
|
|
|
|
||
|
- |
Константа |
|
Тип: Параметр |
|
||
|
|
|
Имя: Constant |
|
|||
|
|
|
|
|
Начальное значение: 0.011 |
||
|
|
Табличная |
F |
Тип: Табличная функция |
|||
|
|
функция |
|
||||
|
|
|
Имя: Table1 |
|
|||
|
|
|
|
|
|
||
|
|
|
|
|
Данные: … |
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
460 |