2

J'ai une tâche Z qui ne peut être remplie qu'une fois que soit la tâche X ou la tâche Y est terminée. Aussi:taskjuggler w/dépendances multiples où la longueur de la tâche dépend des tâches précédentes

% La longueur de la tâche Z dépend de X ou Y est terminé:

% Si la tâche X est terminée, la tâche Z prend 4 heures

% Si la tâche Y est terminée, la tâche Z prend 7 heures

% tâche X prend 5 heures pour terminer

% tâche y prend 3 heures pour terminer

% tâche X et y sont exclusifs tâche: vous ne pouvez pas faire les deux (mais c'est probablement sans importance, puisque cela ne serait jamais optimal)

La question: quelle est la tâche la plus rapide que je puisse accomplir Z?

Dans ce cas, la réponse est évidemment 9 heures (X puis Z), mais mon vrai problème a de nombreux cas comme celui-ci.

Est-ce que taskjuggler peut m'aider? Peut-on utiliser un autre outil? Notes supplémentaires:

% Ceci est une extension du "problème de voyageur de commerce", et donc NP-difficile. Je serais heureux avec une solution bonne mais non optimale.

% Dans le problème réel, certaines tâches sont des "jalons" qui ont une valeur non négative de . Mon objectif est de maximiser la somme de ces valeurs . Cependant, je suis plus qu'heureux de résoudre d'abord le problème de temps minimum . De plus, les valeurs peuvent être égales pour tous les jalons , ce qui simplifie le problème. NB: puisque Mathematica a pour fonction de résoudre rapidement (mais de façon non optimale) le problème TravelingSalesman, en l'ajoutant comme une balise.

Répondre

0

Vous devriez vous intéresser à la programmation dynamique. Fondamentalement, vous réutiliserez les solutions aux sous-problèmes pour construire une solution pour l'ensemble de votre problème. Vous pouvez le faire dans Mathematica ou dans la plupart des langages de programmation.