Studentská soutěžní práce

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

1. července 2010

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

Obr. P1.1 Zadání úlohy v MS Excel

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

Přílohy. Příloha 1. Obr. P1.1 Zadání úlohy v MS Excel

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

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

Parametrické programování

1 Úvod do celočíselné lineární optimalizace

13. Lineární programování

4EK213 LINEÁRNÍ MODELY

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

4EK213 LINEÁRNÍ MODELY

12. Lineární programování

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

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

P ílohy. P íloha 1. ešení úlohy lineárního programování v MS Excel

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

Matematika I, část I Vzájemná poloha lineárních útvarů v E 3

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.

OSTRAVSKÁ UNIVERZITA PŘÍRODOVĚDECKÁ FAKULTA [ MOPV ] METODY OPERAČNÍHO VÝZKUMU

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

10 Přednáška ze

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.

Přijímací zkouška - matematika

Lineární programování

Nástroje pro analýzu dat

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

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Drsná matematika III 9. přednáška Rovinné grafy: Stromy, konvexní mnohoúhelníky v prostoru a Platónská tělesa

Zpracování chybějících dat a dat mimo rozsah

14. přednáška. Přímka

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

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

Programujeme v softwaru Statistica

0.1 Úvod do lineární algebry

OPTIMALIZACE A MULTIKRITERIÁLNÍ HODNOCENÍ FUNKČNÍ ZPŮSOBILOSTI POZEMNÍCH STAVEB D24FZS

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

Úvod do celočíselné optimalizace

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

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.

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2015

3. Optimalizace pomocí nástroje Řešitel

9.3. Úplná lineární rovnice s konstantními koeficienty

Metodické pokyny pro práci s modulem Řešitel v tabulkovém procesoru Excel

Matematika pro informatiky

xrays optimalizační nástroj

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


5 Informace o aspiračních úrovních kritérií

Výroková a predikátová logika - II

Úvod do modelování a simulace. Ing. Michal Dorda, Ph.D.

KAPITOLA 11 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

Soustavy linea rnı ch rovnic

1 Linearní prostory nad komplexními čísly

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

Soustavy. Terminologie. Dva pohledy na soustavu lin. rovnic. Definice: Necht A = (a i,j ) R m,n je matice, b R m,1 je jednosloupcová.

Výukový materiál zpracován v rámci projektu EU peníze školám

SÍŤOVÁ ANALÝZA. Kristýna Slabá, 1. července 2010

4EK311 Operační výzkum. 4. Distribuční úlohy LP část 1

Lingebraické kapitolky - Analytická geometrie

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

5.3. Implicitní funkce a její derivace

Matematický model. omezující podmínky. Tab. 2.1 Prvky ekonomického a matematického modelu

3 Lineární kombinace vektorů. Lineární závislost a nezávislost

Jan Pavĺık. FSI VUT v Brně

FORTANNS. 22. února 2010

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Radek Havlík [ÚLOHA 40 PODSESTAVY]

Shodná zobrazení. bodu B ležet na na zobrazené množině b. Proto otočíme kružnici b kolem

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2014

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

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

Celočíselné lineární programování(ilp)

GRAFICKÉ ŘEŠENÍ ROVNIC A JEJICH SOUSTAV

10. Vektorové podprostory

Úvod do teorie her

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Hromadná korespondence

2.2 Grafické ešení úloh LP

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

4EK311 Operační výzkum. 3. Optimalizační software a stabilita řešení úloh LP

GRAFY A GRAFOVÉ ALGORITMY

36 Elektronické knihy

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2016

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

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

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

Generování pseudonáhodných. Ing. Michal Dorda, Ph.D.

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Základy matematické analýzy

Nerovnice, grafy, monotonie a spojitost

4.1 Řešení základních typů diferenciálních rovnic 1.řádu

Úvod do databázových systémů

Drsná matematika III 9. přednáška Rovinné grafy: Stromy, konvexní mnohoúhelníky v prostoru a Platónská tělesa

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:

WDLS (BUILDINGDESIGN)

2.7.6 Rovnice vyšších řádů

Transkript:

Univerzita Tomáše Bati Fakulta aplikované informatiky Ústav automatizace a řídicí techniky Studentská soutěžní práce STOČ 2011 Mobilní aplikace celočíselného programování metodou větví a mezí 2011 Adam rhovják

Obsah 1. Úvod...3 3. Metoda větví a mezí...4 4. Algoritmus metody větví a mezí...7 5. Aplikace BranchAndBound.apk...8 6. Závěr... 10 7. Literatura... 10

1. Úvod Zvažme například výrobu televizních přijímačů. Řekněme, že model lineárního programování by nám mohl poskytnout výrobní plán 205,7 sad za týden. Za této situace by většina lidí neměla problém uvést, že produkce by měla být 205 sad za týden nebo dokonce říct: Zhruba 200 sad za týden. Na druhou stranu předpokládejme, že jsme si koupili skladiště, abychom takto dokončené zboží mohli uskladnit a dále, že velikost skladiště přímo odpovídá velikosti vyrobené sady. Pak na základě modelu, který jsme navrhli, bychom koupili 0,7 skladiště v jedné lokaci, 0,6 v další a tak dále. Pochopitelně, že množství zakoupených skladišť koresponduje s celočíselnými hodnotami a rádi bychom tedy, aby náš model odrážel tuto skutečnost. Takovéto omezení úplnosti se může zdát poměrně neškodné, ale ve skutečnosti má dalekosáhlé důsledky. Význam modelování s celočíselnými proměnnými se ukázal být přínosný nejen na oblast celočíselné produkce, ale spolu s nimi můžeme správně modelovat fixní náklady, nejrůznější logické požadavky a mnohé další aspekty. Účelem těchto statí je popsat techniku řešící výše zmíněný problém, stejně tak i její možná úskalí a ukázat ji na zajímavé celočíselné aplikaci. Nejdříve se však odrazme od základní terminologie.

3. Metoda větví a mezí Mluvíme-li o metodě větví a mezí, mluvíme o kombinatorické metodě, která hledá celočíselné řešení pomocí postupné optimalizace úloh lineárního programování, do kterých se navazují celočíselné podmínky na neceločíselné proměnné. Uvedený proces se znázorňuje pomocí stromového grafu skládajícího se z uzlů a větví. Při výkladu uvedené metody vyjdeme z úlohy max Mějme množinu Q, která obsahuje celočíselné řešení: T z c x, Ax b, x 0, x Ζ (1) Q x Ax b, x 0 x Ζ (2) Symbolem C(Q) vytyčme konvexní obal množiny. Množinu spojitým řešením označme Q ~ ~ Q x Ax b, x 0 (3) Množiny C(Q) a Q ~ vytvářejí neohraničené konvexní polyedrické množiny Protože metodu větví a mezí chápeme jako kombinatorickou metodu, uplatněme kritérium T T optimálnosti, c x* c x kde x * je řešením optimálním a x je libovolné přípustné řešení. Dále pak uvažujme horní, resp. dolní hranicí z i resp. z i, kde i je krok vzniklou uspořádáním hodnot cílové funkce z c T x. Horní hranice, která je stanovená vzhledem na množinu řešení Q ~, se vytváří z hodnot cílové funkce, dané řešením neceločíselné úlohy. zi z i * jestliže x * je optimálním řešením úlohy z jestliže Q ~ je prázdná množina z je neohraničená na Q ~ i (4) Dolní hranicí pak rozumíme hodnoty funkce dané existujícím maximálním celočíselným řešením. Tedy jinými slovy se jedná o nejlepší celočíselné řešení, které jsme doposud výpočtem dosáhli. Umožňuje nám posoudit další celočíselná řešení v procesu vyhledávání optima funkce, což můžeme zapsat takto:

zi z i * pro z i* > z i 1 z i z i1 pro z i * z i 1 (5) Předpokládejme řešení úlohy lineárního programování Mějme množinu přičemž platí Nechť x T x, x, 2, x 1 G g, g, 2, 1 n g n n G : 0 n 1 g je prvek množiny G, tak, že pro všechny pak -tou složku vektoru x uvažme x g G platí g g x g, x Ζ g G, kde hranatá závorka reprezentuje celočíselnou část. Pro každé neceločíselné řešení postačuje zavést dvě omezující podmínky a to Z čehož vyplývá, že prostor x x x 1 x x x x 1 můžeme zavrhnout, protože žádné z případných celočíselných řešení neleží v této oblasti, což lze vyjádřit následujícím způsobem. Obrázek 1: Tvorba omezení v metodě větví a mezí

Grafické znázornění na obrázku ukazuje tvorbu příslušných omezení v závislosti na úloze dvou proměnných, kde červená hranice vymezuje množinu přípustných řešení. Přidáním těchto omezení k řešením na množině získáme Q ~ obdržíme dvě nové úlohy, které můžeme definovat následujícím způsobem: T 1. max z x, ~ c Q x x x (6) T ~ 2. max z c x, Q x x x 1 (7) Jednotlivé kroky výpočtového mechanizmu pak znázorňuje stromový diagram p,b, kde p představuje vrcholy diagramu a b pak jednotlivé větve, spojující jednotlivé vrcholy. Strom vizualizuje dělení množin na podmnožiny. Vrchol znázorňuje připustné řešení, ze kterého se uskutečňuje větvení, kde přislušnou větví rozumíme omezení celočíselnosti. Uvažme následující diagram Obrázek 2: Větvení řešení Z obrázku je patrné, že ve vrcholu p 0 leží řešení spojité úlohy, což znamená, že minimálně jedna ze složek vektoru není x celočíselní. Do vrcholu obvykle zapisujeme horní hranici hodnoty cílové funkce z. A k jednotlivým větvím pak připisujeme příslušná omezení. Vrcholy, které jsou následovníky, nesou nové řešení úlohy při daném omezení. Rozšířením o omezení na celočíselnost je tedy nutné řešit úlohu znovu. Aplikováním algoritmu simplexové metody na úlohu s nově vzniklými omezeními získáme řešení, které bude v celočíselných proměnných. Pokud nejsou všechny proměnné celočíselné, je nutné

znovu zvolit neceločíselnou proměnnou, tu omezit na celočíselnou a přistoupit k dalšímu větvení. Na základě předchozího uveďme postup při řešení úlohy metodou větví a mezí. 4. Algoritmus metody větví a mezí rok 1. Nalezneme řešení spojité úlohy lineárního programování, které bude odpovídat vrcholu i 1stromového diagramu, jehož horní mezí bude řešení spojité úlohy a dolní mezí jeho zaokrouhlení na nejbližší nižší celá čísla. Jsou-li všechny proměnné celočíselné, výpočet končí a obdrželi jsme optimální řešení. V případě, že ne, vrchol 1 se stává větvícím. rok 2. Pro větvení vybereme proměnnou s největší desetinnou částí a podle ní vytvoříme dva nové podproblémy, které představují možné následovníky. rok 3. Řešíme 1. podproblém a) Pokud jsme získali řešení, které není přípustné, větev zavrhneme a přejdeme k 4. kroku b) Jestliže je řešení přípustné, můžou nastat dvě situace: 1. Všechny proměnné jsou v celočíselných hodnotách. Pokračujeme 4. krokem. 2. Alespoň jedna proměnná je neceločíselná. Tento vrchol pak přiřadíme do množiny adeptů rok 4. Řešíme 2. Podproblém se stejnými možnými případy jako ve předcházejícím podproblému. rok 5. a) Vrchol i má dva možné potomky v množině adeptů. Jednoho z nich zvolíme jako větvící vrchol. Přejdeme k 6. kroku. b) Vrchol i má jediného možného potomka v množině adeptů. c) Vrchol i nemá žádného potomka v množině adeptů 1. Jestliže je množina adeptů prázdná. Algoritmus končí. 2. Pokud ne, jeden z vrcholů adeptů určíme za nejbližší větvící vrchol. rok 6. Nejbližší větvící vrchol, pak vyloučíme z množiny adeptů a označíme ho jako vrchol i+1. Pokračujeme 2. rokem. Nejlepší celočíselné řešení je pak optimální.

5. Aplikace BranchAndBound.apk Účelem této kapitoly není podrobný popis jednotlivých částí zdrojového kódu, nýbrž ukázat praktické využití aplikace BranchAndBound.apk, která byla speciálně navržena pro maximalizační úlohy celočíselného programování. Mějme následující problém: Majitel obchodu se rozhodl rozšířit svůj sortiment nákupem nových lisů a soustruhů. Odhadl, že každý nový lis zvýší jeho zisk o 100$ denně a každý nový soustruh zvýší zisk o 100$ denně. Přičemž cena jednoho lisu činí 8000$ a cena jednoho soustruhu 4000$. aždý lis zábírá v obchodě plochu 15ft 2 a soustruh 30ft 2. Vlastník má k dispozici 40000$ a 200ft 2 místa v obchodě. Otázkou tedy je, kolik kusů každého stroje má vlastník koupit, aby maximalizoval svůj denní nárůst zisku. Matematická formulace Cílová funkce: z 100x 150x2 Omezující podmínky: 1 8000x 4000x2 15x 1 30x2 200 1 max 40000 Ten nám poskytl chybějící ingredienci pro uvedení zmíněné mobilní aplikace, ve které si v několika krocích daný krocích daný problém vyřešíme. Po spuštění aplikace se objeví standardní, grafické uživatelské rozhraní, jež v sobě nese základní prvky nutné pro komunikaci s problémem. Obrázek 3: Uživatelské rozhraní aplikace

Užitím posuvníku si nejdříve nastavíme hodnotu NRC, představující počet omezení dané úlohy. Podobně budeme postupovat i při nastavování hodnoty NV, jež nese počet proměnných. Chceme-li přenastavovat hodnoty NRC a NV pomocí posuvníku, je nejprve nutné zvolit v menu napravo, kterou z nich chceme ovlivňovat, což je patrné z Obrázku 4 Obrázek 4: Vkládání informací o počtu omezujících podmínek a proměnných V této chvíli můžeme začít zadávat koeficienty jednotlivých omezení včetně hodnot koeficientů účelové funkce. Nutno dodat, že po přidání každé podmínky je nutné koeficienty uložit prostředníctvím tlačítka done. A konečně, když jsme všechny vstupní informace o úloze předali aplikaci, stačí kliknout na tlačítko solve, čímž vyvoláme dialog, ve kterém vidíme optimální celočíselné řešení. Uvedený výklad pak znazorňuje Obrázek 5. Obrázek 5: Vkládání koeficientů s následným řešením problému

6. Závěr Cílem této práce je hlouběji popsat techniku, jež má rozsáhlé důsledky pro úlohy z ekonomické praxe a poukázat na problém, že řešení úlohy celočíselného programování jako úlohy neceločíselného lineárního programování obecné není možné. Dále pak, že řešení nelze vidět ani v pouhém zaokrouhlování, jelikož bychom nemuseli získat přípustné nebo optimální řešení a proto je nutné takovýto problém řešit některou z metod celočíselného programování. A právě o jedné z metod tato práce podrobné pojednává. Vědomí, že i malý problém se může užitím zmíněné metody stát velmi obtížným a těžko schůdným mě vedl k vytvoření aplikace, prostřednictvím které můžete problém vyřešit z kapsy. 7. Literatura [1] LAŠCIA, Adam, et al. Optimálne Programovanie. Bratislava : SNTL, 1983. 565 s. [2] ŠŮCHA, Přemysl. Celočíselné lineární programování.11.3.2004 [cit. 2011-01-24]. Dostupné z WWW:[http://dce.felk.cvut.cz/sucha/articles/ilp.pdf].