gráfok 4. előadás

26
Gráfok 4. előadás

Upload: others

Post on 10-Feb-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gráfok 4. előadás

Gráfok

4. előadás

Page 2: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Körmentes-e egy irányított gráf?

Alapötlet: Ha a bejárás során nincs visszamutató él, akkor a gráf körmentes.

Körmentes?(p):

km:=igaz; Honnan(p):=p

Mélységi bejárás(p,km)

Körmentes?:=km

Eljárás vége.

Feltétel: erősen összefüggő vagy összefüggő (a példában) az 1. pontból. Az előremutató

és a kereszt-élek nem okoznak kört(fekete pontba vezetnek).

Szlávi Péter, Zsakó László: Gráfok IV. 2/26

Page 3: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Mélységi bejárás(p,km):

Szín(p):=szürke

Ciklus iKi(p)

Ha Szín(i)=fehér

akkor Ha km akkor Mélységi bejárás(i,km)

különben Ha szín(i)=szürke akkor km:=hamis

Ciklus vége

Szín(p):=fekete

Eljárás vége.

Szlávi Péter, Zsakó László: Gráfok IV. 3/26

Page 4: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Körmentes-e egy irányítatlan összefüggő gráf?

Alapötlet: Ha a bejárás során nincs visszamutató él, akkor a gráf körmentes.

Körmentes?(p):

km:=igaz; Honnan(1):=1

Mélységi bejárás(1,km)

Körmentes?:=km

Eljárás vége.

Itt előremutató él és kereszt-él nincs.

Szlávi Péter, Zsakó László: Gráfok IV. 4/26

Page 5: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

A szülőbe vezető él nem visszamutató!

Kell a Honnan vektor!

Mélységi bejárás(p,km):

Szín(p):=szürke

Ciklus iKi(p)

Ha Szín(i)=fehér

akkor Ha km akkor Honnan(i):=p

Mélységi bejárás(i,km)

különben Ha szín(i)=szürke és Honnan(p)≠i

akkor km:=hamis

Ciklus vége

Szín(p):=fekete

Eljárás vége.

Szlávi Péter, Zsakó László: Gráfok IV. 5/26

Page 6: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Topologikus rendezés

Alapötlet: Egy irányított gráf mélységi bejárásakor az elhagyási idők szerinti sorrend pontosan a topologikus sorrend ellentettje – elhagyáskor tegyük a pontokat egy verembe!

Topologikus rendezés(p):

Mélységi bejárás_v(p)

Veremkiírás

Függvény vége.1

27

36

45

Szlávi Péter, Zsakó László: Gráfok IV. 6/26

Page 7: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Pontok osztályozása:

u őse v-nek a mélységi feszítőfában Elér(u)<Elér(v)<Elhagy(v)<Elhagy(u).

u és v különböző ágon van a mélységi feszítőfában Elér(u)>Elhagy(v) vagy Elér(v)>Elhagy(u).

Szlávi Péter, Zsakó László: Gráfok IV. 7/26

Page 8: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Mélységi bejárás_v(p):

Szín(p):=szürke

Ciklus iKi(p)

Ha Szín(i)=fehér akkor Mélységi bejárás_v(i)

Ciklus vége

Szín(p):=fekete; Verembe(p)

Eljárás vége.

Szlávi Péter, Zsakó László: Gráfok IV. 8/26

Page 9: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Erősen összefüggő komponensek

Erősen összefüggő komponens: bármely pontjából bármely másik pontjába vezet út.

Két erősen összefüggő komponens között csak egyirányú kapcsolat lehet.

Ha minden él irányát megfordítjuk, az az erősen összefüggő komponenseken nem változtat.

Szlávi Péter, Zsakó László: Gráfok IV. 9/26

Page 10: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Erősen összefüggő komponensek

Járjuk be a gráfot mélységi bejárással, elhagyási időket számolva!

Állítsuk elő a gráf fordítottját!

Járjuk be a fordított gráfot, a kezdőpontokat mindig az eredeti elhagyási idő szerint fordított sorrendben véve!

Minden ilyen bejárás egy erősen összefüggő komponenst ad meg – ami kimaradt, azokra újabb bejárások.

Szlávi Péter, Zsakó László: Gráfok IV. 10/26

Page 11: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Erősen összefüggő komponensek

Körben levő pontok az élek megfordítása után is körben maradnak.

Fában levő pontokból elhagyási idő szerinti fordított sorrendben nem

vezet ki új él.

Szlávi Péter, Zsakó László: Gráfok IV. 11/26

Page 12: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 9:31

Erősen összefüggő komponensek(Db,K):

Szín():=(fehér,…,fehér); Db:=0

Ciklus i=1-től Pontszám-ig

Ha Szín(i)=fehér akkor Mélységi bejárás_v(i)

Ciklus vége

Élfordítás; Szín(1..Pontszám):=fehér

Ciklus i=1-től Pontszám-ig

Veremből(p)

Ha Szín(p)=fehér akkor Db:=Db+1; K(Db):=p

Mélységi bejárás(p,Db)

Ciklus vége

Eljárás vége.

Szlávi Péter, Zsakó László: Gráfok IV. 12/26

Page 13: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Mélységi bejárás_v(p,Db):

Szín(p):=szürke; Komponens(p):=Db

Ciklus iKi(p)

Ha Szín(i)=fehér akkor Mélységi bejárás_v(i)

Ciklus vége

Szín(p):=fekete; Verembe(p)

Eljárás vége.

Szlávi Péter, Zsakó László: Gráfok IV. 13/26

Page 14: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Elvágó élek irányítatlan gráfban

Alapötlet: Egy (u,v) él akkor és csak akkor elvágó él, ha a mélységi feszítőfában a v pontból, valamint a v ponttól lefelé levő pontok közül legmagasabbra legfeljebb a v-ig van visszamutató él.

Jelölje l(v) a v gyökerű részfa legmagasabbra vezető éle elérési idejét, D(v) a v pont elérési idejét!

Megjegyzés: l(v)≤D(v).

nekvgyerekeyhaylmin

éltóvisszamutax,vhaxDmin

vD

minvl

Szlávi Péter, Zsakó László: Gráfok IV. 14/26

Page 15: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Elvágó élek irányítatlan gráfban

Az ábrán a pontoktól balra a D(), jobbra az l() értékek.

nekvgyerekeyhaylmin

éltóvisszamutax,vhaxDmin

vD

minvl

Szlávi Péter, Zsakó László: Gráfok IV.

1

3 4

2

7

56

8

0

1 11

2

3 4

65 3

3

33

0

0 0

15/26

Page 16: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

A (p,i) akkor elvágó él, ha az i gyökerű

részfából nem vezet vissza i fölé él.

Mélységi bejárás(p):

Szín(p):=szürke; idő:=idő+1; D(p):=idő; l(p):=D(p)

Ciklus iKi(p)

Ha Szín(i)=fehér

akkor Táv(i):=Táv(p)+1; Mélységi bejárás(i)

Ha l(i)<l(p) akkor l(p):=l(i)

különben ha Szin(i)=szürke és Táv(i)<Táv(p)-1

akkor Ha l(p)>D(i) akkor l(p):=D(i)

Ha l(i)=D(i) akkor Sorba(p,i)

Ciklus vége

Szín(p):=fekete

Eljárás vége.

Szlávi Péter, Zsakó László: Gráfok IV. 16/26

Page 17: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Elvágó pontok

Alapötlet:

A gyökér elvágó pont, ha a mélységi feszítőfában legalább 2 gyereke van. Egy u pont akkor elvágó pont, ha legalább egy gyerekéből nem vezet élu fölé (azaz (u,v) él, amire: l(v)≥D(u))

Ha lenne (8,10) él, a 2 akkor is elvágó

pont lenne.

Szlávi Péter, Zsakó László: Gráfok IV.

1

3 4

7

56

8

0

1 11

2

3 4

65 5

3

33

0

0 0

9

2

1

101313

1

17/26

Page 18: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Mélységi bejárás(p):Szín(p):=szürke; idő:=idő+1; D(p):=idől(p):=D(p); van:=hamis; db:=0Ciklus iKi(p)

Ha Szín(i)=fehérakkor Szín(i):=szürke

Mélységi bejárás(i); db:=db+1Ha l(i)<l(p) akkor l(p):=l(i)

különben ha Szin(i)=szürke és D(i)<D(p)-1akkor Ha D(i)<l(p) akkor l(p):=D(i)

Ha l(i)≥D(p) akkor van:=igazCiklus végeSzín(p):=feketeHa van vagy D(p)=1 és db>1 akkor Sorba(p)

Eljárás vége.

Legalább 1 ág leszakad, vagy a gyökér-

nek legalább 2 részfája van.Szlávi Péter, Zsakó László: Gráfok IV. 18/26

Page 19: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Euler séta

Olyan út, amely az A pontból a B pontba vezet és a gráf minden élén pontosan egyszer halad át.

Csak olyan gráfra van Euler séta, amelyben A és B foka páratlan, a többi ponté pedig páros. Ha a gráf ilyen, akkor biztosan van Euler séta!

Megjegyzés: Euler körről beszélünk A=B, ekkor A foka is páros.

Szlávi Péter, Zsakó László: Gráfok IV. 19/26

Page 20: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Keressünk egy utat A-ból B-be!

A kimaradó élek biztos olyan utakon vannak, amelyek az (A,B) út adott pontjából indulnak és oda is érkeznek.

A mélységi bejáráskor engedjük meg korábbi pontok újabb elérését – nem kellenek a színek!

A mélységi bejárás során ugyanazt az élt kétszer nem használhatjuk – előre haladáskor töröljük az éleket!

Szlávi Péter, Zsakó László: Gráfok IV. 20/26

Page 21: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Mélységi bejárás(p):

Ciklus iKi(p)

Éltörlés(p,i); Mélységi bejárás(i)

Ciklus vége

Verembe(p)

Eljárás vége.

Szlávi Péter, Zsakó László: Gráfok IV. 21/26

Page 22: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Pontszám/2 él esetén is van megoldás, de

lényegesen bonyolultabb.

Hamilton kör, út

A minden ponton pontosan egyszer átmenő út (kör) NP teljes feladat, azaz hatékonyan nem oldható meg.

Ha mindenhonnan van pontszám*2/3 él, akkor viszont van rá egyszerű megoldás:

A pontok számának kétharmadáig biztosan van olyan él, ami újabb pontba vezet.

Ezután vagy van él további pontba, vagy minden él a már bejárt pontokba vezet. De ekkor létezni kell két szomszédos pontnak, amelyik mindegyikébe vezet él, azaz az új pont beszúrható közéjük!

Szlávi Péter, Zsakó László: Gráfok IV. 22/26

Page 23: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Dominátor halmaz

Minimális számú pontot tartalmazó halmaz, amelyből a gráf összes pontja elérhető.

Rendezzük a pontokat elhagyási idő szerint csökkenő sorrendbe!

Ekkor, ha van él i-ből j-be, de nincs j-ből i-be, akkor az i előbb lesz, mint a j (azaz j nem lehet dominátor halmazbeli)!

Ha mindkét irányú él van, akkor havalamelyik dominátor halmazbeli, akkor bármelyik lehet.

Szlávi Péter, Zsakó László: Gráfok IV.

2

3 4

1

7

5

6

9,10

1,8

11,14

2,7

5,6

3,4

12,13

8 9

10

15,20

17,18

16,19

23/26

Page 24: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Dominátor:

Szín(1..Pontszám):=fehér

Ciklus i=1-től Pontszám-ig

Ha Szín(i)=fehér akkor Bejárás_v(i)

Ciklus vége

db:=0

Ciklus i=1-től Pontszám-ig

Veremből(j)

ha Szín(j)=fekete akkor db:=db+1; D(db):=j

Bejárás_p(j)

Ciklus vége

Függvény vége.

Szlávi Péter, Zsakó László: Gráfok IV. 24/26

Page 25: Gráfok 4. előadás

Mélységi bejárás alkalmazásai

2020. 09. 29. 8:03

Bejárás_v(p):

Szín(p):=szürke

Ciklus iKi(p)Ha Szín(i)=fehér akkor Bejárás_v(i)

Ciklus vége

Szín(p):=fekete; Verembe(p)

Eljárás vége.

Bejárás_p(p):

Szín(p):=piros

Ciklus iKi(p)Ha Szín(i)=fekete akkor Bejárás_p(i)

Ciklus vége

Eljárás vége.

Szlávi Péter, Zsakó László: Gráfok IV. 25/26

Page 26: Gráfok 4. előadás

Gráfok

4. előadás vége