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



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

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

Experimentální hodnocení kvality algoritmů

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

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

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

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

Sociodemografická analýza SO ORP Mohelnice

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

Převodní charakteristiku sensoru popisuje následující vzorec: C(RH)=C 76 * [1 + HK * (RH 76) + K] (1.1)

3. Domácnosti a bydlení seniorů

Dynamické programování

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

Porovnání rychlosti mapového serveru GeoServer při přístupu k různým datovým skladům

1 Analytické metody durace a konvexita aktiva (dluhopisu) $)*

Postup prací při sestavování nároků vlastníků

STRUČNÉ SHRNUTÍ. Učitelé škol regionálního školství bez vedoucích zaměstnanců

Důvěra některým institucím veřejného života v březnu 2015

1. Téma 03 - Rozhodování

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

Návrh Designu: Radek Mařík

UNIVERZITA KARLOVA Přírodovědecká fakulta. Hydrometrie. Hodnocení variability odtokového režimu pomocí základních grafických a statistických metod

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

Měření závislosti statistických dat

4EK213 LINEÁRNÍ MODELY

Úloha 1. Napište matici pro případ lineárního regresního spline vyjádřeného přes useknuté

10. Předpovídání - aplikace regresní úlohy

5. Sociální zabezpečení

Česká zemědělská univerzita v Praze. Provozně ekonomická fakulta. Statistické softwarové systémy projekt

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

Příbuznost a inbreeding

Mezi jednotlivými rozhraními resp. na nosníkových prvcích lze definovat kontakty

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

Daňové příjmy obcí v roce 2007 zaznamenaly nárůst

ROZBOR VÝVOJE A ROZDÍLŮ CEN VYBRANÝCH AGRÁRNÍCH KOMODIT V ČR A V NĚKTERÝCH STÁTECH EU

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

3.3 Data použitá v analýze

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

HODNOCENÍ ROZDÍLNÝCH REŽIMŮ PŘI PROCESU SPALOVÁNÍ

Analýza zdravotního stavu. obyvatel zdravého města JIHLAVA. II.část. MUDr. Miloslav Kodl

Fyzikální laboratoř. Kamil Mudruňka. Gymnázium, Pardubice, Dašická /8

xrays optimalizační nástroj

X = x, y = h(x) Y = y. hodnotám x a jedné hodnotě y. Dostaneme tabulku hodnot pravděpodobnostní

4 Monitoring návštěvnosti Cyklostezky Ohře SVATOŠSKÉ SKÁLY

Čas (s) Model časového průběhu sorpce vyplývá z 2. Fickova zákona a je popsán následující rovnicí

IB109 Návrh a implementace paralelních systémů. Analytický model paralelních programů. RNDr. Jiří Barnat, Ph.D.

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

NÁHODNÝ VEKTOR. 4. cvičení

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

Plánování experimentu

Neuronové časové řady (ANN-TS)

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

Hydrologie (cvičení z hydrometrie)

Strategický plán rozvoje města Kopřivnice

Algoritmy I, složitost

Česká republika. Obrázek 1: Přehled o vývoji počtů nově přijímaných žáků v ČR. 1. ročníku SŠ. 1

ALG 14. Vícedimenzionální data. Řazení vícedimenzionálních dat. Experimentální porovnání řadících algoritmů na vícedimenzionálních datech

oddělení Inteligentní Datové Analýzy (IDA)

Česká veřejnost o tzv. Islámském státu a o dění na Ukrajině leden 2016

1. Přednáška. Ing. Miroslav Šulai, MBA

VLIV OKRAJOVÝCH PODMÍNEK NA VÝSLEDEK ZKOUŠKY TEPELNÉHO VÝKONU SOLÁRNÍHO KOLEKTORU

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

Simulace. Simulace dat. Parametry

11MAMY LS 2017/2018. Úvod do Matlabu. 21. února Skupina 01. reseni2.m a tak dále + M souborem zadané funkce z příkladu 3 + souborem skupina.

Náplň. v Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění

Cvičení 12: Binární logistická regrese

Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady

Biostatistika Cvičení 7

Prohledávání do šířky = algoritmus vlny

Měření momentu setrvačnosti prstence dynamickou metodou

Kritický stav jaderného reaktoru

13. Lineární programování

CVIČNÝ TEST 38. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 5 III. Klíč 13 IV. Záznamový list 15

Česká republika. Obrázek 1: Přehled o vývoji počtů nově přijímaných žáků v ČR. 1. ročníku SŠ. 1

Benchmarking ORP Rychnov n/kn

Spokojenost se životem březen 2018

Měření odporu ohmovou metodou

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

Vývoj cen nájmů bytů v České republice

ANALÝZA Kukuřice - LONG Co vše se letos může změnit u kukuřice?

Lineární regrese. Komentované řešení pomocí MS Excel

Statistika počtu událostí v insolvenčním řízení pol. 2012

PROTOKOL O LABORATORNÍM CVIČENÍ - AUTOMATIZACE

rok počet obyvatel 27,1 30,9 34,8 38,6 43,4 49,4 56,4 62,4 68,3 74,9 82,0

Zadání druhého zápočtového projektu Základy algoritmizace, 2005

Asymetrická kryptografie a elektronický podpis. Ing. Mgr. Martin Henzl Mgr. Radim Janča ijanca@fit.vutbr.cz

Statistické vyhodnocení zkoušek betonového kompozitu

O MOŽNOSTI ADJUSTACE IMISNÍCH KONCENTRACÍ NA METEOROLOGICKÉ PODMÍNKY. RNDr. Josef Keder, CSc.

Jana Vránová, 3. lékařská fakulta UK

Binární soubory (datové, typované)

UNIVERZITA PARDUBICE

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

1 Obyvatelstvo podle věku a rodinného stavu

Měření teplotní roztažnosti

Matematické metody rozhodování

Dvouvýběrové a párové testy. Komentované řešení pomocí MS Excel

Stavový model a Kalmanův filtr

Měření modulů pružnosti G a E z periody kmitů pružiny

Otázky ke státní závěrečné zkoušce

po /[6] Jilská 1, Praha 1 Tel.:

Transkript:

ČVUT FEL X36PAA - Problémy a algoritmy 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu Jméno: Marek Handl Datum: 3. 2. 29 Cvičení: Pondělí 9: Zadání Prozkoumejte citlivost metod řešení problému batohu na parametry instancí generovaných generátorem náhodných instancí. Máte-li podezření na další závislosti, modifikujte zdrojový tvar generátoru. Na základě zjištění navrhněte a proveďte experimentální vyhodnocení kvality řešení a výpočetní náročnosti. Pokud možno, prezentujte algoritmy jako body v ploše, jejíž souřadnice jsou výše uvedená kritéria. Úvod Ve všech provedených měřeních vždy pozorujeme vztah jedné veličiny k počtu stavů, které je nutné projít pro výpočet. Všechny ostatní možnosti nastavení generátoru instancí zůstavají fixní. Velikost instance Počet instancí Maximální hmotnost věci Maximální cena věci Poměr kapacity k hmotnosti Granularita 2 4 1 25,6 nerozlišovat Tab 1 standardní nastavení generátoru instancí Jsou porovnávány tři algoritmy výpočtu problému: metoda větví a hranic, dynamické programování a heuristika podle poměru cena/hmotnost s testem nejcennější věci. Heuristika obecně nenalézá optimální řešení, a proto také sledujeme průměrnou odchylku heuristického řešení od optimálního. K výpočtu odchylky se používá vzorec: chyba = (cenaoptimum cenaheuristika) / cenaoptimum. Metoda větví a hranic se chová obdobně jako hrubá síla, jen s tím rozdílem, že se počítají pouze stavy, které mají naději zlepšit dosavadní nejlepší nalezené řešení. Počet stavů, které bude nutné pro výpočet projít, se nedá odhadnout. V nejhorším případě se z toho stane hrubá síla. Dynamické programování těží z faktu, že existuje značně omezené množství možných součtů cen věcí, které jsou do batohu dávány. Tímto přístupem je možné si ukládat již zjištěné výsledky a neopakovat některé výsledky. Počet stavů je tedy v tomto případě roven počtu věcí násobeno součtem cen věcí. Heuristika nejprve seřadí věci podle poměru cena/hmotnost a pak přidává nejvýhodnější věci do batohu, dokud se tam hmotnostně vejdou. Na závěr se ještě řešení porovná se situací, kdy se do batohu vloží jen ta nejcennější věc, a vezme se lepší řešení. Výpočetně nejnáročnější je v tomto případě seřazení věcí. Počet stavů je tedy roven N*log(N)+X+1, kde N je počet věcí, X je počet věcí které do batohu opravdu dáme a jednička symbolizuje porovnání s nejcennější věcí. Maximální hmotnost Toto měření zkoumá vliv maximální možné hmotnosti věci na počet stavů, které se projdou při výpočtu, a na kvalitu řešení dosaženého heuristikou. Max hmotnost Větve a hranice Dynamické programování Heuristika 5 5624 49319 11 1 5391 5382 11 15 5382 51112 11 2 4444 49889 11 25 5836 5993 11

3 5332 51177 11 35 7237 5263 11 4 4827 5171 11 45 6886 51679 11 5 6696 5112 11 Tab 2 počet stavů prošlých při výpočtu v závislosti na maximální hmotnosti věci 6 5 Počet stavů 4 3 2 Větve a hranice Dynamické programování Heuristika 1 1 2 3 4 5 6 Maximální hmotnost Graf 1 počet stavů prošlých při výpočtu v závislosti na maximální hmotnosti věci 2,5 2 2,1 1,95 1,83 Průměrná chyba (%) 1,5 1 1,52 1,62 1,51 1,36 1,39 1,53 1,59,5 1 2 3 4 5 6 Maximální hmotnost Graf 2 procentní průměrná chyba heuristického řešení vzhledem k optimálnímu Zhodnocení V tomto měření se nepodařilo vypozorovat žádnou závislost mezi maximální hmotností věcí a počtem propočítaných stavů. U heuristického řešení a u dynamického programování ani nelze předpokládat, že

by se nějaká závislost projevila, jelikož jsou tyto metody na maximální hmotnosti nezávislé. U průměrné chyby heuristického řešení je zřejmé, že chyba kolísá mezi 1,3% a 2%, ale nelze vypozorovat žádný trend. Maximální cena Měření zkoumá vliv maximální možné ceny věci na počet stavů prošlých při výpočtu a na kvalitu řešení dosaženého heuristikou. Max cena Větve a hranice Dynamické programování Heuristika 5 545 1436 11 1 5852 1986 11 15 5276 388 11 2 5681 39531 11 25 534 5141 11 3 5169 577 11 35 4338 68111 11 4 566 79684 11 45 5442 87514 11 5 386 99539 11 Tab 3 počet stavů prošlých při výpočtu v závislosti na maximální ceně věci 12 1 Počet stavů 8 6 4 Větve a hranice Dynamické programování Heuristika 2 1 2 3 4 5 6 Maximální cena Graf 3 procentní průměrná chyba heuristického řešení vzhledem k optimálnímu

2,5 2, 2,1 2,3 Průměrná chyba (%) 1,5 1,,5 1,56,98 1,75 1,88 1,52 1,41 1,67 1,4, 1 2 3 4 5 6 Maximální cena Graf 4 procentní průměrná chyba heuristického řešení vzhledem k optimálnímu Zhodnocení Z grafu 3 je zřejmé, jak je metoda dynamického programování lineárně závislá na součtu cen věcí, resp. na maximální ceně věci. U průměrné chyby heuristického řešení není vidět žádný trend. Více malých (lehkých) věcí Měření zkoumá vliv převažujícího výskytu lehkých věcí na počet stavů potřebných pro výpočet a na kvalitu řešení dosaženého heuristikou. Pravděpodobnost výskytu věci s hmotností w je (1/w)^koef. Koeficient Větve a hranice Dynamické programování Heuristika,5 3196 5754 12 1, 125 49865 14 1,5 1261 52118 15 2, 1535 4885 14 2,5 4155 5194 12 3, 1263 5264 11 3,5 1433 5666 1 4, 1942 49454 1 4,5 13682 5194 1 5, 1234 5293 1 Tab 4 počet stavů prošlých při výpočtu v závislosti na tom, jak moc převažují věci s nižší váhou

6 5 Počet stavů 4 3 2 1 Větve a hranice Dynamické programování Heuristika, 1, 2, 3, 4, 5, 6, Hmotnost Graf 5 procentní průměrná chyba heuristického řešení vzhledem k optimálnímu 1,8 Průměrná chyba (%) 1,6 1,54 1,4 1,2 1,29 1,38 1,28 1,36 1,32 1,8,73,6,55,4,2,19,7, 1, 2, 3, 4, 5, 6, Koeficient Graf 6 procentní průměrná chyba heuristického řešení vzhledem k optimálnímu Zhodnocení Z měření se zdá, že metoda větví a hranic je na koeficientu zastoupení lehkých věcí závislá. S větším koeficientem roste počet prošlých stavů. Největší nárůst je patrný pro rozmezí hodnot koeficientu 2 a 3. Průměrná chyba heuristického řešení značně klesá se vzrůstajícím koeficientem. Pro koeficient s hodnoutou 5, je chyba již pouhých 7 setin procenta, tedy řešení je velmi blízké k optimu. Více velkých (těžkých) věcí Měření zkoumá vliv převažujícího výskytu těžkých věcí na počet stavů potřebných pro výpočet a na kvalitu řešení dosaženého heuristikou. Pravděpodobnost výskytu věci s hmotností w je (1/(wmaxw))^koef.

Koeficient Větve a hranice Dynamické programování Heuristika,5 779 49316 1 1, 1358 5113 1 1,5 13718 52159 99 2, 12969 5117 99 2,5 16149 53626 99 3, 13934 51272 99 3,5 115 49787 99 4, 11595 48824 99 4,5 1258 5317 99 5, 12974 49848 99 Tab 5 počet stavů prošlých při výpočtu v závislosti na tom, jak moc převažují věci s vyšší váhou 6 5 Počet stavů 4 3 2 Větve a hranice Dynamické programování Heuristika 1, 1, 2, 3, 4, 5, 6, Hm otnost Graf 7 procentní průměrná chyba heuristického řešení vzhledem k optimálnímu

1,6 1,4 1,4 Průměrná chyba (%) 1,2 1,,8,6,4,2,81,68,85 1,1 1,25 1,2,58,97,34,, 1, 2, 3, 4, 5, 6, Koeficient Graf 8 procentní průměrná chyba heuristického řešení vzhledem k optimálnímu Zhodnocení Metoda větví a hranic vykazuje mírně rostoucí trend počtu propočítaných stavů pro zvyšující se hodnotu koeficientu. Průměrná chyba má složitější průběh, ale zdá se, že celkově má klesající trend. Závěr Z provedených měření se podařilo vypozorovat náznaky některých závislostí. Zcela jasná je závislost metody dynamického programování na maximální ceně, ale to byl očekáváný výsledek jelikož vyplývá z povahy metody. Ostatní závislosti již nejsou tak zřejmé, ale o to jsou zajímavější. Pozoruhodné jsou výsledky vlivu granularity. Měření ukazují, že pokud se zvyšuje koeficient ovlivňující zastoupení lehkých (resp. těžkých) věcí, průměrná chyba heuristického řešení znatelně klesá. Přitom heuristické řešení je v porovnání s ostatními metodami rychlejší o několik řádů. 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 T77 2,4 GHz a 3GB paměti. Podpůrné programy Programy byly napsány v jazyce C++, kompilovány ve Visual C++ 25. Zdrojové kódy knapsack_bb.cpp - branch&bound knapsack_dynamic.cpp - dynamické programování knapsack_mostvalued.cpp - heuristika s testem nejcennější věci knapsackcompare.cpp - pomocný program pro porovnání heuristických řešení a hrubé síly knapsack, knapsack_bb, knapsack_dynamic, knapsack_mostvalued: Použití: program.exe input_file [output_file1 [output_file2] 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í /1 /1... Program zpracovává input_file, řešení zaznamenává do output_file a na standardní výstup vypíše časy výpočtu, maximální a průměrnou relativní chybu heuristiky. 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.