Taskjuggler с несколькими зависимостями, где длина задачи зависит от предыдущих задач - PullRequest
2 голосов
/ 29 августа 2010

У меня есть задача Z, которую можно выполнить только после того, как либо задача X, либо задача Y завершена.Также:

% Продолжительность задачи Z зависит от того, какой из X или Y выполнен:

%. Если задача X выполнена, задача Z занимает 4 часа

%. Еслизадача Y завершена, задача Z занимает 7 часов

% Задача X занимает 5 часов для завершения

% Задача Y занимает 3 часа для завершения

% Задача X и задача Yисключительны: вы не можете сделать и то, и другое (но это, вероятно, не имеет значения, поскольку это никогда не будет оптимальным)

Вопрос: как быстро я могу выполнить задачу Z?

В этом случае ответ, очевидно, составляет 9 часов (X, а затем Z), но моя настоящая проблема имеет много подобных случаев.

Может ли Taskjuggler помочь мне?Может другой инструмент?Дополнительные примечания:

% Это расширение «проблемы коммивояжера», и, следовательно, NP-hard.Я был бы счастлив с хорошим, но не оптимальным решением.

% В реальной задаче некоторые задачи являются «вехами», которые имеют неотрицательное значение.Моя цель - максимизировать сумму этих значений.Тем не менее, я более чем рад решить проблему минимального времени в первую очередь.Кроме того, значения могут быть одинаковыми для всех этапов, что упрощает задачу.

Примечание: поскольку в Mathematica есть функция, позволяющая быстро (но не оптимально) решить проблему TravelingSalesman, добавив ее в качестве тега.

1 Ответ

0 голосов
/ 01 сентября 2010

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

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