12. Lineární programování

Podobné dokumenty
fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

4EK213 LINEÁRNÍ MODELY

Parametrické programování

1. července 2010

Ekonomická formulace. Matematický model

Obecná úloha lineárního programování. Úloha LP a konvexní množiny Grafická metoda. Jiří Neubauer. Katedra ekonometrie FEM UO Brno

Lineární programování

5. Lokální, vázané a globální extrémy

4EK213 LINEÁRNÍ MODELY

4EK213 Lineární modely. 12. Dopravní problém výchozí řešení

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

1 Polynomiální interpolace

Jiří Neubauer. Katedra ekonometrie FEM UO Brno

Metody lineární optimalizace Simplexová metoda. Distribuční úlohy

Teorie her a ekonomické rozhodování. 2. Maticové hry

1 Extrémy funkcí - slovní úlohy

Obecná úloha lineárního programování

Operační výzkum. Vícekriteriální programování. Lexikografická metoda. Metoda agregace účelových funkcí. Cílové programování.

3. ANTAGONISTICKÉ HRY

Průvodce studiem. do bodu B se snažíme najít nejkratší cestu. Ve firmách je snaha minimalizovat

ANTAGONISTICKE HRY 172

FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

4EK311 Operační výzkum. 2. Lineární programování

Cvičení z Numerických metod I - 12.týden

4EK213 Lineární modely. 4. Simplexová metoda - závěr

Příklady modelů lineárního programování

Nerovnice a nerovnice v součinovém nebo v podílovém tvaru

Řešení 1b Máme najít body, v nichž má funkce (, ) vázané extrémy, případně vázané lokální extrémy s podmínkou (, )=0, je-li: (, )= +,

4EK213 Lineární modely. 10. Celočíselné programování

DIPLOMOVÁ PRÁCE. Petra Váchová Lineární programování ve výuce na střední

Lineární funkce, rovnice a nerovnice 4 lineární nerovnice

Extrémy funkce dvou proměnných

4EK201 Matematické modelování. 2. Lineární programování

10. cvičení z PST. 5. prosince T = (n 1) S2 X. (n 1) s2 x σ 2 q χ 2 (n 1) (1 α 2 ). q χ 2 (n 1) 2. 2 x. (n 1) s. x = 1 6. x i = 457.

Operační výzkum. Přiřazovací problém.

2 Spojité modely rozhodování

Úloha - rozpoznávání číslic

Funkce a lineární funkce pro studijní obory

6 Ordinální informace o kritériích

13. Lineární programování

Funkce pro studijní obory

7. přednáška Systémová analýza a modelování. Přiřazovací problém

Matematika pro informatiky

Problém lineární komplementarity a kvadratické programování

Numerické metody 6. května FJFI ČVUT v Praze

Kvadratickou funkcí se nazývá každá funkce, která je daná rovnicí. Definičním oborem kvadratické funkce je množina reálných čísel.

1 Linearní prostory nad komplexními čísly

Příklady pro předmět Aplikovaná matematika (AMA) část 1

7. SOUSTAVY LINEÁRNÍCH A KVADRATICKÝCH ROVNIC

Definice globální minimum (absolutní minimum) v bodě A D f, jestliže X D f

Simplexové tabulky z minule. (KMI ZF JU) Lineární programování EMM a OA O6 1 / 25

1. DIFERENCIÁLNÍ POČET FUNKCE DVOU PROMĚNNÝCH

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

IB112 Základy matematiky

Lineární funkce, rovnice a nerovnice

M - Příprava na 1. zápočtový test - třída 3SA

2. Určete jádro KerL zobrazení L, tj. nalezněte alespoň jednu jeho bázi a určete jeho dimenzi.

M - Kvadratické rovnice a kvadratické nerovnice

M - Příprava na pololetní písemku č. 1

9. přednáška 26. listopadu f(a)h < 0 a pro h (0, δ) máme f(a 1 + h, a 2,..., a m ) f(a) > 1 2 x 1

10. cvičení - LS 2017

Hledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012

Matice přechodu. Pozorování 2. Základní úkol: Určete matici přechodu od báze M k bázi N. Každou bázi napíšeme do sloupců matice, např.

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

1 Duální simplexová metoda

Operační výzkum. Teorie her cv. Hra v normálním tvaru. Optimální strategie. Maticové hry.

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

4EK212 Kvantitativní management. 2. Lineární programování

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů

64. ročník matematické olympiády Řešení úloh krajského kola kategorie A

4EK213 LINEÁRNÍ MODELY

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Funkce v ıce promˇ enn ych Extr emy Pˇredn aˇska p at a 12.bˇrezna 2018

Nerovnice, grafy, monotonie a spojitost

pro řešení soustav lineárních rovnic. Gaussova eliminační metoda pro řešení soustavy lineárních rovnic sestává ze dvou kroků:

Výroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0).

Vícekriteriální programování příklad

VZOROVÝ TEST PRO 1. ROČNÍK (1. A, 3. C)

1 Determinanty a inverzní matice

Numerická matematika 1

Přednáška 4: Soustavy lineárních rovnic

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

Matematika I, část I. Rovnici (1) nazýváme vektorovou rovnicí roviny ABC. Rovina ABC prochází bodem A a říkáme, že má zaměření u, v. X=A+r.u+s.

63. ročník matematické olympiády Řešení úloh krajského kola kategorie B. 1. Odečtením druhé rovnice od první a třetí od druhé dostaneme dvě rovnice

12. cvičení - LS 2017

EXTRÉMY FUNKCÍ VÍCE PROMĚNNÝCH

Budeme hledat řešení y(x) okrajové úlohy pro diferenciální rovnici druhého řádu v samoadjungovaném tvaru na intervalu a, b : 2 ) y i p i+ 1


Hledání extrémů funkcí

Úlohy krajského kola kategorie A

61. ročník matematické olympiády III. kolo kategorie A. Hradec Králové, března 2012

Soustavy lineárních rovnic

7 Konvexní množiny. min c T x. při splnění tzv. podmínek přípustnosti, tj. x = vyhovuje podmínkám: A x = b a x i 0 pro každé i n.

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Úvod do řešení lineárních rovnic a jejich soustav

(Cramerovo pravidlo, determinanty, inverzní matice)

Matematika I 2a Konečná pravděpodobnost

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Transkript:

. Lineární programování. Lineární programování Úloha lineárního programování (lineární optimalizace) je jedním ze základních problémů teorie optimalizace. Našim cílem je nalézt maximum (resp. minimum) jisté lineární funkce. Tato funkce se nazývá účelová funkce. Maximum hledáme na podmnožině R n, která je řešením soustavy lineárních (rovnic) a nerovnic. Této množině se říká množina (přípustných) řešení dané úlohy. Přípustné řešení se nazývá optimální, jestliže hodnota účelové funkce v tomto bodě nabývá svého maxima (resp. minima). Obecně nastane právě jedna z možností:. Zadaná úloha nemá přípustné řešení. To znamená, že nejsme schopni splnit všechny podmínky najednou.. Přípustné řešení existuje, ale zadaná úloha nemá optimální řešení.. Zadaná úloha má optimální řešení. Poznámka. Každou minimalizační úlohu můžeme snadno převést na maximalizační, nebot hledat minimum funkce f je to samé jako hledat maximum funkce f. Od této chvíle se tedy budeme zabývat pouze maximalizačními úlohami. Na konkrétním příkladě si ukažme, jak se úloha lineárního programování řeší. Příklad.. Pan Bůček se vrhl na výrobu müsli. Chce míchat dvě verze v kilových baleních, přičemž balení první "výběrové"směsi bude obsahovat g sušeného ovoce a 6 g ovesných vloček. Jedno balení druhé "základní"směsi bude obsahovat g sušeného ovoce a g ovesných vloček. Pan Bůček má pro první várku výroby nachystáno,5 kg ovesných vloček a,5 kg sušeného ovoce. Rád by maximalizoval svůj zisk, přičemž ví, že zisk z jednoho balení výběrového müsli má 7 Kč a zisk z jednoho balení základní směsi má 5 Kč... Formulace úlohy lineárního programování Prvním úkolem je formulovat zadaný problém jako úlohu lineárního programování. To znamená, že potřebujeme určit účelovou funkci a rohodnout, zda ji budeme maximalizovat nebo minimalizovat. Dále musíme určit množinu, na které budeme účelovou funkci maximalizovat. To znamená pomocí nerovností popsat všechna omezení. Označme x počet balení výběrové směsi a y počet balení základní směsi. Účelovou funkcí je zisk, tj. f(x, y) = 7x + 5y. Funkci f chceme maximalizovat na množině, která je popsána nerovnostmi x + y 5, 6x + y 5, x, y. Poznámka. Ačkoliv nejsou poslední dvě nerovnosti explicitně uvedeny v zadání úlohy, nesmíme na ně zapomenout. Vzhledem k tomu, že x a y jsou počty balení, které bude pan Bůček vyrábět, nedávají záporné hodnoty žádný smysl.

. Lineární programování.. Geometrické řešení úlohy V případě, že máme pouze dvě proměnné (což je náš případ), můžeme úlohu snadno vyřešit geometricky. V případě, že máme více proměnných, je výhodnější použít tzv. simplexovou metodu, kterou si popíšeme vzápětí. Množina všech přípustných řešení odpovídá vyšrafované oblasti na obrázku. 8 6 Účelová funkce je lineární, a proto svého maxima nabývá v některém z vrcholů (popř. na hraně). Nejjednodušší je spočítat jednotlivé vrcholy. Tři z nich známe, zbývá spočítat průsečík přímek x + y = 5 a x + y = 75. Odečtením dvojnásobku druhé rovnice od první dostaneme 5y = 5 5 = 55, tedy y =. Odtud pak odvodíme, že x =. Nyní spočítejme hodnoty účelové funkce v jednotlivých bodech: f(, ) =, f (, 5) = 7 + 5 5 = 5, ( ) 5 f, = 7 5 675 + 5 = = 875, f(, ) = 7 + 5 = > 875 > 5. Účelová funkce f nabývá maxima v bodě [x, y] = [, ]. Optimální hodnotu účelové funkce je... Simplexová metoda Simplexová metoda je algoritmus na řešení úlohy lineárního programování. Tato metoda má nálsedující geometrickou interpretaci: Začneme v nějakém vrcholu množiny přípustných řešení, následně postupujeme po hranách z vrcholu do vrcholu a zlepšujeme hodnotu účelové funkce. Pro jednoduchost budeme předpokládat, že naše úloha má vždy nulové řešení.

. Lineární programování.. Inicializace algoritmu Prvním krokem je sestavení simplexové tabulky. K tomu je zapotřebí převést naši úlohu na ekvivalentní pomocnou úlohu. Uvažme nerovnosti, které zadávají množinu přípustných řešení: x + y 5, x + y 75, x, y. Simplexová metoda automaticky předpokládá, že všechny proměnné jsou nezáporné. Takže poslední dvě nerovnosti x, y nemusíme uvažovat. Nyní ze všech zbývajících nerovností uděláme jednoduchým trikem rovnosti - zavedeme pomocné proměnné. Totiž, je-li znamená to, že existuje u tak, že Ze stejného důvodu existuje v tak, že Když budeme mít opačnou nerovnost, např. x + y 5, x + y + u = 5. x + y + v = 75. 5x y 7, tak ji nejprve vynásobíme. Tím se nerovnost otočí a jsme tedy v situaci, kterou už umíme řešit. 5x + y 7 Původní úlohu jsme tedy převedli na úlohu v následujícím tvaru: Maximalizujeme funkci f(x, y, u, v) = 7x + 5y za následujících podmínek: Simplexová tabulka je následující schéma x + y + u = 5, x + y + v = 75, x, y, u, v. 7 5 5 75

. Lineární programování V záhlaví tabulky je záporně vzatá účelová funkce, v tuto chvíli se na účelovou funkci díváme jako na funkci proměnných x, y, u, v. Proměnné u, v se však ve funkci f nevyskytují, a proto f = f(x, y, u, v) = 7x + 5y + u + v. V pravém horním rohu je hodnota účelové funkce v počátečním bodu [,, 5, 75]. Ten odpovídá bodu [, ] v původní úloze. Simplexová tabulka se nazývá přípustná, jestliže v pravém sloupci jsou nezáporná čísla. To odpovídá tomu, že bod, ve kterém se aktuálně nacházíme, je přípustným řešením. Jak už bylo na začátku uvedeno, budeme vždy začínat s přípustnou simplexovou tabulkou. Ještě poznamenejme, že pokud začneme s přípustnou tabulkou, v každém kroku simplexové metody získáme zase přípustnou tabulku... Průběh algoritmu Abychom si ušetřili psaní mnoha nul, budeme uvažovat desetinu účelové funkce, tj. funkci 7x + 5y. 7 5 5 75 Zvolíme sloupec nejnižšího indexu (nejvíc vlevo), jehož hodnota v záhlaví tabulky je záporná, v našem případě je to první sloupec. Kdyby takový index neexistoval, tj. v záhlaví bychom měli pouze nezáporná čísla, pak jsme hotovi, nebot bod, ve kterém se nacházíme, je optimálním řešením. V tomto sloupci zvolíme tzv. pivot. Pivotem může být pouze kladný prvek a takový, že podíl b a, kde b je číslo na pravé straně, je nejmenší možný. Pokud je takovýchto prvků více, vybereme libovolný z nich. Pokud v tomto sloupci neexistuje žádný kladný prvek, znamená to, že úloha je neomezená a hodnota účelové funkce může nabývat libovolně velkých hodnot (jinými slovy optimální řešení neexistuje). V prvním sloupci je pivotem číslo, nebot 5 < 75. 7 5 5 75 Tabulku následně doeliminujeme řádkovými úpravami podle pivotu. 7 665 5 55

. Lineární programování Všimněme si, že volba pivotu (prvku, podle kterého eliminujeme) nám zaručí, že opět získáme přípustnou tabulku, a tedy neopustíme množinu přípustných řešení. Navíc máme zaručeno, že hodnota účelové funkce se nezhorší. V tomto kroku se nacházíme v bodě [ 5,,, 55 ], který odpovídá bodu [ 5, ]. Vidíme, že tabulka ještě není optimální, nebot v záhlaví máme stále záporná čísla. Pokračujeme proto v úpravách. Ve druhém sloupci je pivotem číslo, nebot = < 5 = 5. 7 665 5 55 Následně tabulku doeliminujeme podle tohoto pivotu. V této chvíli máme již optimální tabulku (v záhlaví nejsou záporná čísla). Optimálním řešením pomocné úlohy je bod [,,, ], tedy optimálním řešením původní úlohy je bod [x, y] = [, ]. Optimální hodnota účelové funkce je (nesmíme zapomenout na to, že jsme pracovali s desetinou účelové funkce), což je ve shodě s předchozím geometrickým řešením... Další řešený příklad Příklad.. Firma plánuje reklamní kampaň, ve které chce použít inzerci v rádiu, televizi a novinách. Cena jednoho uvedení reklamy v rádiu je Kč, cena jednoho uvedení reklamy v televizi je Kč a jedno uvedení reklamy (ve formě inzerátu) v novinách stojí Kč. Firma má pro reklamní kampaň připraveno 6 Kč a tuto částku nelze překročit. Vzhledem k cílové skupině zákazníků chce firma omezit počet uvedení reklamy v televizi na nejvýše pět. Dále firma chce, aby v televizi byla nejvýše čtvrtina z celkového počtu uvedení reklamy ve všech médiích. Počet lidí zasažených reklamou je následující: jedno uvedení reklamy v rádiu slyší lidí, jedno uvedení reklamy v televizi vidí 6 lidí a jeden inzerát v novinách přečte lidí. Reklamy jsou ve všech médiích postupně uváděny v různých krajích, takže firma pro jednoduchost předpokládá, že nikdo není reklamou zasažený vícekrát. Při kolika uvedeních reklamy v rádiu, televizi a novinách firma maximalizuje počet lidí zasažených reklamou (při splnění popsaných omezení)? A jaký tento počet bude? Zformulujte problém jako úlohu lineárního programování, a pak tuto úlohu vyřešte. Označme x počet uvedení reklamy v rádiu, x počet uvedení reklamy v televizi a x počet uvedení reklamy v novinách. Účelová funkce tedy je (x +6x +x ) a omezení jsou popsána nerovnicemi x + x + x 6, x 5 a x (x + x + x ), což je ekvivalentní s nerovnicí x + x x, a také x, x a x. Jedná se tedy o úlohu lineární 5

. Lineární programování optimalizace maximalizovat funkci (x + 6x + x ) při výše uvedených omezeních. CHYBNÁ ÚVAHA: Cena reklamy za jednoho člověka je Kč v rádiu,, 5 Kč v televizi a Kč v novinách, tedy televize je nejefektivnější, a proto položíme x = 5. Dosazením této hodnoty dostaneme následující nerovnosti: x + x, x + x 5. Tuto úlohu můžeme snadno vyřešit geometricky. Dopočítáním dostaneme výsledek x =, x = 5 a x = 6. Hodnota účelové funkce v tomto bodě je ( + + 8) = 57. SPRÁVNÉ ŘEŠENÍ: Úlohu řešíme simplexovou metodou pomocí zápisu simplexovou tabulkou. Abychom se co nejvíce vyhnuli počítání s velkými čísly, budeme uvažovat desetitisícinu účelové funkce, tj. funkci x + 6x + x. Sestavíme počáteční tabulku a eliminujeme dle algoritmu (pivot, podle kterého se eliminuje, je v tabulce podtržen): 6 6 5 6 6 5 6 6 5 5 57 5 6 6 6 6 5 6 6 Z tabulky vyčteme optimální hodnotu neznámých (pravá strana řádku, ve kterém se nachází pivot příslušného sloupce): x =, x = a x =. Firma by si tedy měla objednat uvedení reklamy v televizi a uvedení reklamy v novinách. Počet lidí zasažených reklamou pak bude 6. Problém předchozí úvahy spočívá v tom, že tato úvaha nebere v potaz poslední nerovnost x + x x. 6