Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Operációkutatás NYME Gazdaságinformatikus mesterképzés

Hasonló előadás


Az előadások a következő témára: "Operációkutatás NYME Gazdaságinformatikus mesterképzés"— Előadás másolata:

1 Operációkutatás NYME Gazdaságinformatikus mesterképzés
Előadó: Kalmár János (kalmar[kukac]inf.nyme.hu) Kötelező irodalom Csernyák László: Operációkutatás II. Tankönyvkiadó, Budapest, 1990 Gáspár-Temesi: Lineáris programozási gyakorlatok Tankönyvkiadó, Budapest, 1987 Ajánlott irodalom Hillier-Liebermann: Bevezetés az operációkutatásba LSI Oktatóközpont, Budapest, 1994 Gáspár-Temesi: Matematikai programozási gyakorlatok Nemzeti Tankönyvkiadó, Budapest, 1989

2 Operációkutatás Lényegi feladata az életből vett problémák matematikai modellezése, és olyan megoldás keresése, amely egy adott célfüggvényt (pl. költségfüggvényt) optimalizál (minimalizál). Kialakulása a 2. Világháború idejére esik, amikor a nagy hadműveletek és hadi projektek (pl. a Manhattan terv az atombomba kifejlesztésére) kivitelezése gondos tervezést igényelt.

3 Témakörök Gráfelmélet Többváltozós szélsőérték számítás
Feltételes szélsőérték számítás Lineáris programozás Diszkrét dinamikus programozás Játékelmélet Hozzárendelési feladat (magyar módszer) Hiperbolikus programozás Kvadratikus programozás Szállítási feladat Több lineáris célfüggvényű LP Tiszta egészértékű LP 0-1 LP Hátizsákfeladat Halmazlefedési feladat

4 Gyakorló feladatok A feladatok a következő oldalon látható gráfra vonatkoznak: Határozza meg a komplementer gráfot! Igazolja hogy a gráf síkba rajzolható, és készítse el a gráf izomorf síkgráf képét! Határozza meg a gráf egy zárt Euler-vonalát! Határozzon meg a gráfban legalább három különböző Hamilton kört! Rendeljen a gráf éleihez hosszúságokat (kapacitásokat)! Határozza meg a legrövidebb utat A-ból E-be! Határozza meg a maximális folyamot A-ból E-be! Határozza meg a gráf minimális hosszú kifeszítő fáját! Élek elhagyásával tegye a gráfot páros gráffá! Határozza meg a páros gráf maximális lefedését!

5 Gráfelmélet • Alapfogalmak • Euler-vonal • Hamilton-kör
• Legrövidebb út • Minimális feszítőfa • Hozzárendelési feladat • Folyamprobléma Algoritmusok! Szélsőértékszámítás!!!

6 A gráf definíciója 1.. DEFINÍCIÓ. Legyen V egy véges halmaz, E pedig V -beli rendezetlen elempárok véges rendszere. Ekkor a G=(V,E) párt gráfnak nevezzük. V elemei a gráf csúcsai, E elemei a gráf élei. Ha e = (v1, v2) egy él, akkor azt mondjuk, hogy az e él a v1 és a v2 csúcsokat köti össze. Egy labdarúgó tornán 6 csapat vesz részt. Ez a gráf azt írja le, hogy mely csapatok mérkőztek meg egymással az első négy fordulóban. V = {A,B,C,D,E, F} E = {(A,B), (A,C), (A,D), (A, F), (B,C), (B,E), (B, F), (C,D), (C,E), (D,E), (D, F), (E, F)} Rendezetlen elempáron azt értjük, hogy nem teszünk különbséget a (v1, v2) és a (v2, v1) pár között, a rendszer pedig abban különbözik a halmaztól, hogy egy elem többször is szerepelhet benne.

7 2.. DEFINÍCIÓ. Egy gráf egy csúcsa izolált csúcs, ha nem indul ki belőle él. (W) Többszörös élről beszélünk, ha két pontot több él köt össze.((Y, V ) ) A hurokél önmagába visszatérő él, azaz két végpontja azonos.((X,X)) Az üres gráf csupa izolált pontokból álló gráf, azaz E = ø. Az egyszerű gráfok nem tartalmaznak sem hurokélet, sem többszörös élet.

8 3.. DEFINÍCIÓ. A teljes gráfok olyan egyszerű gráfok, amelyekben bármely két különböző csúcs között vezet él. Kn: n csúcsú teljes gráf. Egy G egyszerű gráf komplementere az a ¯G gráf, amely teljes gráffá egészíti ki; tehát G és ¯G csúcsai megegyeznek, továbbá két csúcs között pontosan akkor vezet él ¯G-ben, ha G-ben nem vezet él. A G1 = (V,E’) gráf a G = (V,E) gráf részgráfja, ha E’ E; tehát G1-et G-ből néhány él elhagyásával kapjuk. A G1 és G2 gráfok izomorfak, ha létezik a csúcsok között olyan bijekció, hogy két G1-beli csúcs között pontosan akkor vezet él, ha a megfelelő két G2-beli csúcs is össze van kötve.

9 Síkgráfok G síkgráf, mert a vele izomorf H a síkba van rajzolva.
4.. DEFINÍCIÓ. Egy gráf síkgráf, ha lerajzolható úgy a síkba, hogy élei csak a szögpontokban metszik egymást. G síkgráf, mert a vele izomorf H a síkba van rajzolva. Ha egy gráf lerajzolható a síkba, akkor lerajzolható úgy is, hogy minden éle egyenes szakasz legyen. (K)

10 Síkgráfok K5 és K3,3 nem rajzolhatók le a síkba.
Az is belátható, hogy ha egy gráf nem rajzolható síkba, akkor K5 vagy K3,3 valahol "benne van" a gráfban.

11 Fokszámok 5.. DEFINÍCIÓ. Egy csúcs fokszáma a belőle kiinduló élek száma. Megjegyzés. Egy n-pontú teljes gráfban minden csúcs fokszáma n − 1, és összesen n élet tartalmaz. 2 6.. TÉTEL. Egy gráf páratlan fokú csúcsainak száma páros. Bizonyítás. Felhasználjuk az alábbi segédtételt. 7.. SEGÉDTÉTEL. Egy gráf csúcsai fokszámainak összege megegyezik az élek számának kétszeresével. Ezek után a tétel bizonyítása a következő: Jelölje a gráf csúcsait A1, . . .An, a megfelelő fokszámokat (A1), , (An). Tegyük fel, hogy (A1), , (Ak) páratlan számok, (Ak+1), , (An) párosak. A segédtétel szerint (A1) (An) páros, így páros számokat elhagyva (A1) (Ak) is páros lesz. Páratlan számok összege pedig csak akkor lehet páros, ha páros sok van belőlük.

12 Fokszámok 8.. TÉTEL. Legyen G egy n-csúcsú egyszerű gráf, n 2. Ekkor van legalább két olyan csúcs, melyek fokszáma megegyezik. Bizonyítás. Minden egyes csúcs fokszáma 0, 1, , n − 1 lehet, vagyis n féle. Egy 0-fokú csúcs izolált csúcs, egy (n − 1)-fokú pedig minden másik csúccsal össze van kötve. Tehát nem lehet a gráfban egyszerre 0-fokú és (n−1)-fokú csúcs is, vagyis csak (n−1) féle lehet a fokszám. Ekkor a skatulya-elv szerint van két azonos fokszámú csúcs.

13 Gráfok bejárása 9.. DEFINÍCIÓ. Sétán két csúcsot összekötő élsorozatot értünk. Speciális séták: • vonal: olyan séta, melyben minden él legfeljebb egyszer szerepel (a csúcsok többször is szerepelhetnek). • zárt vonal: olyan vonal, melynek kezdő és végpontja azonos. • nyílt vonal: olyan vonal, melynek kezdő és végpontja különböző. • út: minden csúcsot legfeljebb egyszer érintő séta. • kör: olyan séta, melynek a kezdő és végpontja azonos, a többi csúcsot legfeljebb egyszer érinti. 10.. DEFINÍCIÓ. Egy gráf összefüggő, ha bármely két csúcs között vezet út.

14 Königsbergi hidak Eulertől (1736) megkérdezték Königsberg lakói, hogy miért nem tudnak átmenni a város hídjain úgy, hogy mindegyiken pontosan egyszer menjenek át: Ezen feladat megoldása kapcsán Eulerhez kötjük a gráfelmélet alapjainak lerakását, fogalmainak és módszereinek kidolgozását. Napjaink legismertebb magyar matematikusa is ezen tudományág nemzetközileg is meghatározó művelője: Lovász László (1948-): MTA tagja (1979), Fulkerson díjas (1982) Wolf díjas (1999), Kyoto díjas (2010), díszdoktor (Calgary, 2006)

15 Euler-vonal Melyik ábra (gráf) rajzolható le egy vonallal a ceruza felemelése nélkül? A kukásautónak egy körzet minden utcáján végig kell mennie, és be kell gyűjteni a szemetet. Meg tudja-e ezt tenni úgy, hogy minden utcán csak egyszer megy végig?

16 Euler-vonal 11.. DEFINÍCIÓ. Euler-vonal: olyan vonal (séta), melyben minden él pontosan egyszer szerepel. Szükséges feltétel Euler-vonal létezésére: zárt Euler-vonal esetén minden pontba pont ugyanannyiszor megyünk be mint ki  minden pont foka páros. Belátható, hogy ez elegendő is! 12.. TÉTEL. Egy összefüggő gráfban pontosan akkor létezik zárt Euler-vonal, ha minden csúcs fokszáma páros. Egy összefüggő gráfban pontosan akkor létezik nyitott Euler-vonal az A csúcsból a B csúcsba, ha csak A és B fokszáma páratlan. Ha egy összefüggő gráfban a páratlan fokszámú csúcsok száma 2k, akkor a gráf k darab diszjunkt vonal egyesítése.

17 Algoritmusok "Algoritmus" zárt Euler-vonal keresésére: Tetszőleges csúcsból kiindulva rajzolom fel a gráfot, ügyelve arra, hogy a le nem rajzolt rész összefüggő maradjon. "Algoritmus" nyílt Euler-vonal keresésére: Ugyanaz, mint a zártra, de a kiindulópont szükségszerűen az egyik páratlan fokú csúcs.

18 Kinaipostás-probléma
Feladat: legfeljebb hány élismétléssel lehet bejárni egy gráfot úgy, hogy minden élen áthaladjunk legalább egyszer? Ha létezik a gráfban Euler-kör, akkor az egyben egy optimális kínaipostás-útvonal. A feladat tehát azzal ekvivalens, hogy minimum hány él megduplázásával tehető olyanná a gráf, hogy legyen benne Euler-kör, vagyis minden pont fokszáma páros legyen.

19 Utazó ügynök probléma Egy ügynöknek meg kell látogatnia bizonyos városokat útja során (és végül haza kell térnie). Adott: • mely városokból mely másik városokba van járat (közvetlen út) • milyen költséggel tud eljutni egyik városból másikba (repülőjegy, autóút ára). Cél: az utak összköltségét minimalizálni. Ez a feladat sok alkalmazás során felmerül, és csak bizonyos speciális esetekben ismeretesek jó algoritmusok a megoldására. Ha bármely közvetlen út 1 költségű, és az ügynöknek minden várost meg kell látogatnia, akkor a feladatot Hamilton-kör keresésnek hívjuk.

20 Hamilton-kör 13.. DEFINÍCIÓ. A Hamilton-kör olyan kör, amely minden csúcson pontosan egyszer átmegy át A Hamilton-kör létezésére nem ismert egyszerű szükséges és elégséges feltétel, s ugyancsak nincs gyors algoritmus sem Hamilton-kör keresésére. Elégséges, de nem szükséges feltétel Hamilton-kör létezésére: 14.. TÉTEL. Legyen G n-csúcsú egyszerű összefüggő gráf. Ha minden csúcs fokszáma legalább n/2, akkor a gráfban létezik Hamilton-kör.

21 Hamilton-kör Szükséges, de nem elégséges feltétel Hamilton-kör létezésére: 15.. TÉTEL. Ha egy G = (V,E) gráfban van Hamilton-kör, akkor bármely S  V ponthalmaz esetén S pontjait és a belőlük kiinduló csúcsokat elhagyva a maradék gráfnak legfeljebb annyi összefüggő komponense van, mint |S|. Másképpen: Ha egy G = (V,E) gráfban létezik olyan S  V ponthalmaz, hogy S pontjait és a belőlük kiinduló csúcsokat elhagyva a maradék gráfnak |S|-nál több összefüggő komponense van, akkor a gráfban nincs Hamilton-kör.

22 Legrövidebb út keresése
Alapfeladat: Adott egy összefüggő gráf, egy kezdő- és egy végső csúcs, valamint az élekhez rendelt távolságok. Keressük a legrövidebb utat a kezdő és a végső csúcs között. Figyelem! Nem a felhasznált élek számát kell minimalizálni, hanem a hosszaik összegét. Átfogalmazások: Az élekhez rendelt számok jelképezhetnek költségeket illetve időtartamokat is. Ilyenkor a minimális költségű illetve a legkevesebb idő alatt bejárható utat keressük.

23 Algoritmus. A gráf minden élére meghatározzuk a kezdőponttól oda vezető legrövidebb utat. A kezdőponttól mért távolságok szerint növekvő sorrendben vesszük a pontokat. 1. iterációs lépés: Meghatározzuk a kezdőponthoz legközelebbi pontot. n. iterációs lépés: Meghatározzuk a kezdőponthoz n. legközelebbi pontot. Bemenet: A legközelebbi n−1 csúcs, beleértve a legrövidebb útvonalakat is. (Ezeket nevezzük megoldott pontoknak (beleértve a kezdeti pontot is), a többit megoldatlan pontnak mondjuk.) Jelöltek: minden megoldott ponthoz a legközelebbi megoldatlan pont (ha van ilyen). Döntés: minden jelöltre kiszámítjuk a jelölő–kezdő távolság és a jelölt–jelölő távolság összegét, és ezek közül a legkisebbet választjuk. A jelölő csúcsot is feljegyezzük. A legrövidebb út: Ha az iterációban elérek a végső pontig, akkor készen vagyok. (Visszafejtés!)

24 n Jelölő Jelölt Távolság Győztes Összeköttetés 1 O A 2 OA O A C B 4 2+2=4 4 4 OC AB 4 A B C D E E 2+7=9 4+3=7 4+4=8 E 7 BE 5 A B E D D D 2+7=9 4+4=8 7+1=8 D D 8 8 BD ED 6 D E T T 8+5=13 7+7=14 T 13 DT

25 Visszafejtés Az összeköttetés oszlop tartalma: OA,OC,AB,BE,BD,ED,DT
Azaz OABEDT és OABDT a két legrövidebb út.

26 Fák 16.. DEFINÍCIÓ. Fának nevezzük az olyan összefüggő gráfokat, amikben nincs kör. A fák szükségszerűen egyszerű gráfok, hiszen a hurokél 1-hosszú kör, a többszörös él 2-hosszú kör.

27 Fák jellemzése 17.. TÉTEL. Legyen G egy n csúcsú gráf. Ekkor a következő állítások ekvivalensek 1. G fa; 2. G összefüggő és n − 1 éle van; 3. G összefüggő, de tetszőleges élét elhagyva már nem lesz összefüggő. 4. G-ben nincs kör, de egy tetszőleges új élet hozzávéve már lesz benne kör.

28 Feszítő fák 18.. DEFINÍCIÓ. Legyen G egyszerű, összefüggő gráf. Az F fa a G gráf feszítő fája, ha F olyan részgráfja G-nek, mely a G minden csúcsát és bizonyos éleit tartalmazza.

29 Minimális kifeszítő fa keresése
Feladat: Adott egy n csúcsú, egyszerű összefüggő gráf, valamint az élekhez rendelt valós számok, amelyek az élek hosszai. Keressük azt a kifeszítő fát, amelyben az élek összhossza minimális. 1. ALGORITMUS (KRUSKAL-FÉLE MOHÓ ALGORITMUS): • Rendezzük hosszuk szerint növekvő sorrendbe az éleket. Kiindulunk az üres gráfból • Adjuk hozzá sorban az éleket, de olyan élet ne válasszunk ki, melynek kiválasztásával kör keletkezne. • Az előző pontot ismételjük n − 1-szer. 2. ALGORITMUS (szintén mohó, vagyis minden lépésben a legnagyobb javítás a célja): • Rendezzük hosszuk szerint csökkenő sorrendbe az éleket. Kiindulunk az eredeti gráfból • Töröljük sorban az éleket, de olyan élet ne válasszunk ki, melynek törlésével gráf összefüggősége sérülne. • Az előző pontot ismételjük addig, amíg csak n-1 él marad.

30 Páros gráfok 19.. DEFINÍCIÓ. Egy G = (V,E) gráfot páros gráfnak nevezünk, ha van olyan V = B  J felbontás, hogy B  J = , továbbá minden él egyik végpontja B-ben, a másik J-ben van. Jelölése: G = (B, J;E). Vegyük észre, hogy ha B és J nem adott, akkor nem egyszerű feladat eldönteni, hogy a gráf páros-e.

31 Hozzárendelési feladat páros gráfokban
20.. DEFINÍCIÓ. A G = (B, J;E) páros gráf éleinek egy M halmaza lefedést (matching-et, független élrendszert, párosítást) alkot, ha nincs két olyan M-beli él, amelyeknek van közös végpontja. Egy csúcs lefedetlen az M élrendszerben, ha nem végpontja egyetlen M-beli élnek sem. Egy lefedés teljes lefedés, ha a gráf minden csúcsát lefedi. (Teljes lefedés csak akkor létezhet, ha |B| = |J| teljesül.)

32 Javító utak 21.. DEFINÍCIÓ. Adott egy M párosítás egy páros gráfban. Ha egy út felváltva tartalmaz M-hez tartozó és M-hez nem tartozó éleket, akkor alternáló útnak nevezzük. Egy alternáló út javító út (bővítő út), ha mindkét végpontja lefedetlen csúcs.

33 Javító útak Vegyük észre, hogy ha U egy bővítő út az M párosításra nézve, akkor az U  M eggyel nagyobb elemszámú párosítás, mint M. Tehát az alternáló út M-hez tartozó éleit M-ből elhagyva, az M-hez nem tartozó éleit M-hez hozzávéve eggyel nagyobb elemszámú párosítást nyerünk. 22.. TÉTEL. Egy páros gráf M lefedése akkor és csak akkor maximális elemszámú független élrendszer, ha nem létezik bővítő út a gráfban M-re nézve.

34 Matching-algoritmus Adott egy G = (B, J;E) páros gráf, valamint egy M kiindulási párosítás (amely esetleg üres is lehet). M-ből kiindulva keresünk egy maximális elemszámú párosítást G-ben. • Ha nincs lefedetlen csúcs B-ben, akkor M maximális párosítás, STOP. Ha van, akkor folytassuk a következő lépéssel. • Keressünk egy bővítő utat, • Ha találunk bővítő utat, akkor ennek segítségével bővítsük M-et, és folytassuk az első lépéssel. Ha nem találtunk bővítő utat, akkor M maximális elemszámú párosítás.

35 Javító út keresése Kisebb gráfok esetén ránézésre, nagyobb méret esetén erre is van algoritmus: • Címkézzünk meg minden B-beli lefedetlen csúcsot 0-val. • Minden egyes i  B csúcsra és (i, j)  M élre címkézzük meg a (J-beli) j csúcsot i-vel. • Minden egyes lefedett j  J csúcsra címkézzük meg a (B-beli) i csúcsot j-vel, ahol (i, j)  M. • Minden egyes J-beli lefedetlen csúcsra felírható egy alternáló út, amely a csúcsból indul ki, és mindig a címkének megfelelően folytatódik. Ha egy út 0 címkéhez ért, akkor az bővítő út.

36 Éllefogások Annak megállapítása, hogy egy párosítás maximális elemszámú-e, történhet az alábbi tétel segítségével is. 23.. DEFINÍCIÓ. A G = (V,E) gráf W  V pontjai éllefogó ponthalmazt alkotnak, ha minden él legalább egyik végpontja W-beli. 24.. TÉTEL. Egy páros gráfban tetszőleges párosítás elemszáma kisebb vagy egyenlő tetszőleges éllefogó ponthalmaz elemszámánál. Következésképpen ha |M| = |W| teljesül, akkor M maximális elemszámú párosítás, W pedig minimális elemszámú éllefogás.

37 Hálózatok Alapfeladat: Adott egy gráf, minden élének mindkét irányú kapacitása, valamint két kitüntetett csúcs: a forrás és a nyelő. Keresünk egy maximális értékű megengedett folyamot (áramlást). Szemléltetésképpen feltehetjük, hogy a hálózattal egy olajvezeték-rendszert ábrázolunk. A kapacitások a vezeték vastagságát jelentik, vagyis azt, hogy egységnyi idő alatt mennyi olaj folyhat azon a vezetékdarabon. A kérdés az, hogy egy adott hálózaton mennyi olaj folyhat át s-ből t-be. Szoktak beszélni úthálózatokról is, ahol a kapacitás az utak áteresztőképessége, és árukat kell eljuttatni a termelőtől a fogyasztókhoz. De beszélhetünk számítógép-hálózatokról és adatátviteli sávszélességről is.

38 Folyamok 25.. DEFINÍCIÓ. Folyamon a hálózat minden egyes éléhez rendelt számot értünk, amely azt mutatja, hogy mekkora az élen átáramló anyag mennyisége. Meg kell adni az áramlás irányát is. (Irányított gráf!) Megengedett folyamnak nevezünk egy olyan folyamot, ahol a forrásból csak kifelé, a nyelőbe csak befelé vezet áramlás, minden egyes egyéb csúcs esetén a kifolyó áramlások összege megegyezik a befolyók összegével, továbbá a egyik élen sem haladja meg az él kapacitását. 26.. DEFINÍCIÓ. Egy út kapacitásán a rajta lévő minimális élkapacitást értjük.

39 Folyam-generáló algoritmus
1. Keresünk egy forrás  nyelő utat pozitív kapacitással (c). Ha nincs ilyen út, akkor a jelenlegi folyam maximális. STOP! 2. Növeljük a folyamot c-vel ezen az úton. 3. Csökkentsük ezen az úton c-vel a kapacitást minden élen. Növeljük az ellenkező irányú úton a kapacitást c-vel minden élen. Folytassuk az 1. lépéssel.

40 Vágások Hogyan győződhetünk meg egyszerűen arról, hogy egy folyam maximális, azaz hogy nem tudunk további áramlást indítani s-ből t-be? 27..DEFINÍCIÓ. Egy vágás irányított élek olyan halmaza, amelyek minden forrás  nyelő útból tartalmaz egy élet. Egy vágás értéke a hozzá tartozó élek kapacitásainak összege. 28.. TÉTEL. Minden megengedett folyam értéke kisebb minden vágás értékénél. Sőt, a maximális folyam(ok) értéke egyenlő a minimális vágás értékével. A tétel megkönnyíti az algoritmus 1. lépésében a döntést: ha úgy tűnik, hogy nincs már pozitív kapacitású forrás  nyelő út, akkor megpróbálok keresni egy 0-értékű vágást. Ha van nulla értékű vágás, akkor biztos hogy nincs pozitív kapacitású forrás  nyelő út. Ha úgy tűnik, hogy nincs nulla értékű vágás, akkor valószínűleg van pozitív kapacitású forrás  nyelő út...


Letölteni ppt "Operációkutatás NYME Gazdaságinformatikus mesterképzés"

Hasonló előadás


Google Hirdetések