Il Problema del Commesso Viaggiatore. Traveling Salesman’s Problem (TSP) Un commesso viaggiatore deve visitare un certo numero di città Conosce la distanza.

Slides:



Advertisements
Presentazioni simili
TSP Traveling Salesman’s Problem Università di Camerino
Advertisements

Il problema del minimo albero ricoprente in un grafo non cooperativo
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Il Problema del Commesso Viaggiatore
Informatica Generale Alessandra Di Pierro
Cammini minimi con una sorgente
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Algoritmi e Dimostrazioni Stefano Berardi
Algoritmi e Strutture Dati
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Scenario Archi di un grafo controllati da agenti egoistici
Meccanismi one-parameter. Riepilogo Archi di un grafo controllati da agenti egoistici Solo lagente conosce il peso associato al proprio arco Obiettivo:
Problemi intrattabili e quantum computing
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Algoritmi e Strutture Dati (Mod. B)
Trovare il percorso minimo da b ad ogni altro vertice
Seminario su clustering dei dati – Parte II
Modelli simulativi per le Scienze Cognitive
Algoritmi e Strutture Dati
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente)
Ingegneria della conoscenza e sistemi esperti Dario Bianchi, 1999 Risoluzione di problemi e ricerca.
Elementi di Informatica
grafi e reti Ottimizzazione su Reti - Network Optimization Testi :
Fibonacci Heaps e il loro utilizzo nell’algoritmo di Prim
Biologia Computazionale - Algoritmi
Dall’algoritmo al programma.
Elementi di Informatica di base
Algoritmi e linguaggi di programmazione
La complessità media O(n log n) di Quick-Sort vale soltanto se tutte le permutazioni dell’array in ingresso sono ugualmente probabili. In molte applicazioni.
Euristiche: algoritmi costruttivi e di ricerca locale
Cammini minimi da un sorgente
Rete di Hopfield applicata al problema del TSP Federica Bazzano
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
La ricorsione.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Olimpiadi di Informatica 2010 Giornate preparatorie
Università degli Studi di Roma Tor Vergata
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
algoritmi approssimati
Algoritmi.
NP completezza. Problemi decisionali I problemi decisionali sono una classe di problemi dove per ogni possibile ingresso un algoritmo deve scegliere una.
1/20 NP completezza. 2/20 Problemi astratti Un problema è un’entità astratta (es. il TSP). Una istanza del problema è un suo caso particolare in cui vengono.
Intelligenza Artificiale Risoluzione di Problemi
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
L’ELABORATORE ELETTRONICO uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari le azioni vengono eseguite su oggetti (dati) per produrre.
Capitolo 13 Cammini minimi: Bellman e Ford Algoritmi e Strutture Dati.
Algoritmi approssimati. Algoritmi approssimati Per qualche problema NP-completo esistono algoritmi polinomiali che ritornano soluzioni “quasi ottime”.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
Algoritmi e Strutture Dati
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Cammini minimi fra tutte le coppie:
Cammini minimi in grafi:
Il computer ragiona? Problemi e algoritmi. Paola Pianegonda2 Cos’è un problema?  Problema è qualsiasi situazione della quale non conosciamo la soluzione.
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
GLI ALGORITMI Appunti preparati dalla prof.ssa Maria D’Angelo.
ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi di routing statici (pag.72) UdA2L4 Questi algoritmi, sono eseguiti solamente all'avvio della rete, e le decisioni di routing a cui essi pervengono.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Transcript della presentazione:

Il Problema del Commesso Viaggiatore

Traveling Salesman’s Problem (TSP) Un commesso viaggiatore deve visitare un certo numero di città Conosce la distanza da una città all’altra Vuole determinare il percorso più breve che gli permetta di partire da casa sua e di farvi ritorno dopo aver visitato ogni città una sola volta. Come può fare?

Caratteristiche TSP e’ uno dei problemi matematici piu’ studiati in informatica Appartiene alla classe dei problemi difficili (NP- hard) La prima formulazione risale al 1857 e al gioco icosian inventato dal matematico William Hamilton

Forma generale TSP La formulazione generale considera forme geometrie qualsiasi e distanze tra le citta’ Venne introdotta tra gli anni ‘40 e ’50 Nel corso degli anni ha trovato numerose istanziazioni interessanti: –logistica e trasporti –costruzione di circuiti stampati (pianificazione del percorso del trapano) –protocolli di routing –DNA sequencing –...

Modelliamo e Studiamo TSP

Le citta’... (nodi) AOSTA MILANO TORINO GENOVA

Le distanze... (archi pesati) AOSTA MILANO TORINO GENOVA

Modello A B CD Nodi=citta Archi=strade Pesi=distanze GRAFO!

Percorso in un grafo A B CD A, D, B rappresenta un percorso da A a B con peso 16+5

TSP come problema sui grafi Dato un grafo G con N nodi e archi pesati trovare un percorso che sia: –un ciclo hamiltoniano (tour) inizia e finisce nello stesso node passa da tutti i nodi una sola volta –con peso totale (somma dei pesi) minimo

Esempio C AB D 4...

Ciclo hamiltoniano A,B,C,D,A: =11 Con questo percorso “visito” tutti i nodi! AB C D 4

Percorso non hamiltoniano AB C D 4

AB C D 4

Come si risolve TSP?

Soluzioni a TSP Trovare manualmente una soluzione esatta del problema TSP (cioe’ calcolare un tour minimo) e’ molto difficile La difficolta’ e’ legata al numero di possibili percorsi che occorre esplorare per calcolare quello minimo

Per capire la difficolta’ del problema... facciamo due conti Negli USA ci sono 49 stati continentali + un distretto Supponiamo che Obama programmi di fare un solo comizio in ogni stato

Quanti percorsi devo considerare per calcolare il migliore? Partendo da Washington, Obama ha 49 possibili scelte per la prima tappa Fissata la prima tappa, rimangono 48 scelte per la seconda tappa Fissata la seconda tappa, rimangono 47 scelte per la terza tappa...

Il numero di possibili percorsi tra i quali trovare il piu’ breve e’ 49! = 49 * 48 *... * 3 * 2 * 1... nell’ordine di cioe’ maggiore del numero di atomi di cui è composta la Terra

Metodi di risoluzione per TSP

Come si puo’ fare? Per poter affrontare questo tipo di problemi dobbiamo necessariamente programmare delle soluzioni su uno o piu’ elaboratori Per calcolare le soluzioni usiamo quindi dei programmi che rappresentano i passi che l’elaboratore deve eseguire (algoritmo) Lo sviluppo di algoritmi per risolvere problemi come TSP e’ uno degli obiettivi principali dell’Informatica

Algoritmo Algoritmo: sequenza di istruzioni che deve eseguire l’elaboratore Si scrivono usando i linguaggi di programmazione Esempi di istruzioni: –memorizza... in... -confronta... con... -per ogni valore in... esegui ripeti... fino a che... diventa vera

Algoritmi per TSP Algoritmi esatti Applicabili solo a problemi con un numero di città relativamente basso Algoritmi euristici Producono soluzioni probabilmente buone, ma impossibili da provare essere ottimali

Un algoritmo esatto Generate & Test Per ogni permutazione P di [1...N] –calcola la somma S dei pesi sugli archi del ciclo indotto da P – se S e’ minore dei precedenti calcolati memorizza il cammino in Min Alla fine Min contiene un ciclo “minimo”

Raffinamento MinD=MAX_INT MinP=nullo Per ogni permutazione P=[i1,....,iN] di [1...N] –S=dist(i1,i2)+....+dist(iN,i1) – se S < MinD allora MinP=P MinD=S Alla fine MinP contiene tour minimo

Problema Abbiamo visto che per TSP con molte citta’ il numero di possibili percorsi puo’ essere astronomico! Provate a pensare e scrivere un algoritmo euristico... quello che probabilmente usate nei vostri viaggi...

Un Algoritmo Euristico Nearest Neighbour (NN) Partendo da un nodo iniziale scelto a piacere, ci muoviamo sempre verso la citta’ piu’ vicina non ancora visitata L’algoritmo termina quando abbiamo visitato tutte le citta’

Esempio Nearest Neighbour AB C D 4...

Algoritmo Nearest Neighbour I = nodo iniziale Fino a che ho ancora nodi da visitare –Sia J il nodo non ancora visitato piu’ vicino ad I marco J come visitato –proseguo la ricerca La sequenza dei nodi marcati rappresenta il ciclo hamiltoniano

Osservazioni su NN E’ un algoritmo “intuitivo” L’algoritmo Nearest Neighbour non da’ sempre la soluzione ottimale (cercare di ottenere un vantaggio immediato non sempre e’ la scelta migliore...) Tuttavia e’ una buona approssimazione dell’algoritmo ottimale

Esistono molti altri modi Algoritmi basati su programmazione intera lineare (LIP) –si codifica il problema come un insieme di disequazioni ed una funzione costo –si usano euristiche per problemi di LIP Algoritmi genetici...

Sistemi per risolvere TSP Concorde: Nel 2004 ha calcolato un tour minimo attraverso citta’ in Svezia ( km)

Prima della pratica... un po’ di esercizi di riepilogo...

Quanti e quali cicli hamiltoniani contiene il seguente grafo? AB C D 4

Applicate l’algoritmo Nearest Neighbour al seguente grafo a partire dal nodo A AB C D 4 3

Applicate l’algoritmo Nearest Neighbour al seguente grafo a partire dal nodo D AB C D 4 3

Aggiungete i pesi agli archi in modo che la soluzione calcolata con l’algoritmo NN a partire dal nodo A non sia quella ottimale AB C D

Provate a risolvere l’icosian game... Il tour deve passare una sola volta da ogni nodo E’ un caso molto particolare di TSP!