Как моделировать конвейерную обработку при планировании задач и распределении ресурсов в CPLEX? - PullRequest
0 голосов
/ 02 июля 2018

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

  • Ресурс может запустить новую задачу в четную единицу времени, если прошло не менее 2n единиц времени с момента запуска предыдущей задачи, начатой ​​в четную единицу времени.
  • То же самое относится к нечетным единицам времени.

Ниже приведено правильное планирование для одного ресурса. Каждое число означает, что в это время было запущено новое задание.

  • 0, 1, 2n, 2n + 1, 4n, 4n + 1, ...

У меня много задач с отношениями предшествования (я знаю, как справиться с отношениями предшествования) и несколькими ресурсами такого рода. Я выполнил планирование следующим образом, который не дает оптимального результата:

  • Хотя задача может начинаться с нечетной или четной единицы времени, я ограничил половину задач для запуска с четной единицы времени, а другую половину - с нечетной единицей времени, используя «hibidStart »и« stepFunction ».
  • Для ресурса s я рассмотрел два "cumulFunction" s_even и s_odd.
  • Задачам, запуск которых запрещен в четные (нечетные) единицы времени, необходим ресурс s_odd (s_even). Я определил это ограничение, используя «cumulFunction» и «pulse».

Несмотря на то, что приведенная выше процедура производит правильное планирование, этого недостаточно, поскольку я ищу оптимальное решение. Кто-нибудь знает, как решить эту проблему в CPLEX?

1 Ответ

0 голосов
/ 04 июля 2018

как сказано в https://www.ibm.com/developerworks/community/forums/html/topic?id=ac7a4fa1-f304-420c-8302-18501b4b7602&ps=25 Филиппом Лабори

"просто рассмотрите дополнительную переменную интервала 'task' длиной 2n, которая представляет задачу и у которой есть альтернатива для двух необязательных задач 'taskEven' и 'taskOdd'. Эти два интервала уже есть в вашей модели (с адекватные ограничения запрещения и запуска, и с вкладом в адекватный ресурс). "

привет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...