Ellenőrzés Variáns számítás Érzékenység vizsgálat Készítette: Dr Árahám István
Az ellenőrzés A matematikai modell megoldása, a szimple tálák kitöltése közen könnyen elkövethetünk számolási hiát A kiindlási adatok ismeretéen ármelyik tálázat helyességét viszonylag egyszerű módon ellenőrizhetjük Az ellenőrzés módszere lehetővé teszi az adott feladat különöző változatainak kiszámolását anélkül, hogy újra megoldanánk a prolémát (Variánsszámítás) Az ellenőrzés módszerével a modellünk kapacitásainak, célfüggvény együtthatóinak az optimmra gyakorolt hatásait is vizsgálni tdjk (Érzékenység vizsgálat)
Az ellenőrzés módszerének emtatására egy konkrét feladatól indlnk ki: Egy normál lineáris programozási feladatan adott a kapacitás vektor: =[ ]* és a célfüggvény együtthatók vektora: c*=[ - - ] A szimple módszer alkalmazásával a következő optimális tálát kaptk:,, - - - -, - -, -z -, - -, - - Az ellenőrzéshez ezt a tálázatot használjk fel
lépés: a tálázat kiegészítése perem sorokkal és oszlopokkal Minden változóhoz két értéket rendelünk: az egyik, a másik pedig a primál, illetve dál feladat célfüggvényének az illető változóhoz tartozó együtthatója Az i értékekhez az eredeti kapacitásvektor megfelelő értékei tartoznak, az i értékekhez a célfüggvény együtthatók Tehát: =[ ]* Így: Valamint: c*=[ - - ] A hozzárendelés:,, - - - -, - -, -z -, - -, - - - - Ha a változó a helyén maradt (oszlopfőn, illetve sorkezdőként), akkor -t rendelünk hozzá, ha elmozdlt, akkor viszi magával a hozzárendelt (nem ) értéket - így keletkeznek a kiegészítő sorok és oszlopok A célfüggvény alá és mellé kerül
lépés: az ellenőrzés végrehajtása Behívjk a kiegészített tálázatnkat: Az ellenőrzést külön a sorokra és külön az oszlopokra végezzük Sor ellenőrzés: A kiegészítő felső sor elemeit szorozzk a tálázat sorai elemeivel, a szorzatokat összeadjk (ez a komponálás) A kapott számnak meg kell egyeznie a két tolsó oszlopan lévő számok különségével,, - - - -, - -, -z -, - -, - - - - Az sorra:,+ +,+ = - Renden A sorra: + (-)+ + (-)=- és ez=- Renden A sorra: - = - Renden A sor: -+= - Renden Az sor (a célfüggvény sora) :- -=- - Renden
Oszlop ellenőrzés A kiegészítő aloldali oszlop elemeit komponáljk a tálázat oszlopainak elemeivel A kapott számnak meg kell egyeznie a legalsó kiegészítő sor megfelelő eleme és a felette lévő szám különségével,, - - - -, - -, -z -, - -, - - - - Az oszlopra:,+ + + (-,)=, és ez=-(-,)=, Renden A oszlopra: + (-)= és ez=- (-)= Renden oszlop:,=- (-,) Renden oszlop:= (-) Renden Az oszlop (a oszlopa): + = (-) Renden 6
Gyakorló feladat: Adott egy LP feladat matematikai modellje: + + + Az optimális szimple tála: + + + 8 + + 6 z= + + + + ma z 9 8 8 6 A tálázat kiegészítéséhez a modellől a és a c* vektorokat használjk fel: =[ 8 6 ]* c*=[ ] 7
A tálázat kiegészítése (peremsorok és peremoszlopok): 8 6 z 9 8 8 6 Sor ellenőrzés: /+8 /+6 (-/)=- Renden -/+/+6/=8 / - 6/+/=6 A célfüggvény sora: -8/ - 6/ - 8/= - Oszlop ellenőrzés: / - /+ /= - (-/)=/ Renden És így tová Példál az oszlopra: 6/+/ - /= - (-/)=6/ 8
Az ellenőrzés módszerének elméleti indoklása A normál LP feladat (, A,, z=c* ma ) megoldása egyenletrendszerre visszavezetéssel történt A kanoniks egyenletrendszer és megoldásának szimple indló tálázata: A+= c* z= * A -z c* A tálázatól leolvasható az egyenletrendszer általános megoldása: = -z -z o _ A c * A ázistranszformációk tán a tálázat: * A * * - z c c - z * ahol és vektorok komponensei szaadon megválaszthatók 9
A kanoniks egyenletrendszer: A+= c* z= Ennek triviális megoldása: =, = és z= A triviális megoldás vektorai felírhatók a ázistranszformációs tálázatnak megfelelően particionált alakan: = = Helyettesítsünk az általános megoldása és rendezés tán adódik: c A * = _ -z o Szavakkal: a szimple tála első mátriának (A ) sorait komponáljk az eredeti kapacitásvektor ázisa evont elemei ( ) komponenseit és a töi helyen a nllvektor komponenseit tartalmazó vektorral Eredményül kapjk a új koordinátáinak és az eredeti kapacitásvektor ázisa e nem vont elemei ( ) komponenseit és nllákat tartalmazó vektorok különségét Az összefüggés igaz a célfüggvény sorára is
Az összefüggés átláthatóá tehető megfelelő elrendezés alkalmazásával I A szimple tálázathoz kiegészítő felső sort és jooldali oszlopot illesztünk: * * * A * * - z c c - z II Az ellenőrzés végrehajtása: a kiegészítő felső sor elemeit komponáljk a első mátri elemeivel Eredményül az tolsó oszlopan () és a kiegészítő oszlopan lévő számok különségét kell kapnnk * Az összefüggés igaz a célfüggvény sorára is, a z o mellé nllát írva Ez az állítás (természetesen) megegyezik azzal, amit a konkrét példáknál a sorellenőrzés módszereként láthattnk
Az oszlopellenőrzés magyarázatát az eredeti feladat (, A,, z=c* ma ) dáljáól kapjk A dál feladat: y, A*y c, *y min A dál feladatot átalakítjk: A*y c, z= *y ma Az ehhez tartozó egyenletrendszer: A*y+w= c *y z= Az egyenletrendszer általános megoldásáól kapjk: [ c * * ][ A * ] = [ * c * ] [ c * c * z ] Szemléletesen: a szimple tálát aloldali oszloppal és alsó sorral egészítjük ki c * * * A * * - z c c - z * * c * Az oszlopellenőrzés végrehajtása: a aloldali kiegészítő oszlop elemeit komponáljk a első mátri oszlopaival Az eredménynek meg kell egyeznie a legalsó sor és a felette lévő sor elemeinek a különségével Az oszlopellenőrzés a oszlopára is elvégezhető
Variáns számítás Ha az LP feladatan valamelyik erőforrás kapacitása, vagy a célfüggvény együttható megváltozik, akkor általáan más optimmot, variánst kapnk Adott egy optimális tálánk a kiegészítő sorokkal - oszlopokkal: 6,, - - - -, - -, -z -, - -, - - - - Jelöljük az üres oszlop ideiglenes változóit ß i -vel Változtassk meg az kapacitást 6-ra Ekkor az tolsó oszlopan más számok jelenhetnek meg, így töröljük az tolsó oszlopot és a hiányzó számokat az ellenőrzés módszerével kiszámoljk Az első sorra:6,+=ß -, azaz ß =8 A sorra: nincs változás, az első elem, tehát ß marad A sorra: 6 - = ß -, azaz ß = A sor: -8+= ß =7 A célfüggvény sora: -8-=-z o -, azaz z o = Az új optimmok: =[ 8 7 ]*, =[ ]* és z =
Ha a célfüggvény együtthatót változtatjk meg, akkor új számok léphetnek fel a célfüggvény soráan Példa: Az első célfüggvény együttható (az -hez tartozó) változzon -re X,, - - - -, - -, -z -, α - α -, α - α - - - Töröljük a célfüggvény sorát és evezetjük az α i segédváltozót Az új értékeket az oszlopellenőrzés módszerével számoljk: Az oszlopra:,+ (-,)=-α, azaz α = -, A oszlop: 8-= --α, így: α = -9 A oszlop:-,= --α, azaz α = -, A oszlop: nincs változás, az új értéket nllával szorozzk, így marad: - Az tolsó oszlopra:+=-( -z ), tehát z = A tála maradt optimális (nincs pozitív elem a -z soráan) Az új z =
Az ellenőrzés módszere és így a variáns számítás is felírható mátriaritmetikai jelölésekkel, illetve mátri műveletekkel A tárgyalt alapösszefüggés: Átrendezve: c A * = _ -z o = -z o c A * + A szimple tálázatan a új koordinátái: = -z o = Az előző példánk adataival:,,,, + = 8 7 A mátriművelettel tehát azonnal megkaphatjk a az tolsó oszlop számait
A sorellenőrzés, illetve az tolsó sor kitöltése szintén elvégezhető az általános összefüggésől: [ c * * ][ A * ] = [ * c * ] [ c * c * z ] Rendezés tán: [ c * c * z ] = [ * c * ] - [ c * * ][ A * ] Tehát a célfüggvény sora az előző feladatnkan: c *= [ c * c * z ]= [ ] [ ] = [,, ],,, A mátriművelettel így azonnal megkaptk a az tolsó sor számait 6
7 z Írjk fel a primál és dál optimális megoldást! Ha az eredeti feladatan a célfüggvényt g() = + + + + ma-ra változtatjk, akkor mi lesz az optimális primál megoldás? Gyakorló feladat: Egy LP feladat indló tálájáan = [ 7 7 6 ]* és c = [ 8 7 ]* Az optimális tála részlete: Megoldás: egészítsük ki a tálázatot perem sorokkal és perem oszlopokkal!
8 7 z 6 8 7 7 6 Az optimmok leolvasása: o =[ 6 ]* o =[ ]* z o = y o =[ ]* w o =[ ]*
9 Ha a g függvényen lévő együtthatókkal variánst, új célfüggvénysort írnk fel, akkor: Az új tálázatan a célfüggvény sora: z Elkészítjük az új szimple tálát, amit az optimm eléréséhez javítani kell: z z z 6 Alternatív optimm van: =[ ]* =[ ]* z o = =[ ]* =[ ]* Az általános megoldás: = λ +( λ) és = λ +( λ), ahol λ
Érzékenység vizsgálat Lényege: Milyen határok között változtathatjk meg a kapacitásvektor értékeket, illetve a célfüggvény együtthatókat, hogy az optimális megoldás ázisa (stktúrája), illetve a célfüggvény értéke ne változzon meg Konkrétan: Olyan határokat keresünk a kapacitásvektor és a célfüggvény együtthatók komponenseire, hogy az optimális tálázatnk tolsó oszlopáan és soráan ne történjen előjelváltás Ezt az ellenőrzés módszerével érjük el Példa: Egy LP feladat indló tálájáan = [ 7 7 6 ]* és c = [ 8 7 ]* Az optimális tála közepe adott Végezzünk érzékenység vizsgálatot a kapacitásokra! z 6 7 Megoldás: Felvesszük a kiegészítő sorokat úgy, hogy hogy először az -hez tartozó értéket paraméternek ( ) tekintjük elkezdjük a sorellenőrzést 8 7 7
A kapacitás oszlopáan (ami most üres) szereplő mennyiségeket jelöljük ideiglenesen β i -vel Az optimális tálázatan ezek nem lehetnek negatívak 8 z 6 7 7 β β β β 7 Sorellenőrzés: -6+ = β -, és mivel optimm esetén β, ezért 6+, így: 6 A második soran nincs (szorzója ) A sor: - -7= β -7 A β miatt: A negyedik soran nincs (szorzója ) A feltételekől következik, hogy optimális marad a tála, ha 6 és között van, azaz: 6 Eztán a -re végzünk érzékenység vizsgálatot: az feletti 7-et helyettesítjük -vel, az fölé visszakerül a és ismét sorellenőrzést végzünk A feltétel most is: a β i értékei nem lehetnek negatívak
A sorellenőrzéssel adódó feltételek -re: 8 z 6 7 β β β β 7 Az soról nincs feltétel: szorzója A soról: -6+ = β, azaz 6 A soról: 9- = β, azaz 9 A soról nincs feltétel: szorzója Összegezve: 6 9 Érzékenység vizsgálat -ra: az -hoz tartozó szám, a 7 helyére -at írnk, a helyére visszaírjk a 7-et és sorellenőrzést végzünk: --7 = β -, azaz β = -, tehát, és felső korlát nincs A -re vonatkozó feltételek ( fölé -t írnk, sorellenőrzés, β i o): - + - +7 - Tehát 7
Megvizsgálhatjk, hogy az egyes kapacitás értékek változásai hogyan efolyásolják az optimális célfüggvény értéket Ehhez ismerni kell az optimális tálázatan a célfüggvény sorát (oszlopellenőrzéssel kapjk): 8 z 6 7 7 z 7 Ha fölé helyett -et írnk és a célfüggvény sorára ellenőrzést végzünk: -6- -7=-z o -, azaz z o = + Koráan kiszámoltk: 6, így: z o Hasonlóan -re: -6-- =-z o -, azaz z o = +6 Koráról ismert: 6 9, így: 78 z o A határai a célfüggvény optimális értékét nem efolyásolják (a harmadik kapacitásól maradvány van), így z o =6++7= A -re: - --7=-z -, tehát z o = +7 és mivel 7: 99 z o
Érzékenység vizsgálat a célfüggvény együtthatókra Oszlopellenőrzéssel végezzük úgy, hogy a célfüggvény együtthatókat egymás tán a c i paraméterekkel helyettesítjük és felhasználjk, hogy optimm esetén a célfüggvény soráan nincs pozitív érték A tálázatnk (a kapacitás oszlopát sorellenőrzéssel kiszámoltk): Az tolsó sora ideiglenesen α i -ket írnk: A vizsgálat c -re: -+8=c -α, eől: α =c -6 8 z 6 7 α α α α α 7 c 6 7 Optimmnál: α i, tehát c 6 Az alsó határ c -re: A célfüggvény optimma c -től nem függ: z o =7++8= A vizsgálat c -re ( mellé a 8 helyett c -t írnk, oszlopellenőrzés és α i ):
A tálázat: Számolás: Az oszlopnál: c 8 z 6 7 6 7 α α α α α 7 -+c =-α, mivel α, így -α -α =c -7, azaz c 7 A oszlopnál: --+c =-α, tehát: c 7 A oszlopnál: =-α, nincs feltétel c -re A oszlopnál: +c =7-α, -α =c -, azaz c Az oszlopnál: =-α, nincs feltétel c -re Összesítve: 7 c < A c hatása a célfüggvény optimmra: 7+++6c =-(-z ), így: z o = 6c +9 Ekkor: 7 z o < Hasonló számolással kapjk: c 7, z o =c +, z o 8 -z Az nem került e az új ázisa, egység maradvány volt, így c és z = A c -re: c, z =c +78, 78 z o
Gyakorló feladat: Egy lineáris programozási feladat matematikai modelljéen a kapacitásvektor és a célfüggvény együtthatók : =[ ]* és c*=[ 6 6 ] A megoldás során kapott szimple tála részlete: 6 z z 6 9 6 Végezzünk teljes érzékenység vizsgálatot! Megoldás: a tálázat üres oszlopát és sorát az ellenőrzés módszerével kitöltjük, majd felvesszük a perem sorokat, oszlopokat: Érzékenység vizsgálat i értékeire: és nincs teljesen kihasználva, így: =, valamint és z o =6 mindkét eseten Számolás tán: -re: és z o 9 -re: és z o 7 A célfüggvény együtthatókra: és nem került az új ázisa: c 9, c, és z o =6 c -re: c z o c -re: c 6 z o 9 A fejezet tárgyalását efejeztük 6