310 likes | 451 Views
Pécsi Tudományegyetem Pollack Mihály Műszaki Kar Műszaki Informatika Szak Data Mining. 24. Előadás Dr. Pauler Gá bor , Egyetemi Docens PTE-PMMFK Villamos Intézet Számítástechnika Tanszék Iroda: Boszorkány u., B épület 101 Tel: 72/503-650/3725 E-mail: gjpauler@acsu.buffalo.edu.
E N D
Pécsi TudományegyetemPollack Mihály Műszaki KarMűszaki Informatika SzakData Mining 24. Előadás Dr. Pauler Gábor, Egyetemi Docens PTE-PMMFK Villamos Intézet Számítástechnika Tanszék Iroda: Boszorkány u., B épület 101 Tel: 72/503-650/3725 E-mail: gjpauler@acsu.buffalo.edu
Az előadás tartalma Az optimalizációs módszerek csoportosítása Lineáris Programozás (LP) • 24.1 PÉLDA: Xantál Bútor Kft. • LP feladatok megoldása próbálgatással • Megoldás Sztenderd LP modellként • A példa felírása Sztenderd LP modellként • A Sztenderd LP modell grafikus szemléltetése • A Sztenderd LP modell megoldása: a szimplex algoritmus • Az algoritmus alkalmazási feltételei • Az algoritmus működése • Az algoritmus értékelése • Az algoritmus részletei • A bázismegoldások fogalma • A bázismegoldások grafikus szemléltetése • Az alternatív optimumok fogalma • Általános formájú LP modellek konvertálása Sztenderd LP modellé • Nemlineáris és egészértékű modellek megoldása • Számítógépes alkalmazások • Sztenderd LP modell Excelben és megoldása Excel Solverrel • Az Excel szcenáriók használata
Az optimalizációs módszerek csoportosítása 1 Az optimalizációs (Optimization) módszerek: sokváltozós célfüggvényekkel modellezhető problémáknál a döntési változók lehetséges legjobb értékeit keresik meg • Feltétel nélküli optimalizáció (Unconstrained / Global Optimization): egy sokváltozós célfüggvény szélsőértékeit (minimumait vagy maximumait) keressük • Analitikus optimalizáció (Analytic Optimization): Newton, Kvázi-Newton módszerek: folytonos, kétszer differenciálható célfüggvényre működik csak • "Hegymászó"-tipusú szélsőérték keresés (Gradient Optimization): bármilyen célfüggvényre működik, de "fennsíkokat" és sok lokális szélsőértéket tartalmazó célfüggvény esetén nem hatékony • "Szimulált hűtés"-tipusú szélsőérték keresés (Simulated Annealing): bármilyen célfüggvényre működik, de sok lokális szélsőértéket tartalmazó célfüggvény esetén nem hatékony • Genetikus szélsőérték keresés (Genetic Optimization): bármilyen célfüggvényre működik, de magas a számolásigénye
Az optimalizációs módszerek csoportosítása 2 • Matematikai programozás (Mathematic Programming): minden olyan feladat, ahol célfüggvényhez korlátozó feltételek társulnak • A célfüggvény és feltételek fajtái szerint • Lineáris programozás (Linear Programming): lineáris célfüggvény+lineáris korlátozó feltételek, az optimális megoldás(ok) gyorsan megkereshetők, de óriási méretű modelleket eredményez • Termelési probléma (Production Problem): maximális produktumot kell elérni korlátos erőforrások felhasználásával • Szállítási probléma (Transpotation problem): keresleti és kínálati helyek közt kell árút szállítani minimális költséggel • Készletezési probléma (Inventory Problem): minimális költséggel kell készletezni • Ütemezési probléma (Scheduling Problem): tevékenységek időbelisorrendjét kell hatékonyan megszervezni • Nemlineáris programozás (Non Linear Programming): • Kvadratikus programozási feladat (Quadratic Programming): négyzetes célfüggvény+lineáris korlátozó feltételek, könnyen visszavezethető lineáris feladatra • Hiperbolikus programozási feladat (Hypebolic Programming): tört lineáris célfüggvény+lineáris korlátozó feltételek, könnyen visszavezethető lineáris feladatra • Általános nemlineáris programozási feladat (General Nonlinear Programming): nem konkáv/konvex célfüggvény, nem konkáv/konvex feltételi függvények, gyakran csak keresési heurisztikákkal vizsgálható
Az optimalizációs módszerek csoportosítása 3 • A döntési változók folytonossága szerint • Folytonos változók: könnyebben kezelhető • Diszkrét változók, egészértékű programozás (Integer Programming): nehezebben kezelhető, kivéve a genetikus optimalizáció esetén • Pakolási probléma (Packing Problem): zárt, véges kapacitási térbe kell adott méretű tárgyakból minél többet elhelyezni • Járatszervezési probléma (Vehicle Routing Problem): szállítójárműveket kell adott helységek közt minimális költségű útvonalon végigvinni • A döntési változók fajtái szerint: • Determinisztikus programozás (Deterministic Programming): minden döntési változó és paraméter determinisztikus, könnyebben kezelhető, de kevéssé valósághű • Sztochasztikus programozás (Stochastic Programming): a döntési változók / paraméterek valószínűségi változók, eloszlásuk becslése statisztikai módszerekkel történik., valósághű, de nehezen kezelhető
Az optimalizációs módszerek csoportosítása 4 • Optimalizáció ismeretlen célfüggvény/feltételek esetén: a célfüggvényről/feltételekről csak töredékes információk állnak rendelkezésre, különféle becslési rendszerekkel kell előállítani: • Eloszlásfüggő becslési rendszerek (Distribution-Dependent Estimators): • Regressziós módszerek (Regression): egy folytonos függő- és több folytonos független változó közt keres kapcsolatot, célfüggvény becslésére használható • Diszkriminancia Analízis (Discriminant Analysis): egy csoportosító változó és több folytonos független változó közt keres kapcsolatot, korlátozó feltételek becslésére használható • Eloszlásfüggetlen becslési rendszerek (Distribution-Free Estimators): • Fuzzy Rendszerek (Fuzzy Systems): manuálisan létrehozott szöveges szabályrendszerek segítségével modelleznek bonyolult nemlineáris függvényeket • Mesterséges Neurális Hálózatok (Artificial Neural Networks): az emberi agy működését utánzó rendszerek, amelyek mintákból automatikusan képesek tanulni, és függvénybecslést végezni
Az előadás tartalma Az optimalizációs módszerek csoportosítása Lineáris Programozás (LP) • 24.1 PÉLDA: Xantál Bútor Kft. • LP feladatok megoldása próbálgatással • Megoldás Sztenderd LP modellként • A példa felírása Sztenderd LP modellként • A Sztenderd LP modell grafikus szemléltetése • A Sztenderd LP modell megoldása: a szimplex algoritmus • Az algoritmus alkalmazási feltételei • Az algoritmus működése • Az algoritmus értékelése • Az algoritmus részletei • A bázismegoldások fogalma • A bázismegoldások grafikus szemléltetése • Az alternatív optimumok fogalma • Általános formájú LP modellek konvertálása Sztenderd LP modellé • Nemlineáris és egészértékű modellek megoldása • Számítógépes alkalmazások • Sztenderd LP modell Excelben és megoldása Excel Solverrel • Az Excel szcenáriók használata
Lineáris Programozás • A lineáris programozás (Linear Programming, LP) olyan modellek optimális megoldásait keresi, ahol: • A sokváltozós célfüggvény lineáris függvénye • folytonos értékű döntési változóknak • A döntési változók értékét szintén egyenlőségi vagy egyenlőtlenségi lineáris feltételek korlátozzák • Ez elvont matematikai fogalomnak látszik, valójában azonban naponta vagyunk kénytelenek megolani LP feladatokat (pl. saját vállalkozásunk tevékenységének tervezésekor) • Egy egyszerű, pici LP feladatot minden matematikai tudás nélkül, pusztán próbálgatással is meg lehetne oldani: egy motivált és viszonylag értelmes vállalkozó egy idő után rájön a vállalkozás működtetésének leghatékonyabb módjára, aminél géppel sem lehet jobbat kiszámolni. Akkor miért tanuljuk az egészet? • Nem mindegy, hogy mennyi idő alatt, hány próbálgatásra, milyen költséggel jön ki az optimális megoldás! • Ha a cég versenykörnyezete gyorsan változik, vagy nagy a döntések pénzügyi kockázata, már egy rossz próbálgatásba is bele lehet bukni! • Az LP feladatok matematikai megoldása nem fog valami „földöntúlian érdekes” megoldást kihozni a józan paraszti észhez képest. Nagyjából ugyanazt hozza ki – csak sokkal gyorsabban és olcsóbban, próbálgatások nélkül! • Lássunk erre egy példát:
24.1 PÉLDA: Xantál Bútor Kft. • Hídvégi Ferenc, a Xantál Bútor Kft. ügyvezetője nagy gondban van. A jó illatú egzotikus fafajtából egyedi megrendelésre ágyakat és asztalokat készítő cég termékeire egyre nagyobb a kereslet. A beszerezhető xantálfa mennyisége azonban korlátozott, megmunkálása speciális szakismeretet igényel, így a munkaerő mennyisége is behatárolt. Nagy kérdés, hogy a szűkös erőforrások felhasználásával inkább ágyat vagy asztalt érdemes-e gyártani, figyelembe véve a termékek fedezeteit, vagyis az eladási ár és a termeléssel arányos változó költségek különbségét? Az adatokat a következő táblázat tartalmazza:
LP feladat megoldása próbálgatással 1 • Legegyszerűbben a feladatot úgy lehetne megoldani, hogy elkezdjük próbálgatni az ágyak számának ( X1 ) és asztalok számának ( X2 ) lehetséges értékeit, meg lehet-e valósítani az erőforrásokból, és milyen fedezetet ad: • Ha csak ágyat termelnénk, 4 darab után elfogyna a fa (4 × 2 m2 = 8 m2), így 400EFt fedezethez jutnánk, de közben 6 munkanap kihasználatlan maradna. Ha a munkások időbérben dolgoznak, ez komoly veszteség. • Ha csak asztalt termelnénk, 5 darab után elfogyna a munkaidő (5 ×2 nap = 10 nap), de 500EFt fedezetre tennénk szert, bár 3m2 fa kihasználatlanul raktáron marad. Ez növeli a tőkelekötést és a finanszírozási költségeket, hiszen a nyersanyagot vásárláskor kifizettük, de pénzt csak akkor hoz, ha a belőle készült készterméket eladtuk. • 4 ágy és 2 asztal termelésével 600EFt-ra nőne a fedezet, csakhogy ehhez már 10m2 fára lenne szükség, viszont munkanapból maradna kettő. • 3 ágy és 3 asztal termelése hasonló fedezetet hozna, de ez még mindig egy m2-rel több fát igényel, mint ami van, és a munkaidőt sem használja ki teljesen. • Végül, 2 ágy és 4 asztal termelése szintén 600EFt fedezetet jelent, és pontosan annyi erőforrás kell hozzá amennyi van.
LP feladat megoldása próbálgatással 2 • Látható, hogy próbálgatással még ilyen egyszerű problémában sem könnyű a jó megoldást megtalálni, nincs rá semmi garancia, hogy véletlen keresgéléssel rábukkanunk. • Ezzel szemben fel lehetne hozni, hogy biztos nem hagyjuk ki a legjobb megoldást, ha egy gyors számítógép segítségével ellenőrizzük a változóértékek összes lehetséges kombinációját, mekkora fedezetet adnak, és teljesülnek-e rájuk a feltételek. Ha a x1 és x2 változók 10 lehetséges értékét vesszük figyelembe (1,2..10), akkor 10 ×10 = 100 lehetőséget kell ellenőrizni, ami nem látszik veszélyesnek. Három változónál ez 1000 lenne, 4 változónál 10000, 30 változónál 1030, ami csillagászati nagy szám, a leggyorsabb számítógép sem végezne vele a világ végéig sem. • Ezt a jelenséget nevezzük kombinatorikai robbanásnak (Combinatoric Explosion). • Pedig egy 30 változós probléma a gyakorlatban szinte semmiség, az igazán pénzt hozó döntéseknél gyakran több száz változót kell figyelembe venni ! • Belátható, hogy a próbálgatásnál sokkal gyorsabb módszerre van szükségünk.
Az előadás tartalma Az optimalizációs módszerek csoportosítása Lineáris Programozás (LP) • 24.1 PÉLDA: Xantál Bútor Kft. • LP feladatok megoldása próbálgatással • Megoldás Sztenderd LP modellként • A példa felírása Sztenderd LP modellként • A Sztenderd LP modell grafikus szemléltetése • A Sztenderd LP modell megoldása: a szimplex algoritmus • Az algoritmus alkalmazási feltételei • Az algoritmus működése • Az algoritmus értékelése • Az algoritmus részletei • A bázismegoldások fogalma • A bázismegoldások grafikus szemléltetése • Az alternatív optimumok fogalma • Általános formájú LP modellek konvertálása Sztenderd LP modellé • Nemlineáris és egészértékű modellek megoldása • Számítógépes alkalmazások • Sztenderd LP modell Excelben és megoldása Excel Solverrel • Az Excel szcenáriók használata
Megoldás sztenderd LP modellként 1 Írjuk fel a problémát LP modellként: • Lineáris korlátozó feltételek (Linear Constraints, Subject to): • Nem használhatunk el több fát, mint amennyi van: 2x1 + 1x2 8 (24.1) • Nem használhatunk el több munkanapot, mint amennyi van: 1x1 + 2x2 10 (24.2) • A döntési változók értelmezési tartománya (Range of Decision Variables): Nem termelhetünk negatív mennyiségeket: x1 0, x2 0 (24.3) • Lineáris célfüggvény (Linear Goal Function): Az összfedezet legyen maximális: 100x1+ 100x2 = z max (24.4)
Megoldás sztenderd LP modellként 2 • A jobb áttekinthetőség kedvéért, ábrázoljuk a modellt grafikusan is, a két döntési változó (x1 és x2) alkotta koordináta-rendszerben • Elsőként a fa mennyiségével kapcsolatos korlátozó feltételt ábrázoljuk: 2x1 + 1x2 8 (24.5) • Megfigyelhető, hogy adott mennyiségű fából megvalósítható termékkombinációk egy egyenes (lásd kék vonal) alatti területen vannak (lásd sárga terület)
Megoldás sztenderd LP modellként 3 • Az előbbiekhez hasonló módon ábrázoljuk grafikusan a munkanapokra vonatkozó korlátozó feltételt is (lásd zöld vonal) • Megfigyelhető, hogy az összes feltételnek egyszerre eleget tevő, megengedett megoldások (Feasible Solutions) egy mindig sokszöget alkotnak (lásd sárga sokszög) • Ez mindig konvex sokszög (Convex Polyhedron), vagyis bármely két pontját összekötő szakaszt is tartalmazza (szemléletesen: nem lehet benne bújócskát játszani, mert mindig mindenki látható) • Ha több döntési változónk lenne, akkor ez 3 változónál sokszögű test, poliéder lenne, magasabb változószámban pedig hiperpoli- éder • A megengedett megoldások halmazának végtelen sok pontja van, és ezek közül mi az optimális megoldást (Optimal Solution, Optimum) keressük, ahol a célfüggvény a maximális értéket veszi fel • Ha ábrázoljuk a lineáris célfüggvény különböző célfüggvény-értékeihez tartozó szintvonalait (Levels) (lásd piros vonalak),megfigyelhetjük, hogy a maximális célfüggvény-értékhez tartozó szintvonal mindig egy vagy több csúcsánál fogva érinti a sokszöget, vagyis az optimális megoldás csak csúcsban lehet! Ez jelentősen leszűkíti a keresést.
Megoldás sztenderd LP modellként 4 Ebből az ötletből fejlesztette ki Danzig 1947-ben a szimplex algoritmust (Simplex Algorithm): Alkalmazásának feltétele: csak sztenderd formájú LP modellt (Standard LP Problem) tud megoldani: • Az összes korlátozó feltétel (Constraint)lineáris egyenlőtlenség (Linear Inequalty), felső erőforráskorlátokkal (Upper Bound), amelyek pozitív kapacitások (Positive Capacity) • A döntési változók nemnegatív valós számok (Non-negative Real Decision Variables) • A célfüggvény lineáris (Linear Goal Function) és maximalizálni (Maximization) kell Működése: • A megengedett megoldások halmazát adó poliéder csúcsait - ahol az előzőek alapján egyáltalán érdemes az optimumot keresni - bázismegoldásoknak (Base Solution) ne- vezzük. • Az algoritmus mindig az origónál lévő bázis- megoldástól indul (lásd 1. lépés), és egy elemi bázistranszformáció (Elementary Basis Transformation) nevű számítás segít- ségével képes valamely szomszédos bázis megoldásra átugrani. • Olyan bázismegoldásra igyekszik átugrani (lásd 2. lépés), hogy maximális javulást érjen el a célfüggvény értékében (amerre a legmeredekebben tud emelkedni a cél- függvény piros színű síkján) • Addig ugrál, amíg a célfüggvény értéke tovább már nem javítható (lásd 3. lépés)
Megoldás sztenderd LP modellként 5 Az algoritmus előnyei: • +: Matematikailag bizonyítható, hogy biztosan a pontos optimális megoldást adja meg, még az optimumkereső heurisztikáknál (hegymászó-, szimulált hűtés, genetikus algoritmusok) ez csak egy valószínűséggel következik be • +: Relatíve alacsony számolásigényű Az algoritmus hátrányai: • -: A belső működése nehezebben érthető, mint a heurisztikáké • -: Csak sztenderd formájú LP modellt kezel. Ha nemlineáris modelleket hozunk ere a formára, ezekből általában óriási méretű modellek lesznek, nagy számolásigénnyel • -: Csak folytonos változókat kezel, egészértékűeket nem, azok kezeléséhez más módszerekkel kell kombinálni • -: Érzékeny a gépi számábrázolás pontatlanságaira, különös tekintettel a lebegőpontos alulcsordulásra • -: Nagyon-nagyon kis eséllyel elakadhat a működése, ezt a jelenséget degenerációnak (Degeneration) nevezzük, és ritkasága miatt nem foglalkozunk vele
Az előadás tartalma Az optimalizációs módszerek csoportosítása Lineáris Programozás (LP) • 24.1 PÉLDA: Xantál Bútor Kft. • LP feladatok megoldása próbálgatással • Megoldás Sztenderd LP modellként • A példa felírása Sztenderd LP modellként • A Sztenderd LP modell grafikus szemléltetése • A Sztenderd LP modell megoldása: a szimplex algoritmus • Az algoritmus alkalmazási feltételei • Az algoritmus működése • Az algoritmus értékelése • Az algoritmus részletei • A bázismegoldások fogalma • A bázismegoldások grafikus szemléltetése • Az alternatív optimumok fogalma • Általános formájú LP modellek konvertálása Sztenderd LP modellé • Nemlineáris és egészértékű modellek megoldása • Számítógépes alkalmazások • Sztenderd LP modell Excelben és megoldása Excel Solverrel • Az Excel szcenáriók használata
Megoldás sztenderd LP modellként 6 A szimplex algoritmus részletei: Hogyan határozza meg egy megoldásról, hogy bázismegoldás-e: • Egy sztenderd LP feladatnak általában n döntési változója van és m feltétele, ahol a sokváltozós egyenletrendszerek megoldásától eltérően a számuknak NEM kell megegyeznie! Lehet n>m, n=m, n<m, ettől a feladat megoldható! • Az m db erőforráskorlátot jelentő feltételhez felírhatunk m darab nemnegatív uj≥0 j = 1..meltérésváltozót (Slack Variable), amelyek azt fejezik ki, hogy adott megoldás esetén mennyi marad meg feleselegesen az erőforrásból: 2x1 + 1x2 + u1 = 8 (24.6) 1x1 + 2x2 + u2 = 10 (24.7) • Egy megoldás akkor bázismegoldás, ha az n döntési változó + m eltérésváltozó közül összesen n elem 0, a többi pedig nem 0. Vagyis a nem termelt termékek és az elfogyott erőforrások összesített számának meg kell egyeznie n-nel. • Minden sztenderd LP feladat kiinduló bázismegoldása, az origó, amikor nem termelünk semmit, és az összes erőforrásunk megmarad, simplex algoritmus mindig ettől a megoldástól indul
Megoldás sztenderd LP modellként 7 A bázismegoldások definíciójának grafikus szemléltetése: • Példánkban 2 változónk van (ágy, asztal, n=2) és 2 erőforrásunk (fa, munkanap, m=2) • Van olyan bázismegoldás, ahol nem termelünk semmit (az origó), így minden erő- forrás megmarad (x1=0, x2=0, u1=8, u2=10), vagyis a 0 elemek száma n=2 • Van olyan bázismegoldás, ahol egy terméket nem ter- melünk és egy erőforrásunk fogy el (x1=4, x2=0, u1=0, u2=6), vagyis a 0 elemek száma n=2 • Van olyan bázismegoldás, ahol mind a két terméket termeljük, és a két erőforrásunk fogy el (x1=2, X2=4, u1=0, u2=0) , vagyis a 0 elemek száma n=2
x2 x2 x3 x1 x1 Megoldás sztenderd LP modellként 8 A bázismegoldások sokváltozós kiterjesztése: • n változó esetén egy csúcsot legalább ndb feltétel (lásd kék hipersíkok) vagy koordináta tengely metszése tud kialakítani, • az algoritmus egy csúcsból n másik csúcs felé tud átugrani elemi bázistranszformációval, • ezek közül mindig a legjobb célfüggvényértékű felé ugrik tovább • Pl. 2 változónál 2db feltétel vagy koordináta tengely metszése kell, és 2 fele ugorhat belőle • 3 változónál 3 db feltétel vagy koordináta tengely metszése kell, és 3 fele ugorhat belőle Ha a célfüggvény optimális szintvonala (lásd szaggatott piros hipersíkok) „lapjával” érinti a feltételi poliédert, több csúcs (lásd piros pont), sőt minden konvex lineáris kombinációjuk is (lásd lila hipersík) optimális lehet egyszerre, ezeket alternatív optimumoknak (Alternative Optima) nevezzük
Általános formájú LP modellek megoldása szimplex algoritmussal A szimplex algoritmus általános formájú LP modellek megoldására is használható, az alábbi trükkök segítségével. Az átalakításokat a szoftverek automatikusan elvégzik:
Nemlineáris és egészértékű modellek megoldása simplex algoritmussal • A szimplex algoritmus legkeményebb kikötésnek a célfüggvény és a feltételek linearitása látszik. Elég csak arra gondolni, hogy nagyon sok gazdasági folyamat, például a kamatos kamatozás egyáltalán nem lineáris. • Csakhogy létezik egy csomó trükk, amivel elképesztően nemlineárismodelleket is linearizálni lehet (lásd Session25). • A baj ezekkel az, hogy jelentősen megnövelik egy a nemlineáris feladat változó- és feltételszámát. Úgyhogy, a "lineáris programozás" név nem tükrözi a probléma lényegét: jobb lett volna „nagyon nagy méretű programozásnak" hívni. • A döntési változók folytonosságára szóló kikötés nem látszik olyan rettenetesnek. Ha probléma olyan jellegű, hogy bizonyos változóknak csak egész értékei fogadhatók el, akár kerekíthetünk is (például, ha kijön, hogy az optimális megoldás 127.3 tehén). • A kerekítés azonban csak akkor működik jól, ha a változó egy egységgel történő változtatása jelentéktelenül kicsi részét fogyasztja az erőforrásoknak. • Például, ha az egy zacskóba töltendő szotyolamagok számát optimalizáljuk Fradi-meccs előtt, nyugodtan kerekíthetünk. • Más a helyzet, ha az építendő óceánjáró hajók számát kerekítjük.Ilyen esetekben a folytonos optimális eredmény egyszerű kerekítése keserves csalódásokhoz vezethet. • Ezen problémák megoldását lásd a Session25-ben.
Az előadás tartalma Az optimalizációs módszerek csoportosítása Lineáris Programozás (LP) • 24.1 PÉLDA: Xantál Bútor Kft. • LP feladatok megoldása próbálgatással • Megoldás Sztenderd LP modellként • A példa felírása Sztenderd LP modellként • A Sztenderd LP modell grafikus szemléltetése • A Sztenderd LP modell megoldása: a szimplex algoritmus • Az algoritmus alkalmazási feltételei • Az algoritmus működése • Az algoritmus értékelése • Az algoritmus részletei • A bázismegoldások fogalma • A bázismegoldások grafikus szemléltetése • Az alternatív optimumok fogalma • Általános formájú LP modellek konvertálása Sztenderd LP modellé • Nemlineáris és egészértékű modellek megoldása • Számítógépes alkalmazások • Sztenderd LP modell Excelben és megoldása Excel Solverrel • Az Excel szcenáriók használata
Számítógépes alkalmazás: LP modellek megoldása Excellel A Xantal.xls fájl LP modellek Excel Solverrel történő megoldására mutat példát: • A zöld cellákban a döntési változók értékei láthatók. Ezekben fogja az Excel megjeleníteni az optimális megoldást • A narancssárga cellákban a probléma aktuális koefficiensei találhatók. Ha ezeket módosítjuk, az Excel az új adatokkal fogja megoldani a modellt. • A kék színű cellákban az erőforrás korlátok találhatók • A lila cellákban az erőforrások felhasználása és megmaradt mennyiségek találhatók. Ezeket ne módosítsuk, az Excel automatikusan számolja őket. • A piros cellában a célfüggvény-érték található. Ezt ne módosítsuk, az Excel automatikusan számítja ki. • Figyeljük meg, hogy • a döntési változók, • az erőforráskorlátok, • az erőforrás felhasználásokat számító cellafügvények összefüggő cellatömbökben helyezkednek el, a célfüggvény aktuális értéke pedig szintén cellafügvénnyel számolódik ki, hogy a Solverben könnyebben hivatkozhassunk rájuk.
A Solve gombbal indítjuk az optimalizációt Az Excel Solver használata 1 katt katt katt katt Az optimalizációt az Excel Solver modulja végzi: • Az Eszközök|Célértékkereső (Tools| Solver) menüvel nyissuk meg a SolverParam. ablakot • A Set Target Cell-nél adjuk meg a célfüggvény celláját. Ezt maxi- /minimalizálhatjuk, vagy adott értékhez (Value of) vihetjük közel • A By Changing Cells-nél adhatjuk meg, mely cellákban vannak a változók. Ezekben nem lehetnek függvények, csak számértékek. • A Subject to Constraints-nál az Add gombbal adhatunk a modellhez új korlátozó feltételt: • Itt a Constraint-ban csak konstans értékeket tartalmazó cellákat adhatunk meg, a Cell Reference-nél a feltételeket kiszámító függvények cellatartományát, a kettőt pedig valamilyen reláció (<=, =, >=) köti össze, vagy (int, bin) egész-/ bináris értékűségi feltétel • Az Options gombra előjön a Solver options: • Itt a Max time-ot és Iterations-t emeljük, hogy adott Convergence leállítási feltétel mellett a gradiens algoritmus végig tudjon futni • Az Assume Linear Model-t bekap- csolva jelezzük a linearitást • Save Model-lel mentjük a modellt egy üres munkalap-oszlopba katt katt katt katt katt katt katt katt katt katt katt katt katt katt
Answer Report 1 Az Excel Solver használata 2 katt katt katt katt • Az optimalizáció lefut a következő lehetséges kimenetekkel: • Nem talál megengedett megoldást • Megengedett megoldást talál, de az optimum létezésével kapcsolatos feltételek nem teljesünek • Optimális megengedett megoldást talál • Futás közben bármely lépésben (Stop) megállíthatjuk, így részeredményeket ad • Megtarthatjuk az aktuális megoldást (Keep Solver Solution), és ekkor ezt beírja a változók celláiba, vagy visszaállíthatjuk az eredeti megoldást (Restore Original) • A szcenárió mentése (Save Scenario) gombbal elmenthetünk a munkalap objektumba egy adott megoldást • A jelentéseknél (Reports) a következőket kérhetjük: • Válasz (Answer): egy külön munkalapon az optimum értéke, a változóértékek, a feltételek teljesülése (Binding), és a korlátok túllépése/megmaradt mennyiség (Slack) katt katt katt
Sensitivity Report 1 Limits Report 1 Az Excel Solver használata 3 Az Érzékenységvizsgálat (Sensitivity Report) a célfüggvény-együtthatók és a kapacitáskorlátok esetleges megváltozásának hatásait elemzi: • Egy döntési változó redukált költsége (Reduced Cost) azt jelenti, mennyivel kellene megváltozni a változó célfüggvény együtthatójának, hogy 0-tól különböző értékkel szerepeljen az optimális megoldásban (pl. az adott bútort termeljük) • Ha 0-tól különböző a változó optimális értéke, akkor a redukált költség 0. • A megengedhető növekmény/csökkenés (Allowable Increase/Decrease) azt jelenti, mennyivel változhat a változó célfüggvény együtthatója, hogy az optimális megoldás ne változzon (pl. ennyit változhat a bútorár, hogy a 2 ágy+4 asztal terv továbbra is optimális legyen) • Egy erőforrás árnyékára (Shadow price) azt jelenti, ha egy egységgel több lenne belőle, mennyivel javulna (maximumnál nőne, minmumnál csökkenne) a célfüggvény érték (pl. ennyiért érdemes még fát venni, munkást bérelni, stb.) • A megengedhető növekmény/csökkenés (Allowable Increase/Decrease) azt jelenti, milyen kapacitáskorlátok közt érvényes a az erforrás jelenlegi árnyékára • Itt az 1×10+30 értékek elméletileg végtelent jelentenek • A korlátelemzés (Limit Report) a döntési változók alsó/felső határait, illetve az ott érvényes célfüggvény értéket mutatja ki
Scenario PivotTable Scenario Summary katt Az Excel Szcenáriók használata katt katt katt • A Xantal munkalapra állva Eszközök| Szcenáriók... (Tools| Scenario) menüvel indíthatjuk el a lementett megoldásai (Scenario) nyilvántartását • A bal oldali listából választhatunk egy szcenáriót, amit a Mutat (Show) gombra megmutat a Xantal munkalapon • Az Összegzés... (Summary...) gombra kattintva egyszerű táblázatos (Scenario Summary) vagy kimutatásos (Scenario PivotTable report) összegzést kérhetünk az összes megoldásról és célfüggvény, valamint korlátok értékeikről, hogy össze tudjuk hasonlítani őket • Ez különösen az alternatív optimumok elemzésekor hasznos lehetőség katt katt
Szakirodalom 1 Lineáris Programozás Elméleti bevezető: • www.bkae.hu/~opkut/elibd/linearis_programozas.pdf • www.bkae.hu/~opkut/files/opkutea1_2005.pdf Simplex algoritmus: • www.bke.hu/puskas/elibd/szimplex.pdf Elemi bázistranszformáció számítási módja: • www.palya.hu/dolgozat/dolgozat.cfm?id=1311 A simplex algoritmus hibái, degeneráció: • http://oziris.nyme.hu/~takach/oktatas/opkutlevelezok/opkut.pdf Érzékenységvizsgálat: • http://www.mba.bme.hu/data/jegyzet/koltaitamas/tterv_mba.pdf Excel Solver rövid útmutató: • http://www.math.bme.hu/~gnagy/oktatas/LPSolver.htm Lineáris programozás modell könyvtárak: • Gams Inc.: http://www.gams.com/modlib/libhtml/subindx.htm • Optimax Inc.: http://www.maximal-usa.com/ • Frontline Inc.: http://www.solver.com/sdkplatform.htm • Brunel: http://people.brunel.ac.uk/~mastjjb/jeb/or/lp.html Áttekintés az optimalizációs algoritmusokról szoftverekről: • http://www-fp.mcs.anl.gov/otc/Guide/SoftwareGuide/Categories/linearprog.html Ingyenes lineáris optimalizációs szoftverek: • Dream: http://sourceforge.net/projects/dr-ea-m • HQP: http://sourceforge.net/projects/hqp • OCC: http://sourceforge.net/projects/occ
Szakirodalom 2 Kereskedelmi lineáris optimalizációs szoftverek: • Kiegészítések más rendszerekhez: • Matlab: nincs shareware http://www.mathworks.com/products/optimization/ • Önálló rendszerek: • Gams: max. 100000 változó/feltétel, GUI, 300 változóra/feltételre korlátozott időkorlát nélküli shareware:http://www.gams.com/ • LINDO Inc. LINGO: max. 100000 változó/feltétel, GUI, 300 változóra/feltétel korlátozott időkorlát nélküli shareware: http://www.lindo.com/cgi/frameset.cgi?leftdwnld.html;opsyslgof.html • Cplex: http://www.ilog.com/products/cplex/ • Gauss: http://www.aptech.com/ • Excel add-in solverek: • LINDO Inc. What’s Best: max. 100000 változó, 300 változóra korlátozott időkorlát nélküli shareware: http://www.lindo.com/cgi/frameset.cgi?leftdwnld.html;opsyswbf.html • Frontline Inc. Solver: max. 8000 változó, 30 napos shareware: http://www.solver.com/exceluse.htm#Premium%20Solver%20Platform