Matematikai modellek megoldása számítógéppel Solver Lingo

Hasonló dokumentumok
Optimumkeresés számítógépen

További programozási esetek Hiperbolikus, kvadratikus, integer, bináris, többcélú programozás

Esettanulmányok és modellek 5

3. előadás. Termelési és optimalizálási feladatok. Dr. Szörényi Miklós, Dr. Kallós Gábor

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

A dualitás elve. Készítette: Dr. Ábrahám István

Érzékenységvizsgálat

Számítógépes döntéstámogatás OPTIMALIZÁLÁSI FELADATOK A SOLVER HASZNÁLATA

Feltételes és feltétel nélküli optimalizálás Microsoft O ce EXCEL szoftver segítségével

A szállítási feladat. Készítette: Dr. Ábrahám István

Számítógépes döntéstámogatás OPTIMALIZÁLÁSI FELADATOK A SOLVER HASZNÁLATA

Tartalom. Matematikai alapok. Fontos fogalmak Termékgyártási példafeladat

b) Írja fel a feladat duálisát és adja meg ennek optimális megoldását!

Lineáris programozási feladat megoldása Microsoft O ce EXCEL szoftverrel

EuroOffice Optimalizáló (Solver)

Matematikai modellezés

A Termelésmenedzsment alapjai tárgy gyakorló feladatainak megoldása

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Egyes logisztikai feladatok megoldása lineáris programozás segítségével. - bútorgyári termelési probléma - szállítási probléma

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

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

Növényvédő szerek A B C D

Operációkutatás példatár

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

Operációkutatás II. Tantárgyi útmutató

Operációkutatás. Vaik Zsuzsanna. Budapest október 10. First Prev Next Last Go Back Full Screen Close Quit

2017/ Szegedi Tudományegyetem Informatikai Intézet

Növényvédő szerek A B C D

Dualitás Dualitási tételek Általános LP feladat Komplementáris lazaság 2017/ Szegedi Tudományegyetem Informatikai Intézet

Operációkutatás II. Tantárgyi útmutató

Lineáris programozás. A mese

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

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/

Nem-lineáris programozási feladatok

Ismertető A Solver telepítése, illetve indítása A Solver célcella módosuló cellák A feltételek általában a módosuló cellákra hivatkozó képletek.

Operációkutatás. Vaik Zsuzsanna. ajánlott jegyzet: Szilágyi Péter: Operációkutatás

Nemlineáris programozás 2.

Táblázatok. Táblázatok beszúrása. Cellák kijelölése

Esettanulmányok és modellek 2

A lineáris programozás alapjai

G Y A K O R L Ó F E L A D A T O K

1/ gyakorlat. Hiperbolikus programozási feladat megoldása. Pécsi Tudományegyetem PTI

Operációkutatási feladatok megoldása QSB-vel

A szimplex algoritmus

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

A Szállítási feladat megoldása

Közfoglalkoztatás támogatás megállapítását segítő segédtábla használati útmutatója

1.1.1 Dátum és idő függvények

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

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

Lineáris programozás. Ax b

A Szoftvert a Start menü Programok QGSM7 mappából lehet elindítani.

Segédanyag az Excel használatához

Segédanyag az Excel használatához

Ellenőrzés. Variáns számítás. Érzékenység vizsgálat

Előadó: Dr. Kertész Krisztián

E-tananyag Matematika 9. évfolyam Függvények

Döntési módszerek Tantárgyi útmutató

Esettanulmányok és modellek 3

Feladatok megoldásai

Mikroökonómia előadás. Dr. Kertész Krisztián

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.

Operációkutatás vizsga

Operációkutatás vizsga

Bevezetés a játékelméletbe Kétszemélyes zérusösszegű mátrixjáték, optimális stratégia

Alkalmazott optimalizálás és játékelmélet Lineáris programozás Gyakorlófeladatok. Rétvári Gábor

TANTÁRGYI ÚTMUTATÓ. Döntési módszerek

Gyártórendszerek modellezése: MILP modell PNS feladatokhoz

I-SZÁMLA KFT. VEVŐI FELHASZNÁLÓI FIÓK HASZNÁLATI ÚTMUTATÓ

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. 3. Előadás

Az érzékenységvizsgálat jelentősége

Hasonlóságelemzés COCO használatával

Egyenletek, egyenlőtlenségek V.

Termeléstervezés és -irányítás Termelés és kapacitás tervezés Xpress-Mosel FICO Xpress Optimization Suite

Szöveges feladatok a mátrixaritmetika alkalmazására

A szimplex algoritmus

Adatbázis-kezelés az Excel 2013-ban

A DÖNTÉSELMÉLET ELEMEI

A Microsoft Office 2013 újdonságai

Termelési és szolgáltatási döntések elemzése Vezetés és szervezés mesterszak

A Microsoft OFFICE. EXCEL táblázatkezelő. program alapjai as verzió használatával

A tanulók oktatási azonosítójára és a két mérési területen elér pontszámukra lesz szükség az elemzéshez.

Oktatási anyag Excel kezdő

Totális Unimodularitás és LP dualitás. Tapolcai János

Hogyan lehet Pivot tábla segítségével komplex adatokat elemezni és bemutatni?

Lineáris programozási feladatok típusai és grafikus megoldása

f x 1 1, x 2 1. Mivel > 0 lehetséges minimum. > 0, így f-nek az x 2 helyen minimuma van.

LINEÁRIS ALGEBRA ALKALMAZÁSA A KRITIKUS INFRASTRUKTÚRA KOCKÁZATÁNAK KEZELÉSÉBEN

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

Dr. Kalló Noémi. Termelés- és szolgáltatásmenedzsment. egyetemi adjunktus Menedzsment és Vállalatgazdaságtan Tanszék. Dr.

Függvények 1. oldal Készítette: Ernyei Kitti. Függvények

Döntési módszerek Tantárgyi útmutató

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Szélsőérték feladatok megoldása

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

A lineáris programozás 1 A geometriai megoldás

Disztribúciós feladatok. Készítette: Dr. Ábrahám István

Átírás:

Matematikai modellek megoldása számítógéppel Solver Lingo Készítette: Dr. Ábrahám István

A matematikai modellek számítógépes megoldásait példákkal mutatjuk be. Példa: Négy erőforrás felhasználásával négyféle terméket gyártanak. Az egyes termékek egy-egy egységébe az erőforrásokból rendre,,, ;,,, ;,,, és,,, épül be az egyes erőforrásokból. Az erőforrások felső korlátai:, 6,, 6. A termékek eladási egységárai rendre: 6, 6, 5, 4. Milyen termékszerkezetnél lesz maximális az árbevétel? Adataink táblázata: I II III IV Kap. A B 6 C D 6 Ár 6 6 5 4 Max. A matematikai modell: a.) x, x, x 3, x 4 b.) x +x +x 4 x +x 3 +x 4 6 x +x +x 3 x +x 3 6 A döntési változók a gyártandó darabszámok: x, x, x 3, x 4. Induló feltétel. Korlátozó feltételek. c.) z=6x +6x +5x 3 +4x 4 max A célfüggvény. A feladat megoldása szimplex módszerrel: x o =[35 5 65]* u o =[ ]* z o =545 A duál optimumok: y o =[,5,75,75 ]* w o =[,5 ]*

I. Megoldás az Excell Solverjével.) Adatbevitel Az adatokat az előző lapon lévő adattáblázathoz hasonló formában vihetjük be. Célszerű a termékek oszlopait x i -vel, a feltételek sorait f i -vel elnevezni. A feltételek sorai alatt legyen a célegyütthatók sora (c*), alatta legyen az x*, az optimális megoldások sora, induláskor nullákkal feltöltve. Az x 4 oszlopa után töltsünk fel egy oszlopot nullákkal a c* soráig, majd legyen egy oszlop a relációjeleknek és egy a kapacitásoknak. Az induló táblánk: f f f3 f4 c* x* x 6 x 6 x3 5 x4 4 b 6 6 Az adattáblázatot az Excellben bárhol elhelyezhetjük. Legyen x a B cellában. Az x4 utáni oszlopban állítjuk elő a modell feltételeinek baloldalát és a célfüggvényt. (Az adatok és a változók skaláris szorzataként.) Konkrétan: az F cellába behívjuk a szorzatösszeg függvényt. Az első tömbbe kerül a BE sor, a másodikba a B7E7 sor dollárjelekkel, amit az F4 billentyűvel vihetünk fel. 3

Ezután az F cellában előállított skaláris szorzatot alkalmazzuk a többi sorra. Az F cella jobb alsó sarkában megjelenő vonszoló füllel lejövünk az F6 celláig. Majd külön rákattintunk az F6 cellára, ez lesz a célcella..) Megoldás Az Excell eszközök menüjéből behívjuk a Solvert. Ha nincs ott, akkor a Bővítmények menüpontból bekérjük. A célcella most F6 (rákattintunk). Maximumot keresünk (bejelölés). Módosuló cellák: x* sora (B7E7), rákattintunk a sorra. Korlátozó feltételek: Hozzáadás gombbal egyesével bevisszük: FH (rákattintunk a cellákra), majd a Felvesz gomb után jön a következő: F3H3 és a többi. A Beállítás gombon a nemnegatív és a lineáris feltételeket jelöljük be. Ezt követően indulhat a Megoldás. 4

A megoldás gombra kattintva megkapjuk az optimális (primál) megoldást: f f f3 f4 c* x* x 6 35 x 6 x3 5 5 x4 4 65 6 5 545 b 6 6 Az x* sorából az optimum: x o =[35 5 65]* z o =545. Az eltérésváltozó optimumok a kapacitás maradványok: u o =[ ]*. Az u o értékei a Solver eredményjelentéséből is kiolvashatók. A duál optimum, az érzékenységvizsgálat az érzékenységjelentésből adódnak: Microsoft Excel. Érzékenység jelentés Módosuló cellák Redukált Objective Megengedhető Megengedhető Cella Név Végérték költség Célegyüttható növekedés csökkenés $B$8 x* x 35 6 3 3 $C$8 x* x -,5 6,5 E+3 $D$8 x* x3 5 5 5 3 $E$8 x* x4 65 4 E+3 3 Korlátozó feltételek Shadow Feltétel Megengedhető Megengedhető Cella Név Végérték Árnyékár jobb oldala növekedés csökkenés $F$3 f,5 3 7 $F$4 f 6,75 6 4 6 $F$6 f4 5 6 E+3 $F$5 f3,75 6 A duál optimum: y o =[,5,75,75 ]* Az árnyékárak oszlopából. Valamint: w o =[,5 ]* A redukált költség oszlopából. Érzékenységvizsgálat: b -re: -7 b +3 b -re: 6-6 b 6+4, 5 és így tovább.

Az érzékenységvizsgálat szerint: ha a b i értékekkel kilépünk a kapott intervallumból, akkor az optimális tábla szerkezete megváltozik. Például: Ha a b értéke 4 lesz, akkor: x o =[5 8]*. Az érzékenységjelentésből a célegyütthatókra is kapunk határokat: c -re: az eredeti érték mindkét irányban 3-mal változhat: 3 c 9. c -re: az eredeti érték felfelé,5-del, lefelé 3 -nal (azaz végtelennel) változhat: Így: - < c 7,5 Hasonlóan: c 3 és c 4 <. Például: Ha a c értéke lesz, akkor: x o =[5 5]*. A szimplex módszerrel számolva az érzékenységvizsgálatra hasonló eredményeket kapunk. (Eltérés lehet, az Excel közelítő számolást végez.) A számítógépes megoldásnál nem kell megkülönböztetni a normál feladatot (ez volt a példánk) az általános lineáris programozási feladattól. Így a relációjelek lehetnek tetszőlegesek és a cél is lehet minimum. A Solverben kérhetjük, hogy a döntési változók egész értékűek legyenek. Ez utóbbi esetben a program nem tud érzékenységi vizsgálatot végezni. 6

Disztribúciós feladat megoldása Solverrel Példa: Egy szállítási feladatban az F és F feladótól a teljes készletet el kell szállítani. Az F feladó az R megrendelőnek nem szállíthat. Adatok: R R R 3 R 4 F 4 3 5 6 4 F 3 5 4 7 8 F 3 3 5 4 9 7 7 4 Az Fi sorok végén a szállítandó mennyiségek, az R j oszlopok alján az igényelt mennyiségek állnak. A táblázat belsejében lévő számok az F i -ből R j -be történő egységnyi mennyiség szállításának költségét mutatják. Névleges állomást (ötödik rendeltetési helyet) és tiltótarifákat kell felvennünk: M 3 7 3 5 3 7 5 4 5 4 6 7 4 M M 4 8 9 A tiltásokat a többi költségelemhez képest igen nagy számok beírásával (M) valósítjuk meg. Például: M=99. Cél: az F i -ből az R j - be szállítandó x i j mennyiségek mátrixának meghatározása úgy, hogy az összköltség minimális legyen. A feladat megoldható a szokásos matematikai modellel, 5 változóval. 7

Egyszerűbb, gyorsabb megoldást kapunk a mátrixcsere -módszerrel. Ehhez felvesszük az Excellben a névleges állomással, tiltásokkal kiegészített táblázatunkat: R R R3 R4 R5 F 99 3 5 6 99 4 F 3 5 4 7 99 8 F3 3 5 4 9 7 7 4 R R R3 R4 R5 F F F3 Az adattáblázatot az Excellben bárhol elhelyezhetjük. Legyen most R a B cellában. Ezután a megoldás X=[x i j ] mátrixot jelöljük ki, célszerűen az adatok alatt: Ebben a táblázatban legyen az R helye (például) B9 cellában, a célcella pedig legyen a H3. A cellákat nullákkal töltsük fel. Az X mátrix oszlopaiban és soraiban összesen az előírt mennyiségek legyenek. Ehhez: a B3 cellába az összegfüggvényt hívjuk be: SZUM(B;B), majd a vonszolófüllel a többi oszlopösszeget is előállítjuk R5-ig. A sorcellák összegzése: a G cellába összegzünk: SZUM(B;F) és ezután a vonszolófüllel összegezzük a többi sort F3-ig. A célcellába (H3) szorzatösszeg kerül. A két tömb: B3-F5 és B-F ($ 8 jel!).

A H3 cellán állva ezután behívjuk a Solvert. Célcellaként H3 jelenik meg (ha nem: írjuk oda), bejelöljük a minimumot és módosuló cellák legyenek a B-F. A korlátozó feltételek: a B6-F6 és B3-F3 sorok egyenlők, valamint egyenlőek a G3-G5 és a G-G oszlopok is. A Solverbe célszerű az egérmutatóval bevinni az adatokat. Végül beállítjuk a nemnegatív és a lineáris modell feltételeket. A megoldás gombot lenyomva megkapjuk az eredményt: R R R3 R4 R5 F 4 4 F 4 4 8 F3 3 3 9 7 7 4 63 Az összköltség minimuma 63. Az egyes relációkban szállítandó menynyiségeket a szállítási mátrix mutatja. Például: F-ből R-be nincs szállítás, az R-be pedig 4 egységnyit szállítunk. A szállítási mátrix: X= 4 3 4 3 4 Ez azt is jeleneti, hogy a 3. feladónál egység marad (a névleges állomásnak szállít). 9

Megoldás Lingoval A program lingo.com lapról tölthető le (a demo változat, ez oktatási célra elég). A szofver előnye, hogy a matematikai modell a szokásos alakban írható be, tud speciális modelleket kezelni és pontosabb az Excelnél. Használatához szükséges tudni:.) A nemnegatív feltételt külön nem kell beírni, a program ezt feltételezi..) A feltételek sorait pontosvesszővel kell lezárni, a szorzásjelet ki kell írni. 3.) A nagyobb-egyenlő, kisebb-egyenlő relációknál nem kell egyenlőséget írni. 4.) A célt (min vagy max) sor elején ki kell írni. 5.) A felkiáltójelek közé tett szöveget a program megjegyzésként kezeli. A program indítása után begépeljük a modellt (legyen ez a. lapon lévő példa). x+x+x4<; *x+*x3+*x4<6; *x+*x+*x3<; x+x3<6; max=6*x+6*x+5*x3+4*x4; A Lingoban célfüggvényként szerepeltethetünk törtfüggvényt (ez a gyakorlatban sokszor előfordul), vagy más nem lineáris (pl. másodfokú) függvényt. A megoldást a solve parancsra lépve kapjuk.

A megoldásból leolvasható mind a primál, mind a duál optimum: Global optimal solution found. Objective value: 545. Infeasibilities:. Total solver iterations: 4 Variable Value Reduced Cost X 35.. X..5 X4 65.. X3 5.. Row Slack or Surplus Dual Price..5..75 3..75 4.. 5 545.. A program globális optimumot talált, ehhez 4 lépésben jutott el. Emlékeztetőül a jelöléseinkkel: z o =545 x o =[35 5 65]* u o =[ ]* y o =[,5,75,75 ]* w o =[,5 ]* Az egyes optimális megoldások elhelyezkedése a táblázaton jól látható. Példa: Egy üzem terméket gyárt, két eőforrás felhasználásával. Az egyes termékek egységnyi mennyiségébe az erőforrásokból,, illetve, egységnyi épül be. A kapacitások felső korlátai: 3 és 4. A piaci igény az egyes termékekre maximum, illetve5 darab. A termékek eladási egységárai és 8, az önköltségi egységárak: 5, 5. A gyártás fix költsége: 5. Adjuk meg azt a termékösszetételt, amelynél az egységnyi költségre eső fedezeti összeg maximális!

A matematikai modell célfüggvénye tört (hiperbolikus programozás):!hiperbolikus programozás szélsőértéke! *x+x<3; *x+*x<4; x<; x<5; max=(6*x+5*x)/(5*x+5*x+5); Local optimal solution found. Objective value:.983 Infeasibilities:. Extended solver steps: 5 Total solver iterations: 5 Variable Value Reduced Cost X.. X..5793E-3 A Lingoba történő adatbevitel módját is mutatja a modellünk. A megoldást a solve gomb lenyomásával szinte azonnal megkapjuk: A célfüggvény optimális (legnagyobb) értéke: z o =,9, ezt 5 lépésben számolta ki a Lingo. Eredményül azt kaptuk, hogy ehhez csak az első terméket gyártsuk: x o =[ ]*. Row Slack or Surplus Dual Price 6....8966E-5 3 5.. 4.983. A táblázatból a többi optimális érték is kiolvasható. A Lingo is lehetővé teszi azt, hogy egészértékűek legyenek a megoldások (integer programozás), és más számításokra (érzékenységvizsgálat!) is alkalmas. Az internetről további más optimalizáló szoftverek tölthetők le, illetve konkrét gazdasági problémák megoldásához vásárolhatunk ilyeneket. A fejezet tárgyalását befejeztük.