ALLA RICERCA
della
VIA PIU’ BREVE
Un’ avventura matematica
PIANIFICARE UN ITINERARIO
Itinerario più veloce o più breve?
L’ itinerario più lungo può avere, a volte, un tempo di percorrenza minore perché
utilizza maggiormente l’autostrada ed è meno soggetta a code
Pianificare secondo il minor tempo? occorrono informazioni in tempo reale sul traffico;
per ottimizzare è necessario ricorrere a parametri
parametro : variabile ausiliaria che compare in funzioni o equazioni a fianco delle
variabili effettive....(es. 3x = 6; 2x=8;……cioè ax = b)
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 pianificazione si occupa principalmente di trovare una soluzione ottimale, quando i
dati sono noti
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 MINIMO
Es: - le Ferrovie 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à
- 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
(*)ALGORITMO: procedimento di calcolo che, a partire dai dati d’ ingresso, fornisce un
risultato in uscita, dopo un numero finito di passi
GRAFO
Grafo G = (V,E)
G
è composto da
V,
un insieme finito di vertici ( o nodi) e da
E,
un insieme di coppie di elementi di V, i lati
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
15
5
8
3
4
2
7
2
9
4
7
1
3
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 ESPLOSIONE
I cammini più brevi vanno calcolati: il numero dei percorsi possibili può
diventare così grande che nemmeno i computer più veloci possono calcolarli
tutti....
T
P
P
partenza
traguardo
Quanti sono i possibili cammini? Cerchiamo di contarli
T
P
1
2
3
4
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?
il doppio dei precedenti: 32
25 =32
se gli strati sono n (n numero intero qualunque),
il numero dei cammini è
il numero dei vertici è solo
2n
(2n + 2)
Se il grafo avesse 50 strati il numero dei cammini sarebbe
250 = 1.125.899.906.842.624
miliardi
cioè più di un milione di
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 GLOBALI
6
a
c
10
3
P
3
0
12
1
3
2
T
15
5
2
4
11
2
11
b
e
7
3
Es:
13
3
11
3
2
7
d
7
2
f
9
indica il minimo cammino tra P e a; 12 indica il tempo di percorrenza
Qual è il minimo cammino tra P e T?
IL CAMMINO PIU’ BREVE “MISURA” 11
c-f
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)
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 T
es. 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
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
P
T
P
Asse principale
Asse principale
T
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
q
p
t
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
(non c’è bisogno di considerare i punti che giacciono fuori dall’ellisse: non possono far
parte di un cammino minimo)
ALBERI.....
foglia
ALBERO: grafo non
orientato, connesso e
privo di circuiti
Gli alberi descrivono sia i
più piccoli sottografi
connessi , sia i più grandi
insiemi di lati privi di
circuito
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
radici
oss: con l’ algoritmo di Dijkstra si generano alberi
a
c
3
6
e
12
1
3
11
0
p
2
4
b
9
7
3
t
3
d
2
2
f
Nota: il minimo albero generatore non coincide con il cammino minimo
il grafo rappresenta una rete di fibre ottiche:
i vertici rappresentano centri di
derivazione e i lati sono le linee
esistenti che li collegano tra
loro
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
Oss:
se lasciamo da parte l’affidabilità della rete, il sottografo affittato
sarà privo di circuiti
il sottografo affittato è un albero
I ponti di Königsberg (1735)
L
E
O
E
U
N
L
A
E
R
D
R
O
E’ possibile fare una passeggiata per la città attraversando
una sola volta ciascuno dei sette ponti evidenziati in figura?
3
5
3
3
“congettura” sul GRADO dei VERTICI di un GRAFO
Il numero dei vertici che hanno grado dispari è sempre pari in qualsiasi
grafo
congettura o proprietà?
riformuliamo la congettura:
Ogni grafo con n lati possiede un numero pari di vertici di grado dispari
la dimostrazione è per induzione completa
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à
I gradi dei vertici ci aiutano a rispondere alla domanda se è possibile o no
fare il giro di tutti i ponti di Kö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 grado
quindi nei vertici di grado dispari rimane sempre un lato tranne nel caso in cui
questi vertici sono p e t del cammino euleriano
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
I gradi dei vertici sono allora la chiave per la soluzione del problema
generalizzando ........ possiamo enunciare il
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
A Königsberg non c’è un cammino euleriano, perchè tutti e quattro i
vertici hanno grado dispari
esercizio: risolvi il problema dei ponti osservando la figura “i ponti di Königsberg”
cammino euleriano : ogni cammino che, partendo da un vertice p, utilizza
esattamente tutti i lati del grafo una sola volta;
circuito di Eulero : ogni cammino di Eulero che termina nello stesso vertice di
partenza p
disegnare la casa senza mai staccare la penna dal foglio
ancora Eulero?
esercizio: applicare il teorema di Eulero
Gabriel HEIDER
Haus vom
Nikolaus I
1993
LA 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
4
4
6
deposito
2
4
4
4
4
4
4
4
tutti i vertici hanno un grado pari
4
il grafo è un circuito di Eulero
percorso ottimale per la raccolta dei rifiuti
4
4
6
4
4
deposito 2
4
4
4
4
4
4
in questo grafo non ci sono cammini né circuiti euleriani
1
5
4
6
deposito
2
4
4
4
4
4
5
4
6
3
1
come trattare i vertici critici?
con i viaggi di servizio
LA POSTA
il problema 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 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 matching 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: problema degli accoppiamenti
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
g
i
r
o
Problema di un COMMESSO
VIAGGIATORE
n punti
(n-1)! operazioni
“Il giro del mondo in 80 giorni”
ottimizzazione combinatoria
?
mondo
6
6
6
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 ?
ma questo è un altro rompicapo ..
P : classe dei problemi che ammettono un algoritmo risolutivo di complessità
polinomiale
NP : classe dei problemi che ammettono un algoritmo risolutivo non
deterministico polinomiale
f i n e della avventura matematica
ALLA RICERCA
della
VIA PIU’ BREVE
tratto liberamente da “ALLA RICERCA della VIA PIU’ BREVE”
di Peter GRITZMANN _ RENE’ BRANDENBERG
ed. Springer
fine
fine
Scarica

Document