Hujter Mihály: Szerintem ez a jó magyar módszer

Hasonló dokumentumok
ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA

5 = hiszen és az utóbbi mátrix determinánsa a középs½o oszlop szerint kifejtve: 3 7 ( 2) = (példa vége). 7 5 = 8. det 6.

Assignment problem Hozzárendelési feladat (Szállítási feladat speciális esete)

Szerencsejátékok. Elméleti háttér

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

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

1. ábra ábra

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

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

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

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

9. gyakorlat Lineáris egyenletrendszerek megoldási módszerei folyt. Néhány kiegészítés a Gauss- és a Gauss Jordan-eliminációhoz

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

1. Determinánsok. Oldjuk meg az alábbi kétismeretlenes, két egyenletet tartalmaz lineáris egyenletrendszert:

4. SOROK. a n. a k (n N) a n = s, azaz. a n := lim

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.

Algoritmusok bonyolultsága

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

1. zárthelyi,

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

First Prev Next Last Go Back Full Screen Close Quit

É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)

JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ A MATEMATIKA KÖZÉPSZINTŰ ÍRÁSBELI 2. FELADATSORHOZ

1. beadandó feladat: Programozási tételek alkalmazása. Közös követelmények:

karakterisztikus egyenlet Ortogonális mátrixok. Kvadratikus alakok főtengelytranszformációja

NÉMETH LÁSZLÓ VÁROSI MATEMATIKA VERSENY 2014 HÓDMEZŐVÁSÁRHELY OSZTÁLY ÁPRILIS 7.

Programozási tételek. Dr. Iványi Péter

1. Halmazok, számhalmazok, alapműveletek

TUDOMÁNYOS ISMERETTERJESZTŐ TÁRSULAT

Táblázatos adatok használata

Bontott órák beállítása Példánkban egy évfolyambontott kapcsolatot hozunk létre úgy, hogy abban vannak csak osztálybontott csoportok is.

KOVÁCS BÉLA, MATEMATIKA I.

Egész számok értelmezése, összehasonlítása

Arany Dániel Matematikai Tanulóverseny 2015/2016-os tanév 1. forduló Haladók III. kategória

I. VEKTOROK, MÁTRIXOK

Mátrixjátékok tiszta nyeregponttal

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

Gauss-eliminációval, Cholesky felbontás, QR felbontás

Lineáris egyenletrendszerek

Sárosd Nagyközség Önkormányzata Képviselőtestületének február 14-én tartott nyilvános ülésének jegyzőkönyve

Diszkrét matematika 2.

::JÁTÉKLAP:: Társasjáték Portál. Coloretto

Minden egész szám osztója önmagának, azaz a a minden egész a-ra.

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Összetevők. Fejlesztés és szabálykönyv: Viktor Kobilke Illusztrációk és grafika: Dennis Lohausen

A 2015/2016. tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló MATEMATIKA III. KATEGÓRIA (a speciális tanterv szerint haladó gimnazisták)

JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Programozási segédlet

Befordulás sarkon bútorral

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

S Z Á L L Í T Á S I F E L A D A T

Dijkstra algoritmusa

Feladatunk, hogy az alábbiakban látható tízgépes elrendezésre meghatározzuk az operátorok optimális kiosztását a vevői igények függvényében.

JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

megtalálásának hihetetlen nehéz voltán alapszik. Az eljárás matematikai alapja a kis FERMAT-tétel egy következménye:

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

FPI matek szakkör 8. évf. 4. szakkör órai feladatok megoldásokkal. 4. szakkör, október. 20. Az órai feladatok megoldása

Navier-formula. Frissítve: Egyenes hajlítás

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

A(a; b) = 2. A(a; b) = a+b. Példák A(37; 49) = x 2x = x = : 2 x = x = x

5. feladatsor megoldása

Kézipatika. az ország tetején. Beszélgetés Zorkóczy Ferenc háziorvossal, a mátraszentimrei kézigyógyszertár kezelôjével.

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

A szimplex algoritmus

352 Nevezetes egyenlôtlenségek. , az átfogó hossza 81 cm

A webkamera szerepe és a megfelelő típus kiválasztása

I.5. A LOGIKAI FÜGGVÉNYEK EGYSZERŰSÍTÉSE (MINIMALIZÁCIÓ)

Táblázatkezelés 5. - Függvények

7. gyakorlat. Lineáris algebrai egyenletrendszerek megoldhatósága

MEGOLDÁS ÉS PONTOZÁSI ÚTMUTATÓ

Nagyméretű adathalmazok kezelése (BMEVISZM144) Reinhardt Gábor április 5.

Oszthatósági problémák

A C, C+, D és D+ kategória játékának megoldása (matematika, osztályosok)

Keresési algoritmusok, optimalizáció

Segédlet: Főfeszültségek meghatározása Mohr-féle feszültségi körök alkalmazásával

XXVI. Erdélyi Magyar Matematikaverseny Zilah, február II. forduló osztály

MATEMATIKA ÉRETTSÉGI május 8. EMELT SZINT

World Robot Olympiad2019. Regular kategória Junior korosztály SMART CITIES- OKOS VÁROSOK OKOS VILÁGÍTÁS. Verzió: December 1.

Analízis előadás és gyakorlat vázlat

DETERMINÁNSSZÁMÍTÁS. Határozzuk meg a 1 értékét! Ez most is az egyetlen elemmel egyezik meg, tehát az értéke 1.

Makay Géza, SZTE, Bolyai Intézet

Áttekintés. Tartalom. Andreas Seyfarth

Függvények Megoldások

2) Írja fel az alábbi lineáris függvény grafikonjának egyenletét! (3pont)

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

SHk rövidítéssel fogunk hivatkozni.

JEGYZŐKÖNYV. Majdanics László polgármester a napirendek előtt szót adott Batári Csabának a Tiszalúci Gyermekekért Alapítvány elnökének.

Keresztmetszet másodrendű nyomatékainak meghatározása

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

Markov-láncok stacionárius eloszlása

Matematika 8. osztály

Q 1 D Q 2 (D x) 2 (1.1)

II. Két speciális Fibonacci sorozat, szinguláris elemek, természetes indexelés

Ismétlés nélküli kombináció

CAYLUS. A játéktábla. Tartalom. Egyszer volt, hol nem volt. A játék célja. Előkészületek. Nyersanyagok élelmiszer. posztó. arany. Épületek.

ELEMI BÁZISTRANSZFORMÁCIÓ LÉPÉSEI 1.EGYSZERŰSÍTETT VÁLTOZAT. 1.a) Paramétert nem tartalmazó eset

JELENTKEZÉSI LAP. Név: Osztály: cím (továbbjutásról itt is értesítünk): Iskola: Felkészítő tanár:

0,424 0,576. f) P (X 2 = 3) g) P (X 3 = 1) h) P (X 4 = 1 vagy 2 X 2 = 2) i) P (X 7 = 3, X 4 = 1, X 2 = 2 X 0 = 2) j) P (X 7 = 3, X 4 = 1, X 2 = 2)

Központi Építészeti Tervtanács műemléki testületének konzultációs emlékeztetője

Átírás:

Hujter Mihály: Szerintem ez a jó magyar módszer A jelen írás szándéka, hogy a lehető legkevesebb képlet felhasználásával, a lehető leghétköznapibb módon ismertesse az optimumszámítás egy fontos és érdekes fejezetét. Itt most mindig olyan n n-es mátrixokról lesz szó, melyek minden eleme nemnegatív egész szám. Sorcsökkentésen azt értjük, hogy a mátrix egy egész sorát, annak minden elemét egyazon egész számmal (ami negatív is lehet) egyszerre csökkentjük. Oszlopcsökkentések is lesznek, de ott egy-egy egész oszlopot (csak nemnegatív számmal) csökkentünk. A csökkentések csak olyan mértékűek lehetnek, hogy a mátrix elemei nemnegatívok maradjanak. Alkalmazások szempontjából nagyon fontos tudni, hogy mi az olyan n! darab n-tagú összeg minimuma (azaz legkisebbike), mely összegek a mátrix minden sorából, minden oszlopából egy-egy mátrixelemet tartalmaznak tagként. Jelölje ezt a minimumot σ (olv.: szigma). Mivel már 100 körüli n értékekre is az n! szám elviselhetetlenül magas, ezért σ kiszámítása a definícó alapján általában reménytelen feladat korunk legjobb számítógépei számára is. Ha az inputként kapott mátrixon sor- és oszlopcsökkentéseket végzünk, akkor σ értéke nyilván annyival csökken, amennyi a sor- és oszlopcsökkentések mértékének összege. Kőnig Dénes és Egerváry Jenő tétele szerint (melyet Harold W. Kuhn publikált angolul negyed évszázaddal később) lehet úgy végezni a sorés oszlopcsökkentéseket, hogy a végső mátrixra σ értéke nulla legyen. Tehát az eredeti mátrixon σ értéke megegyezik a sor- és oszlopcsökkentések mértékének előjeles összegével. Ezzel egyenértékű az az állítás, hogy a végső mátrix minden sorából, minden oszlopából kiválasztható egy-egy nulla elem. További egyenértékű átfogalmazása a Kőnig Egerváry-tételnek a következő: Minden egész számokat tartalmazó négyzetes mátrix sorai és oszlopai (előjeles) csökkentésével és az oszlopai sorrendjének módosításával olyan alakra hozható, melynek minden eleme nemnegatív egész szám és a főátlóban csak nulla van. A σ szám meghatározására szolgáló sor- és oszlopcsökkentéses eljárást Kuhn 1955-ben,,Hungarian Method néven ismertette. Az azóta eltelt fél évszázad alatt a módszer rengeteg alkalmazást nyert. Lehet vele robotokat vezérelni, titkosírást fejteni, tömegdemonstrációs videófelvételekről arcokat azonosítani, iskolai órarendet javítani, házasságot közvetíteni, vagyont igazságosan szétosztani, és még számtalan egyéb hasznos és haszontalan dolgot csinálni. Hangsúlyozandó, hogy a magyar módszer nemcsak a Kőnig Egerváry-tételt foglalja magában, hanem annak algoritmikus bizonyítását is. A lényeg tehát az, hogy a szükséges sor- és oszlopcsökkentések megfelelő módon legyenek végrehajtva. Az oszlopcsökkentésekre vonatkozó előírásunk mindig nagyon egyszerű: Mindegyik oszlop külön-külön a lehető legnagyobb mértékben csökkenthető lesz, csak arra kell vigyázni, hogy ne kerüljön negatív szám a mátrixba. Tehát az oszlopokat az azokban található legkisebb elemmel csökkentjük. Hasonlóan értelmezhetjük a maximális mértékű sorcsökkentést is, de érdekes módon erre a maximális mértékű sorcsökkentésre csak a magyar módszer végrehajtásának legelején lesz szükségünk. A további sorcsökkentések mind negatív mértékűek lesznek, azaz nem csökkentjük, hanem növeljük a sorokat. Sőtmitöbb, ha ezek a növelések egy-egy alkalommal több sorra vonatkoznak, akkor az érintett sorok mindegyikét ugyanazzal a számmal növeljük minden ilyen alkalommal. (Más al- 1

kalommál már lehet, hogy más számma.) A módszer lényege az, hogy tisztázzuk, ilyen negatív sorcsökkentésekre azaz sornövelésekre mikor, hogyan kerüljön sor. A kulcs az lesz, hogy valahogyan kijelöljük a pillanatnyilag utolsó mátrix néhány sorát legalább 1 és legfeljebb n 2 darabot, áthúzzuk ezeket, és áthúzzuk azokat az oszlopkat is, melyekben még maradt át nem húzott nulla elem. A mátrixban mindig maradnak majd még áthúzatlan elemek. Ezek legkisebbikét megfigyeljük, és annak a ( 1)-szeresével fogjuk az áthúzott sorokat csökkenteni, azaz a megfigyelt legkisebb-át-nem-húzott számmal növelni. A magyar módszer menete tehát a következő: 1. lépés: Maximális mértékű sorcsökkentés minden sorra külön-külön. 2. lépés: Maximális mértékű oszlopcsökkentés minden oszlopra külön-külön. Az első két lépés eredményeképpen minden sorban, minden oszlopban lesz legalább egy-egy nulla mátrixelem, és a többi mátrixelem mind pozitív egész szám lesz. 3. lépés: Előbb megnézzük, hogy ki tudunk-e jelölni néhány 1, 2,... vagy n 2 darab sort a fentemlített célra. (Ennek a,,hogyanját később ismertetem.) Ha nem jelölünk ki sorokat, itt nem lesz több dolgunk, jöhet a 4. lépés. Ha kijelölünk sorokat, elvégezzük a kijelölt sorok növelését a fentiekben részletett módon, aztán visszatérünk az 2. lépéshez. 4. lépés: Az előző lépésben tehát legutoljára már nem jelöltünk kis sorokat növelésre. Ilyenkor ki fogunk tudni választani minden sorból, minden oszlopból egy-egy nullát. (Annak okát, hogy miért fogunk tudni, később ismertetem. Most csak annyit, hogy a 3. lépés végrehajtásának melléktermékeként keletkező adatok alapján tudjuk majd kiválasztani az n darab nullát.) Az eredeti mátrixból a most talált n darab nulla helyéről kiválasztjuk a keresett optimális összeg tagjait és összeadva megkapjuk a σ összeget. Ez tehát a magyar módszer vázlata. A két zárójeles mondatnak megfelelő részletezés következik az alábbiakban. Kezdjük a 3. lépésnél lévő zárójellel! Mely sorokat válasszuk ki tehát növelésre és melyeket nem? A pillanatnyilag utolsó mátrixban lehetnek,,egyedülálló nullák, ahol egyedülálló alatt olyan elemet értünk, amely a saját sorában vagy a saját oszlopában nem ismétlődik meg. Ha vannak az oszlopukban egyedülálló nullák (akárcsak egy is), akkor azon nulláknak a sorát egyértelműen kiválasztjuk növelésre, és az egész sort át is húzzuk, mert azzal pillanatnyilag végeztünk. Ez tiszta ügy lesz. Ha még egyedülálló nullára bukkanunk az át-nem-húzott nullák között, azok a nullák már csak a sorukban lehetnek egyedülállók, és azoknak a nulláknak a sorát biztosan nem fogjuk kijelölni, azaz áthúzni. De az ilyen sorukban egyedülálló nullák oszopát igenis áthúzzuk. Ez is tiszta ügy. Itt egyedülállónak számítanak mindazok a nullák is, melyek ugyan eredetileg nem voltak egyedülállók, de az összes azonos sorban lévő többi nullát már mind áthúztuk. Tehát amikor egy egyedülálló nullát találunk, akkor egy sort vagy egy oszlopot áthúzunk. Levadásszuk tehát az összes egyedülálló nullát, a vadászat során születetteket is; még az írmagjukat is kiírtjuk. Ha az egyedülálló nulla az oszlopában volt egyedülálló, akkor az egyedülálló nulla sorát húzzuk át, ha pedig az egyedülálló nulla csak a sorában egyedülálló, akkor az egyedülálló nullának az oszlopát 2

húzzuk át. Menet közben az áthúzások miatt újabb egyedülálló nullák jelenhetnek meg, később azokat is levadásszuk. A sorok és oszlopok áthúzását mindaddig folytatjuk, amíg találunk újabb és újabb egyedülálló nullákat. Ha egy sorában és oszlopában is egyaránt egyedülálló nullára bukkanunk, akkor tulajdonképpen mindegy, hogy a sorát vagy az oszlopát húzzuk-e ki, csak az számít, hogy a kettő közül az egyiket, és csak az egyiket. Ha több egyedülálló nulla is mutatja magát, akkor az is mindegy, hogy milyen sorrendben bánunk el velük. Aztán amikor már nem találunk több egyedülálló nullát, akkor az lesz, hogy vagy minden nulla át lesz húzva vízszintesen vagy függőlegesen, vagy pedig minden maradék át-nem-húzott nulla legalább másodmagával van a saját sorában is és a saját oszlopában is áthúzás nélkül. Előbbi esetben nem kell több áthúzandó sort megjelölnünk. Utóbbi esetben pedig még legalább két olyan sor marad, melynek még nem dőlt el a sorsa, azaz még nem dőlt el, végül áthúzzuk-e azokat a sorokat, vagy sem. A továbbiakban is itt a 3. lépésen belül mindig csak olyan sorokat jelölhetünk ki áthúzással, melyekben még legalább 2 át-nem-húzott nulla van. Ha eddig összesen vízszintesen és függőlegesen együttvéve k darab egyedülálló nullát találtunk, azaz k darab vonallal húztuk át az egyedülálló nullákat, akkor a mostanra visszamaradt legalább négy át-nem-húzott nullát legfeljebb n k 1 darab külön-külön akár vízszintes, akár függőleges vonallal kell (vagy kellene) áthúzni. Ez vagy sikerül, vagy nem. Hogyan lehet ezt eldönteni? És ha lehet, hogyan kell ezt csinálni? Már majdnem 100 éves Kőnig Dénesnek az a tétele és módszere, amivel megadható a válasz. Kőnig eljárására majd a későbbiekben visszatérünk. Itt most legyen elég annyi, hogy ha sikerül legfeljebb n k 1 darab húzással megoldanunk a dolgot, megoldjuk, és így kapjuk meg az áthúzandó sorokat (meg az oszlopokat is). Ha nem sikerül, akkor az eddigi áthúzott sorok és oszlopok áthúzását is elfelejtjük, és átterünk a 4. lépésre. Akkor is elfelejtünk minden áthúzást, ha ugyan csak egyedülálló nullák révén húztunk vonalakat, de n 1 vonal nem volt elég! Tehát a sikertelenség esetében a vonalakat elfelejthetjük, de nem felejtjük el az egyedülállónak talált nullákat, azokat ugyanis a 4. lépéshez majd felhasználhatjuk. Például zárójelek közé írással jegyezhetjük meg a megtalált és rötön levadászott egyedülálló nullákat. (Tehát nem minden nulla lesz lesz hulla, de ami hulla lesz, azt zárójel-tarisznyánkba gyűjtjük.) 1. példa. Tekintsük a következő 3 3-as mátrixot: 3 1 5 5 4 3 5 1 8 Az 1. lépés eredménye: 3

2 0 4 2 1 0 4 0 7 A 2. lépés eredménye: 0 0 4 0 1 0 2 0 7 Indul a 3. lépés. Oszlopában egyedülálló nulla a 2. sor 3. eleme, aminek révén áthúzzuk a 2. sort és megzárójelezzük a tekintett nulla mátrixelemet. 0 0 4 0 1 (0) 2 0 7 Sorában egyedülálló a 3. sor 2. eleme is, aminek révén áthúzzuk a 2. oszlopot: 0 0 4 0 1 (0) 2 (0) 7 Most sorában egyedülálló lett az 1. sor 1. eleme is, aminek révén áthúzzuk az 1. oszlopot: (0) 0 4 0 1 (0) 2 (0) 7 De ezzel a vonalak száma felszaladt n-re! Elfelejtünk tehát minden vonalat, de nem felejtjük el az egyedülálló nullák helyét, és átugrunk a 4. lépésre. 4

4. lépés: Mivel minden sorba, minden oszlopba jutott zárójelezett nulla, a végeredmény előállt: (3) 1 5 5 4 (3) 5 (1) 8 Itt tehát σ = 3 + 3 + 1 = 7. Általános esetben a 3. lépésnél az n darab sor között maradhatnak még olyan sorok, melyekről nem derült ki, hogy kiválasszuk-e azokat, vagy biztosan kihagyjuk-e azokat a kiválasztásból. Most ezekről a sorokról kell dönteni! Mindegyikről külön-külön kell döntenünk, hogy kiválasszuk-e azokat, vagy sem. Minden ilyen eldöntetlen sorsú sorban van tehát legalább soronlént két-két nemegyedülálló nulla. Jól választani a nem eldöntentlen sorsú sorok közül általában nem könnyű. Egy ötletszerű Archimédészre emlékezve heurisztikus módszer néven nevezett eljárás kínálkozik: Ha az egyedülálló nullák nem teszik nyilvánvalóvá, hogy mely sorokat, oszlopokat kell áthúzni, akkor vállalva annak a kockázatát, hogy nem leszünk sikeresek húzzuk át azt a sort, melyben a lehető legtöbb még áthúzatlan nulla van. Holtverseny esetén a legfelső ilyent. Egy ilyen sok-nullás sor áthúzása révén újabb egyedülállóságok keletkezhetnek. Ha az egyedülló nullákat a fentiekhez hasonlóan levadásszuk, és még mindig marad nem eldöntött sorsú, azaz legalább-két-át-nem-húzott-nullás sor, megint a legtöbb nullát tartalmazó sor áthúzását kockáztatjuk meg. Mi lesz mindennek a vége? Vagy végső összegzésben legfeljebb n 1 sor és oszlop lesz áthúzva, visszatérünk a 2. lépéshez annak rendje és módja szerint. Ha viszont az n-edik vonalat is be kellene húznuk, állapítsuk meg, hogy vesztettünk! Korábban kockáztattunk (legalább egyszer), ezért nem lehetünk biztosak abban, hogy jó sort választottunk áthúzásra. Felejtsük el tehát azon a sorok és oszlopok áthúzását, melyek a kockázatvállalás után történtek. Kockázatmentes eljárásra van szükség! Minden megmaradt nem-áthúzott sorban és oszlopban van tehát legalább két-két nem-áthúzott nulla. Ezen nullák közül keressünk egy leginkább egyedülállót, azaz olyant, amely a saját sorában vagy oszlopában a lehető legkevesebbszer ismétlődik meg. Holtverseny esetén a feljebb lévő sor, a baloldalibb oszlop legyen a nyerő. Az így kiszemelt leginkább-egyedülálló nullát jelöljük meg szögletes zárójellel. Majd újabb leginkább-egyedülálló nullát keressünk! De mindig vigyázzunk arra, hogy az összes kerek vagy szögletes zárójelezett nulla egyedül maradjon a sorában is és az oszlopában is. Ha úgy adja a sors, hogy összesen n darab zárójelezett nullánk lesz, akkor sikertelen áthúzásokkal végetér a 3. lépés, hiszen nyilván már a zárójelezett nullák áthúzásához is n darab vonalra van szükség. Áttérhetünk tehát a 4. lépésre, és a zárójelezések mutatják a megoldást! De mi van akkor, ha kerek és szögletes zárójelekkel együttvéve is legfeljebb 5

n 1 darab nulla kerül megzárójelezésre? Ilyenkor meg fogjuk nézni, hogy növelhető-e a zárójelezettek darabszáma. A kerek zárójeleket nem bántjuk, de a szögletesek közül néhányat máshova helyezhetünk. Képzelük el a mátrixot úgy, mint egy n-emeletes épületet, melynek az emeletei a mátrix sorai. Minden mátrixoszlop tekinthető egy liftnek, mely lifteknek csak ott van ajtaja, ahol a mátrixban nulla van. Pillanatnyilag sok liftajtó le van lakatolva, csak zárójeles ajtók nyithatók. (Tehát egy-egy lift valójában csak egyegy emeletet köt össze a földszinttel, de legalább egy lift teljesen használhatatlan) Mivel nem minden emeletre jut zárójelezett nulla, vannak emeletek, ahol egyik lift sem működik. Hogyan lehetne a lifttel ellátott emeletek darabszámát növelni? A lifttel-nem-ellátott emeletek bejelentik igényüket egy-egy, az emeletről esetleg használható liftre, azaz valamelyik lelekatolt liftajtónál a lakat leemelését kérik. De ezzel veszélyeztetik egy-egy másik emelet lifttel való ellátottságát, mert ha valahol le akarják szedni a lakatot, az érintett lift pillanatnyilag nemlelakatolt ajtaját le kell lakatolni. De akkor a lelakatolandó ajtajú emelet is bejelenti az igényét az összes, az emelethez tartozó, még lelakatolt liftajtónál. De csak olyan liftet van értelme igényelni, amit más még nem kért. Az liftigény futótűzszerűen terjed az épületben. Kétféle véget érhet a futótűz. Vagy sikerül, vagy nem valakinak valahol olyan liftajtót találni, ami egy éppen használatlan lift ajtaja. Előbbi esetben azon útvonal mentén, ahogyan a futótűz ezt a ajtót elérte, lehetséges a szögletes zárójelek darabszámát eggyel növelni. Utóbbi esetben meggondolható ez a gondolatmenet lényegében Kőnig Dénes tétele bizonyításának a része hogy a zárójelezett nullák darabszáma már elérte a fizikai lehetőségek határát! (Sőt a matematikaiakét is!) Végkövetkeztetés: A fenti módszerrel megkereshetjük a lehető legtöbb zárójelezett nulla helyét. Ha a zárójelezett nullák darabszáma legfeljebb n 1, akkor a futótűzzel elért emeletek adják az áthúzandó sorokat. Eztán következik a visszatérés az 2. lépéshez. Ha pedig a zárójelezett nullák darabszáma eléri az n-et, a 4. lépésnél ér véget a magyar módszer. Szerencsére konkrét példákon minden sokkal egyszerűbb! (Legalábbis legtöbbször.) 2. példa. Tekintsük a következő 4 4-es mátrixot: 8 3 5 4 7 1 6 2 9 3 4 1 4 2 7 5 Az 1. lépés után: 6

5 0 2 1 6 0 5 1 8 2 3 0 4 0 5 3 A 2. lépés után: 1 0 0 1 2 0 3 1 4 2 1 0 0 0 3 3 A 3. lépésben a sorok és oszlopok áthúzása: 1 0 (0) 1 2 (0) 3 1 4 2 1 (0) (0) 0 3 3 Megvan a 4 darab zárójelezett nulla, ezzel tehát megvan a 3. lépés is: 1 0 (0) 1 2 (0) 3 1 4 2 1 (0) (0) 0 3 3 A végeredmény: 7

8 3 (5) 4 7 (1) 6 2 9 3 4 (1) (4) 2 7 5 σ = 5 + 1 + 1 + 4 = 11. (folyt. köv.) 8