Проблема: стойка занята. Можно ли удалить агентов из стеллажной системы, не используя их в блок-схеме?

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

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

Или: есть ли лучшее решение для хранения и / или удаления агентов? Может, вообще без блок-схем?


person Catwoman    schedule 05.01.2021    source источник


Ответы (1)


Если вы не удаляете агентов из стоек через блок RackPick, вы фактически не удаляете их из системы стойки (даже если агент движется «мимо» блока RackStore в потоке процесса). Итак, ваш процесс должен быть примерно таким:

  • За RackStore идет блок Wait (который удерживает их в процессе до тех пор, пока они не потребуются).
  • Когда человек прибывает в локацию агента (ваш триггер для удаления агента из стойки, хотя непонятно, что это означает - каково местоположение агента, поскольку он находится в стойке?), Вы free их из блока Wait.
  • За блоком Wait следует блок RackPick, который удаляет их из стойки.
  • Удаленный агент продолжает работу в любом последующем потоке (который в вашем случае может быть просто Sink).

NB. Кроме того, часть функций блоков RackStore и RackPick заключается в использовании агентов ресурсов для перемещения к стойке и внесения / извлечения агента, поэтому, вероятно, вам не нужно, чтобы персональный агент был явный переход к местоположению агента (за пределами этих блоков), хотя это зависит от точной спецификации того, что вы хотите, чтобы ваша модель выполняла.

person Stuart Rossiter    schedule 05.01.2021