ČVUT FEL X36PAA - Problémy a algoritmy. 5. úloha - Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu



Podobné dokumenty
ČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu

2. úkol MI-PAA. Jan Jůna (junajan)

Řešení problému vážené splnitelnosti booleovské formule pokročilou iterativní metodou

MI-PAA. úkol č.3. Řešení problému batohu dynamickým programováním, metodou větví a hranic a aproximativním algoritmem

Experimentální hodnocení kvality algoritmů

12. Globální metody MI-PAA

8. Simulované ochlazování Simulated Annealing, SA

Řešení problému batohu dynamickým programováním, metodou větví a hranic a aproximativním algoritmem

OPTIMALIZAČNÍ ÚLOHY. Modelový příklad problém obchodního cestujícího:

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Fz =a z + a z +...+a z +a z =

Aproximativní algoritmy UIN009 Efektivní algoritmy 1

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Časová a prostorová složitost algoritmů

Algoritmy I, složitost

REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Přednáška 3. Rekurze 1

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

10. Složitost a výkon

Dynamické programování. Optimální binární vyhledávací strom

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: Předmět: ZAP

Paralelní výpočty ve finančnictví

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

A4B33ALG 2010/05 ALG 07. Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated. Quicksort.

Profilová část maturitní zkoušky 2013/2014

Programování. s omezujícími podmínkami. SAT a lokáln. Algoritmus GSAT. Algoritmus GSAT. Roman Barták

Digitální učební materiál

Úvod do programování - Java. Cvičení č.4

Vyšetření průběhu funkce zadané předpisem

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Rekurzivní algoritmy

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Paměti cache. Cache může být realizována softwarově nebo hardwarově.

Profilová část maturitní zkoušky 2017/2018

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Různé algoritmy mají různou složitost

Střední odborná škola a Střední odborné učiliště, Hořovice

Markov Chain Monte Carlo. Jan Kracík.

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

Kombinatorika, výpočty

Metodický pokyn 2 o postupu prací v etapě SBĚR 2 pro rozvrh

DYNAMICKÉ PROGRAMOVÁNÍ A PROBLÉM BATOHU

11. Tabu prohledávání

Příručka k měsíčním zprávám ING fondů

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

7. Heuristické metody

Úvod do stochastických optimalizačních metod (metaheuristik) Moderní metody optimalizace 1

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

PROHLEDÁVÁNÍ GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Autorizovaný software DRUM LK 3D SOFTWARE PRO VYHODNOCENÍ MĚŘENÍ ODCHYLEK HÁZIVOSTI BUBNOVÝCH ROTAČNÍCH SOUČÁSTÍ

VISUAL BASIC. Přehled témat

Třídy složitosti P a NP, NP-úplnost

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Úvod do programovacích jazyků (Java)

Problém batohu. Zdeněk Hanzálek ČVUT FEL Katedra řídicí techniky. 5. dubna 2011

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Třídění dat. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_26 04

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.

FORMÁTOVÁNÍ 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

VYŠŠÍ ODBORNÁ ŠKOLA a STŘEDNÍ PRŮMYSLOVÁ ŠKOLA Mariánská 1100, Varnsdorf PROGRAMOVÁNÍ FUNKCE, REKURZE, CYKLY

Využití tabulkového procesoru MS Excel

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

Histogram. 11. února Zadání

Semestrální práce z předmětu Matematika 6F

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Dynamické programování

Ondřej Bothe, Richard Dobiš

Rozklad na prvočinitele. 3. prosince 2010

KTE / ZPE Informační technologie

Softwarový projekt Vyhodnocovač a zobrazovač meteorologických dat

Více o konstruktorech a destruktorech

CADKON ARCHITECTURE

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

Algoritmizace řazení Bubble Sort

VYÚČTOVÁNÍ DANĚ ZE ZÁVISLÉ ČINNOSTI, SRÁŽKOVÉ DAŃE

Hledáme efektivní řešení úloh na grafu

vzorek vzorek

2. lekce Algoritmus, cyklus Miroslav Jílek

Příklady ke cvičením. Modelování produkčních a logistických systémů

Kombinatorická minimalizace

OPTIMALIZACE PROVOZU OTOPNÉ SOUSTAVY BUDOVY PRO VZDĚLÁVÁNÍ PO JEJÍ REKONSTRUKCI

ROZPOZNÁVÁNÍ AKUSTICKÉHO SIGNÁLU ŘEČI S PODPOROU VIZUÁLNÍ INFORMACE

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

Časová složitost / Time complexity

Základy programování (IZP)

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Plánování projektu. 3. dubna Úvod. 2 Reprezentace projektu. 3 Neomezené zdroje. 4 Variabilní doba trvání. 5 Přidání pracovní síly

Sociodemografická analýza SO ORP Mohelnice

Ctislav Fiala: Optimalizace a multikriteriální hodnocení funkční způsobilosti pozemních staveb

Hanojská věž. T2: prohledávání stavového prostoru. zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3]

Transkript:

ČVUT FEL X36PAA - Problémy a algoritmy 5. úloha - Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu Jméno: Marek Handl Datum: 4. 2. 2009 Cvičení: Pondělí 9:00 Zadání Zvolte si heuristiku, kterou budete řešit problém vážené splnitelnosti booleovské formule (simulované ochlazování, simulovaná evoluce, tabu prohledávání) Tuto heuristiku použijte pro řešení problému batohu. Můžete použít dostupné instance problému (zde), anebo si vygenerujte své instance pomocí generátoru. Používejte instance s větším počtem věcí (>30). Hlavním cílem domácí práce je seznámit se s danou heuristikou, zejména se způsobem, jakým se nastavují její parametry (rozvrh ochlazování, selekční tlak, tabu lhůta...) a modifikace (zjištění počáteční teploty, mechanismus slekce, tabu atributy...). Není-li Vám cokoli jasné, prosíme ptejte se na cvičeních. Problém batohu není příliš obtížný, většinou budete mít k dispozici globální maxima (exaktní řešení) z předchozích prací, například z dynamického programování. Simulované ochlazování Použitého algoritmus lze popsat následujícím pseudokódem. temperature = initialtempfactor * bestprice / log(2); // set initial temperature to a factor of best valued item that fits in the sack state = putfirstpossibleiteminsack(); while (temperature > mintemperature) { // i.e. while not frozen steps = 0; while (steps < stepscount*count) { // i.e. while not equilibrium ++steps; state = changestate(state); if (state.getprice() > best.getprice()) { // find a new state or keep the same best = state; temperature *= cooldownfactor; // i.e. cool down statestested += steps; changestate(state) { newstate = getrandomneighbor(state); if (newstate.getprice() > state.getprice()) { return newstate; delta = state.getprice() newstate.getprice(); if (random() < exp(-delta/temperature)) { return newstate; return state; // keep the old state getrandomneighbor(state) { index = randomitemnumber(); if (index not in state sack) { state = additemtosack(index, state); else { state = removeitemfromsack(index, state);

return state; Chování algoritmu je možné ovlivňovat nastavením hodnot parametrů: o initialtempfactor určuje velikost prvotní teploty (v násobcích hodnoty nejcennější věci, která se vejde do batohu) o mintemperature určuje minimální teplotu, pro nižší teplotu se algoritmus ukončí o stepscount určuje počet průchodů vnořeného while-cyklu v násobcích počtu věcí o cooldownfactor určuje ochlazovací faktor Měření Byla provedena měření sledující vliv jednotlivých parametrů na chování a výsledky výpočtu. Je sledován počet stavů, které se při výpočtu projdou a relativní odchylka výsledku vzhledem k optimálnímu řešení. K výpočtu odchylky se používá vzorec: chyba = (cenaoptimum cenaheuristika) / cenaoptimum. U grafů odchylek je zobrazen i trend vypočtený standardní funkcionalitou MS Excel 2003 Power Trendline. Jeho vzorec následuje. Equation: y=c*x^b c: =EXP(INDEX(LINEST(LN(y),LN(x),,),1,2)) b: =INDEX(LINEST(LN(y),LN(x),,),1) Každé měření bylo prováděno na 40 různých instancích a výsledky zprůměrovány. Ve všech provedených měřeních vždy měníme pouze jeden parametr, ostatní zůstavají fixní. V následující tabulce jsou uvedeny standardní hodnoty parametrů. initialtemp mintemperature stepscount cooldownfactor 1 0,01 2 0,9 Tab 1 standardní hodnoty parametrů algoritmu

Počáteční teplota - initialtempfactor 2,90 Po čet stavů 4500 4000 3500 2,70 2,30 2,10 1,90 1,70 Prům ěrná chyba (% ) Pow er () 3000 0,0 1,0 2,0 3,0 4,0 5,0 6,0 Počáteční teplota Graf 1 počet stavů prošlých při výpočtu a průměrná odchylka řešení od optima vzhledem k hodnotě počáteční teploty Zvyšováním počáteční teploty dáváme algoritmu větší šanci opustit oblast lokálního minima. Je zřejmé, že počet prozkoumaných stavů s vyšší počáteční teplotou roste, ale snižování průměrné chyby tak přesvědčivé není. Je patrný klesající trend, takže lze tvrdit, že zvyšováním původní teploty dosahujeme lepších výsledků, ale je nutné počítat s výkyvy výkonnosti.

Minimální teplota - mintemperature 3,10 2,90 4500 2,70 4000 3500 2,30 2,10 1,90 Průměrná chyba (% ) Pow er () 1,70 3000 0,000 0,010 0,020 0,030 0,040 0,050 Minimální teplota Graf 2 počet stavů prošlých při výpočtu a průměrná odchylka řešení od optima vzhledem k hodnotě teploty, kdy se algoritmus ukončuje Zvyšováním minimální teploty zastavíme algoritmus dříve. Dosáhneme tak zkrácení výpočtu. Z měření vyplývá, že ve zkoumaném rozmezí nemá minimální teplota vliv na kvalitu výsledku. Dokonce se zdá, že průměrná chyba klesá společně s nárůstem minimální teploty, což je přesně opak očekávaného chování.

Počet průchodů - stepscount 2 4,50 4,00 P očet stavů 20000 1 10000 0 0 2 4 6 8 10 12 Počet průchodů 3,50 3,00 2,00 1,00 0,50 0,00 Pow er () Graf 3 počet stavů prošlých při výpočtu a průměrná odchylka řešení od optima vzhledem k faktoru, který ovlivňuje kolikrát se provede vnitřní cyklus algoritmu před ochlazením, které se při výpočtu prozkoumají lineárně roste s počtem provedení vnitřního cyklu (než se dosáhne equilibria). Tato závislost je přirozená. Je patrné, že tento parametr má značný vliv na průměrnou chybu řešení. Pro hodnoty 1 až 4 klesá chyba velmi znatelně.

Parametr ochlazování cooldownfactor 2 5,00 4,50 20000 4,00 P očet stavů 1 10000 3,50 3,00 2,00 Prům ěrná chyba (%) Pow er () 1,00 0,50 0 0,00 0,77 0,87 0,97 Parametr ochlazování Graf 4 počet stavů prošlých při výpočtu a průměrná odchylka řešení od optima vzhledem k rychlosti ochlazování Nárůst počtu zkoumaných stavů vzhledem k hodnotě parametru ochlazování má polynomiální průběh. Pro hodnoty velmi blízké 1 je ale nárůst počtu stavů enormní. Souběžně s tím klesá průměrná chyba výsledku, zdá se že lineárně. Závěr Z provedených měření lze vidět vliv parametrů algoritmu na výpočetní čas a na kvalitu nalezeného řešení. Ukázalo se, že nemá cenu nastavovat příliš vysokou počáteční teplotu. Taková hodnota pouze vede k prodlužování výpočtu s minimálním pozitivním vlivem na kvalitu výsledku. Jako vhodná hodnota se jeví číslo 2. Parametr minimální teploty, se zdá, také nemá cenu nastavovat příliš nízko. Hodnota 0,04 vedla k rychlému výpočtu s malou chybou. Další dva parametry se ukázaly jako důležitější. Je nutné zvolit kompromis mezi časem výpočtu a požadovanou kvalitou. Jako vhodné se jeví hodnoty 6 pro počet provedení vnitřního cyklu a 0,96 pro parametr ochlazování. Výpočetní sestava Výpočty byly prováděny v prostředí Windows Vista Business 32bit na stroji s procesorem Intel Core 2 Duo T7700 2,4 GHz a 3GB paměti.

Podpůrné programy Programy byly napsány v jazyce C++, kompilovány ve Visual C++ 2005. Zdrojové kódy annealing.cpp knapsackcompare.cpp řešení - pomocný program pro porovnání heuristických a optimálních annealing: Použití: program.exe annealing.exe input_file initial_temperature min_temperature steps_count cooldown_factor Formát input_file: každá instance na jednom řádku, na řádku jen celá čísla v tomto formátu ID n M váha cena váha cena... Formát output_file: každá instance na jednom řádku, na řádku jen celá čísla ID n cena řešení 0/1 0/1... Program zpracovává input_file, řešení zaznamenává do v_ +input_file a na standardní výstup vypíše počet prošlých stavů. knapsackcompare.cpp: Použití: knapsackcompare.exe input_optimal input_heuristic Formáty vstupních souborů viz výše. Program vypíše na standardní výstup průměrnou a relativní chybu heuristiky.