You are on page 1of 23

November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.

1
Algoritmalara Giri
6.046J/18.401J
Ders19
En ksa yollar III
Tm-ikili en ksa yollar
Matris-arpm
algoritmas
Floyd-Warshall algoritmas
Johnson algoritmas
Prof. Charles E. Leiserson
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.2
En ksa yollar
Tek-kaynakl en ksa yollar
Negatif olmayan kenar arlklar
Dijkstra algoritmas: O(E + V lg V)
Genel
Bellman-Ford algoritmas: O(VE)
DAG
Bellman-Ford'un bir turu: O(V + E)
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.3
En ksa yollar
Tek-kaynakl en ksa yollar
Negatif olmayan kenar arlklar
Dijkstra algoritmas: O(E + V lg V)
Genel
Bellman-Ford: O(VE)
DAG
Bellman-Ford' un bir turu: O(V + E)
Tm-ikili en ksa yollar
Negatif olmayan kenar arlklar
Dijkstra algoritmas arp |V|: O(VE + V
2
lg V)
Genel
Bugn algoritma.
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.4
Tm-ikili en ksa yollar
Girdi: G = (V, E) ynl grafiinde, V = {1, 2,
, n}iken
w : E R kenar arlk fonksiyonuyla.
kt:Tm i, j V iin (i, j) en ksa yol
uzunluklarnn n n matrisidir.
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.5
Tm-ikili en ksa yollar
Girdi: G = (V, E) ynl grafiinde, V = {1, 2,
, n}iken, w : E R .
kenar-arlk fonksiyonuyla
kt:
Tm i, j V iin (i, j) en ksa yol uzunluklarnn n n matrisi.
Fikir:
Her keden Bellman-Ford' u bir tur altr.
Time (sre) = O(V
2
E).
En kt durumda youn grafik (n
2
kenarl) (n
4
) sre.
lk deneme iin iyi!
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.6
Dinamik programlama
Ynl grafikte, n n komuluk matrisinin A = (a
ij
)
olduunu dnn,
d
ij
(m)
=i ' den j 'ye en ksa yol arl-
en ok m sayda kenarda kullanldnda.
ddia:
d
ij
(0)
=
0 if(eer) i = j ise,
if(eer) i j ise;
ve for(iin) m = 1, 2, , n 1,
d
ij
(m)
= min
k
{d
ik
(m1)
+ a
kj
}.
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.7
Proof of claim
d
ij
(m)
= min
k
{d
ik
(m1)
+ a
kj
}
i
i
j
j
i
M
ks

1
e
d
g
e
s

1
e
d
g
e
s

1
e
d
g
e
s
m 1 edges
(iddiann kant)
edge(kenar)
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.8
Proof of claim
d
ij
(m)
= min
k
{d
ik
(m1)
+ a
kj
}
i
i
j
j
i
M
ks

1
e
d
g
e
s

1
e
d
g
e
s

1
e
d
g
e
s
m 1 edges
Relaxation!
for k 1 to n
do if d
ij
> d
ik
+ a
kj
then d
ij
d
ik
+ a
kj
(iddiann kant)
edge(kenar)
(gevetme)
(iin)
(yap eer)
(sonra)
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.9
Proof of claim
d
ij
(m)
= min
k
{d
ik
(m1)
+ a
kj
}
i
i
j
j
i
M
ks

1
e
d
g
e
s

1
e
d
g
e
s

1
e
d
g
e
s
m 1 edges
Relaxation!
for k 1 to n
do if d
ij
> d
ik
+ a
kj
then d
ij
d
ik
+ a
kj
Not: Negatif arlk evrimi olmamas demek:
(i, j) = d
ij
(n1)
= d
ij
(n)
= d
ij
(n+1)
= L
(sonra)
(yap eer)
(iin)
(gevetme)
(iddiann kant)
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.10
Matris arpm
C, A, ve B, n n matrislerse, C= A B' yi hesapla:

=
=
n
k
kj ik ij
b a c
1
.

Time(sre) = (n
3
) standart algoritmay kullanyor.
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.11
C, A ve B n n matrislerse
C= A B ' yi hesapla:

=
=
n
k
kj ik ij
b a c
1
.
Time(sre) = (n
3
) standart algoritmay kullanyor.
+ min ve + ya elemlersek?
Matris arpm
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.12
Matris arpm
C, A, ve B n n matrislerse C= A B yi hesapla:

=
=
n
k
kj ik ij
b a c
1
.
Time(sre) = (n
3
) standart algoritmay kullanyor.
+ minve + ya elemlersek?
c
ij
= min
k
{a
ik
+ b
kj
}.
Bylece, D
(m)
= D
(m1)
A.
zdelik matrisi = I =





0
0
0
0
= D
0
= (d
ij
(0)
).
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.13
Matris arpm
(devam)
(min, +) arpm armsaldr, ve
gerek saylarla, kapal semiring(closed semiring)
olarak adlandrlan cebirsel bir yap oluturur.
Sonuta bunu hesaplayabiliriz
D
(1)
= D
(0)
A = A
1
D
(2)
= D
(1)
A = A
2
M M
D
(n1)
= D
(n2)
A = A
n1
,
yielding D
(n1)
= ((i, j)) verir.
Time(sre) = (nn
3
) = (n
4
). n B-F' den daha iyi deil.
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.14
Gelitirilmi matris arpm
algoritmas
Tekrarlanan kareleme: A
2k
= A
k
A
k
.
Hesaplayn: A
2
, A
4
, , A
2
lg(n1)
.
O(lg n)karelemeler
Not: A
n1
= A
n
= A
n+1
= L.
Time(sre) = (n
3
lg n).
Negatif arlk evrimlerini bulmak iin, kegendeki
negatif deerleri O(n) ek zamannda kontrol
edin.
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.15
Floyd-Warshall algoritmas
Bu da dinamik programlamadr, fakat daha hzldr!
Tanmlama c
ij
(k)
= i' den j ye, set {1, 2, , k}' e deki
ara keleri olan en ksa yolun
arl.
i
i
k
k
k
k
k
k
k
k
j
j
bylece, (i, j) = c
ij
(n)
. ve c
ij
(0)
= a
ij
.
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.16
Floyd-Warshall yinelemesi
c
ij
(k)
= min
k
{c
ij
(k1)
, c
ik
(k1)
+ c
kj
(k1)
}
i
i
j
j
k
i
c
ij
(k1)
c
ik
(k1)
c
kj
(k1)
{1, 2, , k}' deki ara keler
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.17
Floyd-Warshall
iin szde kod
for k 1 to n
do for i 1 to n
do for j 1 to n
do if c
ij
> c
ik
+ c
kj
then c
ij
c
ik
+ c
kj
Gevetme
Notlar:
Ekstra gevetmelerin zarar olmayacandan
st simgeyi kullanmamak uygundur.
(n
3
) zamannda alr.
Kodlamas basittir.
Pratikte verimlidir.
(iin)
(iin yap)
(iin yap)
(yap eer)
(sonra)
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.18
Bir ynlendirilmi grafiin
geili kapan
Hesaplayn t
ij
=
1 i den j ye bir yol varsa,
0 dier durumda.
Fikir: Floyd-Warshall' (min, +) yerine (, ) ile
kullann.
t
ij
(k)
= t
ij
(k1)
(t
ik
(k1)
t
kj
(k1)
).
Time(sre) = (n
3
).
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.19
Grafik yeniden arlklandrmas
Teorem. Bir h : V R, fonksiyonu verilmi,
her (u, v) E kenarn, w
h
(u, v) = w(u, v) + h(u) h(v)
ile yeniden arlklandrn.

Bu durumda, her iki ke arasndaki btn yollar
ayn miktarda yeniden arlklandrlr.
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.20
Grafik yeniden arlklandrmas
Teorem. h : V R, fonksiyonu verilmi,
her (u, v) E kenarn w
h
(u, v) = w(u, v) + h(u) h(v) ile yeniden
arlklandrn. Bu durumda, her iki ke arasndaki btn yollar
ayn miktarda yeniden arlklandrlr.
Kant. p = v
1
v
2
L v
k
, G 'de bir yol olsun.

( )
) ( ) ( ) (
) ( ) ( ) , (
) ( ) ( ) , (
) , ( ) (
1
1
1
1
1
1
1
1 1
1
1
1
k
k
k
i
i i
k
i
i i i i
k
i
i i h
h
v h v h p w
v h v h v v w
v h v h v v w
v v w p w
+ =
+ =
+ =
=

=
+

=
+ +

=
+
.
Ayn
miktar!
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.21
Yeniden arlklandrlan
grafiklerde en ksa yollar
Sonu.
h
(u, v) = (u, v) + h(u) h(v).
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.22
Yeniden arlklandrlan
grafiklerde en ksa yollar
Sonu.
h
(u, v) = (u, v) + h(u) h(v).
Fikir: h : V R fonksiyonunu bulun:
Tm (u, v) E' ler iin wh(u, v) 0 olduunda.

Sonra da yeniden arlklandrlm grafikte,
her keden Dijkstrann algoritmasn altrn.

NOT: w
h
(u, v) 0 iff(eer ve sadece eer)
h(v) h(u) w(u, v).
November 21, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L19.23
Johnson algoritmas
1.u fonksiyonu bulun h : V R :
Tm (u, v) E' ler iin wh(u, v) 0 zerinde Bellman-Ford' u
altrn h(v) h(u) w(u, v) fark kstlarn zn veya
bir negatif arlk evrimi varsa saptayn.
Time(sre) = O(VE).
2.Dijkstrann algoritmasn w
h
' yi kullanarak, her keden
(u V ) ,
h
(u, v) ' hesaplayn (tm v V iin).
Time(sre) = O(VE + V
2
lg V).
3. Her (u, v) V V iin,
(u, v) =
h
(u, v) h(u) + h(v) hesaplayn.
Time(sre) = O(V
2
).
Toplam sre = O(VE + V
2
lg V).

You might also like