Személyes helyszínen Alekseya Grigoreva - szimplex algoritmus
Tekintsünk egy algoritmus simleks eljárás informálisabb a feladatra maximalizálása funkció
és az alábbi korlátozásokkal:
Elolvasása előtt, hogy jobban megismerjék néhány szakirodalmat, mert különben néhány használt kifejezések a cikk, és a lépések az algoritmus lehet érthetetlen.
A megoldás a probléma a kezdeti alapján
Ez a probléma - a probléma a kiindulási alap, mint minden korlátozás nem vonatkozik rá - kisebb vagy egyenlő. Ilyen feladatok a könnyebb, mint a feladat véletlenszerű karakterek, így először azt a döntést. Az első intézkedés pereidem neraventstva és írni az egyenlőség probléma kanonikus formában. Mert ez a rendszer minden egyenlőtlenség adunk hozzá egy változót a bázis.
A rendszer alapját változó, és ezek az úgynevezett alapvető változókat.
Mi alkotják a szimplex táblázatban ezt a feladatot
Simplex táblázat iteráció 0
Az első oszlopban a változók feljegyzett alapját képező. További írásbeli rendszer mátrixot tartalmaz, ahol az utolsó előtti oszlopban - szabad rendszer tagjai. Az utolsó sorban - ez a célfüggvény.
Most a kapott táblázatot javulni fog minden egyes iterációval az algoritmus, amíg az optimális megoldást nem érnek.
Ahhoz, hogy javítsa a rezolváló kiválasztott oszlop - az oszlop, amely megfelel a legkisebb negatív együtthatót a Z-vonal (a probléma maximális). Részben megfelel a felbontás oszlop belép a rendszer alapját a következő iterációban. Következő kiválasztott felbontás sor - erre az összes nem-negatív elemek lehetővé teszik a kijelölt oszlop, az eredmény a részleg a megfelelő szabad, akinek legkisebb tagja. Mindezen összefüggések vannak rögzítve az utolsó oszlopban a szimplex tábla. Pont megfelel mind a felbontás a sor fog megjelenni alapján a következő ismétlés. Hagyjuk elem - egy elem található a kereszteződésekben a sor és felbontást biztosító oszlopon. Ha az oszlop nem a megjelenése nem-negatív elemek, a megoldás a rendszer divergál.
Ebben a problémát, az első lépésben lehetővé teszi oszlop egy oszlop változó x2. és a felbontás a vonal - egy string változó s3.
Ezután meg kell töltenie a szimplex tábla a következő ismétlés. Az új elem benne van a bázis, így a változó együtthatója megfelelő (ahol megengedő sejt) legyen egyenlő eggyel, és az összes többi tényező - a nullához. Hogy normalizálják a sorban - elosztjuk az összes elemet az érték az elemeknek. A nullához minden más sor (beleértve a Z-line) kell egy új értéket az együttható alap variábilis szorozva elemenkénti felbontási vonal és vonjuk az eredményt az aktuális sor.
Simplex asztal, iteráció 1
Ehhez az iterációs lehetővé oszlop egy oszlopot a változó x1. és a felbontás a vonal - egy string változó s2.
Simplex asztal, iterációs 2
Simplex asztal, iterációs 3
A iterációk befejeződik, ha egy Z-vonal, minden az együtthatók nem-negatív. Egy adott iteráció, ez a feltétel teljesül, akkor a kapott oldatot: x1 = 24, x2 = 16, Zmax = 192.
Végrehajtása python algoritmus a problémák megoldására a kiindulási alap. Show.
Problémák megoldásához mesterséges alapján
A gyakorlatban azonban, még gyakori probléma, amely korlátozásokat egyenlőtlenségek fordulnak elő nemcsak jelvényt vagy kevésbé azonos, de egyenlő és nagyobb vagy egyenlő.
Nézzük a következő probléma
Írunk a problémát kanonikus formában. Ha a jel egyenlőtlenség kisebb vagy egyenlő, mint a bemeneti változó lesz a „+” jel ebben az egyenlőtlenséget. Ha a jel „egyenlő”, a változó nem kell beírni. És ha a jel „több”, a változó lesz a „-” jel.
szimplex módszer, adja meg a változókat, amelyek teremtik meg az alapját a megoldást erre a problémára. Az egyik alapvető változó már - egy változó s2. Bemutatjuk az ideiglenes változók:
Ha az ideiglenes változók presentedin alapján a választás felbontású sorokat kell tenni egy más módon. Nevezetesen, meg kell, hogy egy másik vonal „értékelés”, amely tárolja az összeg egy mínusz jelet az együtthatók a változók az idő ebben az oszlopban. Tekintsük a következő példát.
Simplex táblázat iteráció 0
String „értékelés” a táblázatban is jelen lesz, ha az alapja presentedin ideiglenes változókat. Az első iteráció, ezek presentedin, így lehetővé téve az oszlop által kiválasztott minimális értéket on line „pontszámot”. Engedélyezése az oszlop egy oszlop a variábilis x2.
Ha átmeneti változókat nem vesznek részt a bázis, amely lehetővé teszi az oszlop által kiválasztott a legkisebb érték a z-line. Az algoritmus leáll, ha minden együttható a z-line, kivéve arányok megfelelő átmeneti változók pozitív lesz.