Планирование с переменными ресурсами - PullRequest
0 голосов
/ 07 октября 2010

(Прежде всего, извините за мой английский, это не мой родной язык)

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

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

В настоящее время я использую алгоритм EDF (http://en.wikipedia.org/wiki/Earliest_deadline_first_scheduling)) и рекурсивно вызываю функцию с более высоким рабочим пределом, если она не может правильно планировать все задания, но я думаю, что это не работает правильнопотому что у меня нет реального способа измерить, когда я снова смогу снизить лимит ресурсов.

Существуют ли какие-либо алгоритмы, которые работают для моей проблемы, или какие-либо другие умные идеи?ваша помощь.

1 Ответ

0 голосов
/ 07 октября 2010

Задачу планирования часто можно решить очень эффективно, сформулировав ее как смешанную целочисленную программу (MIP)

http://en.wikipedia.org/wiki/Mixed_integer_programming#Integer_unknowns

или с помощью программирования с ограничениями (CP)

http://en.wikipedia.org/wiki/Constraint_programming

Для MIP или CP вы найдете как бесплатные, так и коммерческие решения, которые могут решить вашу проблему.

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

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