Wie entwickelt man eine effiziente Job-Scheduling mit Einschränkungen?Constraints Programmierung in Java
sollte der Planer diese Methoden sind:
startBeforeEndOf(Job j)
startAfterEndOf(Job j)
startBeforeStartOf(Job j)
startAfterStartOf(Job j)
endBeforeEndOf(Job j)
endAfterEndOf(Job j)
endBeforeStartOf(Job j)
endAfterStartOf(Job j)
eine ID und die Zeitparameter Jeder Job hat.
Eine mögliche Lösung für diese Angelegenheit basiert möglicherweise auf technischer Rückverfolgung. Die Jobs werden als Auswahlpunkte und als temporäre Zeitpunkte als Auswahl verwendet (im schlimmsten Fall ist die Gesamtdauer der Aktivität die Summe der Dauer der Arbeit, was zu einer vollständig sequenziellen Ausführung führt).
Alternativ sollte ich die Daten adäquat darstellen und dann eine Zeitplanung auf der Zeitachse erstellen, die Arbeit unter den Bedingungen platzieren und in einem Job vorwärts gehen (und alle Jobs, die davon abhängen), wenn eine Bedingung nicht erfüllt ist. Aber ich weiß nicht, wie genau ich das in Java machen kann.
Mit anderen Worten, ich suche nach einer Möglichkeit, die intensive Backtracking-Ansatz zu vermeiden, in der Job-Management beschrieben.
Ist das Hausaufgaben? Kennen Sie irgendwelche Algorithmen, die dafür verwendet werden könnten? Sie könnten Heuristiken in Ihren Suchprozess einfügen, aber Backtracking scheint Teil der Lösung zu sein. Es sei denn, Sie möchten für erschöpfende Suche natürlich gehen :-) –
Ich denke, verschiedene Liste zu verwenden, um jeden Job gemäß seiner Einschränkung für private Liste beispielsweise zu trennen startBeforeEnd; \t private Liste startAfterEnd; \t private Liste startBeforeStart; \t private Liste startAfterStart; \t private Liste endBeforeEnd; \t private Liste endAfterEnd; \t private Liste endBeforeStart; \t private Liste endAfterStart; \t private Liste eingeschränkt; ABER ich weiß nicht, wie genau sich das entwickeln kann. –
AndreaF