• Nem Talált Eredményt

Algoritmuselmélet Minimális feszít˝ofák Katona Gyula Y.

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Algoritmuselmélet Minimális feszít˝ofák Katona Gyula Y."

Copied!
131
0
0

Teljes szövegt

(1)

Algoritmuselmélet

Minimális feszít ˝ofák

Katona Gyula Y.

Számítástudományi és Információelméleti Tanszék Budapesti M ˝uszaki és Gazdaságtudományi Egyetem

11. el ˝oadás

(2)

Minimális költség ˝u feszít ˝ofák

Most irányítatlan gráfokkal foglalkozunk.

A kör és út most valóban egyszer ˝u.

Definíció (minimális költség ˝u feszít ˝ofa)

Legyen G= (V,E)egy összefügg ˝o gráf. A G gráf egy körmentes összefügg ˝o F = (V,E0)részgráfja a gráf egyfeszít ˝ofája. Legyen továbbá az éleken értelmezve egy c:E →Rsúlyfüggvény. Ekkor a G gráf egy F feszít ˝ofájaminimális költség ˝u, ha költsége (a benne

szerepl ˝o élek súlyainak összege) minimális G összes feszít ˝ofáját tekintve.

Probléma

Adott egy G = (V,E)összefügg ˝o irányítatlan gráf, és az élein értelmezett c :E →Rsúlyfüggvény. Határozzuk meg a G egy minimális költség ˝u feszít ˝ofáját.

Például: villamosvezetékek kiépítése.

(3)

Minimális költség ˝u feszít ˝ofák

Most irányítatlan gráfokkal foglalkozunk.

A kör és út most valóban egyszer ˝u.

Definíció (minimális költség ˝u feszít ˝ofa)

Legyen G= (V,E)egy összefügg ˝o gráf. A G gráf egy körmentes összefügg ˝o F = (V,E0)részgráfja a gráf egyfeszít ˝ofája. Legyen továbbá az éleken értelmezve egy c:E →Rsúlyfüggvény. Ekkor a G gráf egy F feszít ˝ofájaminimális költség ˝u, ha költsége (a benne

szerepl ˝o élek súlyainak összege) minimális G összes feszít ˝ofáját tekintve.

Probléma

Adott egy G = (V,E)összefügg ˝o irányítatlan gráf, és az élein értelmezett c :E →Rsúlyfüggvény. Határozzuk meg a G egy minimális költség ˝u feszít ˝ofáját.

Például: villamosvezetékek kiépítése.

(4)

Minimális költség ˝u feszít ˝ofák

Most irányítatlan gráfokkal foglalkozunk.

A kör és út most valóban egyszer ˝u.

Definíció (minimális költség ˝u feszít ˝ofa)

Legyen G= (V,E)egy összefügg ˝o gráf. A G gráf egy körmentes összefügg ˝o F = (V,E0)részgráfja a gráf egyfeszít ˝ofája. Legyen továbbá az éleken értelmezve egy c:E →Rsúlyfüggvény. Ekkor a G gráf egy F feszít ˝ofájaminimális költség ˝u, ha költsége (a benne

szerepl ˝o élek súlyainak összege) minimális G összes feszít ˝ofáját tekintve.

Probléma

Adott egy G = (V,E)összefügg ˝o irányítatlan gráf, és az élein

Például: villamosvezetékek kiépítése.

(5)

Minimális költség ˝u feszít ˝ofák

Most irányítatlan gráfokkal foglalkozunk.

A kör és út most valóban egyszer ˝u.

Definíció (minimális költség ˝u feszít ˝ofa)

Legyen G= (V,E)egy összefügg ˝o gráf. A G gráf egy körmentes összefügg ˝o F = (V,E0)részgráfja a gráf egyfeszít ˝ofája. Legyen továbbá az éleken értelmezve egy c:E →Rsúlyfüggvény. Ekkor a G gráf egy F feszít ˝ofájaminimális költség ˝u, ha költsége (a benne

szerepl ˝o élek súlyainak összege) minimális G összes feszít ˝ofáját tekintve.

Probléma

Adott egy G = (V,E)összefügg ˝o irányítatlan gráf, és az élein értelmezett c :E →Rsúlyfüggvény. Határozzuk meg a G egy minimális költség ˝u feszít ˝ofáját.

(6)

Fák tulajdonságai

Tétel

1.Minden legalább kétpontú fában van olyan csúcs, amib ˝ol csak egy él megy ki (els ˝ofokú csúcs).

2.Bármely összefügg ˝o gráf tartalmaz feszít ˝ofát.

3.Egy n-pontú összefügg ˝o gráf akkor és csak akkor fa, ha n−1éle van.

4.Egy fa bármely két pontja között pontosan egy út vezet. 5.Legyen G egy súlyozott él ˝u összefügg ˝o gráf, F egy minimális költség ˝u feszít ˝ofája. Legyen g= (u,v)a G-nek egy olyan éle, ami nem éle F -nek, és tegyük fel, hogy az F -beli u-ból v -be vezet ˝o úton van olyan g0 él, amelyre c(g)≤c(g0). Ekkor az F -b ˝ol a g

hozzávételével és a g0 elhagyásával adódó F0gráf is egy minimális költség ˝u feszít ˝ofa G-ben.

Bizonyítás.

1–4volt már BSZ-en. √

(7)

Fák tulajdonságai

Tétel

1.Minden legalább kétpontú fában van olyan csúcs, amib ˝ol csak egy él megy ki (els ˝ofokú csúcs).

2.Bármely összefügg ˝o gráf tartalmaz feszít ˝ofát.

3.Egy n-pontú összefügg ˝o gráf akkor és csak akkor fa, ha n−1éle van.

4.Egy fa bármely két pontja között pontosan egy út vezet. 5.Legyen G egy súlyozott él ˝u összefügg ˝o gráf, F egy minimális költség ˝u feszít ˝ofája. Legyen g= (u,v)a G-nek egy olyan éle, ami nem éle F -nek, és tegyük fel, hogy az F -beli u-ból v -be vezet ˝o úton van olyan g0 él, amelyre c(g)≤c(g0). Ekkor az F -b ˝ol a g

hozzávételével és a g0 elhagyásával adódó F0gráf is egy minimális költség ˝u feszít ˝ofa G-ben.

Bizonyítás.

1–4volt már BSZ-en. √

(8)

Fák tulajdonságai

Tétel

1.Minden legalább kétpontú fában van olyan csúcs, amib ˝ol csak egy él megy ki (els ˝ofokú csúcs).

2.Bármely összefügg ˝o gráf tartalmaz feszít ˝ofát.

3.Egy n-pontú összefügg ˝o gráf akkor és csak akkor fa, ha n−1éle van.

4.Egy fa bármely két pontja között pontosan egy út vezet. 5.Legyen G egy súlyozott él ˝u összefügg ˝o gráf, F egy minimális költség ˝u feszít ˝ofája. Legyen g= (u,v)a G-nek egy olyan éle, ami nem éle F -nek, és tegyük fel, hogy az F -beli u-ból v -be vezet ˝o úton van olyan g0 él, amelyre c(g)≤c(g0). Ekkor az F -b ˝ol a g

hozzávételével és a g0 elhagyásával adódó F0gráf is egy minimális költség ˝u feszít ˝ofa G-ben.

Bizonyítás.

1–4volt már BSZ-en. √

(9)

Fák tulajdonságai

Tétel

1.Minden legalább kétpontú fában van olyan csúcs, amib ˝ol csak egy él megy ki (els ˝ofokú csúcs).

2.Bármely összefügg ˝o gráf tartalmaz feszít ˝ofát.

3.Egy n-pontú összefügg ˝o gráf akkor és csak akkor fa, ha n−1éle van.

4.Egy fa bármely két pontja között pontosan egy út vezet.

5.Legyen G egy súlyozott él ˝u összefügg ˝o gráf, F egy minimális költség ˝u feszít ˝ofája. Legyen g= (u,v)a G-nek egy olyan éle, ami nem éle F -nek, és tegyük fel, hogy az F -beli u-ból v -be vezet ˝o úton van olyan g0 él, amelyre c(g)≤c(g0). Ekkor az F -b ˝ol a g

hozzávételével és a g0 elhagyásával adódó F0gráf is egy minimális költség ˝u feszít ˝ofa G-ben.

Bizonyítás.

1–4volt már BSZ-en. √

(10)

Fák tulajdonságai

Tétel

1.Minden legalább kétpontú fában van olyan csúcs, amib ˝ol csak egy él megy ki (els ˝ofokú csúcs).

2.Bármely összefügg ˝o gráf tartalmaz feszít ˝ofát.

3.Egy n-pontú összefügg ˝o gráf akkor és csak akkor fa, ha n−1éle van.

4.Egy fa bármely két pontja között pontosan egy út vezet.

5.Legyen G egy súlyozott él ˝u összefügg ˝o gráf, F egy minimális költség ˝u feszít ˝ofája. Legyen g= (u,v)a G-nek egy olyan éle, ami nem éle F -nek, és tegyük fel, hogy az F -beli u-ból v -be vezet ˝o úton van olyan g0 él, amelyre c(g)≤c(g0). Ekkor az F -b ˝ol a g

hozzávételével és a g0 elhagyásával adódó F0gráf is egy minimális költség ˝u feszít ˝ofa G-ben.

Bizonyítás.

1–4volt már BSZ-en. √

(11)

Fák tulajdonságai

Tétel

1.Minden legalább kétpontú fában van olyan csúcs, amib ˝ol csak egy él megy ki (els ˝ofokú csúcs).

2.Bármely összefügg ˝o gráf tartalmaz feszít ˝ofát.

3.Egy n-pontú összefügg ˝o gráf akkor és csak akkor fa, ha n−1éle van.

4.Egy fa bármely két pontja között pontosan egy út vezet.

5.Legyen G egy súlyozott él ˝u összefügg ˝o gráf, F egy minimális költség ˝u feszít ˝ofája. Legyen g= (u,v)a G-nek egy olyan éle, ami nem éle F -nek, és tegyük fel, hogy az F -beli u-ból v -be vezet ˝o úton van olyan g0 él, amelyre c(g)≤c(g0). Ekkor az F -b ˝ol a g

hozzávételével és a g0 elhagyásával adódó F0gráf is egy minimális költség ˝u feszít ˝ofa G-ben.

Bizonyítás.

(12)

Bizonyítás.

5.

2 4

u 5

10

v 2 2

3 4

8 8

g g

0

2 4

u 5

10

v 2 2

3 4

8 8

F ∪ {g}gráfban van olyan kör, amelynekg0éle. =⇒Ag0 törlésével kapottF0 gráf összefügg ˝o marad.

F0 költsége nem nagyobbF költségénél.

(13)

Bizonyítás.

5.

2 4

u 5

10

v 2 2

3 4

8 8

g g

0

2 4

u 5

10

v 2 2

3 4

8 8

F ∪ {g}gráfban van olyan kör, amelynekg0éle. =⇒Ag0 törlésével kapottF0 gráf összefügg ˝o marad.

F0 költsége nem nagyobbF költségénél.

(14)

Bizonyítás.

5.

2 4

u 5

10

v 2 2

3 4

8 8

g g

0

2 4

u 5

10

v 2 2

3 4

8 8

F0 költsége nem nagyobbF költségénél.

(15)

Bizonyítás.

5.

2 4

u 5

10

v 2 2

3 4

8 8

g g

0

2 4

u 5

10

v 2 2

3 4

8 8

F ∪ {g}gráfban van olyan kör, amelynekg0éle. =⇒Ag0 törlésével kapottF0 gráf összefügg ˝o marad.

(16)

A piros-kék algoritmus

Sorra nézzükGéleit: bizonyosakat beveszünk a minimális feszít ˝ofába, másokat pedig eldobunk.

=⇒Színezzük aGéleit:

akékélek belekerülnek a végeredményt jelent ˝o minimális feszít ˝ofába, apirosakpedig nem.

=⇒Úgy színezünk, hogy az eddig kialakult (részleges) színezés mindigtakaroslegyen.

Definíció (takaros színezés)

Tekintsük a súlyozott él ˝u G gráf éleinek egy részleges színezését, melynél bármely élpiros,kékvagy színtelen lehet. Ez a színezés takaros, ha van G-nek olyan minimális költség ˝u feszít ˝ofája, ami az összeskékélet tartalmazza, és egyetlenpirosélet sem tartalmaz.

(17)

A piros-kék algoritmus

Sorra nézzükGéleit: bizonyosakat beveszünk a minimális feszít ˝ofába, másokat pedig eldobunk.

=⇒Színezzük aGéleit:

akékélek belekerülnek a végeredményt jelent ˝o minimális feszít ˝ofába,

apirosakpedig nem.

=⇒Úgy színezünk, hogy az eddig kialakult (részleges) színezés mindigtakaroslegyen.

Definíció (takaros színezés)

Tekintsük a súlyozott él ˝u G gráf éleinek egy részleges színezését, melynél bármely élpiros,kékvagy színtelen lehet. Ez a színezés takaros, ha van G-nek olyan minimális költség ˝u feszít ˝ofája, ami az összeskékélet tartalmazza, és egyetlenpirosélet sem tartalmaz.

(18)

A piros-kék algoritmus

Sorra nézzükGéleit: bizonyosakat beveszünk a minimális feszít ˝ofába, másokat pedig eldobunk.

=⇒Színezzük aGéleit:

akékélek belekerülnek a végeredményt jelent ˝o minimális feszít ˝ofába, apirosakpedig nem.

=⇒Úgy színezünk, hogy az eddig kialakult (részleges) színezés mindigtakaroslegyen.

Definíció (takaros színezés)

Tekintsük a súlyozott él ˝u G gráf éleinek egy részleges színezését, melynél bármely élpiros,kékvagy színtelen lehet. Ez a színezés takaros, ha van G-nek olyan minimális költség ˝u feszít ˝ofája, ami az összeskékélet tartalmazza, és egyetlenpirosélet sem tartalmaz.

(19)

A piros-kék algoritmus

Sorra nézzükGéleit: bizonyosakat beveszünk a minimális feszít ˝ofába, másokat pedig eldobunk.

=⇒Színezzük aGéleit:

akékélek belekerülnek a végeredményt jelent ˝o minimális feszít ˝ofába, apirosakpedig nem.

=⇒Úgy színezünk, hogy az eddig kialakult (részleges) színezés mindigtakaroslegyen.

Definíció (takaros színezés)

Tekintsük a súlyozott él ˝u G gráf éleinek egy részleges színezését, melynél bármely élpiros,kékvagy színtelen lehet. Ez a színezés takaros, ha van G-nek olyan minimális költség ˝u feszít ˝ofája, ami az összeskékélet tartalmazza, és egyetlenpirosélet sem tartalmaz.

(20)

A piros-kék algoritmus

Sorra nézzükGéleit: bizonyosakat beveszünk a minimális feszít ˝ofába, másokat pedig eldobunk.

=⇒Színezzük aGéleit:

akékélek belekerülnek a végeredményt jelent ˝o minimális feszít ˝ofába, apirosakpedig nem.

=⇒Úgy színezünk, hogy az eddig kialakult (részleges) színezés mindigtakaroslegyen.

Definíció (takaros színezés)

Tekintsük a súlyozott él ˝u G gráf éleinek egy részleges színezését, melynél bármely élpiros,kékvagy színtelen lehet. Ez a színezés takaros, ha van G-nek olyan minimális költség ˝u feszít ˝ofája, ami az

(21)

A piros-kék algoritmus

KÉK SZABÁLY:

PIROS SZABÁLY:

Válasszunk ki egy olyan∅ 6= X ⊂ V csúcshal- mazt, amelyb ˝ol nem vezet ki kék él. Ezután egy legkisebb súlyú X-b ˝ol kimen ˝o színezetlen élet fessünk kékre.

Válasszunk G-ben egy olyan egyszer ˝u kört, amelyben nincs piros él. A kör egyik legna- gyobb súlyú színtelen élét fessük pirosra.

KezdetbenG-nek nincs színes éle. A két szabályt tetsz ˝oleges sorrendben és helyeken alkalmazzuk, amíg csak lehetséges.

=⇒piros-kékalgoritmus

(22)

A piros-kék algoritmus

KÉK SZABÁLY:

PIROS SZABÁLY:

Válasszunk ki egy olyan∅ 6= X ⊂ V csúcshal- mazt, amelyb ˝ol nem vezet ki kék él. Ezután egy legkisebb súlyú X-b ˝ol kimen ˝o színezetlen élet fessünk kékre.

Válasszunk G-ben egy olyan egyszer ˝u kört, amelyben nincs piros él. A kör egyik legna- gyobb súlyú színtelen élét fessük pirosra.

KezdetbenG-nek nincs színes éle. A két szabályt tetsz ˝oleges sorrendben és helyeken alkalmazzuk, amíg csak lehetséges.

=⇒piros-kékalgoritmus

(23)

A piros-kék algoritmus

KÉK SZABÁLY:

PIROS SZABÁLY:

Válasszunk ki egy olyan∅ 6= X ⊂ V csúcshal- mazt, amelyb ˝ol nem vezet ki kék él. Ezután egy legkisebb súlyú X-b ˝ol kimen ˝o színezetlen élet fessünk kékre.

Válasszunk G-ben egy olyan egyszer ˝u kört, amelyben nincs piros él. A kör egyik legna- gyobb súlyú színtelen élét fessük pirosra.

KezdetbenG-nek nincs színes éle. A két szabályt tetsz ˝oleges sorrendben és helyeken alkalmazzuk, amíg csak lehetséges.

=⇒piros-kékalgoritmus

(24)

A piros-kék algoritmus

KÉK SZABÁLY:

PIROS SZABÁLY:

Válasszunk ki egy olyan∅ 6= X ⊂ V csúcshal- mazt, amelyb ˝ol nem vezet ki kék él. Ezután egy legkisebb súlyú X-b ˝ol kimen ˝o színezetlen élet fessünk kékre.

Válasszunk G-ben egy olyan egyszer ˝u kört, amelyben nincs piros él. A kör egyik legna- gyobb súlyú színtelen élét fessük pirosra.

KezdetbenG-nek nincs színes éle.

A két szabályt tetsz ˝oleges sorrendben és helyeken alkalmazzuk, amíg csak lehetséges.

=⇒piros-kékalgoritmus

(25)

A piros-kék algoritmus

KÉK SZABÁLY:

PIROS SZABÁLY:

Válasszunk ki egy olyan∅ 6= X ⊂ V csúcshal- mazt, amelyb ˝ol nem vezet ki kék él. Ezután egy legkisebb súlyú X-b ˝ol kimen ˝o színezetlen élet fessünk kékre.

Válasszunk G-ben egy olyan egyszer ˝u kört, amelyben nincs piros él. A kör egyik legna- gyobb súlyú színtelen élét fessük pirosra.

KezdetbenG-nek nincs színes éle. A két szabályt tetsz ˝oleges sorrendben és helyeken alkalmazzuk, amíg csak lehetséges.

=⇒piros-kékalgoritmus

(26)

A piros-kék algoritmus

KÉK SZABÁLY:

PIROS SZABÁLY:

Válasszunk ki egy olyan∅ 6= X ⊂ V csúcshal- mazt, amelyb ˝ol nem vezet ki kék él. Ezután egy legkisebb súlyú X-b ˝ol kimen ˝o színezetlen élet fessünk kékre.

Válasszunk G-ben egy olyan egyszer ˝u kört, amelyben nincs piros él. A kör egyik legna- gyobb súlyú színtelen élét fessük pirosra.

KezdetbenG-nek nincs színes éle. A két szabályt tetsz ˝oleges sorrendben és helyeken alkalmazzuk, amíg csak lehetséges.

(27)

A piros-kék algoritmus

Tétel

Apiros-kékeljárás m ˝uködése során mindig takaros színezésünk van.

Ezen felül a színezéssel sosem akadunk el: végül G minden éle színes lesz.

Bizonyítás.

Belátjuk, hogy a színezés mindig takaros. Kezdetben √ .

Tegyük fel, hogy egy takaros színezésünk van. Legyen F a G egy olyan minimális költség ˝u feszít ˝ofája, amely mindenkékélet tartalmaz, és egyetlenpirosat sem. Tegyük fel továbbá, hogy ebben a helyzetben a gráf f élét festjük be.

(28)

A piros-kék algoritmus

Tétel

Apiros-kékeljárás m ˝uködése során mindig takaros színezésünk van.

Ezen felül a színezéssel sosem akadunk el: végül G minden éle színes lesz.

Bizonyítás.

Belátjuk, hogy a színezés mindig takaros.

Kezdetben √ .

Tegyük fel, hogy egy takaros színezésünk van. Legyen F a G egy olyan minimális költség ˝u feszít ˝ofája, amely mindenkékélet tartalmaz, és egyetlenpirosat sem. Tegyük fel továbbá, hogy ebben a helyzetben a gráf f élét festjük be.

(29)

A piros-kék algoritmus

Tétel

Apiros-kékeljárás m ˝uködése során mindig takaros színezésünk van.

Ezen felül a színezéssel sosem akadunk el: végül G minden éle színes lesz.

Bizonyítás.

Belátjuk, hogy a színezés mindig takaros. Kezdetben √ .

Tegyük fel, hogy egy takaros színezésünk van. Legyen F a G egy olyan minimális költség ˝u feszít ˝ofája, amely mindenkékélet tartalmaz, és egyetlenpirosat sem. Tegyük fel továbbá, hogy ebben a helyzetben a gráf f élét festjük be.

(30)

A piros-kék algoritmus

Tétel

Apiros-kékeljárás m ˝uködése során mindig takaros színezésünk van.

Ezen felül a színezéssel sosem akadunk el: végül G minden éle színes lesz.

Bizonyítás.

Belátjuk, hogy a színezés mindig takaros. Kezdetben √ .

Tegyük fel, hogy egy takaros színezésünk van. Legyen F a G egy olyan minimális költség ˝u feszít ˝ofája, amely mindenkékélet tartalmaz, és egyetlenpirosat sem. Tegyük fel továbbá, hogy ebben a helyzetben a gráf f élét festjük be.

(31)

Bizonyítás.

Két eset van aszerint, hogy melyik szabályt használjuk:

A kék szabályt használjuk: =⇒f kéklesz.

Ha f éle F -nek √

f F

X f0

Ha f nem éle F -nek =⇒ nézzük azt az X ⊂ V csúcshalmazt, amelyre akékszabályt alkalmaz- tuk.

Az F -ben van olyan út (mert feszít ˝ofa), ami az f két végpontját összeköti. =⇒ Ezen az úton pe- dig van olyan f0 él, ami kimegy X -b ˝ol, ugyanis f kilép X -b ˝ol.

Az F választása miatt f0 nem lehetpiros.

A kék szabály szerint kék sem lehet, továbbá c(f0)≥c(f)is teljesül.

Legyen F0 az F -b ˝ol az f0 törlésével és az f hoz- záadásával kapott gráf.

=⇒ Eszerint F0 egy minimális feszít ˝ofa, tartal- maz mindenkékélet és nem tartalmazpirosélet.

(32)

Bizonyítás.

Két eset van aszerint, hogy melyik szabályt használjuk:

A kék szabályt használjuk: =⇒f kéklesz.

Ha f éle F -nek √

f F

X f0

Ha f nem éle F -nek =⇒ nézzük azt az X ⊂ V csúcshalmazt, amelyre akékszabályt alkalmaz- tuk.

Az F -ben van olyan út (mert feszít ˝ofa), ami az f két végpontját összeköti. =⇒ Ezen az úton pe- dig van olyan f0 él, ami kimegy X -b ˝ol, ugyanis f kilép X -b ˝ol.

Az F választása miatt f0 nem lehetpiros.

A kék szabály szerint kék sem lehet, továbbá c(f0)≥c(f)is teljesül.

Legyen F0 az F -b ˝ol az f0 törlésével és az f hoz- záadásával kapott gráf.

=⇒ Eszerint F0 egy minimális feszít ˝ofa, tartal- maz mindenkékélet és nem tartalmazpirosélet.

(33)

Bizonyítás.

Két eset van aszerint, hogy melyik szabályt használjuk:

A kék szabályt használjuk: =⇒f kéklesz.

Ha f éle F -nek √

f F

X f0

Ha f nem éle F -nek =⇒ nézzük azt az X ⊂ V csúcshalmazt, amelyre akékszabályt alkalmaz- tuk.

Az F -ben van olyan út (mert feszít ˝ofa), ami az f két végpontját összeköti. =⇒ Ezen az úton pe- dig van olyan f0 él, ami kimegy X -b ˝ol, ugyanis f kilép X -b ˝ol.

Az F választása miatt f0 nem lehetpiros.

A kék szabály szerint kék sem lehet, továbbá c(f0)≥c(f)is teljesül.

Legyen F0 az F -b ˝ol az f0 törlésével és az f hoz- záadásával kapott gráf.

=⇒ Eszerint F0 egy minimális feszít ˝ofa, tartal- maz mindenkékélet és nem tartalmazpirosélet.

(34)

Bizonyítás.

Két eset van aszerint, hogy melyik szabályt használjuk:

A kék szabályt használjuk: =⇒f kéklesz.

Ha f éle F -nek √

f F

X f0

Ha f nem éle F -nek =⇒ nézzük azt az X ⊂ V csúcshalmazt, amelyre akékszabályt alkalmaz- tuk.

Az F -ben van olyan út (mert feszít ˝ofa), ami az f két végpontját összeköti. =⇒ Ezen az úton pe- dig van olyan f0 él, ami kimegy X -b ˝ol, ugyanis f kilép X -b ˝ol.

Az F választása miatt f0 nem lehetpiros.

A kék szabály szerint kék sem lehet, továbbá c(f0)≥c(f)is teljesül.

Legyen F0 az F -b ˝ol az f0 törlésével és az f hoz- záadásával kapott gráf.

=⇒ Eszerint F0 egy minimális feszít ˝ofa, tartal- maz mindenkékélet és nem tartalmazpirosélet.

(35)

Bizonyítás.

Két eset van aszerint, hogy melyik szabályt használjuk:

A kék szabályt használjuk: =⇒f kéklesz.

Ha f éle F -nek √

f F

X f0

Ha f nem éle F -nek =⇒ nézzük azt az X ⊂ V csúcshalmazt, amelyre akékszabályt alkalmaz- tuk.

Az F -ben van olyan út (mert feszít ˝ofa), ami az f két végpontját összeköti. =⇒ Ezen az úton pe- dig van olyan f0 él, ami kimegy X -b ˝ol, ugyanis f kilép X -b ˝ol.

Az F választása miatt f0 nem lehetpiros.

A kék szabály szerint kék sem lehet, továbbá c(f0)≥c(f)is teljesül.

Legyen F0 az F -b ˝ol az f0 törlésével és az f hoz- záadásával kapott gráf.

=⇒ Eszerint F0 egy minimális feszít ˝ofa, tartal- maz mindenkékélet és nem tartalmazpirosélet.

(36)

Bizonyítás.

Két eset van aszerint, hogy melyik szabályt használjuk:

A kék szabályt használjuk: =⇒f kéklesz.

Ha f éle F -nek √

f F

X f0

Ha f nem éle F -nek =⇒ nézzük azt az X ⊂ V csúcshalmazt, amelyre akékszabályt alkalmaz- tuk.

Az F -ben van olyan út (mert feszít ˝ofa), ami az f két végpontját összeköti. =⇒ Ezen az úton pe- dig van olyan f0 él, ami kimegy X -b ˝ol, ugyanis f kilép X -b ˝ol.

Az F választása miatt f0 nem lehetpiros.

A kék szabály szerint kék sem lehet, továbbá c(f0)≥c(f)is teljesül.

Legyen F0 az F -b ˝ol az f0 törlésével és az f hoz- záadásával kapott gráf.

=⇒ Eszerint F0 egy minimális feszít ˝ofa, tartal- maz mindenkékélet és nem tartalmazpirosélet.

(37)

Bizonyítás.

Két eset van aszerint, hogy melyik szabályt használjuk:

A kék szabályt használjuk: =⇒f kéklesz.

Ha f éle F -nek √

f F

X f0

Ha f nem éle F -nek =⇒ nézzük azt az X ⊂ V csúcshalmazt, amelyre akékszabályt alkalmaz- tuk.

Az F -ben van olyan út (mert feszít ˝ofa), ami az f két végpontját összeköti. =⇒ Ezen az úton pe- dig van olyan f0 él, ami kimegy X -b ˝ol, ugyanis f kilép X -b ˝ol.

Az F választása miatt f0 nem lehetpiros.

A kék szabály szerint kék sem lehet, továbbá c(f0)≥c(f)is teljesül.

Legyen F0 az F -b ˝ol az f0 törlésével és az f hoz- záadásával kapott gráf.

=⇒ Eszerint F0 egy minimális feszít ˝ofa, tartal- maz mindenkékélet és nem tartalmazpirosélet.

(38)

Bizonyítás.

Két eset van aszerint, hogy melyik szabályt használjuk:

A kék szabályt használjuk: =⇒f kéklesz.

Ha f éle F -nek √

f F

X f0

Ha f nem éle F -nek =⇒ nézzük azt az X ⊂ V csúcshalmazt, amelyre akékszabályt alkalmaz- tuk.

Az F -ben van olyan út (mert feszít ˝ofa), ami az f két végpontját összeköti. =⇒ Ezen az úton pe- dig van olyan f0 él, ami kimegy X -b ˝ol, ugyanis f kilép X -b ˝ol.

Az F választása miatt f0 nem lehetpiros.

A kék szabály szerint kék sem lehet, továbbá c(f0)≥c(f)is teljesül.

Legyen F0 az F -b ˝ol az f0 törlésével és az f hoz-

(39)

Bizonyítás.

A piros szabályt használjuk: Ekkor f piroslesz.

=⇒ Ha f nem éle F -nek √

f F

f0

Ha f ∈ F , akkor az f törlésével az F két komponensre esik.

=⇒ A körnek, amelyre a piros szabályt alkalmaztuk, van olyan f0 6= f éle, ami a két komponens között fut.

A régi színezés takarossága és a piros szabály miatt az f0 színtelen és c(f0) ≤ c(f).

Az F -be f helyett f0-t véve a kapott F0egy minimális költség ˝u feszít ˝ofa lesz. √

(40)

Bizonyítás.

A piros szabályt használjuk: Ekkor f piroslesz.=⇒ Ha f nem éle F -nek √

f F

f0

Ha f ∈ F , akkor az f törlésével az F két komponensre esik.

=⇒ A körnek, amelyre a piros szabályt alkalmaztuk, van olyan f0 6= f éle, ami a két komponens között fut.

A régi színezés takarossága és a piros szabály miatt az f0 színtelen és c(f0) ≤ c(f).

Az F -be f helyett f0-t véve a kapott F0egy minimális költség ˝u feszít ˝ofa lesz. √

(41)

Bizonyítás.

A piros szabályt használjuk: Ekkor f piroslesz.=⇒ Ha f nem éle F -nek √

f F

f0

Ha f ∈ F , akkor az f törlésével az F két komponensre esik.

=⇒ A körnek, amelyre a piros szabályt alkalmaztuk, van olyan f0 6= f éle, ami a két komponens között fut.

A régi színezés takarossága és a piros szabály miatt az f0 színtelen és c(f0) ≤ c(f).

Az F -be f helyett f0-t véve a kapott F0egy minimális költség ˝u feszít ˝ofa lesz. √

(42)

Bizonyítás.

A piros szabályt használjuk: Ekkor f piroslesz.=⇒ Ha f nem éle F -nek √

f F

f0

Ha f ∈ F , akkor az f törlésével az F két komponensre esik.

=⇒ A körnek, amelyre a piros szabályt alkalmaztuk, van olyan f0 6= f éle, ami a két komponens között fut.

A régi színezés takarossága és a piros szabály miatt az f0 színtelen és c(f0) ≤ c(f).

Az F -be f helyett f0-t véve a kapott F0egy minimális költség ˝u feszít ˝ofa lesz. √

(43)

Bizonyítás.

A piros szabályt használjuk: Ekkor f piroslesz.=⇒ Ha f nem éle F -nek √

f F

f0

Ha f ∈ F , akkor az f törlésével az F két komponensre esik.

=⇒ A körnek, amelyre a piros szabályt alkalmaztuk, van olyan f0 6= f éle, ami a két komponens között fut.

A régi színezés takarossága és a piros szabály miatt az f0 színtelen és c(f0) ≤ c(f).

Az F -be f helyett f0-t véve a kapott F0egy minimális költség ˝u feszít ˝ofa lesz. √

(44)

Bizonyítás.

A piros szabályt használjuk: Ekkor f piroslesz.=⇒ Ha f nem éle F -nek √

f F

f0

Ha f ∈ F , akkor az f törlésével az F két komponensre esik.

=⇒ A körnek, amelyre a piros szabályt alkalmaztuk, van olyan f0 6= f éle, ami a két komponens között fut.

A régi színezés takarossága és a piros szabály miatt az f0 színtelen és c(f0) ≤ c(f).

Az F -be f helyett f0-t véve a kapott F0egy minimális költség ˝u feszít ˝ofa lesz. √

(45)

Bizonyítás.

A piros szabályt használjuk: Ekkor f piroslesz.=⇒ Ha f nem éle F -nek √

f F

f0

Ha f ∈ F , akkor az f törlésével az F két komponensre esik.

=⇒ A körnek, amelyre a piros szabályt alkalmaztuk, van olyan f0 6= f éle, ami a két komponens között fut.

A régi színezés takarossága és a piros szabály miatt az f0 színtelen és c(f0) ≤ c(f).

Az F -be f helyett f0-t véve a kapott F0egy minimális költség ˝u feszít ˝ofa lesz. √

(46)

Bizonyítás.

Miért nem akadunk el soha?

Tegyük fel, hogy van még egyf színtelen él.

A színezés takaros =⇒akékélek egy erd ˝ot alkotnak.

=⇒Haf végpontjai ugyanabban akékfában vannak, akkor apiros szabály alkalmazható arra körre, aminek az éleif és azf végpontjait összeköt ˝o (egyetlen)kékút élei.

=⇒Haf különböz ˝okékfákat köt össze, akkor pedig akékszabály m ˝uködik;X legyen az egyik olyan fa csúcshalmaza, amihezf csatlakozik. (Ez utóbbi esetben nem biztos, hogyf fog színt kapni a következ ˝o lépésben.)

(47)

Bizonyítás.

Miért nem akadunk el soha?

Tegyük fel, hogy van még egyf színtelen él.

A színezés takaros =⇒akékélek egy erd ˝ot alkotnak.

=⇒Haf végpontjai ugyanabban akékfában vannak, akkor apiros szabály alkalmazható arra körre, aminek az éleif és azf végpontjait összeköt ˝o (egyetlen)kékút élei.

=⇒Haf különböz ˝okékfákat köt össze, akkor pedig akékszabály m ˝uködik;X legyen az egyik olyan fa csúcshalmaza, amihezf csatlakozik. (Ez utóbbi esetben nem biztos, hogyf fog színt kapni a következ ˝o lépésben.)

(48)

Bizonyítás.

Miért nem akadunk el soha?

Tegyük fel, hogy van még egyf színtelen él.

A színezés takaros =⇒akékélek egy erd ˝ot alkotnak.

=⇒Haf végpontjai ugyanabban akékfában vannak, akkor apiros szabály alkalmazható arra körre, aminek az éleif és azf végpontjait összeköt ˝o (egyetlen)kékút élei.

=⇒Haf különböz ˝okékfákat köt össze, akkor pedig akékszabály m ˝uködik;X legyen az egyik olyan fa csúcshalmaza, amihezf csatlakozik. (Ez utóbbi esetben nem biztos, hogyf fog színt kapni a következ ˝o lépésben.)

(49)

Bizonyítás.

Miért nem akadunk el soha?

Tegyük fel, hogy van még egyf színtelen él.

A színezés takaros =⇒akékélek egy erd ˝ot alkotnak.

=⇒Haf végpontjai ugyanabban akékfában vannak, akkor apiros szabály alkalmazható arra körre, aminek az éleif és azf végpontjait összeköt ˝o (egyetlen)kékút élei.

=⇒Haf különböz ˝okékfákat köt össze, akkor pedig akékszabály m ˝uködik;X legyen az egyik olyan fa csúcshalmaza, amihezf csatlakozik. (Ez utóbbi esetben nem biztos, hogyf fog színt kapni a következ ˝o lépésben.)

(50)

Bizonyítás.

Miért nem akadunk el soha?

Tegyük fel, hogy van még egyf színtelen él.

A színezés takaros =⇒akékélek egy erd ˝ot alkotnak.

=⇒Haf végpontjai ugyanabban akékfában vannak, akkor apiros szabály alkalmazható arra körre, aminek az éleif és azf végpontjait összeköt ˝o (egyetlen)kékút élei.

=⇒Haf különböz ˝okékfákat köt össze, akkor pedig akékszabály m ˝uködik;X legyen az egyik olyan fa csúcshalmaza, amihezf csatlakozik. (Ez utóbbi esetben nem biztos, hogyf fog színt kapni a következ ˝o lépésben.)

(51)

A piros-kék algoritmus

Tétel

Ha apiros-kékalgoritmussal befestjük az összefügg ˝o G= (V,E)gráf minden élét, akkor akékélek egy minimális költség ˝u feszít ˝ofa élei.

S ˝ot, ez már akkor is igaz, amikor van|V| −1kékélünk (és esetleg van még színezetlen él).

Bizonyítás.

Az els ˝o állítás ⇐=a végs ˝o színezés is takaros.

A második: végül összesen|V| −1kékél lesz. Ha már van ennyi, akkor több nem keletkezhet.

(52)

A piros-kék algoritmus

Tétel

Ha apiros-kékalgoritmussal befestjük az összefügg ˝o G= (V,E)gráf minden élét, akkor akékélek egy minimális költség ˝u feszít ˝ofa élei.

S ˝ot, ez már akkor is igaz, amikor van|V| −1kékélünk (és esetleg van még színezetlen él).

Bizonyítás.

Az els ˝o állítás ⇐=a végs ˝o színezés is takaros.

A második: végül összesen|V| −1kékél lesz. Ha már van ennyi, akkor több nem keletkezhet.

(53)

A piros-kék algoritmus

Tétel

Ha apiros-kékalgoritmussal befestjük az összefügg ˝o G= (V,E)gráf minden élét, akkor akékélek egy minimális költség ˝u feszít ˝ofa élei.

S ˝ot, ez már akkor is igaz, amikor van|V| −1kékélünk (és esetleg van még színezetlen él).

Bizonyítás.

Az els ˝o állítás ⇐=a végs ˝o színezés is takaros.

A második: végül összesen|V| −1kékél lesz. Ha már van ennyi, akkor több nem keletkezhet.

(54)

Prim, Kruskal és Bor ˚uvka módszerei

A recepthelyességeszempontjából tehát közömbös a sorrend, hatékonyságszempontjából viszont nem.

PRIM MÓDSZERE: LegyensaGegy rögzített csúcsa. Minden egyes színez ˝o lépéssel azs-et tartalmazóF kékfát b ˝ovítjük. Kezdetben azF csúcshalmaza{s}, végül pedig az egészV. A következ ˝okékélnek az egyik legkisebb súlyú élet választjuk azok közül, amelyekF-beli

pontbólF-en kívüli pontba mennek.

KRUSKAL MÓDSZERE: A következ ˝o befestend ˝of él legyen mindig a legkisebb súlyú színtelen él. Ha azf két végpontja ugyanazonkék fában van, akkor az él legyenpiros, különben pedigkék.

BOR ˚UVKA MÓDSZERE:Minden egyeskékfához válasszuk ki a legkisebb súlyú bel ˝ole kimen ˝o (színtelen) élet. Színezzükkékrea kiválasztott éleket.

(55)

Prim, Kruskal és Bor ˚uvka módszerei

A recepthelyességeszempontjából tehát közömbös a sorrend, hatékonyságszempontjából viszont nem.

PRIM MÓDSZERE: LegyensaGegy rögzített csúcsa. Minden egyes színez ˝o lépéssel azs-et tartalmazóF kékfát b ˝ovítjük. Kezdetben azF csúcshalmaza{s}, végül pedig az egészV.

A következ ˝okékélnek az egyik legkisebb súlyú élet választjuk azok közül, amelyekF-beli

pontbólF-en kívüli pontba mennek.

KRUSKAL MÓDSZERE: A következ ˝o befestend ˝of él legyen mindig a legkisebb súlyú színtelen él. Ha azf két végpontja ugyanazonkék fában van, akkor az él legyenpiros, különben pedigkék.

BOR ˚UVKA MÓDSZERE:Minden egyeskékfához válasszuk ki a legkisebb súlyú bel ˝ole kimen ˝o (színtelen) élet. Színezzükkékrea kiválasztott éleket.

(56)

Prim, Kruskal és Bor ˚uvka módszerei

A recepthelyességeszempontjából tehát közömbös a sorrend, hatékonyságszempontjából viszont nem.

PRIM MÓDSZERE: LegyensaGegy rögzített csúcsa. Minden egyes színez ˝o lépéssel azs-et tartalmazóF kékfát b ˝ovítjük. Kezdetben azF csúcshalmaza{s}, végül pedig az egészV. A következ ˝okékélnek az egyik legkisebb súlyú élet választjuk azok közül, amelyekF-beli

pontbólF-en kívüli pontba mennek.

KRUSKAL MÓDSZERE: A következ ˝o befestend ˝of él legyen mindig a legkisebb súlyú színtelen él. Ha azf két végpontja ugyanazonkék fában van, akkor az él legyenpiros, különben pedigkék.

BOR ˚UVKA MÓDSZERE:Minden egyeskékfához válasszuk ki a legkisebb súlyú bel ˝ole kimen ˝o (színtelen) élet. Színezzükkékrea kiválasztott éleket.

(57)

Prim, Kruskal és Bor ˚uvka módszerei

A recepthelyességeszempontjából tehát közömbös a sorrend, hatékonyságszempontjából viszont nem.

PRIM MÓDSZERE: LegyensaGegy rögzített csúcsa. Minden egyes színez ˝o lépéssel azs-et tartalmazóF kékfát b ˝ovítjük. Kezdetben azF csúcshalmaza{s}, végül pedig az egészV. A következ ˝okékélnek az egyik legkisebb súlyú élet választjuk azok közül, amelyekF-beli

pontbólF-en kívüli pontba mennek.

KRUSKAL MÓDSZERE: A következ ˝o befestend ˝of él legyen mindig a legkisebb súlyú színtelen él.

Ha azf két végpontja ugyanazonkék fában van, akkor az él legyenpiros, különben pedigkék.

BOR ˚UVKA MÓDSZERE:Minden egyeskékfához válasszuk ki a legkisebb súlyú bel ˝ole kimen ˝o (színtelen) élet. Színezzükkékrea kiválasztott éleket.

(58)

Prim, Kruskal és Bor ˚uvka módszerei

A recepthelyességeszempontjából tehát közömbös a sorrend, hatékonyságszempontjából viszont nem.

PRIM MÓDSZERE: LegyensaGegy rögzített csúcsa. Minden egyes színez ˝o lépéssel azs-et tartalmazóF kékfát b ˝ovítjük. Kezdetben azF csúcshalmaza{s}, végül pedig az egészV. A következ ˝okékélnek az egyik legkisebb súlyú élet választjuk azok közül, amelyekF-beli

pontbólF-en kívüli pontba mennek.

KRUSKAL MÓDSZERE: A következ ˝o befestend ˝of él legyen mindig a legkisebb súlyú színtelen él. Ha azf két végpontja ugyanazonkék fában van, akkor az él legyenpiros, különben pedigkék.

BOR ˚UVKA MÓDSZERE:Minden egyeskékfához válasszuk ki a legkisebb súlyú bel ˝ole kimen ˝o (színtelen) élet. Színezzükkékrea kiválasztott éleket.

(59)

Prim, Kruskal és Bor ˚uvka módszerei

A recepthelyességeszempontjából tehát közömbös a sorrend, hatékonyságszempontjából viszont nem.

PRIM MÓDSZERE: LegyensaGegy rögzített csúcsa. Minden egyes színez ˝o lépéssel azs-et tartalmazóF kékfát b ˝ovítjük. Kezdetben azF csúcshalmaza{s}, végül pedig az egészV. A következ ˝okékélnek az egyik legkisebb súlyú élet választjuk azok közül, amelyekF-beli

pontbólF-en kívüli pontba mennek.

KRUSKAL MÓDSZERE: A következ ˝o befestend ˝of él legyen mindig a legkisebb súlyú színtelen él. Ha azf két végpontja ugyanazonkék fában van, akkor az él legyenpiros, különben pedigkék.

BOR ˚UVKA MÓDSZERE:Minden egyeskékfához válasszuk ki a legkisebb súlyú bel ˝ole kimen ˝o (színtelen) élet. Színezzükkékrea kiválasztott éleket.

(60)

Prim módszere

Mindig akék szabálytalkalmazzuk: VálasszukX-nek a meglév ˝o fa ponthalmazát.

Akékélek végig fát alkotnak.

procedurePrim (G: gráf;varF: élek halmaza); var

U: csúcsok halmaza; u,v: csúcsok;

begin

F :=∅;U:={1}; whileU 6=V do begin

(∗) legyen(u,v)egy legkisebb súlyú olyan él, melyreu ∈U ésv ∈V\U;

F :=F ∪ {(u,v)}; U:=U∪ {v} end

end

Jól m ˝uködik, mertpiros-kékalgoritmus.

(61)

Prim módszere

Mindig akék szabálytalkalmazzuk: VálasszukX-nek a meglév ˝o fa ponthalmazát. Akékélek végig fát alkotnak.

procedurePrim (G: gráf;varF: élek halmaza); var

U: csúcsok halmaza; u,v: csúcsok;

begin

F :=∅;U:={1}; whileU 6=V do begin

(∗) legyen(u,v)egy legkisebb súlyú olyan él, melyreu ∈U ésv ∈V\U;

F :=F ∪ {(u,v)}; U:=U∪ {v} end

end

Jól m ˝uködik, mertpiros-kékalgoritmus.

(62)

Prim módszere

Mindig akék szabálytalkalmazzuk: VálasszukX-nek a meglév ˝o fa ponthalmazát. Akékélek végig fát alkotnak.

procedurePrim (G: gráf;varF: élek halmaza);

var

U: csúcsok halmaza;

u,v: csúcsok;

begin

F :=∅;U:={1};

whileU 6=V do begin

(∗) legyen(u,v)egy legkisebb súlyú olyan él, melyreu ∈U ésv ∈V\U;

F :=F ∪ {(u,v)};

U:=U∪ {v}

Jól m ˝uködik, mertpiros-kékalgoritmus.

(63)

Prim módszere

Mindig akék szabálytalkalmazzuk: VálasszukX-nek a meglév ˝o fa ponthalmazát. Akékélek végig fát alkotnak.

procedurePrim (G: gráf;varF: élek halmaza);

var

U: csúcsok halmaza;

u,v: csúcsok;

begin

F :=∅;U:={1};

whileU 6=V do begin

(∗) legyen(u,v)egy legkisebb súlyú olyan él, melyreu ∈U ésv ∈V\U;

F :=F ∪ {(u,v)};

U:=U∪ {v}

end end

(64)

Prim módszere

Mindig akék szabálytalkalmazzuk: VálasszukX-nek a meglév ˝o fa ponthalmazát. Akékélek végig fát alkotnak.

procedurePrim (G: gráf;varF: élek halmaza);

var

U: csúcsok halmaza;

u,v: csúcsok;

begin

F :=∅;U:={1};

whileU 6=V do begin

(∗) legyen(u,v)egy legkisebb súlyú olyan él, melyreu ∈U ésv ∈V\U;

F :=F ∪ {(u,v)};

U:=U∪ {v}

(65)

Naiv implementáció

A gráf az élsúlyokat tartalmazóCadjacencia-mátrixával adott.

Az épp aktuálisUésV \Uhalmazok közt futó legkisebb súlyú élek kiválasztása a legegyszer ˝ubb implementációval: O(n2)lépés

=⇒MindenV \U-beli csúcshoz tároljuk, hogy milyen messze van az U halmaztól:

KÖZEL[i] =

∗ hai∈U

egy azi-hez legközelebbiU-beli csúcs hai∈V \U

MINSÚLY[i] =

∗ hai∈U

C[i,j] ha KÖZEL[i] =j 6=∗

A következ ˝o kék él az(i,KÖZEL[i])élek közül kerül majd ki =⇒kékes élek.

(66)

Naiv implementáció

A gráf az élsúlyokat tartalmazóCadjacencia-mátrixával adott.

Az épp aktuálisUésV \Uhalmazok közt futó legkisebb súlyú élek kiválasztása a legegyszer ˝ubb implementációval: O(n2)lépés

=⇒MindenV \U-beli csúcshoz tároljuk, hogy milyen messze van az U halmaztól:

KÖZEL[i] =

∗ hai∈U

egy azi-hez legközelebbiU-beli csúcs hai∈V \U

MINSÚLY[i] =

∗ hai∈U

C[i,j] ha KÖZEL[i] =j 6=∗

A következ ˝o kék él az(i,KÖZEL[i])élek közül kerül majd ki =⇒kékes élek.

(67)

Naiv implementáció

A gráf az élsúlyokat tartalmazóCadjacencia-mátrixával adott.

Az épp aktuálisUésV \Uhalmazok közt futó legkisebb súlyú élek kiválasztása a legegyszer ˝ubb implementációval: O(n2)lépés

=⇒MindenV \U-beli csúcshoz tároljuk, hogy milyen messze van az U halmaztól:

KÖZEL[i] =

∗ hai∈U

egy azi-hez legközelebbiU-beli csúcs hai∈V \U

MINSÚLY[i] =

∗ hai∈U

C[i,j] ha KÖZEL[i] =j 6=∗

A következ ˝o kék él az(i,KÖZEL[i])élek közül kerül majd ki =⇒kékes élek.

(68)

Naiv implementáció

A gráf az élsúlyokat tartalmazóCadjacencia-mátrixával adott.

Az épp aktuálisUésV \Uhalmazok közt futó legkisebb súlyú élek kiválasztása a legegyszer ˝ubb implementációval: O(n2)lépés

=⇒MindenV \U-beli csúcshoz tároljuk, hogy milyen messze van az U halmaztól:

KÖZEL[i] =

∗ hai∈U

egy azi-hez legközelebbiU-beli csúcs hai∈V \U

MINSÚLY[i] =

∗ hai∈U

C[i,j] ha KÖZEL[i] =j 6=∗

A következ ˝o kék él az(i,KÖZEL[i])élek közül kerül majd ki =⇒kékes élek.

(69)

Naiv implementáció

A gráf az élsúlyokat tartalmazóCadjacencia-mátrixával adott.

Az épp aktuálisUésV \Uhalmazok közt futó legkisebb súlyú élek kiválasztása a legegyszer ˝ubb implementációval: O(n2)lépés

=⇒MindenV \U-beli csúcshoz tároljuk, hogy milyen messze van az U halmaztól:

KÖZEL[i] =

∗ hai∈U

egy azi-hez legközelebbiU-beli csúcs hai∈V \U

MINSÚLY[i] =

∗ hai∈U

C[i,j] ha KÖZEL[i] =j 6=∗

A következ ˝o kék él az(i,KÖZEL[i])élek közül kerül majd ki =⇒kékes élek.

(70)

Naiv implementáció

A gráf az élsúlyokat tartalmazóCadjacencia-mátrixával adott.

Az épp aktuálisUésV \Uhalmazok közt futó legkisebb súlyú élek kiválasztása a legegyszer ˝ubb implementációval: O(n2)lépés

=⇒MindenV \U-beli csúcshoz tároljuk, hogy milyen messze van az U halmaztól:

KÖZEL[i] =

∗ hai∈U

egy azi-hez legközelebbiU-beli csúcs hai∈V \U

MINSÚLY[i] =

∗ hai∈U

C[i,j] ha KÖZEL[i] =j 6=∗

A következ ˝o kék él az(i,KÖZEL[i])élek közül kerül majd ki ⇒kékes

(71)

KÖZEL[i] :=

∗ hai=1

1 hai6=1 MINSÚLY[i] :=

∗ hai =1

C[i,1] hai 6=1

A következ ˝o kék él kiválasztása: megkeressük a MINSÚLY[ ] tömb minimumát, =⇒legrövidebbkékes éllegyen ak-ba mutató. A minimumkeresés költsége:O(n)lépés.

A(KÖZEL[k],k)élet fogjukF-be tenni,k-t pedigU-ba.

=⇒MINSÚLY[k] :=KÖZEL[k] :=∗.

A két tömb felfrissítése:AC[k,i]és a MINSÚLY[i]értékeket (i ∈V \U)kell összevetni.=⇒

ifKÖZEL[i]6=∗andC[k,i]<MINSÚLY[i]then begin KÖZEL[i] :=k;

MINSÚLY[i] :=C[k,i] end

Lépésszám: Egy él színezésO(n) =⇒O(n2)

(72)

KÖZEL[i] :=

∗ hai=1

1 hai6=1 MINSÚLY[i] :=

∗ hai =1

C[i,1] hai 6=1

A következ ˝o kék él kiválasztása: megkeressük a MINSÚLY[ ] tömb minimumát, =⇒legrövidebbkékes éllegyen ak-ba mutató.

A minimumkeresés költsége:O(n)lépés.

A(KÖZEL[k],k)élet fogjukF-be tenni,k-t pedigU-ba.

=⇒MINSÚLY[k] :=KÖZEL[k] :=∗.

A két tömb felfrissítése:AC[k,i]és a MINSÚLY[i]értékeket (i ∈V \U)kell összevetni.=⇒

ifKÖZEL[i]6=∗andC[k,i]<MINSÚLY[i]then begin KÖZEL[i] :=k;

MINSÚLY[i] :=C[k,i] end

Lépésszám: Egy él színezésO(n) =⇒O(n2)

(73)

KÖZEL[i] :=

∗ hai=1

1 hai6=1 MINSÚLY[i] :=

∗ hai =1

C[i,1] hai 6=1

A következ ˝o kék él kiválasztása: megkeressük a MINSÚLY[ ] tömb minimumát, =⇒legrövidebbkékes éllegyen ak-ba mutató.

A minimumkeresés költsége:O(n)lépés.

A(KÖZEL[k],k)élet fogjukF-be tenni,k-t pedigU-ba.

=⇒MINSÚLY[k] :=KÖZEL[k] :=∗.

A két tömb felfrissítése:AC[k,i]és a MINSÚLY[i]értékeket (i ∈V \U)kell összevetni.=⇒

ifKÖZEL[i]6=∗andC[k,i]<MINSÚLY[i]then begin KÖZEL[i] :=k;

MINSÚLY[i] :=C[k,i] end

Lépésszám: Egy él színezésO(n) =⇒O(n2)

(74)

KÖZEL[i] :=

∗ hai=1

1 hai6=1 MINSÚLY[i] :=

∗ hai =1

C[i,1] hai 6=1

A következ ˝o kék él kiválasztása: megkeressük a MINSÚLY[ ] tömb minimumát, =⇒legrövidebbkékes éllegyen ak-ba mutató.

A minimumkeresés költsége:O(n)lépés.

A(KÖZEL[k],k)élet fogjukF-be tenni,k-t pedigU-ba.

=⇒MINSÚLY[k] :=KÖZEL[k] :=∗.

A két tömb felfrissítése:AC[k,i]és a MINSÚLY[i]értékeket (i ∈V \U)kell összevetni.=⇒

ifKÖZEL[i]6=∗andC[k,i]<MINSÚLY[i]then begin KÖZEL[i] :=k;

MINSÚLY[i] :=C[k,i] end

Lépésszám: Egy él színezésO(n) =⇒O(n2)

(75)

KÖZEL[i] :=

∗ hai=1

1 hai6=1 MINSÚLY[i] :=

∗ hai =1

C[i,1] hai 6=1

A következ ˝o kék él kiválasztása: megkeressük a MINSÚLY[ ] tömb minimumát, =⇒legrövidebbkékes éllegyen ak-ba mutató.

A minimumkeresés költsége:O(n)lépés.

A(KÖZEL[k],k)élet fogjukF-be tenni,k-t pedigU-ba.

=⇒MINSÚLY[k] :=KÖZEL[k] :=∗.

A két tömb felfrissítése:AC[k,i]és a MINSÚLY[i]értékeket (i ∈V \U)kell összevetni.=⇒

ifKÖZEL[i]6=∗andC[k,i]<MINSÚLY[i]then begin KÖZEL[i] :=k;

MINSÚLY[i] :=C[k,i] end

Lépésszám: Egy él színezésO(n) =⇒O(n2)

(76)

KÖZEL[i] :=

∗ hai=1

1 hai6=1 MINSÚLY[i] :=

∗ hai =1

C[i,1] hai 6=1

A következ ˝o kék él kiválasztása: megkeressük a MINSÚLY[ ] tömb minimumát, =⇒legrövidebbkékes éllegyen ak-ba mutató.

A minimumkeresés költsége:O(n)lépés.

A(KÖZEL[k],k)élet fogjukF-be tenni,k-t pedigU-ba.

=⇒MINSÚLY[k] :=KÖZEL[k] :=∗.

A két tömb felfrissítése:AC[k,i]és a MINSÚLY[i]értékeket (i ∈V \U)kell összevetni.

=⇒

ifKÖZEL[i]6=∗andC[k,i]<MINSÚLY[i]then begin KÖZEL[i] :=k;

MINSÚLY[i] :=C[k,i] end

Lépésszám: Egy él színezésO(n) =⇒O(n2)

(77)

KÖZEL[i] :=

∗ hai=1

1 hai6=1 MINSÚLY[i] :=

∗ hai =1

C[i,1] hai 6=1

A következ ˝o kék él kiválasztása: megkeressük a MINSÚLY[ ] tömb minimumát, =⇒legrövidebbkékes éllegyen ak-ba mutató.

A minimumkeresés költsége:O(n)lépés.

A(KÖZEL[k],k)élet fogjukF-be tenni,k-t pedigU-ba.

=⇒MINSÚLY[k] :=KÖZEL[k] :=∗.

A két tömb felfrissítése:AC[k,i]és a MINSÚLY[i]értékeket (i ∈V \U)kell összevetni.=⇒

ifKÖZEL[i]6=∗andC[k,i]<MINSÚLY[i]then begin KÖZEL[i] :=k;

MINSÚLY[i] :=C[k,i]

end

Lépésszám: Egy él színezésO(n) =⇒O(n2)

(78)

KÖZEL[i] :=

∗ hai=1

1 hai6=1 MINSÚLY[i] :=

∗ hai =1

C[i,1] hai 6=1

A következ ˝o kék él kiválasztása: megkeressük a MINSÚLY[ ] tömb minimumát, =⇒legrövidebbkékes éllegyen ak-ba mutató.

A minimumkeresés költsége:O(n)lépés.

A(KÖZEL[k],k)élet fogjukF-be tenni,k-t pedigU-ba.

=⇒MINSÚLY[k] :=KÖZEL[k] :=∗.

A két tömb felfrissítése:AC[k,i]és a MINSÚLY[i]értékeket (i ∈V \U)kell összevetni.=⇒

ifKÖZEL[i]6=∗andC[k,i]<MINSÚLY[i]then begin KÖZEL[i] :=k;

(79)

KÖZEL[i] :=

∗ hai=1

1 hai6=1 MINSÚLY[i] :=

∗ hai =1

C[i,1] hai 6=1

A következ ˝o kék él kiválasztása: megkeressük a MINSÚLY[ ] tömb minimumát, =⇒legrövidebbkékes éllegyen ak-ba mutató.

A minimumkeresés költsége:O(n)lépés.

A(KÖZEL[k],k)élet fogjukF-be tenni,k-t pedigU-ba.

=⇒MINSÚLY[k] :=KÖZEL[k] :=∗.

A két tömb felfrissítése:AC[k,i]és a MINSÚLY[i]értékeket (i ∈V \U)kell összevetni.=⇒

ifKÖZEL[i]6=∗andC[k,i]<MINSÚLY[i]then begin KÖZEL[i] :=k;

MINSÚLY[i] :=C[k,i]

end

(80)

Kupacos-éllistás implementáció

Építsünk kupacot az aktuálisU ésV\U közötti élekb ˝ol.

(Néhány) MINTÖR-rel lépéssel kiválaszthatjuk a minimálisat, amit kékreszínezünk.

MegváltozottU =⇒BESZÚR-ral beszúrjuk az új éleket. Nem tör ˝odünk azokkal az élekkel, amik ígyU-n belül mennek

=⇒ezért lehet, hogy MINTÖR-nél ilyet kapunk els ˝ore. Lépésszám: A kupac mérete sosem haladja mege-t.

A kezdeti kupacépítésO(e), az egyes m ˝uveletek végrehajtása pedig O(loge)id ˝ot vesz igénybe.

Összesen kevesebb, mintedarab BESZÚR és legfeljebbedarab MINTÖR m ˝uveletet végzünk =⇒O(eloge).

Johnson: Kombináljuk a két ötletet, nyilvántartjuk a közeli csúcsokat, ésd-kupacban tároljuk akékeséleket.

=⇒han1,5≤e =⇒O(e)

(81)

Kupacos-éllistás implementáció

Építsünk kupacot az aktuálisU ésV\U közötti élekb ˝ol.

(Néhány) MINTÖR-rel lépéssel kiválaszthatjuk a minimálisat, amit kékreszínezünk.

MegváltozottU =⇒BESZÚR-ral beszúrjuk az új éleket. Nem tör ˝odünk azokkal az élekkel, amik ígyU-n belül mennek

=⇒ezért lehet, hogy MINTÖR-nél ilyet kapunk els ˝ore. Lépésszám: A kupac mérete sosem haladja mege-t.

A kezdeti kupacépítésO(e), az egyes m ˝uveletek végrehajtása pedig O(loge)id ˝ot vesz igénybe.

Összesen kevesebb, mintedarab BESZÚR és legfeljebbedarab MINTÖR m ˝uveletet végzünk =⇒O(eloge).

Johnson: Kombináljuk a két ötletet, nyilvántartjuk a közeli csúcsokat, ésd-kupacban tároljuk akékeséleket.

=⇒han1,5≤e =⇒O(e)

(82)

Kupacos-éllistás implementáció

Építsünk kupacot az aktuálisU ésV\U közötti élekb ˝ol.

(Néhány) MINTÖR-rel lépéssel kiválaszthatjuk a minimálisat, amit kékreszínezünk.

MegváltozottU =⇒BESZÚR-ral beszúrjuk az új éleket.

Nem tör ˝odünk azokkal az élekkel, amik ígyU-n belül mennek

=⇒ezért lehet, hogy MINTÖR-nél ilyet kapunk els ˝ore. Lépésszám: A kupac mérete sosem haladja mege-t.

A kezdeti kupacépítésO(e), az egyes m ˝uveletek végrehajtása pedig O(loge)id ˝ot vesz igénybe.

Összesen kevesebb, mintedarab BESZÚR és legfeljebbedarab MINTÖR m ˝uveletet végzünk =⇒O(eloge).

Johnson: Kombináljuk a két ötletet, nyilvántartjuk a közeli csúcsokat, ésd-kupacban tároljuk akékeséleket.

=⇒han1,5≤e =⇒O(e)

(83)

Kupacos-éllistás implementáció

Építsünk kupacot az aktuálisU ésV\U közötti élekb ˝ol.

(Néhány) MINTÖR-rel lépéssel kiválaszthatjuk a minimálisat, amit kékreszínezünk.

MegváltozottU =⇒BESZÚR-ral beszúrjuk az új éleket.

Nem tör ˝odünk azokkal az élekkel, amik ígyU-n belül mennek

=⇒ezért lehet, hogy MINTÖR-nél ilyet kapunk els ˝ore. Lépésszám: A kupac mérete sosem haladja mege-t.

A kezdeti kupacépítésO(e), az egyes m ˝uveletek végrehajtása pedig O(loge)id ˝ot vesz igénybe.

Összesen kevesebb, mintedarab BESZÚR és legfeljebbedarab MINTÖR m ˝uveletet végzünk =⇒O(eloge).

Johnson: Kombináljuk a két ötletet, nyilvántartjuk a közeli csúcsokat, ésd-kupacban tároljuk akékeséleket.

=⇒han1,5≤e =⇒O(e)

(84)

Kupacos-éllistás implementáció

Építsünk kupacot az aktuálisU ésV\U közötti élekb ˝ol.

(Néhány) MINTÖR-rel lépéssel kiválaszthatjuk a minimálisat, amit kékreszínezünk.

MegváltozottU =⇒BESZÚR-ral beszúrjuk az új éleket.

Nem tör ˝odünk azokkal az élekkel, amik ígyU-n belül mennek

=⇒ezért lehet, hogy MINTÖR-nél ilyet kapunk els ˝ore.

Lépésszám: A kupac mérete sosem haladja mege-t.

A kezdeti kupacépítésO(e), az egyes m ˝uveletek végrehajtása pedig O(loge)id ˝ot vesz igénybe.

Összesen kevesebb, mintedarab BESZÚR és legfeljebbedarab MINTÖR m ˝uveletet végzünk =⇒O(eloge).

Johnson: Kombináljuk a két ötletet, nyilvántartjuk a közeli csúcsokat, ésd-kupacban tároljuk akékeséleket.

=⇒han1,5≤e =⇒O(e)

(85)

Kupacos-éllistás implementáció

Építsünk kupacot az aktuálisU ésV\U közötti élekb ˝ol.

(Néhány) MINTÖR-rel lépéssel kiválaszthatjuk a minimálisat, amit kékreszínezünk.

MegváltozottU =⇒BESZÚR-ral beszúrjuk az új éleket.

Nem tör ˝odünk azokkal az élekkel, amik ígyU-n belül mennek

=⇒ezért lehet, hogy MINTÖR-nél ilyet kapunk els ˝ore.

Lépésszám: A kupac mérete sosem haladja mege-t.

A kezdeti kupacépítésO(e), az egyes m ˝uveletek végrehajtása pedig O(loge)id ˝ot vesz igénybe.

Összesen kevesebb, mintedarab BESZÚR és legfeljebbedarab MINTÖR m ˝uveletet végzünk =⇒O(eloge).

Johnson: Kombináljuk a két ötletet, nyilvántartjuk a közeli csúcsokat, ésd-kupacban tároljuk akékeséleket.

=⇒han1,5≤e =⇒O(e)

(86)

Kupacos-éllistás implementáció

Építsünk kupacot az aktuálisU ésV\U közötti élekb ˝ol.

(Néhány) MINTÖR-rel lépéssel kiválaszthatjuk a minimálisat, amit kékreszínezünk.

MegváltozottU =⇒BESZÚR-ral beszúrjuk az új éleket.

Nem tör ˝odünk azokkal az élekkel, amik ígyU-n belül mennek

=⇒ezért lehet, hogy MINTÖR-nél ilyet kapunk els ˝ore.

Lépésszám: A kupac mérete sosem haladja mege-t.

A kezdeti kupacépítésO(e), az egyes m ˝uveletek végrehajtása pedig O(loge)id ˝ot vesz igénybe.

Összesen kevesebb, mintedarab BESZÚR és legfeljebbedarab MINTÖR m ˝uveletet végzünk =⇒O(eloge).

Johnson: Kombináljuk a két ötletet, nyilvántartjuk a közeli csúcsokat, ésd-kupacban tároljuk akékeséleket.

=⇒han1,5≤e =⇒O(e)

(87)

Kupacos-éllistás implementáció

Építsünk kupacot az aktuálisU ésV\U közötti élekb ˝ol.

(Néhány) MINTÖR-rel lépéssel kiválaszthatjuk a minimálisat, amit kékreszínezünk.

MegváltozottU =⇒BESZÚR-ral beszúrjuk az új éleket.

Nem tör ˝odünk azokkal az élekkel, amik ígyU-n belül mennek

=⇒ezért lehet, hogy MINTÖR-nél ilyet kapunk els ˝ore.

Lépésszám: A kupac mérete sosem haladja mege-t.

A kezdeti kupacépítésO(e), az egyes m ˝uveletek végrehajtása pedig O(loge)id ˝ot vesz igénybe.

Összesen kevesebb, mintedarab BESZÚR és legfeljebbedarab MINTÖR m ˝uveletet végzünk

=⇒O(eloge).

Johnson: Kombináljuk a két ötletet, nyilvántartjuk a közeli csúcsokat, ésd-kupacban tároljuk akékeséleket.

=⇒han1,5≤e =⇒O(e)

(88)

Kupacos-éllistás implementáció

Építsünk kupacot az aktuálisU ésV\U közötti élekb ˝ol.

(Néhány) MINTÖR-rel lépéssel kiválaszthatjuk a minimálisat, amit kékreszínezünk.

MegváltozottU =⇒BESZÚR-ral beszúrjuk az új éleket.

Nem tör ˝odünk azokkal az élekkel, amik ígyU-n belül mennek

=⇒ezért lehet, hogy MINTÖR-nél ilyet kapunk els ˝ore.

Lépésszám: A kupac mérete sosem haladja mege-t.

A kezdeti kupacépítésO(e), az egyes m ˝uveletek végrehajtása pedig O(loge)id ˝ot vesz igénybe.

Összesen kevesebb, mintedarab BESZÚR és legfeljebbedarab MINTÖR m ˝uveletet végzünk =⇒O(eloge).

Johnson: Kombináljuk a két ötletet, nyilvántartjuk a közeli csúcsokat, ésd-kupacban tároljuk akékeséleket.

=⇒han1,5≤e =⇒O(e)

(89)

Kupacos-éllistás implementáció

Építsünk kupacot az aktuálisU ésV\U közötti élekb ˝ol.

(Néhány) MINTÖR-rel lépéssel kiválaszthatjuk a minimálisat, amit kékreszínezünk.

MegváltozottU =⇒BESZÚR-ral beszúrjuk az új éleket.

Nem tör ˝odünk azokkal az élekkel, amik ígyU-n belül mennek

=⇒ezért lehet, hogy MINTÖR-nél ilyet kapunk els ˝ore.

Lépésszám: A kupac mérete sosem haladja mege-t.

A kezdeti kupacépítésO(e), az egyes m ˝uveletek végrehajtása pedig O(loge)id ˝ot vesz igénybe.

Összesen kevesebb, mintedarab BESZÚR és legfeljebbedarab MINTÖR m ˝uveletet végzünk =⇒O(eloge).

Johnson: Kombináljuk a két ötletet, nyilvántartjuk a közeli csúcsokat, ésd-kupacban tároljuk akékeséleket.

=⇒han1,5≤e =⇒O(e)

(90)

Kupacos-éllistás implementáció

Építsünk kupacot az aktuálisU ésV\U közötti élekb ˝ol.

(Néhány) MINTÖR-rel lépéssel kiválaszthatjuk a minimálisat, amit kékreszínezünk.

MegváltozottU =⇒BESZÚR-ral beszúrjuk az új éleket.

Nem tör ˝odünk azokkal az élekkel, amik ígyU-n belül mennek

=⇒ezért lehet, hogy MINTÖR-nél ilyet kapunk els ˝ore.

Lépésszám: A kupac mérete sosem haladja mege-t.

A kezdeti kupacépítésO(e), az egyes m ˝uveletek végrehajtása pedig O(loge)id ˝ot vesz igénybe.

Összesen kevesebb, mintedarab BESZÚR és legfeljebbedarab MINTÖR m ˝uveletet végzünk =⇒O(eloge).

Johnson: Kombináljuk a két ötletet, nyilvántartjuk a közeli csúcsokat,

(91)

Kruskal módszere

Mindig a legkisebb súlyú olyan élet színezzükkékre, amely még nem alkot kört az eddigikékélekkel.

=⇒Akékélek végig egy erd ˝ot határoznak meg, akkor van kész, ha feszít ˝ofa lesz.

=⇒Az újkékél az eddigi erd ˝o két komponensét fogja összekötni. Kezdetbennkomponens, egy él színezésével eggyel csökken a komponensek száma.

(92)

Kruskal módszere

Mindig a legkisebb súlyú olyan élet színezzükkékre, amely még nem alkot kört az eddigikékélekkel.

=⇒Akékélek végig egy erd ˝ot határoznak meg, akkor van kész, ha feszít ˝ofa lesz.

=⇒Az újkékél az eddigi erd ˝o két komponensét fogja összekötni. Kezdetbennkomponens, egy él színezésével eggyel csökken a komponensek száma.

(93)

Kruskal módszere

Mindig a legkisebb súlyú olyan élet színezzükkékre, amely még nem alkot kört az eddigikékélekkel.

=⇒Akékélek végig egy erd ˝ot határoznak meg, akkor van kész, ha feszít ˝ofa lesz.

=⇒Az újkékél az eddigi erd ˝o két komponensét fogja összekötni.

Kezdetbennkomponens, egy él színezésével eggyel csökken a komponensek száma.

(94)

Kruskal módszere

Mindig a legkisebb súlyú olyan élet színezzükkékre, amely még nem alkot kört az eddigikékélekkel.

=⇒Akékélek végig egy erd ˝ot határoznak meg, akkor van kész, ha feszít ˝ofa lesz.

=⇒Az újkékél az eddigi erd ˝o két komponensét fogja összekötni.

Kezdetbennkomponens, egy él színezésével eggyel csökken a komponensek száma.

(95)

Kruskal módszere

procedureKruskal (G: gráf;varF,H: élek halmaza);

begin

F :=∅;H :=E; whileH6=∅do begin

Töröljük aH minimális súlyú(v,w)élét.

HaF ∪ {(v,w)}-ben nincs kör

(azaz av,w pontok különböz ˝o kék fákban vannak), akkor F :=F∪ {(v,w)}

end end

=⇒Ha a(v,w)él kört eredményez, akkorpirosél, ha pedig nem, akkorkékél.

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

így az összes szállítási költség úgy lesz minimális,. ha a termelés az

Ha az optimális Hamilton-körb ˝ol elhagyunk egy élet = ⇒ egy legalább s súlyú feszít ˝ofát kapunk.. A módszer legfeljebb 2-szer akkora utat ad, mint

Ez optimális, nincs olyan keres ˝o algoritmus, ami minden esetben kevesebb mint dlog 2 (n + 1)e kérdést

Ha P = NP teljesülne, akkor minden olyan problémára, amelyre van hatékony tanúsítvány (azaz NP-beli), lenne polinomiális algoritmus is. Fogunk mutatni olyan problámákat,

Mindig a legkisebb súlyú olyan élet színezzük kékre, ami még nem alkot kört az eddigi kék élekkel.. = ⇒ A kék élek végig egy erd ˝ot határoznak meg, akkor van kész,

Zöld: P-hurok (N1) Lila: switch-1 (N2) Kék: switch-2 (N3) Sárga: konzervált β-szál. Piros: konzervált

ábra: A cselezés és szerelés gyakoriságának átlag és szórás értékei nemzetközi (kék oszlop) és magyar (piros oszlop) mérkőzéseken. Ennek oka lehet a gyakrabban

így négy darab egybevágó három szö ­ get kapsz, am elyeknek egyik oldala piros és két oldala kék.. Az élek hossza egész centim éterekben