problema del commesso viaggiatore in java

Approfondimenti e discussioni sul linguaggio Java per creare applicazioni professionali e mutipiattaforma
Rispondi
Avatar utente
lullabi
Messaggi: 1
Iscritto il: 16 lug 2018, 15:55

problema del commesso viaggiatore in java

Messaggio da lullabi » 16 lug 2018, 16:06

buongiorno a tutti. mi sono ritrovata a dover risolvere un esercizio di cui vi inoltro il testo:


Un’azienda casearia deve organizzare il sistema di distribuzione nella città di Roma allo scopo di consentire una capillare e puntuale fornitura dei prodotti presso la rete dei rivenditori. Il numero di rivenditori che richiede i servizi dell’azienda è pari a n. I rivenditori sono di due tipi:
(1) n1 devono essere riforniti tutti i giorni
(2) n2 devono essere riforniti a giorni alterni (un giorno sì e uno no). Sapendo che la ditta conosce le distanze fra ogni coppia di rivenditori e fra i rivenditori e la sede della ditta, individuare due cicli (uno per i giorni dispari e uno per i giorni pari) che permettano alla ditta di percorrere il minimo numero di chilometri ed allo stesso tempo di rifornire lo stesso numero di clienti ogni giorno (ossia n1 + n2/2).

INOLTRE si vuole Proporre un algoritmo di tipo euristico di TABU SEARCH o GENETICO per la soluzione di tale problema supponendo che l’input sia fornito nel seguente modo:
1) il numero di rivenditori espresso tramite due numeri interi n1 e n2; 2) una matrice per le distanze non-negative fra ogni coppia di rivenditori e fra i rivenditori e la sede della ditta e viceversa (dove la riga e la colonna 1 fanno riferimento alla sede della ditta, le righe e le colonne da 2 a n1+1 fanno riferimento al primo insieme di rivenditori ed infine le righe e le colonne da n1+2 a n1+ n2+1 fanno riferimento al secondo insieme di rivenditori);

IL FILE DI INPUT mi da n1=5 e n2=4 e la matrice delle distanze pari a:

(0 39 42 6 52 30 33 49 47 4
39 0 42 54 51 71 72 43 27 33
42 42 0 30 51 48 52 48 29 2
6 54 30 0 6 91 36 53 76 68
52 51 51 6 0 91 46 47 84 76
30 71 48 91 91 0 60 39 37 29
33 72 52 36 46 60 0 36 63 33
49 43 48 53 47 39 36 0 89 6
47 27 29 76 84 37 63 89 0 39
4 33 2 68 76 29 33 6 39 0)

è possibile utilizzare o MATLAB oppure Java.
Ringrazio chiunque abbia voglia di aiutarmi

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite