|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
|
Commesso viaggiatore
Devo risolvere il problema del commesso viaggiatore per l'università.
Ho letto su internet il problema ma non mi è chiara una cosa: le città sono ognuna collegata con tutte le altre città? Cioè da ogni città esiste un percorso per arrivare ad un'altra qualsiasi? Oppure ci possono essere dei vincoli legati al grafo iniziale che magari non prevede che la città A sia collegata direttamente con la città Z? Inoltre esiste il vincolo di dover passare da ogni città una sola volta? probabilmente avrò altre domande ma mi verrano in mente mentre programmo. Intanto grazie a chi mi risponderà. Ultima modifica di -Ivan- : 12-03-2006 alle 16:30. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2005
Città: Napoli (provincia)
Messaggi: 2372
|
Qui
http://www.dia.unisa.it/professori/uv/ASD/l22.pdf c'è la lezione di un mio prof di Università sugli algoritmi fra cui il problema del commesso viaggiatore. Parla di tutti i vertici collegati due a due fra loro e della diseguaglianza triangolare.
__________________
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
|
Vorrei chiedervi una spiegazione su questo problema perchè non riesco a capirlo fino in fondo.
Mi risulta un po' complicato spiegarvi cosa non mi è chiaro con i grafi quindi faccio un esempio con delle città italiane. Io sono di Milano, devo fare un viaggio (al termine del viaggio dovrò quindi tornare a Milano), devo andare a Monza, Rimini, Napoli, Palermo. Se io faccio: Milano->Monza Monza->Rimini Rimini->Napoli Napoli->Palermo Palermo->Milano non è questa una soluzione ottima??? Cioè io in questo caso vado sempre nella città che mi è più vicina in quel momento, non riesco a capire perchè andare sempre nella città più vicina non sia una soluzione del problema, tanto alla fine la distanza tra le città è sempre quella e tu la devi percorrerre tutta in tutti i casi, la allunghi solamente se sei in un punto e da li vai in una città che non è la più vicina per poi andare in una città lontana da quella di arrivo ma vicina a quella in cui eri in precedenza (è un po' complicato spiegarlo) cioè facendo ad esempio: Milano->Napoli Napoli->Rimini Rimini->Monza ecc. Non è così? Cos'è che non ho capito del problema? Ho letto qualche soluzione su intenret capendoci molto poco ed è molto complicata la faccenda, mi sono perso qualche pezzo mi sa. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
ogni strada ha il suo costo, e di solito si cerca di minimizzare il costo totale. quindi la tua soluzione è una souzione, ma magari non è la soluizione ottima, perchè magari puoi trovare un èpercorso che ti fà fare qualche KM in meno.
e poi tutte e città sono collegate con tutte le città, se le colleghi a 2 a 2, è un caso particolare, e mi sembra che non sia la stesssa cosa, ora non ne sono sicuro, ma se trovo qualcosa d+ preciso, vi faccio sapere.
__________________
My gaming placement |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
|
Quote:
Ultima modifica di -Ivan- : 26-03-2006 alle 19:00. |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bordeaux - France
Messaggi: 364
|
Il problema del commesso viaggiatore, nella sua accezione più generale, non fa alcuna supposizione in merito al grafo su cui dovrà lavorare. In altre parole, non si assume che tutte le città siano collegate, e non si assume che il costo di un viaggio dipenda dalla distanza "in linea d'aria", per intenderci.
Se si lavora in un grafo completo in cui vale la disuguaglianza triangolare, il problema viene spesso chiamato "TSP metrico". Questo ha il vantaggio, rispetto al primo, di essere approssimabile con fattore 1,5, mentre il primo non è approssimabile per nessun fattore. Questo significa che, per il primo, possiamo sviluppare algoritmi e euristiche di qualsiasi tipo, ma non saremo mai certi di quanto queste saranno efficienti. Al contrario, per il TSP metrico, è facile trovare una soluzione "abbastanza buona", ovvero una soluzione per la quale possiamo garantire che il suo costo sarà inferiore a 1,5 volte il costo della soluzione ottima. L'euristica proposta da te è una delle più intuitive, nonchè la prima ad essere presentata ad ogni corso, ma fallisce in molti casi. Pensa a questo caso: 4----1 -------------------------------------------------------5 3----2 L'algoritmo che proponi tu, partendo da uno, andrebbe subito a 2 (immagina che sia più vicino di 4, 3, e ovviamente 5), poi a 3, 4, e quindi 5 e di nuovo a 1. La soluzione ottima, invece, ha come percorso 5, 2, 3, 4 e 1.
__________________
- fuocofatuo - |
|
|
|
|
|
#7 | ||
|
Senior Member
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
|
Quote:
Si facendo un po' di prove effettivamente è abbastanza banale che la soluzione che avevo in mente fosse una discreta minchiata Quote:
Per ora mi sono messo a smanettare con le matrici sperando di capire qualcosa di più. Tra l'altro io non so nemmeno bene quale sia la consegna che ci ha dato il prof, so solo che dobbiamo implementare un algoritmo per il tsp e che lo dobbiamo fare senza cercare codice su internet, penso che gli basti una soluzione anche molto approssimativa. |
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:05.











Raffo™ (io, non la birra) |
|







