Способ создания списка задач для ресурса для работы, когда ресурс простаивает

#anylogic

Вопрос:

Изображение для иллюстрации контекста точки замерзания: Создание масштабируемой модели производственной линии для повышения коэффициента оптимизации человеко-машин. Будет масштабироваться модель для оператора (ресурса) для работы на нескольких машинах (одного и того же типа). Во время технологического процесса на станке оператор будет захвачен и освобожден несколько раз для выполнения различных задач.

Проблема: Весь процесс зависает, когда оператор захватывается одновременно в нескольких блоках захвата.

Мысли: Есть ли способ создать список, в который добавляются задачи в случае, если ресурс в данный момент захвачен. Затем ресурс будет работать со списком задач всякий раз, когда он простаивает. Любые другие методы решения этой проблемы также приветствуются!

Ответ №1:

Если это станет сложной моделью, вы можете рассмотреть возможность использования чисто агентного подхода.

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

Затем ресурс просто делает это один JobRequest за другим.

Никаких ресурсов или Seieze элементов не требуется.

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

Комментарии:

1. Есть ли более простой метод для этого или какие-либо примеры из учебника, на которые я могу сослаться? Я довольно новичок в Anylogic, и предлагаемое решение кажется мне не по силам 🙂

Ответ №2:

Проблема: Весь процесс зависает, когда оператор захватывается одновременно в нескольких блоках захвата.

Вам нужно лучше объяснить свою проблему: невозможно «захватить одного и того же оператора одновременно в нескольких блоках захвата» (если только вы не используете условие выбора ресурсов или аналогичное, чтобы попытаться «принудительно» захватить определенный ресурс — даже в этом случае это более точно оформлено как «Я установил условия выбора ресурсов, которые означают, что у меня в конечном итоге нет доступных допустимых ресурсов»).

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

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

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