orso di Laura in Inggnria Informatica orso di Rti di alcolatori (a.a. /) Robrto anonico (robrto.canonico@unina.it) Giorgio Vntr (giorgio.vntr@unina.it) lgoritmo di ijkstra novmbr I lucidi prsntati al corso sono uno strumnto didattico ch NON sostituisc i tsti indicati nl programma dl corso Nota di copyright pr l slid OMIS Nota di opyright Qusto insim di trasparnz è stato idato ralizzato dai ricrcatori dl Gruppo di Ricrca OMIS dl ipartimnto di Informatica Sistmistica dll Univrsità di Napoli drico II. ss possono ssr impigat libramnt pr fini didattici sclusivamnt snza fini di lucro, a mno di un splicito consnso scritto dgli utori. Nll uso dovranno ssr splicitamnt riportati la font gli utori. Gli utori non sono rsponsabili pr vntuali imprcisioni contnut in tali trasparnz né pr vntuali problmi, danni o malfunzionamnti drivanti dal loro uso o applicazion. utori: Simon Pitro Romano, ntonio Pscapè, Stfano vallon, Marcllo sposito, Robrto anonico, Giorgio Vntr orso di Rti di alcolatori
lgoritmo di ijkstra Ogni nodo ha a disposizion il grafo dlla rt: i nodi sono i routr gli archi sono l lin di collgamnto tra routr: agli archi è associato un costo Ogni nodo usa l'algoritmo di ijkstra pr costruir lo Spanning Tr dl grafo, ovvro l albro di cammini di costo minimo d ogni nodo si assgna un tichtta ch rapprsnta il costo massimo pr raggiungr qul nodo L'algoritmo modifica l tichtt crcando di minimizzarn il valor di rndrl prmannti lgoritmo di ijkstra: formalizzazion La Topologia dlla rt è nota a tutti i nodi: la diffusion è ralizzata via link stat broadcast tutti i nodi hanno la stssa informazion Si calcola il prcorso minimo da un nodo a tutti gli altri: l algoritmo fornisc la tavola di routing pr qul nodo Itrativo: un nodo, dopo k itrazioni, conosc i cammini mno costosi vrso k dstinazioni Notazion: c(i,j): costo collgamnto da i a j: infinito s non c è collgamnto pr smplicità, c(i,j) = c(j,i) (v): costo corrnt dl prcorso, dalla sorgnt al nodo v p(v): prdcssor (collgato a v) lungo il cammino dalla sorgnt a v N: insim di nodi pr cui la distanza è stata trovata 4 orso di Rti di alcolatori
lgoritmo di ijkstra (cont.) Inizializzazion: N = {} pr tutti i nodi v 4 if (v adiacnt a ) thn (v) = c(,v) 6 ls (v) = infty 7 8 Loop 9 sia w non in N tal ch (w) è minimo aggiungi w a N aggiorna (v) pr ogni v adiacnt a w non in N: (v) = min( (v), (w) + c(w,v) ) {il nuovo costo fino a v è o il vcchio costo, oppur il costo dl cammino piu brv fino a w più il costo da w a v } fino a quando tutti i nodi sono in N lgoritmo di ijkstra: intrprtazion L algoritmo consist in un passo di inizializzazion, più un ciclo di durata pari al numro di nodi dlla rt. l trmin avrmo i prcorsi più brvi dal nodo sorgnt a tutti gli altri nodi smpio. alcoliamo sulla rt data i prcorsi di costo minimo da a tutt l possibili dstinazioni. iascuna riga dlla tablla dlla slid sgunt fornisc i valori dll variabili dll algoritmo alla fin di ciascuna itrazion 6 orso di Rti di alcolatori
lgoritmo di ijkstra: smpio Stp 4 start N (),p(),,, (),p(), 4,,, (),p(), (),p(), (),p() 4, 4, 4, Notazion: c(i,j): costo collgamnto da i a j (infinito s non c collgamnto pr smplicità c(i,j) = c(j,i)) (v): costo corrnt dl prcorso, dalla sorgnt al nodo v p(v): prdcssor (collgato a v) lungo il cammino dalla sorgnt a v N: insim di nodi pr cui la distanza è stata trovata 7 ijkstra: smpio Passo Passo Passo Passo 4 Passo Passo 6 8 orso di Rti di alcolatori 4
smpio: tablla di instradamnto in dstination link (,) (,) (,) (,) (,) 9 lgoritmo di ijkstra: discussion S il costo di un link è proporzional al traffico su qul link, allora sono possibili oscillazioni + inizio + + routing + + + + Soluzion: vitar la sincronizzazion nll invio di mssaggi di routr orso di Rti di alcolatori