Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

AnyLogic

Войти
Регистрация
Восстановить пароль
 
IT_Improver
0 / 0 / 2
Регистрация: 30.03.2015
Сообщений: 14
#1

Возможно ли смоделировать очередь, где условие входа в очередь задаётся логическим выражением? - AnyLogic

06.05.2015, 12:51. Просмотров 596. Ответов 5
Метки нет (Все метки)

Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Доброго всем дня!
Моделирую Lean/Kanban, есть такое требование: пользователь должен иметь возможность менять размер очереди (от этого меняются статистические данные и графики в реальном времени).
Проблема в том, что если в очереди 10 агентов, то при уменьшении вместимости (capacity) очереди до 5, все лишние агенты из неё выбрасываются. В Канбан логика несколько иная: агенты должны остаться в очереди, но и новые агенты не должны в очередь попадать, пока там не появится место. Вопрос, как это наиболее оптимально организовать?
Первая идея была сделать очередь с максимальной вместимостью, но задать Условие выбора ресурса, как это можно сделать у Service или у Seize типа queueOccupiedSlots < eueSize.getIntValue().
Пока в голову приходит только сделать костыль, поставив Service перед очередью с 0-й задержкой. Может есть более изящные решения?

Добавлено через 6 минут
C сервисом как-то совсем криво, нужны же ещё ресурсы какие-то фейковые (

Добавлено через 1 час 12 минут
Всё гениальное просто: добавил Hold с этим условием. Одно замечание: при выходе агента из очереди нужно вызывать hold.recalculateConditions();
Прошу прощения за беспокойство
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2015, 12:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возможно ли смоделировать очередь, где условие входа в очередь задаётся логическим выражением? (AnyLogic):

Смоделировать очередь с помощью масива - C++
Задачи: 1)Реализовать стек, в описании которого добавлено две переменные EMPTY и FULL вместо функций empty() и full() соответственно....

Две телефонистки на междугородней станции обслуживают общую очередь заказов. Смоделировать процесс - GPSS
Две телефонистки на междугородней станции обслуживают общую очередь заказов. Очередной заказ обслуживает та телефонистка, которая первая...

Очередь (сделать очередь, чтобы добавляло, удаляло, читало. Не STL.) - C++
Помогите пожалуйста написать очередь. Есть Температура double и ее тип int ну и нужно сделать очередь, чтобы добавляло, удаляло, читало....

Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете - C++
Сформировать очередь по файлу целых чисел. Промоделировать очередь в супермаркете. В каждый момент времени происходит одно из событий:...

Как переделать очередь основанную на массиве в циклическую очередь - PascalABC.NET
Как переделать очередь основанную на массиве в циклическую очередь? Тут кое-какие попытки. Беда с выводом так же присутствует) uses ...

Задача на очередь (вывод сообщения, что очередь пуста) - C++
Доброго дня! Есть задачка на очередь, которая работает нормально, только надо добавить код, чтобы выводил сообщение, что очередь пуста.....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Dukalys
Модератор
904 / 907 / 233
Регистрация: 13.02.2012
Сообщений: 2,940
06.05.2015, 12:55 #2
Не совсем понятна задача, с кабаном (Lean/Kanban) не знаком.

Очередь переменного размера хорошо! Но причём здесь сервис,не понимаю.

Попробую уточнить задачу.
Заявки входят в систему с постоянным потоком? или этот поток зависит от состояния очереди? Может быть ограничивать поток на входе, в зависимости от числа (наличия) свободных мест в очереди?

Заявки застающие систему с занятой очередью получают отказ? или куда сохраняются.

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

Добавлено через 59 секунд
hold.recalculateConditions();
а что оно делает? У вас условие блокировки стоит? (не ручной режим)
0
IT_Improver
0 / 0 / 2
Регистрация: 30.03.2015
Сообщений: 14
06.05.2015, 14:53  [ТС] #3
1. Заявки входят в систему с постоянным потоком.
2. Там фишка в том что перед этой очередью есть безлимитная очередь Backlog (особенности доменной области)

Да, взял в итоге Hold
Условие блокировки: queueOccupiedSlots >= queueSize.getIntValue()
где queueOccupiedSlots - переменная хранящая размер очереди (queue.queueSize() почему-то криво работает в условии блокировки Hold)
queueSize - текстовое поле для управления размером очереди.
0
Dukalys
Модератор
904 / 907 / 233
Регистрация: 13.02.2012
Сообщений: 2,940
06.05.2015, 16:23 #4
Если не секрет, какую технологию(и) моделируете?
0
IT_Improver
0 / 0 / 2
Регистрация: 30.03.2015
Сообщений: 14
06.05.2015, 16:44  [ТС] #5
Моделирую систему обслуживание заявок по правилам Lean/Kanban
0
Dukalys
Модератор
904 / 907 / 233
Регистрация: 13.02.2012
Сообщений: 2,940
06.05.2015, 18:16 #6
Немного почитал, мутная какая то вещь А по терминам backlog и другим похоже на сетевые вещи.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2015, 18:16
Привет! Вот еще темы с ответами:

Очередь, теория. Очередь на шести стеках - C++
Здравствуйте, пытаюсь побольше найти информации про очереди и их применение в программировании. Из того что я нашел, все описывается лишь...

Очередь сообщений. Не могу поставить в очередь - C Linux
День добрый, стоит задача обмениваться данными между двумя процессами по средствам очереди сообщений, написал вот такой код: #define...

Основные операции: вставить, удалить эл. из очереди, просмотреть первый эл., удалить очередь и напечатать очередь. - Turbo Pascal
Динамические структуры данных, обчная очередь. Основные операции: вставить, удалить эл. из очереди, просмотреть первый эл., удалить очередь...

Что то нето с логическим выражением - C++
Показывает какую то ошибку подскажите где ошибка? #include &quot;stdafx.h&quot; #include &quot;math.h&quot; int _tmain(int argc, _TCHAR* argv) { int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.05.2015, 18:16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru