Euristiche - www3 - Università di Bologna
Transcript
Euristiche - www3 - Università di Bologna
9 Algoritmi Euristici introduzione 1 Vittorio Maniezzo – Università di Bologna Molti problemi reali richiedono soluzioni algoritmiche I camion devono essere instradati VRP, NP-hard I depositi o i punti di vendita devono essere localizzati CPMP, NP-hard Le reti di comunicazione devono essere disegnate Network design, NP-hard I container devono essere riempiti 3D-packing, NP-hard I collegamenti radio devono avere una frequenza associata FAP, NP-hard Legno, vetro, pelle devono essere tagliati … Vittorio Maniezzo – Università di Bologna Nesting, NP-hard 2 1 Come gestire l’NP-completezza • Istanze piccole; • Casi speciali polinomiali; • Algoritmi approssimati: garantiscono di trovare una soluzione di errore massimo noto; • Algoritmi probabilistici garantiscono che per istanze sufficientemente grandi la probabilità di ottenere una cattiva soluzione è molto piccola; • Algoritmi euristici: nessuna garanzia, ma storicamente, in media, questi algoritmi hanno il miglior rapporto qualità/tempo per il problema in esame. Vittorio Maniezzo – Università di Bologna 3 Considerazioni computazionali La dimensione delle istanze dei problemi reali impedisce di risolverle all’ottimo in un tempo accettabile. Però questi problemi devono essere risolti. Da qui la necessità di trovare soluzioni subottime, che però siano di “qualità accettabile” e che siano trovate in un “tempo accettabile”. Vittorio Maniezzo – Università di Bologna 4 2 Metaeuristiche: focus sul controllo di euristiche Euristiche semplici possono funzionare molto bene, ma possono anche restare bloccate in soluzioni di qualità scarsa (ottimi locali). Approcci integrativi sono stati presentati a partire dagli anni 70. Si tratta di algoritmi che gestiscono il trade-off fra diversificazione della ricerca, quando la ricerca agisce in regioni scarse dello spazio di ricerca, e intensificazione, finalizzata a individuare le migliori soluzioni nella regione analizzata. Questi algoritmi sono stati chiamati metaeuristici. Vittorio Maniezzo – Università di Bologna 5 Metaeuristiche Le metaeuristiche includono: • Simulated Annealing • Tabu Search • GRASP • Genetic Algorithms • Variable Neighborhood Search • ACO • Particle Swarm Optimization (PSO) • … Vittorio Maniezzo – Università di Bologna 6 3 Travelling Salesman Problem (TSP) Dati: n località (casa del commesso viaggiatore e sedi di n-1 clienti da visitare). [dij] matrice di distanze, contiene le distanze (Km, tempo, … ) fra ogni coppia di località. Il TSP chiede di determinare il giro più breve che parte dalla casa, visita ogni cliente una e una sola volta e torna a casa. Versioni con costi simmetrici / asimmetrici, e con molti diversi vincoli operativi (precedenze, finestre temporali, premi, penalità, … ) Vittorio Maniezzo – Università di Bologna 7 TSP Qual'è il giro più breve? Non è sempre semplice capirlo … Vittorio Maniezzo – Università di Bologna 8 4 TSP: storia Il TSP come lo intendiamo oggi è stato studiato per primo negli anni 30 dal matematico Karl Menger a Vienna. Problemi matematici correlati al TSP erano già stati introdotti nell'800 dal matematico irlandese Sir William Rowan Hamilton. In figura il Gioco Icosiano di Hamilton, che chiede ai giocatori di completare un giro fra 20 pioli, usando un apposito spago millimetrato. (http://www.math.princeton.edu/tsp /index.html) Vittorio Maniezzo – Università di Bologna 9 Nel passato … Vittorio Maniezzo – Università di Bologna 10 5 Attualmente Viaggi di persone o di veicoli (consegne a clienti) Dati: grafo stradale, alcuni nodi rappresentano clienti. Trovare: giro più breve fra i clienti. Precondizione: Problemi di cammino minimo matrice delle distanze. Definizione di un overlay v. http://www.tsp.gatech.edu/ Vittorio Maniezzo – Università di Bologna 11 Metodi di soluzione n nodi (n-1)! possibili tour n n! 5 120 10 3,628.800 15 1,31*10^12 20 2,43*10^18 Metodi di soluzione (alcuni): • Enumerazione completa • IP: Branch and Bound (and Cut, and Price, … ) • Programmazione dinamica • Algoritmi approssimati • Euristiche • Metaeuristiche Vittorio Maniezzo – Università di Bologna 12 6 Più in generale Un problema di ottimizzazione combinatoria è definito su un insieme C = {c1 , … , cn} di componenti. Una soluzione del problema è un sottinsieme S C; F 2C è il sottinsieme di soluzioni ammissibili, (una soluzione S è ammissibile sse SF). z: 2C è la funzione di costo, l'obiettivo è trovare una soluzione ammissibile di costo minimo S°, cioè, trovare S° F tale che z(S°) z(S), S F. In subordine, l'algoritmo ritorna la miglior soluzione ammissibile trovata, S* F. Vittorio Maniezzo – Università di Bologna 13 TSP come COP Il TSP è definito su un grafo completo pesato (non) orientato G=(V,E,D), dove V è l'insieme dei vertici, E è l'insieme degli archi (edge) e D è l'insieme dei pesi degli archi • L'insieme dei componenti corrisponde a E (C=E), • F corrisponde all'insieme dei cicli hamiltoniani in G • z(S) è la somma dei pesi associati agli archi di ogni soluzione S. Vittorio Maniezzo – Università di Bologna 14 7