Méret: px
Mutatás kezdődik a ... oldaltól:

Download ""

Átírás

1 Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar Gráfos feladatok.. Feladat: Kiút keresés labirintusban. Egy négyzetrácsos hálózattal leírható labirintusban adott start helyről adott cél helyre kell eljutni a lehető legrövidebb úton. A labirintusban minden mező vagy fal, vagy közlekedésre használható folyosó egy részlete. Egy lépésben szomszédos mezőre léphetünk, balra, jobbra, felfelé vagy lefelé ábra.

2 0 0 0 Megoldás Modell: Tfh. a labirintus sorainak száma n, oszlopainak száma m. Tekintsük azt a G = (V,E) gráfot, ahol V = {(x,y) : x n y m (x,y)nem fal} (x,y) (x,y) E akkor és csak akkor, ha x x + y y = valamint (x,y) és (x,y) nem fal. Vagyis az (x,y) mezőről egyetlen lépéssel juthatunk az (x,y) mezőre. Tehát a feladat nem más, mint egy (Xk,Y k) (Xc,Xc) legrövidebb út keresése, ha a start mező (Xk,Y k) a célmező pedig (Xc,Xc). A feladat tehát megoldható szélességi kereséssel, a labirintus gráf számított-gráf ábrázolását használva. (x,y) (,0) (x,y ) (x,y) (x,y+) (0, ) (0,) (x+,y) (,0). ábra. A lehetséges lépések

3 program L a b i r i n t u s ; c o n s t MaxMN=00; { sorok és oszlopok max. száma } Lep : array [.. ] of record x, y :.. end={ a l é p é s e k e l ő r e } ( ( x : ; y : 0 ), ( x : 0 ; y : ), ( x : ; y : 0 ), ( x : 0 ; y : ) ) ; VLep : array [.. ] of record x, y :.. end={ a l é p é s e k v i s s z a } ( ( x : ; y : 0 ), ( x : 0 ; y : ), ( x : ; y : 0 ), ( x : 0 ; y : ) ) ; SorMeret=MaxMNΛMaxMN; type 0 Koord = 0..MaxMN; P o z i c i o =record x, y : Byte end ; L a b i r i n t =array [ 0.. MaxMN, 0..MaxMN] of i n t e g e r ; Sor=record Tar : array [.. SorMeret ] of P o z i c i o ; e l e j e, vege :Word end ; var M,N:Word; { a sorok és oszlopok száma } K:Word; { a f a l a k száma } Xk, Yk :..MaxMN; { a kezdő mező k o o r d i n á t á i } Xc, Yc :..MaxMN; { a c é l mező k o o r d i n á t á i } L: L a b i r i n t ; { a l a b i r i n t u s mátrixa } 0 S : Sor ; { Sor a bejáráshoz } x, y :Word; procedure Beolvas ; { Global : M, N, } var Bef : Text ; i, x, y :Word; begin Assign ( Bef, l a b i r i n t. be ) ; Reset ( Bef ) ; ReadLn ( Bef, M, N, K) ; 0 f o r x := to M do f o r y := to N do L[ x, y ] : = 0 ; ReadLn ( Bef, Xk, Yk, Xc, Yc ) ; f o r i := to K do begin ReadLn ( Bef, x, y ) ; L[ x, y ]:= ; end { f o r K} ; Close ( Bef ) ; end { Beolvas } ; 0 procedure S o r L e t e s i t ; begin S. e l e j e : = ; S. vege : = ; end { S o r L e t e s i t } ; procedure Sorba ( p : P o z i c i o ) ; begin S. Tar [ S. vege ] : = P ; Inc ( S. vege ) ; end { Sorba } ; procedure Sorbol ( Var p : P o z i c i o ) ; 0 begin p:=s. Tar [ S. e l e j e ] ; i n c ( S. e l e j e ) ; end { Sorbol } ; Function NemUres ( ) : Boolean ; begin NemUres:=S. e l e j e <S. vege ;

4 end { NemUres } ; procedure Bejar ( x, y : Koord ) ; { Global : Xc, Yc, L} 0 var i :Word; p, q : P o z i c i o ; begin { Bejar } S o r L e t e s i t ; p. x := x ; p. y := y ; Sorba ( p ) ; while NemUres Do begin Sorbol ( p ) ; i f ( p. x=xc ) And ( p. y=yc ) then Break ; { c é l b a értünk } 0 f o r i := to Do begin { l é p é s a négy l e h e t s é g e s szomszéd f e l é } q. x :=p. x+lep [ i ]. x ; q. y :=p. y+lep [ i ]. y ; i f L[ q. x, q. y ]=0 then begin { i t t még nem jártunk } L[ q. x, q. y ] : = i +; { a l é p é s b e j e g y z é s e } Sorba ( q ) ; {q t b e t e s s z ü k az a k t í v pontok sorába } end ; end { f o r i } ; end { while } ; end { Bejar } ; 0 procedure UtKiIro ; { Global : Xc, Yc, L} Var KiF : Text ; Ut : array [..MaxMN] of.. ; Tav, x, y, i : i n t e g e r ; begin Assign ( Kif, l a b i r i n t. ki ) ; Rewrite ( Kif ) ; i f L[ Xc, Yc] >0 then begin { van út a c é l b a } Tav : = 0 ; x :=Xc ; y :=Yc ; 0 while L[ x, y ] > do begin l e p e s :=L[ x, y ] ; x := x+vlep [ l e p e s ]. x ; y := y+vlep [ l e p e s ]. y ; i n c ( Tav ) ; Ut [ Tav ] : = l e p e s ; end { while } ; WriteLn ( Kif, Tav ) ; { az út hosszának k i í r a t á s a } f o r i := Tav downto do w r i t e ( KiF, Ut [ i ], ) ; 00 writeln ( KiF ) ; 0 end Else 0 WriteLn ( Kif, Nincs út ) ; 0 Close ( Kif ) ; 0 end { UtKiIro } ; 0 begin { Program } 0 Beolvas ; 0 0 f o r x := to M Do begin { i n i c i a l i z á l á s } 0 L[ x, 0 ] : = ; L[ x,m+]:= ; { k e r e t a t á b l a köré } 0 end ; f o r y := to N Do begin

5 L[ 0, y ] : = ; L[N+, y ]:= ; end ; L[Xk, Yk ] : = ; { a kezdőpontban már jártunk } Bejar (Xk, Yk ) ; UtKiIro ; end... Feladat: Mérőkannák Egy gazdának két kannája van, az egyik A literes, a másik pedig B. Szeretne kimérni pontosan L liter vizet. Az alábbi műveleteket lehet végezni a kimérés során:. Az A-literes kanna teletöltése. A B-literes kanna teletöltése. Az A-literes kanna kiürítése. A B-literes kanna kiürítése. Áttöltés az A-literesből a B-literesbe (amíg az tele nem lesz, ill. van A-ban). Áttöltés a B-literesből az A-literesbe (amíg az tele nem lesz, ill. van B-ben) Adjunk olyan algoritmust, amely meghatároz egy (legkevesebb lépésből álló) kimérést! Bemenet A kimer.be szöveges állomány első sora a két egész számot tartalmaz, a két kanna ürtartalmát: AB(0 < A,B <= 00). A második sor a kimérendő mennyiséget tartalmazza. Kimenet A kimer.ki szöveges állomány első sora a kimérés lépéseinek (minimális) m számát tartalmazza. A második sor pontosan m egész számot tartalmazzon egy-egy szóközzel elválasztva, a kimérés lépéseit. Példa bemenet és kimenet bemenet kimenet

6 kezdő állapot: (0,0) öntéssel kapható állapotok: (,0) (0,) öntéssel kapható állapotok: (,) (,) (,0) öntéssel kapható állapotok: (,0) (,) öntéssel kapható állapotok: (,) (,0) öntéssel kapható állapotok: (,0) (,) öntéssel kapható állapotok: (0,) (,) öntéssel kapható állapotok: (,) (0,) öntéssel kapható állapotok: (,) (,0) öntéssel kapható állapotok: (,0) (,) 0 öntéssel kapható állapotok: (,) (,0) öntéssel kapható állapotok: (,0) (,) öntéssel kapható állapotok: (0,) (,) Megoldás Minden állapot azonosítható egy (x, y) számpárral (0 x A, 0 y B). A kezdő állapot (0,0). Az öntögetés során tudnunk kell, hogy adott (x,y) állapotot elértük-e már? Továbbá, ha elő is kell állítani egy öntési sorrrendet, akkor most nem elég azt tudni, hogy egy állapot melyik lépéssel keletkezett. Valóban, pl. ha a (,) állapot az. lépéssel keletkezett, akkor az előző állapot lehetett (,),(,) vagy (,). Tehát minden elért állapothoz tároljuk azt az állapotot, amelyből keletkezett. Vegyünk egy EA tömböt, és EA[x, y].x = 0, ha az (x, y) állapotot még nem értük el, egyébkét az állapotot, amelyből keletkezett. program MeroKannak ; c o n s t MaxV=00; SorMeret =000; type A l l a p o t = record x, y : i n t e g e r end ; Sor=record e l e j e, vege :Word; Tar : array [.. SorMeret ] of A l l a p o t ; end ; 0 var A, B, L:Word; EA: array [ 0.. MaxV, 0.. MaxV] of A l l a p o t ; S : Sor ; procedure Sorba ( var S : Sor ; v : A l l a p o t ) ; begin S. Tar [ S. vege ] : = v ; Inc ( S. vege ) ; end ; procedure Sorbol ( var S : Sor ; var v : A l l a p o t ) ; 0 begin v :=S. Tar [ S. e l e j e ] ; Inc ( S. e l e j e ) ; end ; procedure Beolvas ; var BeF : Text ; begin Assign ( BeF, kimer. be ) ; Reset ( BeF ) ; ReadLn ( BeF, A, B ) ; ReadLn ( BeF, L ) ; 0 Close ( BeF ) ; end { Beolvas } ; procedure Szamit ;

7 var x, y :Word; U,V: A l l a p o t ; begin { } f o r x :=0 to A do f o r y :=0 to B do EA[ x, y ]. x:= ; S. e l e j e : = ; S. vege : = ; 0 EA[ 0, 0 ]. x : = 0 ; U. x : = 0 ; U. y : = 0 ; Sorba ( S,U) ; while ( S. e l e j e <S. Vege ) do begin Sorbol ( S,U) ; i f (U. x=l) t h e n break ; { kész, a kímérendő van a A kannában } i f EA[A,U. y ]. x<0 then begin {. l é p é s } V. x :=A; V. y :=U. y ; EA[V. x,v. y ] : =U; Sorba ( S,V) ; 0 end ; i f EA[U. x, B ]. x<0 then begin {. l é p é s } V. x :=U. x ; V. y :=B; EA[V. x,v. y ] : =U; Sorba ( S,V) ; end ; i f EA[ 0,U. y ]. x<0 then begin {. l é p é s } V. x : = 0 ; V. y := y ; EA[V. x,v. y ] : =U; Sorba ( S,V) ; end ; 0 i f EA[U. x, 0 ]. x<0 then begin {. l é p é s } V. x :=U. x ; V. y : = 0 ; EA[V. x,v. y ] : =U; Sorba ( S,V) ; end ; i f U. x+u. y<=b then begin { ö n t é s A ból B be } V. x : = 0 ; V. y :=U. x+u. y ; end e l s e begin V. x :=U. x (B U. y ) ; V. y :=B; end ; i f EA[V. x,v. y ]. x<0 then begin {. l é p é s } EA[V. x,v. y ] : =U; Sorba ( S,V) ; 0 end ; i f U. x+u. y<=a then begin { ö n t é s B ből A ba } V. y : = 0 ; V. x :=U. x+u. y ; end e l s e begin V. y :=U. y (A U. x ) ; V. x :=A; end ; i f EA[V. x,v. y ]. x<0 then begin {. l é p é s } EA[V. x,v. y ] : =U; Sorba ( S,V) ; end ; end { while az S sor nem üres } ; 0 end { Szamit } ; procedure KiIr ; c o n s t maxa=0000; var KiF : Text ; x, y,m, i, l e p e s : i n t e g e r ; Lehet : boolean ; szep : s t r i n g ; U,V: A l l a p o t ;

8 Lepsor : array [.. MaxA] of A l l a p o t ; 0 begin Assign ( KiF, kimer. ki ) ; Rewrite ( KiF ) ; l e h e t := f a l s e ; f o r y :=0 to B do i f EA[L, y ]. x>0 then begin l e h e t := t rue ; U. y := y ; break ; end ; i f not l e h e t then begin w r i t e l n ( KiF, 0 ) ; c l o s e ( KiF ) ; e x i t ; 00 end ; 0 U. x :=L; m: = 0 ; 0 while (U. x < >0) or (U. y < >0) do begin 0 i n c (m) ; 0 LepSor [m] : =U; 0 U:=EA[U. x,u. y ] ; 0 end ; 0 U. x : = 0 ; U. y : = 0 ; 0 w r i t e l n ( KiF,m) ; 0 szep := ; 0 f o r i :=m downto do begin V:= LepSor [ i ] ; i f (V. x=a) and (U. y=v. y ) then begin l e p e s : = ; end e l s e i f (U. x=v. x ) and (V. y=b) then begin l e p e s : = ; end e l s e i f (V. x =0) and (U. y=v. y ) then begin l e p e s : = ; end e l s e i f (U. x=v. x ) and (V. y =0) then begin l e p e s : = ; 0 end e l s e i f (V. x =0) and (V. y=u. x+u. y ) or (V. x=u. x (B U. y ) ) and (V. y=b) then begin l e p e s : = ; end e l s e begin l e p e s : = ; end ; w r i t e ( KiF, szep, l e p e s ) ; szep := ; U: =V; end { f o r i } ; w r i t e l n ( KiF ) ; Close ( KiF ) ; 0 end { KiIr } ; begin Beolvas ; Szamit ; KiIr ; end... Gráf adattípus, gráfok ábrázolása... Definíciók. Irányítatlan gráf:g = (V, E) E rendezetlen {a, b}, a, b V párok halmaza.. Irányított gráf:g = (V, E) E rendezett (a, b) párok halmaza; E V V.. Multigráf:

9 . ábra. Példa gráf G = (V,E,Ind,Érk), Ind,Érk : E V Ind(e) az e él induló, Érk(e) az érkező pontja. Címkézett (súlyozott) gráf:g = (V, E,C) C : E Címke Minden irányítatlan G = (V, E) gráf olyan irányított gráfnak tekinthető, amelyre teljesül, hogy ( p, q V )((p, q) E (q, p) E). Jelölések KiEl(G, p) = {q V : (p,q) E} BeEl(G, p) = {q V : (q, p) E} KiFok(G, p) = Ki(G, p) BeFok(G, p) = Be(G, p)... Műveletek gráfokon A továbbiakban feltételezzük, hogy a gráf pontjait természetes számokkal azonosítjuk, pontosabban V {,...,n} Milyen műveleteket akarunk gráfokon végezni? Pontokszama Elekszama KiFok(p) BeFok(p) PontBovit(p) PontTorol(p) ElBovit(p, q) ElTorol(p, q) VanEl(p, q) for q in KiEl(p) do M(p,q)... Gráfok ábrázolásai Szempontok az adatszerkezet megválasztásához.. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek.. Melyek a releváns műveletek, amelyek alapvetően befolyásolják az algoritmus futási idejét.. A tárigény az adott probléma esetén.

10 . ábra. Példa gráf Graf.txt Éltömb Éllánc 0 0 ESz=... ábra. Élhalmaztömb és élhalmazlánc 0

11 . Élhalmaztömb és élhalmazlánc. Kapcsolatmátrix (szomszédsági mátrix) G. ábra. Kapcsolatmátrix c o n s t maxp=000; / / a pontok max. száma type Graf=array [.. maxp,.. maxp ] of boolean ; CGraf=array [.. maxp,.. maxp ] of i n t e g e r ; (p,q) akkor és csak akkor éle a gráfnak, ha G[p,q] = true. Címkézett gráf esetén választani kell egy nem Cimke értéket, amely nem fordul elő semmilyen él címkéjeként. (p, q) akkor és csak akkor éle a címkézett gráfnak, ha G[p,q]! = nem, és a (p,q) él címkéjének értéke G[p,q].. Élhalmaz-tömb G KiFok ábra. Gráf ábrázolása élhalmaz-tömbbel c o n s t maxp=000; / / a pontok max. száma type Graf=array [.. naxp, maxp ] of i n t e g e r ; KiFok=array [.. naxp ] of i n t e g e r ; A Ki(G, p) halmaz bejárása:

12 f o r i := to KiFok [ p ] do begin q:=g[ p, i ] ; M( p, q ) ; end ;. Élhalmaz-lánc ábra. Gráf ábrázolása élhalmaz-lánccal a.) Statikus élhalmaz-lánc c o n s t maxp=000; / / a pontok max száma maxe=00000; / / az é l e k max. száma type Lanc= l o n g i n t ; C e l l a =record pont. i n t e g e r ; c s a t : Lanc end ; Graf=array [.. naxp ] of Lanc ; Elek : array [.. maxe] of C e l l a ; b.) Dinamikus élhalmaz-lánc c o n s t maxp=000; type Lanc=^ C e l l a ; C e l l a =record pont. i n t e g e r ; c s a t : Lanc end ; Graf=array [.. naxp ] of Lanc ;. Számított gráf Az élek halmazát explicite nem tároljuk, mert van olyan számítási eljárás, amely bármely két p, q V -re kiszámítja VanEl(p, q)-t.

13 Vagy, van olyan számítási eljárás, amely minden p V -re kigenerálja a Ki(G, p) halmaz elemeit... Elemi gráfalgoritmusok... Utak Legyen G = (V,E) irányított (irányítatlan) gráf... definíció. p,q V -re egy p-ből q-ba vezető út G-ben, jele: π : p q, olyan π = p 0, p,, p k pontsorozat, ahol p i p j, ha i j, p = p 0 és q = p k, továbbá p = q = p 0, vagy ( i {,...,k}) ((p i, p i ) E)... definíció. A π = p q út hossza, π = p q = k.. definíció. p-ből q-ba vezető legrövidebb út hossza, p és q távolsága: { ha nincs p q δ(p,q) = Min{ π : p q } π : p q ().. definíció. A π = p 0, p,, p k pontsorozatot a p 0 -ból p k -ba vezető sétának nevezzük, ha ( i {,...,k})(p i, p i ) E.. definíció. Ha G = (V,E,C) élei a C : E R függvénnyel súlyozottak, akkor a p q út hossza p q = k i= C(p i, p i ). A p és q pont távolsága: { δ(p,q) = Min{ π : p q } ha nincs p q π : p q ().. definíció. A G = (V,E) (irányítatlan) gráfnak az F = (V,E) gráf a r V gyökerű feszítőfája, ha. F részgráfja G-nek (V V,E E,) és fa.. ( p V ) ha van r p G-ben, akkor és csak akkor, ha van r p F-ben... definíció. A G = (V,E) (irányítatlan, súlyozott) gráfnak az F = (V,E) gráf a r V gyökerű legrövidebb utak feszítőfája (LUF), ha. F r-gyökerű feszítőfája G-nek, és. p V -ra δ G (r, p) = δ F (r, p). Útproblémák. Adott p,q V -re van-e p q út?. Adott p-re az Elr(p) = {q : p q} halmaz kiszámítása.. Adott p,q V -re δ(p,q) és egy p q legrövidebb út kiszámítása.. Egy pontból induló legrövidebb utak : adott p-re minden q-ra δ(p,q) és egy p q legrövidebb út kiszámítása.. Minden p,q pontpárra δ(p,q) és egy p q legrövidebb út kiszámítása.

14 ... Szélességi keresés Bemenet: G = (V,E) (irányított vagy irányítatlan) gráf és egy r V pont. Kimenet: D : V N, Apa : V V, hogy D(p) = δ(r, p) és az F = (V,E) gráf, ahol V = {p : Apa(p) null p = r}, E = {(p,q) : Apa(q) = p p null} r-gyökerű LUF. procedure S z e l t B e j a r ( p : PontTip ) ; / / p ből induló l e g r ö v i d e b b utak meghatározása { Global :G, N, D, Apa } var S : SorTip ; u, v : PontTip ; i :Word; begin { S z e l t B e j a r } f o r u:= to N do D[ u ] : = I n f ; { i n i c i a l i z á l á s } 0 D[ p ] : = 0 ; Apa [ p ] : = 0 ; U r e s i t ( S ) ; Sorba ( S, p ) ; while NemUres ( S ) do begin SorBol ( S, u ) ; f o r i := To KiFok [ u ] Do Begin { u > v é l r e } v :=G[ u, i ] ; i f D[ v ]= I n f then begin { ha v meg nem e l é r t } Apa [ v ] : = u ; 0 D[ v ] : =D[ u ] + ; Sorba ( S, v ) ; end ; end { f o r u >v } ; end { while } ; end { S z e l t B e j a r } ;... Mélységi keresés procedure MelyBejar ( p : PontTip ) ; / / p ből e l é r h e t ő pontok meghatározása { Global :G, N, Apa } var q : PontTip ; i :Word; begin { MelyBejar } f o r i := To KiFok [ p ] Do Begin { p > q é l r e } q:=g[ u, i ] ; 0 i f Apa [ q] <0 then begin { ha q meg nem e l é r t } Apa [ q ] : = p ; MelyBejar ( q ) ; end ; end { f o r p >q} ; end { MelyBejar } ;.. Feladat: Terv Egy nagyszabású építkezés terve n különböző munka elvégzését írja elő. Minden munkát egy nap alatt lehet elvégezni. Egy napon több munkát is el lehet végezni párhuzamosan, feltéve, hogy a megelőzési feltételt betartjuk. Ez ezt jelenti, hogy vannak olyan

15 előírások, hogy egy adott a munka elvégzése meg kell, hogy előzze más adott b munka elégzését. Tehát a b munkát csak akkor lehet elkezdeni, ha már az a munkát befejeztük. Kiszámítandó, hogy a teljes építkezést legkevesebb hány nap alatt lehet befejezni! Bemenet A terv.be szöveges állomány első sora két egész számot tartalmaz, az elvégzendő munkák n számát ( n 00), és a megelőzési előírások m számát (0 m 0000). Kimenet A terv.ki szöveges állomány első sora az összes munka elvégzéséhez szükséges napok k számát tartalmazza. Ha a megelőzési előírások miatt nem lehet elvégezni az összes munkát, akkor az első ás egyetlen sorba a 0 számot kell írni. A további k sor mindegyike egy napon elvégzendő munkák sorszámait tartalmazza egy-egy szóközzel elválasztva. Példa bemenet és kimenet bemenet kimenet 0 0. ábra. A példa bemenet ábrája. Megoldás Elvi algoritmus. Legyen G = (V,E) az a gráf, amelynek pontjai a munkák és élei a megelőzési feltételek. M := {v V : BeFok(v) = 0}; {az első napi munkák } while (M /0) and (V /0 )do begin

16 KiIr(M ); V := V M ; töröljük az E élekből minden olyan p q élet, amelyre p M ; M := {v V : BeFok(v) = 0}; end Akkor és csak akkor van megoldás, ha a megelőzési feltétel nem tartalmaz kört. Hogyan deríthető ez ki a fenti algoritmus során? Ha van kör, akkor a fenti algoritmusban az ismétlés úgy ér véget, hogy M = /0 de V /0. Fordítva is igaz, tehát ha az ismétlés úgy ér véget, hogy utána V /0, akkor van kör, mert nincs 0-befokú pont a megmaradtak között. Tehát elég megszámolni, hogy hány pont kerül bele az M halmazokba. A megelőzési előírások (gráfjának) ábrázolása. Milyen műveleteket kell végezni? Adott u-ra (hatékonyan) meg kell tudni adni mindazon v-ket, amelyeket u megelőz. Jelölje ezek halmazát Ki[u]. Vegyünk egy G tömböt, amelynek G[u] eleme olyan lánc fejére mutat, amely lánc a Ki[u] halmaz elemeit tartalmazza. G ábra. A példa megelőzési előírásainak ábrázolása láncokban. program Terv ; c o n s t MaxN=0000; type Pont =..MaxN; Lanc=^ C e l l a ; C e l l a =record oda : Pont ; c s a t : Lanc end ; Graf=array [.. MaxN] of Lanc ; var 0 N,M: Word; G: Graf ; Beoszt : array [.. ΛMaxN] of 0.. MaxN;

17 BeFok : array [.. MaxN] of 0.. MaxN; Nap :Word; procedure Beolvas ; var BeF : Text ; i, u, v : i n t e g e r ; Guv: Lanc ; 0 begin Assign ( BeF, t e r v. be ) ; Reset ( BeF ) ; ReadLn ( BeF, N, M) ; f o r u:= to N do begin G[ u ] : = N i l ; Befok [ u ] : = 0 ; end ; f o r i := to M do begin Readln ( BeF, u, v ) ; 0 New(Guv ) ; { új c e l a l é t e s í t é s e } Guv^. oda := v ; { az u >v é l f e l v é t e l e a láncba : } Guv^. c s a t :=G[ u ] ; { a Guv c e l l a bekapcsolása a G[ u] lánc e l e j é r e } G[ u ] : = Guv; end { f o r i } ; Close ( BeF ) ; end { Beolvas } ; procedure Szamit ; var 0 i, e l e j e, vege, p, q :Word; El : Lanc ; begin Nap : = 0 ; vege : = 0 ; f o r i := to N do { a 0 megelőzöjüek halmazának k i s z á m í t á s a } i f Befok [ i ]=0 then begin Inc ( vege ) ; Beoszt [ vege ] : = i ; end ; Inc ( vege ) ; 0 Beoszt [ vege ] : = 0 ; e l e j e : = ; while True do begin Inc ( Nap ) ; while Beoszt [ e l e j e ]<>0 do begin p:= Beoszt [ e l e j e ] ; Inc ( e l e j e ) ; El :=G[ p ] ; while El <> n i l do begin { a p >q é l e k f e l d o l g o z á s a } q:= El ^. oda ; El := El ^. c s a t ; 0 Dec ( BeFok [ q ] ) ; i f BeFok [ q]=0 then begin { q f e l v é t e l e az akt. napra } Inc ( vege ) ; Beoszt [ vege ] : = q ; end ; end { while El } ; end { while e l e j e } ; i f vege= e l e j e then Break ;

18 Inc ( vege ) ; Beoszt [ vege ] : = 0 ; 0 Inc ( e l e j e ) ; end { while } ; end { Szamit } ; procedure KiIr ; var i, ind :Word; KiF : Text ; begin Assign ( KiF, t e r v. ki ) ; Rewrite ( KiF ) ; i f Jok<>N then Nap : = 0 ; WriteLn ( KiF, Nap ) ; 0 ind : = ; f o r i := to Nap do begin r epeat Write ( KiF, Beoszt [ ind ], ) ; Inc ( ind ) u n t i l Beoszt [ ind ] = 0 ; Inc ( ind ) ; WriteLn ( KiF ) ; end { f o r i } ; Close ( KiF ) ; 0 end { KiIr } ; begin { Program } Beolvas ; Szamit ; KiIr ; end... Feladat: Első Képtárlátogatás Egy sok teremből álló képtárban teszünk látogatást. Tudjuk, hogy a főbejárattól a képtár bármely termébe pontosan egy útvonalon keresztül lehet eljutni. Adjunk olyan bejárási stratégiát, amely biztosítja, hogy minden terembe eljutunk (minden képet pontosan egyszer nézünk meg)! 0. ábra. Egy képtár alaprajza

19 Megoldás A fal mellett mindig jobbra haladjunk. A lényeg, hogy adott teremből közvetlenül melyik termekbe tudok átmenni. Az alaprajz 0. ábra. ábráján kössük össze egyenes szakasszal az olyan teremsorszám-párokat, amelyek között van ajtó (tehát közvetlenül át lehet menni egyikből a másikba)... Feladat: Második Képtárlátogatás Ha a képtár nem teljesíti azt a feltételt, hogy bármely két terem között pontosan egy útvonal létezik (a gráfja fa), akkor nem alkalmazható a "fal mellett mindig jobbra" el. Az ábrán látható képtár esetén a. terembe nem jutnánk el. Fogalmazzuk meg pontosan a megoldandó feladatot. Bemenetként adott egy képtár termeinek leírása, amely tartalmazza minden teremre, hogy abból közvetlenül melyik termekbe lehet átmenni. Feltesszük, hogy n terem esetén a termeket az,..., n számokkal azonosítjuk, a bejáratot tartalmazó terem azonosítója. A kimenet a termek sorszámaiból álló olyan a,a,,a m számsorozat, amely megadja, hogy a bejárattól indulva milyen sorrendben kell haladnunk a képtárban, hogy minden terembe eljussunk, és a sétát a bejáratot tartalmazó. teremben fejezzük be. Tehát a,a,,a m számsorozatra az alábbiak teljesülnek: a = és a m = Minden i-re az a i teremből van ajtó az a i+ terembe ( i < m). Minden és n közötti szám legalább egyszer előfordul a sorozatban. Bemenet A keptar.be szöveges állomány első sora a termek n ( n 00)számát tartalmazza. A következő n sor mindegyike egy terem szomszédos termeit adja meg. Az i + -edik sorban azon termek sorszámai vannak felsorolva (egy-egy szóközzel elválasztva) 0-val zárva, amelyekbe nyílik ajtó az i-edik teremből. Kimenet A keptar.ki szöveges állomány egy megoldást tartalmazzon. Több megoldás esetén bármelyik megadható.

20 0. ábra. 0. ábra. 0

21 0. ábra. A "fal mellett mindig jobbra" elv alkalmazása.. ábra.

22 Példa bemenet és kimenet bemenet kimenet Megoldás Mit kell tudnunk?. Jártunk-e már az adott teremben?. Melyik teremből léptünk először az adott terembe? Minden p teremre Honnan(p) legyen annak a teremnek a száma, amelyből először lépünk a p terembe. Kezdetben legyen minden p-re Honnan(p) = 0. Így ha a p teremben vagyunk, és a q terembe vezet ajtó, a Honnan(q) értéke alapján el tudjuk dönteni, hogy jártunk-e q-ban.

23 Az algoritmus: at = ; / / az a k t u á l i s terem Honnan ( ) = ; / / az u t c á r ó l léptünk a f ő b e j á r a t termébe while ( at!= ) do begin / / amíg v i s s z a nem értünk a b e j á r a t / k i j á r a t h o z i f ( at nek van q benemjárt szomszédos terme ) then begin Honnan ( q ) = at ; at = q ; end e l s e at = Honnan ( at ) ; end program Keptar ; c o n s t MaxN=00; var N, i, at : i n t e g e r ; G: array [.. MaxN,.. MaxN] of i n t e g e r ; Honnan, Ki, Fok : array [.. MaxN] of i n t e g e r ; KiF : Text ; procedure BeOlvas ; 0 var i, x, y : i n t e g e r ; BeF : Text ; begin Assign ( BeF, keptar. be ) ; Reset ( BeF ) ; ReadLn ( BeF,N) ; f o r i := to n do begin Fok [ i ] : = 0 ; Read ( BeF, x ) ; while ( x < >0) do begin i n c ( Fok [ i ] ) ; 0 G[ i, Fok [ i ] ] : = x ; read ( BeF, x ) ; end ; end ; Close ( BeF ) ; end { Beolvas } ; begin { Program } Beolvas ; Assign ( KiF, keptar. ki ) ; Rewrite ( KiF ) ; f o r i := to n do begin 0 Honnan [ i ] : = 0 ; Ki [ i ] : = 0 ; end ; at : = ; Honnan []:= ; while at >0 do begin w r i t e ( KiF, at, ) ; r epeat i n c ( Ki [ at ] ) ; u n t i l ( Ki [ at ] >Fok [ at ] ) or ( Honnan [G[ at, Ki [ at ] ] ] = 0 ) ; 0 i f Ki [ at ] <=Fok [ at ] then begin Honnan [G[ at, Ki [ at ] ] ] : = at ; at :=G[ at, Ki [ at ] ] ; end e l s e at :=Honnan [ at ] ; end { while } ;

24 c l o s e ( KiF ) ; end.. ábra.. ábra. A képtár gráfja. ábra. Egy teljes körséta:. A p Honnan[p] élek egy feszítőfát adnak. Rekurzív megvalósítás program Keptar ; c o n s t MaxN=00; var N,M:Word; G: array [.. MaxN,.. MaxN] of i n t e g e r ; Apa, Fok : array [.. MaxN] of i n t e g e r ; i : i n t e g e r ; KiF : Text ;

25 0 procedure BeOlvas ; var i, x, y : i n t e g e r ; BeF : Text ; begin Assign ( BeF, keptar. be ) ; Reset ( BeF ) ; ReadLn ( BeF,N) ; f o r i := to n do begin Fok [ i ] : = 0 ; Read ( BeF, x ) ; while ( x < >0) do begin 0 i n c ( Fok [ i ] ) ; G[ i, Fok [ i ] ] : = x ; read ( BeF, x ) ; end ; end ; Close ( BeF ) ; end { Beolvas } ; procedure MelyBejar ( p : i n t e g e r ) ; { Global : G, Fok, Apa} var 0 i, q : i n t e g e r ; begin f o r i := to Fok [ p ] do begin q:=g[ p, i ] ; i f Apa [ q] <0 then begin {q ban még nem jártunk } Apa [ q ] : = p ; {p ből j ö t t ü n k q ba } w r i t e ( KiF,, q ) ; { átlépünk q ba } MelyBejar ( q ) ; {q ból e l é r h e t ő k b e j á r á s a } w r i t e ( KiF,, p ) ; { v i s s z a k e l l menni p be } end ; 0 end { f o r i } ; end { MelyBejar } ; begin { Program } Beolvas ; Assign ( KiF, keptar. ki ) ; Rewrite ( KiF ) ; f o r i := to n do begin Apa [ i ]:= ; end ; Apa [ ] : = 0 ; w r i t e ( KiF, ) ; 0 MelyBejar ( ) ; c l o s e ( KiF ) ; end... Feladat: Iskolahálózat (IOI ) Néhány iskola számítógépes hálózatba van kötve. Az iskolák a szabadon terjeszthető programok elosztására megállapodást kötöttek: minden iskola egy listát vezet azokról az iskolákról ("szomszédairól"), amelyek számára a programokat továbbküldi. Megjegyzés: ha B iskola szerepel az A iskola terjesztési listáján, akkor A nem feltétlenül szerepel B terjesztési listáján. Írjon programot, amely meghatározza azt a legkisebb számot, ahány iskolához egy új programot el kell juttatni ahhoz, hogy - a megállapodás alapján, a hálózaton keresztül terjesztve - végül minden iskolába eljusson. Bemenet Az INPUT.TXT állomány első sora egy egész számot, a hálózatba kapcsolt iskolák n számát tartalmazza ( n 00). Az iskolákat az első n pozitív egész számmal azonosítjuk. A következő n sor mindegyike egy-egy terjesztési listát ír le. Az i + -edik

26 sor az i-edik iskola terjesztési listáján szereplő iskolák azonosítóit tartalmazza. Minden lista végén egy 0 szám áll. Az üres lista csak egy 0 számból áll. Kimenet A program az eredményt, amely két sorból áll, az OUTPUT.TXT nevű fájlba kell írja. Az első sor egy pozitív egész számot, azt a legkisebb m számot, ahány iskolához egy új programot el kell juttatni ahhoz, hogy - a megállapodás alapján, a hálózaton keresztül terjesztve - végül minden iskolába eljusson. A második sorban kell megadni az m kiválasztott iskolát, egy-egy szóközzel elválasztva. Példa bemenet és kimenet bemenet kimenet Megoldás Jelölje G = (V,E); V = {,...,n} az iskolahálózat gráfját. Legyen D V egy megoldáshalmaz, tehát ( q V )( p D)(p q) A D halmazt lépésenként építhetjük: Adott p V pontra jelölje Eler(p) a p pontból elérhető pontok halmazát: Eler(p) = {q : p q} Terjesszük ki ezt halmazokra: Eler(D) = p DEler(p) begin D := /0; DbolElert := /0; for p V do if p / DbolElert then begin D := D Eler(p) {p} DbolElert := DbolElert Eler(p) end end Az Eler(p) halmaz elemei mélységi bejárással kiszámíthatók. Az algoritmus futási ideje legrosszabb esetben O(n ). Az algoritmus legrosszabb esete, ha a bemenetben p szomszédai: {,,..., p }. Ha n 000 is lehet, akkor ez az algoritmus biztosan nem elég gyors megoldás. Gyorsítási ötlet: elsőször rakjuk a pontokat olyan sorrendbe, hogy ha p q, de nincs q p, akkor p előbb álljon a sorozatban, mint q.

27 0 0. ábra. 0. ábra.

28 Egy ilyen kívánt sorrendet egyetlen mélységi bejárással előállíthatunk: a p pontra hívott (rekurzív) mélységi bejárásban, miután p-ből kiinduló összes élet bejártunk, rakjuk p-t a sorozat elejére. (Tehát a kívánt sorozatban a pontok elhagyási idő szerint csökkenő sorrendben lesznek.) Az így módosított algoritmus két mélységi bejárást végez, tehát futási ideje O(E) 0 ET 0 0 El() El() El() El(). ábra. A hálózat ábrázolása. A p iskola szomszédjainak listája a ET tömb El[p],..., El[p + ] indexű elemeiben vannak. program Halozat ; c o n s t maxn=000; { a pontok maximális száma } maxe=00000; { az é l e k maximális száma } type Pont =.. maxn; P a l e t t a =( Feher, Szurke, Fekete ) ; var ET: array [.. maxe] of 0.. MaxN; 0 El : array [.. MaxN+] of l o n g i n t ; N: Longint ; { a pontok száma } Szin : array [.. maxn] of P a l e t t a ; Ver : array [.. maxn] of Pont ; { verem } Vm: Longint ; { verem mutató } D: array [.. MaxN] of Pont ; DSzam: I n t e g e r ; procedure BeOlvas ; var i, p, q :Word; BeF : Text ; begin Assign ( BeF, h a l o z a t. be ) ; Reset ( BeF ) ; ReadLn ( BeF,N) ; El [ ] : = ; i : = ; f o r p:= to N do begin Read ( BeF, q ) ; 0 while q<>0 do begin ET[ i ] : = q ; i n c ( i ) ; Read ( BeF, q ) ; end ; readln ( BeF ) ; El [ p +]:= i ; end ; Close ( BeF ) ; end { Beolvas } ; Procedure MelyBejar ( u : Pont ; e l s o : boolean ) ; { Global : G, Szin, Ver } Var i, v : l o n g i n t ; begin Szin [ u ] : = Szurke ;

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 7. Gráfalgoritmusok II. 7.1. Feladat: Útcaseprő A város utcáinak takarítását úgy szervezték

Részletesebben

Neumann János Tehetséggondozó Program Gráfalgoritmusok II.

Neumann János Tehetséggondozó Program Gráfalgoritmusok II. Neumann János Tehetséggondozó Program Gráfalgoritmusok II. Horváth Gyula horvath@inf.elte.hu 1. A szélességi bejárás alkalmazásai. Nyilvánvaló, hogy S(0) = {r}. Jelölés: D(p) = δ(r, p) Nyilvánvaló, hogy

Részletesebben

Neumann János Tehetséggondozó Program Gráfalgoritmusok I.

Neumann János Tehetséggondozó Program Gráfalgoritmusok I. Neumann János Tehetséggondozó Program Gráfalgoritmusok I. Horváth Gyula horvath@inf.elte.hu A mindennapi életben számos olyan algoritmikus problémával találkozhatunk, amelynek a megoldása megoldaható gráf

Részletesebben

10. Gráf absztrakt adattípus, gráfok ábrázolása

10. Gráf absztrakt adattípus, gráfok ábrázolása Gráf absztrakt adattípus, gráfok ábrázolása Definíciók Irányítatlan gráf:g = (V, E) E rendezetlen {a,b,a,b V párok halmaza Irányított gráf:g = (V,E) E rendezett (a,b) párok halmaza; E V V Multigráf: G

Részletesebben

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa: Gráfok, definíciók Irányítatlan gráf: G = (V,E), ahol E rendezetlen (a,b),a,b V párok halmaza. Irányított gráf: G = (V,E) E rendezett (a,b) párok halmaza; E V V. Címkézett (súlyozott) gráf: G = (V,E,C)

Részletesebben

Gráfalgoritmusok: összefüggőség, párosítás páros gráfban

Gráfalgoritmusok: összefüggőség, párosítás páros gráfban Gráfalgoritmusok: összefüggőség, párosítás páros gráfban Horváth Gyula horvath@inf.elte.hu 1. Elvágópontok és hidak 1.1. definíció. Egy G = (V, E) összefüggő irányítatlan gráf p V pontját elvágópontnak

Részletesebben

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 0.1. Az algoritmikus tudás szintjei Ismeri (a megoldó algoritmust) Érti Le tudja pontosan

Részletesebben

Adatszerkezetek II. 1. előadás

Adatszerkezetek II. 1. előadás Adatszerkezetek II. 1. előadás Gráfok A gráf fogalma: Gráf(P,E): P pontok (csúcsok) és E P P élek halmaza Fogalmak: Irányított gráf : (p 1,p 2 ) E-ből nem következik, hogy (p 2,p 1 ) E Irányítatlan gráf

Részletesebben

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él. Legrövidebb utak súlyozott gráfokban A feladat egy súlyozott gráfban egy adott pontból kiinduló legrövidebb utak megkeresése. Az input a súlyozott gráf és a kiindulási s pont. Outputként egy legrövidebb

Részletesebben

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 4. Dinamikus programozással megoldható feladatok A dinamikus programozás elnevezés egy

Részletesebben

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y. Algoritmuselmélet Gráfok megadása, szélességi bejárás, összefüggőség, párosítás Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 2. előadás

Részletesebben

OKTV 2007/2008 Informatika II. kategória döntő forduló Feladatlap. Oktatási Hivatal

OKTV 2007/2008 Informatika II. kategória döntő forduló Feladatlap. Oktatási Hivatal Feladatlap Kedves Versenyző! A megoldások értékelésénél csak a programok futási eredményeit vesszük tekintetbe. Ezért igen fontos a specifikáció pontos betartása. Ha például a feladat szövege adatok valamilyen

Részletesebben

Adatszerkezetek II. 2. előadás

Adatszerkezetek II. 2. előadás Adatszerkezetek II. 2. előadás Gráfok bejárása A gráf bejárása = minden elem feldolgozása Probléma: Lineáris elrendezésű sokaság (sorozat) bejárása könnyű, egyetlen ciklussal elvégezhető. Hálós struktúra

Részletesebben

Gráfok, definíciók. Minden irányítatlan G = (V,E) gráf olyan irányított gráfnak tekinthető, amelyre teljesül, hogy

Gráfok, definíciók. Minden irányítatlan G = (V,E) gráf olyan irányított gráfnak tekinthető, amelyre teljesül, hogy Gráfok, definíciók Irányítatlan gráf: G = (V,E), ahol E rendezetlen (a,b),a,b V párok halmaza. Irányított gráf: G = (V,E) E rendezett (a,b) párok halmaza; E V V. Címkézett (súlyozott) gráf: G = (V,E,C)

Részletesebben

Gráfok bejárása. Szlávi Péter, Zsakó László: Gráfok II :17

Gráfok bejárása. Szlávi Péter, Zsakó László: Gráfok II :17 Gráfok 2. előadás Gráfok bejárása A gráf bejárása = minden elem feldolgozása Probléma: Lineáris elrendezésű sokaság (sorozat) bejárása könnyű, egyetlen ciklussal elvégezhető. Hálós struktúra bejárása nem

Részletesebben

Gráfelméleti feladatok. c f

Gráfelméleti feladatok. c f Gráfelméleti feladatok d e c f a b gráf, csúcsok, élek séta: a, b, c, d, e, c, a, b, f vonal: c, d, e, c, b, a út: f, b, a, e, d (walk, lanţ) (trail, lanţ simplu) (path, lanţ elementar) 1 irányított gráf,

Részletesebben

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él. Legrövidebb utak súlyozott gráfokban A feladat egy súlyozott gráfban egy adott pontból kiinduló legrövidebb utak megkeresése. Az input a súlyozott gráf és a kiindulási s pont. Outputként egy legrövidebb

Részletesebben

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y. Algoritmuselmélet Mélységi keresés és alkalmazásai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 9. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet

Részletesebben

A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória Oktatási Hivatal A 201/2014 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató INFORMATIKA II. (programozás) kategória 1. feladat: Metró (20 pont) Egy metróállomásra

Részletesebben

INFORMATIKA javítókulcs 2016

INFORMATIKA javítókulcs 2016 INFORMATIKA javítókulcs 2016 ELMÉLETI TÉTEL: Járd körbe a tömb fogalmát (Pascal vagy C/C++): definíció, egy-, két-, több-dimenziós tömbök, kezdőértékadás definíciókor, tömb típusú paraméterek átadása alprogramoknak.

Részletesebben

Gráfelméleti alapfogalmak

Gráfelméleti alapfogalmak 1 Gráfelméleti alapfogalmak Gráf (angol graph= rajz): pontokból és vonalakból álló alakzat. pontok a gráf csúcsai, a vonalak a gráf élei. GRÁ Irányítatlan gráf Vegyes gráf Irányított gráf G H Izolált pont

Részletesebben

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék Programozás alapjai 6. előadás Wagner György Általános Informatikai Tanszék Record A valós életben a nyilvántartásra kerülő adatok nem azonos típusúak. Pl.: Név Cím Telefon GySz Fiz Kis Béla Miskolc Török

Részletesebben

Algoritmizálás és adatmodellezés tanítása 1. előadás

Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az

Részletesebben

14. Mediánok és rendezett minták

14. Mediánok és rendezett minták 14. Mediánok és rendezett minták Kiválasztási probléma Bemenet: Azonos típusú (különböző) elemek H = {a 1,...,a n } halmaza, amelyeken értelmezett egy lineáris rendezési reláció és egy i (1 i n) index.

Részletesebben

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1] Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.

Részletesebben

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t.. A Név: l 2014.04.09 Neptun kód: Gyakorlat vezető: HG BP MN l 1. Adott egy (12 nem nulla értékû elemmel rendelkezõ) 6x7 méretû ritka mátrix hiányos 4+2 soros reprezentációja. SOR: 1 1 2 2 2 3 3 4 4 5 6

Részletesebben

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa: 1. Tétel Az állomány két sort tartalmaz. Az első sorában egy nem nulla természetes szám van, n-el jelöljük (5

Részletesebben

Algoritmusok és adatszerkezetek II.

Algoritmusok és adatszerkezetek II. Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 6. Ugrólista (Skiplist) Definíció. Olyan adatszerkezet, amelyre

Részletesebben

1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT

1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT Az informatika érettségi harmadik tételsora tartalmaz egy feladatot, melyet hatékonyan kell megoldani. A program megírása mellett követelmény a megoldásban használt módszer rövid leírása, kitérve a módszer

Részletesebben

INFORMATIKA tétel 2019

INFORMATIKA tétel 2019 INFORMATIKA tétel 2019 ELIGAZÍTÁS: 1 pont hivatalból; Az 1-4 feladatokban (a pszeudokód programrészletekben): (1) a kiír \n utasítás újsorba ugratja a képernyőn a kurzort; (2) a / operátor osztási hányadost

Részletesebben

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezetek 2. Dr. Iványi Péter Adatszerkezetek 2. Dr. Iványi Péter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér (root) Nincsennek hurkok!!! 2 Bináris fák Azokat

Részletesebben

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)} Mélységi keresés Ez az algoritmus a gráf pontjait járja be, eredményképpen egy mélységi feszítőerdőt ad vissza az Apa függvény által. A pontok bejártságát színekkel kezeljük, fehér= érintetlen, szürke=meg-

Részletesebben

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor Gráfok 2. Legrövidebb utak, feszítőfák előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Legrövidebb utak keresése Minimális feszítőfa keresése Gráfok 2

Részletesebben

Gráfalgoritmusok ismétlés ősz

Gráfalgoritmusok ismétlés ősz Gráfalgoritmusok ismétlés 2017. ősz Gráfok ábrázolása Egy G = (V, E) gráf ábrázolására alapvetően két módszert szoktak használni: szomszédsági listákat, illetve szomszédsági mátrixot. A G = (V, E) gráf

Részletesebben

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra: Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra: C(T ) = (u,v) T c(u,v) Az F = (V,T) gráf minimális feszitőfája G-nek,

Részletesebben

Felvételi tematika INFORMATIKA

Felvételi tematika INFORMATIKA Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.

Részletesebben

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra) 6. Fabejáró algoritmusok Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban

Részletesebben

Megoldott feladatok. Informatika

Megoldott feladatok. Informatika Megoldott feladatok Informatika I.81. Egy autóbuszjegyen az n*n-es négyzethálóban összesen k lyukasztás lehet. Ha a buszjegyet fordítva helyezzük a lyukasztóba, akkor a jegy tükörképét kapjuk. (Csak egyféleképpen

Részletesebben

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)} Példa Adott egy n n-es sakktábla. Az (1,1) mezőn áll egy huszár. Határozzuk meg eljuthat -e az (u,v) mezőre, ha igen adjunk meg egy legkevesebb lépésből álló utat! Adjunk algoritmust, ami megoldja a feladatot.

Részletesebben

Algoritmusok és adatszerkezetek II.

Algoritmusok és adatszerkezetek II. Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 3. Kiegyensúlyozott keresőfák A T tulajdonság magasság-egyensúlyozó

Részletesebben

Dinamikus programozás vagy Oszd meg, és uralkodj!

Dinamikus programozás vagy Oszd meg, és uralkodj! Dinamikus programozás Oszd meg, és uralkodj! Mohó stratégia Melyiket válasszuk? Dinamikus programozás vagy Oszd meg, és uralkodj! Háromszögfeladat rekurzívan: c nj := a nj ha 1 j n c ij := a ij + max{c

Részletesebben

Programozás alapjai. 5. előadás

Programozás alapjai. 5. előadás 5. előadás Wagner György Általános Informatikai Tanszék Cserélve kiválasztásos rendezés (1) A minimum-maximum keresés elvére épül. Ismétlés: minimum keresés A halmazból egy tetszőleges elemet kinevezünk

Részletesebben

Országos Középiskolai Tanulmányi Verseny, 2004/2005-ös tanév INFORMATIKA, II. (programozói) kategória második fordulójának javítási útmutatója

Országos Középiskolai Tanulmányi Verseny, 2004/2005-ös tanév INFORMATIKA, II. (programozói) kategória második fordulójának javítási útmutatója Országos Középiskolai Tanulmányi Verseny, 2004/2005-ös tanév INFORMATIKA, II. (programozói) kategória második fordulójának javítási útmutatója Kérjük a tisztelt kollégákat, hogy az egységes értékelés érdekében

Részletesebben

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK 30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK A gráfos alkalmazások között is találkozunk olyan problémákkal, amelyeket megoldását a részekre bontott gráfon határozzuk meg, majd ezeket alkalmas módon teljes megoldássá

Részletesebben

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma Készítette: Laczik Sándor János Gráfelmélet I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma Definíció: a G=(V,E) párt egyszerű gráfnak nevezzük, (V elemeit a gráf csúcsainak/pontjainak,e elemeit

Részletesebben

Elmaradó óra. Az F = (V,T) gráf minimális feszitőfája G-nek, ha. F feszitőfája G-nek, és. C(T) minimális

Elmaradó óra. Az F = (V,T) gráf minimális feszitőfája G-nek, ha. F feszitőfája G-nek, és. C(T) minimális Elmaradó óra A jövő heti, november 0-dikei óra elmarad. Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra: C(T ) = (u,v)

Részletesebben

Időjárási csúcsok. Bemenet. Kimenet. Példa. Korlátok. Nemes Tihamér Nemzetközi Informatikai Tanulmányi Verseny, 2-3. korcsoport

Időjárási csúcsok. Bemenet. Kimenet. Példa. Korlátok. Nemes Tihamér Nemzetközi Informatikai Tanulmányi Verseny, 2-3. korcsoport Időjárási csúcsok Ismerjük N napra a déli hőmérséklet értékét. Lokálisan melegnek nevezünk egy napot (az első és az utolsó kivételével), ha az aznap mért érték nagyobb volt a két szomszédjánál, lokálisan

Részletesebben

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus GRÁFELMÉLET 7. előadás Javító utak, javító utak keresése, Edmonds-algoritmus Definíció: egy P utat javító útnak nevezünk egy M párosításra nézve, ha az út páratlan hosszú, kezdő- és végpontjai nem párosítottak,

Részletesebben

Algoritmuselmélet 2. előadás

Algoritmuselmélet 2. előadás Algoritmuselmélet 2. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Február 12. ALGORITMUSELMÉLET 2. ELŐADÁS 1 Buborék-rendezés

Részletesebben

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra: Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra: C(T ) = (u,v) T c(u,v) Az F = (V,T) gráf minimális feszitőfája G-nek,

Részletesebben

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány Diszkrét matematika 2.C szakirány 2015. ősz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2015.

Részletesebben

23. SZÉLESSÉGI BEJÁRÁS

23. SZÉLESSÉGI BEJÁRÁS 23. SZÉLESSÉGI BEJÁRÁS A bejárási algoritmusok feladata általában a gráf csúcsainak végiglátogatása valamilyen stratégia szerint. A bejárás gyakran azért hajtjuk végre, mert adott tulajdonságú csúcsot

Részletesebben

Algoritmusok bonyolultsága

Algoritmusok bonyolultsága Algoritmusok bonyolultsága 5. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm 1 / 27 Gazdaságos faváz Kruskal-algoritmus Joseph Kruskal (1928 2010) Legyen V = {v 1, v 2,..., v n }, E = {e 1, e 2,...,

Részletesebben

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány Diszkrét matematika 2.C szakirány 2017. tavasz 1. Diszkrét matematika 2.C szakirány 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2017.

Részletesebben

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik

Részletesebben

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF Összefoglaló Gráfok / EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF Adott a G = (V, E) gráf ahol a V a csomópontok, E az élek halmaza E = {(x, y) x, y V, x y (nincs hurokél) és (x, y) = (y, x)) Jelölések:

Részletesebben

Diszkrét matematika 2. estis képzés

Diszkrét matematika 2. estis képzés Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 10. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar Algoritmizálás Horváth Gyula Szegedi Tudomáyegyetem Természettudomáyi és Iformatikai Kar horvath@if.u-szeged.hu. Mohó algoritmusok A mohó stratégia elemi 1. Fogalmazzuk meg az optimalizációs feladatot

Részletesebben

22. GRÁFOK ÁBRÁZOLÁSA

22. GRÁFOK ÁBRÁZOLÁSA 22. GRÁFOK ÁBRÁZOLÁSA A megoldandó feladatok, problémák modellezése során sokszor gráfokat alkalmazunk. A gráf fogalmát a matematikából ismertnek vehetjük. A modellezés során a gráfok több változata is

Részletesebben

Adatszerkezetek II. 3. előadás

Adatszerkezetek II. 3. előadás Adatszerkezetek II. 3. előadás Körmentes-e egy irányítatlan gráf? Alapötlet: Ha a bejárás során minden szürke pontból csak fehér pontba vezet él, akkor a gráf körmentes. 2013.02.27. 2 Körmentes?(p): Szín(p):=szürke;

Részletesebben

2. Visszalépéses keresés

2. Visszalépéses keresés 2. Visszalépéses keresés Visszalépéses keresés A visszalépéses keresés egy olyan KR, amely globális munkaterülete: egy út a startcsúcsból az aktuális csúcsba (az útról leágazó még ki nem próbált élekkel

Részletesebben

Gráfok 1. Tárolási módok, bejárások. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Gráfok 1. Tárolási módok, bejárások. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor Gráfok 1. Tárolási módok, bejárások előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Gráfok 1. Tárolási módok Szélességi

Részletesebben

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Felvételi vizsga mintatételsor Informatika írásbeli vizsga BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) Felvételi vizsga mintatételsor Informatika írásbeli vizsga 1. (5p) Egy x biten tárolt egész adattípus (x szigorúan pozitív

Részletesebben

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny második fordulójának feladatai. INFORMATIKA II. (programozás) kategória

A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny második fordulójának feladatai. INFORMATIKA II. (programozás) kategória Oktatási Hivatal A 1/18 tanévi Országos Középiskolai Tanulmányi Verseny második fordulójának feladatai INFORMATIKA II. (programozás) kategória 1. feladat: K-homogén sorozat ( pont) Azt mondjuk, hogy az

Részletesebben

A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória Oktatási Hivatal A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló javítási-értékelési útmutató INFORMATIKA II. (programozás) kategória Kedves Versenyző! A megoldások értékelésénél

Részletesebben

2018, Diszkrét matematika

2018, Diszkrét matematika Diszkrét matematika 3. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, őszi félév Miről volt szó az elmúlt előadáson? számtartományok: természetes

Részletesebben

A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny második forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny második forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória Oktatási Hivatal A 2013/2014 tanévi Országos Középiskolai Tanulmányi Verseny második forduló javítási-értékelési útmutató INFORMATIKA II. (programozás) kategória Kérjük a tisztelt kollégákat, hogy az egységes

Részletesebben

Módosítható Prioritási sor Binomiális kupaccal. Wednesday, March 21, 12

Módosítható Prioritási sor Binomiális kupaccal. Wednesday, March 21, 12 Módosítható Prioritási sor Binomiális kupaccal modosit(x,k) {! if (k>x.kulcs) {!! x.kulcs=k ;!! y=x!! z=x.apa ;!! while(z!=nil and y.kulcs

Részletesebben

2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)

2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont) A Név: l 2017.04.06 Neptun kód: Gyakorlat vezet : HG BP l 1. Az A vektor tartalmát az alábbi KUPACOL eljárással rendezzük át maximum kupaccá. A={28, 87, 96, 65, 55, 32, 51, 69} Mi lesz az értéke az A vektor

Részletesebben

A félév során előkerülő témakörök

A félév során előkerülő témakörök A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok

Részletesebben

OKTV 2006/2007. Informatika II. kategória döntő forduló Feladatlap

OKTV 2006/2007. Informatika II. kategória döntő forduló Feladatlap Feladatlap Kedves Versenyző! A megoldások értékelésénél csak a programok futási eredményeit vesszük tekintetbe. Ezért igen fontos a specifikáció pontos betartása. Ha például a feladat szövege adatok valamilyen

Részletesebben

A számítástudomány alapjai

A számítástudomány alapjai A számítástudomány alapjai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Legszélesebb utak Katona Gyula Y. (BME SZIT) A számítástudomány

Részletesebben

1. ábra. Egy rekurzív preorder bejárás. Egy másik rekurzív preorder bejárás

1. ábra. Egy rekurzív preorder bejárás. Egy másik rekurzív preorder bejárás Preorder ejárás Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban lévő adatokra.

Részletesebben

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)}

Melykeres(G) for(u in V) {szin(u):=feher Apa(u):=0} for(u in V) {if szin(u)=feher then MBejar(u)} Példa Adott egy sziget ahol 42 kaméleon lakik. A kaméleonok három színt vehetnek fel piros, kék és zöld. Ha két különböző színű kaméleon találkozik, akkor megijednek és mindkettő átváltoztatja a színét

Részletesebben

Diszkrét matematika 2.

Diszkrét matematika 2. Diszkrét matematika 2. Mérai László előadása alapján Készítette: Nagy Krisztián 1. előadás Gráfok halmaza, gráf, ahol a csúcsok halmaza, az élek illesztkedés reláció: illesztkedik az élre, ha ( -él illesztkedik

Részletesebben

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus Csíkszereda IRT-. kurzus 3. Előadás: A mohó algoritmus 1 Csíkszereda IRT. kurzus Bevezetés Az eddig tanult algoritmus tipúsok nem alkalmazhatók: A valós problémák nem tiszta klasszikus problémák A problémák

Részletesebben

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007 Hálózatok II 2007 1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok 1 Az előadáshoz Előadás: Szerda 17:00 18:30 Gyakorlat: nincs Vizsga írásbeli Honlap: http://people.inf.elte.hu/lukovszki/courses/g/07nwii

Részletesebben

Í Ó É É É É Ó Ó ú ú Ó Ő Í Ó Ö Ó

Í Ó É É É É Ó Ó ú ú Ó Ő Í Ó Ö Ó ÍÍ Ó É Ó Ó ú Ó Ó Ó ú Ó É Í Ó É É É É Ó Ó ú ú Ó Ő Í Ó Ö Ó É ú Ö Ö Ó É Ó ú ú Á Ó Í Ó Á Ő Ó Ó ú Ó Ó Ó Ó Ó Ó ú Ó Í Í Ó Ő É Ó ú Ő Ő É Ó Ö Ó Ó Ó É Ó Ó É Ú Í Ö ú ú Ö Ö Ó ú ú Ó Ó Ó Ó Ó Ó Í Ó ú Ú Ó ú Í Ó Ó Ó Ó

Részletesebben

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Algoritmusok helyességének bizonyítása. A Floyd-módszer Algoritmusok helyességének bizonyítása A Floyd-módszer Algoritmusok végrehajtása Egy A algoritmus esetében a változókat három változótípusról beszélhetünk, melyeket az X, Y és Z vektorokba csoportosítjuk

Részletesebben

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem A számítástudomány alapjai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Bináris keresőfa, kupac Katona Gyula Y. (BME SZIT) A számítástudomány

Részletesebben

Algoritmusok és adatszerkezetek II.

Algoritmusok és adatszerkezetek II. Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 5. Vágható-egyesíthető Halmaz adattípus megvalósítása önszervező

Részletesebben

2016, Diszkrét matematika

2016, Diszkrét matematika Diszkrét matematika 2. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2016, őszi félév Miről volt szó az elmúlt előadáson? Követelmények,

Részletesebben

ü É ö É É ö ö ö ü ö ö Á ű ö ű ű ű Á Í ö ö Ó ö

ü É ö É É ö ö ö ü ö ö Á ű ö ű ű ű Á Í ö ö Ó ö Ü É ű ü ü ö Í ü ö ö ü ű Í Í ü ű ö Ö ö ö ö Í ü ü É ö É É ö ö ö ü ö ö Á ű ö ű ű ű Á Í ö ö Ó ö ü ü ü Í ü ö ö ö ö ö ö ö ü Í Í ű ö ö ö ü ü ö ü ö ö ö ü ö ö ö ö ü ü ű ü ö ö ö ü ö ü ű ö ü ö ö ű Í ü ü ű Í ö ü ö

Részletesebben

Í Ó ü ü í ü ü ü í Í í É í í Í Í ü ü ü í Í ü

Í Ó ü ü í ü ü ü í Í í É í í Í Í ü ü ü í Í ü É Á í É Á Á ü Ú ű í Í Í Ü ü ú ü Í ü ü ü ü Í ü Í í ü ü ü ü ü ü ü ü ü í Í Ó ü ü í ü ü ü í Í í É í í Í Í ü ü ü í Í ü Í Ó Í Ó ü ü ü Í ü ü É ü ü ü ü ü É ü ü Í ü ü ü Í Ó Í Ó í Á í É ü í Í ü í Í í í ü ü É ü ü

Részletesebben

Í Ú É ő ő ú ö Ö ú ú ú ö ö ú ö ö ű ö ő ö ö ú ö ő ő ö ö ö ő ő ú ő ú ö ö ö ú ö ö ú ő ö ú ö ű ö ő Ó ő Á ö ő ö ö

Í Ú É ő ő ú ö Ö ú ú ú ö ö ú ö ö ű ö ő ö ö ú ö ő ő ö ö ö ő ő ú ő ú ö ö ö ú ö ö ú ő ö ú ö ű ö ő Ó ő Á ö ő ö ö ö ú ö ö ú ö ú Ü ő ú ő ö ő ő ő ö ö Í Ú É ő ő ú ö Ö ú ú ú ö ö ú ö ö ű ö ő ö ö ú ö ő ő ö ö ö ő ő ú ő ú ö ö ö ú ö ö ú ő ö ú ö ű ö ő Ó ő Á ö ő ö ö Ú ő ö ő ő ő ö ú ú ú ő ö ő ö ő ő ő ö ö ö ö ő ő ö ő ú ő ö ú ö

Részletesebben

Ü ű ö Á Ü ü ö ö

Ü ű ö Á Ü ü ö ö Í Í Ü Ú ö ú Ö Ü ű ö Á Ü ü ö ö ú ü ü ö ü ö ö ö ö Ü Ü ö ö ö ö ö ü ü ö ü Ü ö ú ü ö ü ö ű ö ű Ü ü ö É ö ü ü ö ö ö ö ö ö ö ö Ó ö Ü ü Ü ü ü ö ö ö ö ö ö ö ú ü ö ű ü ö ú ű Ü ö ö ö ü Ü Ü Ü ú ö ö ü ű ö ű ö Á Á Í

Részletesebben

ő ő Ű ü ú ú Ú ü ű ő ő ő ő Á Á Í ü É ő ő ő ő ő É ő ú ú ú ő Á Ö ő

ő ő Ű ü ú ú Ú ü ű ő ő ő ő Á Á Í ü É ő ő ő ő ő É ő ú ú ú ő Á Ö ő ő ő ű ú ő ü ü ü ü ü ő ő ü ü ü ü ü ü ü ü ü ő Ö ő ő ő ő ő Ű ü ú ú Ú ü ű ő ő ő ő Á Á Í ü É ő ő ő ő ő É ő ú ú ú ő Á Ö ő ő ű ő ú ü ú ő ő ő ő ő ő ő ő ő ő ő É ü ű ő ü Á ő ú ű ű ő ő ő É ü ű ő ő ő ű ú ü ú ő ő ő

Részletesebben

ú ú ü ü Á ú ú ü ű ű ú ü ü ü ü

ú ú ü ü Á ú ú ü ű ű ú ü ü ü ü ü ü ü ú ú ü ű ü ű ü ü ű ü ü ü Í ú ú ü ü Á ú ú ü ű ű ú ü ü ü ü ú ü ü Á ű ü ü ü ü ü ü ü ú ü ü Í ú ü É Ö Ö ú Ö Ö Ö ú ú ü ú Á Ö Á ú É ü ú ú É ú ú ú Ü ü ű ú ű É ú ű ü ü Á ú É ü ű ü ú Á É É ú ü Ö Ö Ö ú ú Á Ö

Részletesebben

í Ó ó ó í ó ó ó ő í ó ó ó ó

í Ó ó ó í ó ó ó ő í ó ó ó ó í Ú Á Í í Ó ó ó í ó ó ó ő í ó ó ó ó í Ó Ó í ő ó Í í í í Ó í ó í í Ő É Ú Ű Í É Á ó Á É É ó ó í É Ü Í ő í ó í ó í Ő Ő Á Ó Ó Á É É Á Á É É Ő Á Ú É í ó Á í Á í í ő í í Ő Ő É Ú Ű Í É Á ó Á É Ö Í Í É ó ó í Ú

Részletesebben

Í Í Í Ü Ó Ó Ö Á Ü Ü Ó Ü Ü Ó Ö Í É Ö

Í Í Í Ü Ó Ó Ö Á Ü Ü Ó Ü Ü Ó Ö Í É Ö Ö É Ö Í Í Í Ü Ó Ó Ö Á Ü Ü Ó Ü Ü Ó Ö Í É Ö Ü Ü Á É Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ú Í É Ó Á Ü Á É Á Ü Í Í Í Í Ü Í Í Í Í Í É Ö Á Í Á Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Ü Í Í É Í Í É É Í Í Í É Í Ü Í Ü Á Ü Ü

Részletesebben

É ő ő ű ú Á ő Á ő ű ő ő ő ő ő ő ő ő ű ú ű ű ő ő ő ű

É ő ő ű ú Á ő Á ő ű ő ő ő ő ő ő ő ő ű ú ű ű ő ő ő ű ő ő ű ú Á ő ű ő ő ő ő Ö Ö Í Á É Á ő Ö Ö Í ő ő ő ő É ő ő ú ú ú ő Á Ö É ő ő ű ú Á ő Á ő ű ő ő ő ő ő ő ő ő ű ú ű ű ő ő ő ű ő ű ő ú Á ő ű ő ő ő ő ő ő Ö ő ú ú Ö ő ő ű ú Á ő ú Ó ű Ó ú ú ú ő ő ú ú ő ő ú ő Ú ú

Részletesebben

ő ő ő ő ú É ü ú ú ű ú ű ő ő ő ő Á Á ü ő É É É É É É Á Ú Á Á ő ő ő ő ő É Á Á Á ő ő ő Á ü ő ő ü

ő ő ő ő ú É ü ú ú ű ú ű ő ő ő ő Á Á ü ő É É É É É É Á Ú Á Á ő ő ő ő ő É Á Á Á ő ő ő Á ü ő ő ü ő É ő ő ő ő É Ü Ö Ö Ö Í Ö Ö Ö ő Ó Ó Ö Ö Á É É É ő Á É Á Á Ú Á Ú Ö Ö Á Ú Ö Á ű Á ú ő ő ü ü Ó ő ő ő ő ú É ü ú ú ű ú ű ő ő ő ő Á Á ü ő É É É É É É Á Ú Á Á ő ő ő ő ő É Á Á Á ő ő ő Á ü ő ő ü ő ő ő ő Á ü ú ú

Részletesebben

É Í Á Á É Ü Ó É É É É Í Ó Ó Ő Á Á É Á É É É É Á É É Á Á É É Á É Í

É Í Á Á É Ü Ó É É É É Í Ó Ó Ő Á Á É Á É É É É Á É É Á Á É É Á É Í Í É Í Á Á É Ü Ó É É É É Í Ó Ó Ő Á Á É Á É É É É Á É É Á Á É É Á É Í É Á É Í Í É É Í Í Í Á Í Á Á ö ó ö ö ő ő ő ö ö ó ő ű ö ö ö ö ü ö ö ö ü ü ó ö Á ó ó ö ö ő ő ő ő ö ó ü ó ó ó ó ó ó ö ü ü ó ö Ó Í Í É É

Részletesebben

ü ö ú ö ú ü ö ü Á Ó ö ö ö ö ú ü ú ü ü ú ú ö ö ü ü ú ü ü ö ö ű ö ü ü ü ü ö ö

ü ö ú ö ú ü ö ü Á Ó ö ö ö ö ú ü ú ü ü ú ú ö ö ü ü ú ü ü ö ö ű ö ü ü ü ü ö ö Í Á Ö Ú Á Á Ó Á ö ú ú ö ú ú ö ü ü ű ü ű ö ö ü ű ö ü ö ú ö ü ú ö ö ü ü ö ü ű ö ö ü ű ö ö ú ö ö ú ú ü ö ú ö ú ü ö ü Á Ó ö ö ö ö ú ü ú ü ü ú ú ö ö ü ü ú ü ü ö ö ű ö ü ü ü ü ö ö ü ö ü ö ö ü ö ö ú ö ü ű ö ü

Részletesebben

Ü

Ü Ó Á ú Á É Ü Ö Ö Ö É É É Ö É Ü Ö É É É É É Ó Ö Ó Í Ö Ö Ö Ö Í Ö Ö É É É Í Ö Ö É Ö Í Á Ó Í Á É É Ó É Ú Á Í É É É Ö Ö Ó Ö Ö Ö Ö Ó Ó Ó Í Ü Ö É É Ö Ó Ö Ó ö Ö Ö Ö Ö Ö Ó Ü Ö Ó É ű É É É É É É É É Í Ö Ó Ö É Ö Ö

Részletesebben

Ö Ö Ú Ó Ö ű Ő Ő ű ű Ü Ő Ó Ő

Ö Ö Ú Ó Ö ű Ő Ő ű ű Ü Ő Ó Ő ű É ű ű É Ö Ö Ú Ó Ö ű Ő Ő ű ű Ü Ő Ó Ő É Ó Ó É ű Ö ű Ö ű ű ű Ú Ú Ö ű ű ű Ö ű ű ű ű ű ű ű ű Ú É É É É Ö Ö Ú Ö É ű ű ű ű ű ű ű Ó ű Ö Ö ű ű ű É ű ű ű ű ű ű ű ű ű É ű ű ű ű ű ű ű ű ű ű Ö ű ű ű Ü ű ű ű ű Ö ű

Részletesebben