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

Материалы тренинга по AnyLogic

.pdf
Скачиваний:
218
Добавлен:
28.03.2015
Размер:
12.93 Mб
Скачать

Рынок. Фаза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