Vetoshkin és

Vetoshkin AA Kostyakov AI A degenerált közlekedési problémákat, és hogyan kell harcolni

Mint ismeretes, a szállítási probléma nyitott és zárt. Nyitott az a probléma, ahol a szállítók és vevők egyensúly nem egyenlő. Ez a jelenség általában akkor fordul elő gyakran. Módja, hogy ez az egyetlen és egyszerű: add fiktív eladó, ha az eladó egyenlege nem éri el az egyensúlyt a fogyasztók, és fordítva.

Sajnos, az is ismert, hogy a közlekedési probléma degenerált és nem degenerált. Degenerált ilyen probléma, amelyben a sejtek számát tekintve kisebb, mint m + n-1, ahol m - beszállítók száma, n - fogyasztók száma. Egyértelmű, hogy ez a jelenség is gyakori. Módja annak, hogy foglalkozni vele mindenki véletlenül feltöltött null sejtek a tervet, mielőtt mellszobor viszont az üres cellák. Sem az egyik, sem a másik nem garantálja, hogy az új cella nem kerül egy hurkot képez a meglévő sejtek.

Első pillantásra úgy tűnik, hogy a degenerációja a probléma - a jelenség a véletlenszerű és nem függ semmilyen törvényt. Még több, az alapvető tervek szerint különböző módszerekkel, mint az Észak-nyugati sarkában, és a minimális érték adott degenerált és nem degenerált tervek ugyanazt a feladatot. Ez természetesen ad okot, hogy a gondolat: rejtett degenerációja a problémát, vagy egy olyan módszert létrehozásának tervét létrehozni. De ha ez nem működik egy másik probléma, éppen ellenkezőleg, a módszert, amelyet nemrég létrehozott egy normális, nem degenerált terv továbbra is az egyik gondolta degenerációja - túlvilági jelenség, és nem függ a feladatot, és a módszerek, amelyek megteremtik a tervet.

És mégis van egy módja nem csak megszabadulni a degeneráció, de a „tönkre” véglegesen. Hogyan? Mi a természete degenerációja és ahol ez megtörténik? Nézzük meg, ebben a sorrendben: a természet degenerációja; hogyan (és miért) degenerált; hogyan kell foglalkozni vele.

Tehát a természet degenerációja. Degenerációja - ha nincs sejt-egyenletek határozzák meg a lehetséges a tervben. Ez, ha az szükséges, hogy a normál működés m + n-1 egyenletek, és, sajnos, m + n-2. És ami még rosszabb, ha azok beszerzése csak m, ezt a problémát (lásd. 1. táblázat) módszerrel Northwestern szöget.

A címzett> Source v

Ez jelenik meg, és bebizonyította, hogyan lehet létrehozni egy tervet, amely két nagyon fontos előnye: a sejtek száma pontosan m + n-1, a teljes hiánya ciklus. Ehhez az esetben, ha a szolgáltató és a vevő visszaállítása, adjuk hozzá a sejtet egy nulla értékét elfoglalatlan oszlopon (ez a művelet néhány, ez történik végre ösztönösen). Ha nincs szabad oszlop, akkor nem kerül sor intézkedésre. Egyszerűen azt jelenti, hogy valamennyi oszlopban nulla, és a terv készül. Természetesen vannak két kérdést oktatás részvételével a nulla sejtciklus és degenerációja a kapott tervet. Hogy oldja meg az első kérdés, azt bizonyítja a tétel „fejezi ki amiatt, hogy érvényesítse a ciklust.” Ezután számolja meg a kapott sejteket, és összehasonlítható m + n-1.

Tétel, hogy lehetetlen egy beágyazott hurok

Foglalt oszlop - egy oszlopot, amely a sejt, a terv értékét a befogadó 0.

A fel nem használt oszlop - egy oszlopot, amely a sejt, a terv értékét a kedvezményezett nem egyenlő 0, vagy az oszlop egyetlen sejt tervet.

N konstrukció - függőleges metszetben az oszlop k (test) megfeleljen a vonalak i és j, valamint két vízszintes „farok”, ugyanabban az irányban, például a jobb. Minden más orientáció csökken ez a forgatással vagy reflexió.

Kiszerelés: Abban az esetben, ha létrehozásakor tervnek mind a szolgáltató és a vevő visszaáll, és a nulla cella kerül elfoglalatlan oszlop ciklus képződik.

Bizonyítás: mindegyik ciklus tartalmaz egy U alakú szerkezet kijelölt szám 1-től 4 (lásd 1. ábra).

1. ábra: A különböző típusú ciklus.

Ez a konstrukció a problémát úgy reprezentálható, mint (1,1), (1,2), (2,2), (2,1), vagy (2,1), (1,1), (1,2) (2.2) (lásd. a 6. táblázatot). Úgy tűnik, ha a sejtet helyezünk a nulla (1.1) jelenlétében elfoglalt sejtek (1,2), (2,2), (2,1).

Ha be tudjuk bizonyítani, hogy ez a kialakítás nem jelenik meg ebben az esetben ez azt jelentené, hogy a ciklus által létrehozott szabályok a terv lehetetlen.

Lemma: A jogot, hogy dolgozzanak ki terveket U-minták nem jelennek meg.

Bizonyítás: Jelölje be a beállításokat a helyzetekben, amikor ez a struktúra alakítható ki. Minden esetben kezeli a vonal j.

1. Sor i által elfoglalt egy sejt, és annak feldolgozása befejeződött.

2. Sor i által elfoglalt egy sejt, és annak feldolgozása befejeződött.

3. sor i által elfoglalt több mint egy cellában.

Annak érdekében, hogy ne keverjék össze a bizonyítékokat, feltételesen fogadja el, hogy a többi vonalon nincs elfoglalt sejteket. Ellenkező esetben, mint a vonal minden viszont i-line, hogy ellenőrizze.

Az első esetben a sorban az oszlop j, ahol i sorban elfoglalt egy sejt, képes lehet elhelyezni, mint egy sejt tervet, és a nulla-sejt i sorában, mert nincs „farok”, mint egy eleme a P-szerkezet. További megfontolás fogja vizsgálni az ügyet a 3 oszlop, melyben ezt a két ketrecben.

A második esetben, a sor j ugyanabban az oszlopban nem küldhetsz semmit, mert az oszlop már foglalt (emlékszem, hogy a terv jelennek sejtek). Annak érdekében, hogy az alapja az építőiparban a P-No.

Ezért a „sarok” a bizonyítás esetén 3. Nyilvánvaló, hogy az összes oszlopot, amelyben található sejtvonal alkalmazott i, elfoglalt, de az egyik, amelyben a hálózati kinulláznád (persze, két vagy több üres oszlop jelenlétében a terv azt jelenti, hogy a sejtvonal i nullázni többször, ami lehetetlen). De lehet, hogy elfoglalt, ha nullázni együtt egy string. Ha minden oszlop tele vannak, mint a 2. esetben az alapot az építőiparban a P-No.

Továbbra is egy lehetőség - az egyetlen üres oszlop. Tedd ketrecbe. Ha a sort j nullázni, és az oszlop - nem, a farok a sejt jelenik meg. Ha az oszlop nullázni, akkor tesz egy nullát a sejtmentes oszlopban a terv része. Ez sejtciklus nincs lezárva, mert a sorban én nem tervez új cella (összes oszlopot nullára), és a meglévők is, a elérése ilyen módon nem vonatkoznak üres oszlop.

Így a P-lyukú szerkezetet, hogy a tervek nem jelennek meg. És így a ciklus nem alakulnak ki. QED.

Térjünk vissza a kérdésre degenerációja a kapott tervet. Emlékezzünk, hogy minden egyes cella terv lényegében egyetlen egyenletet a potenciális csatlakoztatásának módját a két változó v (i) és u (j). A számítások során egy változó definiált, a második definíció. Meg kell, hogy hány definiált változók elérhető minden sejtben egyenletek.

Tegyük fel, hogy a sorban i m (i) sejteket, eltekintve nulla. Lássuk, mi határozza meg ezeket az egyenleteket. Ha a i sorában a folyamat a sejtbe való belépésük terv (i, j) nullára van állítva, és az oszlop j - nem, ez az egyenlet határozza meg a változó v (i) és (m (i) - 1) változók u, kivéve természetesen, a variábilis u ( j), amely meghatározza, mikor nulled j oszlopában. Ha az oszlop visszaáll együtt egy string, ez határozza m (i) a változók u, és a hozzáadott nulla cella határozza meg a változó v (i) (ne felejtsük el, hogy van egy nullával sejteket az utolsó sorban). Most számítani egyenletek és változókat. Mivel az összes oszlopot a folyamat a terv kidolgozásakor nullázott, az m (i) egyenlő az összes oszlop, azaz m. Mivel a visszaállító minden sor (kivéve az utolsó) úgy határozzuk meg, egyetlen variábilis v (i), majd a nullázás után az összes sort meghatároztuk n-1 változók. A teljes száma az egyes változók jelentése m + (n-1). Mivel szükséges!

Következtetés: Alkalmazása a szabály „Ha létrehoz egy tervet, mind az átadó és az átvevő törlődnek, a nulla sejt terv illeszkedik bármilyen üres oszlop” kapunk egy nem degenerált és nezatsiklenny terv nélkül trükköket.

Végül így az alap összeállított terv figyelembe veszi a szabályokat és iteráció optimális tervet a probléma potenciális különbségek és az ár (becsült) tervet.

Amellett, hogy a fenti: A felkészülés a terv egyes sorok és oszlopok, több sejtekben. A következő iterációs számítási módszer a potenciál szükséges, hogy megtalálják a gyűrű, amely az újonnan bevezetett a cellában tervet. Ez elég ahhoz, hogy letöröljük (átmenetileg - erre a iteráció) sejtek, amelyek egy sorban vagy oszlopban egyes számban. Ez a tény azt jelenti, hogy a belépő a sejtbe, lehetetlen kijutni belőle. Ehhez egy ilyen művelet szükséges rekurzív amíg nincs több egysejtűek. Nem nehéz megérteni, hogy a maradék sejteket és így ciklust. Ismét nélkül trükkök (ne felejtsük el, az átalakítás után vissza minden átmenetileg törölt cellák helyére).

Felszámolásáról degenerációja a meglévő terv

Ha az alap terv már össze, és megállapították, hogy degenerált, azt javasolják, hogy a formalizált szabályok kijavítani ezeket a terveket.

Ez abból áll, hogy meghatározzuk a levált csoportok tervet sejt (potenciális számítási egyenletek). Ehhez, a sejtet venni egy minimális sor és oszlop száma, amely nem szerepel semmilyen csoport. Csoportot alkotnak a következő szám, ha a csoport még nem alakult ki, akkor a szám lesz 1 (egy). A visszamaradó sejteket tartalmazott ebben a sorban vannak jelölve az azonos számú (a jobb alsó sarokban). A sejteket tartalmazott ebben az oszlopban jelenik meg a bal alsó sarokban. Ha a cella volt jelölt a terv, ez az alapja az új jegyzetek, amíg nem minden rokon sejtek vannak jelölve. Ha kiderül, hogy nem minden sejteket jelezzük a terv, az egész folyamat ismétlődik. Végén podchityvaetsya a csoportok száma. Ha 1, akkor minden a sejtek a terv tartalmazza az azonos csoportba, ez azt jelenti, hogy egy nem degenerált tervet.

Sőt, az egyik cella az alap terv, ha ez az első a csoportban, ahol egy sorban, plusz egy oszlop, nem pervaya- egy sort vagy oszlopot. Így K sejtcsoportok jelölje K 1 sorok vagy oszlopok. Mivel csak az N + M sorok vagy oszlopok, N- sorok száma, M az oszlopok számát. Egy csoport kapja:

K + 1 = N + M és K = N + M-1

QED.

Tegyük fel, hogy a végén a folyamat fordult L csoportok. Az egyes csoportok száma, a sorok és oszlopok egység cellák több, mint ahány tervet. Így megkapjuk az összes csoportok számát kiválasztott sorok vagy oszlopok L-sejtek több, mint ahány terv, ami azt jelenti:

K + L = N + M és K = N + M- L

Azaz, egy nem degenerált terv kell hozzá L -1 a cellában tervet. Mi határozza meg a helyet ezekben a sejtekben. Ha az új cella terv fog esni egy üres ketrecbe két azonos szám, akkor zárja be a ciklus, ami nem kívánatos a terv. Amikor az eloszlása ​​az új cella tervet úgy, hogy az egyik szám egyenlő 1, megakadályozva ismétlési számban, azt össze a különböző csoportok, és kap egy új cella L -1. Elfogadása tehát beigazolódott.

Az eredmény a fenti algoritmus táblázat mutatja

H új (vagy hozzáadott) sejt terv (2)

N- rossz sejtek (zárt ciklusú)

K = 7 (sejtek száma meglévő terv);

L = 3 (számú kialakult csoportok);

N = 5 (sorok száma);

M = 5 (az oszlopok száma).

Következtetés: Az kell határozni a csoport kapcsolt cellából, ha ez a csoport nem egy, akkor az új cella tervet hozott helyeken kapcsolódó különböző csoportok között.

Ha még nem regisztrált az oldalon, akkor regisztrálnia kell: