Informatikai Alkalmazások Mőszaki menedzser szak. Galambos Gábor SZTE 2012-2013. Az anyag elsajátításához szükséges ismeretek



Hasonló dokumentumok
11. Előadás. 11. előadás Bevezetés a lineáris programozásba

Operációkutatás. Vaik Zsuzsanna. ajánlott jegyzet: Szilágyi Péter: Operációkutatás

Algoritmusok bonyolultsága

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány

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

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

Diszkrét matematika 2.C szakirány

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

Operációkutatás. Vaik Zsuzsanna. Budapest október 10. First Prev Next Last Go Back Full Screen Close Quit

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2018/

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2017/

Operációkutatás. 4. konzultáció: Szállítási feladat. A feladat LP modellje

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

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

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

Opkut deníciók és tételek

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

Diszkrét matematika 2.

Diszkrét matematika 2.C szakirány

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

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

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

A szimplex algoritmus

Dualitás Dualitási tételek Általános LP feladat Komplementáris lazaság 2017/ Szegedi Tudományegyetem Informatikai Intézet

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, mátrixegyenlet

Diszkrét matematika 2.

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

1. tétel - Gráfok alapfogalmai

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, Leontyev-modell

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

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

8. Előadás. Megyesi László: Lineáris algebra, , oldal. 8. előadás Mátrix rangja, Homogén lineáris egyenletrendszer

KOVÁCS BÉLA, MATEMATIKA I.

A szimplex algoritmus

A szimplex tábla. p. 1

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

Gráfelméleti feladatok. c f

Adatszerkezetek 2. Dr. Iványi Péter

Általános algoritmustervezési módszerek

Kvadratikus alakok és euklideszi terek (előadásvázlat, október 5.) Maróti Miklós, Kátai-Urbán Kamilla

Totális Unimodularitás és LP dualitás. Tapolcai János

0-49 pont: elégtelen, pont: elégséges, pont: közepes, pont: jó, pont: jeles

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

További forgalomirányítási és szervezési játékok. 1. Nematomi forgalomirányítási játék

Hamming-kód. Definíció. Az 1-hibajavító, perfekt lineáris kódot Hamming-kódnak nevezzük. F 2 fölötti vektorokkal foglalkozunk.

Bázistranszformáció és alkalmazásai 2.

Gráfelméleti alapfogalmak

Formális nyelvek - 9.

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

Diszkrét matematika 2.

Operációkutatás példatár

Determinánsok. A determináns fogalma olyan algebrai segédeszköz, amellyel. szolgáltat az előbbi kérdésekre, bár ez nem mindig hatékony.

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

Függvények Megoldások

Diszkrét matematika 2.C szakirány

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

Numerikus módszerek 1.

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

Lineáris algebra és a rang fogalma (el adásvázlat, szeptember 29.) Maróti Miklós

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

Oktatási Hivatal. 1 pont. A feltételek alapján felírhatók az. összevonás után az. 1 pont

6. Függvények. Legyen függvény és nem üreshalmaz. A függvényt az f K-ra való kiterjesztésének

KOVÁCS BÉLA, MATEMATIKA I.

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

Kétfázisú szimplex algoritmus és speciális esetei

Áttekintés LP és geometria Többcélú LP LP és egy dinamikus modell 2017/ Szegedi Tudományegyetem Informatikai Intézet

összeadjuk 0-t kapunk. Képletben:

Hibajavító kódok május 31. Hibajavító kódok 1. 1

További programozási esetek Hiperbolikus, kvadratikus, integer, bináris, többcélú programozás

Jelen jegyzet a József Attila Tudományegyetem programozó matematikus és. A feldolgozott anyag bevezető jellegű. Néhány karakterisztikus, ma már

15. LINEÁRIS EGYENLETRENDSZEREK

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

KOVÁCS BÉLA, MATEMATIKA I.

6. Előadás. Megyesi László: Lineáris algebra, oldal. 6. előadás Bázis, dimenzió

Diszkrét matematika 2.C szakirány

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

KOVÁCS BÉLA, MATEMATIKA I.

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

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

Matematika szigorlat június 17. Neptun kód:

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.

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

Lineáris leképezések (előadásvázlat, szeptember 28.) Maróti Miklós, Kátai-Urbán Kamilla

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

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

Az optimális megoldást adó algoritmusok

Bevezetés az operációkutatásba A lineáris programozás alapjai

A lineáris algebrában központi szerepet betöltı vektortér fogalmát értelmezzük most, s megvizsgáljuk e struktúra legfontosabb egyszerő tulajdonságait.

Lineáris algebra gyakorlat

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

Vektorok, mátrixok, lineáris egyenletrendszerek

25. tétel: Bizonyítási módszerek és bemutatásuk tételek bizonyításában, tétel és megfordítása, szükséges és elégséges feltétel

Sorozatok I. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma)

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Függvények

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Függvények

Matematika (mesterképzés)

Átírás:

Az anyag elsajátításához szükséges ismeretek Informatikai Alkalmazások Mőszaki menedzser szak http://jgypk.u-szeged.hu/tanszek/szamtech/oktatas/infalk.pdf Mátrixok, mőveletek mátrixokkal. (Matematika III.) Lineáris algebra alapjai: lineáris függetlenség, n-dimenziós vektortér, vektorok elıállítása, bázis.( Matematika II.) Lineáris egyenletrendszerek megoldásai. (Matematika III.) Galambos Gábor SZTE - Informatikai Alkalmazások Informatikai Alkalmazások A feldolgozott témák Ajánlott irodalom Az optimumszámítás alapfogalmai Célfüggvénnyel bıvített lineáris egyenlıtlenségrendszerek és grafikus megoldásaik. A hozzárendelési feladat A szállítási feladat Gráfokkal megoldható feladatok Operációkutatás I. (Szerk.: Dr. Tóth Irén) Matematika közgazdászoknak. Nemzeti Tankönyvkiadó, Bp.. Operációkutatás II. (Szerk.: Dr. Csernyák László) Matematika Közgazdászoknak. Nemzeti Tankönyvkiadó, Bp.., Operációkutatás elmélet és példatár I. - II. kötet. (Szerk.: Dr. Felber Mária) Fıiskolai jegyzet, BGF KVIFK, Bp. Dr. Csernyák László Dr. Jánosa András: A gazdasági optimalizálás módszerei II.. Nemzeti Tankönyvkiadó (6) Bp.. Informatikai Alkalmazások Informatikai Alkalmazások

Optimumszámítási modellek Vizsgáljuk meg a következı feladatot: Egy gyárnak kétféle félkész termékbıl (vascsıbıl és bútorlapból) háromféle iskolapadot kell elıállítani. Az ismert, hogy az egyes késztermékek egy-egy darabjában mennyi a felhasználandó félkész termék. Az is tudott, hogy a félkész termékekbıl mennyi raktárkészlet van. A gyár gazdasági vezetése ismeri az egyes késztermékek eladási hasznát darabonként. Kérdés: Mennyi készterméket állítsanak elı az egyes iskolapadokból, ha a cél a profit maximalizálása? Informatikai Alkalmazások 5 Készítsük el a feladathoz tartozó matematikai modellt. Vezessük be a következı jelöléseket: F, F K, K, K a ij b i c i Nyersanyagok Késztermékek Az i. nyersanyag mennyisége a j. késztermék egységnyi mennyiségében Az i. félkésztermékbıl rendelkezésre álló mennyiség Egységnyi i. késztermék eladásából származó haszon Jelölje továbbá x, x, x az egyes késztermékekbıl gyártandó mennyiségeket. Informatikai Alkalmazások 6 Ha x, x, x az egyes késztermékekbıl gyártandó mennyiségek, akkor az F félkésztermékbıl összesen A gyakorlati problémánkhoz rendelt matematikai modell tehát: mennyiséget használunk el. Hasonló meggondolás alapján az F mennyiségek: félkésztermékbıl elhasznál feltételrendszer célfüggvény Ezekrıl a rendelkezésre álló raktárkészlet véges volta miatt tudjuk, hogy Mivel c, c, c az egyes késztermékek egységnyi eladásából származó haszon, ezért a cél Ilyen típusú feladatok megoldása során a következı lépéseket hajtjuk végre: probléma feltárás matematikai (optimumszámítási) modell felállítása megoldó algoritmus kidolgozása Informatikai Alkalmazások 7 Informatikai Alkalmazások 8

Térjünk vissza a bevezetı feladathoz: és vezessük be a következı jelöléseket: Ekkor a feladat mátrix alakba is felírható: Az optimumszámítási modellek osztályozása: Tevékenységek típusa alapján folytonos diszkrét vegyes A modellben szereplı paraméterek alapján determinisztikus sztochasztikus A feltételek és a célfüggvény alapján lineáris nem lineáris Informatikai Alkalmazások 9 Informatikai Alkalmazások 5 Grafikus megoldás kétdimenziós esetben Vizsgáljuk meg a különbözı megoldásokat: x x 6 x -x x x, x Tekintsük pl. a x -x = - egyenest. Több olyan pont is van az L-ben, amely kielégíti egy adott egyenes egyenletét. z(x)=-8 6 -x - x =z(x) min A z(x)= - egyenes egyenletét egyetlen pont elégíti ki. z(x)=- L z(x)=- Nincs olyan x L, amely kielégítené a z(x)<- egyenlıtlenséget. Az optimum egyértelmő. 6 8 Az optimális megoldás: x = x =5 z(x)=- z(x)= Informatikai Alkalmazások Mi a helyzet, ha a célfüggvény párhuzamos az egyenlettel? Több optimális megoldás van. Informatikai Alkalmazások 6

Két dimenzióra visszavezethetı háromdimenziós eset Grafikus megoldás háromdimenziós esetben x x x 7 x x x -x x x -x x x = x, x, x -x - x 5x = z(x) min x 6 5 x x x x x x x 5 x i -x x x = z(x) min Ilyen esetben úgy járunk el, hogy az egyenlıséget tartalmazó feltételbıl kifejezzük az egyik változót, azt behelyettesítjük a többi egyenletbe, a kapott kétváltozós feladatot megoldjuk, a végén még meghatározzuk a kifejezett változó értékét, és a három változóval meghatározzuk a célfüggvény értékét is. Informatikai Alkalmazások Az optimális megoldás: x = x = x = z(x)=- 5 6 7 8 x Informatikai Alkalmazások 7 A lineáris programozás általános feladata: = Az (x, x,,x m ) vektort a lineáris programozási (LP) feladat lehetséges megoldásának nevezzük, ha a vektor a feltételrendszer minden egyenlıtlenségét kielégíti. Két lineáris programozási feladatot ekvivalensnek nevezünk, ha a két feladat lehetséges megoldásainak a halmaza megegyezik, a célfüggvények értékei a lehetséges megoldások halmazán egyenlıek. Informatikai Alkalmazások 5 Informatikai Alkalmazások 6 8

Az Szimplex algoritmus Egy standard feladatot lehetséges kanonikus alakúnak nevezzük, ha sor- és oszlopcserékkel, valamint a változók átjelölésével az alábbi alakra hozható: alakú lineáris programozási feladatot standard feladatnak nevezzük. Tétel: Bármely LP átalakítható standard feladattá úgy, hogy a kiinduló LP és a származtatott standard feladat ekvivalensek lesznek, továbbá a két feladat optimális megoldásai egyidejőleg léteznek, és ezek közvetlenül származtathatók egymásból. Következmény: Elegendı standard feladatok megoldásával foglalkozni. Informatikai Alkalmazások 7 Megjegyzés: A lehetséges kanonikus alakú feladatnál a feltételek is elıírtak! Informatikai Alkalmazások 8 9 A lehetséges kanonikus alakú feladat tehát egy olyan speciális standard LP, amelyben a feltételrendszer mátrixában van egy n-dimenziós egységmátrix, az egységmátrix alatti célfüggvény együtthatók értéke zérus. Tétel: Egy lehetséges kanonikus alakú feladathoz mindig megadható egy triviális megoldás. Biz. Legyen az egy olyan nm dimenziós vektor, amelyre: (i =,,,n) és (t =,,,m) A feladathoz tartozó triviális megoldást bázismegoldásnak nevezzük, és az (i =,,,n) változók a bázisváltozók. Ha valamely i n értékre beszélünk., akkor degenerált bázisról Vegyük észre, hogy az bázisváltozóhoz az együtthatómátrixban az n-dimenziós vektortér i-dik egységvektora tartozik. Tétel: Egy lehetséges kanonikus alakú feladat bázismegoldásához tartozó célfüggvényérték. Biz. A célfüggvény értéke: Itt az elsı összeg azért egyenlı nullával, mert minden c i értéke nulla, a második összeg pedig azért, mert minden x i értéke nulla. Így Informatikai Alkalmazások 9 Informatikai Alkalmazások

Tétel (Optimum kritérium): Egy lehetséges kanonikus alakú feladat bázismegoldása egyben optimális megoldás is, ha c nt teljesül minden t =,,, m értékre. Biz. Elegendı azt belátni, hogy ha X egy lehetséges megoldás, akkor z(x) α. Mivel X lehetséges megoldás, ezért X. De ekkor minden koordinátájára igaz, hogy x i, i =,,, nm. A feltétel szerint c nt, minden t =,,, m értékre. Ezért Tétel (Bázisváltoztatás tétele): Ha egy lehetséges kanonikus alakú feladat célfüggvényében van egy olyan j index, amelyre n j nm, amelyre c j <, és létezik a mennyiség, akkor megadható egy olyan az eredeti feladattal ekvivalens másik lehetséges kanonikus alakú feladat, amelynek X bázismegoldására teljesül A tételt nem bizonyítjuk, de megadjuk a konstrukciót, amely a tétel bizonyításához vezet. Informatikai Alkalmazások Informatikai Alkalmazások Jelölje s i a lehetséges kanonikus alakú feladat i. sorát, és a származtatott feladat i. sorát. Hasonlóan jelölje z és a két feladat célfüggvényeit. Tegyük fel, hogy a tétel feltétele teljesül, és a minimum a k. sorban lévı elemre (is) fennáll. Ekkor az új feladatot a következıképpen konstruáljuk: Határozzuk meg a következı LP optimális megoldását szimplex algoritmussal: -x x x x 5 x, x -x - x =z(x) min Az átalakítás során a kj -t generáló elemnek, az k. sort pedig a generáló elem sorának nevezzük. Informatikai Alkalmazások Informatikai Alkalmazások

Használjuk a klasszikus bázistranszformációkat: u u x x b u u x x b - ½ - ½ 5 -½ 7/ - - ½ - / Hogyan lehet áttérni a szimplex táblára? x u x u b - ½ ½ 7/ -½ - / ½ x u x u b - ½ ½ 7/ -½ - / ½ x u x u b - ½ ½ 7/ -½ u x u b /7 /7 7/7 /7 -/7 6/7 - / ½ /7 /7 /7 A megoldás: x =6/7, x =7/7 z(x)=-/7. x Informatikai Alkalmazások 5 Ha jól számolunk, akkor az egységmátrix mindig megjelenik a táblázatban. Ezeket nem kell kiszámítani, elhagyhatjuk a táblázatból. Helyezzük át ezeket a változókat a táblázat elsı oszlopába az egységvektoruknak megfelelı pozícióba. Az elemek transzformációja ennek megfelılen változik. Informatikai Alkalmazások 6 x u x u b - ½ ½ 7/ -½ - / ½ Az algoritmus: x x u u Informatikai Alkalmazások 7 b /7 -/7 6/7 A bázisba a generáló elem oszlopában lévı változó kerül be a g.e. sorában levı bázisváltozó helyére. Legyen a generáló elem a kj. Ekkor a kj =/a kj a ij = a ij a kj, ha i j, a ki = a ki a kj, ha i j, a it = a it a ij a kt, ha i jés t k. /7 /7 /7 7/7 /7 /7 Probléma: A bázistranszformáció feltételeként beállított érték csak akkor létezik, ha a generáló oszlopban van pozitív együttható. Tétel (Optimum nemlétezésének kritériuma): Ha lehetséges kanonikus alakú feladatban valamely n j nm indexre c j <, és az a rj ( r =,,, n) elemek egyike sem pozitív, akkor a feladat célfüggvénye alulról nem korlátos a lehetséges megoldások halmazán. Informatikai Alkalmazások 8

A standard feladat általános megoldása bonyolultabb, mivel a kiinduló bázismegoldás nem áll rendelkezésünkre. Tovább bonyolódik a helyzet, ha nem folytonos feladatról, hanem egész értékő feladatról van szó: 5 Hozzárendelési feladat Adott n számú dolgozó és n különbözı munka. A dolgozók a munkákat különbözı költségekkel végzik el. Osszuk szét a dolgozók között a munkákat úgy, hogy minden dolgozó pontosan egy munkát kapjon, és a munkavégzés költsége minimális legyen! n c ij A dolgozók száma A j. munka elvégzésének költsége, ha azt az i. dolgozó hajtja végre. ( i,j n), ha az i. dolgozó végzi a j. munkát x ij, különben Informatikai Alkalmazások 9 Informatikai Alkalmazások 5 A matematikai modell i =,,, n Megoldható a feladat? A megoldást mindig egy olyan nµn-es bináris mátrix szolgáltatja, amelynek minden sorában és minden oszlopában egy és csak egy -es van. j =,,, n i n, j n Példa: µ-es esetben legyen a költségmátrix Egy lehetséges megoldás: Informatikai Alkalmazások Informatikai Alkalmazások 6

Következmény-: Egy hozzárendelési feladatnak (HF) mindig van lehetséges megoldása. Következmény-: Egy HF lehetséges megoldásainak halmaza csak n- tıl függ, a költségmátrix értékétıl a a lehetséges megoldások halmaza független. Következmény-: Egy HF-nak n! különbözı lehetséges megoldása van. Következmény-: Különbözı célfüggvényő (de azonos n-hez tartozó) HF-hoz tartozó lehetséges megoldások halmaza megegyezik. Ezért a HF-t meghatározza a C = {c ij } költségmátrix. Jelölése: H(C). Következmény-5: Egy HF optimális megoldását mindig meghatározhatjuk, ha végigpróbáljuk az összes lehetséges megoldást, és kiválasztjuk azt, amelyhez a minimális célfüggvényérték tartozik. Informatikai Alkalmazások A C nµm és D nµm mátrixokat ekvivalensnek mondunk, ha léteznek olyan α,α,,α n, ésβ,β,,β m konstansok, amelyekre c ij = d ij α i β j minden i n, j n értékre. Jelölése: C ~ D. Tétel (Mátrixok ekvivalenciája): Ha C és D nµn-es költségmátrixok, és C ~ D, akkor H(C) és H(D) optimális megoldásai megegyeznek. Biz. Legyen z C és z D a két célfüggvény, és legyen megoldás. Megmutatjuk, hogy létezik egy olyanγ konstans, amelyre egy tetszıleges Informatikai Alkalmazások 7 Egy mátrix elemeinek egy rendszerét független rendszernek nevezzük, ha a mátrix minden sora és minden oszlopa legfeljebb egy elemet tartalmaz a rendszerbıl. (Elemeit -gal jelöljük.) Tekintsük azt az eljárást, amely elıállít egy olyan C (), C (),, C (k) mátrixsorozatot (k n), amelyre teljesül, hogy () C ~ C () () C (t) ~ C (t), t =,,,, k- () C (t), t =,,,, k () C (k) ban ki van jelölve egy n elemő független rendszer. γ Informatikai Alkalmazások 5 Informatikai Alkalmazások 6 8

Tétel: Tegyük fel, hogy van egy ilyen mátrixsorozatunk. Legyen egy olyan nµn-es mátrix, amelyre teljesül, hogy Ekkor Biz. optimális megoldása H(C)-nek. lehetséges megoldás () miatt. optimális megoldása H(C (k) )-nak, mert z k ( ) =, és () miatt, és bármely X lehetséges megoldásra z k (X ). () és () valamint az ekvivalencia tranzitivitása miatt C ~ C (k). optimális megoldása H(C)-nek is. Magyar módszer Jelölje a kijelölt független rendszer elemeinek a számát. Elıkészítı rész (Egy független rendszer elıállítása): Vonjuk ki a sorminimumokat a sorokból Vonjuk ki az oszlopminimumokat az oszlopokból. Így megkapunk egy C () mátrixot. Jelöljünk ki C () -ban egy független rendszert. Egy mátrix egy elemét szabad elemnek nevezzük, ha nincs jellel ellátva, és sem a sora sem az oszlopa nincs lekötve. Informatikai Alkalmazások 7 Informatikai Alkalmazások 8 9 r = = n i VÉGE Példa: Oldjuk meg a következı hozzárendelési feladatot! r = r Kössük le a oszlopait Van szabad elem? Jelöljük meg -vel a szabad -t sora tartalmaz -t? sorát kössük le, oszlopát oldjuk fel A szabad elemek minimumát levonjuk a szabad elemekbıl, és hozzáadjuk a kétszeresen kötött elemekhez. Láncképzés: oszlopában, sorában. (Jel.: L) C (r) elemei: Jelölések nélküli C (r) megjelölése -gal, ha - és - és Informatikai Alkalmazások 9 Informatikai Alkalmazások

Jelöljük ki a független rendszert oszlopfolytonosan: Kössük le a -k oszlopait! Informatikai Alkalmazások Keressünk sorfolytonosan szabad -t! Ez a c 5 elem lesz. Mivel a harmadik sor tartalmaz elemet, ezért a c 5 elemet ellátjuk -vel, a sort lekötjük, a sorában levı oszlopát pedig feloldjuk: Most a c lesz az elsı szabad, a negyedik sort lekötjük és a negyedik oszlopot kell feloldani. Keresve szabad -t azt kapjuk, hogy a c lesz az elsı szabad, az elsı sort le kell kötni és a harmadik oszlopot kell feloldani. Informatikai Alkalmazások Szabad -t keresve most azt látjuk, hogy nincs ilyen elem. Mivel a független rendszerünk csak elemet tartalmaz, ezért az ekvivalencia tétel felhasználásával gyártani kell szabad -t: A szabad elemek minimuma most. Vonjuk le az -t a szabad elemekbıl, és adjuk hozzá a kétszer kötött elemekhez: Informatikai Alkalmazások Most már ismét kereshetünk szabad -t. Ez a c elem lesz. Ennek sora tartalmaz elemet, ezért a c elemet ellátjuk -vel, a sorát lekötjük, és a harmadik oszlopot feloldjuk: Ismét szabad -t keresve, c 5 lesz az elsı szabad, de a sora nem tartalmaz elemet, ezért a láncképzés indul be: Informatikai Alkalmazások

Informatikai Alkalmazások 5 Most törölve a jelöléseket, és -gal ellátva a láncon kívüli elemeket, valamint -gal ellátva a láncon belüli elemeket, megkapjuk a a C() mátrixot. = () C Informatikai Alkalmazások 6 Mivel C () -ben 5 elemő a független rendszer, ezért az eljárás véget ér. Most már csak az X megoldásmátrix elıállítása van hátra: = () C Informatikai Alkalmazások 7 = X Ezért a célfüggvény értéke: Ez a kép most nem jeleníthetı meg. Informatikai Alkalmazások 8 Szállítási feladat Adottak feladóhelyek (raktárak), amelyekben azonos árú áll rendelkezésre különbözı mennyiségben. Adottak továbbá felvevıhelyek (igények), amelyekben elıírt mennyiségekben árúra van szükség. Szállítsuk el a raktárakban levı árút a felvevıhelyekre úgy, hogy a szállítási költségek összege minimális legyen. n A dolgozók száma a i Az i. raktárban lévı árumennyiség. (i =,,,n) m Az igények száma c ij Egységnyi anyagmennyiség szállítási költsége az i. raktárból a j. felvevıhelyre. ( i n, j m) x ij Az i. raktárból a j. felvevıhelyre szállítandó árumenynyiség. ( i n, j m)

A matematikai modell i =,,, n Megoldható a feladat? Tétel (Egyensúlyi feltétel): A szállítási feadatnak akkor és csak akkor létezik optimális megoldása, ha és j =,,, m i n, j m A korábbiakból látható, hogy egy szállítási feladatot meghatározza az a és b vektor, valamint a C költségmátrix. Jelöljük az így meghatározott szállítási feladatot S(a, b, C)-vel. Tétel: Ha a C és D mátrixok ekvivalensek, akkor az S(a, b, C) és S(a, b, D) feladatok optimális megoldásai megegyeznek. A következıkben feltételezzük, hogy az a, b, C elemei egész számok. Informatikai Alkalmazások 9 Informatikai Alkalmazások 5 5 Tekintsük a következı eljárást (Ford-Fulkerson, 956): Elıállítunk egy olyan mátrixsorozatot, amelyre () C ~ C () () C (t) ~ C (t), t =,,,, k- () C (t), t =,,,, k () X (t), és X (t) egész, t =,,,, k (5) Ha t k, akkor (6) Bármely i n, j m, t k indexháromasra -ból következik, hogy (7) Ha akkor bármely t<k. Tétel: A bemutatott eljárás feltételeit kielégítı mátrixsorozat esetén X (k) optimális megoldása az S(a, b, C) szállítási feladatnak. Biz: t definíciója miatt, és a (), (5), (8) feltételek teljesülése miatt ahol L k az S(a, b, C (k) ) szállítási feladat lehetséges megoldásainak a halmaza. Ha z k az S(a, b, C (k) ) célfüggvénye, akkor (6) miatt. () miatt bármely lehetséges megoldásra z k (X), ezért X (k) optimális megoldása S(a, b, C(k))-nak. (), () és az ekvivalencia tranzitivitása miatt C ~ C (k). Ezért X (k) optimális megoldása S(a, b, C)-nek is. (8) k =. Informatikai Alkalmazások 5 Informatikai Alkalmazások 5 6

Hogyan lehet az () (8) feltételeket kielégítı mátrixpár-sorozatot elıállítani? Ford Fulkerson (956): A hozzárendelési feladatra kidolgozott gondolatmenet alapján megalkotta a magyar módszert a szállítási feladat megoldására. Elıkészítı rész: C () -ban elemek elıállítása sorminimumok és oszlopminimumok segítségével. X () elıállítása (mohó algoritmus segítségével) r = Paraméterek kiszámítása r = i VÉGE Van szabad elem? Ekvivalencia lépés i. sorban Jelöljük meg -vel a szabad -t Láncképzés Informatikai Alkalmazások 5 kössük le az i. sort. ha és és az s. oszlop le van kötve, akkor oldjuk fel az s. oszlopot, és jelöljük -gal. r = r Informatikai Alkalmazások 5 7 Paraméterek kiszámítása: Példa: Oldjuk Meg a következı S(a,b, C) szállítási feladatot! Ekvivalencia-lépés: A szabad elemek minimumát levonjuk a szabad elemekbıl, és hozzáadjuk a kétszeresen kötött elemekhez. Láncképzés: oszlopában, sorában választása. Elıször az elıkészítı részben a sorminimumok és az oszlopminimumok segítségével kiszámítjuk C () -t: () X = Most C () alapján megkonstruáljuk az X () mátrixot: Informatikai Alkalmazások 55 Informatikai Alkalmazások 56 8

Mivel az iterációs részben mindig mátrixpárral dolgozunk, ezért a továbbiakban ezeket adjuk meg. () X = Következik a paraméterek kiszámítása: Ezért az oszloplekötésekkel folytatódik az eljárás. Ehhez ki kell számolnunk a a szükségletek és a szállítandó mennyiségek eltéréseit a képlet alapján. Kapjuk δ = δ = δ = δ 5 =, ezért ezeket az oszlopokat lekötjük. Informatikai Alkalmazások 57 Most az algoritmus szerint sorfolytonosan keresünk szabad -t. Az elsı szabad elem. Megvizsgálva X () elsı sorára a készlet és a szállítandó mennyiségek eltérését, kapjuk, hogy azaz X () elsı sorára teljesül a szállítás. Ellátjuk vesszıvel a elemet, lekötjük a sorát, a sorában megvizsgáljuk az elemeket. Azt látjuk, hogy és C () második oszlopa le van kötve. Ezért ezt az oszlopot feloldjuk, és a elemet -gal látjuk el: () X = Informatikai Alkalmazások 58 9 Több ilyen elem nincs az elsı sorban. Ezért ismét szabad -t keresünk. Az elsı szabad elem lesz. Kiszámolva a különbséget kapjuk, hogy következik: -t vesszıvel kell ellátni, és a láncképzési lépés () X = Most X () és a lánc alapján elkészítjük X () -t. Ehhez ki kell számítanunk Θ értékét. Ehhez elıször ρ értékét határozzuk meg, amely a láncba tartozó -knak megfelelı x értékek minimuma. Most egyetlen ilyen elem van, ezértρ=. Informatikai Alkalmazások 59 Másrészt venni kell a lánc kezdı elemének sorindexét, és az X () -ban ehhez a sorhoz tartozó lehetséges növekményt: Ezután még venni kell a lánc befejezı elemének oszlopindexét (ez ), és meg kell határozni az oszlopeltérést: Ezért Állítsuk elı a (C (), X () ) mátrix-párt: () X = Mivel =, ezért ismét oszloplekötésekkel folytatódik az eljárás. δ =δ =δ =δ 5 =, ezért az indexeknek megfelelı oszlopokat lekötjük. Informatikai Alkalmazások 6

Informatikai Alkalmazások 6 Sorfolytonosan az elsı szabad elem. Mivel ezért -et ellátjuk vesszıvel, a sorát lekötjük, majd a C () második oszlopát feloldjuk, és -et ellátjuk -gal. Több elemet nem lehet ellátni -gal ebben a sorban, ezért sorfolytonosan -t keresünk. Sorfolytonosan az elsı szabad elem. Mivel ezért -et ellátjuk vesszıvel, a sorát lekötjük, majd a C () elsı oszlopát feloldjuk, és -et ellátjuk -gal. Mivel nincs szabad, ezért az ekvivalencia lépéssel folytatjuk az eljárást. = () X Informatikai Alkalmazások 6 Kössük le a sorokat és az oszlopokat. A szabad elemek minimuma, ezt kivonjuk a szabad elemekbıl és hozzáadjuk a kétszer kötött elemekhez: = () X = () X Informatikai Alkalmazások 6 Ismét szabad -t keresve, lesz az elsı szabad. Mivel ezért az eljárás a láncképzéssel folytatódik. Lássuk el -et vesszıvel. A C () negyedik oszlopában nincs, ezért a lánc elfajuló, csak egyetlen elemet tartalmaz. Számoljuk ki most is elıször Θ-t. és ezért Θ =. Így a lánc alapján az X () mátrixnak csak a (,) indexő eleme változik meg. = () X Informatikai Alkalmazások 6 Képezzük most t. Azt kapjuk, hogy =, ezért az eljárás véget ér. A feladat optimális megoldásához tartozó célfüggvényérték: = () X = () X

A potenciálok módszere Tekintsük a következı szállítási feladatot: K K K Igény (b) F F F Készlet (a) 5 8 5 6 8 8 7 7 8 9 Keressünk egy kiinduló megoldást a mohó algoritmussal! Így az összes költség: 8 7 6 = Az összesen n m - = 6 helyre allokáltunk szállítást. F 7 Vezessük be segédváltozóként az u i és a v j potenciálokat, úgy, hogy a költségmátrixban szereplı a lekötött elemekre c ij = u i v j legyen. Írjuk ezeket a lekötött elemek oszlopa elé ill. sora fölé. A potenciálok közül egyet szabadon választhatunk meg. Legyen u =. u = - u = u = Igény (b) v = v = v = 6 v = 5 Készlet (a) 5 8 5 6 8 8 7 8 9 Számítsuk ki a nem lekötött relációkra a c ij (u i v j ) különbségeket: 7 Informatikai Alkalmazások 65 Informatikai Alkalmazások 66 c (u v ) = 5 (- ) = elıjele c (u v ) = 8 (- ) = 7 elıjele c (u v ) = ( ) = - elıjele c (u v ) = 7 ( 6) = - elıjele c (u v ) = ( 5) = - elıjele c (u v ) = 8 ( 5) = - elıjele Vizsgáljuk meg ezek után, hogy a nem lekötött relációk esetén hogyan alakul a c ij (u i v j ) különbség. Ha ez, ez azt jelenti, hogy annak relációnak a lekötése nem változtatna a költségeken. Ha ez a különbség pozitív, akkor ennek a relációnak a bevonása növelné a költségeket. Ha negatív, akkor ennek a relációnak a bevonása ncsökkentené a költségeket. Informatikai Alkalmazások 67 Miután több negatív különbséget is kaptunk, a program, vagyis a költség csökkenthetı, ha a negatív elıjelő relációk közül lekötünk. A legnegatívabb a T F viszonylat adódott, ennek lekötése csökkentené leginkább a költségeket. Ha ezt a viszonylatot lekötjük egy x mennyiséggel, akkor ez hiányozni fog az elıbbi lekötések közül. Vagyis át kell rendeznünk a korábbi elosztási rendet egy kör mentén. x értékét úgy kell megválasztani, hogy ezáltal egy addig kötött elemhez mennyiség kerüljön, és így a kötöttsége megszőnjön. Pl. x = -t választva a T F reláció kötöttsége megszőnik. Informatikai Alkalmazások 68

u = - u = u = Igény (b) v = v = v = 6 v = 5 Készlet (a) 5 8 5 6x -x 6 8 8 7 -x x 7 8 7 9 Nézzük a további javítás lehetıségét: c (u v ) = 5 ( ) = az elıjel c (u v ) = 8 ( ) = az elıjel c (u v ) = ( - ) = az elıjel c (u v ) = 7 (6 ) = - az elıjel c (u v ) = ( ) = - az elıjel c (u v ) = 8 (6 ) = - az elıjel Az új program költsége: 6 8 6 = 88. Tekintsük most az új helyzetet, és jelöljük be az új kötött relációkat. Informatikai Alkalmazások 69 A program ugyan jobb lett, mint korábban, a szállítási költség kevesebb, de mivel még vannak negatív különbségek, ezért tovább javítható. Most a legnagyobb javítást a T F reláció bevonása ígéri, ezért a korábbi elvekhez hasonlóan növeljük meg ezt a relációt egy x mennyiséggel. Informatikai Alkalmazások 7 5 v = v = v = 6 v = 5 Készlet (a) v = v = v = 6 v = 5 Készlet (a) u = - 5 8 5 u = - 5 8 5 u = 6x 6 -x 8 u = 8 6 8 u = 8 -x 7 x 8 7 u = 8 7 8 7 Igény (b) 9 Igény (b) 9 Most x = a helyes választás ahhoz, hogy egy lekötött pozíción -t kaphassunk. Az új program költsége: 8 8 7 = 8. Számítsuk ki ismét az új potenciálokat: Informatikai Alkalmazások 7 Informatikai Alkalmazások 7 6

u = - u = - u = Igény (b) v = 8 v = v = 7 v = 6 Készlet (a) 5 8 5 8 6 8 8 7 8 9 c (u v ) = 5 (- 8) = elıjele c (u v ) = 8 (- ) = 8 elıjele c (u v ) = (- ) = elıjele c (u v ) = 6 (- 7) = elıjele c (u v ) = (- 6) = elıjele c (u v ) = 8 ( 6) = elıjele Mivel minden le nem kötött potenciál értéke pozitív, ezért a megoldásunk tovább nem javítható. 7 Informatikai Alkalmazások 7 Legyen V elemeknek egy véges halmaza, és E a V elemeibıl képezett rendezett párok esetleg üres halmaza. Gráfnak nevezzük a V és E által meghatározott struktúrát. Jelölése: G(V,E) V(G) A G csúcshalmaza v v v e 5 e e e v e v 5 Gráfelmélet alapjai E(G) A G élhalmaza e = {v,v } összeköti a v és v csúcsokat v és v szomszédos csúcsok, e és e szomszédos élek, e és v 5 illeszkednek. Idınként a v v jelölést fogjuk használni a {v,v } helyett. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 7 7 V(G) elemeinek a számát a gráf rendjének nevezzük. Jelölése: n(g). e E(G) elemeinek a számát a gráf méretének nevezzük. Jelölése: m(g). v v Az n-ed rendő, m mérető gráfot G(n,m) vagy G n,m jelöli. e e e Legyen a G gráf csúcshalmaz V(G) = {v, v,, v n } és élhalmaza E(G) = {e, e,, e m }. A gráf leírható mátrixokkal. A szomszédsági mátrix A(G) = [a ij ] nxn ahol a ij = { ha v iv j E(G) ha v i v j E(G) Az illeszkedési mátrix B(G) = [b ij ] nxm ahol b ij = { ha v i és e j illeszkedik különben. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 75 v e 5 v v v v e e e e e 5 v v v v Egy gráf, és a hozzá tatozó szomszédsági és illeszkedési mátrixok Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 76 v v v v v 8

Csúcsok fokszáma Egy G gráf v csúcsának fokszámán a csúcshoz illeszkedı élek számát értjük. Jelölése: deg G v vagy deg v. Jelılje a v csúccsal szomszédos csúcsok halmazátγ(v). deg G v= Γ(v). Egy csúcsot párosnak vagy páratlannak nevezzük attól függıen, hogy a fokszáma páros vagy páratlan. Egy csúcsot izoláltnak nevezünk, ha deg v =, és vég-csúcsnak, ha deg v =. δ(g) = min deg G v a G gráf minimális fokszáma. v G (G) = max deg G v a G gráf maximális fokszáma. v G Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 77 v v v v 6 v 7 v 8 5 v v 5 deg G v = deg G v = deg G v 9 = δ(g) = deg G v 8 = (G) = deg G v 6 = 5 Csúcsfokszámok egy gráfban Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 78 v 9 9 Tétel ( Kézfogási Lemma): Tekintsük a G(n,m) gráfot, ahol V(G) = {v, v,, v n }. Ekkor n deg G v i = m i= Biz.: Az állítás azonnal következik abból a ténybıl, hogy minden él két csúcsra illeszkedik. Következmény: Bármely gráfban a páratlan csúcsok száma mindig páros. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 79 Azt a gráfot, amelynek nincsenek élei üres gráfnak nevezzük. A H gráf a G gráf részgráfja, ha V(H) V(G) és E(H) E(G). Részgráfok és indukált részgráfok Legyen v V(G) és V(G). A H = G v gráf a v csúcs törlésével áll elı G-bıl, ha V(H) = V(G) {v} és E(H) a G azon éleit tartalmazza, amelyek nem illeszkednek v-re. Ha e E(G), akkor H = G e (egy él kitörlése) G-nek egy olyan részgráfja, amelyre V(H) = V(G) és E(H) = E(G) {e}. v Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 8

e v G G v G e Ha u és v a G nem szomszédos csúcsai, akkor G f, ahol f = uv, jelöli azt a gráfot, amelynek csúcshalmaza V(G) és élhalmaza E(G) { f }. Ezért G G f. Ha G egy H részgráfjának rendje megegyezik G rendjével, akkor H- t G feszítı részgráfjának nevezzük. Ha U a V(G) egy részhalmaz, akkor U a G-nek egy olyan U által indukált gráfja, amely csúcshalmaza U V(G) és élhalmaza minden olyan élet tartalmaz G-bıl, amely illeszkedik az U két elemére. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 8 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 8 Speciális gráfok Egy G gráfot r-reguláris gráfnak nevezünk, ha deg v = r a G gráf minden v csúcsára. Egy gráf teljes, ha bármely két csúcsa szomszédos. Ha G = G(m,n), akkor G (n-)-reguláris, és m = n(n-)/. Jelölése: K n. -reguláris gráfok. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 8 A Petersen gráf Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 8

Egy G gráf komplemens gráfján azt a gráfot értjük, amelyre V( )= V(G) u,v V(G), uv E( ) akkor és csak akkor, ha uv E(G). Állítás-: Ha G = G(m,n), akkor amelynek mérete: egy olyan n-ed rendő gráf, Egy G gráfot k-részesnek mondunk, k, ha a V(G) csúcspontjainak halmaza úgy particionálható k részhalmazra (V,V,,V k ), hogy E(G) elemei V i és V j -beli csúcsokat kötnek össze, ahol i j. Ha k =, akkor a gráf kétrészes. Tétel: Ha G egy r-reguláris kétrészes gráf, r, akkor V = V. Egy teljes kétrészes gráfot, ahol V = r és V = s K(r,s)-el vagy K r,s - el jelöljük. (A K,s gráfot csillagnak nevezzük). Állítás- : A K n teljes gráf komplemens gráfja üres. az n-ed rendő Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 85 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 86 v v v 5 v 7 Mőveletek gáfokon Két gráf egyesítésén (unióján) azt a G = G U G gráfot értjük, amelyre V(G) = V(G ) U V(G ) és E(G) = E(G ) U E(G ). v v v 6 v v v 5 v 7 V Példa: K U K U K,. v v v 6 V Egy kétrészes gráf két különbözı (izomorfikus) ábrázolása Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 87 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 88

Két gráf összekapcsolásán azt a G = G G gráfot értjük, amelyre V(G) = V(G ) U V(G ) és E(G) = E(G ) U E(G ) U{uv u V(G ) és v V(G )}. Két gráf direkt szorzatán azt a G = G G gráfot értjük, amelyre V(G) = V(G ) V(G ) és két csúcs: (u,u ) és (v,v ) akkor és csak akkor szomszédos, ha vagy u = v és u v E(G ) vagy u = v és u v E(G ) Példa: Példa: (u,u ) (u,v ) u u v (u,w ) v (v,u ) (v,v ) w w (v,w ) G G G G G G G = G G Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 89 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 9 5 Gráfok bejárása Legyen u és v a G gráf nem szükségképpen különbözı két csúcsa. Egy W-vel jelölt u v séta a G gráfban a csúcspontoknak és az éleknek egy olyan W: u = u,e,u,e,u,.,u k-,e k,u k = v véges, alternáló sorozata, amely az u csúcsponttal kezdıdik, a v csúccsal végzıdik, és e i = u i- u i mindig egy él, i=,,,k. A k számot a W séta hosszának nevezzük. u u Egy u v sétát zártnak vagy nyitottnak nevezünk attól függıen, hogy u = v vagy u v. A u-v ösvény az egy olyan u v séta, amelyben él nem ismétlıdik, és egy u v út az egy olyan u v séta, amelyben csúcspont nem ismétlıdik. Következmény-: minden út egyben ısvény is. Következmény-: Minden út egyben séta is, de a megfordítottja általában nem igaz. u e e e 5 e k=6 u 6 =v e 6 e u u =u 5 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 9 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 9 6

Példa: v v Tétel: Ha A a G szomszédsági mátrixa, és V(G) = {v,v,,v n }, akkor az A k hatványmátrix (i,j) eleme, k, megadja a k hosszúságú v i -v j sétákat a G gráfban. Példa: v v 5 v egy v -v séta de nem ösvény. egy ösvény de nem út. egy út. v v v v Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 9 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 9 7 Egy nem triviális zárt ösvényt körútnak nevezünk, és azt a körutat, amelyben n különbözı csomópont szerepel, kırnek nevezzük. Egy aciklikus gráfban nincs kör. Egy kör páros, ha hossza páros, egyébként a kör páratlan. Egy k hosszúságú kört k-körnek nevezünk. A -kör a háromszög. Azt az n-ed rendő gráfot, amely út, P n jelöli, és C n egy n csúcspontú kört jelöl. Egy u csúcsról azt mondjuk, hogy összeköthetı a v csúccsal, a gráfban létezik egy u v út. Tétel: Egy G gráf csúcshalmazán értelmezett összefüggı reláció egy ekvivalancia reláció. Biz.: Házi feladat Azokat a részgráfokat, amelyek az ekvivalencia reláció eredményeként létrejött ekvivalencia osztályoknak felelnek meg, a G gráf összefüggı komponensének nevezzük. A G gráf komponenseinek számát k(g) jelöli. Egy összefüggı gráfban az u és v csúcsok d(u,v) távolságán a két csúcspont között megadható u v utak minimális hosszát értjük. Egy gráf összefüggı, ha bármely két csúcsa összeköthetı. Egyébként a gráf nem összefüggı. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 95 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 96 8

A feszítı fa probléma v v v 6 v 7 v 8 v v 5 v v v 9 v v 6 v v 5 v 9 v 7 v Távolsági szintek a v csúcsból kiindulva. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 97 v 8 szint szint szint szint Egy G gráf feszítı fáján azt a feszítı részgráfot értjük, amely fa. Tétel: Minden összefüggı fának van feszítı részgráfja Biz.: Konstrukcióval. Válasszunk egy tetszıleges x V csúcspontot. Legyen V i ={ y G : d(x,y)= i, i=,,,m }. Ha y i V i, i > és x,z,z,,z i-,y i egy x y i út, akkor d(x,z j )= j, < j < i. Az világos, hogy V j Ø, ha j < M, és bármely y V i -hez, i M, létezik legalább egy y V i-, amely szomszédos y-nal. ({y,y} E(G)). Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 98 9 x Az optimalizáció-elmélet egyik ismert problémája az, hogy hogyan lehet megtalálni egy gráf valamilyen speciális tulajdonsággal rendelkezı feszítı fáját. Legyen adott a G=(V,E) gráf és egy pozitív értékő f függvény, amely a gráf élein van definiálva: f: E R. Keressük azt a T=(V,E ) összefüggı feszítı fát, amelyre minimális. V V V V M- V M- V M Az ilyen tulajdonságú feszítı részfát gazdaságos feszítı fának nevezzük. Következmény-: A G(n,m) feszítıfája: T(n,n-). Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 99 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 5

Egy valós probléma: Egy adott régióban falvakat akarunk összekötni vízvezetékkel. Ismerjük, hogy mennyibe kerül az egyes flvak közötti vezetékek felépítése. Keressük meg azt a hálózatot, mely a legkevesebb költséggel építhetı fel! Példa: Kruskal Algoritmus (956): Válasszuk ki a legolcsóbb élet G-bıl, azaz azt az élet, amelyre f(e) minimális. A következı élet a még ki nem választottak közül mindig úgy választjuk, hogy az a legolcsóbb legyen. A választásnál arra kell ügyelnünk, hogy nem képezhetünk körutat a kiválasztott élekbıl. Ha ilyen él már nincs, akkor véget ér az algoritmus. 5 5 f(t )=5 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 5. Algoritmus: Az algoritmus lényege az, hogy drága élet csak akkor szabad választani, ha biztosítani akarjuk a gráf összefüggıségét. Töröljük tehát a legdrágább élet a gráfból mindaddig, amíg a gráf összefüggı marad. Ha ilyen él már nincs, akkor véget ér az algoritmus. A legrövidebb út problémája Rendeljünk a G gráf minden (u,v ) E(G) éléhez egy w(u,v) függvényt, és nevezzük ezt súlynak. Azt a gráfot, amelynek élei súlyozva vannak, súlyozott gráfnak nevezzük. Legyen w: E(G) R egy függvény. Terjesszük ki a függvény definícióját egy gráf H Grészgráfjára: 5 f(t )=5 Számos olyan optimalizációs probléma létezik, amely egy súlyozott gráfban keres egy olyan részgráfot, amely valamilyen tulajdonság szerint minimális (vagy maximális). Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 5

A legrövidebb út problémája: adott egy súlyozott gráf, (vasút hálózat). Határozzuk meg a legrövidebb utat a gráf elıre adott két csúcspontja (városa) között. Ebben a környezetben az út hosszán a út által reprezentált részgráf súlyát fogjuk érteni. The Dijkstra algorithm (959) Tegyük fel, hogy az u és a v csúcsok közötti út hosszát akarjuk meghatározni: Az algoritmus egy fokozatosan növekvı S i halmazt készít, ahol i n, és {u } S i V(G). Minden lépésben egy cimkét rendelünk a csúcspontokhoz: l:(g) R { } úgy, hogy a v S csúcshoz tartozó l(v) címke a v csúcs távolságát adja meg az u csúcstól az S indukált részgráfban. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 5 Elıkészítı lépés: Iterációs lépés: Ha S i = V(G) akkor az algoritmus befejezıdik. Ha S i V(G) akkor legyen u i a W egy tetszıleges csúcspontja. Ha l(u i ) = vagy u i = v akkor az algoritmus megáll. Ha l (u i ) < akkor S i = S i U {u i }, és legyen i=i. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 6 és 5 Mi a Dijkstras Algoritmus bonyolultsága? n-ben polinomiális: O(n ). Példa: Step l(u ) l(v )l(v )l(v )l(v ) S i v v 7 u 7 u v 7 5 u v v u v v 5 u v v v 5 u v v v v Euler gráfok Egy olyan körutat a G gráfban, amely tartalmazza a G összes élét Euler körnek mondjuk. Egy Euler ösvény tartalmazza az összes élet, de nem zárt. Egy gráf Euler gráf, ha benne létezik Euler-kör. Egy G gráfot párosnak (páratlannak) mondunk, ha minden csúcsa páros (páratlan). Tétel : Egy összefüggı gráfban akkor és csak akkor van Euler-körút, ha a gráf minden csúcsa páros. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 7 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 8 5

Definiáljuk a következı sorozatot: a sorozatban egy bető azt a szárazföldet jelenti, amelyhez az út során elérkeztünk, és két egymás utáni elem azt a hidat jelenti, amelyen át kell kelni útban az egyik területrıl a másikra. Ha ilyen út létezne, akkor az leírható lenne 8 betővel, amelyek mindegyikét az A, B, C és D betőkbıl választjuk Mivel minden hídon pontosan egyszer szabad átmenni, ezért az A és B betők ebben a sorozatban kétszer fordulnak úgy elı, hogy ık egymást követik. Ugyanez a helyzet az A és C betőpárral is. Mivel öt híd vezet az A által jelölt területre, ezért A-nak a jó megoldásban háromszor kell megjelenni. (Két pár jelöl egy-egy belépést és kilépést az A területre, egy pedig vagy kilépést vagy belépést A-ra.) Hasonló megfontolásból, B, C és D kétszer jelenik meg a sorozatban. Ezért legalább 9 betőbıl kell állni a sorozatnak. Ez pedig lehetetlen. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 9 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 55 Hamilton utak A C D Az utazó ügynök problémája: egy utazóügynök n várost akar meglátogatni úgy, hogy az út végén visszaérjen a központi irodába. Bármely két város közötti utazás költsége ismert. Keressünk egy hatékony algoritmust, amely megtalálja a legolcsóbb utat. Mit jelent a hatékony algoritmus? The seven bridges on the Pregel in Königsberg Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés B A válasz meglepı: nem ismert az, hogy létezik-e hatékony algoritmus a probléma megoldására. Variáns: Ha az úttól azt követeljük meg, hogy körút legyen, azaz nincs megengedve az, hogy az utazás alatt ugyanazt a várost kétszer is érintse. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 56

Azt a körutat, amely tartalmazza a problémához tartozó gráf minden csúcspontját, Hamilton körnek nevezzük. Azt a gráfot, amelynek van Hamilton köre, Hamilton gráfnak nevezzük. Az elnevezés onnan ered, hogy Sir William Rowan Hamilton 857- ben konstruált egy játékot, amely során a feladat az volt, hogy miként lehet a dodekaéder csúcsaiba vert szögeken végigvezetni egy madzagot úgy, hogy minden csúcsot csak egyszer érintünk. Ez volt 9. század Rubik kockája. 855-ben Thomas P. Kirkman következı kérdést tette fel: Legyen adott egy poliéderhez tartozó gráf. Lehet-e mindig konstruálni egy olyan körutat, amely minden csúcspontot egyszer és csak egyszer érint? Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés A dodekaéder gráfja Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 57 Hamilton köröket (és Hamilton utakat) már korábban is vizsgáltak. 759-ben Euler tanulmányozta azt a problémát, hogy lehetséges-e a huszárral bejárni a sakktábla mind a 6 mezıjét úgy, hogy minden mezıt érintünk, egyikre sem lépünk kétszer, és a végén vissza jutunk a kiindulópontra. A gazdaságos Hamilton kör meghatározásánál lényegesen egyszerőbb az a feladat, hogy létezik-e Hamilton kör a gráfban? Erre a kérdésre sincs jó válasz. Van-e olyan feltétel, amely alapján eldönthetı, hogy egy gráf Hamilton-gráf-e vagy sem? Tétel (Dirac): Ha G egy n-ed rendő gráf, és minden csúcspontja legalább n-ed fokú, akkor a gráf Hamilton-gráf. Tétel (O. Ore, 96): Ha G egy n-ed rendő, n, és minden nem szomszédos u, v csúcspontjára deg u deg v n, akkor G Hamilton-gráf. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 5 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 6 58

Reguláris gráfok esetében a Dirac-tétel javítható: Jackson (98) kimutatta, hogy minden olyan -összefüggı r-reguláris gráf, amelynek legalább r csúcspontja van, az Hamilton-gráf. A Petersen gráf mutatja, hogy a r feltétel nem helyettesíthetı r- el. Gyakorlat: Bináris fák és alkalmazásaik: bináris fák ábrázolása rendezés fával tömörítés fával. Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 7 Matematika I. Informatikai Felsıfokú Alkalmazások Szakképzés 8 59 VÉGE Informatikai Alkalmazások 9 6