La pianificazione dei viaggi è una necessita che si presenta nel caso l’impresa abbia dei vettori di proprietà che utilizza per spedire il materiale ai clienti o ai terzisti. La gestione dei viaggi comporta due fasi, una prima fase in cui si inseriscono le spedizioni da effettuare ed una fase successiva in cui si abbinano le spedizioni ai vettori, è necessario creare le seguenti tabelle:
Spedizione
CODICE, QT, VOLUME, PESO, DEP PARTENZA, DEP ARRIVO, DATA
Vettori
CVETTORE, DESCRIZIONE, VOLUME, PESO MAX
Distanza
DEP PARTENZA, DEP ARRIVO, DISTANZA, TEMPO
A questo punto si crea una tabella viaggi raggruppando per depositi di partenza ed arrivo e sommando il volume ed il peso.
SELECT Spedizione.[DEP PARTENZA], Spedizione.[DEP ARRIVO], Spedizione.DATA, SUM(Spedizione.VOLUME) AS [VOLUME TOTALE], SUM(Spedizione.PESO) AS [PESO TOT] FROM Spedizione GROUP BY Spedizione.[DEP PARTENZA], Spedizione.[DEP ARRIVO], Spedizione.DATA; |
SELECT Spedizione.[DEP PARTENZA], Spedizione.[DEP ARRIVO], Spedizione.DATA, Sum(Spedizione.VOLUME) AS [VOLUME TOTALE], Sum(Spedizione.PESO) AS [PESO TOT] FROM Spedizione GROUP BY Spedizione.[DEP PARTENZA], Spedizione.[DEP ARRIVO], Spedizione.DATA;
A questo punto si incrocia la tabella viaggi con la tabella distanza e la tabella vettori, in modo da avere la seguente tabella:
DEP PARTENZA, DEP ARRIVO, DATA, PESO TOTALE, VOLUME TOTALE, CVETTORE, VOLUME, PESO MAX, TEMPO
A questo punto abbiamo tutte le combinazioni viaggi vettori possibile, di queste bisogna selezionare tramite un algoritmo di ottimizzazione quelle fattibili tenendo conto dei seguenti vincoli:
- Il peso totale ed il volume totale della spedizione deve essere inferiore al volume ed al peso del vettore.
- L’ordine delle fermate dei vettori non deve superare il tempo lavorativo massimo giornaliero.
Inoltre bisogna massimizzare la saturazione del carico dei vettori e minimizzare il tragitto.