Click here to load reader

فصل چهارم (ادامه)

  • Upload
    laban

  • View
    98

  • Download
    6

Embed Size (px)

DESCRIPTION

درس طراحی الگوریتم ها. فصل چهارم (ادامه). روش حریصانه Greedy approach. مدرس: سید محمد بیدکی. بهار 1392. مقدمه. - PowerPoint PPT Presentation

Citation preview

Greedy approach (): 1392

2 : V G . E () V . : . (v, u) (u ,v) .(Path): (v1 , v2 ,, vk) (vi-1, vi) E . (cycle): (): . : () .

- : () - /4223(Tree) : .

w u w u . : . : .

- : () - /42 4G = (V, E) n e . : n*n 1 0 . . : n . - : () - /42512345101001210111301010401101511010152431234521224554513432 - : () - /42 (minimum spanning tree)6: () .

: ( ) . . . n n-1 ( ) . - : () - /427 v1v3v2v4v51463523v1v3v2v4v51432v1v3v2v4v51653 15 10 Cayley: n nn-2 .

brute-force . - : () - /42 8 . F E T=(V, F) G=(V,E) . MST : Prim Kruskal reverse-delete - : () - /42 (Prim)9 . : Y :F Y V-Y Y Y F Y .

- : () - 10

Y vi = nearest[i]

vi nearest[i] = distance[i] /4211 :

v1v3v2v4v51463523 - : () - /42122345nearest1111F = v1

v2v3v4v5132345distance13YV-Yv1v3v2v4v51463523 - : () - /42132345nearest1121F = {{v1 , v2}}v3v4v5332345distance-136YV-Yv1v3v2v4v514635236v1v2 - : () - /42142345nearest1133F = {{v1 , v2},{v1 , v3}}v4642345distance-1-142YV-Yv1v3v2v4v514635232v1v3v2v5 - : () - /42152345nearest1133F = {{v1 , v2},{v1 , v3},{v3 , v5}}v4v542345distance-1-14-1YV-Yv1v3v2v4v514635235v1v3v26 - : () - /42162345nearest1133F = {{v1 , v2},{v1 , v3},{v3 , v5},{v3 , v4}}v4v52345distance-1-1-1-1YV-Yv1v3v2v4v51432v1v3v2 - : () - /42 17 repeat n-1 . repeat n-1 . : n

T(n) = 2 (n-1) (n-1) = (n2) - : () - /42 (Kruskal) 18 . F = ( ) : (F) . . - : () - /4219F = v1v3v2v4v514635231. Vv1v3v2v4v52. (v1 , v2)(v3 , v5)(v2 , v3)(v1 , v3)(v3 , v4)(v4 , v5)(v4 , v2)1233456F = {{v1 , v2}}F = {{v1 , v2},{v3, v5}}F = {{v1 , v2},{v3 ,v5},{v2 ,v3}}F = {{v1 , v2},{v3 ,v5},{v2 ,v3},{v3 ,v4}} - : () - /4220

- : () - /42 21 : n m n while :m = n (n-1) / 2 (n2)

W(m, n) (m lgm) = (n2 lgn2) = (n2 2 lgn) = (n2 lgn) - : () -

/42 Prim & Kruskal22 (n2) (m lgm) = (n2 lgn)

:

(n lgn) . (n2 lgn) .n-1 m n(n-1)/2 - : () - /42 (shortest path)23 .: . : (Floyd) . .( ) Dijkstra)) . . - : () - /42 Brute-force24 : . . n-2 n-3 ... . :(n-2) (n-3) . . . 1 = (n-2) ! - : () - /42 (Dijkstra)25 . . .Y ={v1} . v1 Y . Y Y . - : () - /42 - : () - 26Y = {v1}F = While (the instance is not solved) {select a vertex v from V-Y, that has a shortest path from v1, using only vertices in Y as intermediates;add the new vertex v to Y;add the edge (on the shortest path) that touches v to F;if (Y == V)the instance is solved;}/42 27touch[i] v Y v1 vi Y . ( vi )

length[i] v1 vi Y - : () - /42 ...28 - : () -

/4229Y = {v1}v1v5v2v3v4161743522345touch11112345length7461 - : () - F= {}/4230Y = {v1 , v5}v1v5v2v3v4161743522345touch11512345length742-1 - : () - F= {}/4231Y = {v1 , v5 , v4 }v1v5v2v3v4161743522345touch41512345length54-1-1 - : () - F= {, }/4232Y = {v1 , v5 , v4 , v3}v1v5v2v3v4161743522345touch41512345length5-1-1-1 - : () - F= {, , }/4233Y = {v1 , v5 , v4 , v3 , v2}v1v5v2v3v4161743522345touch41512345length-1-1-1-1 - : () - F= {, , , }/42

2 : A 34 - : () - /4234