Gráfelméleti feladatok. c f



Hasonló dokumentumok
Feladatok, amelyek gráfokkal oldhatók meg 1) A königsbergi hidak problémája (Euler-féle probléma) a

Algoritmusok bonyolultsága

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

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

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány

graf 2007/11/20 16:16 page 1 #1 BABEŞ-BOLYAI TUDOMÁNYEGYETEM KOLOZSVÁR MATEMATIKAI ÉS INFORMATIKAI KAR Kása Zoltán Gráfalgoritmusok

Diszkrét matematika 2.C szakirány

Gráfelméleti alapfogalmak

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

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

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

Diszkrét matematika 2.

22. GRÁFOK ÁBRÁZOLÁSA

ELTE IK Esti képzés tavaszi félév. Tartalom

Euler tétel következménye 1:ha G összefüggő síkgráf és legalább 3 pontja van, akkor: e 3

angolul: greedy algorithms, románul: algoritmi greedy

Diszkrét matematika 2 (C) vizsgaanyag, 2012 tavasz

1. tétel - Gráfok alapfogalmai

Gráfalgoritmusok ismétlés ősz

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

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

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

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:

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

Diszkrét matematika 2.

SzA II. gyakorlat, szeptember 18.

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Diszkrét matematika 2.C szakirány

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.

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány

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

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

Adatszerkezetek 2. Dr. Iványi Péter

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:

Algoritmusok bonyolultsága

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

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.

Matematika. Számonkérés. Írásbeli vizsga januárban. 1. konzultáció. Irodalom

HAMILTON ÚT: minden csúcson PONTOSAN egyszer áthaladó út

III. Gráfok. 1. Irányítatlan gráfok:

Adatszerkezetek II. 1. előadás

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.

Algoritmuselmélet 7. előadás

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..

Gráfelméleti alapfogalmak-1

Gráfelméleti feladatok programozóknak

Diszkrét matematika 2.

HAMILTON KÖR: minden csúcson PONTOSAN egyszer áthaladó kör. Forrás: (

Algoritmuselmélet 18. előadás

I. VEKTOROK, MÁTRIXOK

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

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

24. tétel. Kombinatorika. A grá fok.

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

Algoritmuselmélet 1. előadás

Felvételi tematika INFORMATIKA

Diszkrét matematika II. gyakorlat

2. Visszalépéses keresés

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

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

Gráfelmélet jegyzet 2. előadás

Síkbarajzolható gráfok Április 26.

Építésikivitelezés-Vállalkozás / 2: Gráftechnikai alapfogalmak VÁLLALKOZÁS. javított háttöltés

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

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

Hálózatszámítási modellek

A számítástudomány alapjai

Permutáció n = 3 esetében: Eredmény: permutációk száma: P n = n! romámul: permutări, angolul: permutation

Javító és majdnem javító utak

Mátrixok, mátrixműveletek

Diszkrét Matematika GYAKORLAT, Levelező MSc hallgatók számára. 3. Feladatsor

DISZKRÉT MATEMATIKA 2

DISZKRÉT MATEMATIKA 2 KIDOLGOZOTT TÉTELSOR 1. RÉSZ

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

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:

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

Számítógép hálózatok, osztott rendszerek 2009

Vektorterek. =a gyakorlatokon megoldásra ajánlott

Alapfogalmak a Diszkrét matematika II. tárgyból

Amortizációs költségelemzés

Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

Gráfelméleti alapfogalmak

Mátrixok 2017 Mátrixok

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

1. Gráfmodellek. 1.1 Königsbergi hidak (Euler, 1736)

17. előadás: Vektorok a térben

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

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

1. Gráfelmélet alapfogalmai

Algoritmuselmélet 11. előadás

Analízis elo adások. Vajda István szeptember 10. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

Diszkrét Matematika MSc hallgatók számára 7. Előadás Párosítási tételek Előadó: Hajnal Péter Jegyzetelő: Kovácsházi Anna

Alapfogalmak II. Def.: Egy gráf összefüggő, ha bármely pontjából bármely pontjába eljuthatunk egy úton.

Bonyolultságelmélet gyakorlat 06 Gráfos visszavezetések II.

10. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: január 28.

Gráfok. Programozás II. előadás. Szénási Sándor.

Sali Attila Budapest Műszaki és Gazdaságtudományi Egyetem. I. B. 137/b március 16.

Átírás:

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, irányított csúcsok, irányított élek irányított séta irányított vonal irányított út (directed walk, drum) (directed trail, drum simplu) (directed path, drum elementar) 2

Gráfnak nevezzük a G = (V, E, G) rendezett hármast, ahol V csúcsok (vagy szögpontok esetleg pontok) nem üres halmaza, E élek halmaza, G : E V V. Ha G(e 1 ) = G(e 2 ), akkor e 1 és e 2 párhuzamos vagy többszörös élek. Ha G(e) = {a, a}, akkor az e él hurokél. Ha G(e) = {a, b}, akkor azt mondjuk, hogy az a és b csúcsokat az e él köti össze, a és b szomszédosak, az e él illeszkedik az a és b csúcsokra, az a és b csúcsok az e él végpontjai. 3

Az a és b csúcsokra illeszkedő (párhuzamos) élek halmaza: G 1 (a, b) = {e E G(e) = {a, b}}. Legyen x a G gráf egy csúcsa. Jelöljük N G (x)-szel vagy csak N(x)-szel az x-szel szomszédos csúcsok halmazát: vagy N G (x) = {y V (G) e E(G), G(e) = {x, y}} N G (x) = {y V (G) G 1 (x, y).} A G gráfban az x-hez illeszkedő élek (amelyek nem hurokélek) halmaza: I G (x) = {e E(G) y V (G), y x, G(e) = {x, y}} Az x-hez illeszkedő hurokélek halmaza: L G (x) = {e E(G) G(e) = {x, x}} 4

Az x csúcs fokszáma vagy foka, amelyet ϕ(x)-szel jelölünk, az x-hez illeszkedő élek száma (a hurokéleket kétszer számolva): ϕ(x) = I G (x) + 2 L G (x). Ha ϕ(x) = 0, akkor x izolált csúcs. Ha ϕ(x) = 1, akkor x levél. Egy többszörös éleket és hurokéleket nem tartalmazó gráfot egyszerű gráfnak nevezzük. Ha G egyszerű gráf, akkor G 1 (a, b) 1 tetszőleges a, b V csúcsokra, és G 1 (a, a) = tetszőleges a V csúcsra, tehát G(e) = {a, b} helyett egyszerűen írhatunk {a, b}-t, amely a megfelelő élt jelenti. Ekkor a gráf is jelölhető egyszerűbben: G = (V, E). 5

Egyszerű gráfban az x fokszáma vagy foka, amelynek jele szintén ϕ(x) vagy ϕ G (x), az N G (x) halamz elemszáma: ϕ(x) = N G (x). Példák. V (G 1 ) = {1, 2, 3, 4, 5}, E(G 1 ) = {e 1, e 2, e 3, e 4, e 5, e 6, e 7 }, G(e 1 ) = G(e 2 ) = G(e 3 ) = {1, 4}, G(e 4 ) = {2, 4}, G(e 5 ) = {2, 1}, G(e 6 ) = {2, 3}, G(e 7 ) = {3, 4}. ϕ(1) = 4, ϕ(2) = 3, ϕ(3) = 2, ϕ(4) = 5, ϕ(5) = 0. 6

V (G 2 ) = {a, b, c, d, e}, E(G 2 ) = { {a, c}, {a, d}, {b, c}, {b, e}, {b, d}{e, d} } 7

Ha egy gráf minden fokszáma azonos, például r, akkor a gráf reguláris vagy r-reguláris. A következő gráf egy (7,14) 4-reguláris gráf. 8

Ha egy egyszerű gráfban bármely két csúcsot él köt össze, akkor a gráf teljes gráf. Az n-csúcsú teljes gráf jele: K n. 9

A G = (V, E) egyszerű gráf a G = (V, E) egyszerű gráf komplementuma vagy komplementere, ha V = V, E = { {a, b} {a, b} E }. Ha a G egyszerű gráf n-csúcsú, akkor E(G) E(G) = E(K n ). 10

A G 1 és G 2 gráfok izomorfak, ha létezik egy bijektív fügvény ψ : V (G 1 ) V (G 2 ), úgy, hogy ha {a, b} E(G 1 ), akkor {ψ(a), ψ(b)} E(G 2 ). Az izomorfizmust tetszőleges gráfokra is értelmezhetjük. Két G 1 és G 2 gráf izomorf, ha létezik egy ψ : V (G 1 ) V (G 2 ) bijektív függvény úgy, hogy G1 1 (a, b) = G 1 2 (ψ(a), ψ(b)) minden a, b V (G 1)-re. 11

Példa izomorf gráfokra. A ψ függvény: x 1 2 3 a b c ψ(x) x 1 x 5 x 3 x 2 x 6 x 4 Izomorf gráfokban ϕ(x)=ϕ(ψ(x)) minden x V (G 1 )-re. 12

Irányított gráfok Irányított gráfnak nevezzük a G = (V, E, G) rendezett hármast, ahol V a csúcsok (vagy szögpontok vagy pontok) halmaza, E az irányított élek halmaza és G : E V V Ha e E és (a, b) G(e), akkor a az e él kezdőpontja, b pedig az e él végpontja. Ha egy élnek a kezdő- és végpontja egybeesik, akkor az az él hurokél. 13

Ebben az irányított gráfban az e 1 és e 2 élek párhuzamosak, de e 6 és e 8 nem. Ha egy irányított gráfban nincsenek párhuzamos élek és hurokélek, akkor az egyszerű irányított gráf. 14

Legyen G irányított gráf. Ekkor N be G (y) = {x V ( G) G 1 (x, y) } az y-ba befutó élek kezdőpontjainak halmaza N ki G (y) = {z V ( G) G 1 (y, z) } az y-ból kifutó élek véppontjainak halmaza. Egy irányított gráfban az x csúcs be-foka az x-be befutó élek száma (jelölése ϕ be (x)), az x csúcs ki-foka az x-ből kifutó élek száma (jelölése ϕ ki (x)). Ha egyszerű irányított gráfról van szó, akkor: ϕ be (x) = N be (x) ϕ ki (x) = N ki (x). 15

Gráfok ábrázolása 1) geometriai ábrázolás 2) szomszédsági (adjacencia) mátrixszal G = (E, V, G), V = {x 1, x 2,..., x n } A = (a ij ) i,j=1,n a szomszédsági mátrix, ahol a ij = { G 1 (x i, x j ) ha i j 2 G 1 (x i, x j ) ha i = j 16

ϕ(x i ) = n j=1 a ij, minden i = 1, 2,..., n Az egyszerű gráf szomszédsági mátrixa csak 0 és 1 számokat tartalmaz. Irányított gráf esetében a definíció hasonló. 17

3) illeszkedési (incidencia) mátrixszal G = (E, V, G), V = {x 1, x 2,..., x n }, E = {e 1, e 2,..., e m } B = (b ij ) i=1,n,j=1,m, b ij = 1 ha x i illeszjedik e j -hez és e j nem hurokél 2 ha x i illeszjedik e j -hez és e j hurokél 0 ha x i nem e j -hez. 18

19

4) listával a) Minden csúcsnak felsoroljuk a szomszédjait. x 1 x 2 x 3 x 4 x 2 x 1 x 3 x 3 x 3 x 1 x 2 x 2 x 4 x 4 x 4 x 1 x 3 x 3 Használhatunk láncolt listákat is. b) A listákat egymás után írjuk egy-egy -gal elválasztva, a végére két csillagot téve. x 2 x 3 x 4 x 1 x 3 x 3 x 1 x 2 x 2 x 4 x 4 x 1 x 3 x 3 20

c) A -okat elhagyjuk, és még egy listát használunk, amelyikben az egyes listák kezdőindexeit adjuk meg. x 2 x 3 x 4 x 1 x 3 x 3 x 1 x 2 x 2 x 4 x 4 x 1 x 3 x 3 1 4 7 12 A második lista elemei az egyes listák kezdőelemeire mutatnak a következőképpen: x 2 x 3 x 4 x 1 x 3 x 3 x 1 x 2 x 2 x 4 x 4 x 1 x 3 x 3 21

Legrövídebb utak A szomszédsági mátrix: A = ( a ij ) a ij = i,j=1,n, ahol a ij = d (0) ij, azaz: W(v i, v j ) ha {v i, v j } E(G) (vagy (v i, v j ) E( G)) 0 ha i = j ha {v i, v j } E(G) (vagy (v i, v j ) E( G)) A Floyd Warshall-algoritmus távolsági mátrix meghatározása Floyd, Robert W. (1936 2001) Warshall, Stephen (1935 2006) 22

Kezdetben p ij := i ha d ij és i j; más esetekben p ij := 0. FloydWarshall(D 0 ) 1. D := D 0 2. for k := 1 to n do 3. for i := 1 to n do 4. for j := 1 to n do 5. if d ij > d ik + d kj then 6. d ij := d ik + d kj 7. p ij := p kj 8. return D, p 23

Egy u x u y utat a következő algoritmussal határozzuk meg: 1. k := n : 2. u k := y 3. while u k x do 4. u k 1 := p xuk 5. k := k 1 A keresett út: u k, u k+1,..., u n. 24

Példa. 25

A szomszédsági mátrixa és a megfelelő P mátrix kezdeti értéke: D 0 = 0 1 3 8 0 1 5 0 1 0 2 4 0 P 0 = 0 1 1 0 1 0 0 2 0 2 0 0 0 3 0 0 0 0 0 4 0 0 5 0 0 Az algoritmus eredménye a D és P mátrixok: D = 0 1 2 3 5 0 1 2 4 0 1 3 6 0 2 4 5 0 P = 0 1 2 3 4 0 0 2 3 4 0 0 0 3 4 0 0 5 0 4 0 0 5 3 0 26

Részsorozatok n, d 1 d 2, s pozitív egészek, x 1, x 2,..., x n sorozat (elemei Σ-ból). (d 1, d 2 )-részsorozat: x i1, x i2,..., x is, ahol i 1 1, d 1 i j+1 i j d 2, for j = 1, 2,..., s 1, i s n, Határozzuk meg a (d 1, d 2 )-részsorozatokat! 27

Például: a, a, b, c, a, d, e (2, 4)-részsorozatok: (a), (a, b), (a, c), (a, b, a), (a, a), (a, c, d), (a, b, d), (a, a, e), (a, b, a, e), (a, c, e), (a, b, e), (a, d), (b), (b, a), (b, d), (b, a, e), (b, e), (c), (c, d), (c, e), (a, e), (d), (e). 28

x 1, x 2,..., x n elemei páronként különböznek: (d 1, d 2 )-részsorozatok számának kiszámítása: G = (V, E), ahol V = { x 1, x 2,..., x n }, E = { (x i, x j ) d 1 j i d 2, i = 1, 2,..., n, j = 1, 2,..., n }. (2,4)-részsorozatok gráfja 29

A gráf szomszédsági mátrixa: A = ( a ij )i=1,n j=1,n a ij = { 1, if d1 j i d 2, 0, különben, ha i = 1, 2,..., n, j = 1, 2,..., n. A gráfban nincs irányított kör, ezért A k (ahol A k = A k 1 A, A 1 = A) i-edik sorában és j-edik oszlopában lévő elem a k- hosszúságú irányított utak számát jelenti a i és a j között. Ha A 0 az egységmátrix (1 a főátlón, 0 máshol), legyen R = (r ij ): R = A 0 + A + A 2 + + A k, ahol A k+1 = O (nulla mátrix). A (d 1, d 2 )-részsorozatok száma C(n; d 1, d 2 ) = n n i=1 j=1 r ij. 30

Warshall(A, n) 1. W := A 2. for k := 1 to n 3. do for i := 1 to n 4. do for j := 1 to n 5. do w ij := w ij + w ik w kj 6. return W R = A 0 + W. 31

A = 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0. Warshall-algoritmus alkalmazása után: W = 0 0 1 1 2 2 0 0 0 1 1 2 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0, R = C(6; 2, 4) = 19, az R elemeinek összege. 1 0 1 1 2 2 0 1 0 1 1 2 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1, 32

Latin négyzet segítségével: a, b, c, d, e, f, g n = 7, d 1 = 2, d 2 = 4 esetében: A = {ac} {ad} {ae} {bd} {be} {bf} {ce} {cf} {cg} {df} {dg} {eg}, 33

{ac} {ad} {ace, ae} {adf, acf} {aeg, aceg, adg, acg} {bd} {be} {bdf, bf} {beg, bdg} {ce} {cf} {ceg, cg} {df} {dg} {eg}. Hozzászámítva az egyelemű részsorozatokat is: C(7; 2, 4) = 30. 34

Gazdaságos feszítőfák Súlyozott gráfban egy feszítőfa értéke az éleihez rendelt súlyok összege. Adott súlyozott gráfban keressük a legkisebb értékű feszítőfát, amelyet minimális feszítőfának nevezünk. Kruskal algoritmusa A gráf éleit súlyuk szerint növekvő sorrendbe rendezzük. Az első él a sorból bekerül a leendő gazdaságos favázba (az alábbi algoritmusban a leendő favázba bekerülő éleket megcsillagozzuk). Kezdetben a gráf minden csúcsa egy-egy halmazt képez. Egy él akkor kerül be a favázba, ha végpontjai különböző halmazból valók, és ekkor a két megfelelő halmazt egyesítjük. Az algoritmus akkor ér véget, amikor a gráf minden csúcsa egy halmazban van. 35

Az első oszlopban az élek vannak, a másodikban a megfelelő súly értéke, a harmadikban csillag, ha az él bekerült a favázba, a negyedik oszlopban pedig a csúcshalmazok. 36

{1}, {2}, {3}, {4}, {5}, {6}, {7}, {8} {5,7} 1 * {5,7}, {1}, {2}, {3}, {4}, {6}, [8} {7,8} 2 * {5,7,8}, {1}, {2}, {3}, {4}, {6} {3,8} 3 * {3,5,7,8}, {1}, {2}, {4}, {6} {1,3} 4 * {1,3,5,7,8}, {2}, {4}, {6} {3,4} 4 * {1,3,4,5,7,8}, {2}, {6} {4,8} 4 {2,3} 5 * {1,2,3,4,5,7,8}, {6} {1,5} 6 {2,5} 6 {4,5} 6 {1,6} 8 * {1,2,3,4,5,6,7,8} {3,5} 9 {1,2} 10 {5,6} 12 {5,8} 13 37

A csillaggal megjelölt élek a gazdaságos faváz élei. Maga a faváz a következő: 38

Az algoritmus leírásához tekintsük az élek E = {e 1, e 2,..., e m } halmazát úgy, hogy W(e i ) W(e i+1 ), minden i = 1, 2,..., m 1 értékre (azaz, az élek súlyuk szerint növekvő sorrendben vannak indexelve). Halmazok helyett egy h = (h 1, h 2,..., h n ) vektort használunk (n a csúcsok száma), amelynek elemei kezdetben egyenlőek az indexükkel, ami arra utal, hogy különböző halmazok elemei. Amikor két halmazt egyesítünk, a megfelelő h i értékeket egyenlővé tesszük (egyik halmaz elemeinek h i értékeit a másik halmaz h i értékeire álĺıtjuk.). 39

Kruskal(E) 1. for j=1,2,..., n do 2. h j := j 3. i := 1 4. while h elemei különbözőek do 5. if (e i végpontjai v k, v l ) és (h k h l ) then 6. kíır e i 7. for j:=1, 2,..., n do 8. if h j = h l then 9. h j := h k 10. i:=i+1 40

Árvíz után Egy megye helységei (városok, falvak) közötti utakat néhol elmosta az árvíz. A helységek x i, i = 1, 2,..., n, és a köztük épen lévő utakat az A = (a ij ) mátrix jelzi: a ij = 1, ha x i és x j között van épen maradt út, és a ij = 0, ha az út járhatatlan. Kérdés: el lehet-e jutni a megye bármelyik helységéből bármelyik másik helységébe? Megoldás: Gráffal, amelynek szomszédsági mátrixa A. Választunk egy tetszőleges helységet: pl. x 1. U = {x 1 }. U = U N(U) ameddig U nem változik. (N(U) az U szomszédai.) Ha U tartalmazza az összes helységet, akkor a válasz igen, különben nem. 41

Euler-vonal keresése Fleury algoritmusa Ellenőrizzük, hogy a gráf Euler-gráf-e (minden fokszám páros) vagy pontosan két páratlan fokú csúcsa van. Elindulunk tetszőleges csúcsból (vagy egy páratlan fokszámúból). Mindig olyan új élt választunk, amely nem híd (kitöröljük). (Hidat csak akkor, ha más nincs.) 42

Hamilton-út keresése visszalépéses módszerrel Elégséges feltételek: Rédei-tétel Dirac-tétel Ore-tétel 43