1 / 12

Körmentes irányított gráfban legrövidebb utak

Körmentes irányított gráfban legrövidebb utak. Legrövidebb utak minden csúcspárra. Szomszédsági w mátrixot alkalmazunk a gráf (hálózat) megadására w ij = 0, ha i=j, w ij =az irányított (i,j) él hossza, ha i j és (i,j) E w ij = , ha i j és (i,j)  E

Download Presentation

Körmentes irányított gráfban legrövidebb utak

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Körmentes irányított gráfban legrövidebb utak ADAT-11

  2. Legrövidebb utak minden csúcspárra Szomszédsági w mátrixot alkalmazunk a gráf (hálózat) megadására wij = 0, ha i=j, wij =az irányított (i,j) él hossza, ha i j és (i,j) E wij = , ha i j és (i,j)  E Kimenet egy D=(dij) mátrix, amelyben a legrövidebb utak hossza szerepel Megelőzési mátrix =(ij), amelyben az (i,j) elem NIL, ha i=j, vagy nem vezet út i és j között, egyébként pedig a j-t megelőző csúcs valamely az i-ből j-be vezető legrövidebb úton. Megelőzési részgráf Legrövidebb utak fája ADAT-11

  3. Floyd-Warshall algoritmus (0)ij=NIL, ha i=j vagy wij=  (0)ij=i, ha i  j és wij< (k)ij= (k-1)ij, ha d(k-1)ij d(k-1)ik+d(k-1)kj (k)ij= (k-1)kj, ha d(k-1)ij >d(k-1)ik+d(k-1)kj ADAT-11

  4. Gráfok tranzitív lezártja Definíció: A G gráf tranzitív lezártja az a G*=(V,E*) gráf, melyre E* ={(i,j): létezik G-ben i-ből j-be út} ADAT-11

  5. Dinamikus programozás • A dinamikus programozás lépései • Jellemezzük az optimális megoldás szerkezetét • Rekurzív módon definiáljuk az optimális megoldás értékét • Kiszámítjuk az optimális megoldás értékét alulról felfelé módon • A kiszámított információk alapján megszerkesztjük az optimális megoldást ADAT-11

  6. Példa: Mátrixok véges sorozatainak szorzása Definíció: Mátrixok szorzatát teljesen zárójelezettnek nevezzük, ha a szorzat vagy egyetlen mátrixból áll, vagy pedig két, zárójelbe tett teljesen zárójelezett mátrix szorzata Legyenek az A,B, C mátrixok méretei 2x3, 3x4, és 4x5 Számítsuk ki a D=ABC mátrixot. D mérete 2x5 Műveletszám (szorzások száma) két mátrix összeszorzásakor: pqr, ha a méretek pxq és qxr Első módszer: ((AB)C), műveletszám 2x3x4+2x4x5=24+40=64 Második módszer: (A(BC)), műveletszám 3x4x5+2x3x5=60+30=90 ADAT-11

  7. Mátrixok véges sorozatainak szorzása (2) Legyenek az összeszorzandó mátrixok: A1,A2,  ,An Legyen az Ai mátrix mérete pi-1xpi i=1,  ,n Legyen P(n) az n mátrix zárójelezéseinek a száma. P(1)=1 P(2)=P(1)*P(1)=1 P(3)=P(1)*P(2)+P(2)*P(1)=1*1+1*1=2 P(4)=P(1)*P(3)+P(2)*P(2)+P(3)*P(1)=1*2+1*1+2*1=5  P(n)=Cn-1, ahol Cn=(2n alatt n)/(n+1) (Catalan számok, exponenciális a növekedésük) ADAT-11

  8. Mátrixok véges sorozatainak szorzása (3) Az optimális zárójelezés szerkezete Legyen Ai…j=AiAi+1…Aj Az optimális eset az A1,A2,  ,An szorzatot k-nál vágja szét A1…n=A1…k*Ak+1…n Költség= A1..k költsége + Ak+1…n költsége + az összeszorzás költsége A1..k és Ak+1…n zárójelezése is optimális kell legyen. ADAT-11

  9. Mátrixok véges sorozatainak szorzása (4) Legyen mij az Ai..j kiszámításának minimális költsége Legyen sij az a k index, ahol az Ai..jszorzat ketté van vágva ADAT-11

  10. Mátrixok véges sorozatainak szorzása (5) p=(p0,p1,…,pn) O(n3) MÁTRIX_SZORZÁS_SORREND(p) n  hossz[p]-1 FOR i 1 TO n DO mii0 FOR l 2 TO n DO FOR i 1 TO n-l+1 DO j i+l-1 mij  FOR k  i TO j-1 DO q mik+mk+1,j+pi-1pkpj IF q <mij THEN mijq sijk RETURN (m,s) ADAT-11

  11. Mátrixok véges sorozatainak szorzása (6) A1 * A2 * A3 * A4 (2x3) (3x4) (4x5) (5x6) ((A1 * A2) * A3) * A4 ADAT-11

  12. Mátrixok véges sorozatainak szorzása (7) MÁTRIX_LÁNC_SZORZÁS(A,s,i,j) IF j>i THEN X MÁTRIX_LÁNC_SZORZÁS(A,s,i,sij) Y MÁTRIX_LÁNC_SZORZÁS(A,s,sij+1,j) RETURN ( MÁTRIXSZORZÁS(X,Y) ) ELSE RETURN(Ai) ADAT-11

More Related