310 likes | 462 Views
Hálótervezés. Készítette: Kosztyán Zsolt Tibor kzst@almos.vein.hu kzst@vision.vein.hu http ://vision.vein.hu/~kzst/oktatas/halo/index.htm. 2. Módszerek lefutási ideje. P osztályúak NP osztályúak NP teljesek Lefutási idő: O (f(n))=g(n) n 1 >n, c>0 cf(n)>=g(n) n 1 <n.
E N D
Hálótervezés Készítette: Kosztyán Zsolt Tibor kzst@almos.vein.hu kzst@vision.vein.hu http://vision.vein.hu/~kzst/oktatas/halo/index.htm 2.
Módszerek lefutási ideje • P osztályúak • NP osztályúak • NP teljesek Lefutási idő: O(f(n))=g(n) n1>n, c>0 cf(n)>=g(n) n1<n
Alapvető gráfelméleti algoritmusok • BFS (Breath First Search) O(n2)
Alapvető gráfelméleti algoritmusok • DFS (Depth First Search) O(n2)
Minimális költségű feszítőfa keresése • Minimális költségű feszítőfa: Egy súlyozott gráf részgráfja minimális költségű feszítőfa (minimal spanning tree) ha: • Feszítőfa (a gráf valamennyi csúcsát tartalmazza összefüggő körmentes) és • a lehetséges feszítőfák közül minimális költségű.
Negatív összegű körök ERROR
Izomorfia, automorfizmus • Egy G1=(N1,A1) gráf izomorf egy G2=(N2,A2) gráffal, ha létezik j:N1N2 , ésf:A1A2 kölcsönösen egyértelmű függvény. • Egy gráf önmagával vett izomorf leképzését automorfizmusnak nevezzük.
Topológikus rendezés • Egy G=(N,A) irányított körmentes gráf topologikus rendezésén a csúcsainak egy olyan sorba rendezését értjük, melyre teljesül, hogy ha N1,N2N és (N1,N2)A akkor N1,N2 –t előzze meg a listában.
Topológikus rendezés – szintekre bontás • Első szintbe rendezzük azokat a csúcsokat, amelyeknek csak kimenő élük van. (források) • Ezekből a csúcsokból kimenő éleket töröljük. Majd a következő szintbe rendezzük azokat a csúcsokat, amelyek a módosított gráfban források. • 2. addig ismételjük, ameddig az összes csúcsot szintekbe nem soroltuk. • Összekötjük a csúcsokat az eredeti gráfnak megfelelően.
Legrövidebb út számítása minden csúcspontból • Legrövidebb utat számoló algoritmusok alkalmazása minden pontra • Legrövidebb utak számítása mátrixokkal • Egyéb módszerek
Mátrixok használata legrövidebb utak számítására - fogalmak • Szomszédsági mátrix • Legyen G egy irányított gráf, melynek n csúcsa van, akkor a Gszomszédsági mátrixa, A , n x n -es mátrix a következő módon definiálható : Ai,j=1, ha i csúcsból él vezet j-be, különben Ai,j=0. Ha G irányítatlan gráf, akkor a szomszédsági mátrixa szimmetrikus! A=
Mátrixok használata legrövidebb utak számítására - fogalmak • Elérhetőségi mátrix • Legyen A a G gráf szomszédsági mátrixa, akkor K= Ak, azaz A k-adik hatványaként kapott mátrix. Ki,j eleme, az i csúcsból a j csúcsba vezető k hosszúságú utak számát adja. Pl. k=2, k=3, k=4 hosszúságú utak: A2= A3= A4=
Mátrixok használata legrövidebb utak számítására - fogalmak • Elérhetőségi mátrix • Definiáljunk egy Brmátrixot akkor ennek a mátrixnak az i,j eleme az i-ből j-be vezető r vagy ennél rövidebb utak számát adja. • Ha i-ből létezik út j-be akkor ez maximum nhosszú vagy rövidebb út. Ebből következik, hogyha az útmátrixok valamelyikének 1<=k<=n esetén i,j -edik eleme nem zérus, azaz a mátrix i,j eleme nem zérus, akkor j elérhető i-ből. Ennek megfelelően definiálhatunk egy ún. elérhetőségi mátrixot: A G gráf útmátrixelérhetőségi mátrixa legyen egy P mátrix. Pi,j=1, ha i-ből létezik valamilyen út j-be, különben Pi,j=0
Mátrixok használata legrövidebb utak számítására - fogalmak • Elérhetőségi, szomszédsági mátrixok - példa
Floyd-Warshall algoritmus O(n3) • Legyen adva a következő gráf: Legyen 1~R, 2~S, 3~T és 4~U. Legyen W a gráf súlymátrixa. Írjunk a 0-ák helyébe -t és nevezzük ezt a mátrixot A-nak
Floyd-Warshall algoritmus O(n3) Ennek megfelelő útmátrix: Vezessük be a következő mátrix műveletet: ahol a Ak k=1..n -ig számítandó, n a Amérete (n*n) , ésA0=A. A kapott eredmény mátrix Ana legrövidebb utakat adja!
Floyd-Warshall algoritmus O(n3) • Esetünkben n=4. Az első menetben k=1-re a kapott mátrix: A megfelelő útmátrix: ahol pl. URS = UR+RS ami megfelel a (4,1)+(1,2) útnak.
Floyd-Warshall algoritmus O(n3) • A k = 4 -re a végeredmény, a legrövidebb utak hossza és a megfelelő útmátrix a legrövidebb utakkal:
Szorgalmi feladatok • Pásztor, a farkas, a kecske és a káposzta • A pásztor, a farkas, a kecske, és a káposzta a folyó egyik oldalán vannak. A pásztor feladata, hogy átvigye a társaságot a túlsó partra. Ehhez egy kétszemélyes csónak áll rendelkezésre, amelyben a pásztoron kívül még egy utas elfér, a kecske vagy a farkas, vagy a káposzta. (10p) • Minimális költségű legrövidebb út keresése(5-15p + 5-15p)
Szorgalmi feladatok • Arbitrázs • Az arbitrázs a valuta árfolyamokban rejlő egyenetlenségnek olyan hasznosítását jelenti, amikor egy valuta egy egységét ugyanazon valuta egy egységnél nagyobb értékére váltjuk át. Pl. tfh. 1USD=0,7GDP, 1GDP=9,5DKK és 1DKK=0,16USD. Ekkor az a pénzváltó aki 1USD-t fektet be a valuta konverzió során 0,7x9,5x0,16 USD-t vásárol, ezzel 6,4% haszonra tesz szert.
Szorgalmi feladatok • Arbitrázs • Tfh. Adott n különböző (c1,c2,..,cn) valutanem és a valutaárfolyamok egy n x n-es R táblázata, amely azt mutatja, hogy a ci valuta egy egységéért Ri,j egységnyi cj valuta vásárolható. • Adjunk hatékony algoritmust, amely meghatározza, hogy létezik-e a valutanemeknek olyan (ci1,ci2,..,cik) sorozata, amelyre Ri1,i2xRi2,i3x..xRik-1,ikxRik,1>1. Elemezzük az algoritmus futási idejét. (30p)