2014-06-27 12 views
5

È possibile gestire le relazioni tra i lavori (in questo caso i servizi) in jsprit?Lavori correlati in JSprit

Ad esempio, un lavoro deve iniziare contemporaneamente con uno o più altri lavori. Oppure un lavoro non deve iniziare prima della fine di un altro lavoro (sequenza normale).

In caso contrario, conosci altre librerie java in grado di gestire questo tipo di restrizioni?

Grazie!

risposta

10

Sì, è possibile gestire tali relazioni con jsprit. È un po 'di codice, ma - penso - facile da implementare. Per illustrarlo, vi ho preparato cinque esempi basati sui problemi di routing del veicolo (VRP) sviluppati da Christofides-Mingozzi-Toth * (prima istanza di benchmarking). Segui i collegamenti dietro i singoli titoli e ottieni il codice. Si noti che la prima attività in una rotta è contrassegnata da un triangolo. Le etichette indicano jobIds.

noConstraints

noConstraintsAtAll

capacityConstraints

enter image description here

job 13 and 21 in same route

enter image description here

job 13 and 21 in same route AND 21 before 13

enter image description here

job 13 and 21 in same route AND 13 right after 21

enter image description here

Visita http://jsprit.github.io/ e si arriva a un certo numero di esempi di codice e documentazione.

* N. Christofides, A. Mingozzi e P. Toth. Il problema del routing del veicolo. In N. Christofides, A. Mingozzi, P. Toth e C. Sandi, editori, Ottimizzazione combinatoria. John Wiley, Chichester, 1979.