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