1 / 22

Magyar módszer

Magyar módszer. Táblázatra és gráfra. Papp Róbert, Blaskovics Viktor, Hantos Norbert. A probléma.

ovidio
Download Presentation

Magyar módszer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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. 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! A probléma definiálása

  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 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. 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. Inicializálás

  7. Inicializálás

  8. 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*) Nulladik iteráció 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. 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. 1. lépés

  11. 1. lépés

  12. 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. 2. lépés

  13. 2. lépés

  14. 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. 3. lépés

  15. 3. lépés

  16. 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. 4. lépés

  17. 4. lépés

  18. 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. 5. 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.

More Related