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 SF).
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