7. Heuristické metody

Podobné dokumenty
12. Globální metody MI-PAA

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

11. Tabu prohledávání

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

13. Lineární programování

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

Algoritmizace prostorových úloh

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

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

Základy umělé inteligence

ALGORITMY A DATOVÉ STRUKTURY

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

Grafové algoritmy. Programovací techniky

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

Ú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ů

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

Metody návrhu algoritmů, příklady. IB111 Programování a algoritmizace

Grafové algoritmy. Programovací techniky

Základy informatiky. 07 Teorie grafů. Kačmařík/Szturcová/Děrgel/Rapant

TGH09 - Barvení grafů

DYNAMICKÉ PROGRAMOVÁNÍ A PROBLÉM BATOHU

Optimalizace & soft omezení: algoritmy

Diskrétní matematika. DiM /01, zimní semestr 2018/2019

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

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

u odpovědí typu A, B, C, D, E: Obsah: jako 0) CLP Constraint Logic Programming

Moderní systémy pro získávání znalostí z informací a dat

Seminář z umělé inteligence. Otakar Trunda

Státnice odborné č. 20

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

Základy umělé inteligence

Aproximativní algoritmy UIN009 Efektivní algoritmy 1

1 0 0 u 22 u 23 l 31. l u11

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

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

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

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

Kombinatorická minimalizace

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]

Zadání semestrálního projektu Algoritmy I. zimní semestr 2018/2019

Algoritmus pro hledání nejkratší cesty orientovaným grafem

07 Základní pojmy teorie grafů

State Space Search Step Run Editace úloh Task1 Task2 Init Clear Node Goal Add Shift Remove Add Node Goal Node Shift Remove, Add Node

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

Jan Březina. Technical University of Liberec. 21. dubna 2015

Algoritmy používané ve výpočetní geometrii

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

Usuzování za neurčitosti

Dynamické programování

Jan Březina. Technical University of Liberec. 30. dubna 2013

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

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

TGH10 - Maximální toky

Náhodné chyby přímých měření

Vzdálenost uzlů v neorientovaném grafu

Datové struktury 2: Rozptylovací tabulky

Úvod do teorie grafů

UČENÍ BEZ UČITELE. Václav Hlaváč

"Agent Hledač" (3. přednáška)

NP-úplnost problému SAT

Úvod do optimalizace, metody hladké optimalizace

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

5 Orientované grafy, Toky v sítích

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

GeoGebra známá i neznámá

Static Load Balancing Applied to Time Dependent Mechanical Problems

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

TGH05 - aplikace DFS, průchod do šířky

TGH05 - aplikace DFS, průchod do šířky

10. Složitost a výkon

Nelineární optimalizace a numerické metody (MI NON)

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

Numerické metody optimalizace - úvod

ALG 04. Zásobník Fronta Operace Enqueue, Dequeue, Front, Empty... Cyklická implementace fronty. Průchod stromem do šířky

Přednáška 13 Redukce dimenzionality

Umělá inteligence I. Roman Barták, KTIML.

Operační výzkum. Síťová analýza. Metoda CPM.

Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT

Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)

METODA PŮLENÍ INTERVALU (METODA BISEKCE) METODA PROSTÉ ITERACE NEWTONOVA METODA

3. Přednáška: Line search

Drsná matematika III 10. demonstrovaná cvičení Kostry grafů

Dijkstrův algoritmus

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Obsah: CLP Constraint Logic Programming. u odpovědí typu A, B, C, D, E: jako 0)

Rozvrhování výroby. František Koblasa Technická univerzita v Liberci. TU v Liberci

AVDAT Mnohorozměrné metody, metody klasifikace Shluková analýza

TGH12 - Problém za milion dolarů

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Matematika pro informatiky

10. Techniky formální verifikace a validace

TOKY V SÍTÍCH II. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Algoritmy na ohodnoceném grafu

7. Vyhodnocení uživatelského rozhraní

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

METODY ŘEŠENÍ ÚLOH MX2M

Dynamické datové struktury III.

Úvod do mobilní robotiky AIL028

H {{u, v} : u,v U u v }

Transkript:

Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI 7. Heuristické metody Co očekáváme od praktických heuristik? Lokální a globální přístup Najít vůbec nějaké řešení a najít lepší konstruktivní a iterativní fáze Jednoduché heuristiky pouze nejlepší a prvé zlepšení Problém s lokálními extrémy a co s ním Prohledávání s návratem

Co očekáváme od heuristických metod Použitelnost v praxi: na praktických instancích s přijatelnou přesností s přijatelným výpočetním časem Omezení a optimalizace: nejlepší čas pro potřebnou přesnost nejlepší přesnost v časovém limitu Přesnost: přibližné řešení přesné řešení důkazy správnosti na praktických instancích výpočty v reálném čase 2

metafora stavového prostoru pojem aktuálního stavu použití iterativní konstruktivní lokální metody heuristické metody globální metody překonání lokálního minima dekompozice instance na menší instance téhož problému 3

lokální metody překonání lokálního minima uváznou jednoduché vycouvají s návratem pokročilé překonají 4

Lokální metody Stavový prostor a okolí stavu Systematické a úplné metody Praktické aplikace: neúplné metody 5

Stavový prostor instance problému batohu řešené hladovým algoritmem 100 110 101 111 001 011 000 triviální v každém kroku je právě jedna konfigurace aktuální 010 přidej věc 1 přidej věc 2 přidej věc 63

Lokální metody 100 110 101 001 111 011 okolí aktuálního stavu 000 aktuální stav 010 přidej věc 1 přidej věc 2 přidej věc 73

Okolí stavu, sousední stav kam se dostanu jedním krokem Definice: okolí stavu s S je množina stavů, dosažitelných z s aplikací některé operace q Q. kam se dostanu nejvýše k kroky Definice: k-okolí stavu s S je množina stavů, dosažitelných z s aplikací nejméně jedné a nejvýše k operací q Q. Definice: stavy z okolí stavu s S se nazývají sousední stavy (sousedé) stavu s. 8

Lokální metoda má vždy jeden aktuální stav uvažuje sousední stavy z (relativně malého) okolí 9

{počáteční stav} Ø closed Ø best state state open.empty() ano ne ano open.get() closed? ne state.solution() and state.better (best) ne ano state best q open.put (q (state)) closed.put (state) open řešení neexistuje best= Ø? ne ano nejlepší nejdříve do hloubky do šířky aktuální stav okolí aktuálního stavu lokální metoda řešení je best 10

Praktické metody Úplné a systematické metody uschovají každý stav z okolí pro pozdější zkoumání proto jsou exaktní proto mohou mít nadpolynomiální složitost Když vybereme (nějak) z každého okolí jen jeden stav strategie je neúplná, nelze zaručit řešení můžeme najít řešení v přijatelném čase nepotřebujeme strukturu open má vždy jen jeden prvek strukturu closed si většinou nemůžeme dovolit, musíme se spolehnout na vlastnosti stavového prostoru nebo řízení algoritmu 11

{počáteční stav} state Ø best state = Ø? ne ano stop ()? ne ano state.solution() and state.better (best) ne ano state state best best= Ø? ano ne try (state) řešení neexistuje nebo je neznáme Typická struktura jednoduché lokální heuristiky funkce try () nedokáže najít další stav jiný důvod (čas ) zkus najít další stav řešení je best 12

Příklad Dvě jednoduché heuristiky Konstruktivní a iterativní fáze Dá se to doopravdy použít... 13

Problém diskrétního rozmístění Dáno: množina n modulů K={k 1,,k n } množina m pozic P={p 1,,p m }, m n propojení modulů jako hypergraf G (K, N), kde N je množina spojů n cenová funkce W (R, n), která pro každé přiřazení R: K P odhadne cenu realizace spoje n. Nalézt: prosté přiřazení R: K P (rozmístění), které minimalizuje součet ohodnocení W (R, n) přes všechny spoje. 14

Algoritmus max konjunkce min disjunkce Nechť H (G, k 1, k 2 ) je heuristická funkce, která na základě grafu G odhadne stupeň vazby modulů k 1 a k 2. Nechť K + (R) označuje množinu modulů, které jsou právě rozmístěny (mají dvojici v R), K - (R) množinu právě nerozmístěných modulů. Obdobně definujeme množinu obsazených pozic P + (R) a volných pozic P - (R). R (k i, p j ), buď ze zadání nebo pomocnou heuristikou. 15

Algoritmus max konjunkce min disjunkce 1. Vyber modul k K - (R) takový, že l K + (R) H(G,k,l)=max. 2. Je-li jich více, vyber z nich modul k takový, že l K - (R) H(G,k,l)=min. 3. Najdi pozici p P - (R) takovou, že n W(R (k,p), n)=min. max. přidrátovaný k rozmístěným modulům min. přidrátovaný k nerozmístěným modulům pozice pro nejlevnější dráty kde suma je přes všechny spoje incidentní s k. 4. R R (k,p) 5. Opakuj 1., dokud K - (R) není prázdná. 16

Okolí Krok: dáme nerozmístěný prvek na volnou pozici. Vezmeme K - (R), najdeme nejlepší prvek podle heuristické funkce. Vezmeme P - (R), najdeme nejlepší prvek podle optimalizačního kritéria. Šidíme tak hledání nejlepšího prvku (k,p) K - (R) P - (R) (nepotřebovali bychom heuristickou funkci!). Stavový prostor je acyklický. Algoritmus se zastaví po n krocích. 17

Konstruktivní heuristika Začali jsme ze (skoro) triviální konfigurace Dopracovali jsme se k řešení (konfiguraci, která vyhovuje omezením zde prosté zobrazení R) konstruktivní heuristika 18

Iterativní zlepšování 1. Najít pozice p 1 a p 2 takové, že vzájemným prohozením jejich obsahu (modul nebo nic) se nejvíce zlepší hodnota optimalizačního kritéria. 2. Není taková stop. 3. Provést záměnu, opakovat 1. Stavový prostor je acyklický (nemohu provést záměnu, která by nezlepšila optimalizační kritérium nemohu se vrátit) 19

Okolí Vezmu P P, najdeme nejlepší prvek podle optimalizačního kritéria Můžeme to šidit : najdeme pozici p 1, která toho má nejvíc zapotřebí (heuristická funkce) najdeme pozici p 2, kde je zlepšení největší Jiná možnost: hledáme v P P, ale spokojíme se s první záměnou, která zlepší optimalizační kritérium 20

Iterativní heuristika Začali jsme z řešení Dopracovali jsme se k lepšímu řešení iterativní heuristika Dvojfázové heuristiky Prvá fáze konstruktivní náhodná, více náhodných řešení (viz GSAT minule) Druhá fáze iterativní 21

Jednoduché heuristiky Pouze nejlepší Prvé zlepšení Okolí heuristik Kernighan-Lin 22

{počáteční stav} state Ø best state = Ø? ne ano Čím se mohou lišit jednoduché lokální heuristiky stop ()? ne ano state.solution() and state.better (best) ne ano state state best best= Ø? ne ano try (state) řešení neexistuje nebo je neznáme stavovým prostorem okolím výběrem z okolí zastavením řešení je best 23

Pouze nejlepší (best only) try (state) Ø candidate q new = q (state)) return candidate new.solution() and new.better (state) and new.better (candidate) ne ano new candidate 24

Metoda pouze nejlepší celá heuristika se zastaví, jestliže v nějakém stavu neexistuje zlepšující tah pokud better() používá jiné hodnocení než optimalizační kritérium, solution() může chybět jiné názvy: metoda nejrychlejšího sestupu/vzestupu, horolezecký algoritmus na pořadí prohledávání okolí nezáleží 25

Prvé zlepšení (first improvement) try (state) q new = q (state)) return Ø záleží na pořadí randomizace náhodné pořadí new.solution() and new.better (state) ano ne return new 26

Metoda první zlepšení celá heuristika se zastaví, jestliže v nějakém stavu neexistuje zlepšující tah pokud better() používá jiné hodnocení než optimalizační kritérium, solution() může chybět na pořadí prohledávání okolí záleží 27

Návrh heuristiky mnoho jednoduchých a rychlých iterací méně sofistikovaných iterací mnoho operací, které nemění konfiguraci drasticky méně radikálních ( dlouhých ) operací občas 28

Okolí heuristik Kernighan-Lin aplikuj opakovaně danou transformaci až do stop podmínky bez ohledu na optimalizační kritérium nebo heuristickou funkci aktuální stav Kernighan-Lin : řada heuristik původně pro TSP, později hlavně pro bisekci grafu z takto získaného okolí vyber nejlepší stav jako příští hledání dalšího stavu 29

Problém lokálních extrémů 30

Lokální minimum hodnota optimalizačního kritéria lokální minimum: všechny sousední stavy mají horší hodnotu optimalizačního kritéria spojovací čáry jen pro názornost globální minimum kroky iterativní heuristiky 31

Správný průběh iterativní heuristiky hodnota optimalizačního kritéria různá počáteční řešení stejně kvalitní výsledná řešení kroky iterativní heuristiky 32

Uváznutí v lokálních minimech hodnota optimalizačního kritéria různá počáteční řešení zastavení v lokálních minimech kvalita výsledného řešení silně závisí na kvalitě počátečního řešení kroky iterativní heuristiky 33

Problém lokálních extrémů Heuristiky, které neřeší uváznutí v lokálním extrému (pouze nejlepší, první zlepšení a jim podobné) se zastaví v lokálním minimu Projev: závislost výsledného řešení na počátečním, tzv. nedostatečná iterační síla Centrální problém lokálních heuristik 34

Řešení Zvětšení okolí Více náhodných počátečních řešení (GSAT) odstranění následků, ne příčiny závisí na možnosti generovat náhodná řešení Návraty odvolání rozhodnutí, které vedly do slepé uličky Únik kroky, které připustí zhoršení aktuálního stavu nutnost dokonalejšího řízení algoritmu (bloudění) nutnost řízení ochoty k horšímu řešení 35

Zvětšení okolí k-okolí o m transformacích má m k stavů! Kernighan-Lin (pokud zahrne tyto stavy) 3-okolí 1-okolí 36

Prohledávání s návratem 37

Prostor prohledávání prostor prohledávání????? bod prostoru prohledávání stavový prostor oblast stavového prostoru 38

Základní prohledávání s návratem (backtracking) V algoritmech, kde se postupně ohodnocují proměnné, nejčastěji konstruktivní úlohy Heuristická funkce, udávající pořadí, v jakém mají proměnné být ohodnocovány Rozpoznání slepé uličky pro úplné řešení (list prohledávacího stromu) pro částečně ohodnocenou konfiguraci Omezení prohledávacího prostoru Není zaručena polynomiální složitost Tyto techniky se používají i v kombinaci s jinými 39

Problém dam na šachovnici Rozestavit n dam na šachovnici n n tak, aby se vzájemně neohrožovaly konflikt 40

Dopředná kontrola (forward checking) Udržovat informaci, která dovolí (snadno, rychle) se vyhýbat konfliktům 41

Zpětné skoky (backjumping) pořadí umisťování dam je třeba vrátit se až sem, jinak budeme narážet na stejný problém který darebák jako poslední ucpal políčko v tomto sloupci? 43