Neumann János Tehetséggondozó Program Gráfalgoritmusok II.
|
|
- Viktória Kozma
- 8 évvel ezelőtt
- Látták:
Átírás
1 Neumann János Tehetséggondozó Program Gráfalgoritmusok II. Horváth Gyula
2 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 minden t > 0-ra és minden q S(t) van olyan p S(t 1), hogy (p,q) E Fordítva, ha p S(t 1) és (p,q) E, akkor D(q) t + 1, hiszen van t + 1 hosszú út r-ből q-ba, mert van t hosszú (legrövidebb) út r-ből p-be és van él p-ből q-ba: r p q. Tehát az S(t) halmaz előállítható az S(t 1) halmazból Szélességi bejárás Bemenet: G = (V,E) (irányított vagy irányítatlan) gráf és egy r V pont. Kiszámítandó minden p pontra az r-ből p-be vezető legrövidebb út hossza, és legrövidebb út. 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} Az F gráf a G gráf r-gyökerű legrövidebb utak feszítőfája (LUF) Elvi algoritmus Legyen G = (V, E) terszőleges irányított, vagy irányítatlan gráf. Jelölje S(t) azon p pontok halmazát, amelyek t távolsára vannak r-től. S(t) = {p V : δ(r, p) = t}
3 In f := V ; //pontok száma for p V do D(p) := In f ; D(r) := 0; S := {r}; repeat St := /0; for p S do begin for q KiEl(p) do // minden p q élre if D(q) = In f then begin //q benemjárt D(q) := D(p) + 1; Apa(q) := p; //p-ből megyünk q-ba St := St + {q}; end; end; S := St; until S <> /0 ;
4 A szélességi bejárás megvalósítása Pascal nyelven 1 procedure SzeltBejar ( r : PontTip ; N: longint ; const G: Graf ; 2 var D: array of longint ; var Apa: array of longint ) ; 3 / / r ből induló legrövidebb utak meghatározása 4 var 5 S: Sor ; 6 p, q : PontTip ; i : integer ; 7 begin { SzeltBejar } 8 for p:=1 to N do D[ p ] : = I n f ; { i n i c i a l i z á l á s } 9 D[ r ] : = 0 ; Apa[ r ] : = 0 ; 0 Letesit (S ) ; 1 Sorba (S, r ) ; 2 while Elemszam( S) >0 do begin 3 p:= SorBol (S ) ; 4 for i :=1 To KiFok [ p ] Do Begin { p >q élre } 5 q:=g[ p, i ] ; 6 i f D[ q]= I n f then begin { ha q meg nem e l é r t } 7 Apa[ q ] : = p ; 8 D[ q ] : =D[ p]+1; 9 Sorba (S, q ) ; 0 end ; 1 end{ for p >q} ; 2 end{ while } ; 3 end{ SzeltBejar } ;
5 Egy legrövidebb út kiíratása 1 procedure UtKiIro ( r, p : PontTip ) ; 2 / / Globalis : Apa 3 var u, i : longint ; 4 Ut : array [ 1.. maxp] of longint ; 5 begin 6 u:=0; 7 while p<> r do begin 8 inc ( u ) ; 9 Ut [ u ] : = p ; 0 p:=apa[ p ] ; 1 end ; 2 write ( r ) ; 3 f o r i :=u downto 1 do begin 4 write ( >, Ut [ i ] ) ; 5 end ; writeln ( ) ; 6 end ;
6 2. Feladat: Szállítási feladat Egy nagyvállalat n városban üzemeltet gyárat, a gyártmányokat k városban telepített raktárban tárolja. Minden városból olyan raktárba kell szállítani a gyártmányokat, amely útvonal a lehető legkevesebb városon halad át. Adjunk olyan algoritmust, amely minden városra meghatározza a hozzá legközelebbi raktárt! Bemenet A standard bemenet első sora három egész számot tartalmaz, a városok n számát (1 n 20000), a raktárak k számát (1 k n), és a városok közötti közvetlen utak m (1 m ) számát. A következő m sor mindegyike két egész számot tartalmaz, egy-egy olyan város sorszámát, amelyek között van közvetlen kétirányú út. Kimenet A standard kimenet pontosan n sort tartalmazzon. Az i-edik sor az i-edik városba vezető legrövidebb raktárba vezető utat adja meg. Ha valamely városból nincs út raktárba, akkor a -1 számot kell kiírni a sorba. Több megoldás esetén bármelyik megadható.
7 Példa bemenet és kimenet bemenet kimenet Legyen S(0) a raktárak sorszámait tartalmazó halmaz. S(t) = {p V : ( q S(t 1))(q p E)}
8 1 procedure SzeltBejar (N: integer ; const G: Graf ; K: integer ;R: array integer ; 2 var Apa: array of integer ) ; 3 var 4 S: Sor ; 5 p, q : PontTip ; i : integer ; 6 begin { SzeltBejar } 7 for p:=1 to N do Apa[ p]:= 1; { i n i c i a l i z á l á s } 8 Letesit (S ) ; 9 for i :=1 to K do begin 0 Sorba (S,R[ i ] ) ; Apa[R[ i ] ] : = 0 ; 1 end ; 2 while Elemszam( S) >0 do begin 3 p:= SorBol (S ) ; 4 for i :=1 To KiFok [ p ] Do Begin { p >q élre } 5 q:=g[ p, i ] ; 6 i f Apa[ q]= 1 then begin { ha q meg nem e l é r t } 7 Apa[ q ] : = p ; 8 Sorba (S, q ) ; 9 end ; 0 end{ for p >q} ; 1 end{ while } ; 2 end{ SzeltBejar } ;
9 3 begin 4 Beolvas (N,G,K,R) ; 5 SzeltBejar (N,G,K,R, Apa ) ; 6 for i :=1 to N do begin 7 i f Apa[ i ]= 1 then begin { nincs út i ből raktárba } 8 writeln ( 1); 9 continue ; 0 end ; 1 u:=0; p:= i ; 2 while p<>0 do begin 3 inc ( u ) ; 4 Ut [ u ] : = p ; 5 p:=apa[ p ] ; 6 end ; 7 for i :=u downto 1 do 8 write ( Ut [ i ], ) ; 9 writeln ( ) ; 0 end{ for i } ; 1 end ;
10 3. Feladat: Térképszínezés Az országban n régiót tartalmazó térképét kell kiszínezni két kölönböző színnel úgy, hogy bármely két szomszédos régió kölönböző színü legyen. Bemenet A standard bemenet első sora két egész számot tartalmaz, a régiók n számát (1 n 20000), és a szomszédos régiók m (1 m ) számát. A következő m sor mindegyike két különböző egész számot tartalmaz, egy-egy olyan régió sorszámát, amelyek szomszédosak. Kimenet A standard kimenet első és egyetlen sora azon régiók sorszámait tartalmazza (egy-egy szóközzel elválasztva), amelyek az egyik színnel lesznek színezve. Ha nincs megoldás, akkor az első sor a -1 számot tartalmazza. Több megoldás esetén bármelyik megadható.
11 Példa bemenet és kimenet bemenet kimenet A probléma gráfmodellje: tekintsük azt a G = (V,E) irányítatlan gráfot, amelynek pontjai a régiók, és két pont között pontosan akkor van él, ha a két régió szomszédos. Az nyilvánvaló, hogy akkor és csak akkor van megoldás, ha a V ponthalmaz felbontható két olyan A és B diszjunkt részhalmazra, hogy A B = /0 és V = A B ( (p,q) E)(p A és q B vagy p B és q A)
12 1 type 2 Paletta =( Feher, Piros, Kek ) ; 3 var 4 Szin : array [ 1.. maxp] of Paletta ; 5 Apa: array [ 1.. maxp] of integer ; 6 p, q, i, j : integer ; 7 S: Sor ; 8 Van: boolean ; 9 begin 0 Beolvas ; 1 for p:=1 to N do 2 Szin [ p ] : = Feher ; 3 Van:= true ; 4 Letesit (S ) ;
13 5 for i := 1 to N do 6 i f Szin [ i ]= Feher then begin 7 Szin [ i ] : = Piros ; Sorba (S, i ) ; 8 while Elemszam( S) >0 do begin 9 p:= SorBol (S ) ; 0 for j :=1 to KiFok [ p ] do begin 1 q:=g[ p, j ] ; 2 i f Szin [ p]= Szin [ q ] then begin 3 Van:= false ; break ; 4 end ; 5 i f Szin [ q]= Feher then begin 6 i f Szin [ p]= Piros then 7 Szin [ q ] : = Kek 8 else 9 Szin [ q ] : = Piros ; 0 Sorba (S, q ) ; 1 end ; 2 end ; 3 i f not Van then break ; 4 end{ while } ; 5 end{ for i } ;
14 6 i f not Van then begin 7 writeln ( 1); 8 end else begin 9 for p:=1 to N do 0 i f Szin [ p]= Piros then 1 write ( p, ) ; 2 writeln ; 3 end ; 4 end.
15 4. Feladat: Adott ponton átmenő legrövidebb kör Adott G = (V,E) irányítatlan gráf és egy r pontja. Számítsuk ki az r ponton átmenő legrövidebb kört (ha van ilyen). 1 const 2 I n f =maxp; 3 var 4 Szin : array [ 1.. maxp] of Paletta ; 5 D, Apa, Os, Ut : array [ 1.. maxp] of integer ; 6 p, q, i, j : integer ; 7 S: Sor ; 8 p1, p2, mink : integer ;
16 9 begin 0 Beolvas ; 1 for p:=1 to N do 2 D[ p ] : = I n f ; 3 mink:= I n f ; 4 p1 :=0; 5 Letesit (S ) ; 6 Sorba (S,R) ; 7 while Elemszam( S) >0 do begin 8 p:= SorBol (S ) ; 9 for i :=1 to KiFok [ p ] do begin 0 q:=g[ p, i ] ; 1 i f D[ q]= I n f then begin 2 D[ q ] : =D[ p]+1; 3 Apa[ q ] : = p ; 4 i f p=r then 5 Os[ q ] : = q 6 else 7 Os[ q ] : =Os[ p ] ; 8 Sorba (S, q ) ; 9 end else i f (Os[ p]<>os[ q ] ) and (D[ p]+d[ q] <mink ) then begin 0 p1:=p ; p2:=q ; 1 mink:=d[ p]+d[ q ] ; 2 end ; 3 end ;
17 4 end{ while } ;
18 5 i f p1=0 then 6 writeln ( 1) 7 else begin 8 i :=0; 9 while Apa[ p1]<>0 do begin 0 inc ( i ) ; 1 Ut [ i ] : = p1 ; 2 p1:=apa[ p1 ] ; 3 end ; 4 for i := i downto 1 do 5 write ( Ut [ i ], ) ; 6 while (Apa[ p2] >0) do begin 7 write ( p2 ) ; 8 p2:=apa[ p2 ] ; 9 end ; 0 writeln ( ) ; 1 end ; 2 end.
19 5. A mélységi bejárás alkalmazásai.
20 6. Feladat: Iskolahálózat (IOI 96) 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 ("címzett iskolákró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 A bementi állomány első sora egy egész számot, a hálózatba kapcsolt iskolák n számát tartalmazza (2 n 100). 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 + 1-edik 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 kimenti állomány első sorába azt a legkisebb m számot kell írni, 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 sor pontosan m egész számot tartalmazzon egy-egy szóközzel elválasztva, azon iskolák sorszámait, ahova kezdetben el kell juttatni az új programot. Egy elvi megoldás Jelölje G = (V,E); V = {1,...,n} az iskolahálózat gráfját.
21 Legyen D V egy megoldáshalmaz, tehát Az Eler(p) halmaz elemei mélységi bejárással kiszámíthatók. Az algoritmus futási ideje legrosszabb esetben O(n 3 ). Az algoritmus legrosszabb esete, ha a bemenetben p szomszédai: {1,2,..., p 1}. Ha n 1000 is lehet, akkor ez az algoritmus biztosan nem elég gyors megoldás. ( 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
22 ábra.
23 ábra.
24 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. 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)
25 1 Const 2 MaxP=1000; { a pontok max. sz ma } 3 Type 4 PontTip = 1..MaxP; 5 GrafTip=???; 6 Paletta =( Feher, Szurke, Fekete, Piros ) ; 7 Var 8 N, u,m, p : Word; { a pontok száma} 9 G: GrafTip ; 0 Szin : Array [ PontTip ] Of Paletta ; 1 T,D : Array [ PontTip ] Of Word; 2 Procedure Beolvas ; Begin End;
26 3 Procedure MelyBejar1 ( p : PontTip ) ; 4 { Global : G, Szin, u, T} 5 Var 6 q : PontTip ; 7 Begin { MelyBejar1 } 8 Szin [ p ] : = Szurke ; 9 For q In Ki (G, p ) Do { a p >q é l e t vizsgáljuk } 0 I f Szin [ q]= Feher Then { q még nem é r i n t e t t pont } 1 MelyBejar1 (P ) ; 2 Szin [ p ] : = Fekete ; 3 T [ u ] : = p ; 4 u:=u 1; 5 End{ MelyBejar1 } ; 6 7 Procedure MelyBejar2 ( p : PontTip ) ; 8 { Global : G, Szin } 9 Var 0 q : PontTip ; 1 Begin { MelyBejar2 } 2 Szin [ p ] : = Piros ; 3 For q In Ki (G, p ) Do { a p >q é l e t vizsgáljuk } 4 I f Szin [ q]= Fekete Then { q még nem é r i n t e t t pont } 5 MelyBejar2 (P ) ; 6 End{ MelyBejar2 } ;
27 7 Begin 8 Beolvas ; 9 For p:=1 To N Do 0 Szin [ p ] : = Feher ; 1 u:=n; 2 For p:=1 To N Do 3 I f Szin [ p]= Feher Then 4 MelyBejar1 ( p ) ; 5 M: = 0; { a megoldáshalmaz elemszáma} 6 f o r u:=1 to N do begin 7 p:=t [ u ] ; 8 i f Szin [ p]= Fekete then begin 9 inc (M) ; 0 D[M] : = p ; {p f e l v é t e l e a dominátorba } 1 MelyBejar2 ( p ) ; 2 end ; 3 end ; 4 writeln (M) ; { a megoldás dominátor k i í r a t á s a } 5 for u:=1 to M do 6 write (D[ u ], ) ; writeln ; 7 End.
28 7. Feladat: Minimálisan hány élet kell hozzáadni egy G irányított gráfhoz, hogy legyen olyan pontja, amelyből bármely másik elérhető?
29 8. Feladat: Összefüggő hálózat Egy számítógépes hálózat csomópontokból és csomópont párokat összekötő egyirányú kommunikációt biztosító vonalakból épúl fel. A hálózatot úgy tervezték, hogy bármely két csomópont között van átvitelt biztosító útvonal mindkét irányban. A hálózat két csomópontja közötti vonal meghibásodott. Adjunk meg két csomópont közötti új vonalat, amely biztosítja, hogy a hálózat ismét összefüggő legyen.
30 9. Feladat: Irányított gráf nem körben lévő pontjai Adott G = (V, E) irányított gráfra számítsuk ki az összes olyan pontját, amely nincs benne egyetlen körben sem. 1 Const 2 MaxP=1000; { a pontok max. száma } 3 Type 4 PontTip = 1..MaxP; 5 GrafTip=word ; 6 Paletta =( Feher, Szurke, Fekete, Piros ) ; 7 Var 8 N, u,m, p : Word; 9 G,GT: GrafTip ; 0 Szin : Array [ PontTip ] Of Paletta ; 1 T,ESzam : Array [ PontTip ] Of Word; 2 Procedure Beolvas ; Begin 3 { E l ő á l l í t j a a GT transzponált gráfot is } 4 End;
31 5 Procedure MelyBejar1 ( p : PontTip ) ; 6 { Global : G, Szin, T} 7 Var 8 q : PontTip ; 9 Begin { MelyBejar } 0 Szin [ p ] : = Szurke ; 1 For q In Ki (G, p ) Do { a p >q é l e t vizsgáljuk } 2 I f Szin [ q]= Feher Then { q még nem é r i n t e t t pont } 3 MelyBejar1 (P ) ; 4 Szin [ p ] : = Fekete ; 5 T [ u ] : = p ; 6 u:=u 1; 7 End{ MelyBejar1 } ; 8 9 Procedure MelyBejar2 ( os, p : PontTip ) ; 0 { Global : GT, Szin } 1 Var 2 q : PontTip ; 3 Begin { MelyBejar } 4 Szin [ p ] : = Piros ; 5 inc (ESzam[ os ] ) ; 6 For q In Ki (GT, p ) Do { a p >q é l e t vizsgáljuk } 7 I f Szin [ q]= Fekete Then { q még nem é r i n t e t t pont } 8 MelyBejar2 ( os, P ) ; 9 End{ MelyBejar2 } ;
32 0 Begin 1 Beolvas ; 2 For p:=1 To N Do begin 3 Szin [ p ] : = Feher ; 4 ESzam[ p ] : = 0 ; 5 end ; 6 u:=n; 7 For p:=1 To N Do 8 I f Szin [ p]= Feher Then 9 MelyBejar1 ( p ) ; 0 M:=0; 1 f o r u:=1 to N do begin 2 p:=t [ u ] ; 3 i f Szin [ p]= Fekete then 4 MelyBejar2 ( p, p ) ; 5 end ; 6 7 for p:=1 to N do 8 i f ESzam[ p]=1 then 9 write ( p, ) ; writeln ; 0 End.
33 10. Feladat: Irányítatlan gráf nem körben lévő pontjai Adott G = (V, E) irányítatalan gráfra számítsuk ki az összes olyan pontját, amely nincs benne egyetlen körben sem. 1 Procedure MelyBejar ( p : PontTip ) ; 2 { Global : G, Szin, Apa, Korben} 3 Var 4 q, r : PontTip ; 5 Begin { MelyBejar } 6 Szin [ p ] : = Szurke ; 7 For q In Ki (G, p ) Do { a p >q é l e t vizsgáljuk } 8 I f Szin [ q]= Feher Then Begin { q még nem é r i n t e t t pont } 9 Apa[ q ] : = p ; 0 MelyBejar (P ) ; 1 End Else I f (Apa[ p]<>q ) and ( Szin [ q]= Szurke ) Then Begin 2 r :=p ; 3 While r <>q Do Begin 4 Korben [ r ] : = true ; 5 r :=Apa[ r ] ; 6 End; 7 Korben [ q ] : = True ; 8 End{ while } ; 9 Szin [ p ] : = Fekete ; 0 End{ MelyBejar } ;
34 1 Begin 2 Beolvas ; 3 For p:=1 To N Do Begin 4 Szin [ p ] : = Feher ; 5 Korben [ p ] : = False ; 6 End; 7 For p:=1 To N Do 8 I f Szin [ p]= Feher Then 9 MelyBejar ( p ) ; 0 1 for p:=1 to N do 2 i f not Korben [ p ] then 3 write ( p, ) ; writeln ; 4 End. Megjegyezzük, hogy a fenti algoritmus nem hatékony, legrosszabb esetben a pontok számával négyzetesen arányos a futási idő. Van olyan módszer, amely az élek számával arányos futási időt ad.
35 11. Legrövidebb utak minden pontpárra (Floyd-Warshall algoritmus) Input: G = (V,E,c) irányított súlyozott gráf; c : E R + Output:Minden u,v pontpárra δ(u,v) és egy u v legrövidebb út. Megoldás dinamikus programozás módszerével. Tfh. V = 1..n és c(i, j) =, ha (i, j) / E, azaz G[i, j] = c(i, j) és G[i,i] = 0,i = 1,,n Részproblémákra bontás: i, j {1,...,n}-ra és k {0,1,,n}-re D k (i, j) = az i-ből j-be vezető olyan utak hosszának minimuma, amelyek legfeljebb az {1,,k} (belső) pontokon mennek keresztül. D n (i, j) = δ(i, j)
36 Rekurzív összefüggés a részproblémák között. D 0 (i, j) = G[i, j] D k (i, j) = Min{D k 1 (i, j),d k 1 (i,k) + D k 1 (k, j)} k > 0 D[i, j] helyben számolása; egy D tömbben. p1 k p2 i p j 3. ábra. p : i j az {1..k-1} pontokon át haladó út, p 1 : i k, p 2 : k j {1..k-1} pontokon át haladó legrövidebb út. A k-adik iterációban felülírt elemek: D k 1 (i,k) és D k 1 (k, j). De D k (i,k) = Min{D k 1 (i,k),d k 1 (i,k) + D k 1 (k,k)} = D k 1 (i,k)
37 1 for i :=1 to N do 2 for i :=1 to N do begin 3 D[ i, j ] : =G[ i, j ] ; 4 Elso [ i, j ] : = j ; 5 end ; 6 for k:=1 to N do 7 for i :=1 to N do 8 for j :=1 to N do begin 9 Dikj :=D[ i, k]+d[ k, j ] ; 0 i f Dikj <D[ i, j ] then begin 1 D[ i, j ] : = Dikj ; 2 Elso [ i, j ] : = Elso [ i, k ] ; 3 end ; p-ből q-ba vezető legrövidebb út kiíratása: 1 i f D[ p, q]<> I n f then begin { van út p ből q ba} 2 repeat 3 write ( p, > ) ; 4 p:= Elso [ p, q ] ; 5 u n t i l p=q ; 6 w r i t e l ( q ) ; 7 end ;
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
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
Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu. Gráfos feladatok.. Feladat: Kiút keresés labirintusban. Egy négyzetrácsos hálózattal
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)
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
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
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
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
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-
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
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.
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
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
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
Rendezések. A föltöltés nemcsak az r-re vonatkozik, hanem az s-re is. Ez használható föl a további rendezések
Rendezések Feladat Rendezési algoritmusok kipróbálása, hatékonysági viselkedésének vizsgálata. A rendezések egy ElemSzam méretü r tömben történik. Többféle föltöltés közül lehet választani: o a növekvően
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
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.
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
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.
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
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
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
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.
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.
Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.
Algoritmuselmélet Legrövidebb utak, Bellmann-Ford, Dijkstra Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 3. előadás Katona Gyula Y. (BME
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
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
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
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
Programozási módszertan. Mohó algoritmusok
PM-08 p. 1/17 Programozási módszertan Mohó algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-08 p. 2/17 Bevezetés Dinamikus programozá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.
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
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
A 2017/2018 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai. INFORMATIKA II. (programozás) kategória
Oktatási Hivatal A 217/218 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai 1. feladat: Csatornák (24 pont) INFORMATIKA II. (programozás) kategória Egy város csomópontjait csatornahálózat
BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe:
BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli A versenyzők figyelmébe: 1. A tömböket 1-től kezdődően indexeljük. 2. A rácstesztekre
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
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
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
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
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,
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
6. A Pascal nyelv utasításai
6. A Pascal nyelv utasításai Írjunk programot, amely beolvas két valós számot és a két szám közül a kisebbikkel osztja a nagyobbikat! (felt0) program felt0; szam1, szam2, eredmeny : real; writeln('kérek
... 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
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
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,
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ó
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
<... < s n. Írjuk le a megoldási módszert, és adjunk meg egy megjegyzésekkel ellátott Pascal-programot. A bemeneti adatokat helyesnek tekintjük.
Informatika felvételi feladatok - megoldásokkal A kolozsvári Babes-Bolyai Tudományegyetem Matematika és Informatika Karán először az idén lehetett informatikából felvételizni. Az új felvételi rendszer
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
Í Ó É É É É Ó Ó ú ú Ó Ő Í Ó Ö Ó
ÍÍ Ó É Ó Ó ú Ó Ó Ó ú Ó É Í Ó É É É É Ó Ó ú ú Ó Ő Í Ó Ö Ó É ú Ö Ö Ó É Ó ú ú Á Ó Í Ó Á Ő Ó Ó ú Ó Ó Ó Ó Ó Ó ú Ó Í Í Ó Ő É Ó ú Ő Ő É Ó Ö Ó Ó Ó É Ó Ó É Ú Í Ö ú ú Ö Ö Ó ú ú Ó Ó Ó Ó Ó Ó Í Ó ú Ú Ó ú Í Ó Ó Ó Ó
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
Algoritmusok bonyolultsága
Algoritmusok bonyolultsága 9. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm 1 / 18 Közelítő algoritmusok ládapakolás (bin packing) Adott n tárgy (s i tömeggel) és végtelen sok 1 kapacitású láda
Érdekes informatika feladatok
K. L. Érdekes informatika feladatok XXVIII. rész A konvex burkoló (burok) Legyen S a Z sík egy ponthalmaza. S konvex, ha tetszőleges A, B S-beli pont esetén az AB szakasz is S-be esik. Legyen S a Z sík
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
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
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
Gráf csúcsainak színezése. The Four-Color Theorem 4 szín tétel Appel és Haken bebizonyították, hogy minden térkép legfeljebb 4 színnel kiszínezhető.
Gráf csúcsainak színezése Kromatikus szám 2018. Április 18. χ(g) az ún. kromatikus szám az a szám, ahány szín kell a G gráf csúcsainak olyan kiszínezéséhez, hogy a szomszédok más színűek legyenek. 2 The
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,...,
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
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:
Algoritmusok - pszeudókód... 1
Tartalomjegyzék Algoritmusok - pszeudókód... 1 Abszolút érték... 1 Hányados ismételt kivonással... 1 Legnagyobb közös osztó... 1 Páros számok szűrése... 2 Palindrom számok... 2 Orosz szorzás... 2 Minimum
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
I. Egydimenziós tömb elemeinek rendezése
I. Egydimenziós tömb elemeinek rendezése 1. Adott egy egész számokból álló sorozat. Rendezzük növekvő sorrendbe az elemeit! Buborékrendezés. A tömb elejétől a vége felé haladva összehasonlítjuk a szomszédos
Gráf-algoritmusok Legrövidebb utak
https://www.cs.princeton.edu/~rs/algsds07/15shortestpaths.pdf Gráf-algoritmusok Legrövidebb utak Sapientia-EMTE 2017-18 Typesetting in TeX Két pont között, akkor van él, ha közéjük 1 2 3 4 eső szó szekvencia
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)
AWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa
Geometriai algoritmusok
Geometriai algoritmusok Horváth Gyula horvath@inf.elte.hu Számos olyan gyakorlati számítási probléma van, amely megoldható olyan geometriai modellben, amelyben csak egyszerű objektumok, pontok, egyenesek,
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
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
Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben)
Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben) Felhasználói dokumentáció Feladat: Adjuk meg két N elemű vektor skalárszorzatát! Skalárszorzat : X, Y : N i 1 x i * y i Környezet: IBM
AWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás
Geometriai algoritmusok
Geometriai algoritmusok Horváth Gyula Szegedi Tudományegyetem Informatikai Tanszékcsoport horvath@inf.u-szeged.hu 2006. január 13. Számos olyan gyakorlati számítási probléma van, amely megoldható olyan
A feladat. A főprogram
A feladat A magyar kártya típusának megvalósítása. Tisztázandók: 1. Milyen műveletek értelmesek a típussal kapcsolatosan? 2. Hogyan ábrázolható a típus? 3. Miként valósíthatók meg a műveletek figyelembe
Tartalomjegyzék Algoritmusok - pszeudókód... 1 42
Tartalomjegyzék Algoritmusok - pszeudókód... 1 42 Abszolút érték...1 Hányados ismételt kivonással...1 Legnagyobb közös osztó... 1 2 Páros számok szűrése...2 Palindrom számok...2 Orosz szorzás...3 Minimum
Számláló rendezés. Példa
Alsó korlát rendezési algoritmusokra Minden olyan rendezési algoritmusnak a futását, amely elempárok egymással való összehasonlítása alapján működik leírja egy bináris döntési fa. Az algoritmus által a
A 2014/2015 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 2014/2015 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
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
BABEŞ-BOLYAI TUDOMÁNYEGYETEM MATEMATIKA-INFORMATIKA KAR Felvételi verseny - minta Informatika írásbeli
BABEŞ-BOLYAI TUDOMÁNYEGYETEM MATEMATIKA-INFORMATIKA KAR Felvételi verseny - minta Informatika írásbeli A versenyzők figyelmébe: 1. Minden tömböt 1-től kezdődően indexelünk. 2. A rácstesztekre (A rész)
Algoritmuselmélet 7. előadás
Algoritmuselmélet 7. 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 Március 11. ALGORITMUSELMÉLET 7. ELŐADÁS 1 Múltkori
Oktatási Hivatal. A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai. II. (programozás) kategória
Oktatási Hivatal A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai II. (programozás) kategória Kedves Versenyző! A megoldások értékelése automatikusan, online módon
Kupac adatszerkezet. 1. ábra.
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.
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
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
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ő
A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin
1 A PROGRAMOZÁS ALAPJAI 3 Készítette: Vénné Meskó Katalin Információk 2 Elérhetőség meskokatalin@tfkkefohu Fogadóóra: szerda 10:45-11:30 Számonkérés Időpontok Dec 19 9:00, Jan 05 9:00, Jan 18 9:00 egy
Amortizációs költségelemzés
Amortizációs költségelemzés Amennyiben műveleteknek egy M 1,...,M m sorozatának a futási idejét akarjuk meghatározni, akkor egy lehetőség, hogy külön-külön minden egyes művelet futási idejét kifejezzük
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)
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
Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat
Formális nyelvek a gyakorlatban Formális nyelvek, 1 gyakorlat Segédanyagok Célja: A programozási nyelvek szintaxisának leírására használatos eszközök, módszerek bemutatása Fogalmak: BNF, szabály, levezethető,
Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.
Összetett programozási tételek Sorozathoz sorozatot relő feladatokkal foglalkozunk. A bemenő sorozatot le kell másolni, s közben az elemekre vonatkozó átalakításokat lehet végezni rajta: Input : n N 0,
angolul: greedy algorithms, románul: algoritmi greedy
Mohó algoritmusok angolul: greedy algorithms, románul: algoritmi greedy 1. feladat. Gazdaságos telefonhálózat építése Bizonyos városok között lehet direkt telefonkapcsolatot kiépíteni, pl. x és y város
Fibonacci számok. Dinamikus programozással
Fibonacci számok Fibonacci 1202-ben vetette fel a kérdést: hány nyúlpár születik n év múlva, ha feltételezzük, hogy az első hónapban csak egyetlen újszülött nyúl-pár van; minden nyúlpár, amikor szaporodik
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
I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis
I. ALAPALGORITMUSOK 1. Prímszámvizsgálat Adott egy n természetes szám. Írjunk algoritmust, amely eldönti, hogy prímszám-e vagy sem! Egy számról úgy fogjuk eldönteni, hogy prímszám-e, hogy megvizsgáljuk,
ú ú ü ü ú ü Í ü ú ü ú ü ú ü ü ű ü ú ű Í ü ü ú ű ü ű ű ü ü ü ü ű ú Ú ú
ú É ú ü ú ü Í ü ú Ú ú ú ü ü ú ü Í ü ú ü ú ü ú ü ü ű ü ú ű Í ü ü ú ű ü ű ű ü ü ü ü ű ú Ú ú Í ú É Í Á Á Í É Á Á Á Í Á Ó Á Á É Á Á É É ű Á É É ú É É Á Á ú Á ü Á Á Á Á Ú É ü ú ú É É ú Ú Á Á É Á É Ó Ú ú Ú Í
ó ó ö é í ó Ö é é í ó ö é é ü é é ó ó ó é ö é é ú ó é í é é é é í é ő é é ő é é í é í é ó ú ó é ó ü ö Ö é Ő í ő ó é í ó ő í é ö ő é í ó é é ú ó é í é
ö ö é í ö é é ö é ő é ó ű ö é ü é ü é é ö é ő ó é ü ő ö ő ö ü é é ö é ő é é í ö ő ö é é ö é ő é ó ű ö é ü é ü é é ö é ő é é é é é é é őé é é é í ő ö ü é é ö é ő é é ő í ű ő ö í ö é ö é é é ö ö Ö ő é é
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
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á
Ó ö ű Ü Ó Ó Ö Ö Í Ó Ö Ú Ö Ű Ü Ö Ö ö Ü Ó Í ö Ü Í Ü Ú Ö Í Ó Ó Ó Ö Ö Á Ó Ü Ó Ó Ö Ó Ó Ó Ö Ö Í Ó Ö Ó Ó Ó É Ü ű Ó ú
Á É É É Ü Á Ü Ü ű Í Ó Ü ű Ó Í Ú Ü Ó ű ú Ü ű ö Ó ö ű ű Ó Ó Ó Ő ű Ó Ö ö Ó Ö Ü Í Ü Ó Ü Á Í Ó ü Ú Ó ű ú Ó úü Ó Ú ü Í ű Í Ő Ó Ó Ó Ó Ü ú Í Í Í Ó ö ű Ü Ó Ó Ö Ö Í Ó Ö Ú Ö Ű Ü Ö Ö ö Ü Ó Í ö Ü Í Ü Ú Ö Í Ó Ó Ó Ö
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