Вопрос по actor, scala, simulation – Как разработать многоагентную симуляцию, управляемую часами

3

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

How can I incorporate the 'current simulation time' into this kind of multi-agent, message passing intensive simulation?

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

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

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

Размер проблемы составляет около 500 ресурсов и 1000 - 10000 агентов продукта, большинство из них закончено и не участвует в дальнейшей коммуникации или использовании ресурсов.

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

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

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

Update

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

Ваш Ответ

1   ответ
4

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

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

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

Спасибо. Вы правы по поводу этой проблемы ближе к DES. Я мог бы перефразировать это предложение. Моя работа является частью исследовательского проекта, в котором мои колледжи проводят моделирование на основе DES. У меня есть задача выяснить и реализовать агентный подход к основной проблеме. Ребята из DES, однако, не планируют включать в процесс симуляции принятие такого решения или оптимизацию, которых я хочу достичь. akarnokd
+1 для BTW части, я не вижу, как это может быть слишком сложным для DES
Спасибо за объяснения и ссылки. akarnokd

Похожие вопросы