Как разработать многоагентное моделирование с тактовым управлением

StackOverflow https://stackoverflow.com/questions/1041343

  •  22-07-2019
  •  | 
  •  

Вопрос

Я хочу создать многоагентную имитационную модель для реального процесса создания слов, чтобы оценить некоторые правила диспетчеризации.При моделировании необходимо создавать журналы событий для оценки временного эффекта правил диспетчеризации по сравнению с реальными журналами производственных событий.

Как я могу включить «текущее время моделирования» в такое многоагентное моделирование с интенсивной передачей сообщений?

Фон:
Классическое моделирование дискретных событий (которое хорошо справляется с продвижением во времени) здесь не может быть применено, поскольку агенты в системе представляют собой относительно сложное поведение и требования к маршрутизации, а правила диспетчеризации требуют от них частого взаимодействия.Эта и другие сложности процесса также исключают централизованный подход к планированию.

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

К сожалению, использование кратчайшего времени процесса для дискретного шага по времени в системе может оказаться невозможным, поскольку диапазон времени процесса составляет от 0,1 с до 24 часов.Существует вероятность того, что моя симуляция будет использоваться для оценки «что если» в проекте позже, поэтому симуляция должна выполняться как можно быстрее — возможности запуска моделирования в ночное время нет.

Размер задачи составляет около 500 ресурсов и 1000–10 000 агентов продуктов, большинство из них завершено и не участвует в дальнейшем общении или занятии ресурсов.

Следовательно, в результате связи новые события могут побудить агента что-то сделать до того, как придет его исходное событие «следующий раз».Например, агент в данный момент заблокирован на ресурсе на час.Однако другому агенту с более высоким приоритетом этот ресурс нужен немедленно, и он просит первого агента освободить этот ресурс.

В каком-то смысле мне нужен способ создать гибрид классической симуляции агента передачи сообщений и симуляции дискретных событий.

Я рассматривал агент-посредник, который участвует в каждом сообщении — маршрутизатор сообщений и средство контроля времени, которое рассылает сообщения и события таймера.Также агент-посредник хранит список времени следующих событий для различных агентов.Однако я чувствую, что должен быть лучший способ решить мою проблему, поскольку эта концепция оказывает огромное давление на агента-посредника.

Обновлять

Это заняло некоторое время, но, кажется, мне удалось создать мини-фреймворк и объединить концепцию DES и Агента в одну.Я уверен, что в этом нет ничего нового, но, по крайней мере, уникально: http://code.google.com/p/tidra-framework/ если ты заинтересован.

Это было полезно?

Решение

Эта проблема звучит так, как будто ее следует решить с помощью параллельный Моделирование дискретных событий - агент-посредник, который вы планируете реализовать («участвует в каждом сообщении», «рассылает сообщения и события таймера»), похоже, прямо сейчас выполняет работу симулятора дискретных событий.Вы можете масштабировать задачу до желаемого размера, используя параллельно больше таких симуляторов, а затем использовать алгоритм синхронизации для поддержания причинно-следственной связи и т. д.(см., например, эта книга подробности).Конечно, это требует значительных усилий, и, возможно, вам будет лучше сначала опробовать последовательные алгоритмы.

Хороший способ расширить классический взгляд DES на логические процессы (= агенты), которые взаимодействуют друг с другом через события, может состоять в том, чтобы объединить некоторые идеи из других формализмов, используемых для описания систем с дискретными событиями, таких как РАЗРАБОТЧИКИ.В DEVS каждый объект может указать продолжительность своего пребывания в определенном состоянии (например, когда агент блокирует ресурс) и будет прерываться только входящими сообщениями (а затем соответствующим образом изменять свое состояние, напримерагент, освобождающий ресурс).

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top