Budapest Műszak Egyetem Vllamosmérnök kar Műszak nformatka szak Kommunkácós hálózatok szakrány V. évf., 9. félév Izsó Tamás Híradástechnka tanszék 2003
n. sznt Rendszer Szakaszolás Csoportosítás n+1. sznt Rendszer Szakaszolás Csoportosítás n+2. sznt Rendszer
topológa tervezés elvezetéstervezés nyalábolás elhelyezés szakaszolás hozzárendelés berendezéstervezés
Topológa tervezés: a fzka réteg gráfjának megtervezése a klens gényréteg smeretében. Elvezetés tervezés: klens gény elvezetés nyomvonalának meghatározása több réteggel lentebb (gyakran a legalsó fzka) réteg gráfján. Nyalábolás: k szntű azonos nyomvonal szakaszokon haladó gények koncentrálása a nagyobb sávszélességű k+1-edk szntű összeköttetésekbe.
Elhelyezés: a k. rétegbel klens gények számára a k+1. rétegbel szakaszpontok lehetséges helyének meghatározása. Szakaszolás: egy adott k. rétegben értelmezett klens gény elvezetés nyomvonalának meghatározása a k+1. rétegbel szerver réteg gráfján, az adott rétegre vonatkozó útvonalképzés vagy -választás szabályok fgyelembevételével.
Hozzárendelés egy adott k. rétegben értelmezett klens gény hozzárendelése a jellegzetesen k+1. szerver réteg kapcsolatának meghatározott pozícójához. Berendezéstervezés: k. rétegbel kapcsolat hozzárendelése egy csomópont berendezés létező vagy új portjához, ha szükséges akkor egy új berendezés létrehozása.
Forrás: Üzemeltető adatbázs (nyílvántartó rendszer) (rendszerek, kábelek, szálak, alépítmények ) Network management nformácók Formátum: SQL adatbázs táblák, ASCII fájl, Excel formátum, XML Szabvány: ITU M1400
Hálózat leírás Gráfok Transzformált gráf Algortmus belső adatszerkezete (adatbázs relácók) (matematka gráf, él és csomópont attrbutumokkal) (tszta gráf élek, csomópontok hozzáadásával, törlésével) (LP megoldás számára egyenletek, mátrxok)
elvezetéstervezés nyalábolás és hozzárendelés rétegrőlrétegre berendezéstervezés
lehetséges szakaszpontok elhelyezése rétegenként, szakaszolás és hozzárendelés rétegrőlrétegre, berendezéstervezés
Műszak alapprobléma kérdése: mlyen hálózat nfrastruktúrán mlyen elvezetés nyomvonalakat Probléma jellege: távlat tervezés (meglévő hálózat fgyelembevételével) nem részletes modellezés közelítő módszerek (hálózat bővíthetőség)
Egyszerűsítő feltételek: egyutas elvezetés (mmmál) lneárs költségfüggvény Knduló adatok: gények megengedett legbővebb gráf költségjellemzők
Adott a legbővebb gráf G ( V, A) x c l V { 1, m} csomópontok A { 1, n}élek edk élen átfolyó folyam költségfüggvény - edk él hossza Elvezetés mnmáls költségű úton Feladat: mn cx c x
Költségmodell 1 c 2 c 3 c 4 c x l c x c l c c x c 4 3 2 1 l c c f 2 1 l c c m 4 3 x l c c l c c 4 3 2 1
kmerítő kereséssel branch & bound technkával szmulált lehűtéssel lneárs programozással
Kndulás a teljes gráfból. Az élek elhagyásával kapjuk az alproblémákat. Alsó becslés Fx költségre : mnmáls kfeszítőfa Margnáls költségre: mnmálutas elvezetés Ígéretesség F I F M
mnmálút éleből hagyunk el egyet, nő az M mnmáls kfeszítőfából hagyunk el egy élt, nő az F
(30/3) (30/3) (20/2) (20/2) (20/2) (30/3) (30/3) (20/2) (20/2) (30/3) költségek gények M F 0 0 5 2 2 35 5 20 100 35
Alproblémák generálása egy él elhagyásával (branch). Költség és ígéretesség (becslés) kszámítása. Legjobb költségnél rosszabb ígéretességű alproblémák elhagyása. Leállás, ha nncs több él elhagyásával származtatható gráf, melyen mnden gény elvezethető.
Lassú Egyutas elvezetés - megbízhatóság szempontból rossz.
n élt tartalmazó gráfból előállítjuk az összes n-1 élt tartalmazó gráfot. Ha már nncs megoldás, akkor vége az algortmusnak. A becslés után csak a legígéretesebbet tartjuk meg. Vsszalépés 1-re.
n élet tartalmazó gráfból előállítjuk az összes n-1 élet tartalmazó gráfot. Ha már nncs megoldás, akkor vége az algortmusnak. A becslés után csak a legjobb költségűt tartjuk meg. Vsszalépés 1-re.
Cél: mnden pontpár elérhető legyen mnmum két pontfüggetlen úton. Megoldás: mnden gényt két úton vezetünk el.
Suurballe algortmus Beágyazott algortmus: rányított gráfot kezelő Djkstra algortmus. Két út előállítása gráf költség, és gráf transzformácók segítségével
Adott a G(V,A) gráf, és a c(a) élköltség. 1. G rányítatlan gráfra a mnmál út előállítása Djkstra algortmus segítségével 2. Élek költségének a transzformálása c (,j)=c(,j)+d()-d(j) ahol d(j) a kndulás pontból a j pont legrövdebb távolsága 3. Gráf rányítottá tétele 4. Mnmálúton a kezdő és végpont kvételével mnden csomópont kettőzése v->va,vb
5. Élek duplkálása (következő ábra) 6. Mnmálút keresés a módosított gráfon 7. Duplkált pontok megszüntetése 8. A két úton lévő közös élek törlése 9. Két út elkészítése a meglévő élek alapján
2. mnmál út 1. Mnmál út
célfüggvény korlát Ha f konvex g konkáv h lneárs, akkor konvex feladatról beszélünk. Lehetséges megoldások halmazát F-el jelöljük. x f p j x h m x g j 1 0 ) ( 1 0 ) (
probléma megadása (F,c) szomszédosság függvény: N : F 2 F követelmény: q N( q) akkor q N( q) egzakt szomszéd : összes lokáls mnmum (maxmum) pont szomszédos
pl. utazóügynök probléma kétcserés szomszédos állapotra
1 1 2 2 3 4 3 6 5 6 7 8 9 10 11 4 5 Mélység keresés Szélesség keresés
Branch F-et egyszerűbb alproblémákra bontjuk (változók megkötésével), és az alproblémákra egyenként végezzük el az optmum keresését. Bound Megpróbálunk az egyes alproblémákra hatékony alsó becslést b(f) adn. Az eddg legjobb megoldásnál rosszabb becslés értékkel rendelkező alproblémákat el kell hagyn.
1 Aktív alprobléma F kválasztása 2Az F alproblémának nncs megoldása, akkor az töröljük, különben b(f) kszámítása. 3 b(f) rosszabb, mnt az eddg megtalált legjobb megoldás -, akkor az alproblémát töröln kell. 4 b(f) jobb (még) Ha a költsége jobb mnt az eddg megtalált legjobb megoldás, akkor ez lesz az eddg talált legjobb megoldás. Alproblémák készítése, vsszalépés lépés 1-re
Adott: F, c, N (mnmalzálás). 1Tetszőleges kezdet állapot q 0, =0. 2 Szomszédos állapotok közül egyenlő valószínűséggel választunk egyet. q' N(q ) 3Ha c(q')c(q ), akkor q +1 =q' különben q +1 =q. 4 =+1. Leállás, ha egy adott lépésszám alatt nem találtunk jobb megoldást, vagy a maxmáls terácó számát túlléptük. Hátrány: lokáls optmumba ragad.
Módszer működése: A hegymászó módszerre hasonlít, de a szomszédos állapotok közül mndg a legjobb költségűt választja k. Hátránya: ha a szomszédos állapotok számossága nagy, akkor a legjobb állapot kválasztásával lassú lokáls mnmumba ragadhat.
Folytonos optmalzálás feladatoknál, ha a c célfüggvény dfferencálható, akkor a gradens rányába lévő szomszédos állapotokon keresztül érhetjük el a lokáls optmumot. Így nem kell az összes szomszédos állapotot kértékeln. Hátránya: lokáls optmumba ragadhat.
A megengedett megoldások (xf) halmazából véletlenszerűen generálunk n- et, és ezek közül kválasztjuk a legjobbat. Hátránya, hogy nem használja k a lokáls optmumot. A véletlen keresésnél nem kell szomszédos állapotokat defnáln.
Az algortmus tulajdonsága: A keresést véletlenszerűen kválasztott helyről ndítjuk. A választható szomszédos átmenetek közül mndg a legjobb költségűt választjuk k. A már kválasztott állapotátlépéseket kzárjuk. Ezzel próbálunk kjutn a lokáls optmumból.
F megengedett állapotok c(q): q F célfüggvény N(q) F szomszédos állapotok T(q)N(q) tabu (tltott állapotok) halmaz A(q)T(q) aspráns halmaz
k=0;kezdet állapot q 0 F; T(s) üres, legjobb állapot q 0 Whle nncs vége do 1N(q k ), T(q k ), A(q k ) kértékelése 2 q k+1 (N(q k )-T(q k )) A(q k )) kválasztása, ahol c(q k+1 ) a legjobb szomszédos állapot. 3 Ha a q k+1 állapot jobb, mnt az eddg legjobb, akkor ez a legjobb állapot. 4 T(q), A(q) halmaz frssítése End
Idő alapú szabály (Recency-Memory) Időbélyeg - Tme(x) = 0, ha még az x megoldást nem néztük meg, különben az utolsó látogatás deje (terácó száma) x = argmn{tme(x ) : x N(x )} Gyakorság alapú szabály (Frequency-Memory) Frequency(x) = 0 mnden még nem bejárt x megoldásra, különben mnden egyes használatkor növeljük eggyel. x = argmn{frequency(x ) : x N(x )}
Hatékony módszer, de a ktltott állapotok mentése sok memórát gényel, és ezek kkeresése dőgényes. Problémafüggő változók: szomszédosság tltott állapotok aspráns halmaz
Feladat: cx Ax t x b(f) kszámítása lneárs programozás relaxácóval n
Alproblémák előállítása mn cx Ax t n x megoldás x * mn cx Ax t x x * mn cx Ax t x x * 1
Feladat: x 1 x x x x x 1 1 2 Z 1 n x x x 2 2 2
x 2 4 x 1 =(1.5, 2.5) b(f 1 )=-3.5 3 x 2 =(0.75, 2) b(f 2 )=-3.25 x 1 x 3 =(0.0,1.5) b(f 3 )=-3.0 2 x 2 x 4 x 4 =(1.0,2.0) b(f 3 )=-3.0 x 3 1 1 2 3 4 x 1
S A Krkpatrck - krstályosodás vzsgálata atomok elrendeződése a krstályosodás folyamatában nagy energájú atomok az energamnmumra való törekvés ellenébe s hathatnak ks energájú részecske már csak a lokáls helyen a legkedvezőbb állapot betöltésére törekszk
SA lassú lehűtés: szabályos krstályszerkezet kalakítása globáls energamnmum gyors lehűtés: metastabl állapot lokáls energamnmum részecskék energaállapotát a Maxwell - Boltzmann eloszlás adja meg
SA jobb állapotokat elfogadjuk rosszabb állapotokat csak p = p(t,c) valószínűséggel fogadjuk el p valószínűség: az terácó előrehaladtával csökken (T) a kedvezőtlenebb megoldásoknak ksebb a valószínűsége (c)
Mnmalzálás 1 Kezdet ncalzálás T 0 kezdet hőmérséklet megválasztása q 0 knduló megoldás választás =0 lépésszám ncalzálása 2 q' N(q ) megoldás előállítása
3 Ha c(q') > c(q ) akkor q q p q q T q c q c p 1 1 valósznűséggel 1 valósznűséggel ) ( ) ( exp egyébként q +1 =q ' 4 Vége, ha a megoldás konvergált vagy elértük a maxmáls terácószámot 5 T +1 = f(t ); =+1; goto 2
SA mnden állapotból véges számú lépésben el lehet jutn egy másk tetszőleges állapotba szomszédos megoldások közül egyenlő valószínűséggel választunk szomszédosság függvény szmmetrkus
SA krtkus paraméter a T 0, és a lehűtés sebessége T változása f lehet: geometra logartmkus lneárs a f f geo T N ( ) T0 ( ) 0 T T ) 1 log( ) 0 log( f ln ( ) T 0 1 N N
Nyalábolás nyomvonal PÁLYA Csorna Komárom Almásfüzítő Tatabánya Aszód Vámosgyörk Kál - Kápolna Füzesabony Győr Bp/Kelet Hatvan Sopron Eger VONAT KOCSI Szombathelyről Salgótarjánba UTAS
A rendszer szakasza, más rendszer szakaszaval azonos nyomvonalon helyezkedjen el. A szakaszok azonos struktúrákon (azonos gyűrűn vagy szövevényen) haladjanak keresztül. A struktúraváltás azonos csomópontokban történjen. A rendszereket a nyalábolás szabály alapján egy rendszerbe lehessen összetenn.
Magasabb fokszámú pont (vágás pont) Nem vágás pont
szakaszok rendszer vágás pont kvétele vágás pont betétele szakasz rendszer
Knduló állapotban mnden egy szakaszon kerül elvezetésre. Csak azokat az összeköttetéseket kell optmalzáln, amely túlcsordul a modulméreten.
Kezdet ncalzálás kezdet hőmérséklet megválasztása mnden rendszert egy szakaszon valósítunk meg, és nyalábolunk össze = 0 lépésszám ncalzálása Nyalábolható rendszerek és vágás pontok bejelölése. Egyenletes valósznűséggel egy rendszer kválasztása. Új vágás pont betétele vagy kvétele. Új állapot költségének a kszámítás Döntés az új állapot elfogadásáról. Ha a megoldás konvergált vagy elértük a maxmáls terácószámot vége 1 T f ( T ), 1, goto 2
fx költség rendszerek számával arányos költség rendszerek hosszával arányos költség társrendszerek hasonló vágásának a költsége (jutalmazása) Ktöltöttség költség
darabszám/ hossz 3/9 7/7. réteg +1. réteg
Szomszédos állapotátmenetek Egy él elhagyása Egy él betétele 1 valószínűség élbeszúrás éltörlés 0 0 N-1 élek száma
Élcsere: Szomszédos állapotokat előállító műveletek valószínűsége
Műszak probléma: Pl. Igény elvezetése a szabad helyek felhasználásával Kétutas elvezetés bztosítása VC12-es gények elveztése VC4S szabad pozícókban Függetlenség bztosítása a topológa gráfon
VC4S gráf
Rng 1 Rng 2 Mesh Struktúránként egy-egy önálló gráfot készítünk A különálló gráfokat a HUB pontokban kötjük össze
Suurballe algortmus kerjesztése Hatékony megoldás Tovább szempontok fgyelembe vétele nem lehetséges. Lneárs programozás feladatként Nem hatékony Könnyen megadhatunk tovább megkötéseket s.
Feladat formalzálása: z z A mn-es mátrx c költségvektor 1n-es sorvektor b korlát, m1-es oszlopvektor 1 2 x x n n
0, 3 2 3 2 max 2 1 2 1 2 1 2 1 x x x x x x x x 1 2 3 4 x 1 x 2 1 2 3 4 c 4 2 1 x x 2 2 1 x x 0 2 1 x x
költsége él ) (, az egyébként 0 folyam a gráfélt használja ) (, az ha 1, változó f élek halmaza csomópontok halmaza gráf ), ( j A j N j c A j N j A N A N G j Adatok:
mnmalzálandó költség mn 0 kapactáskorlát ), ( 0 folyammegmaradás ), ( ) ( ) ( j A j j N j j I j j O j j f c b A j u f N b f f
b 1 =1 c 13 =5 1 3 c 12 =1 c 34 =1 2 4 c 24 =1 c 35 =1 c 45 =1 5 b 5 =1 f 12 f 12 f 13 f 13 f 24 f 24 f 34 f 35 f 35 f 45 f 45 1 0 0 0 1
0 egyébként potban van az gény végpontja az f 1ha potban van az gény forrása az f 1ha b mátx csomópont lleszkedés az él a ahol 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 1 45 35 34 24 13 12 V V f f f f f f A b f A sorok lneársan nem függetlenek
0,1 1 Egy pontot csak egy folyam érnthet 1 1 }, { 100 }, { 100 Indkátorváltozók bevezetése, ) ( ) ( ) ( ) ( 2 1 O I y O I x y x V h g V h g t s V h y t s V g x b y A b x A
lp_solve ftp://ftp.cs.ele.tue.nl/pub/lp_solve/ fő adatszerkezet : lprec *lp; adatszerkezet létrehozása: lp = make_lp(0, row_sze ); r1 == r2 ha abs(r1-r2) < eps lp->epslon = eps; egy sor megszorítás megadása: add_constrant(lp, row, EQ, rh );
költség megadása probléma típusa set_obj_fn(lp, row1); set_mnm(lp); megoldás solve(lp) élek száma élek száma élek száma élek száma csp. száma-2 csp. száma-2 x=(a,b)a x=(b,a)a y = (a,b) A y = (b,a) A g h
double* row1, *row2; double rh = 0.0; bool ret=false; nt, k; const double eps = 0.05; const nt max_n_out_num = 10; *nroute1 = *nroute2 = 0; *route1 = NULL; *route2 = NULL; nt row_sze = 4*nedges+2*nnodes-4; f( row_sze == 0 ) return false; row1 = (double*) malloc( (row_sze+1)* szeof(double) ); row2 = (double*) malloc( (row_sze+1)* szeof(double) ); lprec *lp; lp = make_lp(0, row_sze ); lp->epslon = eps;
for( = 0; <nnodes; ++ ) { Fll( row1, row1+row_sze+1, 0.0 ); // tömb nullázása Fll( row2, row2+row_sze+1, 0.0 ); for(k=0; k<nedges; k++ ) { nt x1 = edges[k].from ; nt x2 = edges[k].to ; f( x1 == ) { row1[k+1] = 1.0; row1[k+nedges+1]=-1.0; row2[k+2*nedges+1] = 1.0; row2[k+3*nedges+1]=-1.0; } f( x2 == ) { row1[k+1] = -1.0; row1[k+nedges+1]=1.0; row2[k+2*nedges+1] = -1.0; row2[k+3*nedges+1]=1.0; } } rh = 0.0; f( == from ) rh = 1.0; else f( == to ) rh = -1.0; add_constrant(lp, row1, EQ, rh ); add_constrant(lp, row2, EQ, rh ); }
nt dx; for( dx==0; <nnodes; ++ ) { // A kezdo és végpontokat nem szabad ktltan! f( == from == to ) contnue; Fll( row1, row1+row_sze+1, 0.0 ); Fll( row2, row2+row_sze+1, 0.0 ); for(k=0; k<nedges; k++ ){ f( Adjancent( k, ) ) { row1[k+1] = row1[k+nedges+1] = 1.0; row2[k+2*nedges+1] = row2[k+3*nedges+1] = 1.0; } } row1[ 4*nedges + dx +1 ] = -max_n_out_num; add_constrant(lp, row1, LE, 0.0 ); row2[ 4*nedges + dx + nnodes-2 +1 ] = -max_n_out_num; add_constrant(lp, row2, LE, 0.0 ); dx++; }
for(dx==0; <nnodes; ++ ) { f( == from == to ) contnue; } Fll( row1, row1+row_sze+1, 0.0 ); row1[ 4*nedges + dx +1] = 1.0; row1[ 4*nedges + nnodes-2 + dx +1] = 1.0; add_constrant(lp, row1, LE, 1.001 ); dx++;
for(=1; <=row_sze; ++ ) set_nt(lp,, TRUE ); Fll(row1, row1+row_sze+1, 0.0 ); for(=1; <=4*nedges; ++ )row1[]= edges[(-1)%nedges ].len; set_obj_fn(lp, row1); set_mnm(lp); f( OPTIMAL == solve(lp) ) { for( =0; <nedges; ++ ) { f(fabs(lp->best_soluton[lp->rows++1]-1.0)<2*eps fabs(lp->best_soluton[lp->rows++nedges+1]-1.0) < 2*eps ) AddRoute(, route1, nroute1 ); f(fabs(lp->best_soluton[lp->rows++2*nedges+1]-1.0) < 2*eps fabs(lp->best_soluton[lp->rows++3*nedges+1]-1.0) < 2*eps ) AddRoute(, route2, nroute2 ); } ret = 1; } else ret = 0; delete_lp(lp);
gráfél topológa pont VC4S lnk Csomópont függetlenséget a topológa gráfon kell vzsgáln. A programot a -tel jelölt helyeken kell módosítan.