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

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

Diszkrét matematika 2.

Diszkrét matematika 2.C szakirány

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

Diszkrét matematika 2.C szakirány

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

Diszkrét matematika 2.C szakirány

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. 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.

SzA II. gyakorlat, szeptember 18.

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.

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

22. GRÁFOK ÁBRÁZOLÁSA

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

Algoritmuselmélet 7. előadás

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

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

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 12.

1. tétel - Gráfok alapfogalmai

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

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

1. Szerencsére elmúlt a veszély, pánikra semmi ok. Luke Skywalker ugyan kivont lézerkarddal ment órára a jediképzőben, de a birodalmi gárda

Gráfok csúcsszínezései

Gráfelméleti alapfogalmak

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

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

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

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:

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

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

SzA X/XI. gyakorlat, november 14/19.

Diszkrét matematika 1. estis képzé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.

Gráfelméleti feladatok. c f

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

Megoldások 7. gyakorlat Síkgráfok, dualitás, gyenge izomorfia, Whitney-tételei

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

Bevezetés a számításelméletbe II. Zárthelyi feladatok április 23.

Diszkrét matematika 2.C szakirány

Algoritmusok bonyolultsága

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

Algoritmuselmélet 1. előadás

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

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

Adatszerkezetek II. 1. előadás

Algoritmuselmélet 2. előadás

Adatszerkezetek 2. Dr. Iványi Péter

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

Gráfelméleti modell alkalmazása épít ipari kivitelezés ütemezésére

Gráf-algoritmusok Legrövidebb utak

Algoritmuselmélet 1. előadás

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

Algoritmusok bonyolultsága

Az optimális megoldást adó algoritmusok

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

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

Síkbarajzolható gráfok Április 26.

Algoritmuselmélet 18. előadás

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

KOMBINATORIKA ElŐADÁS Matematika BSc hallgatók számára. Klikkek gráfokban-1. Definíció. Egy G gráfban egy K V(G) csúcshalmazt klikknek nevezünk, ha K

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

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

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

HAMILTON KÖR: minden csúcson PONTOSAN egyszer áthaladó kör. Forrá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 11. előadás

Gráfalgoritmusok ismétlés ősz

Bevezetés a számításelméletbe II. 1. zh,

Ramsey-féle problémák

Algoritmuselmélet 12. előadás

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

Érdemes egy n*n-es táblázatban (sorok-lányok, oszlopok-fiúk) ábrázolni a két színnel, mely éleket húztuk be (pirossal, kékkel)

A számítástudomány alapjai

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Bevezetés a számításelméletbe (MS1 BS)

Gráfelméleti feladatok programozóknak

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.

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

1. előadás: Halmazelmélet, számfogalom, teljes

Közösségek keresése nagy gráfokban

Hasonlósági keresés molekulagráfokon: legnagyobb közös részgráf keresése

KOVÁCS BÉLA, MATEMATIKA I.

1. zárthelyi,

Diszkrét matematika II. gyakorlat

Síkbarajzolható gráfok, duális gráf

PÁROS HOSSZÚ KÖRÖK GRÁFOKBAN

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

Diszkrét matematika 2.

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.

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.C szakirány

Diszkrét matematika 2.

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

Gráfelméleti alapfogalmak

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

Átírás:

Bevezetés a Számításelméletbe II. 6. előadás Sali Attila Budapest Műszaki és Gazdaságtudományi Egyetem Számítástudományi és Információelméleti Tsz. I. B. 7/b sali@cs.bme.hu 004 március 6.

A kritikus út módszere (PERT-módszer)

A kritikus út módszere (PERT-módszer) Az,,emeletekre bontás fontos alkalmazása az úgynevezett PERT módszer.

A kritikus út módszere (PERT-módszer) Az,,emeletekre bontás fontos alkalmazása az úgynevezett PERT módszer. Az elnevezés az angol,,program Evaluation and Review Technique rövidítéséből származik.

A kritikus út módszere (PERT-módszer) Az,,emeletekre bontás fontos alkalmazása az úgynevezett PERT módszer. Az elnevezés az angol,,program Evaluation and Review Technique rövidítéséből származik. Tegyük fel, hogy egy összetett feladatot több alvállalkozóval kell elvégeztetni. Az egyes részfeladatok nem végezhetőek el egymástól függetlenül: pl. egy házépítés során a kőművesmunkák nyilván megelőzik a festési munkákat.

Modell: G gráf élsúlyokkal. V (G) ={részfeladatok}, (x, y) E(G) l súllyal: y részfeladat nem kezdhető el korábban, mint az x kezdése után l idővel.

Modell: G gráf élsúlyokkal. V (G) ={részfeladatok}, (x, y) E(G) l súllyal: y részfeladat nem kezdhető el korábban, mint az x kezdése után l idővel. l = 0 is lehetséges. J H G E K D F I C B A L 4 8 4 9 6 9 0 7 8 9 6 7 8 6 5

Mikor tud elindulni Kis Béla?

felébredés gatya nadrág reggeli 0 nyakkendõ fogmosás zokni cipõ trikó ing 4 5 zakó elindulás

felébredés gatya nadrág reggeli 0 nyakkendõ fogmosás zokni cipõ trikó ing 4 5 zakó elindulás elindulás

felébredés gatya nadrág reggeli 0 nyakkendõ fogmosás zokni cipõ trikó ing 4 5 zakó elindulás fogmosás zakó elindulás cipõ 4

felébredés gatya nadrág reggeli 0 nyakkendõ fogmosás zokni cipõ trikó ing 4 5 zakó elindulás reggeli 0 fogmosás nyakkendõ 5 zakó elindulás zokni cipõ 4 nadrág

felébredés gatya nadrág reggeli 0 nyakkendõ fogmosás zokni cipõ trikó ing 4 5 zakó elindulás reggeli 0 fogmosás ing nyakkendõ 5 zakó elindulás gatya zokni cipõ 4 nadrág

felébredés gatya nadrág reggeli 0 nyakkendõ fogmosás zokni cipõ trikó ing 4 5 zakó elindulás trikó ing reggeli fogmosás 0 5 nyakkendõ zakó elindulás gatya zokni cipõ 4 nadrág

felébredés gatya nadrág reggeli zokni cipõ trikó ing fogmosás elindulás zakó 4 0 5 nyakkendõ elindulás fogmosás zakó cipõ 4 reggeli zokni nadrág 5 0 nyakkendõ gatya ing trikó felébredés

felébredés gatya nadrág reggeli zokni cipõ trikó ing fogmosás elindulás zakó 4 0 5 nyakkendõ elindulás fogmosás zakó cipõ 4 reggeli zokni nadrág 5 0 nyakkendõ gatya ing trikó felébredés

felébredés gatya nadrág reggeli zokni cipõ trikó ing fogmosás elindulás zakó 4 0 5 nyakkendõ elindulás fogmosás zakó cipõ 4 reggeli zokni nadrág 5 0 nyakkendõ gatya ing trikó felébredés

felébredés gatya nadrág reggeli zokni cipõ trikó ing fogmosás elindulás zakó 4 0 5 nyakkendõ elindulás fogmosás zakó cipõ 4 reggeli zokni nadrág 5 0 nyakkendõ gatya ing trikó felébredés 5

felébredés gatya nadrág reggeli zokni cipõ trikó ing fogmosás elindulás zakó 4 0 5 nyakkendõ elindulás fogmosás zakó cipõ 4 reggeli zokni nadrág 5 0 nyakkendõ gatya ing trikó felébredés 5 6 0

felébredés gatya nadrág reggeli zokni cipõ trikó ing fogmosás elindulás zakó 4 0 5 nyakkendõ elindulás fogmosás zakó cipõ 4 reggeli zokni nadrág 5 0 nyakkendõ gatya ing trikó felébredés 5 6 0 4

felébredés gatya nadrág reggeli zokni cipõ trikó ing fogmosás elindulás zakó 4 0 5 nyakkendõ elindulás fogmosás zakó cipõ 4 reggeli zokni nadrág 5 0 nyakkendõ gatya ing trikó felébredés 5 6 0 4

G-ben nincs irányított kör.

G-ben nincs irányított kör.ha egy összehasonlítási gráfot irányítottan tekintünk (azaz x y (x, y) E), az ilyen.

G-ben nincs irányított kör.ha egy összehasonlítási gráfot irányítottan tekintünk (azaz x y (x, y) E), az ilyen. Megfordítva, ha egy irányított körmentes gráfba behúzzuk a tranzitivtásból adódó éleket (képezzük a tranzitív lezártját), akkor összehasonlítási gráfot kapunk.

G-ben nincs irányított kör.ha egy összehasonlítási gráfot irányítottan tekintünk (azaz x y (x, y) E), az ilyen. Megfordítva, ha egy irányított körmentes gráfba behúzzuk a tranzitivtásból adódó éleket (képezzük a tranzitív lezártját), akkor összehasonlítási gráfot kapunk. A gráf emeletekre bontható:

G-ben nincs irányított kör.ha egy összehasonlítási gráfot irányítottan tekintünk (azaz x y (x, y) E), az ilyen. Megfordítva, ha egy irányított körmentes gráfba behúzzuk a tranzitivtásból adódó éleket (képezzük a tranzitív lezártját), akkor összehasonlítási gráfot kapunk. A gráf emeletekre bontható:először a nyelő(k) jobbszélső halmazba, Nyelő: olyan csúcs melyből nem megy ki él 4

G-ben nincs irányított kör.ha egy összehasonlítási gráfot irányítottan tekintünk (azaz x y (x, y) E), az ilyen. Megfordítva, ha egy irányított körmentes gráfba behúzzuk a tranzitivtásból adódó éleket (képezzük a tranzitív lezártját), akkor összehasonlítási gráfot kapunk. A gráf emeletekre bontható:először a nyelő(k) jobbszélső halmazba, ennek elhagyása után keletkező nyelő(ke)t a jobbról második halmazba és így tovább. (jobbról balra!) Nyelő: olyan csúcs melyből nem megy ki él 4

G-ben nincs irányított kör.ha egy összehasonlítási gráfot irányítottan tekintünk (azaz x y (x, y) E), az ilyen. Megfordítva, ha egy irányított körmentes gráfba behúzzuk a tranzitivtásból adódó éleket (képezzük a tranzitív lezártját), akkor összehasonlítási gráfot kapunk. A gráf emeletekre bontható:először a nyelő(k) jobbszélső halmazba, ennek elhagyása után keletkező nyelő(ke)t a jobbról második halmazba és így tovább. (jobbról balra!) Ezek után balról jobbra, szintenként, meghatározhatjuk minden tevékenység elkezdésének lehetséges legkorábbi időpontját. Nyelő: olyan csúcs melyből nem megy ki él 4

G-ben nincs irányított kör.ha egy összehasonlítási gráfot irányítottan tekintünk (azaz x y (x, y) E), az ilyen. Megfordítva, ha egy irányított körmentes gráfba behúzzuk a tranzitivtásból adódó éleket (képezzük a tranzitív lezártját), akkor összehasonlítási gráfot kapunk. A gráf emeletekre bontható:először a nyelő(k) jobbszélső halmazba, ennek elhagyása után keletkező nyelő(ke)t a jobbról második halmazba és így tovább. (jobbról balra!) Ezek után balról jobbra, szintenként, meghatározhatjuk minden tevékenység elkezdésének lehetséges legkorábbi időpontját. A bal szélső tevékenység(ek) azonnal (0. időpontban) megkezdhető(ek), Nyelő: olyan csúcs melyből nem megy ki él 4

G-ben nincs irányított kör.ha egy összehasonlítási gráfot irányítottan tekintünk (azaz x y (x, y) E), az ilyen. Megfordítva, ha egy irányított körmentes gráfba behúzzuk a tranzitivtásból adódó éleket (képezzük a tranzitív lezártját), akkor összehasonlítási gráfot kapunk. A gráf emeletekre bontható:először a nyelő(k) jobbszélső halmazba, ennek elhagyása után keletkező nyelő(ke)t a jobbról második halmazba és így tovább. (jobbról balra!) Ezek után balról jobbra, szintenként, meghatározhatjuk minden tevékenység elkezdésének lehetséges legkorábbi időpontját. A bal szélső tevékenység(ek) azonnal (0. időpontban) megkezdhető(ek), egy y-hoz x,x,... tevékenységek, melyekre (x i,y) E(G), legkorábban a t,t,... időpontban kezdhetőek el, akkor y legkorábban Nyelő: olyan csúcs melyből nem megy ki él 4

G-ben nincs irányított kör.ha egy összehasonlítási gráfot irányítottan tekintünk (azaz x y (x, y) E), az ilyen. Megfordítva, ha egy irányított körmentes gráfba behúzzuk a tranzitivtásból adódó éleket (képezzük a tranzitív lezártját), akkor összehasonlítási gráfot kapunk. A gráf emeletekre bontható:először a nyelő(k) jobbszélső halmazba, ennek elhagyása után keletkező nyelő(ke)t a jobbról második halmazba és így tovább. (jobbról balra!) Ezek után balról jobbra, szintenként, meghatározhatjuk minden tevékenység elkezdésének lehetséges legkorábbi időpontját. A bal szélső tevékenység(ek) azonnal (0. időpontban) megkezdhető(ek), egy y-hoz x,x,... tevékenységek, melyekre (x i,y) E(G), legkorábban a t,t,... időpontban kezdhetőek el, akkor y legkorábban max(t + l(x,y), t + l(x,y),...) időpontban kezdhető. Nyelő: olyan csúcs melyből nem megy ki él 4

Kritikus út

Kritikus út Megjelöljük (nyelő(k)ből visszafelé) azokat az (x i,y) éleket, melyeken a maximumok felvétetnek.

Kritikus út Megjelöljük (nyelő(k)ből visszafelé) azokat az (x i,y) éleket, melyeken a maximumok felvétetnek. A G gráf kritikus élei, van legalább egy irányított út a forrásból a nyelőbe csupa kritikus élen.

Kritikus út Megjelöljük (nyelő(k)ből visszafelé) azokat az (x i,y) éleket, melyeken a maximumok felvétetnek. A G gráf kritikus élei, van legalább egy irányított út a forrásból a nyelőbe csupa kritikus élen. Ezek a kritikus útak: a leghosszabb utak a forrásból a nyelőbe.

Kritikus út Megjelöljük (nyelő(k)ből visszafelé) azokat az (x i,y) éleket, melyeken a maximumok felvétetnek. A G gráf kritikus élei, van legalább egy irányított út a forrásból a nyelőbe csupa kritikus élen. Ezek a kritikus útak: a leghosszabb utak a forrásból a nyelőbe. Az ilyen kritikus utakon lévő pontoknak megfelelő részfeladatok bármelyikének késedelmes elvégzése az egész összetett feladat befejezését késleltetné (innét a kritikus út elnevezés).

Kritikus út Megjelöljük (nyelő(k)ből visszafelé) azokat az (x i,y) éleket, melyeken a maximumok felvétetnek. A G gráf kritikus élei, van legalább egy irányított út a forrásból a nyelőbe csupa kritikus élen. Ezek a kritikus útak: a leghosszabb utak a forrásból a nyelőbe. Az ilyen kritikus utakon lévő pontoknak megfelelő részfeladatok bármelyikének késedelmes elvégzése az egész összetett feladat befejezését késleltetné (innét a kritikus út elnevezés). Ha viszont egy pont nincs kritikus úton, akkor a megfelelő feladat késedelmes elvégzése bizonyos határon belül még elfogadható. 5

Bonyolultság

Bonyolultság A szükséges lépések száma a G pontjainak fokszámösszegével (vagyis e-vel) arányos.

Bonyolultság A szükséges lépések száma a G pontjainak fokszámösszegével (vagyis e-vel) arányos. Ugyanis minden él hosszát pontosan egyszer vesszük figyelembe a maximumok számításakor.

Bonyolultság A szükséges lépések száma a G pontjainak fokszámösszegével (vagyis e-vel) arányos. Ugyanis minden él hosszát pontosan egyszer vesszük figyelembe a maximumok számításakor. A szintekre bontás is (alkalmas gráf tárolás esetén) fokszám összeggel arányos (minden élet figyelembe kell venni, amikor töröljük az egyik végpontját.)

Bonyolultság A szükséges lépések száma a G pontjainak fokszámösszegével (vagyis e-vel) arányos. Ugyanis minden él hosszát pontosan egyszer vesszük figyelembe a maximumok számításakor. A szintekre bontás is (alkalmas gráf tárolás esetén) fokszám összeggel arányos (minden élet figyelembe kell venni, amikor töröljük az egyik végpontját.) A leghosszabb út meghatározása ellentétben a legrövidebb útéval (lásd Algoritmuselmélet) általában nem végezhető el polinom időben. Ebben a speciális esetben azért tudtunk gyors algoritmust adni, mert G- ben nincsenek irányított körök. 6

Hogyan tároljunk gráfokat?

Hogyan tároljunk gráfokat? Egy v pontú és e élű G gráf szomszédossági mátrixa v, illeszkedési mátrixa ve helyet foglal el.

Hogyan tároljunk gráfokat? Egy v pontú és e élű G gráf szomszédossági mátrixa v, illeszkedési mátrixa ve helyet foglal el. Egyszerű gráfokra e v(v )/ irányítatlan gráfok esetén és e v(v ) irányított gráfok esetén.

Hogyan tároljunk gráfokat? Egy v pontú és e élű G gráf szomszédossági mátrixa v, illeszkedési mátrixa ve helyet foglal el. Egyszerű gráfokra e v(v )/ irányítatlan gráfok esetén és e v(v ) irányított gráfok esetén. Illeszkedési mátrix: (v )e zérus!!

Hogyan tároljunk gráfokat? Egy v pontú és e élű G gráf szomszédossági mátrixa v, illeszkedési mátrixa ve helyet foglal el. Egyszerű gráfokra e v(v )/ irányítatlan gráfok esetén és e v(v ) irányított gráfok esetén. Illeszkedési mátrix: (v )e zérus!! Ha egy gráf ritka (vagyis e cv ), akkor a szomszédossági mátrixban is rengeteg a zérus.

Hogyan tároljunk gráfokat? Egy v pontú és e élű G gráf szomszédossági mátrixa v, illeszkedési mátrixa ve helyet foglal el. Egyszerű gráfokra e v(v )/ irányítatlan gráfok esetén és e v(v ) irányított gráfok esetén. Illeszkedési mátrix: (v )e zérus!! Ha egy gráf ritka (vagyis e cv ), akkor a szomszédossági mátrixban is rengeteg a zérus. Nagy tárigény + időigény!!

Hogyan tároljunk gráfokat? Egy v pontú és e élű G gráf szomszédossági mátrixa v, illeszkedési mátrixa ve helyet foglal el. Egyszerű gráfokra e v(v )/ irányítatlan gráfok esetén és e v(v ) irányított gráfok esetén. Illeszkedési mátrix: (v )e zérus!! Ha egy gráf ritka (vagyis e cv ), akkor a szomszédossági mátrixban is rengeteg a zérus. Nagy tárigény + időigény!! Például egy csúcsról eldönteni hogy nyelő, szomszédossági mátrix esetén annak egy teljes oszlopát ( v ) adatot kell kiolvasni. 7

Szomszédossági tömbök és listák

Szomszédossági tömbök és listák 4 4 4 5 4 4 5 Sokszor jó a gráfot úgy tárolni, hogy minden pontjához felsoroljuk a szomszédjait.

Szomszédossági tömbök és listák 4 4 4 5 4 4 5 Sokszor jó a gráfot úgy tárolni, hogy minden pontjához felsoroljuk a szomszédjait. A szomszédossági listák általában különböző hosszúságúak,

Szomszédossági tömbök és listák 4 4 4 5 4 4 5 Sokszor jó a gráfot úgy tárolni, hogy minden pontjához felsoroljuk a szomszédjait. A szomszédossági listák általában különböző hosszúságúak,= egy közös tömbben tároljuk, és egy külön tömbben a,,mutatókat (pointer), hogy hol kezdőnek kell egy adott pont szomszédai.

Szomszédossági tömbök és listák 4 4 4 5 4 4 5 Sokszor jó a gráfot úgy tárolni, hogy minden pontjához felsoroljuk a szomszédjait. A szomszédossági listák általában különböző hosszúságúak,= egy közös tömbben tároljuk, és egy külön tömbben a,,mutatókat (pointer), hogy hol kezdőnek kell egy adott pont szomszédai. 4 4 4 5 4 és 4 6 8

Szomszédossági tömbök és listák 4 4 4 5 4 4 5 Sokszor jó a gráfot úgy tárolni, hogy minden pontjához felsoroljuk a szomszédjait. A szomszédossági listák általában különböző hosszúságúak,= egy közös tömbben tároljuk, és egy külön tömbben a,,mutatókat (pointer), hogy hol kezdőnek kell egy adott pont szomszédai. 4 4 4 5 4 és 4 6 8 szomszédossági tömb 8

Néha jó, ha az egyes listák rendezettek.

Néha jó, ha az egyes listák rendezettek. Az első tömb hossza a fokszámok összege, vagyis e, a második tömbé pedig v. Így a teljes tárigény e + v.

Néha jó, ha az egyes listák rendezettek. Az első tömb hossza a fokszámok összege, vagyis e, a második tömbé pedig v. Így a teljes tárigény e + v. Ez az elképzelhető minimális tárigénynek közel kétszerese (az {i, j} élt i szomszédainál is, j szomszédainál is felsoroljuk). (megtérül!)

Néha jó, ha az egyes listák rendezettek. Az első tömb hossza a fokszámok összege, vagyis e, a második tömbé pedig v. Így a teljes tárigény e + v. Ez az elképzelhető minimális tárigénynek közel kétszerese (az {i, j} élt i szomszédainál is, j szomszédainál is felsoroljuk). (megtérül!) Irányított gráfok esetén minden i ponthoz felsoroljuk azokat a j pontokat, melyekbe (i, j) irányított él vezet i-ből;

Néha jó, ha az egyes listák rendezettek. Az első tömb hossza a fokszámok összege, vagyis e, a második tömbé pedig v. Így a teljes tárigény e + v. Ez az elképzelhető minimális tárigénynek közel kétszerese (az {i, j} élt i szomszédainál is, j szomszédainál is felsoroljuk). (megtérül!) Irányított gráfok esetén minden i ponthoz felsoroljuk azokat a j pontokat, melyekbe (i, j) irányított él vezet i-ből; vagy azokat a k pontokat, melyekből (k, i) irányított él vezet i-be.

Néha jó, ha az egyes listák rendezettek. Az első tömb hossza a fokszámok összege, vagyis e, a második tömbé pedig v. Így a teljes tárigény e + v. Ez az elképzelhető minimális tárigénynek közel kétszerese (az {i, j} élt i szomszédainál is, j szomszédainál is felsoroljuk). (megtérül!) Irányított gráfok esetén minden i ponthoz felsoroljuk azokat a j pontokat, melyekbe (i, j) irányított él vezet i-ből; vagy azokat a k pontokat, melyekből (k, i) irányított él vezet i-be.ha mindkét listát megadjuk: a kétszeres tárigény számos algoritmusnál nagyságrenddel csökkenti a lépésszám-igényt.

Néha jó, ha az egyes listák rendezettek. Az első tömb hossza a fokszámok összege, vagyis e, a második tömbé pedig v. Így a teljes tárigény e + v. Ez az elképzelhető minimális tárigénynek közel kétszerese (az {i, j} élt i szomszédainál is, j szomszédainál is felsoroljuk). (megtérül!) Irányított gráfok esetén minden i ponthoz felsoroljuk azokat a j pontokat, melyekbe (i, j) irányított él vezet i-ből; vagy azokat a k pontokat, melyekből (k, i) irányított él vezet i-be.ha mindkét listát megadjuk: a kétszeres tárigény számos algoritmusnál nagyságrenddel csökkenti a lépésszám-igényt. Rendezett szomszédossági tömb:az egyes pontok szomszédai növekvő sorrendben. Rendezések: további idő igény, de ez később megtérülhet. 9

Láncolt szomszédossági listák

Láncolt szomszédossági listák Ha gyakran kell a gráfból egy élt (vagy akár pontot) elhagyni, akkor a szomszédsági tömb nem megfelelő:

Láncolt szomszédossági listák Ha gyakran kell a gráfból egy élt (vagy akár pontot) elhagyni, akkor a szomszédsági tömb nem megfelelő: a beszúrandó vagy elhagyandó elem után következők eggyel eltolása akár n darab további lépést is igényelhet.

Láncolt szomszédossági listák Ha gyakran kell a gráfból egy élt (vagy akár pontot) elhagyni, akkor a szomszédsági tömb nem megfelelő: a beszúrandó vagy elhagyandó elem után következők eggyel eltolása akár n darab további lépést is igényelhet.= Olyan listát adunk, aminek első tömbje a szomszédossági lista elemeit tetszőleges sorrendben tartalmazhatja.

Láncolt szomszédossági listák Ha gyakran kell a gráfból egy élt (vagy akár pontot) elhagyni, akkor a szomszédsági tömb nem megfelelő: a beszúrandó vagy elhagyandó elem után következők eggyel eltolása akár n darab további lépést is igényelhet.= Olyan listát adunk, aminek első tömbje a szomszédossági lista elemeit tetszőleges sorrendben tartalmazhatja. 0

4 4 4 5 4 4 5 4 4 5 4 4 6 4 5 7 0 8 9

4 4 4 5 4 4 5 4 4 5 4 4 6 4 5 7 0 8 9 A v hosszú tömb i-ik eleme mutatja meg, hogy hol kezdjük el az i-ik pont szomszédainak kiolvasását az első e hosszú tömbből. Az alatta lévő szám (egy második e hosszú tömb megfelelő eleme) mutatja meg, hogy hol folytatódik, illetve egy speciális szimbólum jelzi, hogy vége.

4 4 5 4 4 5 {, 4} él elhagyása után:

4 4 5 4 4 5 {, 4} él elhagyása után: 4 4 5 4 4 6 5 4 0 8 9

4 5 4 5 4 4 5 {, 5} él bevétele után:

4 5 4 5 4 4 5 {, 5} él bevétele után: 4 4 5 4 4 5 6 4 5 7 0 8 9 4

A B C D Tárigény v e + v e + v 4e + v Két pont szomszédosságának eldöntése Pont szomszédainak megjelölése d log d d v d d d Minden él megjelölése v e e e Új él hozzávétele e e Régi él elvétele e e d Régi pont elvétele v e e min(e,d ) Jelölések: v pontszám, e élszám, d maximális fokszám, A: szomszédsági mátrix, B: szomszédsági tömb, C: rendezett szomszédsági tömb, D: láncolt szomszédsági lista. 4

Mantel tétele Legfeljebb hány éle lehet egy n-csúcsú egyszerű gráfnak, ha nem tartalmaz háromszöget?

Mantel tétele Legfeljebb hány éle lehet egy n-csúcsú egyszerű gráfnak, ha nem tartalmaz háromszöget?. Tétel. Ha egy n-csúcsú egyszerű gráf nem tartalmaz háromszöget, akkor éleinek száma legfeljebb n n. 5

BIZONYÍTÁS Ha G nem tartalmaz háromszöget, akkor α(g) (G). 6

BIZONYÍTÁS Ha G nem tartalmaz háromszöget, akkor α(g) (G). Ugyanakkor E(G) τ(g) (G) mindig igaz.(!) 6

BIZONYÍTÁS Ha G nem tartalmaz háromszöget, akkor α(g) (G). Ugyanakkor E(G) τ(g) (G) mindig igaz.(!) Gallai tétele szerint α(g) + τ(g) = V (G) = n. 6

BIZONYÍTÁS Ha G nem tartalmaz háromszöget, akkor α(g) (G). Ugyanakkor E(G) τ(g) (G) mindig igaz.(!) Gallai tétele szerint α(g) + τ(g) = V (G) = n. Összerakva: E(G) τ(g) (G) τ(g) α(g) = (n α(g)) α(g) n n. 6

BIZONYÍTÁS Ha G nem tartalmaz háromszöget, akkor α(g) (G). Ugyanakkor E(G) τ(g) (G) mindig igaz.(!) Gallai tétele szerint α(g) + τ(g) = V (G) = n. Összerakva: E(G) τ(g) (G) τ(g) α(g) = (n α(g)) α(g) n n. A K n, n teljes páros gráf mutatja, hogy a tétel állítása éles. 6

BIZONYÍTÁS Ha G nem tartalmaz háromszöget, akkor α(g) (G). Ugyanakkor E(G) τ(g) (G) mindig igaz.(!) Gallai tétele szerint α(g) + τ(g) = V (G) = n. Összerakva: E(G) τ(g) (G) τ(g) α(g) = (n α(g)) α(g) n n. A K n, n teljes páros gráf mutatja, hogy a tétel állítása éles. Azt, hogy ez az egyetlen ilyen gráf, általánosabban bizonyítjuk. 6

Turán gráfok. Definíció. Definiáljuk a T n,m -t: Legyen n = qm + r, ahol 0 r < m. A gráf n pontját osszuk m osztályra, r darab q + pontú, m r q pontú. Két pont közt él különböző osztályban vannak. m-osztályú gráfnak nevezünk egy gráfot, ha a pontjai m osztályba oszthatók úgy, hogy az egy osztályban levő pontok között nem fut él. T n,m egy m-osztályú teljes gráf.

Turán gráfok. Definíció. Definiáljuk a T n,m -t: Legyen n = qm + r, ahol 0 r < m. A gráf n pontját osszuk m osztályra, r darab q + pontú, m r q pontú. Két pont közt él különböző osztályban vannak. m-osztályú gráfnak nevezünk egy gráfot, ha a pontjai m osztályba oszthatók úgy, hogy az egy osztályban levő pontok között nem fut él. T n,m egy m-osztályú teljes gráf.. Tétel (Turán). Ha egy n pontú G gráf nem tartalmaz K m+ -et, akkor e(g) e(t n,m ). Ha pedig e(g) = e(t n,m ), akkor G = T n,m. 7

Turán tétel bizonyítása

Turán tétel bizonyítása. Az m-osztályú gráfok közül T n,m -nek van a legtöbb éle.

Turán tétel bizonyítása. Az m-osztályú gráfok közül T n,m -nek van a legtöbb éle. Tegyük fel, hogy az a G gráf, amelyiknek a legtöbb éle van, nem a T n,m gráf. G-ben van két olyan osztály, hogy az egyikben x pont van, a másikban legalább x +.

Turán tétel bizonyítása. Az m-osztályú gráfok közül T n,m -nek van a legtöbb éle. Tegyük fel, hogy az a G gráf, amelyiknek a legtöbb éle van, nem a T n,m gráf. G-ben van két olyan osztály, hogy az egyikben x pont van, a másikban legalább Ha a nagyobból a kisebbe átteszünk egy pontot, akkor legfel- x +. jebb x él szűnik meg, viszont legalább x + új élet húzunk be.

Turán tétel bizonyítása. Az m-osztályú gráfok közül T n,m -nek van a legtöbb éle. Tegyük fel, hogy az a G gráf, amelyiknek a legtöbb éle van, nem a T n,m gráf. G-ben van két olyan osztály, hogy az egyikben x pont van, a másikban legalább Ha a nagyobból a kisebbe átteszünk egy pontot, akkor legfel- x +. jebb x él szűnik meg, viszont legalább x + új élet húzunk be.. Ha G egy K m+ -et nem tartalmazó n-pontú gráf, akkor ugyanazon a ponthalmazon konstruálható egy olyan m osztályú teljes H gráf, melyben minden pont fokszáma legalább akkora mint G-ben, vagyis minden v V (G) = V (H)-ra d G (v) d H (v).

Turán tétel bizonyítása. Az m-osztályú gráfok közül T n,m -nek van a legtöbb éle. Tegyük fel, hogy az a G gráf, amelyiknek a legtöbb éle van, nem a T n,m gráf. G-ben van két olyan osztály, hogy az egyikben x pont van, a másikban legalább Ha a nagyobból a kisebbe átteszünk egy pontot, akkor legfel- x +. jebb x él szűnik meg, viszont legalább x + új élet húzunk be.. Ha G egy K m+ -et nem tartalmazó n-pontú gráf, akkor ugyanazon a ponthalmazon konstruálható egy olyan m osztályú teljes H gráf, melyben minden pont fokszáma legalább akkora mint G-ben, vagyis minden v V (G) = V (H)-ra d G (v) d H (v). (a) m-re való teljes indukció. m = -re az állítás triviális. 8

(b) Legyen x olyan pont, hogy d G (x) = G. Legyen V = {u {u,x} E(G)}, V = V (G) V azaz, x V. G legyen G-nek a V által feszített részgráfja.

(b) Legyen x olyan pont, hogy d G (x) = G. Legyen V = {u {u,x} E(G)}, V = V (G) V azaz, x V. G legyen G-nek a V által feszített részgráfja. G -ben nincs K m, hiszen ez x-szel együtt G-ben K m+ -et alkotna. Indukciós feltevés G -re: Van olyan teljes m - osztályú H gráf, hogy minden v V (G )-re d G (v) d H (v).

(b) Legyen x olyan pont, hogy d G (x) = G. Legyen V = {u {u,x} E(G)}, V = V (G) V azaz, x V. G legyen G-nek a V által feszített részgráfja. G -ben nincs K m, hiszen ez x-szel együtt G-ben K m+ -et alkotna. Indukciós feltevés G -re: Van olyan teljes m - osztályú H gráf, hogy minden v V (G )-re d G (v) d H (v). (c) H gráf: V ponthalmazon a H gráf, majd V minden pontját kössük össze V minden pontjával, viszont hagyjunk el minden két V -beli pontot összekötő élet. A H gráf m osztályú.

(b) Legyen x olyan pont, hogy d G (x) = G. Legyen V = {u {u,x} E(G)}, V = V (G) V azaz, x V. G legyen G-nek a V által feszített részgráfja. G -ben nincs K m, hiszen ez x-szel együtt G-ben K m+ -et alkotna. Indukciós feltevés G -re: Van olyan teljes m - osztályú H gráf, hogy minden v V (G )-re d G (v) d H (v). (c) H gráf: V ponthalmazon a H gráf, majd V minden pontját kössük össze V minden pontjával, viszont hagyjunk el minden két V -beli pontot összekötő élet. A H gráf m osztályú. Ha v V, akkor d H (v) = V = G. Ha v V, akkor d H (v) = d H (v) + V d G (v) + V d G (v).

(b) Legyen x olyan pont, hogy d G (x) = G. Legyen V = {u {u,x} E(G)}, V = V (G) V azaz, x V. G legyen G-nek a V által feszített részgráfja. G -ben nincs K m, hiszen ez x-szel együtt G-ben K m+ -et alkotna. Indukciós feltevés G -re: Van olyan teljes m - osztályú H gráf, hogy minden v V (G )-re d G (v) d H (v). (c) H gráf: V ponthalmazon a H gráf, majd V minden pontját kössük össze V minden pontjával, viszont hagyjunk el minden két V -beli pontot összekötő élet. A H gráf m osztályú. Ha v V, akkor d H (v) = V = G. Ha v V, akkor d H (v) = d H (v) + V d G (v) + V d G (v).. Ha egy G-ben nincs K m+, de nem izomorf T n,m -mel, akkor van egy nála nagyobb élszámú m-osztályú teljes gráf, ennek az élszáma pedig nem nagyobb e(t n,m )-nél. Így beláttuk az állítás második részét is. 9

Két érdekes tétel

Két érdekes tétel 4. Tétel (Erdős Stone). Ha e(g) e(t n,m ) + εn, akkor G-ben nemcsak hogy van legalább egy K m+, hanem létezik olyan c(ε,m) konstans is, hogy G-ben van olyan teljes m+-osztályú részgráf, amelyben az osztályok pontszáma legalább c log n.

Két érdekes tétel 4. Tétel (Erdős Stone). Ha e(g) e(t n,m ) + εn, akkor G-ben nemcsak hogy van legalább egy K m+, hanem létezik olyan c(ε,m) konstans is, hogy G-ben van olyan teljes m+-osztályú részgráf, amelyben az osztályok pontszáma legalább c log n. Azaz, ha csak kicsit nagyobb az élsűrűség, mint a Turán gráfé, akkor már rengeteg K m+ van a gráfban. 0

5. Tétel (Erdős Simonovits). Ha G,G,...,G k adott gráfok, akkor létezik olyan ex(n;g,g,...,g k ) függvény, amelyre teljesül, hogy minden olyan G gráfnak, amelyre v(g) = n és e(g) ex(n;g,g,...,g k ), van valamelyik G i gráffal izomorf részgráfja. Az ex függvényre teljesül, hogy ex(n;g,g,...,g k ) lim ( n n = ) min i=,...,k χ(g i ). ()

5. Tétel (Erdős Simonovits). Ha G,G,...,G k adott gráfok, akkor létezik olyan ex(n;g,g,...,g k ) függvény, amelyre teljesül, hogy minden olyan G gráfnak, amelyre v(g) = n és e(g) ex(n;g,g,...,g k ), van valamelyik G i gráffal izomorf részgráfja. Az ex függvényre teljesül, hogy ex(n;g,g,...,g k ) lim ( n n = ) min i=,...,k χ(g i ). () Azaz a maximális G i -t nem tartalmazó gráf élsűrűségének nagyságrendje G i kromatikus számától függ, ha az legalább.

Ha valamelyik kizárandó gráf páros, akkor a fenti tétel nem határozza meg az élsűrűség nagyságrendjét.

Ha valamelyik kizárandó gráf páros, akkor a fenti tétel nem határozza meg az élsűrűség nagyságrendjét. T n,m élszáma ( ) ( ) ( ) n q + q e(t n,m ) = r (m r) ( )( n ). () m

Ha valamelyik kizárandó gráf páros, akkor a fenti tétel nem határozza meg az élsűrűség nagyságrendjét. T n,m élszáma ( ) ( ) ( ) n q + q e(t n,m ) = r (m r) ( )( n ). () m k = és G = K m+ esetén χ(k m+ ) = m +, azaz ebben az esetben az Erdős-Simonovits következik a Turánból.