1 אל ג ו ר י ת מ י ם 1 ח ו ב ר ת ה ר צ א ו ת ט י ו ט ה, א ב י ב 2 0 0 3 שלמה מורן החוברת מכילה תקצירי הרצאות של הדס שכנאי בסמסטר חרף 6 0 0 2 7- ספי, בתוספת מספר הרצאות של ושלי מסמסטר חורף 2 1 0 2-3 1 0 2 ושלי, שניתנו נ א ו ר בכתיבת חוברת ז ו נעזרתי בחוברת של ג י ל כהן מ, 7 0 0 2 שהכילה סיכומים של ההרצאות מאותה שנה ברצוני להודות ג ם ל י ו נ ת ן גולדהירש, המתרגל האחראי בקורס,, 2 1 0 2-3 על הערותיו ולסטודנטים שלא התביישו ב ש נ ה " ל 1 ל ש א ו ל ו ל ה ע י ר, ובכך תרמו לשיפור החוברת שלמה מורן
2 3 1 0 2 7 / 2 0 1 3 ן ו ר ח א ן ו כ ד ע
3 ה ר צ א ה מ ס ' 1 אלגוריתמים לחיפוש בגרפים א ל ג ו ר י ת מ י ם ל ח י פ ו ש ב ג ר פ י ם ב א י ם ל ע נ ו ת ע ל ש א ל ה ב ס י ס י ת : ב ה י נ ת ן צ ו מ ת ב ג ר ף, מ ה ם ה צ מ ת י ם ה נ ג י ש י ם ( ב נ י ה ג ע ה, א ו ) reachable מ מ נ ו =G, ו צ ו מ ת מ ק ו ר ( V, ק ל ט : ג ר ף מ כ ו ו ן א ו ל א מ כ ו ו ן (E פ ל ט : נ ג י ש י ם ש ה ו א ש ל G ג ר ף ת ת ע ץ T=(R,E') ש ר ש ע ם s V, s ב- ה צ מ ת י ם כ ל א ת ה מ כ י ל V מ- s אלגוריתם חיפוש ג נ ר י ש ה ם R := {s}; while there is an edge (u,v) st u R and v R R: = R {}; v Parent(v) := u; נ ל מ ד ש נ י מ י מ ו ש י ם ש ל ה א ל ג ו ר י ת ם ה ג נ ר י : " ח י פ ו ש ל ר ו ח ב " ו " ח י פ ו ש ל ע ו מ ק " ח י פ ו ש ל ר ו ח ב BFS) :(Breadth First Search - ה ג ד ר ה : מ ר ח ק ב י ן ש נ י צ מ ת י ם ב ג ר ף ל א מ מ ו ש ק ל ה ו א ה מ ס פ ר ה מ י נ י מ א ל י ש ל ק ש ת ו ת ב מ ס ל ו ל ב י נ י הם, א ו א ם א י ן מ ס ל ו ל כ ז ה מ ס ל ו ל ש א ר כ ו ש ו ו ה ל מ ר ח ק ה ו א מ ס ל ו ל ק צ ר ב י ו ת ר ב ע ץ ח י פ ו ש ל ר ח ב, ה מ ר ח ק מ- s ל כ ל צ ו מ ת ב- R ה ו א ה מ ר ח ק ב י נ ה ם ב ג ר ף ה מ ק ו ר י ה א ל ג ו ר י ת ם ב ו נ ה א ת ה ע ץ ב " ש כ ב ו ת " ש כ ב ה i מ כ י ל ה א ת כ ל ה צ מ ת י ם ש מ ר ח ק ם מ- s ה ו א i: %Initialization: Layer(0):={s}; i:=0; %Iterations: While Layer( i) Φ Layer( i + 1) : =Φ ; While there is an edge (u,v) st u Layer( i)& v Layer( k) i:=i+1; Layer( i + 1) : = Layer( i + 1) { v}; Parent( v) : = u; k i
ל מ ה? ) ) 4 מ י מ ו ש BFS ב ע ז ר ת ת ו ר ה ת ו ר ( ש י ס ו מ ן ) Q מ כ י ל ב ה ת ח ל ה ר ק א ת s כ ל ז מ ן ש ה ת ו ר ל א ר י ק, מ ו צ י א י ם א ת ה צ ו מ ת u ש ב ר א ש ה ת ו ר, מ כ נ י ס י ם ל ס ו ף ה ת ו ר א ת כ ל ש כ נ י ו ש ל u ש ע ו ד ל א ה ת ג ל ו, ו- u נ ק ב ע כ א ב י ה ם ש ל ה ש כ נ י ם ה א ל ו ב ע ץ ה BFS ש נ ב נ ה v, d[ v] s מ- v צ מ ת ל כ ל v ש ד ות: ש נ י מ ו ג ד ר י ם ש ל ה מ ר ח ק ה- BFS ב ע ץ ש ל ו ה א ב v adj ( v) [v ]p מ ס מ ן א ת ק ב ו צ ת ה ש כ נ י ם ש ל ה א ל ג ו ר י ת ם : BFS(G,s): for any u in V do d[u] := ; p[u] := nil; Q := {s}; d(s):=0; while Q is not empty do u := dequeue(q); for each v in adj(u) do if d[v] = then d[v] := d[u] + 1; p[v] := u; enqueue(q,v); נ ג י ד ש צ ו מ ת x ג י ל ה א ת צ ו מ ת y א ם ה ת ב צ ע ה ה פ ק ו ד ה 1 + ] [ dx = :[ [ dy Q O( V ) ר י צ ה ז מ ן ס י ב ו כ י ו ת ה י א ה א ת ח ו ל א ח ת פ ע ם ה י ו ת ר ל כ ל ל- מ ו כ נ ס צ ו מ ת כ ל ב ח ו ב ר ת ז ו V ו- E מ י י צ ג י ם, ב ה ת א ם ל ה ק ש ר, א ו א ת ק ב ו צ ו ת ה צ מ ת י ם ו ה ק ש ת ו ת ב ג ר ף, א ו א ת ה ע ו צ מ ו ת ש ל ק ב ו צ ו ת א ל ו
ל מ ה? () 5 כ א ש ר צ ו מ ת u מ ו כ נ ס ל ת ו ר, ה א ל ג ו ר י ת ם מ ב צ ע מ ס פ ר ק ב ו ע ש ל פ ע ו ל ו ת ל כ ל צ ו מ ת ב- u) adj ( ס ה " כ ה ז מ ן ה נ ד ר ש O adj u = O E u ל ב צ ו ע פ ע ו ל ו ת א ל ו ב מ ה ל ך ה א ל ג ו ר י ת ם ה ו א ) ( מ כ א ן ש ה ס י ב ו כ י ו ת ה כ ו ל ל ת ה י א (E + ( ה ו כ ח ת נ כ ו נ ו ת OV נ ר א ה כ י BFS מ ו צ א א ת ה מ ר ח ק ה ק צ ר ב י ו ת ר ( ב ק ש ת ו ת ) ל כ ל צ ו מ ת ש ה ו א בן ה ג ע ה נ ס מ ן ב- מ- s dist ( s, v) א ת ה מ ר ח ק א י ש ו ו י ו ן ה ק ש ת : ל כ ל ק ש ת ט ע נ ה ב ס י ס י ת ש נ ש ת מ ש ב ה ה י א : מ- s ל- v מ ת ק י י ם (v (,u dist(, s v) dist(, s u) + 1 מ ס ל ו ל מ s ל- v ש א ו ר כ ו dist ( s, v) י ק ר א " מ ס ל ו ל ק צ ר ב י ו ת ר ל מ- s d[] v dist s, v " v ל מ ה 1: 1 ב כ ל ש ל ב ב ב י צ ו ע ה א ל ג ו ר י ת ם מ ת ק י י ם ל כ ל צ ו מ ת v א י ה ש ו ו י ו ן ) ( ה ו כ ח ה : ב א י נ ד ו ק צ י ה מ ס פ ר ע ל ש נ ק ב ע י ם ה ע ר כ י ם ל ר א ש ו נ ה ) פ ע ו ל ו ת [v ]d ע ר כ י ש ל ה ע ד כ ו ן,s []d s = 0 = dist ( ו ל ג ב י ש א ר ה צ מ ת י ם בסיס: א ח ר י ה א ת ח ו ל (s ש ה א ל ג ו ר י ת ם ( ל א ח ר מ ב צ ע d[] v = dist(, s v) צ ע ד ה א י נ ד ו ק צ י ה : נ נ י ח ה ט ע נ ה נ כ ו נ ה א ח ר י k פ ע ו ל ו ת ע ד כ ו ן, ו ת ה י dy [ ]: = dx [ ] + 1 פ ע ו ל ת ה ע ד כ ו ן ה 1+k ל ג ב י כ ל צ ו מ ת u ל מ ע ט y ה ט ע נ ה נ כ ו נ ה מ ה נ ח ת ה א י נ ד ו ק צ י ה ( כ י ע ר ך d[u] ל א ה ש ת נ ה ) ל ג ב י y מ ת ק י י ם ל א ח ר ה ע ד כ ו ן : d[ y] = d[ x] + 1 dist s, x + 1 dist s, y כ א ש ר א י ה ש ו ו י ו ן ה ר א ש ו ן נ ו ב ע מ ה נ ח ת ה א י נ ד ו ק צ י ה ו ה ש נ י נ ו ב ע מ א י ש ו ו י ו ן ה ק ש ת ל ע י ל ל מ ה 2: 2 ל כ ל צ ו מ ת x ע ב ו ר ו dist(, s x ) < א x מ ו כ נ ס ל- Q ב מ ה ל ך ב י צ ו ע BFS(G,s) ב ל כ ל צ ו מ ת, y א ם (y dist(, s (x < dist(, s ה ו כ ח ה: ב ס י ס א י נ ד ו ק צ י ה ע ל dist(s,x) ה א י נ ד ו ק צ י ה מ ו כ נ ס ר א ש ו ן : dist(s,x)=0 ה ט ע נ ה מ ת ק י י ם : א ז y ל א מ ו כ נ ס ל- Q ל פ נ י x ה מ ק י י ם ה י ח י ד ה ו א s כ י מ ת ק י י מ ת ו ה ו א ה ש ו ו י ו ן,
ל מ ש ל ש כ ן) 6 נ נ י ח ש ה ט ע נ ה נ כ ו נ ה ע ב ו ר, k ו י ה י x ה מ ק י י ם ק י י ם dist( x) = k + 1 x' adj( x) כ ך ש )'x ה צ ו מ ת ה ק ו ד ם ל- x ע ל מ ס ל ו ל ק צ ר ב י ו ת ר dist( x') = dist( x) 1 מ s לx ) מ ה נ ח ת ה א י נ ד ו ק צ י ה 'x ה ו כ נ ס ל ת ו ר ל פ נ י ש- x' ה ו צ א מ ה ת ו ר ג ם x ה ו כ נ ס ל ת ו ר כ ע ת י ה י y כ ך ש- (y < dist(, s ),) א ם y ל א ה ו כ נ ס ל ת ו ר ה ט ע נ ה מ ת ק י י מ ת ב א ו פ ן ר י ק dist s x א ח ר ת י ה י 'y ה צ ו מ ת ש ג י ל ה א ת y ב ג ל ל " א י ש ו ו י ו ן ה ק ש ת " מ ת ק י י ם ), dist(s, y ) dist(s, y) 1 > dist(s, x) 1 = dist(s, x כ ל ו מ ר מ ה נ ח ת ה א י נ ד ו ק צ י ה ע ל 'x, נ ו ב ע ש- 'x מ ו כ נ ס ל ת ו ר ל פ נ י ש ה ו כ נ ס dist(, s y ') > dist(, s x') y ה ו כ נ ס ל פ נ י x ו ל כ ן 'y כ א ש ר מ ר י צ י ם א ת BFS(G,s) ע ל ג ר ף G ע ם צ ו מ ת מ ק ו ר, s ב ס י ו ם ה ה ר צ ה d[] v = dist s, v ל כ ל צ ו מ ת v מתקיים: ) ( ב נ ו ס ף, ה ע ץ ה מ ו ר כ ב מ ה ק ש ת ו ת (p(v),v) ה ו א ע ץ BFS ש ל ה ו כ ח ה: ל ה ו כ י ח מ ל מ ה ש ב ס י ו ם ט ר י ב י א ל י א ם s ע ם מ ק ו ר G כ י נ ו ב ע 1 1 ה א ל ג ו ר י ת ם ל א ו ר ך מ ת ק י י ם ב י צ ו ע א י ה א ל ג ו ר י ת ם ה ש ו ו י ו ן d[] v dist(, s v) ה ה פ ו ך( v dist(, s [] v צ ו מ ת ל כ ל d v dist(, s v ) = נ נ י ח ב ש ל י ל ה ש ק י י ם y ע ב ו ר ו ב ס י ו ם ה א ל ג ו ר י ת ם ע ב ו ר ו d[ y] > dist(, s y) א י א ז ק י י ם צ ו מ ת y dist ( s, y) = k מ ל מ ה 2 1 נ ו ב ע ש כ ל ה צ מ ת י ם x ע ב ו ר ם ע ב ו ר k מ י נ י מ א ל י א פ ש ר י ( ש י מ ו ל ב ש- k>0 ) א ל י ה ל פ ח ו ת א ח ד מ צ מ ת י ם א ל ו ה ו א ש כ ן ש ל y מ ב י ן כ ל ה צ מ ת י ם ה א ל ו, י ה י dist(, s x) k 1 ש ו ו י ו ן כ ז ה נ ו ת ר ה ו כ נ ס ו ל מ ח ס נ י ת ל פ נ י ש- y ה ו כ נ ס ע ל מ ס ל ו ל ק צ ר ב י ו ת ר מ- s ז ה ל- y ) x 0 ה צ ו מ ת ה ר א ש ו ן ש ה ו כ נ ס ל ת ו ר כ א ש ר ב ו צ ע ה ל ו ל א ת ה-, x 0 ה ת ב צ ע ה פ ע ו ל ת ה ע ד כ ו ן + 1 ] [ dx dy [ :[ = ו ה צ ו מ ת y ה ו כ נ ס ל מ ח ס נ י ת ב ז מ ן 0 while ע ב ו ר (y ]d [y = ]d x ] + 1 k = dist(, s כ מ ו כ ן ע ר כ ו ש ל d[y] ל א ה ש ת נ ה י ו ת ר ע ד ס י ו ם 0 ז ה ה ת ק י י ם ה א ל ג ו ר י ת ם ס ת י ר ה ל ה נ ח ת ה ש ל י ל ה ה ח ל ק ה ש נ י מ ו כ ח ג ם ה ו א ב א י נ ד ו ק צ י ה פ ש ו ט ה ע ל dist(, s v)
7 ח י פ ו ש ל ע ו מ ק (DFS) ה ו א ה ר צ א ה מ ס ' 2 ח י פ ו ש ל ע ו מ ק (DFS) - Depth First Search א ל ג ו ר י ת ם ח י פ ו ש ש ה ו ג ד ר ב צ ו ר ת ו ה נ ו כ ח י ת Hopcroft ב, 2 9 9 1 ע ל ס מ ך ט כ נ י ק ה ל " ה ל י כ ה ב מ ב ו ך " מ 8 8 1 ע ב ו ר ג ר ף ( מ כ ו ו ן א ו ל א מ כ ו ו ן ) G=(V,E), ה ר צ ת ע צ י ח י פ ו ש ז ר י ם ב צ מ ת י ם ט כ נ י ק ת ה א ל ג ו ר י ת ם : " ה ת ק ד מ ו ת ל ע ו מ ק " - ש ל 2 ע ל י ד י Tarjan ו ('E, F=(V ש ל Tremaux DFS ע ל G ת ח ז י ר י ע ר ה י ע ר F מ כ י ל א ת כ ל צ מ ת י ה ג ר ף ו E ' E כ א ש ר נ ב ק ר ב צ ו מ ת, u א ם י ש ק ש ת (u,v) ל צ ו מ ת v ש ע ו ד ל א נ ת ג ל ה נ ק ב ע ש u ה ו א א ב ש ל v ב ג ר ף, F נ ח צ ה א ת ה ק ש ת ו נ מ ש י ך א ת ה ח י פ ו ש מ- v א ם א י ן ק ש ת כ ז ו ו u א י נ נ ו ה ש ו ר ש ש ל ה ע ץ ה נ ו כ ח י, ה צ ו מ ת ש מ מ נ ו נ ע ש ה ה ח י פ ו ש נ ק ר א " מ ר כ ז ה פ ע י ל ו ת " נ י ס ו ג ל א ב י ו ש ל u DFS G= ( V, ק ל ט : ג ר ף ל א מ כ ו ו ן (E פ ל ט : י ע ר ס י מ ו ן : DFS ש ל G ו ג ם ל כ ל מ י מ ו ש ע ל v V י ד י מ ח ס נ י ת ז מ ן ה ג י ל ו י ש ל v k[ v] ז מ ן ה ג י ל ו י ש ל, v ה א ב ש ל v ב ע ץ ה DFS ו-[ v ]p for all v in V k[v] := 0 ; p[v] := nil; i := 0; while there is a vertex s with k(s) = 0 STACK := {s}; i := i+1; k[s] := i; While STACK u:= head(stack) ; if there is an edge (u,v) st k[v]=0 i := i+1; k[v] := i; p[v] := u ; push(stack,v) ; else pop(stack);
נ ו ב ע) ב) כ ל ו מ ר( 8 י ה י ה ג ר ף F=(V,E') ש נ ו צ ר ע ל י ד י ה ר צ ת ה א ל ג ו ר י ת ם ה ו א ה ג ר ף ה מ ו ר כ ב מ ה ק ש ת ו ת (p(u),u) כ ע ת נ ו כ י ח מ ס פ ר ת כ ו נ ו ת ש ל ה א ל ג ו ר י ת ם, ו ב מ י ו ח ד ש ג ר ף ז ה ה ו א י ע ר ה מ כ י ל א ת כ ל צ מ ת י ה ג ר ף א כ ל צ ו מ ת מ ו כ נ ס ל כ ל ה י ו ת ר פ ע ם א ח ת ל מ ח ס נ י ת ב א ם ה א ל ג ו ר י ת ם מ ס ת י י ם כ ל צ ו מ ת ש מ ו כ נ ס ל מ ח ס נ י ת מ ו צ א מ מ נ ה ה ו כ ח ה : א צ ו מ ת u מ ו כ נ ס ר ק א ם k(u)=0, ו ל א ח ר ש ה ו כ נ ס k(u) 0 ב נ ו ב ע מ כ ך ש ב ס י ו ם ה א ל ג ו ר י ת ם ה מ ח ס נ י ת ר י ק ה מ ס ק נ ה מ ל מ ה 2: 2 ה א ל ג ו ר י ת ם מ ס ת י י ם ל א ח ר ל כ ל ה י ו ת ר 2V א י ט ר צ י ו ת ש ל ל ו ל א ת הwhile ה פ נ י מ י ת ס ב ו כ י ו ת ה ז מ ן ש ל ו ה י א O(V+E) O(V) : פ ע ו ל ו ת pop ו, push ו( O(E ל צ ו ר ך ס ר י ק ת כ ל ש כ נ י ו ש ל כ ל צ ו מ ת ש ה ו כ נ ס ל מ ח ס נ י ת STACK = s = u0 u k [,, ] ת כ ן ה מ ח ס נ י ת ב ש ל ב מ ס ו י י ם ב ב י צ ו ע ה א ל ג ו ר י ת ם א ז u i ui = p[ u ל כ ל i=0,,k-1, מ ת ק י י ם [1 + i ה ו א א ב י ו ש ל ) ב י ע ר הDFS u 1+i א י נ ד ו ק צ י ה ע ל מ ס פ ר פ ע ו ל ו ת push ו pop ש מ ת ב צ ע ו ת ב מ ה ל ך ה א ל ג ו ר י ת ם מ ש מ ע ו ת ל מ ה 2 2 ה י א ש ב כ ל ש ל ב ב א ל ג ו ר י ת ם, ס ד ר ת ה צ מ ת י ם ה נ מ צ א י ם ב מ ח ס נ י ת מ ה ו ו ה מ ס ל ו ל מ כ ו ו ן ה מ ת ח י ל ב ש ו ר ש ה ע ץ ה נ ו כ ח י ו מ ס ת י י ם ב צ ו מ ת ה א ח ר ו ן ש ה ו כ נ ס ל מ ח ס נ י ת ה ק ש ת ו ת (p(u),u), ה ו א י ע ר מ כ ו ו ן ה מ כ י ל א ת כ ל צ מ ת י ה ג ר ף ה מ כ ו ו ן F ש ל ל מ ה 3: 3 ה ג ר ף ה ו כ ח ה : ת ה י U ק ב ו צ ת ה צ מ ת י ם ה מ ו כ נ ס ת ל מ ח ס נ י ת ב א י ט ר צ י ה א ח ת ש ל ל ו ל א ת הwhile ב ג ר ף F י ש מ ס ל ו ל מ כ ו ן מs ל כ ל ( א ) ה ח י צ ו נ י ת ( ש ב ת ח י ל ת ה צ ו מ ת s מ ו כ נ ס ל מ ח ס נ י ת ) צ ו מ ת ב U מ ל מ ה ) 2 2 ) לs י ש ד ר ג ת כ נ י ס ה 0 ו ל כ ל צ ו מ ת א ח ר בU י ש ד ר ג ת כ נ י ס ה 1 ת נ א י ם א ל ו מ ג ד י ר י ם ע ץ מ כ ו ו ן ש ש ר ש ו s מ א ח ר ו כ ל צ ו מ ת מ ו כ נ ס ל מ ח ס נ י ת ל כ ל ה י ו ת ר פ ע ם א ח ת, ה ע צ י ם ה מ ת ק ב ל י ם ה ם ז ר י ם ב צ מ ת י ם ה י ע ר מ כ י ל א ת כ ל צ מ ת י ה ג ר ף מ ש ו ם ש ה א ל ג ו ר י ת ם ע ו צ ר ר ק ל א ח ר ש כ ל ה צ מ ת י ם ה ו כ נ ס ו ל מ ח ס נ י ת ל מ ה 4: 4 v ה ו א צ א צ א ש ל u ב ג ר ף v F ה ו כ נ ס ל מ ח ס נ י ת כ א ש ר ה מ ח ס נ י ת ה כ י ל ה א ת u
ל ו ל א ה) ש א י נ ן, 9 P= ( s= v, v,, v = v) 0 1 k ת ה י ס ד ר ת ה צ מ ת י ם ב מ ח ס נ י ת כ א ש ר v ה ו כ נ ס ל מ ח ס נ י ת מ ל מ ו ת 2 2 ו 3 2 נ ו ב ע ש s ה ו א ה ש ו ר ש ש ל ה ע ץ T ה מ כ י ל א ת, v וP ה ו א ה מ ס ל ו ל ה י ח י ד מ s ל v ל כ ן u א ב ק ד מ ו ן ש ל v א ם ם u נ מ צ א ב P ב ד י ו ן ל ה ל ן, צ ו מ ת י י ק ר א ל ב ן ע ם ע ד י י ן ל א ה ו כ נ ס ל מ ח ס נ י ת א ם כ א ש ר u ה ו כ נ ס ל מ ח ס נ י ת ה י ה ב ג ר ף ה ק ל ט G מ ס ל ו ל (v ( =u u, u,, u = ש ל 0 1 k צ מ ת י ם ל ב נ י ם, א ז v ה ו א צ א צ א ש ל u ב ג ר ף F ה ו כ ח ה : ע ל ס מ ך ל מ ה, 4 2 י ס פ י ק ל ה ו כ י ח ש כ ל צ מ ת ב מ ס ל ו ל ה נ " ל ה ו כ נ ס ל מ ח ס נ י ת ל פ נ י ש u ה ו צ א מ ה מ ח ס נ י ת א ת ז ה מ ו כ י ח י ם ב א י נ ד ו ק צ י ה ע ל ס ד ר ה צ מ ת י ם ב מ ס ל ו ל, ע ל ס מ ך ה ע ו ב ד ה ש צ ו מ ת מ ו צ א מ ה מ ח ס נ י ת ר ק ל א ח ר ש כ ל ש כ נ י ו ה ו כ נ ס ו ל מ ח ס נ י ת ( ב ג ל ל ה פ ס ו ק if else באלגוריתם( כ א ש ר G ג ר ף ל א מ כ ו ו ן, י ע ר הDFS F=(V,E') ה מ ו ח ז ר ע ל י ד י ה א ל ג ו ר י ת ם מ ק י י ם א ת ת כ ו נ ת ה ק ש ת ה א ח ו ר י ת : ל כ ל ק ש ת (x,y) ב x, E ה ו א צ א צ א ש ל y ב F א ו ל ה פ ך ה ו כ ח ה : נ נ י ח ב ה כ ש x ה ת ג ל ה ( ה ו כ נ ס ל מ ח ס נ י ת ) ל פ נ י y א ז ה ק ש ת (x,y) מ ק י י מ ת א ת ה ה נ ח ה ש ל ל מ ה 5 2 ו ל כ ן y ה ו א צ א צ א ש ל x בF ה ג ד ר ה : ע ץ פ ו ר ש מ ו ש ר ש ש ל ג ר ף ל א מ כ ו ו ן ו ק ש י ר G ה מ ק י י ם א ת ת כ ו נ ת ה ק ש ת ה א ח ו ר י ת נ ק ר א ע ץ DFS ש ל G ס י ו ו ג ק ש ת ו ת DFS ע ל ג ר ף מ כ ו ו ן י ע ר DFS ע ל ג ר ף מ כ ו ו ן G=(V,E) מ ג ד י ר א ר ב ע ה ס ו ג י ק ש ת ו ת בE : u= ק ש ת ו ת עץ: (u,v) ק ש ת ע ץ א ם ם (v )p DFS u u ( u, v) ק ש ת ו ת א ח ו ר י ו ת : ק ש ת ב ע ץ ש ל ק ד מ ו ן ל א ב א ת ש מ ח ב ר ת ע צ מ י ת ת ח ש ב כ ק ש ת א ח ו ר י ת ) u u מ- ( u, v) ק ש ת ו ת ק ד מ י ו ת : ק ש ת ו ת ל צ א צ א ש ל ב ע ץ DFS ק ש ת ו ת ע ץ ק ש ו ת ו ת ח ו צ ו ת (cross( : כ ל ה ק ש ת ו ת ה א ח ר ו ת ב : G ק ש ת ו ת ב י ן צ מ ת י ם ב א ו ת ו ע ץ DFS ל ל א י ח ס א ב ק ד מ ו ן צ א צ א, א ו ק ש ת ו ת ב י ן ע צ י DFS ש ו נ י ם
מ ן) ש י ס ו מ ן, פ ר מ ו ט צ י ה () 0 1 ה ר צ א ה מ ס ' 3 שימוש בDFS מציאת רכיבים קשירים היטב: בגרף מכוון G= ( V, E) ( ר ק " ה ה י ט ב ק ש י ר ר כ י ב ה ג ד ר ה : מ כ ו ו ן ב ג ר ף ב ק י צ ו ר ) ש ל מ ק ס י מ ל י ת ק ב ' ה ו א ל- u ב- צ מ ת י ם C כ ך ש ל כ ל ז ו ג צ מ ת י ם י ש מ ס ל ו ל י ם מ כ ו ו נ י ם מ- v ל- ו מ- u C ב- u, v V v ד ו ג מ ה : ב ג ר ף מ כ ו ו ן א צ י ק ל י ( ח ס ר מ ע ג ל י ם מ כ ו ו נ י ם ) כ ל צ ו מ ת ה ו א ר ק " ה נ ג ד י ר י ח ס " ח ב ר ו ת " ב י ן צ מ ת י ם : u ח ב ר ש ל v א ם u ו v נ מ צ א י ם ב א ו ת ו ר ק " ה י ח ס ה ח ב ר ו ת ה ו א י ח ס ש ק י ל ו ת ( ר פ ל ק ס י ב י, ס י מ ט ר י, ט ר נ ס י ט י ב י ) מ כ א ן ש ה ו א מ ח ל ק א ת צ מ ת י ה ג ר ף ל ק ב ו צ ו ת ז ר ו ת ו מ ש ל י מ ו ת כ ל ק ב ו צ ה כ ז ו מ ש ר ה ר ק " ה ש ל ה ג ר ף ) C= VC, C =Φ i i j ה ג ד ר ה: נ נ י ח ש ה ר ק " ה ב- G ה ם,, 1 C ה נ כ ת ב ל ע י ל Ck, מ ו ג ד ר ב א ו פ ן ה ב א G* = ( V*, E*) ג ר ף ה ר כ י ב י ם ק ש י ר י ם ה י ט ב ש ל G V = v1 v k * {,, } E* = {( v, v ) : i j C j C i ק ש ת ש י ו צ א ת מ צ ו מ ת ב- א ל צ ו מ ת ב- { י ש בE מ ט ר ת נ ו ל מ צ ו א א ל ג ו ר י ת ם י ע י ל ל מ צ י א ת ג ר ף ה ר ק " ה ש ל ג ר ף נ ת ו ן G ה ר ע י ו ן ה ו א ל ק ב ו ע ס ד ר π ע ל ה צ מ ת י ם ש ל G כ ך ש כ א ש ר ס ד ר ה כ נ ס ת ה צ מ ת י ם ל מ ח ס נ י ת ר י ק ה ( ב ל ו ל א ת ה while ה ח י צ ו נ י ת ) נ ק ב ע ע ל פ י π, י ו ח ז ר ו כ ל ה ר ק " ה ש ל G ה ד י ו ן ל ה ל ן מ ת י י ח ס ל ג ר ף מ כ ו ו ן G=(V,E) כ ל ש ה ו ה ג ד ר ה: ה ג ר ף ה ה פ כ י ש ל ג ר ף ל T, ה ו א ה ג ר ף G G= ( V, E) G T T ה ק ש ת ו ת ב, G כ ל ו מ ר : ) E (,V = T G ו לG י ש א ו ת ם ר ק " ה ג ר ף ה ר ק " ה *G ה ו א א צ י ק ל י T כ א ש ר E}: E = {( vu, ) : ( uv, ) ה מ ת ק ב ל ע " י ה פ י כ ת כ י ו ו נ י הוכחה: ב ש ל י ל ה א ם ק י י ם ב* G מ ע ג ל ה מ כ י ל ל פ ח ו ת ש נ י צ מ ת י ם ה מ י י צ ג י ם ש נ י ר ק " ה C ו
נ ס מ ן) ב כ ל) 1 1 ה 'C ו C א ז ק י י ם מ ס ל ו ל מ כ ו ו ן ב י ן כ ל ז ו ג צ מ ת י ם ב, 'C ר ק " ה ס ת י ר ה ל ה נ ח ה ש ה ם ש נ י ר ק " ה ש ו נ י ם כ י ו ו ן ), ו ל כ ן C ו 'C מ ו כ ל י ם ב א ו ת ו ב כ ל ר י צ ת א ל ג ו ר י ת ם, DFS כ ל ר כ י ב ק ש י ר ה י ט ב, C, מ ו כ ל ב מ ל ו א ו ב א ח ד מ ע צ י DFS ש ה א ל ג ו ר י ת ם מ ח ז י ר ע " ס ל מ ה, 25 ה צ ו מ ת ה ר א ש ו ן מ C ש מ ו כ נ ס ל מ ח ס נ י ת י ה י ה א ב ק ד מ ו ן ב ע ץ הDFS ש ל כ ל ה צ מ ת י ם ה א ח ר י ם מ C כ נ כ ת ב ל ע י ל, ה פ ל ט ש ל ר י צ ת מ ש ת מ ש ה א ל ג ו ר י ת ם כ ע ת נ א פ י י ן ת ח ז י ר ר ק " ה י ח י ד ה ג ד ר ה : ר ק " ה C ג ד ו ל מ ר ק " ה 'C ב 'C ת ה י DFS ע ל ג ר ף G ת ל ו י ב פ ר מ ו ט צ י ה ש ל ה צ מ ת י ם ב V ב ה פ ר מ ו ט צ י ו ת ה מ ב ט י ח ו ת ש כ ל א י ט ר צ י ה ש ל ה א ל ג ו ר י ת ם 'C ) C < א ם ק י י ם מ ס ל ו ל מ כ ו ו ן מ צ מ ת ב C ל צ מ ת π = π1 π n (,, ) ה צ ו מ ת ה ר א ש ו ן ש ל ה ג ד ר ה: פ ר מ ו ט צ י ה ש ל V נ ג י ד ש ר ק " ה C מ ו פ י ע π ב C מ ו פ י ע ב π ל פ נ י ה צ ו מ ת ה ר א ש ו ן ש ל C' ל פ נ י ר ק " ה 'C א ם פ ר מ ו ט צ י ה π ש ל צ מ ת י V ת י ק ר א כ ש ר ה א ם ה י א מ ק י י מ ת א ת ה ת נ א י ה ב א : ר ק " ה, 'C, C א ם C<C' א ז C מ ו פ י ע π ב ד ו ג מ ה : א ם ה ג ר ף ה ו א מ ס ל ו ל מ כ ו ו ן ו ה פ ר מ ו ט צ י ה ה כ ש ר ה ה י ח י ד ה ה י א ה א ל ג ו ר י ת ם נ נ י ח ש ה ר צ נ ו א ל ג ו ר י ת ם ה ו א פ ר מ ו ט צ י ה ה מ כ י ל א ת ה צ מ ת י ם ש ל ר ק " ה ל פ נ י 'C (n 2 1), א ז כ ל ר ק " ה מ כ י ל צ ו מ ת ב ו ד ד )1 א ח ר ו ן, n ר א ש ו ן ) ( n, n 1,,2,1) DFS ע ל ג ר ף מ כ ו ו ן, כ ך ש ס ד ר ה צ מ ת י ם ב ב י צ ו ע : י ה י s C ה ר ק " ה ש ל, s ו י ה י ל כ ל ז ו ג כ ש ר ה π א ז כ ל ב י צ ו ע ש ל ל ו ל א ת הwhile ה ח י צ ו נ י ת מ ח ז י ר ע ץ י ח י ד ש ל G ה צ ו מ ת ה ר א ש ו ן ש ה ו כ נ ס ל מ ח ס נ י ת ב ב י צ ו ע ש ל ל ו ל א ת הwhile ה ח י צ ו נ י ת, י ה י T ע ץ ה DFS ה מ ו ח ז ר ע " י ב י צ ו ע ה ל ו ל א ה מ ל מ ה 3 3 נ ו ב ע ש כ ל צ מ ת י C נ מ צ א י ם ב, T ל כ ן י ס פ י ק ל ה ו כ י ח ש א ף צ ו מ ת א ח ר ל א נ מ צ א ב T: מ א ח ר ו π פ ר מ ו ט צ י ה כ ש ר ה, כ ל צ ו מ ת u ב ר ה ש ג ה מ s ש א י נ ו ב C ש י י ך ל ר ק " ה ש מ ו פ י ע ל פ נ י, C ו ל כ ן ( ע " ס ל מ ה ) 3 3 ה ו כ נ ס ל מ ח ס נ י ת ל פ נ י, s ו ל כ ן ( ע " ס ל מ ה ) 4 2 א י נ ו צ א צ א ש ל, s ו ל א מ ו פ י ע ב T
ר א ו) ק י י ם) כ י) ז מ ן) 2 1 מ ס ק נ ה כ ד י ל מ צ ו א א ת כ ל ה ר ק " ה ש ל ג ר ף, G מ ס פ י ק ל מ צ א פ ר מ ו ט צ י ה כ ש י ר ה ש ל צ מ ת י G ו ל ה ר י ץ ע ל י ה DFS ה א ל ג ו ר י ת ם ש נ צ י ג מ ש ת מ ש ב G T כ ד י ל מ צ א פ ר מ ו ט צ י ה כ ש ר ה ש ל ה ג ר ף ה ה פ כ י DFS ס מ ך ט ע נ ה 1 3 מ ו ר כ ב מ א ו ת ם ר ק " ה ש ל G ה א ל ג ו ר י ת ם מ ת ב ס ס ע ל ה ל מ ה ה ב א ה : ה ו צ א ש ה ו ר ץ נ נ י ח DFS ע ל G ל כ ל צ ו מ ת u נ ג ד י ר f[u] ) u ש ל ה ס י ו ם u מ ה מ ח ס נ י ת ה י א פ ר מ ו ט צ י ה כ ש ר ה ש ל ש ע ל, ב ו כ ז מ ן ה פ ר מ ו ט צ י ה π ה מ ת ק ב ל ת ע ל י ד י ס י ד ו ר ה צ מ ת י ם ל פ י ס ד ר יורד של f[u] T G T ל G ו ל G י ש א ו ת ם ר ק " ה א ך ה ס ד ר ב י נ י הם מ ת ה פ ך ל כ ן צ ר י ך ל ה ו כ י ח כ י א ם ב מ ת ק י י ם ש 'C C > א ז ה צ מ ת ה ר א ש ו ן מ C מ ו פ י ע ב π ל פ נ י ה צ ו מ ת ה ר א ש ו ן מ 'C י ה י ו s ו 's ה צ מ ת י ם ה ר א ש ו נ י ם מ C',C ש ה ו כ נ ס ו ל מ ח ס נ י ת ב ה ת א מ ה G 's ה ו צ א מ ה מ ח ס נ י ת א ח ר י s כ ל ו מ ר ש, f[s] > f[s'] י ה י א ב P מ כ ל ש ה ו מ ס ל ו ל s ל 's ש ה ו כ נ ס ל מ ח ס נ י ת נ ב ד י ל ב י ן ש נ י מ ק ר י ם : כ ז ה מ ס ל ו ל כ י C' ) C > י ה י x ע ל פ י ה ג ד ר ת, π צ ל כ י ה צ ו מ ת P ב ה ר א ש ו ן x=s א ז כ א ש ר s ה ו כ נ ס ל מ ח ס נ י ת כ ל ש א ר ה צ מ ת י ם ב P ה י ו ל ב נ י ם ו ל כ ן 's ה ו כ נ ס ו ה ו צ א מ ה מ ח ס נ י ת ל פ נ י ש s ה ו צ א מ מ נ ה ( ב ד ו מ ה ל ה ו כ ח ה ש ל ל מ ה ) 5 2 x s ב מ ק ר ה ז ה x ב א י נ נ ו s ה צ ו מ ת ה ו א C ש ה ו כ נ ס C מ ה ר א ש ו ן x ו ל מ ח ס נ י ת, ה ו כ נ ס ל פ נ י ) s, ו ל כ ן א י ן מ ס ל ו ל מ כ ו ו ן מ x ל, s בעוד שיש מ ס ל ו ל מכוון של צ מ ת י ם ל ב נ י ם מ x ל 's ו ח ו מ ר צ י ו ר ) מ כ א ן ש ל פ נ י ש s ה ו צ א מ ה מ ח ס נ י ת ) 's ה ו כ נ ס ו ה ו צ א מ ה מ ח ס נ י ת ל פ נ י ש s ה ו כ נ ס ל מ ח ס נ י ת ( ק ל צ מ ת י ם ל ב נ י ם C C s x P s' C C'
ס י ב ו כ י ו ת) ש י מ ו ל מ ה) ט ע נ ה) 3 3 ה א ל ג ו ר י ת ם ה מ ש ת מ ע מ ה נ כ ת ב ל ע י ל ה ו א : Strongly_Connected_Components(G): א ל ג ו ר י ת ם ל מ צ י א ת ר כ י ב י ם ק ש י ר י ם ה י ט ב (1) Call DFS(G) to compute f[u] for all u in V (2) Compute G T (3) Call DFS( G T ) on the vertices ordered in decreasing order of f[u] (as computed in (1)) (4) output the vertices in each DFS tree generated in (3) ז מ ן ר י צ ה ) DFS ( + E) ז מ ן ה ר י צ ה ה ו א OV ל ב ש ל צ ו ר ך ש ל ב )3 ) צ ר י ך ל ש מ ו ר א ת צ מ ת י G ב ס ד ר י ו ר ד ש ל ע ר כ י נ כ ו נ ו ת f [ u] ב ז מ ן ש ה ם מ ח ו ש ב י ם ת ה י π הפרמוטציה של הצמתים שנקבעת ע " י ס ד ר יורד של f[v] מ ל מ ה 5 3 נ ו ב ע ש π ה י א ע ב ו ר כ ש ר ה T ו ל כ ן, G ה ר כ י ב י ם ה ק ש י ר י ם ש ל ג ר ף א ת ל ב נ ו ת כ ד י מ צ ו מ ת ב C i ל צ ו מ ת ב ה א ל ג ו ר י ת ם ה ר כ י ב י ם א ת מ ח ז י ר ש ל ה ק ש י ר י ם, ) 4 3 T G ) 1 3 G ה ק ש ת ו ת ע ל ל ע ב ו ר א פ ש ר ש ל G ה ר ק " ה ש ל, G C j ) v ( v, ק ש ת ל ה ו ס י ף, i j ל *E ק ש ת י ש ו א ם ש ה ם מ כ ו ו נ ת
4 1 הרצאה מס ' 3 אלטרנטיבית מ צ י א ת צ מ ת י ה פ ר ד ה ו ר כ י ב י ם א י פ ר י ק י ם ה ה ר צ א ה ע ו ס ק ת ב א פ ל י ק צ י ה ש ל DFS ל א ו ר ך כ ל ה ה ר צ א ה נ נ י ח ש G=(V,E) ה ו א ג ר ף ל א מ כ ו ו ן ו ק ש י ר, א ל א א ם נ א מ ר ב מ פ ו ר ש א ח ר ת נ פ ת ח ב מ ס פ ר הגדרות צ ו מ ת ה פ ר ד ה vertex) (separating : י ה י G=(V,E) ג ר ף נ ת ו ן v V ה ו א צ ו מ ת ה פ ר ד ה א ם ק י י מ י ם צ מ ת י ם u,w כ ך ש כ ל מ ס ל ו ל מ u לw ע ו ב ר ב v ג ר ף פ ר י ק : ג ר ף ה מ כ י ל צ ו מ ת ה פ ר ד ה U, ת ת ה ג ר ף ה מ ו ש ר ה ע " י, G(U) U V ת ת ג ר ף מ ו ש ר ה : ת ה י מ ו ג ד ר ע " י : GU = ( UE, '), where E' = {( xy, ) : xy, U,( xy, ) E} ר כ י ב א י פ ר י ק component) :(irreducible ת ת ג ר ף מ ו ש ר ה G(U) ה ו א ר כ י ב א י פ ר י ק ש ל G א ם ה ו א א י פ ר י ק ו כ ל ת ת ג ר ף מ ו ש ר ה ש מ כ י ל א ת (U )G ה ו א פ ר י ק ה ג ד ר ה : י ה י T=(V,E) ע ץ מ כ ו ו ן ו י ה י T(v) v V ה ו א ת ת ה ע ץ ש ל T ה מ ו ש ר ה ע ל י ד י v ו כ ל צ א צ א י ו ש ל v ב T ו ש י מ ל ב ש v ה ו א ה ש ר ש ש ל T(v) ה ג ד ר ה : י ה י T ע ץ DFS ש ל G=(V,E) ו u V ק ש ת (v,w) E ע ו ק פ ת א ת u א ם v צ א צ א א מ י ת י ש ל u וw א ב ק ד מ ו ן א מ י ת י ש ל u ב ע ץ T ( ש י מ ו ל ב ש ק ש ת ע ו ק פ ת ה י א ק ש ת א ח ו ר י ת ב ה כ ר ח ) : י ה י T ע ץ DFS ש ל G צ מ ת u ה ו א צ מ ת ה פ ר ד ה ב G א ם ם מ ת ק י י ם א ח ד מ ה ת נ א י ם ה ב א י ם : 1 u ה ו א ה ש ר ש ש ל T ו י ש ל ו י ו ת ר מ ב ן א ח ד u ע ו ק פ ת א ת ו כ ך ש ל א ק י י מ ת ק ש ת ה י ו צ א ת מ צ ו מ ת ב( T(v v ב ן u א י נ נ ו ה ש ר ש, ו י ש ל u 2 ה ו כ ח ה : 1 מ א ח ר ו ב ע ץ DFS א י ן ק ש ת ו ת ח ו צ ו ת, כ ל מ ס ל ו ל ב י ן ש נ י ב נ י ם ש ו נ י ם ש ל s ח י י ב ל ע ב ו ר ד ר ך s מ צ ד ש נ י, א ם לs י ש ר ק ב ן א ח ד, ה ר י ק י י ם מ ס ל ו ל ב י ן כ ל ש נ י צ מ ת י ם ה מ ש ת מ ש ר ק ב ק ש ת ו ת ע ץ ו א י נ ו ע ו ב ר ד ר ך s 2 א ם ל א ק י י מ ת ק ש ת א ח ו ר י ת מ צ ו מ ת ב( T(v ה ע ו ק פ ת א ת, u כ ל מ ס ל ו ל מ v ל s ח י י ב ל ע ב ו ר ד ר ך )u u ה י נ ו ה צ ו מ ת ה ר א ש ו ן ב מ ס ל ו ל כ ז ה ש א י נ נ ו ש י י ך ל( T(v ), ו ל כ ן u צ מ ת ה פ ר ד ה מ צ ד ש נ י, א ם ל כ ל ב ן v ש ל u ק י י מ ת ק ש ת א ח ו ר י ת כ נ " ל, ה ר י ש נ י ת ן ל ה ג י ע מ כ ל צ מ ת {u a V }\ ל ש ר ש s ב ל י ל ע ב ו ר ד ר ך, u ו ל כ ן ב י ן כ ל ש נ י צ מ ת י ם י ש מ ס ל ו ל ש א י נ ו ע ו ב ר ד ר ך u ל כ ן u א י נ ו צ ו מ ת ה פ ר ד ה
ק י י מ ת] ס ע י ף () 2 5 1 כ ד י ל ב ד ו ק א ם ת נ א י 2 ש ל ל מ ה 6 3 מ ת ק י י ם, מ ח ש ב י ם ל כ ל צ ו מ ת u א ת L(u), ה lowpoint ש ל, u ה מ ו ג ד ר ל ה ל ן : L( u) min{ kv :[ v= u] OR [ there is a back edge from a vertex in Tu to v]} ל מ ה : 7 7 י ה י u צ מ ת ש א י נ ו ש ר ש ו י ה י v ב ן ש ל u א ז י : ק ש ת ה י ו צ א ת מ צ ו מ ת ב T(v) ו ע ו ק פ ת א ת ] u א ם ם [ (u ] )L (v < )k ה ו כ ח ה: נ נ י ח ש ק י י מ ת ק ש ת ( x, y) ה י ו צ א ת מ צ ו מ ת x ב T(v) ו ע ו ק פ ת א ת u א ז ק ד מ ו ן ש ל u מ ה ג ד ר ת L(u) מ ק ב ל י ם : ) ( ku Lu )k (y < מ צ ד ש נ י, א ם (u )L (v < )k א ז ק י י מ ת ק ש ת מ צ מ ת ב T(v) ל צ מ ת y כ ך ש מ א ח ר ו ה ק ש ת ה י א ק ש ת א ח ו ר י ת, y ב ה כ ר ח א ב ק ד מ ו ן ש ל u y ה ו א א ב ky < ku ל מ ה : 8 8 א ם u א י נ נ ו ה ש ר ש, s ] Lv () ku () א ז ]u צ ו מ ת ה פ ר ד ה ] [ ק י י ם ב ן v ש ל u כ ך ש ה ו כ ח ה : מ ל מ ה, 7 3 ה ת נ א י ב צ ד ש מ א ל א ו מ ר ש ל א ק י י מ ת ק ש ת ה י ו צ א ת מ T(v) ו ע ו ק פ ת א ת u ע " ס ל מ ה 6 3 ז ה ש ק ו ל ל כ ך ש u צ מ ת ה פ ר ד ה ל כ ל צ מ ת u מ ת ק י י ם ה ש ו ו י ו ן : [ ] Lu = min { ku } { kv : ( uv, ) is a back edge} { Lv : vis a child of uin T} ה ו כ ח ה : ע ל פ י ה ה ג ד ר ה ש ל L(u)
6 1 L(v), v ה א ב ש ל p[v] א ל ג ו ר י ת ם ל מ צ י א ת צ מ ת י ה פ ר ד ה ע " י DFS ק ל ט : ג ר ף ל א מ כ ו ו ן ו ק ש י ר G=(V,E) ו צ ו מ ת s פ ל ט : ע ץ DFS ש ל G ע ם ש ו ר ש, s ו צ מ ת י ה ה פ ר ד ה ש ל G ה א ל ג ו ר י ת ם מ ש ת מ ש ב מ ש ת נ י ם ה ב א י ם : -k[v] ז מ ן ה ג י ל ו י ש ל, v ע ר ך ה lowpoint ש ל v for all v in V k[v] := 0, p[v] := nil, L(v):= for all e in E mark e "new" STACK:={s}, i:= 1, k[s]:=1, L[s]:=1 While STACK u:= head(stack) if there is an edge e=(u,v) marked "new" mark e "used" if k[v]=0 i:=i+1, k[v]:=i, L(v):=i, p[v]:=u, push(stack,v) else \*k[v]>0, ie (u,v) is back-edge (a) L[u]:=min{L[u],k[v]} else \* all edges leaving u are "used" if (u s) if ( p[u] s & L[u] k[p[u]] ) mark p[u] as separating vertex if ( p[u]=s & s has a "new" edge ) mark s as separating vertex (b) L[p[u]]:=min{L[p[u]],L[u]} pop(stack)
ז מ ן) ה) 7 1 ל מ ה 0: 1 0 ה א ל ג ו ר י ת ם ל ע י ל מ ו צ א א ת צ מ ת י ה ה פ ר ד ה ש ל G ת ק צ י ר ה ו כ ח ה: מ ו כ י ח י ם ב א י נ ד ו ק צ י ה ע ל מ ס פ ר פ ע ו ל ו ת ה מ ח ס נ י ת א ת ה ט ע נ ה ה ב א ה : ה ע ד כ ו נ י ם ב ש ו ר ו ת (a) (b), מ ב ט י ח י ם ש ל כ ל צ ו מ ת, u כ א ש ר u מ ו צ א מ ה מ ח ס נ י ת ה ע ר ך L(u) ש ח ו ש ב ע ל י ד י ה א ל ג ו ר י ת ם ה ו א ה ע ר ך ה נ כ ו ן ש ל מ ש ת מ ש ת ב ל מ ה 9 3 מ כ א ן נ ו ב ע ( ע ל ס מ ך ל מ ה 6)1 3 ) ו ל מ ה 8 3 כvertex separating א ם ם ה ו א צ ו מ ת ה פ ר ד ה ג ר ף ה ר כ י ב י ם ה א י פ ר י ק י ם ש ל G: H = ( X, E ') ש צ מ ת( (u lowpoint( ה ו כ ח ת צ ע ד ה א י נ ד ו ק צ י ה מ ו ג ד ר ע ל י ד י : X = { u: u is a separating vertex} { C: C is an irreducible component} E' = {( uc, ) : u C} מ ס ו מ ן H א י נ ו י כ ו ל ל ה כ י ל צ מ ת י ה פ ר ד ה ט ע נ ה : H ה ו א ע ץ ל א מ כ ו ו ן ת ק צ י ר ה ה ו כ ח ה : ע ל ס מ ך ז ה ש מ ע ג ל ב כ ע ת נ צ י ג א ל ג ו ר י ת ם ה מ ח ז י ר ר כ י ב י ם א י פ ר י ק י ם ב ז מ ן O(V) ע ל י ד י ש י מ ו ש ב פ ל ט ש ל ה א ל ג ו ר י ת ם ל מ צ י א ת צ מ ת י ה פ ר ד ה ה א ל ג ו ר י ת ם ס ו ר ק א ת ע ץ הDFS ש ה ו ח ז ר, ו מ כ נ י ס ל מ ח ס נ י ת כ ל צ מ ת ש מ ת ג ל ה ( ב ד ו מ ה ל ) DFS כ א ש ר ה א ל ג ו ר י ת ם מ ת ק ד ם ל צ מ ת v ב ע ץ, ה ו א ב ו ד ק א ם מ ת ק י י ם א ח ד ה ת נ א י ם ע ל פ י ה ם p(v) ה ו א צ ו מ ת ה פ ר ד ה, ו א ם p(v) צ מ ת ה פ ר ד ה ה ו א מ ס מ ן א ת v כ א ש ר ה א ל ג ו ר י ת ם נ ס ו ג מ צ ו מ ת מ ס ו מ ן v ה ו א : א מ ו צ י א מ ה מ ח ס נ י ת א ת v ו כ ל ה צ מ ת י ם ש מ ע ל י ו ; ב ר ו ש ם ר כ י ב א י פ ר י ק ה מ כ י ל א ת p(v) ו א ת כ ל ה צ מ ת י ם ש ה ו צ א ו מ ה מ ח ס נ י ת א ל ג ו ר י ת ם ל ר כ י ב י ם א י פ ר י ק י ם ק ל ט : ע ץ מ כ ו ו ן T ע ם ש ר ש s א, ש ה ו ו[ L[u lowpoint ש ל u ו( ש ה ו ח ז ר פ ל ט : ה ר כ י ב י ם ה א י פ ר י ק י ם ש ל G ע ץ DFS ש ל, G ו ע ר כ י k[u] ה ג י ל ו י ש ל ) u ע " י ה א ל ג ו ר י ת ם ל מ צ י א ת צ מ ת י ה פ ר ד ה ה א ל ג ו ר י ת ם ( ב ע מ ו ד ה ב א ) מ ש ת מ ש ב מ ח ס נ י ת STK ל צ ו ר ך ב נ י ת ה ר כ י ב י ם ה א י פ ר י ק י ם p[u] ה ו א ה א ב ש ל u בT צ מ ת v מ ס ו מ ן special א ם p[v] ה ו א צ מ ת ה מ פ ר י ד א ת v ו כ ל צ א צ א י ו מ ש א ר צ מ ת י ה ג ר ף
8 1 mark all vertices of T "new" STK :={s}, u:=s, while STK if u has a "new" child v mark v "used"; push(s, v) if u s & L[v] k[u] mark v "special" if u=s and s has another "new" child mark v "special" u:=v else \* all children of u are used if u s if u is marked "special" Let C be u and all the vertices above u in STK; Remove C from STK and declare C {p[u]} an irreducible component u:=p[u] else \* u=s declare all the vertices in STK irreducible component, and remove them from STK כ ד י ל ה ח ז י ר א ת גרף הרכיבים ה א י פ ר י ק י ם, H נ י ת ן ל ח ש ב ב ז מ ן ל י נ א ר י א ת ה ק ש ת ו ת ב H מ ר ש י מ ת ה צ מ ת י ם ב ר כ י ב י ם ה א י פ ר י ק י ם
כ ל ל) כ ל ל) 9 1 ה ר צ א ה מ ס ' 4 ע צ י ם פ ו ר ש י ם מ י נ י מ א ל י ם Trees) (Minimum Spanning ג ר ף מ מ ו ש ק ל graph) (weighted ה ו א ג ר ף ש ב ו ל כ ל ק ש ת e י ש מ ש ק ל w( e) X כ ז כ ו ר, ע ץ פ ו ר ש ש ל ג ר ף ל א מ כ ו ו ן ו ק ש י ר G=(V,E) ה ו א ת ת ג ר ף ש ל G ש ה ו א ע ץ ה מ כ י ל א ת כ ל צ מ ת י G מ ש ק ל ש ל ע ץ פ ו ר ש ש ל ג ר ף מ מ ו ש ק ל ה ו א ס כ ו ם מ ש ק ל י ק ש ת ו ת י ו : wt = we e T ב ע י ת ע פ " מ : ק ל ט : ג ר ף מ מ ו ש ק ל, פ ש ו ט, ל א מ כ ו ו ן ו ק ש י ר G=(V,E) פ ל ט : ע ץ פ ו ר ש ש ל G ב ע ל מ ש ק ל מ י נ י מ א ל י אפשרי א ל ג ו ר י ת ם ג נ ר י ל מ צ י א ת ע פ " מ =G ה ו א חלוקה של ( V, ה ג ד ר ה : ח ת ך (cut) ב ג ר ף (E V ל ש ת י ק ב ו צ ו ת ז ר ו ת ו ל א ר י ק ו ת ו- י ה י V\X ו ה ק צ ה ה ש נ י ב X ש ק צ ה א ח ד ש ל ה ן ב E ק ש ת ו ת ה ח ת ך ה ן ה ק ש ת ו ת ב V \ X ל ה ל ן ש נ י ק ש ר י ם ב ס י ס י י ם ב י ן ע צ י ם פ ו ר ש י ם, מ ע ג ל י ם ו ח ת כ י ם, ע ל י ה ם מ ס ת מ ך ה א ל ג ו ר י ת ם : T מ ע ג ל ( פ ש ו ט ) י ח י ד T ל ש נ י ת ת י ע צ י ם, ש צ ו מ ת י הם מ ה ו ו י ם ח ל ו ק ה ש ל צ מ ת י G ע ץ פ ו ר ש ש ל T )1 ) ה ו ס פ ת ק ש ת ל T ת י צ ו ר ב )2 ) ה ס ר ת ק ש ת e מ T מ ח ל ק ת א ת ה ג ר ף ק ש ת ו ת ה ח ת ך ה מ ו ג ד ר ע ל י ד י ח ל ו ק ה ז ו מ כ י ל ו ת א ת e ו א י נ ן מ כ י ל ו ת ק ש ת א ח ר ת ש ל T ה ו כ ח ה : ת ר ג י ל פ ש ו ט ל ב י ת כ ע ת נ צ י ג א ל ג ו ר י ת ם ג נ ר י ל ע פ " מ ה א ל ג ו ר י ת ם ב ו נ ה א ת ה ע פ " מ ב כ ל פ ע ו ל ה מ ו ס י פ י ם ק ש ת " ק ל ה " לT א ד ו ם ) כ ח ו ל ) א ו פ ו ס ל י ם ק ש ת T על י ד י ס ד ר ה ש ל פ ע ו ל ו ת : " כ ב ד ה " מ ל ה י ו ת ב T
2 2 האלגוריתם הגנרי לעפ " מ Generic MST Algorithm ה כ ל ל ה א ד ו ם ( ל ק ש ת ו ת כ ב ד ו ת(: C ת נ א י : ב G ק י י ם מ ע ג ל ח ס ר ק ש ת ו ת א ד ו מ ו ת, צ ב ו ע ה ל א ק ש ת ה י א וe ב ע ל ת C מ ש ק ל מ ק ס י מ א ל י ( מ ב י ן ה ק ש ת ו ת ה ל א צ ב ו ע ו ת ) ב e פ ע ו ל ה : א ת צ ב ע ב א ד ו ם ה כ ל ל ה כ ח ו ל ( ל ק ש ת ו ת ק ל ו ת ) : D G ת נ א י : ח ת ך ב ק י י ם ח ס ר ק ש ת ו ת כ ח ו ל ו ת, צ ב ו ע ה ל א ק ש ת ה י א וe ב ע ל ת D מ ש ק ל מ י נ י מ א ל י ( מ ב י ן ה ק ש ת ו ת ה ל א צ ב ו ע ו ת ) ב e פ ע ו ל ה : א ת צ ב ע ב כ ח ו ל ה א ל ג ו ר י ת ם ה ג נ ר י : ק ש ת ב ח ר כ ל ש ה י ע ל י ה נ י ת ן ל ה פ ע י ל ה כ ל ל א ת ה כ ל ל א ו ה א ד ו ם ה כ ח ו ל, ו ה פ ע ל ע צ ו ר ז ה כ ל ל כ ז ו ק ש ת בG א י ן כ א ש ר ל מ ה 4: 4 ה א ל ג ו ר י ת ם ה ג נ ר י מ ס ת י י ם ל א ח ר E צ ע ד י ם, כ א ש ר כ ל ה ק ש ת ו ת צ ב ו ע ו ת הוכחה: מ א ח ר ו ב כ ל צ ע ד נ צ ב ע ת ק ש ת, ה א ל ג ו ר י ת ם מ ס ת י י ם ל א ח ר ל כ ל ה י ו ת ר ל ה ו כ י ח ש ב ס י ו ם ה א ל ג ו ר י ת ם כ ל ה ק ש ת ו ת צ ב ו ע ו ת, נ ו כ י ח כ י כ ל ז מ ן ש י ש ב ג ר ף ק ש ת צ ב ו ע ה, נ י ת ן ל צ ב ו ע ק ש ת ע ל פ י א ח ד ה כ ל ל י ם =e ה י א ק ש ת ל א צ ב ו ע ה נ נ י ח כ י (,) u v נ ב ח י ן ב י ן 2 מ ק ר י ם : E צ ע ד י ם כ ד י ק י י ם מ ס ל ו ל כ ח ו ל ב י ן u ל v י ה י C ה מ ע ג ל ה נ ו צ ר ע ל י ד י ה ו ס פ ת e ל מ ס ל ו ל א ת e ע ל פ י ה כ ל ל ה א ד ו ם ל א ק י י ם מ ס ל ו ל כ ח ו ל מ u ל v ה ח ת ך ה מ ו ג ד ר ע ל י ד י X ת ה י V \ X ו X א ת א ח ת מ ק ש ת ו ת י ו ע ל פ י ה כ ל ל ה כ ח ו ל ל א נ י ת ן ל צ ב ו ע ק ב ו צ ת הצמתים שיש א ל י ה ם מ ס ל ו ל כ ח ו ל מ u מ כ י ל א ת e ו א י ן ב ו ק ש ת ו ת כ ח ו ל ו ת ל כ ן נ י ת ן ל צ ב ו ע כ ע ת נ ו כ י ח ש כ א ש ר ה א ל ג ו ר י ת ם מ ס ת י י ם ה ק ש ת ו ת ה כ ח ו ל ו ת ח י י ב ו ת ל ה י ו ת ע פ " מ ה ג ד ר ה : ג ר ף G ש ח ל ק מ ק ש ת ו ת י ו כ ח ו ל ו ת ו ח ל ק א ח ר א ד ו מ ו ת מ ק י י ם א ת שמורת ה צ ב ע א ם ם ק י י ם בG ע פ " מ ש מ כ י ל א ת כ ל ה ק ש ת ו ת ה כ ח ו ל ו ת ו א ף א חת מ ה ק ש ת ו ת ה א ד ו מ ו ת
ש ק ש ת ו ת י ו) כ י) ל מ ה) ל מ ה) 1 2 ל מ ה 3: 4 ב כ ל ב י צ ו ע ש ל ה א ל ג ו ר י ת ם ה ג נ ר י ע ל ג ר ף ל א מ כ ו ו ן מ מ ו ש ק ל ו ק ש י ר מ ל כ ת ח י ל ה א י נ ן צ ב ו ע ו ת ), ה ג ר ף G מ ק י י ם א ת ש מ ו ר ת ה צ ב ע ה ו כ ח ה : ב א י נ ד ו ק צ י ה ע ל מ ס פ ר ה ק ש ת ו ת ש ה א ל ג ו ר י ת ם ה ג נ ר י צ ב ע G ב ס י ס : כ א ש ר א ף ק ש ת ל א צ ב ו ע ה כ ל ע פ " מ מ ק י י ם א ת ש מ ו ר ת ה צ ב ע ( ב א ו פ ן ר י ק ) ה k צ ע ד : נוכיח שאם ה ט ע נ ה נ כ ו נ ה ל א ח ר צ ב י ע ת 1-k ק ש ת ו ת, ה י א נ כ ו נ ה ג ם ל א ח ר צ ב י ע ת ה ק ש ת מ ק ר ה א : =e ב כ ח ו ל ע ל י ד י ה פ ע ל ת ה כ ל ל ה כ ח ו ל ע ל ה ח ת ך ב צ ע ד ה k צ ב ע נ ו ק ש ת (,) u v ) X D= ( XV, \ י ה י א ם ש ע ב ו ר ו ע פ " מ T ה ש מ ו ר ה ה ת ק י י מ ה e צ ב י ע ת ל פ נ י ה א י נ ' מ ה נ ח ת א ז e T ב י ן ה צ מ ת י ם T א י נ ה א ד ו מ ה ( מ א ח ר ו א ת ה ו א ע פ " מ כ מ ב ו ק ש א ם,u ה מ ס ל ו ל ח י י ב ל ה כ י ל ק ש ת v e T א ז נ ס ת כ ל ע ל ה מ ס ל ו ל ב ע ץ T e ' ש ח ו צ ה א ת, D ו ל כ ן א י נ ה כ ח ו ל ה ש מ ח ב ר e ' ) e' T ' e כ ל ו מ ר א י נ ה צ ב ו ע ה מ כ א ן ש we we' ה כ ל ל ה כ ח ו ל e ה י א ק ש ת ל א צ ב ו ע ה ב ע ל ת מ ש ק ל מ י נ י מ א ל י ב ) D נ ש מ י ט א ת e ' T ל- e ח ד ש ג ר ף ת ת נ ק ב ל T ' ו מ כ י ל ( ק ש י ר ע ץ ה ו א ש ג ם 1-n wt ( ') = wt we ( ') + we wt ה כ ח ו ל ו ת כ נ ד ר ש ל ב ( ש י מ ו ל כ ן ש ל מ ע ש ה T ' ח י י ב ע פ " מ, ה ו א ל ה ת ק י י ם מ כ י ל ו ה ו א ק ש ת ו ת ), א ת wt = wt ( ') כ ל, = ) we we' ג ם ע " פ ו נ ו ס י ף ו מ ת ק י י ם ה ק ש ת ו ת ג ם ו ל כ ן מ ק ר ה ב: T =e ב א ד ו ם ע ל י ד י ה פ ע ל ת ה כ ל ל ה א ד ו ם ע ל מ ע ג ל ב צ ע ד ה k צ ב ע נ ו ק ש ת (,) u v, C ו ה ע פ " מ ש ק י י ם א ת ה ש מ ו ר ה ה ו א e T א ם א ז ס י י מ נ ו א ם e T מ ח ל ק ת א ת T T T 1 ו ל ש נ י ע צ י ם ז ר י ם, T 2 א ז ה ש מ ט ת e מ )2 1 4 ( ( צ מ ת י ע צ י ם א ל ו מ ה ו ו י ם ח ל ו ק ה ש ל צ מ ת י ה ג ר ף G ה ח ת ך D ה מ ו ג ד ר ע " י ח ל ו ק ה ז ו כ ו ל ל א ת ה ק ש ת e ק ש ת נ ו ס פ ת מ ה מ ע ג ל, C ש ת ק ר א מ ה נ ח ת ה א י נ ד ו ק צ י ה א י נ ה כ ח ו ל ה א י נ ה ש י י כ ת לT 'e ה ק ש ת 'e מ ה כ ל ל ה א ד ו ם נ ו ב ע ש-' e ו ל פ ח ו ת (2( 1 4 ), ו ל כ ן we' we ת ת ה ג ר ף נ ב ח ר ה ע " י ה כ ל ל ה א ד ו ם, ל כ ן ) ( ) ( ג ם ל א ה י ת ה א ד ו מ ה כ א ש ר e e ה מ ת ק ב ל ע " י ה ש מ ט ת 'T
2 2, wt ( ') = wt + we ( ') we wt ו ה ו ס פ ת 'e ל T ה ו א ע ץ ( ל מ ה? ) ה ע ץ 'T מ ק י י ם ו ל כ ן מ ס ק נ ה: ה ו כ ח ה : ל א ה ם wt = wt ( ') ה י ו ו ב מ י ו ח ד 'T ה ו א ע פ " מ ה מ ק י י ם א ת ה ש מ ו ר ה כ א ש ר ה א ל ג ו ר י ת ם ה ג נ ר י מ ס ת י י ם ה ק ש ת ו ת ה כ ח ו ל ו ת מ ה ו ו ת ע פ " מ ע ל פ י ל מ ה, 3 4 כ א ש ר ה א ל ג ו ר י ת ם מ ס ת י י ם ה ק ש ת ו ת ה כ ח ו ל ו ת מ ו כ ל ו ת ב ע פ " מ א ם ל ה ש ל י מ ן נ י ת ן ה י ה ע פ " מ, ק ש ת ו ת ה ו ס פ ת י ד י ע ל ל ע פ " מ א ד ו מ ו ת ( ל מ ה? ) ב ס ת י ר ה ל כ ך ש ה ק ש ת ו ת ה א ד ו מ ו ת א י נ ו מ ו כ ל ו ת ב ע פ " מ ק ל ט : ה א ל ג ו ר י ת ם ש ל Prim מ פ ע י ל י ם א ת ה כ ל ל ה כ ח ו ל ב ל ב ד ע ד ש מ ת ק ב ל ע פ " מ נ ו ס פ ו ת ה כ ל ל ה כ ח ו ל מ ו פ ע ל ע ל ה ח ת ך ב י ן צ מ ת י ה ע ץ ש ה ו ל ך ו נ ב נ ה ו ש א ר צ מ ת י ה ג ר ף ג ר ף ל א מ כ ו ו ן ק ש י ר מ מ ו ש ק ל G=(V,E) ה א ל ג ו ר י ת ם ש ל Prim U : = { r} א ת ח ו ל כ ל ה ק ש ת ו ת א י נ ן צ ב ו ע ו ת ; כ ל ע ו ד U V ב צ ע : ה פ ע ל א ת ה כ ל ל ה כ ח ו ל ע ל ח ת ך מ י נ י מ א ל י ת ב ח ת ך ז ה כ ך ש- ( UV, \ U ) ש ה ן e= ( u, ו צ ב ע ב כ ח ו ל ק ש ת (v U: ; ב צ ע v} = U { u Uv, V \ U ב ה כ ר ח ט ע נ ה : ה א ל ג ו ר י ת ם ש ל פ ר י ם מ ס ת י י ם כ א ש ר ה ק ש ת ו ת ה כ ח ו ל ו ת ה ן ע פ " מ ה ו כ ח ה : כ א ש ר ה א ל ג ו ר י ת ם מ ס ת י י ם, ה ק ש ת ו ת ה כ ח ו ל ו ת מ ה ו ו ת ע ץ פ ו ר ש )1-V ק ש ת ו ת ה מ ק ש ר ו ת ב י ן כ ל ה צ מ ת י ם ב ) V ע " ס ל מ ה 3 4 ז ה ו ע ץ ה מ ו כ ל ב ע פ " מ, ו ל כ ן ה ו א ע פ " מ
ס י ב ו כ י ו ת :) 3 2 ה ר צ א ה מ ס ' 5 מ י מ ו ש ה א ל ג ו ר י ת ם ש ל פ ר י ם ז מ ן ה א ת ח ו ל ת ל ו י ב מ י מ ו ש א ח ר י ו י ש ל ב צ ע 1-V א י ט ר צ י ו ת e= ( u, v) ל כ ל צ ו מ ת ל צ ו מ ת ב מ י נ י מ ל י ת ב ח ת ך v V \ U י ו ח ז ק מ פ ת ח ב כ ל א י ט ר צ י ה צ ר י ך ל ב ח ו ר ק ש ת ) U ( UV, \, ל צ ב ו ע א ו ת ה ב כ ח ו ל, ו ל צ ר ף א ת v ל U ל צ ו ר ך ז ה : = ה מ ש ק ל המינימלי של קשת שמחברת א ת v key[ v], U ו א ם א י ן כ ז ו א ז key[ v ] = כ א ש ר key[ v] נ ש מ ו ר ה א ל ג ו ר י ת ם מ ש ת מ ש ב מ ש ת נ ה ק ש ת v מ- ( pv [ ], v) ב- U ל צ ו מ ת ש מ ש ק ל ה key[ v] Q= V \ U [ ], [ ] ל כ ל v V ב צ ע key v = p v = nil [ ] Q : = V, key r : = 0 Q כ ל ע ו ד ה ו צ א מ- Q צ ו מ ת u כ ך ש (u key( מ י נ י מ א ל י ל כ ל ש כ ן v ש ל u ש מ ו פ י ע ב Q: u, w( א ז ) ( ] [ א ם v] v) < key[ ק ש ת ו ת ה ע פ " מ ה ן ה ק ש ת ו ת ל ש מ י ר ת ה צ מ ת י ם ש ע ד י י ן ל ל א צ ו ר פ ו ל ע ץ p[ v]: = u, key v : = w u, v {( pu, u) : u r} ס י ב ו כ י ו ת ה א ל ג ו ר י ת ם ת ל ו י ה ב מ י מ ו ש ש ל א ב מ י מ ו ש Q ב ע ז ר ת מ ע ר ך ש ל צ מ ת י V Q נ ר א ה ש נ י מ י מ ו ש י ם : ש ו מ ר י ם ל כ ל צ ו מ ת v ב מ ע ר ך א ת key(v) ו א ת p[v], ו ב י ט ה מ צ י י ן א ם v ש י י ך ל Q ב כ ל א י ט ר צ י ה : מ ו צ א י ם o v Q ( ס י ב ו כ י ו ת : ע ב ו ר ו key[v] מ י נ י מ א ל י, ו מ ו צ י א י ם א ו ת ו מ Q O( V ) ל א י ט ר צ י ה, 2 O( V ) o ע ב ו ר כ ל ק ש ת כ ך ש (w,) v ס ך ה כ ל ) ]p ו[ w key[w] מ ע ד כ נ י ם א ת ע ר כ י, w Q Odv ( ()) ס י ב ו כ י ו ת כ ו ל ל ת ש ל מ י מ ו ש ב ע ז ר ת מ ע ר ך ל א י ט ר צ י ה, כ ל ו מ ר (E )O ב ס ך ה כ ל ) OV E OV 2 2 ( + ) =
ש ב ו, ה ק ט נ ת) ס י ב ו כ י ו ת :) 4 2 מ י מ ו ש Q ב ע ז ר ת ע ר י מ ה נ ז כ י ר כ י ע ר י מ ה Heap ה י א ע ץ ב י נ א ר י מ א ו ז ן ( ה פ ר ש ב י ן ע ו מ ק ש נ י ע ל י ם 1 ) ה מ פ ת ח מ כ ל ק ט ן ע ץ ת ת כ ל ב ש ו ר ש ה מ פ ת ח ו ת ו ב פ ר ט, ה ע ץ, ב ת ת ה מ פ ת ח א ת ש מ כ י ל ה צ ו מ ת ה מ י נ י מ א ל י י ו פ י ע ב ש ר ש ה פ ע ו ל ו ת ש ה א ל ג ו ר י ת ם נ ד ר ש ל ב צ ע ע ל ע ר י מ ה : ב נ י י ת ה ע ר י מ ה -( V )O צ ע ד י ם O( logv ה ו צ א ת א ב ר ע ם מ פ ת ח מ י נ י מ א ל י - ) צ ע ד י ם ג Decrease Key O( logv ע ר כ ו ש ל מ פ ת ח ש ל א ב ר ב ע ר מ ה ) - ) צ ע ד י ם o ב כ ל א י ט ר צ י ה מ ב ו צ ע ו ת ה פ ע ו ל ו ת ה ב א ו ת : v Q מ צ י א ת ל א י ט ר צ י ה ) ע ב ו ר ו key[v] מ י נ י מ א ל י ו ה ו צ א ת ו מQ ( ס י ב ו כ י ו ת : O(log V ) o ע ד כ ו ן ע ר כ י key[w] ו p[w] ע ב ו ר כ ל ק ש ת w Q כ ך ש (, v w) Odv ( log V) ל א י ט ר צ י ה, כ ל ו מ ר (V OE ( log ב ס ך ה כ ל ) ס י ב ו כ י ו ת כ ו ל ל ת ש ל מ י מ ו ש ב ע ז ר ת ע ר י מ ה : ) log ( log ) + ( log ) = ( + ) ( ה ע ר ה : ה מ י נ י מ ו ם ע ל ה ס י ב ו כ י ו ת א ת ע ו ד ל ש פ ר א פ ש ר OV OV V OE V OE V O ( logv ב- ) ו פ ע ו ל ת צ ע ד י ם ש י מ ו ש י ד י decreasekey ב ע ר י מ ו ת ( + log ) ו ל כ ן ה ס י ב ו כ י ו ת ה י א, ) Amortized Analysis ב-( O(1 O E V V פ ' י ב ו נ א צ ' י צ ע ד י ם פ ע ו ל ת ב מ מ ו צ ע ה ו צ א ת י ד י ( ע ל ה א ל ג ו ר י ת ם ש ל Kruskal מ י י ן א ת ה ק ש ת ו ת ב ס ד ר ל א י ו ר ד ל פ י מ ש ק ל =e ב צ ע : ע ב ו ר ע ל ה ר ש י מ ה ה מ מ ו י נ ת, ו ל כ ל ק ש ת (,) u v o א ם י ש מ ס ל ו ל כ ח ו ל מ u ל, v צ ב ע א ת e ב א ד ו ם, o א ח ר ת צ ב ע א ת e ב כ ח ו ל מ ש פ ט 1 5
5 2 צ ע ד ב כ ל ב א ל ג ו ר י ת ם Kruskal ש ל א ו ה כ ח ו ל ה כ ל ל מ ב ו צ ע ה ג נ ר י, ו ל כ ן ב ס ו ף ה א ל ג ו ר י ת ם ה ק ש ת ו ת ה כ ח ו ל ו ת מ ה ו ו ת ע פ " מ ה ו כ ח ה v ל u מ כ ח ו ל מ ס ל ו ל י ש א ם צ ב ו ע ה ל א ק ש ת ה י א א ז e כ ח ו ל ו ת, ו ל כ ן צ ב י ע ת ה ב א ד ו ם נ ע ש י ת ע ל פ י ה כ ל ל ה א ד ו ם X u א ת נ ג ד י ר כ ז ה, מ ס ל ו ל א י ן א ם כ ק ב ו צ ת ה צ מ ת י ם ה כ ל ל י ח י ד ה ש י ש ה א ד ו ם ב מ ע ג ל א ל י ה ם ש ל ש ש א ר מ ס ל ו ל ה א ל ג ו ר י ת ם ק ש ת ו ת י ו u מ כ ח ו ל ) X ( X, V \ א י נ ו u u ( u X u ) ש ה ח ת ך נ ו ב ע ז ו מ ה ג ד ר ה ק ש ת ו ת מ כ י ל א ת ו מ כ י ל כ ח ו ל ו ת, ה ק ש ת e מאחר שבעת ב י צ ו ע ה צ ע ד e ה י א ו ד א י ק ש ת ק ל ה ב י ו ת ר ש א י נ ה צ ב ו ע ה ב ח ת ך ק ש ת ק ל ה ב י ו ת ר בגרף שאיננה צ ב ו ע ה, ה י א ) X ( X, V \ ל כ ן צ ב י ע ת ה ב כ ח ו ל נ ע ש י ת ע ל u u פ י ה כ ל ל ה כ ח ו ל מ י מ ו ש ה א ל ג ו ר י ת ם ש ל ק ר ו ס ק ל מ י ו ן ה ק ש ת ו ת ב ת ח י ל ת ה א ל ג ו ר י ת ם ד ו ר ש ש ל (V OE ( log ל א ח ר מ כ ן ב כ ל צ ע ד י ש ל ק ב ו ע א ם י ש מ ס ל ו ל כ ח ו ל ב י ן u לv ל צ ו ר ך ב י צ ו ע צ ע ד ז ה נ ח ז י ק ב מ ב נ ה נ ת ו נ י ם א ת ה ק ב ו צ ו ת ה ז ר ו ת צ מ ת י ם ש נ מ צ א ו ת ב ש ל ב כ ח ו ל ע ץ ב א ו ת ו S v ק ב ו צ ה v צ ו מ ת ל כ ל נ י צ ו ר ה א ת ח ו ל ש מ כ י ל ה ר ק א ו ת ו ( י ש V ק ב ו צ ו ת כ א ל ו, O(V) ז מ ן א ת ח ו ל ) ב כ ל א י ט ר צ י ה י ב ו צ ע : S u = S v e= ( u, ב ד י ק ה ע ב ו ר 2 ק צ ו ו ת ה ק ש ת (v א ם S u S v א ם ל א, י צ י ר ת ה ק ב ו צ ה ה מ י י צ ג ת א ת ה ע ץ ש נ ו צ ר ע " י צ ב י ע ת e ב כ ח ו ל פ ע ו ל ו ת א ל ו י ב ו צ ע ו ע ל י ד י מ ב נ ה נ ת ו נ י ם ה ת ו מ ך find_set(v) ב פ ע ו ל ו ת ה ב א ו ת : מ ח ז י ר ה א ת ש ם ה ק ב ו צ ה ( ה י ח י ד ה ) ש מ כ י ל ה א ת v u, v א י ח ו ד ה ק ב ו צ ו ת ש מ כ י ל ו ת א ת Union(u,v) 1 ב ה ת א מ ה ש נ י מ ב נ י נ ת ו נ י ם א פ ש ר י י ם ל מ י מ ו ש י ע י ל ש ל ה פ ע ו ל ו ת ה א ל ו : מ ע ר ך ש ב ו ל י ד כ ל צ ו מ ת ר ש ו ם ש ם ה ק ב ו צ ה ה מ כ י ל ה א ו ת ו, ו ל כ ל ק ב ו צ ה כ ז ו ר ש י מ ה מ ק ו ש ר ת ש ל ה צ מ ת י ם ה נ מ צ א י ם ב ה ב מ י מ ו ש ז ה כ ל פ ע ם ש מ א ח ד י ם 2 ק ב ו צ ו ת, מ צ ר פ י ם א ת ה צ מ ת י ם ב ק ב ו צ ה ה ק ט נ ה י ו ת ר ל ק ב ו צ ה ה ג ד ו ל ה י ו ת ר
ש כ ן ש כ ל) 6 2 מ י מ ו ש ז ה מ ב ט י ח ז מ ן (1)O ל כ ל פ ע ו ל ת find_set(v), ו ז מ ן כ ו ל ל ש ל (V O(Vlog ל ס ה " כ פ ע ו ל ו ת Union(u,v) צ ו מ ת י ע ב ו ר ל כ ל ה י ו ת ר log2 V 2 ש ב כ ל פ ע ו ל ה ג ו ד ל ה ק ב ו צ ה א ל י ה ה ו א ש י י ך ג ד ל ל פ ח ו ת פ י ש נ י י ם ) י י צ ו ג כ ל ק ב ו צ ה ע " י ע ץ מ ו ש ר ש, כ א ש ר ה ש ו ר ש מ כ י ל א ת ש ם ה ק ב ו צ ה פ ע ו ל ו ת א י ח ו ד, מ ש ו ם ב מ י מ ו ש ז ה Union(u,v) נ ע ש ה ע ל י ד י ה ו ס פ ת ה ש ו ר ש ש ל ה ק ב ו צ ה ה ק ט נ ה י ו ת ר כ ב ן ש ל ה ש ו ר ש ש ל ה ק ב ו צ ה ה ג ד ו ל ה י ו ת ר כ ל פ ע ו ל ת א י ח ו ד כ ז ו מ כ פ י ל ה א ת ג ו ד ל ה ע ץ ה ק ט ן מ ב י ן ה ש נ י י ם, ו ל כ ן ע מ ק ו ש ל כ ל ע ץ ה ו א ל ו ג ר י ת מ י ב מ ס פ ר ה צ מ ת י ם ש ה ו א מ כ י ל פ ע ו ל ת find_set(v) נ ע ש י ת ע ל י ד י " ה ל י כ ה " מ ה צ ו מ ת ל ש ו ר ש ה ע ץ מ י מ ו ש ז ה מ ב ט י ח ז מ ן (1)O ל פ ע ו ל ת Union(u,v), ו ז מ ן (V O(log ל פ ע ו ל ת O(log (V מ ש ו ם ש ע מ ק ו ש ל ה ע ץ כ א מ ו ר, find_set(v) ש י מ ו ל ב ש ש נ י ה מ י מ ו ש י ם נ י ת נ י ם ל ב י צ ו ע ב ז מ ן (V O(Elog ש נ ק ב ע, ע ל י ד י ה ז מ ן ה ד ר ו ש ל מ י ו ן ה ק ש ת ו ת מ ן ה ר א ו י ל צ י י ן ש א ת מ ב נ ה ה נ ת ו נ י ם ה מ י י צ ג ק ב ו צ ו ת ע ל י ד י ע צ י ם נ י ת ן ל ש פ ר כ ך ש י ע ב ו ד ב ז מ ן " כ מ ע ט ל י נ א ר י " אלגוריתמים למסלולים קלים בגרפים wuv (, ) ( u, v) G= ( V, י ה י (E ג ר ף פ ש ו ט, מ כ ו ו ן א ו ל א מ כ ו ו ן, ש ב ו ל כ ל ק ש ת מ ש ק ל p= ה מ ש ק ל ש ל מ ס ל ו ל,v0,,v1 vk ה ו א ס כ ו ם ה מ ש ק ל ו ת ש ל ק ש ת ו ת ה מ ס ל ו ל : k (, ) w p = wvi 1 vi i= 1 מ ס ל ו ל ק ל ב י ו ת ר ל- v ה ו א מ ס ל ו ל ל כ ל מ ס ל ו ל v ל- s מ- p* ה מ ק י י ם : ( *) w( p) לv, s מ p w p מ- s ב י ו ת ר : ק ל מ ס ל ו ל ק י י ם ת מ י ד ל א ש ק י י מ י ם א י ן ס ו ף מ ס ל ו ל י ם מ ס ל ו ל מ ס ל ו ל כ ל ל ש א י ן י י ת כ ן מ- s ל- v מ- s ל- v א י ן א ם G= ( V, ב- (E מ ע ג ל י ם ש א ף, ש ל י ל י י ם ( ש ס כ ו ם ל ח י ל ו פ י ן א ח ד מ ה ם א י נ ו ק ל ב י ו ת ר ה כ ל ל ה ו א : מ ש ק ל י ק ש ת ו ת י ה ם ש ל י ל י ) י י ת כ ן ש נ י ת נ י ם ל מ ה? ) ) v ל ה ג ע ה א ז י ל כ ל ש נ י ת ן ל ה ג ע ה מ s ק י י ם מ ס ל ו ל ק ל ב י ו ת ר מ s ל v מ- s
7 2 א ם ק י י ם מ ס ל ו ל ל- v ש מ כ י ל מעגל שלילי, א ז י ל א ק י י ם מ ס ל ו ל ק ל ב י ו ת ר מ- s ל- מ- s dist ( s, v ) = ב מ ק ר ה ז ה כ א מ ו ר v ל כ ן ה ג ד ר ה מ ל א ה ש ל מ ר ח ק מ s ל v ה י א { } min w p p is path from s to v if there is a shortest path from s to v dist ( s, v) = if there is no path from s to v if there is path but no shortest path from s to v :w י ה י E ת ת י מ ס ל ו ל י ם ש ל מ ס ל ו ל י ם ק ל י ם =G ג ר ף מ מ ו ש ק ל ( מ כ ו ו ן א ו ל א ) ע ם פ ו נ ק צ י ת ה מ ש ק ל ( V, י ה י (E p = v, v,, v ij i i+ 1 j, ו י ה י v 1 מ ס ל ו ל ק ל ב י ו ת ר מ- ל- ת ת ה מ ס ל ו ל ב- p v k p= v1, v2,, vk p ij ל- מ- א ז ה ו א מ ס ל ו ל ק ל ב י ו ת ר מ- v j ל- v i v j v i ה ו כ ח ה p נ פ ר ק א ת ל ת ת י מ ס ל ו ל י ם p ij א ז י p p 1i ij p jk v1 vi vj vk = ( 1i ) + ( ij ) + ( jk ) w p w p w p w p נ נ י ח ב ש ל י ל ה כ י ק י י ם מ ס ל ו ל ' - א ז נ י ת ן ל ה ג ד י ר מ ס ל ו ל ' p ( ij ') < w( pij ) w p כ ך כ ך ש p p ' 1i ij p jk v1 vi vj vk, w p ס ת י ר ה ( ') < w( p) מ ס ל ו ל י ם ע ץ ג ר ף ש ל s י ח י ד מ מ ק ו ר ק ל י ם G=(V,E) ) ( ג ר ף ת ת ה ו א G' = V', E ' V ' V ו- E ' E V ' ו מ ת ק י י ם : ה ו א א ו ס ף ה צ מ ת י ם ש נ י ת נ י ם ל ה ג ע ה מ- s G ' ה ו א ע ץ מ ו ש ר ש ש ש ו ר ש ו s ל כ ל ד ו ג מ ה : ק ל י ם ה מ ס ל ו ל ה י ח י ד ב- ' G מ- s ל- v v V ' ה ע ץ מ מ ו ש ק ל, ל א ה ג ר ף כ א ש ר ס ו ג י א ל ג ו ר י ת מ י ם ל ב ע י י ת ה מ ס ל ו ל ה ק ל ה נ ב נ ה ה ו א מ ס ל ו ל ק ל ב י ו ת ר ב- G א ל ג ו ר י ת ם ע " י מ- s כ ך ש ש- כ ך ל- v ע ץ ה ו א BFS ה פ ל ט ה נ ד ר ש מ א ל ג ו ר י ת ם ל מ ס ל ו ל י ם ק ל י ם ה י נ ו ב ד ר ך כ ל ל א ח ד מ ש ל ו ש ת ה ס ו ג י ם ה ב א י ם : מ ס ל ו ל י ם
ב ו ר " " 8 2 s מ ס ל ו ל ק ל ב י ו ת ר ב י ן ז ו ג צ מ ת י ם : ל כ ל " מ ק ו ר " ו- מ ס ל ו ל י ם ק ל י ם מ מ ק ו ר י ח י ד ב ה נ ת ן צ ו מ ת מ ק ו ר s מ צ א א ת ה מ ס ל ו ל י ם ה ק ל י ם ב י ו ת ר מ- ה ג ר ף ג י ר ס ה ה ג ר ף צ מ ת י s מ ה מ ר ח ק י ם א ת מ צ א ה ב ע י ה : ש ל מ צ ו מ צ מ ת מ ס ל ו ל י ם ק ל י ם ב י ו ת ר ב י ן כ ל ז ו ג ו ת ה צ מ ת י ם צ מ ת י ל כ ל ב כ ל א ח ת מ ה ש א ל ו ת ה נ " ל מ ב ד י ל י ם ב י ן ש נ י מ ק ר י ם : ( א ) כ ל ה מ ש ק ל י ם א י ש ל י ל י י ם, ( ב ) י י ת כ נ ו ג ם מ ש ק ל י ם ש ל י ל י י ם ב ה מ ש ך נ נ י ח ש ג ר ף ה ק ל ט ה ו א ג ר ף מ כ ו ו ן ג ר ף ל א מ כ ו ו ן נ י ת ן ל י י צ ו ג ע ל י ד י ג ר ף מ כ ו ו ן ב ו ל כ ל ק ש ת ק י י מ ת ק ש ת א נ ט י- מ ק ב י ל ה ב ע ל ת א ו ת ו מ ש ק ל
מ כ א ן) 9 2 ה ר צ א ה מ ס ' 6 א ל ג ו ר י ת מ י ם ל מ צ י א ת מ ס ל ו ל ק ל ב י ו ת ר מ מ ק ו ר י ח י ד s s ו צ ו מ ת, :w E פ ו נ ' מ ש ק ל, =G ( V, ק ל ט : ג ר ף מ מ ו ש ק ל (E פ ל ט : ל כ ל v V ה מ ר ח ק ( מ ש ק ל ה מ ס ל ו ל ה ק ל ביותר) מ s ל v ש י ס ו מ ן,,s dist ( ל ע ת י ם v) נ ר צ ה ש ה א ל ג ו ר י ת ם י ח ז י ר ג ם ע ץ מ ס ל ו ל י ם ק ל י ם ב י ו ת ר ה א ל ג ו ר י ת ם ש נ ל מ ד מ נ י ח י ם ש א י ן ב ג ר ף ה ק ל ט מ ע ג ל י ם ש ל י ל י י ם נ ג י ש י ם מ s, ו מ כ א ן ש ל כ ל צ ו מ ת, v א ו ש ק י י ם מ ס ל ו ל ק ל ב י ו ת ר מ s ל, v א ו ש dist(s,v) מ ו ג ד ר כ " א י ן ס ו ף " א ל ג ו ר י ת ם גנרי למסלולים קלים ביותר ה א ל ג ו ר י ת ם ה ג נ ר י מ ת ח י ל ב ה ע ר כ ה ה ת ח ל ת י ת ש ל ח ס מ י ם ע ל י ו נ י ם ע ל א ר כ י ה מ ס ל ו ל י ם, ו ל א ח ר מ כ ן מ ש פ ר ח ס מ י ם א ל ו ע ד ש ל א נ י ת ן ל ש פ ר ם ע ו ד נ ש ת מ ש ב ה ג ד ר ו ת ה ב א ו ת, ה מ ת י י ח ס ו ת ל ג ר ף ק ל ט פ ו נ ק צ י י ת ח ס ם ע ל ע ל י ו ן מ ר ח ק י ם ה מ ק י י מ ת ש נ י ת נ א י ם : dist ( s, ל כ ל צ ו מ ת v V מ ת ק י י ם (v G= ( V, E) ( ב ק י צ ו ר ו צ ו מ ת מ ק ו ר : s פ ח " ע ) : d v (u,v) : d : V d ( s) 0 ה י א " ק ש ת מ ק צ ר ת " ( ב י ח ס ל א ם( d ז ו ה י ה ש ם ח ס ם ע ל י ו ן ) > + (, ) d v du wuv פ ו נ ק צ י ה, d : relaxation (u,v) ש י פ ו ר ק ש ת ע ל מ ק ו מ י פ " ח ע ב ה י נ ת ן ע ל מ ק ו מ י ש י פ ו ר ק ש ת (u,v), ב ק י צ ו ר ש י פ ו ר (u,v), ה ו א ה כ ל ל ה ב א : + (, ) א ם (u,v) ק ש ת מ ק צ ר ת d v du wuv ב צ ע כ ד י ל ב נ ו ת ע ץ מ ס ל ו ל י ם ק ל י ם ב י ו ת ר, כ א ש ר (u,v) ה י א ק ש ת מ ק צ ר ת נ ב צ ע ב ש י פ ו ר (u,v) ג ם parent ( v) א ת ה פ ק ו ד ה u ט ע נ ה : 6 6 א ם ל א ק י י מ ת ק ש ת מ ק צ ר ת ב י ח ס ל פ ח " ע, d א ז א י ן ב G מ ע ג ל י ש ל י ל י ה ו כ ח ה : י ה י ) u =C ( u,, u, u = מ ע ג ל ב G מ א ח ר ו ל כ ל i מ ת ק י י ם 0 k 1 k 0 ) ( du, wu (, u) du מ ת ק י י ם : i 1 i i i 1
מ ש ו ם ש) מ כ ך) 0 3 k k i 1 i i i 1 i= 1 i= 1 [ ] wu (, u) du ( du = 0 d : V { } ל מ ה 1: 6 ת ה י d א נ ש א ר ת פ ח " ע ג ם א ח ר י ב י צ ו ע ש י פ ו ר פ ח " ע ע ב ו ר G ו s א ז 2 ה ט ע נ ו ת ה ב א ו ת נ כ ו נ ו ת : ( u, v) = dist ( s, ב א ם א י ן ק ש ת מ ק צ ר ת ב י ח ס ל, d א ז ל כ ל צ ו מ ת v מ ת ק י י ם (v ה ו כ ח ה א א י נ נ י ח ש ב ו צ ע ש י פ ו ר d v : ( u, v) מ ה נ ח ת ה א י נ ד ו ק צ י ה, x ל כ ל מ ת ק י י ם v dist ( s, x) d x d( x) ל א ה ש ת נ ה ), ו כ נ " ל ג ם ל ג ב י d(v) א ם (u,v) א י נ נ ה ק ש ת מ ק צ ר ת d(v) ש ו נ ה ע " י ה ע ד כ ו ן ), ( + ) ( ) ( ה ש ו ו י ו ן ה ש מ א ל י א ח ר ת, d v du wuv ו ה ט ע נ ה נ ו ב ע ת מ א י ה ש ו ו י ו נ ו ת ה ב א י ם : = + (, ) (, ) + (, ) (, ) d v d u w u v dist s u w u v dist s v נ ו ב ע כ מ ו כ ן ב ר ו ר ש ל א ח ר ה ש י פ ו ר צ ו מ ת ש ל כ ל צ " ל ב ש מ ה ה נ ח ה, d() u dist(, s u), d() s 0 v ו ה י מ נ י מ ש ו ם ש d י כ ו ל ה ר ק ל ק ט ו ן,s dist ( י ד ו ע ש- מ ת ק י י ם (v (v = d ( מ ה כ ת ו ב נ ו ב ע dist ( s, v) d v ב מ ס ג ר ת d ש ל כ ן פ ח " ע ), ז ה ו א ו ר ך,s d ( (v dist ( נ נ י ח ב ש ל י ל ה ש ק י י ם צ ו מ ת מ ס פ י ק ל ה ו כ י ח ש (v,s, d ( (v > dist ( כ ל ו מ ר ק י י ם v), su P= ( u0 = י ה י 1,, uk ב- v) = v מ- s ל- v (v d ( מ ק ט ן ש א ו ר כ ו מ ס ל ו ל dist (, ) p s u p ה מ ס ל ו ל ע ל ה מ ר ח ק נ ס מ ן מ- s כ ך מ ס ל ו ל ל צ ו מ ת ש ז ה u dist s, s = d s = 0 p p (, ) < dist s v d v ב מ ס ל ו ל מ ה נ ח ת ה ש ל י ל ה ), ( > ) ( d v dist s v כ ע ת p מ ס ל ו ל מ s ל v כ י מ ט ע נ ה 0 6 נ ו ב ע ש א י ן מ ע ג ל ש ל י ל י ה מ כ י ל א ת s (, ) (, ) < dist s u d u p i i dist s u d u p i+ 1 i+ 1 מ כ א ן ש ק י י ם i כ ך ש > (, ) = (, ) + (, ) + (, ) d u dist s u dist s u w u u d u w u u i+ 1 p i+ 1 p i i i+ 1 i i i+ 1 ו ל כ ן
3 3 (, ) ui u i + 1 ו ה ק ש ת ה י א ק ש ת מ ק צ ר ת, ב נ י ג ו ד ל ה נ ח ה ה ע ר ה : ה ו כ ח ת ל מ ה 1 6 ת ק פ ה ג ם א ם ב ג ר ף G י ש מ ע ג ל י ם ש ל י ל י י ם א ל ג ו ר י ת ם ג נ ר י ל מ ס ל ו ל י ם ק ל י ם ב י ו ת ר מ מ ק ו ר י ח י ד ק ב ע פ ח " ע א ( u, v) ( u, v) ב כ ל ז מ ן ש ק י י מ ת ק ש ת מ ק צ ר ת ב צ ע ש י פ ו ר מימושים שונים של ה א ל ג ו ר י ת ם ה ג נ ר י נ ב ד ל י ם ב ס ד ר הביצוע של שיפורים מ ק ו מ י י ם ה ר א ש ו ן ש נ ל מ ד מ ר ש ה ק ש ת ו ת ב ע ל ו ת מ ש ק ל ש ל י ל י : אלגוריתם בלמן- פורד =G מ מ ו ש ק ל, ל ל א מ ע ג ל י ם ש ל י ל י י ם, ו צ ו מ ת ( V, ק ל ט : ג ר ף מ כ ו ו ן (E dist ( s, v) = d ( v) פ ל ט : ל כ ל צ ו מ ת - v ה א ל ג ו ר י ת ם: parent( v) nil, d ( v) א ת ח ו ל : ל כ ל {s v V }\ א ת ח ל ה מ י מ ו ש s V ; d ( s) 0 ע ד ע ב ו ר 1= i ל כ ל ק ש ת ב צ ע ) ( ב צ ע ש י פ ו ר ( u, v) V 1 u, v OV + OVE = OVE זמן ריצה ה ו כ ח ת נ כ ו נ ו ת נ ס ת מ ך ע ל ש ת י ה ל מ ו ת ה ב א ו ת : k מ- s ל- v, v ל מ ה : 2 6 ב י ו ת ר ק ל מ ס ל ו ל ק י י ם א ם צ ו מ ת ל כ ל ה מ כ י ל ל א ח ר א ז ק ש ת ו ת = dist ( s, v) d v א י ט ר צ י ו ת k ה ו כ ח ה ב א י נ ' ע ל k ע ב ו ר k ר ק = 0 s = 0 = dist ( s, s) ה א ת ח ו ל ) מ ת ק י י מ ת ה ט ע נ ה - מ ק י י ם א ת ה נ ח ת ה א י נ ד ו ק צ י ה ו א כ ן ל א ח ר 0 א י ט ר צ י ו ת ( ב ז כ ו ת d s v י ה י k +1 k ע ב ו ר ו נ ו כ י ח ע ב ו ר נ כ ו נ ו ת נ נ י ח צ ע ד : צ ו מ ת המקיים שיש מ ס ל ו ל ק ל מ- ב י ו ת ר ה מ כ י ל 1+ k ק ש ת ו ת v ל- s
כ י) כ ז כ ו ר) 2 3 k מ- s ל- v k +1 ( u, ת ה י (v ה ק ש ת ה א ח ר ו נ ה, ה כ ל ו מ ר ב י ו ת ר ה ק ל ב מ ס ל ו ל כ ע ת ה ק ש ת ו ת ה ק ו ד מ ו ת ק ל מ ס ל ו ל ( u, ל- (v ב י ו ת ר ), ה ן מ ס ל ו ל ק ל ב י ו ת ר מ ה נ ח ת ו ל כ ן מ- s ל- u ה א י נ ד ו ק צ י ה ב ז מ ן ה א י ט ר צ י ה ה- 1 + k ביצענו שיפור ל א ח ר ת ת מ ס ל ו ל ש ל מ ס ל ו ל ק ל ב י ו ת ר ה ו א מ ת ק י י ם k א י ט ר צ י ה = dist ( s, u) d u ( u, v) ביצענו שיפור כ ז ה ע ל כ ל ה ק ש ת ו ת ) ל א ח ר + (, ) = (, ) + (, ) = (, ) d v d u w u v dist s u w u v dist s v ב י צ ו ע ז ה מ ת ק ב ל הנחת האינדוקציה dist(, s u) כ י (u,v) הקשת האחרונה במסלול ה ק ל ב י ו ת ר מ s ל v כי בוצע ש י פ ו ר (v (,u א ם : 3 6 ל מ ה מ ס ל ו ל ק ל ב י ו ת ר ה ו כ ח ה מ ע ג ל י ם א י ן א ם מ ע ג ל י ם א י ן ב- G ש ל י ל י י ם, s ק י י ם מ ה נ ג י ש v צ ו מ ת ל כ ל א ז מ- s נ ג י ש י ם מ- s ל- v ש ל י ל י י ם מ ע ג ל י ם מ כ י ל ל כ ל ה י ו ת ר ה מ כ י ל ל כ ל ה י ו ת ר ק ל מ ס ל ו ל ק י י ם א ז V 1 ב י ו ת ר ק ש ת ו ת מ ע ג ל י ם ל ל א ( ה ו כ י ח ו ), V 1 ו מ ס ל ו ל ק ש ת ו ת ( כ י כ ל צ ו מ ת מ ו פ י ע ב ו ל כ ל ה י ו ת ר פ ע ם א ח ת ) ל ל א מנכונות שתי ה ל מ ו ת ה נ " ל נ ו ב ע ת נ כ ו נ ו ת האלגוריתם של ב ל מ ן פ ו ר ד : מ ל מ ה 3 6 נ ו ב ע כ י ה נ ג י ש צ ו מ ת ל כ ל 2 6 מ ס פ י ק ו ת s מ ב י ו ת ר ק ל מ ס ל ו ל ק י י ם מ- s ה י ו ת ר ל כ ל ה מ כ י ל V 1 V 1 א י ט ר צ י ו ת ב כ ד י ל מ צ ו א כ ל מ ס ל ו ל כ ז ה ק ש ת ו ת, ו מ ל מ ה אלגוריתם דיקסטרה (Dijkstra) דרישה חזקה יותר משל ב ל מ ן- פ ו ר ד, ולכן אלג ' מהיר י ו ת ר ק ל ט : ג ר ף מ מ ו ש ק ל מ כ ו ו ן ל א מ ש ק ל י ם ש ל י ל י י ם, ו צ ו מ ת s d ( v) = dist ( s, v) פ ל ט : ל כ ל צ ו מ ת - v ה א ל ג ו ר י ת ם: d ( s) ו א ת ח ל 0, parent() v nill, d ( v) ל כ ל v V א ת ח ל ) d ( v) dist ( s, ב נ ו ס ף א ת ח ל {s Q ( Q V }\ מ כ י ל א ת כ ל ה צ מ ת י ם ע ב ו ר ם (v כ ל ז מ ן ש Q ב צ ע מ צ א ב- Q צ ו מ ת u כ ך ש (u d ( מ י נ מ י א ל י ( u, (v ב צ ע ש י פ ו ר (,u ה ו צ א א ת u מ- Q ו ל כ ל ק ש ת (v