Modelovanie a optimalizácia Ľudmila Jánošíková Katedra dopravných sietí Fakulta riadenia a informatiky Žilinská univerzita, Žilina Ludmila.Janosikova@fri.uniza.sk 041/5134 220 Modelovanie a optimalizácia 1/ 1
Cieľ predmetu Modelovanie a optimalizácia Naučíte sa vytvárať matematické modely procesov a úloh, ktoré súvisia s riadením rozsiahlych výrobných, dopravných alebo informačných systémov. Oboznámite sa s princípmi exaktných metód riešenia úloh. Naučíte sa používať komerčný softvér na riešenie úloh. Modelovanie a optimalizácia 1/ 2
Technológ, ekonóm Realita (Výrobný, dopravný, informačný alebo iný proces, ktorý je potrebné riadiť) Rozpoznanie vzťahov a zákonitostí procesu Overenie a použitie výsledku riešenia Zostavenie matematického modelu Riešenie úlohy popísanej modelom Operačná analýza Nájdenie metódy riešenia mat. modelu (vývoj alebo voľba algoritmu) Modelovanie a optimalizácia 1/ 3
Operačná analýza (Operations research) odvetvie aplikovanej matematiky zaoberá sa využitím matematických nástrojov na rozhodovanie v zložitých problémoch reálneho sveta. Skúma: modely úloh metódy riešenia Nástroje: matematické programovanie, teória grafov, pravdepodobnosť, štatistika, teória hromadnej obsluhy, teória hier, informatika. Väčšinou ide o optimalizačné úlohy z množiny prípustných riešení treba vybrať také riešenie, ktoré je z určitého hľadiska najlepšie. Ak je modelom úlohy matematický zápis pomocou premenných, funkcií, rovníc a nerovníc, hovoríme o úlohe matematického programovania. Matematické programovanie vzniklo na základe lineárneho programovania. George Dantzig: Programming in a Linear Structure, 1948 program (zapísaný v tvare lineárnych rovníc a nerovníc) označuje plán činností. operačná analýza matematické programovanie lineárne programovanie Modelovanie a optimalizácia 1/ 4
Ukážka zostavenia modelu Zadanie: Podnik môže daný produkt predať na trhu T1 so ziskom rovným druhej odmocnine dodaného množstva produktu a na trhu T2 so ziskom 0.1 za každú dodanú jednotku produktu. Pre trh T1 môže podnik získať produkt zo zdroja Z1 alebo Z2, pre trh T2 iba zo zdroja Z2, pričom maximálna kapacita zdroja Z1 je 30 a zdroja Z2 je 50 jednotiek produktu. Rozhodnite, koľko jednotiek produktu predá podnik na jednotlivých trhoch, ak chce dosiahnuť maximálny zisk a na každom trhu môže predať maximálne 70 jednotiek. Riešenie: a) voľba premenných (modelujú rozhodnutie): x 1 množstvo produktu predané na trhu T1 x 2 množstvo produktu predané na trhu T2 b) formulácia účelovej funkcie (vyjadruje kritérium pre rozhodnutie): zisk = x 1 + 0.1 x 2 c) formulácia podmienok x 1 70 Z1 y 2 Z2 x 2 70 x 1 = y 1 + y 2 y 1 x 2 y 1 30 x 1 x 2 + y 2 50 x 1, x 2, y 1, y 2 0 T1 T2 Modelovanie a optimalizácia 1/ 5
Postup tvorby analytických modelov 1. Vykonáme analýzu kritéria, tj. veličiny, ktorou je meraná kvalita riešenia. Kritériom môže byť: príjmy náklady zisk (= príjmy náklady) spotreba materiálu výkon (napr. prepravené množstvo * vzdialenosť) dĺžka trás 2. Urobíme rozbor rozhodnutí, od ktorých kritérium závisí (napr. zisk závisí od počtu predaných výrobkov) a zvolíme vhodné premenné, ktoré budú modelovať dané rozhodnutia. 3. Zostavíme účelovú funkciu ako model daného kritéria. 4. Postupne analyzujeme jednotlivé obmedzenia a vyjadríme ich pomocou rovníc a nerovníc. Modelovanie a optimalizácia 1/ 6
Ktoré prostriedky môžu byť v obmedzenom množstve: finančné, napr. veľkosť úveru ľudské zdroje kapacity výrobných zariadení kapacity skladov množstvo materiálu alebo polotovaru počet alebo kapacita dopravných prostriedkov Ak je potrebné, zavedieme ďalšie premenné a doplníme vzťahy medzi premennými. Obmedzenia a vzťahy medzi premennými sa nazývajú štrukturálnymi podmienkami. Definičný obor premenných vyjadrujú obligatórne podmienky. 5. Vykonáme rozbor jednotlivých podmienok a premenných zameraný na to, či niektoré premenné alebo podmienky nie je možné vyjadriť pomocou ostatných a pokúsime sa model zjednodušiť. Modelovanie a optimalizácia 1/ 7
Výsledný (zjednodušený) model maximalizujte f = y 1 + y 2 + 0.1 x účelová funkcia 2 za podmienok y 1 + y 2 70 štrukturálne y 1 30 podmienky y 2 + x 2 50 => x 2 70 - vypadne x 2, y 1, y 2 0 obligatórne podmienky Modelovanie a optimalizácia 1/ 8
Klasifikácia úloh matematického programovania Úlohy matem. programovania Spojité Diskrétne Lineárne Nelineárne Kvadratické Separované Všeobecné Modelovanie a optimalizácia 1/ 9
Spojité úlohy všetky premenné sú reálne nezáporné. Diskrétne úlohy v modeli sa vyskytujú celočíselné alebo bivalentné premenné. Lineárne úlohy všetky podmienky a účelová funkcia sú lineárne výrazy. Za lineárny výraz označujeme výraz: c 1 x 1 +c 2 x 2 +...+c n x n, kde c j sú konštanty a x j sú premenné. Nelineárne úlohy v modeli sa vyskytuje nelineárny výraz. (Niekedy je vhodné nelineárny výraz linearizovať aj za cenu straty presnosti.) Kvadratické úlohy podmienky sú lineárne, účelová funkcia je súčtom kvadratickej a lineárnej formy. Separované úlohy v účelovej funkcii aj v podmienkach sa môže vyskytovať súčet nelineárnych funkcií jednej premennej v tvare: f 1 (x 1 ) + f 2 (x 2 ) +...+ f n (x n ) Modelovanie a optimalizácia 1/ 10
Usporiadanie úloh podľa časovej náročnosti riešenia (od najjednoduchších): Úlohy spojitého lineárneho programovania existujú efektívne metódy, ktorými možno nájsť presné (exaktné) riešenie úlohy s desiatkami tisíc premenných. Úlohy celočíselného lineárneho programovania väčšinou sú NP-ťažké. Úlohy spojitého kvadratického programovania v prípade konvexnosti účelovej funkcie možno riešiť exaktne pre desiatky premenných. Úlohy spojitého separovaného programovania, všeobecné nelineárne spojité úlohy a nelineárne diskrétne úlohy vieme riešiť iba približne (približné = suboptimálne riešenie). Modelovanie a optimalizácia 1/ 11
Spracovanie úlohy lineárneho programovania v profesionálnom softvérovom produkte Modeller Vstup modelu Solver Riešenie modelu Výstup výsledkov Modeller prekladá zápis modelu v modelujúcom jazyku do tvaru vhodného pre riešiaci softvér (solver) kontroluje syntax ak je model zapísaný v symbolickom tvare, súčasťou modelu musí byť zdroj vstupných dát (napr. textový súbor s koeficientmi) modeller načíta dáta a kontroluje ich rozsah Solver načíta konkrétny model pomocou jedného alebo viacerých algoritmov ho vyrieši Modelovanie a optimalizácia 1/ 12
poskytne výsledky (hodnoty premenných a účelovej funkcie) Interface LP sofvéru na iný softvér Väčšina LP programov beží ako samostatná aplikácia, ale sú dostupné aj v podobe knižnice funkcií, prípadne knižnice tried pre objektovo orientované programy. Väčšina LP programov podporuje bežné tabuľkové a databázové formáty súborov. Budeme používať programový produkt Xpress-MP Suite anglická firma Dash Optimization, Inc. Balík zahŕňa: Xpress-Mosel modeller; obsahuje: prekladač modelujúceho jazyka Mosel, I/O moduly pre výpis výsledkov a prístup k súborom, otvorený interface pre užívateľom napísané funkcie. Xpress-Optimizer solver pre spojité a celočíselné lineárne a kvadratické problémy Xpress-IVE vizuálne vývojové prostredie pod Windows. Zahŕňa editor programu v jazyku Mosel, prekladač, nástroje pre ladenie programu a vizualizáciu výsledkov. Ďalšie produkty: LINGO od firmy LINDO Systems, Inc. www.lindo.com CPLEX od firmy ILOG www.ilog.com Modelovanie a optimalizácia 1/ 13
GLPK (GNU Linear Programming Kit) http://gnuwin32.sourceforge.net/packages/glpk.htm free software GNU MathProg modeling language Modelovanie a optimalizácia 1/ 14
Zápis modelu v jazyku Mosel 1. Názov modelu 2. Špecifikácia solvera 3. Deklarácia a) indexov b) koeficientov modelu c) premenných 4. Inicializácia koeficientov 5. Zápis účelovej funkcie 6. Zápis štrukturálnych podmienok 7. Zápis obligatórnych podmienok (potrebné len pri celočíselných úlohách) 8. Príkaz optimalizácie 9. Určenie formy výstupu Modelovanie a optimalizácia 1/ 15