Материалы тренинга по AnyLogic
.pdfСоотношениеДСиАМ
|
|
|
|
|
|
|
|
|
|
|
|
Запрос |
|
|
|
|
|
|
|
|
|
|
|
|
|
у |
|
|
|
|
|
|
|
|
|
|
|
Ожидание ресурса |
|||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
Ресурс |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
захвачен |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
Обслуживание |
|||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
Завершение |
|
|
||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
Отпустить |
|
|
|
|
|
|
|
|
|
|
|
|
|
ресурс |
Y |
Запрос |
|
|
|
|
|
|
|
|
|
|
|
|
B |
ресурса |
|
|
Свободен |
|
|
|
|
|
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
захват |
|
|
|
|
Диспетчер |
|
|
Задержка |
|
|||
|
Занят |
|
|
|
|
|
|
Время задержки |
|
|
|
||
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
Уничтожить |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
этого агента |
|
|
||
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
|
|
|
|
|
361 |
АМ: Болеереалистичныепредположения
Нормальный
процесс
есурс
Аварийный процесс
Тревога
|
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
362 |
|
|
|
|
Какойжеподходиспользовать?
• Если проблема хорошо “ложится” на
традиционные подходы СД и ДС и допускает
соответствующуюабстракцию –
Используйте традиционные подходы
•сли система содержит активные о ъекты люди, компании, животные, машины, илипроекты, акции, продукты, и т.д. с временами, со ытиями или индивидуальнымповедениемлюбогодругого рода Вы можете выиграть от использования агентногоподхода
•Помнитео возможности совмещения подходов
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
363 |
Мультиподходныеархитектурымоделей
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
… |
взаимодействующих агентов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
… |
|
(например, участники сети поставок) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
…
Агенты (клиенты, пациенты) взаимодействуют с другими агентами (персоналом) в рамках ДС
,
живут в среде, которая описана в терминах СД
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
364 |
|
|
ПлохиеихорошиеновостиобАМ
• |
Плохиеновости: |
|
|
Создание агентной модели – это не “несколько |
|
|
щелков мыши”. В любом случае придётся писать |
|
|
какие-то строчки кода. Если Вы используете |
|
|
библиотеки типа Swarm / RePast, Вы вообще |
|
|
только программируете – и всё равно многого не |
|
|
можете сделать. |
|
• |
Хорошие новости: |
|
|
необходимого кода, предлагая графические |
|
|
, |
. |
|
AnyLogic даёт Вам гораздо более гибкий язык |
|
|
моделирования. |
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
365 |
Реализационныешаблонывагентноммоделировании
• |
Используемые на практикеагентныемодели обычно очень |
||
|
сильно различаются, но все же некоторые аспекты могут |
||
|
использоваться повторно: |
||
|
– |
Архитектурамодели |
|
|
– |
Модельвремени |
|
|
|
, |
, |
|
– |
Взаимодействие |
|
|
– |
Сеть, контакты |
|
|
– |
Заданиеповеденияагента |
|
|
– Рождениеи смерть агентов |
|
|
|
– |
Сборстатистикипопопуляциямагентов |
|
|
– |
Анимация агентныхмоделей |
• |
КлассыAnyLogic Agent и Environment реализуют |
|
|
большинство перечисленных аспектов |
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
366 |
Синхронизация
Если Шаги выполняются:
• Агенты синхронизируютсяпо “тикамчасов”: 0, 1, 2, ... :
• Вначалеу всех агентов вызываетсяДействие перед выполнениемшага – это “подготовкак шагу”, состояние не изменяется всех агентоввызывается Действие после выполнениемшага –
действие” шага
Агент 0 Агент 1 Агент 2
|
|
|
|
|
|
|
|
Время |
|
|
|
|
|
|
|
|
|
||
0 |
1 |
2 |
3 |
||||||
|
–Но: в дополнение к этим событиям агенты могут в любые моменты времени порождать свои собственные события и
производить действия!
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
369 |
Непрерывноепространство
• |
Уагентаесть real (x,y) координатыв 2D |
||
|
пространстве |
|
|
• |
спользу те |
класса |
gent: |
|
getX(); getY(); |
|
|
|
s ance o agen |
; |
|
|
jumpTo( x, y ); moveTo( x, y ); stop(); |
||
|
isMoving(); |
moveTo( 20, 30 ) moveTo( 15, 50 ) stop() |
|
|
timeToArrival(); |
||
|
|
|
|
|
setVelocity( v ); |
|
|
|
setHeading( h ); |
|
|
• |
Задайтедействие: |
getX() getY() |
|
|
On Arrival |
|
|
|
|
возвращает текущую позицию |
|
|
|
|
в любой момент времени |
|
|
||
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
370 |
||
|
|
|
|
Дискретноепространство
Двумерный массивячеек
• В одной ячейке – максимум один агент; местоположение: |
||
• |
getR(), getC() |
|
Перемещение: jumpToCell, jumpToRandomCell |
|
|
• |
Модели соседства: Евклидово, Мурово; |
getNeighbors() |
столбцы
строки |
|
|
{N,S,E,W] |
, |
, |
|
возвращает
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
371 |
Стандартноерасположениеагентоввпространстве
• Непрерывное:
Случайное, Упорядоченное, Кольцо, Пружинящаямасса(зависит от сети)
• Дискретное:
|
|
– Случайное, |
Упорядоченное |
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
372 |
Сеть: связиивзаимодействие
Укаждогоагента есть списокcвязей – другихагентов
•Используйте одну из стандартных сетей или задайте Вашу собственную с помощьюметодовconnectTo(agent), disconnectFrom(agent)
•Взаимодействие в сети: используйте методы
send( msg, agent ); send( msg, ALL ); send( msg, RANDOM ) …, и
задайте действие: Действие при получении сообщения
•Списоксоединенных агентов доступен какgetConnections(); getConnectedAgent(i);
•Взаимодействие в сети: sendToAllContacts(), sendToRandomContact()
Connections = {1,2,3,4} |
|
5 |
|
|
|
4 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
3 |
|
Connections = {0,3,5} |
|
|
|
||
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
|
373 |
Стандартныетипысетей
• Стандартные типы сетей:
Случайное |
Решеточноупорядоч. кольцо |
Малыймир |
Безразмерная |
|
|
|
|
|
|
|
|
Согласно расстоянию (зависит от расположения)
• Вы можете:
– |
Комбинировать стандартные и |
|
|
нестандартные сети |
|
– |
Изменять стандартные сети во время |
|
|
. . |
374 |
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
Сколькоагентовмоделировать?
• Если мне нужно моделироватьвсёнаселение
США – мне что, запускать 300,000,000 агентов?
,
• Есть две основные техники“масштабирования”:
– Те же агенты |
– Та же среда |
|
|
среда |
группы |
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
375 |
|
|
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
376 |
Модельрынка. Фаза1
На этомэтапе мы не будем учитыватьпокупкипродукта
вследствие общения потребителей другс другом.
ып м д ли у м лишь т , к к п дуктп и т т я подвлиянием его рекламирования.
Изначальнони у когоиз потребителей нет продукта, и все они являются потенциальными потребителями.
Реклама порождаетспросна продуктсреди потенциальныхпотребителей.
Всреднем за день к решению опокупкепродукта
.
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
379 |
© 2002-2011 ООО «Экс Джей Текнолоджис», www.xjtek.ru |
380 |