Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Papp Róbert, Blaskovics Viktor, Hantos Norbert
Magyar módszer Táblázatra és gráfra Papp Róbert, Blaskovics Viktor, Hantos Norbert
2
A probléma Egy gyakorlati probléma: adott N darab gép, és N munkás. Minden munkás tudja kezelni az összes gépet, de más-más költséggel. Melyik munkás melyik géphez kerüljön, hogy az összköltség minimális legyen? 2 3 Gépek 1 1 Munkadíjak 2 5 9 8 4 6 3 7 Munkások 2 3 1
3
A probléma definiálása
Gráf - minimális súlyú párosítás Adott G = (V,E,s) egyszerű (irányítatlan) teljes páros (|V|/2-reguláris) élsúlyozott gráf, ahol s: E->R függvény, az éleket súlyozza. V = A U F alsó és felső pontok (diszjunkt) halmaza. |A| = |F| = N Keressünk a gráfban minimális összsúlyú teljes párosítást! Mátrix - hozzárendelési feladat Adott egy N*N-es (négyzetes) valós számokból álló mátrix. Jelöljünk ki a mátrixban N darab számot úgy, hogy minden sorban és oszlopban pontosan egy ilyen kijelölt szám legyen, és a számok összértéke minimális legyen!
4
Ekvivalencia A mátrixot tekinthetjük a gráf szomszédsági mátrixának: a mátrix egy aij eleme a gráf i. A-beli és j. F-beli pontok által meghatározott él súlya. A két probléma ekkor ekvivalens: a mátrix egy kijelölt (független) számhalmaza által reprezentált élek a gráfban párosítást alkotnak, és viszont. 2 3 1 1 2 3 4 5 6 7 8 9 1 2 5 9 8 4 6 3 7 2 3 1
5
A Magyar módszer Kombinatorikai optimalizálási eljárás
Kőnig Dénes és Egerváry Jenő nyomán Harold Kuhn, 1955 Módosítva: James Munkres, 1957 A program párhuzamosan mutatja a a magyar módszer lépéseit mind a mátrixos, mind a gráfos értelmezésében. Az egyszerűség kedvéért feltételezhetjük, hogy csak egész számokon dolgozunk.
6
Inicializálás Gráf Minden A-beli pontból kiinduló élek súlyát csökkentjük az A-szerinti élsúlyminimummal, majd minden F-beli pontból kiinduló élek súlyát csökkentjük az F-szerinti élsúlyminimummal. Csak a nulla súlyú éleken fogunk dolgozni. Mátrix Minden sorból kivonjuk a sorminimumokat, majd minden oszlopból kivonjuk az oszlopminimumokat.
7
Inicializálás
8
Nulladik iteráció Gráf
Az A-beli csúcsokon sorban végighaladva mohón keresünk egy 0 súlyú párosítást. (barna élek) Mátrix Oszlopfolytonosan kijelölünk egy független 0-kból álló rendszert. (0*) Megjegyzés: mindegy, hogy milyen módszerrel történik a kezdeti párosítás, illetve a 0 független rendszer kiválasztása, akár az is lehet, hogy nem jelölünk ki semmit. Ebben az esetben természetesen az eljárás több iterációt igényel.
9
Nulladik iteráció
10
1. lépés Gráf Ha az aktuális párosításunk maximális (N elemű), kész vagyunk. A párosításunk az eredeti gráfban minimális összsúlyú párosítás. Különben 2. lépés. Mátrix Ha az aktuális 0* független rendszerünk maximális (N elemű), kész vagyunk. A 0*-gal jelölt helyek az eredeti mátrixban az optimális hozzárendelést adják meg. Különben 2. lépés.
11
1. lépés
12
2. lépés Gráf Lekötjük a párosított F-beli pontokat (kék F-beli pontok), és sorba véve a szabad A-beli pontokat, megkeressük az első olyan élt, amelyik szabad F-beli ponthoz tartozik. Ha nincs, 5. lépés. Ha van, megszínezzük (szaggatott piros él), és megnézzük, van-e az A-beli pontjához már párosítás. Ha nincs, 4. lépés. Különben 3. lépés. Mátrix Lekötjük a 0*-ok oszlopait (kék oszlopok), és sorfolytonosan keresünk egy szabad 0-t. Ha nincs, 5. lépés. Ha van, megvesszőzzük (0’), és megnézzük, van-e a sorában 0*. Ha nincs, 4. lépés. Különben 3. lépés.
13
2. lépés
14
3. lépés Gráf A talált megszínezett él A-beli pontját lekötjük (zöld A-beli pont), az ezen A-beli ponthoz tartozó párosítás F-beli pontját felszabadítjuk. 2. lépés. Mátrix A talált 0’ sorát lekötjük (zöld sor), a sorában található 0* oszlopát felszabadítjuk. 2. lépés.
15
3. lépés
16
4. lépés Gráf A talált színezett élből kiindulva láncot képzünk: színezett él esetén F felé, párosított él esetén A felé haladunk. A lánc mentén a színezést és a párosítást kicseréljük. A párosítások kivételével minden jelölést törlünk, új iterációba kezdünk. 1. lépés. Mátrix A talált 0’-ből kiindulva láncot képzünk: 0’ esetén oszlop szerint 0*-ra, 0* esetén sor szerint 0’-re lépünk. A lánc mentén 0’ és 0* jelöléseket kicseréljük. A 0*-ok kivételével minden jelölést törlünk, új iterációba kezdünk. 1. lépés.
17
4. lépés
18
5. lépés Gráf T := a teljes gráfban a szabad élek súlyainak minimuma. A teljes gráfban minden szabad él súlyát csökkentjük T-vel, és minden duplán (A és F szerint) kötött él súlyát növeljük T-vel. 2. lépés. Megjegyzés: ezután ismét csak a 0 súlyú éleket vesszük figyelembe. Mátrix T := a szabad elemek minimuma. A mátrixban minden szabad elemet csökkentünk T-vel, és minden duplán (sor és oszlop szerint) kötött elemet növelünk T-vel. 2. lépés.
19
5. lépés
20
Optimális hatásfokú foglalkoztatás
Kőnig tételének egy fontos általánosítása G: (A U F) élsúlyozott teljes páros gráf, cij élsúlyokkal A = a1,…, an F = f1,…, f1 P = {i,P(i)} független élrendszer: i és P(i) permutáltja közötti élek halmaza, i = 1,…,n c(P) a P független élrendszer értéke (élsúlyainak összege)
21
Optimális hatásfokú foglalkoztatás
Csúcsokhoz f az éleket fedő súlyrendszer: f(ai) = sai ≥ 0, az ai él súlya f(bj) = sbj ≥ 0, a bj él súlya sai + sbj ≥ cij sai + sbj ≥ cij esetén az {ai, bj} élt fedettnek nevezzük. sai + sbj = cij esetén az {ai, bj} élt pontosan fedettnek nevezzük. sai + sbj > cij esetén az {ai, bj} élt túlfedettnek nevezzük. f súlyösszege: s(f) = sai összege = sbj összege
22
Optimális hatásfokú foglalkoztatás
Világos, hogy : maxP c(P) ≤ minf s(f) Kőnig tétele: maxP c(P) = minf s(f) A bizonyítás a Magyar módszer helyességéből adódik.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.