Upload
eustachio-mele
View
218
Download
1
Embed Size (px)
Citation preview
ALLA RICERCA ALLA RICERCA
della della
VIA PIU’ BREVEVIA PIU’ BREVE
Un’ avventura matematicaUn’ avventura matematica
PIANIFICARE UN ITINERARIOPIANIFICARE UN ITINERARIOItinerario più veloce o più breve?
La pianificazione si occupa principalmente di trovare una soluzione ottimale, quando i dati sono noti
Pianificare secondo il minor tempo? occorrono informazioni in tempo reale sul traffico;
per ottimizzare è necessario ricorrere a parametriparametro : variabile ausiliaria che compare in funzioni o equazioni a fianco delle variabili effettive....(es. 3x = 6; 2x=8;……cioè ax = b)
L’ itinerario più lungo può avere, a volte, un tempo di percorrenza minore perché utilizza maggiormente l’autostrada ed è meno soggetta a code
Se vogliamo solo la strada più corta, la determinazione dei parametri necessari è un po’ semplice: ci limitiamo alle autostrade o anche alle statali e provinciali.l’itinerario più breve potrebbe essere quello su strade di campagna, ma viaggiare in campagna richiederebbe più tempo
probabilmente la maggior parte delle persone considera lunghezza e tempo
la via più veloce
la via più economica (quella consigliata)
la via più veloce
(quella consigliata)
la via più economica
la matematica sviluppa tecniche che consentono di affrontare problemi analoghi, senza dover, ogni volta, ricominciare da capo
la via più breve si traduce per i matematici in:
IL PROBLEMA del CAMMINO MINIMOIL PROBLEMA del CAMMINO MINIMOEs: - le FerrovieFerrovie dello Stato utilizzano un ALGORITMO (*) per la soluzione del cammino minimo;viaggiare in auto o in treno non è la stessa cosa; le linee ferroviarie sono fisse, se si cambia treno ci sono tempi d’attesa, il tempo d‘attesa è indipendente dalla distanza delle città
(*)ALGORITMO: procedimento di calcolo che, a partire dai dati d’ ingresso, fornisce un risultato in uscita, dopo un numero finito di passi
- la pianificazione urbana: problema di costruire nuove strade, autostrade, ferrovie per migliorare il traffico cittadino - la raccolta dei rifiuti, la distribuzione della posta, la pulizia delle strade o lo sgombero delle stesse dalla neve (alcuni inverni fa ci furono grossi problemi, sulle autostrade della Baviera, per l’intervento non immediato dei mezzi spartineve: alcuni automobilisti distratti viaggiavano senza pneumatici da neve) - la struttura della rete dei cellulari, la trasmissione dei dati, una e-mail, un sms richiedono non una rete di strade, ma connessione di computer
- la costruzione di una casa ( pianificazione di processo)
- la foratura delle schede dei circuiti stampati
– la collocazione in ordine cronologico dei reperti degli scavi
GRAFOGRAFO
V, un insieme finito di vertici vertici (( o nodi nodi)) e da
Grafo G = (V,E) G è composto da
E, un insieme di coppie di elementi di V, i latilati
grafo connesso
grafo
non
connesso
grafo “ affidabile”
grafo “poco affidabile”
multigrafo o grafo multiplo:
è possibile collegare una coppia di vertici con più di un lato
spesso ha senso attribuire una direzione ai lati: in questo caso parliamo di archi e non di lati
“gli archi sono un po’come i sensi unici per la strada, ma in altre applicazioni possono aver un significato diverso...” (es: la costruzione di una casa)
5
24
5
157
8
2
7
3
4
9
3
1
Nei grafi abbiamo bisogno di “informazioni”: in questo caso parliamo di peso di un arco o di un lato, a seconda che i grafi siano orientati o no.Questi pesi possono esprimere la lunghezza in km di tratti di strada, oppure il tempo di percorrenza in ore....., spesso rappresentano anche i costi o le capacità dei collegamenti
UN’ INNOCUA ESPLOSIONEUN’ INNOCUA ESPLOSIONE
PP T
partenza
traguardo
I cammini più brevi vanno calcolati: il numero dei percorsi possibili può diventare così grande che nemmeno i computer più veloci possono calcolarli tutti....
Quanti sono i possibili cammini? Cerchiamo di contarli
1 2 3 4
P T
allo strato n.1 ci sono 2 possibilità,
allo strato n.2 ci sono 4 possibilità... in tutto ci sono 16 cammini possibili se allunghiamo il grafo aggiungendo due vertici,
quanti sono i possibili cammini?
25 =32il doppio dei precedenti: 32
se gli strati sono n (n numero intero qualunque),
il numero dei cammini è 2n
il numero dei vertici è solo (2n + 2)
Se il grafo avesse 50 strati il numero dei cammini sarebbe
250 = 1.125.899.906.842.624 cioè più di un milione di miliardi
un computer che esamina 1.000.000 cammini al secondo starebbe quasi 36 anni ad esaminarli tutti e se si aggiungono ancora un paio di strati........
Eu: età dell’Universo (~ 15 109 anni); Nau: numero degli atomi nell’Universo
*:un computer impiegherebbe 6◦1064 anni per passare in rassegna tutti i cammini del grafo con 260 strati
SCELTE LOCALI .... BENEFICI SCELTE LOCALI .... BENEFICI GLOBALIGLOBALI
0
3
P T
a c e
b d f
3
5
1
10 7
2
2
23
7
15
112
12 11
23
3
IIL CAMMINO PIU’ BREVE “MISURA” 11L CAMMINO PIU’ BREVE “MISURA” 11
Es: indica il minimo cammino tra P e a; 12 indica il tempo di percorrenza c-f
3
Qual è il minimo cammino tra P e T?Qual è il minimo cammino tra P e T?
1111
6
9
13
74
E’ più semplice procedere scegliendo ogni volta il lato con il peso minore?
L’arco da c a d non compare in alcun cammino minimo, lo si vede anche dal 7 che è scritto in d; se d fosse raggiunto da c, avremmo dovuto scriverci un 8
Un algoritmo che risolve un problema di questo tipo è
l’ ALGORITMO di DIJKSTRA, pubblicato nel 1959
si possono trovare tutti i cammini minimi da p a tutti i vertici
ALGORITMO di DIJKSTRA (1959)ALGORITMO di DIJKSTRA (1959)
Se scambiamo tra loro T e P e se invertiamo la direzione di ogni arco, l’algoritmo di Dijkstra può risolvere anche il problema di trovare i cammini minimi tra T e ogni altro vertice del grafo
Invertendo di nuovo la direzione degli archi, questi cammini diventano cammini minimi da un punto qualunque del grafo a Tes. di applicazione : un sistema di navigazione per auto
se per qualche motivo si deve lasciare la strada già calcolata (strada chiusa per un cantiere, errore ad un incrocio), il navigatore deve trovare velocemente un nuovo cammino minimo, senza dover far ripartire l’algoritmo da capo
..... ELLISSE..... ELLISSE
Non sempre i pesi corrispondono esattamente alle distanze fra i vertici nella rappresentazione del grafo : pensiamo a un collegamento con il traghetto, ad una catena montuosa, a un cantiere stradale oppure a un treno regionale che viaggia solo raramente; questo collegamento ha un peso rilevante anche tra due luoghi molto vicini tra loro (i tempi di percorrenza nelle Alpi per andare con l’auto in Germania sono sicuramente più lunghi che nei tratti pianeggianti)Nella pratica è spesso sufficiente trovare una “buona” soluzione, anche se non si conosce la soluzione ottimale: una cosa simile riesce anche in problemi per i quali sussistono pochissime speranze di trovare un algoritmo efficiente (cioè non esplosivo dal punto di vista combinatorio) che li risolve
Ammettiamo di conoscere già un cammino tra la partenza P ed il traguardo T e di conoscere anche la lunghezza:
disegniamo un ellisse avente p e t come fuochi, con asse principale
pari alla lunghezza del cammino noto
..... ELLISSE..... ELLISSE
P TAsse principale
P TAsse principale
In un’ ellisse:per ogni punto del suo bordo la somma delle distanze dai fuochi è sempre uguale, ed è pari alla lunghezza del suo asse principale
se un punto q si trova su un cammino da p a t, il cammino che lo contiene non può essere più corto della somma delle distanze in linea d’aria tra p e q più la distanza in linea d’aria tra q e t.
se q sta fuori dall’ellisse,questa lunghezza è già superiore a quella del cammino noto
q
p t
(non c’è bisogno di considerare i punti che giacciono fuori dall’ellisse: non (non c’è bisogno di considerare i punti che giacciono fuori dall’ellisse: non possono far parte di un cammino minimo)possono far parte di un cammino minimo)
ALBERI.....ALBERI.....ALBERO: grafo non orientato, connesso e privo di circuiti
radici
foglia
Gli alberi descrivono sia i più piccoli sottografi connessi , sia i più grandi insiemi di lati privi di circuito
oss:oss: con l’ algoritmo di Dijkstra si generano alberi con l’ algoritmo di Dijkstra si generano alberi
I cammini minimi sono sempre privi di circuiti e formano un grafo connesso, cioè....
un albero generatore, perchè le sue ramificazioni raggiungono tutti i vertici del grafo
Nota: il minimo albero generatore non coincide con il cammino minimo
pt
0
3 6 12
9
11
74
a c e
b d f
3
1
2
3 2
2
3
il grafo rappresenta una rete di fibre ottiche:
Se la ditta A affitta le sue linee alla ditta B e quest’ ultima ne vuole affittare un numero sufficiente affinchè tutti i centri di derivazione siano connessi tra loro il sottografo delle linee affittate deve essere connesso
se lasciamo da parte l’affidabilità della rete, il sottografo affittato sarà privo di circuiti il sottografo affittato è un albero
Oss:
i vertici rappresentano centri di derivazione e i lati sono le linee esistenti che li collegano tra loro
I ponti di Königsberg (1735)
E’ possibile fare una passeggiata per la città attraversando una sola volta ciascuno dei sette ponti evidenziati in figura?
L
E
O
N
A
R
D
E
U
L
E
R
O
3
3
5
3
Il numero dei vertici che hanno grado dispari è sempre pari in qualsiasi grafo
““congettura”congettura” sul GRADO dei VERTICI di un GRAFOsul GRADO dei VERTICI di un GRAFO
Ogni grafo con n lati possiede un numero pari di vertici di grado dispari
la dimostrazione è per induzione completa
congettura o proprietà?congettura o proprietà?
riformuliamo la congettura:riformuliamo la congettura:
Se il grafo non ha lati, tutti i vertici hanno grado 0 e cioè sono tutti di grado pari
questo è l’inizio dell’induzione
assumiamo che ogni grafo con n lati abbia un numero pari di vertici di grado dispari
questa è l’ipotesi induttiva
dobbiamo dimostrare che l’affermazione vale anche per tutti i grafi con n+1 lati
la congettura diventa proprietàla congettura diventa proprietà
I gradi dei vertici ci aiutano a rispondere alla domanda se è possibile o no I gradi dei vertici ci aiutano a rispondere alla domanda se è possibile o no fare il giro di tutti i ponti di Kfare il giro di tutti i ponti di Köönigsberg?nigsberg?
Ammettiamo di partire da p e di attraversare uno qualsiasi dei vertici intermedi (vengono usati due lati che contengono questo vertice)
se il vertice ha grado inferiore a 2, non funziona:se il grado è 0, non c’è attraversamento, se ha grado 1 ... vicolo cieco (lo raggiungiamo ma non possiamo tornare indietro)
vertice di grado 2: può essere attraversato una sola volta
vertice di grado 3: può essere attraversato una sola volta e ci rimane un lato a disposizione
Tutte le volte che si attraversa un vertice (non p e t) di un cammino euleriano il suo grado si riduce di 2: questo significa che un tale vertice mantiene sempre lo stesso gradoquindi nei vertici di grado dispari rimane sempre un lato tranne nel caso in cui questi vertici sono p e t del cammino euleriano
I gradi dei vertici sono allora la chiave per la soluzione del problema
In un cammino euleriano con p e t diversi, si lascia p una volta in più di quanto non lo si raggiunga e per t vale il contrario; in un circuito euleriano con p = t, anche questo vertice deve essere raggiunto e lasciato lo stesso numero di volte
TEOREMA di EULERO
Per ogni grafo G = (V,E) connesso ad eccezione, tutt’al più, dei suoi vertici isolati, si ha che:
a. esiste un cammino euleriano in G se e soltanto se non più di due vertici di V hanno grado dispari;
b. esiste un circuito euleriano in G se e soltanto se tutti i vertici di V hanno grado pari
cammino euleriano :cammino euleriano : ogni cammino che, partendo da un vertice p, utilizza esattamente tutti i lati del grafo una sola volta;
circuito di Eulero :circuito di Eulero : ogni cammino di Eulero che termina nello stesso vertice di partenza p
generalizzando ........ possiamo enunciare ilgeneralizzando ........ possiamo enunciare il
A Königsberg non c’è un cammino euleriano, perchè tutti e quattro i vertici hanno grado dispari
esercizio: esercizio: risolvi il problema dei ponti osservando la figura “i ponti di Krisolvi il problema dei ponti osservando la figura “i ponti di Köönigsberg”nigsberg”
disegnare la casa senza mai staccare la penna dal foglio
ancora Eulero?
esercizioesercizio:: applicare il teorema di Eulero
Gabriel HEIDER
Haus vom
Nikolaus I
1993
LA NETTEZZA URBANALA NETTEZZA URBANA
Immaginiamo che ci sia un deposito, dal quale parte un camion di raccolta dei rifiuti, per fare il giro della città
ad ogni incrocio c’è la possibilità di scegliere come andare avanti
2
4
4
4
44
4
64
4
4
4
deposito
tutti i vertici hanno un grado pari il grafo è un circuito di Eulero
2
4
4
4
44
4
64
4
4
4
deposito
percorso ottimale per la raccolta dei rifiuti
2
4
5
4
46
4
64
4
4
5
3
1
1
in questo grafo non ci sono cammini né circuiti euleriani
come trattare i vertici critici?
con i viaggi di servizioviaggi di servizio
deposito
LA POSTALA POSTA
ilil problema del postinoproblema del postino fu introdotto nel 1962 dal cinese Mei-Ko Kwan
E’ chiamato così perchè anche i postini devono percorrere tutte le strade della città
Algoritmo per il problema del postino cineseAlgoritmo per il problema del postino cinese
Dato il grafo G = (V, E)
• determinare l’insieme V' dei vertici di grado dispari in G;
• determinare la lunghezza dei cammini minimi tra due qualsiasi vertici v, w di V';• determinare, rispetto a queste lunghezze, un matchingmatching ottimale M nel grafo completo G' sui vertici di V'• costruire a partire da G e dai lati di G che appartengono ai cammini di M, il grafo multiplo G''
• trovare un circuito di Eulero in G''
matching: matching: problema degli accoppiamenti
SCACCO MATTO ?SCACCO MATTO ?
Knight’s Tour
in questo gioco si deve “cavalcare” per tutta la scacchiera con il cavallo, senza passare più di una volta sulla stessa casella
REGOLA: il cavallo può muoversi due caselle avanti e una di lato
Problema di un COMMESSO Problema di un COMMESSO VIAGGIATOREVIAGGIATORE
??
““Il giro del mondo in 80 giorni”Il giro del mondo in 80 giorni”
ottimizzazione combinatoriaottimizzazione combinatoria
ilil
deldel
mondomondo
inin
66
66
66
giornigiorni
gg
ii
rr
oo
n punti (n-1)! operazioni
anche con i computer di oggi il problema di tutti i tour possibili ........
nel 1991 il tour mondiale era stato trovato con 3038 vertici; ciò non vuol dire che si fosse capaci di risolvere tutti i problemi più piccoli, ma significa solo che un problema reale con quel numero di vertici era stato risolto
P = NP ?P = NP ?
P : classe dei problemi che ammettono un algoritmo risolutivo di complessità P : classe dei problemi che ammettono un algoritmo risolutivo di complessità polinomialepolinomiale
NP : classe dei problemi che ammettono un algoritmo risolutivo non NP : classe dei problemi che ammettono un algoritmo risolutivo non deterministico polinomialedeterministico polinomiale
ma questo è un altro rompicapo ..
f i n e f i n e delladella avventura matematicaavventura matematica
tratto liberamente da “ALLA RICERCA della VIA PIU’ BREVE”
di Peter GRITZMANN _ RENE’ BRANDENBERG
ed. Springer
ALLA RICERCA ALLA RICERCA
delladella
VIA PIU’ BREVEVIA PIU’ BREVE
f i n ef i n e
f i n ef i n e
F I F I N EN E
FF II N EN E
f i n e
f i n eff
ii
nnee