1 / 1 / 1
Регистрация: 19.08.2015
Сообщений: 17
|
|
1 | |
Блок queue, комбинаторика27.02.2016, 07:18. Показов 1312. Ответов 3
Метки нет (Все метки)
Подскажите пожалуйста. Есть процесс, в блок queue попало одновременно к примеру 4 заявки. В зависимости от того в какой будет последовательности выполнятся заявки, изменится общие затраченное время на них всех. Возможных комбинаций 4! = 24.
Как организовать оптимизацию что бы она использовала одну за другой комбинацию в блоке queue? Целевая функция будет переменная общего затраченного времени на выполнение всех заявок по процессу.
0
|
27.02.2016, 07:18 | |
Ответы с готовыми решениями:
3
Разница между finalization queue и freachable queue Разница между queue.synchronized и concurrent queue Переполнение Queue, методы оптимизации Queue Queue vs Queue.Synchronized vs ConcurrentQueue |
1816 / 1030 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
27.02.2016, 22:54 | 2 |
Главный вопрос - точно общее время обслуживания зависит от последовательности обслуживания.
Приоритеты абсолютные, относительные? Первая заявка встает на обслуживание она ведь может встать на обслуживание вне зависимости от приоритета если относительные приоритеты. Я бы остановился на абсолютном приоритете. Создать 4 источника соурс и создавать заявки с различными приоритетами. В качестве приоритета указать один из 4 созданных параметров, в значениях которых указывать приоритет. Настроить эксперимент оптимизации таким образом, чтобы каждый параметр приоритета изменялся например от 1 до 4. В результатах оптимизации искать допустимый вариант в котором не повторяются приоритеты 4 заявок.
0
|
1 / 1 / 1
Регистрация: 19.08.2015
Сообщений: 17
|
|
04.03.2016, 08:58 [ТС] | 3 |
Это я к примеру сказал что 4 заявки, их может быть 50, соответственно 50!
Мне нужно тогда перед блоком queue, к примеру блок source, вытащить массив заявок на выходе. Потом перед входом в queue, запихать в нужной мне порядке данный массив. Каким это методом делать я не нашел, подскажите пожалуйста.
0
|
1816 / 1030 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
04.03.2016, 20:27 | 4 |
В самом блоке Source можно установить приход сразу нескольких заявок.
Естественно для того чтобы разделять как-то заявки, делать различное время их обслуживания - нужно задать индивидуальные для них параметры. Нужно применить агентное моделирование. Сделать заявки - агентами. После этого задать параметры агентов. После этого в блоке Соурс указать что создаются такието агенты (класс) с такимито параметрами. В блоке Очереди настроить выстраивать агентов по приоритету (указать имя параметра и класс обслуживаемых заявок). Посмотрите литературу Боев например. на оф. сайте anylogic.ru
0
|
04.03.2016, 20:27 | |
04.03.2016, 20:27 | |
Помогаю со студенческими работами здесь
4
Нарисуйте блок-схему реализации метода Queue::Get. Объясните работу метода Error C2664: Client::First: невозможно преобразовать параметр 1 из "std::queue<_Ty>" в "std::queue<_Ty> &" Multiprocessing Queue vs multiprocessing.Manager Queue Queue Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |