UNIVERZITA PARDUBICE

Podobné dokumenty
MODELOVÁNÍ A SIMULACE

Lokace odbavovacího centra nákladní pokladny pro víkendový provoz

SIMULACE. Numerické řešení obyčejných diferenciálních rovnic. Měřicí a řídicí technika magisterské studium FTOP - přednášky ZS 2009/10

1. Nejkratší cesta v grafu

Numerické metody optimalizace

ANALÝZA VZTAHU DVOU SPOJITÝCH VELIČIN

Iterační výpočty. Dokumentace k projektu pro předměty IZP a IUS. 22. listopadu projekt č. 2

Monte Carlo metody Josef Pelikán CGG MFF UK Praha.

POUŽITÍ METODY PERT PŘI ŘÍZENÍ PROJEKTŮ

Přemysl Žiška, Pravoslav Martinek. Katedra teorie obvodů, ČVUT Praha, Česká republika. Abstrakt

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta strojního inženýrství Ústav automatizace a informatiky

9. cvičení 4ST201. Obsah: Jednoduchá lineární regrese Vícenásobná lineární regrese Korelační analýza. Jednoduchá lineární regrese

VLIV VELIKOSTI OBCE NA TRŽNÍ CENY RODINNÝCH DOMŮ

Ivana Linkeová SPECIÁLNÍ PŘÍPADY NURBS REPREZENTACE. 2 NURBS reprezentace křivek

2. Definice pravděpodobnosti

Regresní a korelační analýza

REGRESNÍ ANALÝZA. 13. cvičení

EKONOMICKO-MATEMATICKÉ METODY

2.5. MATICOVÉ ŘEŠENÍ SOUSTAV LINEÁRNÍCH ROVNIC

ŘEŠENÍ PROBLÉMU LOKALIZACE A ALOKACE LOGISTICKÝCH OBJEKTŮ POMOCÍ PROGRAMOVÉHO SYSTÉMU MATLAB. Vladimír Hanta 1, Ivan Gros 2

Matematika I A ukázkový test 1 pro 2018/2019

Vysoká škola báňská - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky LOGICKÉ OBVODY pro kombinované a distanční studium

Numerická matematika 1. t = D u. x 2 (1) tato rovnice určuje chování funkce u(t, x), která závisí na dvou proměnných. První

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

6. Demonstrační simulační projekt generátory vstupních proudů simulačního modelu

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

Základy umělé inteligence

Metamodeling. Moderní metody optimalizace 1

Vícekriteriální rozhodování. Typy kritérií

Úvod Terminologie Dělení Princip ID3 C4.5 CART Shrnutí. Obsah přednášky

Optimalizační přístup při plánování rekonstrukcí vodovodních řadů

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

8a.Objektové metody viditelnosti. Robertsův algoritmus

í I Průchod a rozptyl záření gama ve vrstvách materiálu Prof. Ing. J. Šeda, DrSc. KDAIZ - PJPI

ALGORITMUS SILOVÉ METODY

3 VYBRANÉ MODELY NÁHODNÝCH VELIČIN. 3.1 Náhodná veličina

MANAŽERSKÉ ROZHODOVÁNÍ

CHYBY MĚŘENÍ. uvádíme ve tvaru x = x ± δ.

Čísla a aritmetika. Řádová čárka = místo, které odděluje celou část čísla od zlomkové.

Korelační energie. Celkovou elektronovou energii molekuly lze experimentálně určit ze vztahu. E vib. = E at. = 39,856, E d

Posuzování výkonnosti projektů a projektového řízení

Teoretické modely diskrétních náhodných veličin

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

ANALÝZA RIZIKA A CITLIVOSTI JAKO SOUČÁST STUDIE PROVEDITELNOSTI 1. ČÁST

Tepelná kapacita = T. Ē = 1 2 hν + hν. 1 = 1 e x. ln dx. Einsteinův výpočet (1907): Soustava N nezávislých oscilátorů se stejnou vlastní frekvencí má

Teoretické modely diskrétních náhodných veličin

u (x i ) U i 1 2U i +U i+1 h 2. Na hranicích oblasti jsou uzlové hodnoty dány okrajovými podmínkami bud přímo

Modelování elektrických sítí KEE/MS Přednáška na téma: Výpočty chodu sítě. Ing. Jan Veleba, Ph.D. doc. Ing. Karel Noháč, Ph.D.

4 Parametry jízdy kolejových vozidel

7. STATISTICKÝ SOUBOR S JEDNÍM ARGUMENTEM

VYBOČUJÍCÍ HODNOTY VE VÍCEROZMĚRNÝCH DATECH

Simulační metody hromadné obsluhy

ANALÝZA A KLASIFIKACE DAT

MODELOVÁNÍ SEISMICKÉHO ZDROJE JAKO REÁLNÁ TESTOVACÍ ÚLOHA PRO NELINEÁRNÍ INVERSNÍ ALGORITMUS

podle typu regresní funkce na lineární nebo nelineární model Jednoduchá lineární regrese se dá vyjádřit vztahem y

Čísla přiřazená elementárním jevům tvoří obor hodnot M proměnné, kterou nazýváme náhodná veličina (označujeme X, Y, Z,...)

Univerzita Pardubice Fakulta ekonomicko-správní. Modelování predikce časových řad návštěvnosti web domény pomocí SVM Bc.

Příprava ke státním maturitám 2011, vyšší úroveň obtížnosti materiál stažen z

Datové struktury 2: Rozptylovací tabulky

Přednášky část 4 Analýza provozních zatížení a hypotézy kumulace poškození, příklady. Milan Růžička

Aplikace simulačních metod ve spolehlivosti

Umělé neuronové sítě a Support Vector Machines. Petr Schwraz

{ } SYNTÉZA TABULEK PŘECHODŮ 1. NEALGEBRAICKÉ METODY

Sdílení tepla. Úvod - Přehled. Sdílení tepla mezi termodynamickou soustavou a okolím je podmíněno rozdílností teplot soustavy T.

Porovnání GUM a metody Monte Carlo

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

Usuzování za neurčitosti

MATEMATICKÁ TEORIE ROZHODOVÁNÍ

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

VOLBA HODNOTÍCÍCH KRITÉRIÍ VE VEŘEJNÝCH ZAKÁZKÁCH

Spojité regulátory - 1 -

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

Otto DVOŘÁK 1 NEJISTOTA STANOVENÍ TEPLOTY VZNÍCENÍ HOŘLAVÝCH PLYNŮ A PAR PARABOLICKOU METODOU PODLE ČSN EN 14522

Využití logistické regrese pro hodnocení omaku

radiační ochrana Státní úřad pro jadernou bezpečnost

Metody zvýšení rozlišovací obrazů

LOGICKÉ OBVODY J I Ř Í K A L O U S E K

Dijkstrův algoritmus

Metody vícekriteriálního hodnocení variant a jejich využití při výběru produktu finanční instituce

4EK211 Základy ekonometrie

Neparametrické metody

VÝZNAM TEORIE DUALITY V OPERAČNÍ ANALÝZE THEORY OF DUALITY IN OPERATIONAL ANALYSIS. ZÍSKAL Jan. Abstract

Návrh Designu: Radek Mařík

Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma

ANALÝZA PRODUKCE OLEJNIN ANALYSIS OF OIL SEED PRODUCTION. Lenka Šobrová

11. Tabu prohledávání

Dále budeme předpokládat, že daný Markovův řetězec je homogenní. p i1 i 2

APLIKACE MATEMATICKÉHO PROGRAMOVÁNÍ PŘI NÁVRHU STRUKTURY DISTRIBUČNÍHO SYSTÉMU

URČOVÁNÍ TRENDŮ A JEJICH VÝZNAM PRO EKONOMIKU

9. Měření kinetiky dohasínání fluorescence ve frekvenční doméně

4EK211 Základy ekonometrie

Dopravní plánování a modelování (11 DOPM )

MEZNÍ STAVY A SPOLEHLIVOST OCELOVÝCH KONSTRUKCÍ LIMIT STATES AND RELIABILITY OF STEEL STRUCTURES

L8 Asimilace dat II. Oddělení numerické předpovědi počasí ČHMÚ 2007

Statistická šetření a zpracování dat.

Attitudes and criterias of the financial decisionmaking under uncertainty

Algoritmizace prostorových úloh

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

Jihočeská univerzita v Českých Budějovicích. Pedagogická fakulta Katedra fyziky. Bakalářská práce

11 Tachogram jízdy kolejových vozidel

Transkript:

UNIVERZITA PARDUBICE FAKULTA EKONOMICKO SPRÁVNÍ ÚSTAV SYSTÉMOVÉHO INŢENÝRSTVÍ A INFORMATIKY EVOLUČNÍ ALGORITMY V OPTIMALIZAČNÍCH PROBLÉMECH VEŘEJNÉ SPRÁVY DISERTAČNÍ PRÁCE AUTOR PRÁCE: Ing. Jan Panuš ŠKOLITEL: Doc. RNDr. Bohdan Lnda, CSc. 8

UNIVERSITY OF PARDUBICE FACULTY OF ECONOMICS AND ADMINISTRATION INSTITUTE OF SYSTEM ENGINEERING AND INFORMATICS EVOLUTIONARY ALGORITHMS IN OPTIMIZATION S PROBLEMS OF PUBLIC ADMINISTRATION DISSERTATION AUTHOR: Ing. Jan Panuš SUPERVISOR: Doc. RNDr. Bohdan Lnda, CSc. 8

Prohlašuj: Tuto prác jsem vypracoval samostatně. Veškeré lterární prameny a nformace, které jsem v prác vyuţl, jsou uvedeny v seznamu pouţté lteratury. Byl jsem seznámen s tím, ţe se na moj prác vztahují práva a povnnost vyplývající ze zákona č. 11/ Sb., autorský zákon, zejména se skutečností, ţe Unverzta Pardubce má právo na uzavření lcenční smlouvy o uţtí této práce jako školního díla podle 6 odst. 1 autorského zákona, a s tím, ţe pokud dojde k uţtí této práce mnou nebo bude poskytnuta lcence o uţtí jnému subjektu, je Unverzta Pardubce oprávněna ode mne poţadovat přměřený příspěvek na úhradu nákladů, které na vytvoření díla vynaloţla, a to podle okolností aţ do jejch skutečné výše. Pardubce. Souhlasím s prezenčním zpřístupněním své práce v Unverztní knhovně Unverzty V Pardubcích dne 8. 7. 8 Ing. Jan Panuš

Poděkování Na tomto místě bych rád poděkoval především svému školtel Doc. RNDr. Bohdanu Lndov, CSc. za jeho ochotu, vstřícný přístup a trpělvost během mého studa a také zejména za jeho odborné vedení a cenné rady, kterých se m během zpracování této práce dostalo. Dále bych rád poděkoval prof. Ing. Vladmíru Olejov, CSc. za včasný a správný mpuls pro zpracování této práce a za jeho cenné rady. Nakonec bych velce rád poděkoval své rodně rodčům, prarodčům, bratrov a přítelkyn za jejch podporu a neutuchající zájem o výsledky mého snaţení, čímţ mne neustále nutl prác dokončt.

Anotace V této doktorské dsertační prác je předveden vytvořený algortmus, jehoţ základem jsou některé algortmy zaloţené na lokálním prohledávání. Do algortmu lokálního prohledávání byl přdán penalzační faktor spolu s aspračním krtérem, které by mělo urychlt vyhledávání optmálního (nebo alespoň suboptmálního) řešení ve vybraných problémech. Následně je předvedena funkconalta algortmu na vybraných úlohách z oblast problematky obchodního cestujícího a také funkconalta na vybraných testovacích funkcích. Jednotlvé výsledky měření jsou porovnány a na jejch základě je zkoumáno, zda je tento algortmus úspěšný č nkolv. Annotaton In ths thess we show how local search algorthm can be appled to a set of problems, and we show that ths algorthm mproves ts performance. We added an aspraton crteron from Tabu Search algorthm to mprove local search algorthm n order to advance the performance of some problem types and parameter settngs. We demonstrate then the functonalty of the algorthm on some types of problems of Travellng Salesman Problem and on some test s functons; we make some search montors for ths etenson to analyse n case ths etenson fals or succeeds. Klíčová slova Optmalzace, stochastcké optmalzační algortmy, penalzační lokální prohledávání, zakázané prohledávání, asprační krtérum, problém obchodního cestujícího Key words Optmzaton, stochastc optmzaton algorthms, penalty local search, tabu search, aspraton crteron, travellng salesman problem

OBSAH OBSAH... 6 SEZNAM POUŢITÝCH ZKRATEK... 8 SEZNAM POUŢITÝCH SYMBOLŮ... 9 ÚVOD... 1 1. SOUČASNÝ STAV ŘEŠENÉ PROBLEMATIKY... 1 1.1 FORMULACE ÚLOHY... 1 1. OBECNÝ KONCEPT... 13 1.3 OBTÍŢNOST ÚLOH... 14 1.4 PROHLEDÁVACÍ ALGORITMY... 19 1.5 ALGORITMY CONSTRAINT SATISFACTION... 1.6 METODA LOKÁLNÍHO HLEDÁNÍ... 3 1.7 METODIKA PRO URČENÍ KVALITY ŘEŠENÍ... 5. CÍLE DOKTORSKÉ DISERTAČNÍ PRÁCE... 6.1 HLAVNÍ CÍL DISERTAČNÍ PRÁCE... 6. DALŠÍ CÍLE DISERTAČNÍ PRÁCE... 6 3. METAHEURISTIKY NA ŘEŠENÍ OPTIMALIZAČNÍCH PROBLÉMŮ... 7 3.1 METAHEURISTIKY ZALOŢENÉ NA NÁHODĚ... 7 3.1.1 Smulované žíhání... 7 3.1. Metoda Smulated jumpng... 31 3.1.3 Iteratvní lokální prohledávání... 3 3. ALGORITMY ZALOŢENÉ NA POPULACI... 33 3..1 Optmalzace mravenčí kolone... 34 3.. Evoluční stratege... 36 3..3 Genetcké algortmy... 39 3..4 Memetcké algortmy... 4 3.3 ALGORITMY ZALOŢENÉ NA PROHLEDÁVÁNÍ SOUSEDSTVÍ... 43 3.3.1 Horolezecký algortmus... 43 3.3. Nastavtelné prohledávání sousedství... 47 3.3.3 Metoda zakázaného prohledávání... 48 3.3.4 Robustní zakázané prohledávání... 51 3.3.5 Reagující zakázané prohledávání... 51 3.3.6 Rychlé lokální prohledávání... 5 3.4 ALGORITMY ZALOŢENÉ NA PENALIZACÍCH A VÁHÁCH... 53 3.4.1 GENET a jné váhové metody... 53 3.4. Dskrétní Lagrangeův Multplkátor... 54 4. PENALIZAČNÍ LOKÁLNÍ PROHLEDÁVÁNÍ ROZŠÍŘENÉ O ASPIRAČNÍ KRITÉRIUM... 55 4.1 VZNIK ALGORITMU... 55 4. PRINCIPY ALGORITMU... 56 4.3 LOKÁLNÍ PROHLEDÁVÁNÍ... 57

4.4 CHARAKTERISTIKY ŘEŠENÍ... 58 4.5 PENALIZACE ÚČELOVÉ FUNKCE... 58 4.6 MODIFIKACE PENALIZAČNÍCH FAKTORŮ... 59 4.7 ASPIRAČNÍ KRITÉRIUM PRO PLP... 61 4.7.1 Důvod využtí aspračního krtéra... 61 4.7. Defnce aspračního krtéra... 6 4.8 PROVEDENÉ EXPERIMENTY... 64 5. PŘEHLED TESTOVACÍCH FUNKCÍ... 65 6. PROBLÉM OBCHODNÍHO CESTUJÍCÍHO... 75 6.1 PROBLEMATIKA TSP... 75 6. HEURISTIKY LOKÁLNÍHO PROHLEDÁVÁNÍ PRO TSP... 75 6.3 APLIKACE PENALIZOVANÉHO LOKÁLNÍHO PROHLEDÁVÁNÍ PRO TSP... 76 6.3.1 Zvýšená účelová funkce a argumenty řešení... 76 6.3. Metoda penalzovaného prohledávání v TSP... 77 6.4 VYHODNOCENÍ ALGORITMU PENALIZOVANÉHO PROHLEDÁVÁNÍ NA TSP... 78 6.5 PENALIZOVANÉ LOKÁLNÍ PROHLEDÁVÁNÍ A HEURISTIKA -ZÁMĚNY... 8 6.5.1 Porovnání s dalším obecným metodam pro TSP... 8 6.5. Smulované žíhání... 81 6.5.3 Zakázané prohledávání... 81 ZÁVĚR... 86 SPLNĚNÍ CÍLE... 87 PŘÍNOS DOKTORSKÉ DISERTAČNÍ PRÁCE... 87 MOŢNOSTI POKRAČOVÁNÍ... 87 SEZNAM POUŢITÉ LITERATURY... 89 SEZNAM TABULEK... 1 SEZNAM OBRÁZKŮ... 11

Seznam pouţtých zkratek ACO AK B&B CSP DLM FLS GA HCwL ILS IP LP MA MAX-SAT MP NP P PLP QAP ReTS RLFAP RTS SA SAT SJ TS TSP VNS Optmalzace mravenčí kolone (Ant Colony Optmzaton) Asprační krtérum Metoda větví a mezí (Branch and Bound) Constran Satsfacton Problems Dskrétní Lagrangeův multplkátor (Dscrete Lagrange Multplers) Rychlé lokální prohledávání (Fast Local Search) Genetcký algortmus Horolezecký algortmus s učením Iterační lokální prohledávání Celočíselné programován (Integer Programmng) Lneární programován Memetcký algortmus Problém mamální uspokojtelnost (Mamum Satsfablty Problem) Matematcké programování Nedetermnstcky polynomální problémy Polynomální problémy Algortmus penalzačního lokálního prohledávání Quadratc Assgnment Problem Reaktvní tabu prohledávání (Reactve Tabu Search) Rado Lnk Frequency Assgnment Problem Robustní tabu prohledávání (Robust Tabu Search) Smulované ţíhání (Smulated Annealng) Problém uspokojtelnost (Satsfablty Problem) Smulované skákání (Smulated Jumpng) Tabu Search Problém obchodního cestujícího (Travellng Salesman Problem) Nastavtelné prohledávání sousedství (Varable Neghbourhood Search) 8

Seznam pouţtých symbolů α Koefcent pro snţování teploty v SA D Matce vzdáleností v TSP d j Vzdálenost mez městy a j D Upravená matce vzdáleností v TSP o penalzac E n f() g() n P p j X Tep využtelnost(, e j ) Eukldovský n-rozměrný prostor Účelová funkce Zvýšená účelová funkce pouţtím penalzací Parametr, který se pouţívá pro úpravu vlvu penalzací na velkost účelové funkce Velkost problému (např. počet měst v TSP) Matce penalzací v TSP Penalzace přřazená trase a j v TSP Mnoţna všech přípustných řešení Koefcent vyjadřující teplotu v SA Vyuţtelnost trasy e mez městy a j v řešení 9

Úvod Optmalzační problematka je řešena v matematckých č technckých oborech jţ poměrně dlouhou dobu. Dříve (od doby po druhé světové válce) byla tato problematka řešena pomocí dnes jţ klasckých metod. Postupem času se rodna těchto problémů dále rozvíjela, avšak aparát zaloţený na nfntezmálním počtu, varačních metodách aplkovaných ve funkconálních prostorech č numerckých metodách nebo v problémech, které se týkají teore grafů, umoţňuje hledání globálních etrémů pouze v problémech jednoduššího charakteru. Tyto metody jţ však současným problémům nemohou postačovat a to z několka důvodů. Například jţ není ţádným problémem defnovat argumenty účelové funkce v různých oborech (reálný, celočíselný, logcký atp.), nebo některý argument účelové funkce se můţe v určtých subntervalech měnt anebo na něj mohou být aplkována různá omezení, která vyplývají z fyzkální č ekonomcké realzovatelnost. Z výše defnovaného pak tedy vyplývá, ţe je potřeba mnohem výkonnějších metod, které ulehčí řešení sloţtých optmalzačních úkolů. A právě pro řešení takových úloh, které víceméně vychází z reálného ţvota, byla vyvnuta mnoţna nového typu algortmů a to tzv. evolučních algortmů. Evoluční algortmy se vyznačují několka zvláštnostm oprot klasckým metodám, jako je například vyuţtí náhody, a tím je ční robustnějším a šroce pouţtelným. Je vhodné, aby řeštel dobře znal oblast, kterou se snaţí optmalzovat a tedy správně defnoval účelovou funkc, kterou hodlá optmalzovat. Tyto algortmy jsou určeny pro hledání globálního etrému, coţ jm také samozřejmě přdá na výhodě. U klasckých numerckých metod se také stávalo, ţe nabídly pouze jedné řešení, kdeţto metody z oblast evoluční stratege mohou nabídnout řešení několk. Jako vše v ţvotě tyto technky mají své kladné nebo záporné stránky. Mez několk nevýhod, které tyto technky mají, patří to, ţe se velce těţko sestavují matematcké důkazy o jejch konvergenc. Většnou se př zpracování těchto algortmů vychází ze zkušeností, jeţ jednoznačně ukazují na jejch ţvotaschopnost. Dsertační práce se zabývá právě takovým metodam, které pochází z této rodny a jeţ za jstou dobu prokázaly svou kvaltu a robustnost. Ke splnění defnovaného cíle práce bude vyuţta smíšená heurstcká technka vytvořená na základě znalostí a vlastností tří známých metod vyuţívaných v optmalzac, a to konkrétně metodou lokálního prohledávání, 1

smulovaného ţíhání a zakázaného prohledávání. Vytvořený algortmus má za úkol efektvně projít prohledávaný prostor vybraného optmalzačního problému a nalézt tak kvaltní řešení. Navrţený algortmus je následně otestován na několka vybraných problémech. 11

1. Současný stav řešené problematky 1.1 Formulace úlohy V praktckém ţvotě se setkáváme s mnoha problémy, kdy z různých varant vybíráme jednu, vhodnou pro naše potřeby. Tyto různé varanty nebývají z hledska subjektu vţdy rovnocenné a pak tedy vznká problém výběru té nejvhodnější (optmální) varanty. Z tohoto hledska se pak o takovém výběru hovoří jako o optmálním rozhodování. Pokud vytvoříme pomocí matematckých prostředků model nějakého jevu (jeţ se skládá z různých znaků a charakterstk), pak tento model nazýváme matematcký model. Dále matematcký model problému optmálního rozhodování budeme nazývat optmalzačním modelem [LAŠČ9]. Optmalzační model lze vyjádřt soustavou rovnc a nerovnc a cílem rozhodování je pak nalézt co moţná nejvyšší (resp. nejnţší) hodnoty jedné, nebo více funkcí na mnoţně všech řešení dané soustavy. Řešením takových modelů se zabývá dscplína zvaná matematcké programování a modely uvedeného typu se nazývají úlohy matematckého programování (dále jen MP) [LAŠČ9]. Z obecného hledska je problematka matematckého programování za omezených podmínek defnována následujících modelem [KOOP57], [LAŠČ9] optmalzuj f() (1) za podmínek h () = 1,,...,m (), E n (3) kde f() je obecná funkce, kterou hodláme optmalzovat a jíţ nazýváme účelovou funkcí. Funkce h (), = 1,,...,m spolu s omezením se nazývají soustava omezení úlohy MP. Funkce h () se nazývá strukturní omezení, se pak nazývá podmínka nezápornost řešení. V protkladu k mnoha estujícím teorím a metodám nelneárního programování nemá tato naše formulace ţádné poţadavky na konvenost, dferencovatelnost a spojtost účelové funkce č omezujících podmínek. 1

1. Obecný koncept Pro charakterstku hledaných řešení je vhodné představt některé obecné koncepty [SCHW95], [TAYL97] ze kterých teore optmalzace vychází. Jsou jm pojmy přípustné řešení a lokální nebo globální mnmum. Kaţdý vektor z eukldovského n-rozměrného prostoru (E n ) nazýváme přípustným řešením úlohy MP v případě, ţe splňuje všechny podmínky, tzn. h () a. Mnoţnu všech těchto vektorů nazýváme množnou přípustných řešení úlohy MP a ta se značí X. Vektor, ve kterém účelová funkce f() nabývá optmum, nazýváme optmálním řešením. Účelová funkce nabývá lokální optmum v bodě X, kdyţ je přípustným řešením a kdyţ estuje takové okolí N( ) bodu, ţe pro kaţdé přípustné řešení N( ) platí f( ) f() anebo f( ) f(). Takové řešení někdy nazýváme suboptmálním (resp. suboptmem). Funkce má v bodě ostré lokální optmum, jestlţe estuje okolí bodu takové, ţe platí f( ) < f(), resp. f( ) > f() pro všechna z tohoto okolí, s výjmkou bodu =. Globální optmum nabývá v X tehdy, kdyţ uvedené nerovnost platí pro všechna X. V případě, ţe X je prázdná mnoţna, úloha nemá přípustná řešení a tudíţ an optmální. Pokud platí, ţe pro všechny j = 1,,..., n se kaţdá proměnná můţe spojtě měnt na celé ose reálných čísel, tj. ţe obor přípustných hodnot D j proměnné j je: D ; (4) j j j potom úlohu (1) nazýváme spojtou úlohou MP. Pokud jsou všechny D j dskrétní mnoţny, pak hovoříme o dskrétní úloze MP. V případě, ţe jsou všechny koefcenty funkcí f() a h () konstantní, nazývá se příslušná úloha determnstckou úlohou MP. O stochastckých úlohách MP hovoříme v případě, ţe se ve funkcích f() a h () vyskytují náhodné parametry, tj. některé parametry jsou náhodné velčny. Pokud proměnné j v úloze (1) nejsou časově závslé, pak se příslušná úloha MP nazývá statckou úlohou. Pokud je některá z proměnných funkcí času, nebo charakterzuje mnohokrokové procesy, pak tyto úlohy nazýváme dynamcké úlohy MP (resp. úlohy dynamckého programování). 13

Úlohu (1), ve které poţadujeme mamalzac účelové funkce, nazýváme mamalzační úlohu MP. Pokud poţadujeme mnmalzac účelové funkce, hovoříme o mnmalzační úloze MP. Optmálním řešením úlohy MP pak nazýváme takové přípustné řešení * (1), které v případě mamalzační úlohy splňuje, ţe X úlohy f ( * ) ma f ( ) X, (5) resp. v případě mnmalzační úlohy splňuje, ţe f ( * ) mn f ( ) X. (6) Velčnu f( * ) nazýváme optmální hodnotou účelové funkce [LAŠČ9]. 1.3 Obtížnost úloh Estuje mnoho algortmů, které jsou navrţeny pro prohledávání určtého prostoru řešení a jeţ slouţí k nalezení optmálního řešení. V následujících odstavcích se zaměříme na eaktní a heurstcké algortmy spolu s některým pojmy, které s touto oblastí souvsí. Tradční eaktní optmalzační metody mohou být velm efektvní v případě, ţe jsou vhodným způsobem přzpůsobeny dané úloze. Vyplácí se je aplkovat, pokud víme kdy kterou pouţít, resp. nepouţít. Obecně se dají rozdělt na dvě třídy [MICH] a to buď algortmy, které vyhodnotí kompletní řešení nebo na algortmy, které k dosaţení výsledku potřebují nějaké přblţné řešení nebo částečně vygenerované řešení. Kompletní řešení daného problému znamená, ţe máme specfkovány všechny moţnost daného problému, např. pro problém obchodního cestujícího (TSP) jsou známy všechny permutace všech vrcholů problému. Na druhou stranu estuje celá řada algortmů, jeţ porovnává několk (v mnoha případech dvě) nalezených řešení. Jakmle je nalezeno lepší řešení neţ nějaké předcházející, pak je původní řešení nahrazeno novým. Mez tyto metody lze povaţovat lokální prohledávání, horolezecký algortmus a do této třídy patří např. metody jako smulované ţíhání nebo algortmus zakázaného prohledávání (jeţ patří mez heurstcké metody). 14

Pro mnoho typů problémů však nelze pouţít takové metody, které spočítají všechny moţnost vybraného problému. Důvodem je velký počet proměnných a jejch následná kombnace a tím pádem velké mnoţství vygenerovaných řešení. Pak je vhodné pouţít ty, jeţ počítají s částečným řešením. Částečné řešení problému můţe mít dvě formy a to buď neúplné řešení daného problému, anebo daný problém je zredukován (zjednodušen). Pro neúplné řešení problému je typcké vyuţtí nějaké podmnoţny prohledávaného prostoru, např. pro TSP se pouţje permutace měst, jeţ obsahuje sekvenc nějakých konkrétních měst (např. 7 11 5 16). Pokud se pouţje daná moţnost, bez zpětného ověření není jsté, zda je obsaţena v konečném (resp. v optmálním) řešení daného problému. Alternatvním východskem můţe být pouţtí dekompozce celého problému na mnoţnu jednodušších (resp. menších) podproblémů. Naděje spočívá ve vyřešení kaţdého z těchto jednodušších problémů, které lze eventuálně zkombnovat a dostat tak řešení původní úlohy. Příkladem pro TSP je nalezení nejkratší cesty z města do města j, jeţ prochází přes vybraných ( náhodně) k měst z celkového počtu n měst. Př pouţtí těchto metod se objevují jsté obtíţe. Jednou z nch je navrţení takového způsobu organzace podmnoţn dané úlohy, aby mohly být tyto podmnoţny efektvně prohledávány. Dalším problémem je tvorba takové funkce, která dokáţe vhodným způsobem ohodnott kvaltu částečného řešení. Úkol rozdělt prohledávaný prostor do podmnoţn, které mohou být dále zkoumány efektvněj neţ celý prostor je velce nelehký. Jednou z moţností je rozdělení prostoru na strom řešení a postupně prohledávat jednotlvé větve tohoto stromu. Metoda, jeţ se zabývá touto problematkou, se nazývá metoda větví a mezí (Branch and Bound B&B). Metoda B&B se snaţí nalézt celkové nejlepší řešení * pomocí rozdělování původní mnoţny problému na menší a menší podmnoţny a v kaţdé takové podmnoţně jsou stanoveny dolní meze hodnoty účelové funkce. Tyto podmnoţny jsou chápány jako mnoţny řešení, jeţ odpovídají podproblémům původního problému. Po rozdělení původního mnoţny daného problému na dvě nebo více dsjunktních podmnoţn můţe docházet k následnému dalšímu rozdělení podmnoţn. Zobrazíme-l toto větvení grafcky, přpomíná nám strom. Na nulté úrovn stromu tento obsahuje jeden uzel symbolzující původní mnoţnu a na dalších úrovních strom obsahuje uzly, které symbolzují jednotlvé podmnoţny daného problému. Z kaţdého uzlu vedou hrany do dalších uzlů jeho podmnoţn. Ze jména metody vyplývá, ţe se jedná o dvě různé procedury a to větvení mnoţny a určování mezí podmnoţn. Určení mezí znamená stanovení dolních mezí hodnot účelové funkce v kaţdé podmnoţně, 15

která je vygenerována pomocí větvícího procesu, jeţ je defnován jako prohledávání stromu řešení. Tento typ metody je efektvní pro takové typy úloh, které vyţadují kompletní výpočet všech moţných řešení za pomoc stromové struktury. S rostoucím rozsahem řešeného problému roste náročnost metody, proto je dobře aplkovatelná do určtého malého rozsahu. V lteratuře se lze poměrně často setkat s pojmy a výroky o NP-úplnost některých úloh, o tzv. NP-těţkých úlohách atp. Jstým, avšak poměrně vágním vyjádřením můţe být prohlášení, ţe NP-těţké úlohy jsou obtíţně řeštelné. Cílem následujících odstavců je objasnt pojem NP-těţké úlohy. Pro pochopení některých základních vlastností výše uvedených pojmů je třeba rozlšovat typ úlohy a nstanc úlohy. Typem úlohy rozumíme, jakým způsobem je úloha zadána, tj. jaká data a v jakém uspořádání budou tvořt zadání úlohy, co má být výsledkem a jaký má být konečný vztah mez výsledkem a zadáním. Konkrétním příkladem úlohy daného typu je pak nstance úlohy. Jedním z konkrétních typů úloh jsou tzv. rozhodovací úlohy, kdy výsledkem je rozhodnutí buď ano nebo ne. Některé rozhodovací úlohy jsou odvozeny z optmalzačních úloh, kdy se k zadání přdá konstanta K, a ptáme se, zda estuje přípustné řešení s hodnotou účelové funkce, která je lepší nebo rovna K. Vstupem do algortmu, který řeší konkrétní typ úlohy, jsou nějaká data popsující nstanc daného typu úlohy tato data se nazývají vstupní data. Velkost nstance pak měříme jako objem těchto vstupních dat. Obecně se pouţívá velkost dat v btech, ale např. v grafových úlohách se velkost dat vyjadřuje počtem vrcholů a počtem hran. Další měřtelnou jednotkou, která určuje kvaltu konkrétní algortmu, je čas (resp. doba práce algortmu). Pro teoretcké úvahy však tato jednotka není přílš vhodná, jelkoţ různé počítače mívají různě rychlé procesory. Počet základních nstrukcí 1, které je nutno př výpočtu vykonat je o něco vhodnější termín, ale zde estuje závslost na rychlost procesoru. Z těchto důvodů se tedy pouţívá tzv. asymptotcké vyjádření doby práce algortmu pomocí symbolu O. Nechť u a v jsou dvě nezáporné funkce reálné proměnné. Pokud estují reálné konstanty l, m takové, ţe pro všechna > m platí v() l u(), pak se píše v = O(u). Tento vztah je odhadem funkce v shora. Většnou pro malé hodnoty (pro m) argumentů funkcí 1 Základní nstrukcí rozumíme nějakou základní elementární čnnost, která je nutná pro vykonání daného problému. Typckým příkladem je porovnání hodnot dvou poloţek v procesu třídění nějakého seznamu. 16

u a v nemá vlv na chování těchto funkcí a také nezávsí na násobení jedné z funkcí nějakou konstantou. Pokud řekneme, ţe nějaký algortmus pracuje v čase O(u(n)), kde n je velkost nstance úlohy, pak to znamená, ţe doba práce na jednotlvých nstancích od určté velkost nepřesahuje nějaký násobek funkce u. Vyjádření doby práce algortmu symbolem O, se nezíská měřením skutečné doby práce, ale provede se teoretckým rozborem čnnost konkrétního algortmu. Teoretcký rozbor se dá provést buď pro paměťovou sloţtost (závslost paměťových nároků algortmu na vstupních datech) nebo pro časovou sloţtost algortmu (kaţdé mnoţně vstupních dat se přřadí určtý počet operací vykonaných př výpočtu). Pro naše účely je důleţtější časová sloţtost algortmu, proto se jí budeme nadále věnovat. Časovou sloţtost je moţno stanovt buď v závslost na konkrétních datech, anebo na základě znalost rozsahu těchto dat (stanovených např. v btech). Pokud tedy známe rozsah dat, je moţné jednoduše odvodt, jaký počet časových jednotek bude spotřebován pro tato data. Pokud víme, jakou dobu trvají elementární operace, lze pak určt dobu trvání pro určtý konkrétní počet vstupních hodnot. V případě, ţe se tedy podaří vyjádřt časovou sloţtost algortmu jako funkc rozsahu vstupních dat, pak je důleţté to, jak roste časová sloţtost algortmu v závslost na růstu rozsahu vstupních dat. Z tohoto hledska nás pak zajímá právě asymptotcká sloţtost, tedy to jakým způsobem se bude měnt chování algortmu v závslost na změně velkost vstupních dat. Polynomálně řeštelné úlohy jsou úlohy, pro něţ estuje algortmus, jeţ tuto úlohu řeší a doba takového řešení je pro nejhorší případ omezena shora asymptotcky nějakým polynomem. Pro takový algortmus pak platí, ţe doba práce je O(p(n)), kde n je velkost vstupních dat a p je nějaký polynom. Takový algortmus řeší danou úlohy v polynomálním čase nebo je prostě polynomální. Třída úloh P je tvořena polynomálně řeštelným rozhodovacím úloham, kdy za rozhodovací úlohu povaţujeme takovou, jejíţ výsledek je buď ano, nebo ne. Úlohy tohoto typu jsou většnou koncpovány tak, ţe se ptáme, zda estuje přípustné řešení s hodnotou účelové funkce, která je lepší nebo aspoň rovna nějaké defnované konstantě. Zvláštním typem rozhodovací verze je pak dotaz, zda vůbec přípustné řešení estuje. Toto se provede tím, ţe se nějakým vhodným způsobem zvolí nějaká konstanta, např. jako velm malé (resp. velm velké) číslo. Následně se ptáme, zda estuje takové řešení, které je větší (resp. menší) neţ zvolená konstanta. Polynomálně řeštelné úlohy jsou většnou úlohy, jeţ lze snadno vyřešt. Naopak, do třídy úloh NP (nedetermnstcky polynomální) patří rozhodovací úlohy, pro které estuje tzv. ověřovací algortmus, který má následující vlastnost: 17

vstupem algortmu jsou data d popsující nstanc úlohy a tzv. certfkát, který můţeme popsat jako nějakou blíţe nespecfkovanou část dat, jejíţ velkost je shora omezena určtým pevně daným polynomem vzhledem k délce vstupních dat, algortmus pracuje v polynomálním čase vzhledem k velkost vstupních dat d a výsledkem je vţdy odpověď ano nebo nevím, pro nstanc dané úlohy, kdy je správná odpověď ano, estuje takový certfkát c, ţe ověřovací algortmus dá odpověď ano, pro nstanc dané úlohy, kdy je správná odpověď ne, estuje takový certfkát c, ţe ověřovací algortmus dá odpověď nevím. Jedním z příkladů NP úlohy je nalezení hamltonovské kruţnce, kdy certfkátem je zde kruţnce, ověřovací algortmus ověřuje, zda se opravdu jedná o kruţnc a zda prochází všem body. Je velm důleţté jakým způsobem je poloţena otázka, která se v úloze řeší a to z důvodu poţadavku certfkátu a potvrzení pouze pro kladnou odpověď. Pokud otázku obrátíme, můţeme dostat zcela jnou úlohu a ta jţ do třídy NP patřt nemusí (nebo můţe být těţší). Kaţdá úloha ze třídy P je zároveň ve třídě NP, neboť polynomální algortmus, který řeší úlohu je moţno povaţovat za algortmus ověřovací, kdy u něj na certfkátu nezáleţí. V současné době však není známo, zda platí rovnost, ale všeobecně se věří, ţe P NP [DEVL5]. NP-úplná úloha (NP-complete) je pak taková úloha, jeţ patří do NP a je ve třídě NP nejtěţší v tom smyslu, ţe jakákolv jná úloha je na ní polynomálně redukovatelná. Polynomální redukovatelnost úlohy A na jnou úlohu B znamená to, ţe estuje polynomální algortmus, který ze vstupních dat A vytvoří vstupní data pro úlohu B taková, ţe odpověd na oba problémy jsou stejné. NP-těžká úloha (NP-hard) je potom taková úloha B, na kterou lze polynomálně redukovat nějakou NP-úplnou úlohu A. Nejjednodušší přístup, jak řešt optmalzační problémy ze třídy NP je ten, ţe se vytvoří seznam všech přípustných řešení, vypočítá se hodnota jejch účelové funkce a vybere se to nejlepší. Takový přístup kompletního výpočtu je po praktcké stránce nepouţtelný. Důvodem je vysoký počet přípustných řešení u problémů s rozumnou velkostí. 18

Vzhledem ke sloţtost NP-úplných optmalzačních problémů se pak většna vědců soustředí na jnou sloţku technk, tzv. heurstcké optmalzační technky nebo jednoduše heurstky. Tyto technky se snaţí nalézt optmální řešení (nebo alespoň body poblíţ optmálního řešení) v rozumném výpočetním čase. Někdy se také uvádí, ţe heurstky jsou takové metody, které nezaručují nalezení optmálního (nebo an přípustného) řešení. Zpočátku vývoje operačního výzkumu byly heurstky brány s jstou skepsí, avšak v současné době s tyto technky zajstly přední místo mez optmalzačním metodam a to díky teoretckému výzkumu ve výpočetní sloţtost, který sgnalzoval vrozenou sloţtost NP-sloţtých problémů. Heurstka je všeobecně charakterzována přechodem (krokem) od nějakého přípustného řešení k jnému a lokálním krtérem, s jehoţ pomocí je z mnoţny moţných následujících řešení vybíráno to výsledné. Heurstky lze dělt na prmární (postup začínající přípustným řešením a přechází se vţdy na další přípustné řešení) a duální (postup začínající nepřípustným řešením a přechází se na řešení s menší mírou nepřípustnost tak, aby se lokální krtérum zvýšlo co nejméně [JANA]. Metaheurstky jsou takové heurstcké postupy umoţňující za jstých podmínek opustt lokálním optmum a přejít do jných částí mnoţny přípustných řešení. Přechází se do takové oblast, kde je určtá naděje nalezení řešení s lepší hodnotou účelové funkce, neţ bylo původně nalezené lokální optmum. Obdobně jako jné heurstky, an metaheurstky nezaručují nalezení optmálního řešení. Metaheurstky přecházejí v jednotlvých krocích od přípustného řešení k jnému přípustnému řešení, které má lepší hodnotu účelové funkce, pomocí různých operací pouţívaných mnmalzačním heurstkam. Jako příklad takové operace v případě TSP můţe být výměna nebo nverze řetězce atp. Mez známé metaheurstky patří např. smulované ţíhání, metoda zakázaného prohledávání, genetcký algortmus atp. Moderní heurstcké metody jţ dokáţí nalézt vysoce kvaltní řešení pro problémy, které jsou typu NP-úplných (např. alokace zdrojů, dopravní obsluţnost, rozvrhování a mnoha jných oblastí). V následující kaptole popíšeme některé obecné typy optmalzačních algortmů a poté se budeme věnovat některým známým heurstckým metodám. 1.4 Prohledávací algortmy Optmalzační algortmy, které slouţí k nalezení mnma dané účelové funkce pomocí hledání optmální numercké kombnace argumentů této funkce [LUEN84], lze rozdělt podle 19

prncpů jejch čnnost tak, jak je naznačeno na obrázku 1. Toto rozdělení není samozřejmě jedné moţné, ncméně jej můţeme pouţít, neboť celkem dobře vysthuje současný stav a můţeme jej tedy brát jako jeden z moţných pohledů na klascké moderní optmalzační metody. Globální prohledávání a optmalzace Enumeratvní Determnstcké Stochastcké Smíšené Hladový algortmus Horolezecký Větví a mezí Prohledávání do hloubky Prohledávání do šířky Heurstcké prohledávání Náhodné prohledávání Smulované ţíhání Monte Carlo Zakázané prohledávání Evoluční algortmy Stochastcký horolezecký algortmus Matematcké programování Mravenčí kolone Imuntní systémy Memetcký algortmus Rozptýlené hledání Genetcké algortmy Dferencální algortmy Obrázek 1 - Rozdělení prohledávacích algortmů upraveno dle [ZELI] Jednotlvé třídy algortmů představují obecně způsob řešení konkrétního problému pomocí metod s různým stupněm efektvty a sloţtost a lze je charakterzovat následujícím způsobem [MICH], [ZELI]: a) enumeratvní jedná se o výpočet všech moţných kombnací argumentů daného problému. Tento přístup je vhodný pro problémy, u nchţ jsou argumenty účelové funkce dskrétního charakteru a nabývají malého mnoţství hodnot. Pokud by byl tento přístup pouţt obecně, zcela reálně by mohl potřebovat na úspěšné ukončení víc času, neţ je doba estence vesmíru. b) determnstcké tato skupna algortmů je postavena pouze na rgorózních metodách klascké matematky. Algortmy tohoto charakteru obvykle vyţadují předběţné předpoklady, jeţ umoţní této metodě podávat efektvní výsledky. Jsou to obvykle následující předpoklady:. problém je konvení,

. prohledávaný prostor moţných řešení je spojtý,. účelová funkce má pokud moţno pouze jeden etrém (je unmodální) v. problém je defnován v analytckém tvaru. c) stochastcké algortmy tohoto typu jsou zaloţeny na vyuţtí náhody. Jde v podstatě o čstě náhodné hledání hodnot argumentů účelové funkce s tím, ţe výsledkem je vţdy to nejlepší řešení, které bylo nalezeno během celého náhodného hledání. Tyto typy algortmů jsou většnou vhodné pro řešení úloh menšího rozsahu, avšak estují jsté modfkace těchto algortmů, které lze pouţít pro úlohy většího rozsahu. d) smíšené tato třída algortmů představuje směs metod determnstckých a stochastckých, které ve vzájemné spoluprác dosahují překvapvě dobrých výsledků. Poměrně slnou skupnou těchto algortmů jsou evoluční algortmy. Tyto smíšené algortmy:. jsou robustní, coţ znamená, ţe nezávsle na počátečních podmínkách často naleznou kvaltní řešení,. jsou efektvní a výkonné tzn., ţe jsou schopné nalézt kvaltní řešení během relatvně malého počtu ohodnocení účelové funkce,. jsou odlšné od čstě stochastckých metod a to díky přítomnost podmnoţny determnstckých metod, v. mají mnmální nebo ţádné poţadavky na předběţné nformace, v. jsou schopné pracovat s problémy typu černá skříňka, tzn., ţe nepotřebují ke své čnnost analytcký pops problému, v. má-l účelová funkce globální etrém ve více argumentech, tyto algortmy jsou schopny nalézt více neţ jeden takovýto argument. Po shrnutí předešlých nformací lze konstatovat, ţe: a) enumeratvní a determnstcká optmalzace není vhodná na problémy, u nchţ se prohledává rozlehlý prostor moţných řešení, 1

b) stochastcké algortmy pracují dobře na problémech, u nchţ se prohledává úzký prostor moţných řešení, avšak po určtých modfkacích daných algortmů jsou vhodné pro pouţtí na větší rozsahy moţných řešení, c) smíšená optmalzace je vhodná na problémy bez omezení velkost jejch prostoru moţných řešení. 1.5 Algortmy Constrant Satsfacton Standardní defnce Constrant Satsfacton Problem (CSP) [PARD87], [SELM93a] je následující. Máme dánu mnoţnu proměnných, z nchţ kaţdá nabývá konečný počet hodnot, a mnoţnu omezení. Kaţdé omezení je defnováno přes určtou podmnoţnu všech proměnných a omezuje povolené hodnoty jednotlvých proměnných. Cílem je pak nalézt jedno (nebo všechna) přřazení hodnot proměnných tak, ţe tyto hodnoty vyhovují všem omezením. Jakýkolv CSP problém s n-árním omezením (n>) lze transformovat na ekvvalentní s pouze bnárním omezením [PARD87]. V následující část se proto budeme věnovat pouze unárním a bnárním omezením. CSP algortmy se mohou např. vyuţít v grafových úlohách. Proměnná je reprezentována vrcholem grafu a kaţdá hrana reprezentuje omezení mez proměnným. Hrana, která vychází končí ve stejném uzlu, reprezentuje unární omezení problému. Způsobů jak řešt tyto problémy je několk, zde se budeme věnovat pouze dvěma z nch. Jedním z přístupů je generování a testování. Postupně se generují všechna moţná přřazení hodnot proměnných a první přřazení, které splňuje všechna omezení, je řešením CSP. Zde se jedná o analog navního třídění za vyuţtí permutací. Sloţtost tohoto problému je pak dána kartézským součnem všech oborů hodnot. Druhým přístupem je metoda prohledávání s návratem (backtrackng), kdy jsou postupně zkoumána řešení problému. Jakmle je vytvořena mnoţna řešení, svázaných konkrétním omezením, je testována splntelnost omezení. Pokud je testování neúspěšné, je změněna hodnota posledně přřazené proměnné, jejíţ hodnotu měnt lze. Výpočetní sloţtost metody backtrackng je pro úlohy většího rozsahu eponencální, avšak podává lepší výsledky, neţ metoda generuj a testuj [PARD87]. Jedním z dalších známých problémů, na kterém byly např. prezentovány schopnost splntelnost mnoţny výrokových formulí, je tzv. SAT problém (satsfablty problem).

Tento termín se obvykle nepřekládá, proto se bude v prác objevovat pod zkratkou SAT. Základem problému je hypotéza, ţe formule výrokové logky je formule sestavená z proměnných 1,,..., n a logckých spojek negace, konjunkce a dsjunkce. SAT-problém je obvykle defnován jako rozhodnutí, zda je formule splntelná, tj. zda estuje takové ohodnocení proměnných v, ţe hodnota je pravda. Přístup metody lokálního prohledávání povaţuje metody typu CSP jako optmalzační problematku. Účelová funkce, která má být mnmalzována, je pak dána počtem omezení, jeţ mají být splněny. Typcká metoda lokálního prohledávání přřadí náhodnou hodnotu kaţdé proměnné, která se vyskytuje v CSP. Poté se za pomoc heurstky zvané mnmalzačně konflktní heurstky (mn-conflct) [OSMA93], [OSMA95] opakovaně snţuje počet omezujících narušení a to opětovným přřazením nových hodnot proměnným. Tento opakovaný proces vede k řešení č k nalezení lokálního optma, kdy jsou ještě nějaká omezení stále narušována, ale jţ ţádná další zlepšení za pomoc záměny hodnot jakékolv proměnné jţ v tomto bodě nejsou moţná. Úspěšným přístupem jak se dostat z lokálního optma, a který je navrţen v rámc CSP, je přřadt váhy [JIŘI] daným omezením konkrétního problému (podmínka pro SAT) a zvyšovat tyto váhy v lokálním optmu pro označené omezení (nesplněné podmínky pro SAT). Snahou tohoto zvyšování je potom jakés vyplnění aktuálního lokálního mnma do té doby, neţ se podaří z tohoto mnma unknout. 1.6 Metoda lokálního hledání Nejjednodušší (ale nejméně efektvní) heurstckou metodou je tzv. metoda lokálního hledání (local search method) [BENT97], [BURK97], [CENE94], [LUEN84] někdy také uváděná jako metoda vyhledávání bezprostředního sousedství nebo horolezecký algortmus (vz paragraf 3.3.1). Tato technka je základem mnoha heurstckých metod pro kombnatorcké optmalzační algortmy. Metoda určí směr nejprudšího spádu kompletním prohledáním sousedství náhodně (nebo jným způsobem) vybraného počátečního řešení. Jedná se o jednoduchou teratvní metodu, která má za cíl nalézt alespoň dobré přblţné řešení. Tato metoda však trpí základní nectností gradentových metod, tj. ţe nejspíše skončí v lokálním optmu a nedosáhne globálního optma. Aby mohl být vysvětlen prncp lokálního prohledávání, lze uvaţovat lehce odlšnou defnc optmalzačního problému danou modelem (1), (), (3). Optmalzační problém 3

je defnován jako dvojce (X, f), kde X je mnoţna všech přípustných řešení, tj. řešení splňujících omezení daného problému a f je účelová funkce, která zobrazuje mnoţnu X do mnoţny reálných čísel. Cílem je pak nalézt takové řešení v mnoţně X, které optmalzuje účelovou funkc f. Mnoţna N() obsahující všechna řešení, která mohou být dosaţena z bodu jednoduchým posunem (aplkací nějakého jednoduchého operátoru na bod ), se nazývá sousední okolí (sousedství) bodu. Řešení se nazývá lokálním mnmem funkce f v případě bezprostředního okolí N(), jestlţe platí: f() f(y), y N(). (7) Lokální hledání je pak procedura, která mnmalzuje účelovou funkc f počtem úspěšných kroků, kdy je aktuální řešení (7) nahrazeno takovým řešením, ţe: f(y) < f(), y N(). (8) Základní vyhledávací algortmus se spouští v jakémkolv náhodném řešení a končí v lokálním mnmu, kde ţádné další zlepšení jţ není schopen nalézt. Mez těmto dvěma stavy pak estuje mnoho rozlčných způsobů jak lokální vyhledávání provádět. Například tzv. největší zlepšení (best mprovement) lokálního prohledávání se aktuální řešení zamění s takovým řešením, kde je zlepšení největší (resp. kde je nejlepší zlepšení u účelové funkce) aţ po prohledání celého okolí výchozího bodu. Jným příkladem je algortmus tzv. prvního zlepšení (frst mprovement), kdy lokální prohledání funguje tak, ţe je akceptováno lepší řešení v momentu jeho nalezení. Výpočetní sloţtost lokálního prohledávání záleţí na velkost bezprostředního okolí daného řešení a také na počtu kroků, které jsou potřebné ke zhodnocení konkrétního tahu ve funkčním okolí. Obecně se dá říc, ţe čím větší okolí bodu, tím více kroků je potřeba k jeho prohledání a tím lépe se dá nalézt lokální mnmum. Velkým problémem lokálního prohledávání je právě lokální mnmum. Ačkolv nalezené řešení můţe mít dobrou kvaltu, ještě to neznamená, ţe je nutně optmální. Kromě toho, kdy se lokální prohledávání octne v lokálním mnmu, neestuje nějaký zřetelný způsob jak zajstt nalezení globálního mnma. Metody zaloţené na lokálním prohledávání, které se snaţí odstrant tento problém, se někdy nazývají metaheurstckým metodam. Jedna 4

z jednodušších metod defnovaných v této třídě je tzv. opakované lokální prohledávání, kdy je algortmus spouštěn z nového, náhodně vygenerovaného řešení, aţ po dosaţení lokálního mnma. Tento proces se provádí do té doby, dokud není vyčerpán předem daný počet opakování. Nejlepší lokální mnmum, které je nalezeno v průběhu výpočtu, je bráno jako přblţné globální mnmum. Moderní metaheurstky se snaţí být důmyslnější neţ opakované lokální prohledávání. Tyto technky sledují větší rozsah snah, jeţ přesahují jednoduché vyváznutí z lokálního mnma. V následujících částech se budeme věnovat některým z těchto víceméně úspěšných moderních metaheurstckých technk. 1.7 Metodka pro určení kvalty řešení V této kaptole budou popsány krtéra, která byla určující pro sledování průběhu vytvořeného hybrdního algortmu a která určují kvaltu tohoto algortmu. V rámc doktorské dsertační práce byl emprcky testován hybrdní algortmus za vyuţtí různých statstckých charakterstk. Tyto charakterstky byly zaznamenávány v průběhu spuštěného algortmu. V prác byly pouţty následující charakterstky: Tabulka 1 - Statstcké hodnoty pro určení kvalty navrţeného algortmu Název hodnoty Defnce Důvod pouţtí Počet terací Číslo vyjadřující, kolkrát byl daný algortmus zopakován Vyjadřuje výpočetní náročnost algortmu. Průměrné nalezené nejlepší řešení Počet změn nejlepšího nalezeného řešení Doba trvání průběhu algortmu Průměrná odchylka Tato hodnota vyjadřuje průměrné nejlepší řešení nalezené v průběhu testování algortmu. Tato hodnota vyjadřuje průměrný počet změn u nalezeného řešení, které bylo lepší neţ to předcházející nalezené. Tato hodnota vyjadřuje celkovou dobu trvání algortmu v sekundách. Tato hodnota vyjadřuje procentuální rozdíl nalezeného řešení od nejlepšího známého řešení. Vyjadřuje kvaltu navštívených řešení v průběhu celého prohledávání. Vyjadřuje kvaltu nejlepších nalezených řešení v průběhu celého prohledávání. Vyjadřuje časovou náročnost průběhu algortmu. V případě TSP vyjadřuje kvaltu a robustnost navrţeného algortmu. Výsledky nalezené pomocí vytvořeného hybrdního algortmu byly porovnány s jţ dříve naměřeným hodnotam jných autorů a to u takových algortmů, které mají podobné vlastnost jako algortmus navrţený. 5

. Cíle doktorské dsertační práce.1 Hlavní cíl dsertační práce Hlavním cílem dsertační práce je vytpování vhodných heurstckých metod řešících optmalzační problémy typu obchodního cestujícího a vytvoření vlastního algortmu, vyuţívajícího tyto metody, který poskytuje mnmálně stejné výsledky a v kratším čase neţ za pouţtí původních metod. Součástí cíle je rovněţ provedení nezbytných epermentů, které umoţní zjstt kvaltu a charakterstky algortmu vycházejícího z vytvořené modfkace metod.. Další cíle dsertační práce V dsertační prác bude proveden rozbor a analýza vybraných metod globální optmalzace. Otestování navrţeného algortmu na několka třídách testovacích funkcí Prokázat, ţe navrţená metoda bude vyuţtelná pro řešení vybraných optmalzačních problémů. 6

3. Metaheurstky na řešení optmalzačních problémů Jak jţ bylo řečeno výše, algortmus lokálního prohledávání nejprve vygeneruje počáteční řešení a dále se pomocí konkrétní heurstky vybírá takové řešení, které určtým způsobem vylepší hodnotu účelové funkce. Lokální prohledávání má však jednu stnnou stránku a to, ţe hodnota účelové funkce nemůţe být po určtém počtu přesunů do sousedního řešení dále zlepšována (v případě mnmalzace) a algortmus můţe uváznout v lokálním optmu. Metaheurstky jsou takové heurstcké metody, které jsou vytvořeny, aby za jstých okolností umoţnly opustt lokální mnmum a přejít posloupností teračních kroků do jných částí mnoţny přípustných řešení, kde je jţ naděje nalézt řešení s lepší hodnotou účelové funkce, neţ bylo v nalezeném lokálním mnmu. 3.1 Metaheurstky založené na náhodě 3.1.1 Smulované ţíhání Smulované ţíhání (smulated annealng - SA) [AART89], [DAVI87], [GASS4], [MORR93], [PANU5], [TANG9] je varantou horolezeckého algortmu, v němţ jsou heurstcké kroky směřující k horšímu řešení řízeny určtou pravděpodobností [TAYL97]. Přístup SA je zaloţen na smulování fyzkálních procesů probíhajících př odstraňování defektů krystalcké mříţky. Krystal se zahřeje na určtou (vysokou) teplotu a potom se pomalu ochlazuje (ţíhá). Defekty krystalcké mříţky mají př vysoké teplotě vysokou pravděpodobnost zánku. Pomalé ochlazování systému zabezpečí, ţe pravděpodobnost vznku nových defektů klesá. Př ţíhání se soustava snaţí dostat do takového stavu, ve kterém je její energe mnmální tj. krystal bez defektů. Estuje určtá analoge tohoto přírodního procesu s procesem řešení optmalzačních problémů. V další část probereme podrobněj algortmus SA. Upravená defnce (1) pro SA je vyjádřena následovně: mnmalzuj f() pro X (9) Kaţdý optmalzační problém lze defnovat jako mnmalzační (resp. mamalzační), proto dále v prác budeme místo optmum pouţívat termín mnmum. 7

kde f() je účelová funkce a X je prohledávaný prostor tvořený mnoţnou všech přípustných řešení určených () a (3). Potom řešení * je globálním mnmem v případě, kdy platí, ţe f( * ) f( ), pro všechna S. (1) Aktuální řešení je přeměněno náhodnou transformací (sedmý řádek algortmu) na nové řešení ' z okolí N(). Př SA se neprohledává celé sousedství aktuálního řešení (jako u jných metod) a proto můţe být sousedství defnováno ve větším rozsahu. Tato vlastnost je dána právě procesem náhodné transformace. Původní řešení se nahradí novým ' v následném procesu SA s pravděpodobností dle Metropolsova (11) vzorce: ( f ( ') f ( )) P r (, ') ep. (11) Tep Kde koefcent Tep značí hodnotu teploty, jeţ je v algortmu dále upravována. Jestlţe funkční hodnota nového řešení ' je stejná nebo lepší neţ funkční hodnota původního řešení, tedy f ( ') f ( ), poloţíme pravděpodobnost nahrazení rovnu jedné. V tomto případě je nové řešení automatcky akceptováno do dalšího procesu SA. V případě, ţe funkční hodnota nového řešení ' není lepší neţ funkční hodnota původního řešení, f ( ' ) f ( ), pravděpodobnost akceptování je menší neţ jedna, ale v tomto případě má nové řešení šanc pokračovat v SA. Algortmus smulovaného ţíhání má následující jednoduchou formu podle [KIRK83]: =náhodně vygenerované řešení Tep=T ma, * =, k=1 whle (Tep>T mn and k>) do begn t=, k= whle(t<t ma and k<k ma ) do begn t=t+1 = transformace() 8

f f( ) f() then Pr=1 else Pr= f random<pr then begn = k=k+1 f f()<f( * ) then * = end e f ( ' ) f ( ) Tep end kde: end Tep= *Tep * je nejlepší nalezené řešení v průběhu běhu algortmu, Tep je koefcent teploty je koefcent ochlazování Teplota Tep je ohrančena mnmální a mamální hodnotou T mn Tep T ma, snţování teploty je realzováno po kaţdém provedení vnějšího cyklu. Způsob snţování teploty určuje tzv. plán chlazení. Nejjednodušej je moţné snţovat teplotu pomocí vynásobení koefcentem. Zkušenost ukazují, ţe nejlepší hodnoty koefcentu jsou mez.8 a.99. Ve sloţtějších mplementacích algortmu můţe být rychlost snţování teploty závslá na procentu úspěšných pokusů o překlopení do jného stavu př aktuální teplotě. Celočíselné proměnné t a k jsou počtadla pro vnější resp. vntřní whle-cyklus. Proměnná t zaznamenává celkový počet pokusů SA pro danou teplotu Tep, zatímco proměnná k zaznamenává počet úspěšných pokusů, které byly akceptovány Metropolsovým vzorcem. Pro volbu mamálních hodnot t ma a k ma neestuje všeobecný předps, t ma a k ma jsou obvykle ve vztahu k velkost mnoţny sousedů, hodnota k ma je volena od několka set do několka tsíc a t ma = 1 * k ma. Volba jednotlvých parametrů metody je obvykle uskutečněna na základě zkušeností po mnoha epermentech. Podmínka ukončení algortmu je splněna buď dosaţením mnmální teploty nebo tzv. zmrazením krystalu, tj. neuskutečněním př dané teplotě an jednoho úspěšného pokusu z celkového počtu t ma pokusů o vykmtnutí z pevné pozce v krystalcké mříţce. 9

Reálná proměnná random je náhodně generované číslo z ntervalu (,1). Proměnná * zaznamenává nejlepší řešení v průběhu provádění celého algortmu. Ve všeobecnost proměnná nemusí po skončení SA obsahovat nejlepší řešení. Výkon SA slně závsí na typu snţování teploty. Nkolv překvapvě bylo navrţeno mnoho druhů snţování teploty. Například v [DOWS93] a [LUND86] jsou uvedeny tř způsoby snţování teploty: Postupná redukce teploty: V tomto případě je teplota konstantou pro jstý počet terací (např. výběr náhodných tahů po dobu akceptace konkrétní testovací hodnoty) aţ do doby, neţ je hodnota teploty upravena nějakým pravdlem. Tímto pravdlem obyčejně bývá geometrcká redukční funkce, která hodnotu teploty snţuje tímto způsobem: (Tep) = *Tep, kde < 1. Často pak bývá tento typ snţování teploty nazýván geometrcké ochlazování. Jak jţ bylo uvedeno, nejlepších výsledků bývá dosaţeno za vyuţtí hodnoty v rozmezí.8.99 [LUND86]. Počet terací pro kaţdou hodnotu teploty záleţí na velkost prohledávaného prostoru, a u různých hodnot teploty se můţe měnt. Spojtá redukce teploty. V tomto případě je teplota snţována po kaţdé provedené terac. Redukce teploty je velce pomalá a je vyjádřena vztahem (t) = Tep/(1+b*Tep), kde b je velce malá hodnota. Nemonotónní redukce teploty. Teplota je měněna po kaţdé provedené terac, avšak mohou nastat případy, kdy je za určtých podmínek teplota zvýšena. O tomto typu redukce je také pojednáno v [MORR93]. V lteratuře [KIRK83], [MORR93], [RUSS3] je popsána podrobná teore SA. Byly dokonce dokázány estenční teorémy, za jakých podmínek SA poskytuje globální mnmum funkce f () v defnčním oboru. Často se pouţívá rozšíření SA směrem ke genetckému algortmu (GA) [CHAM95]. Místo jednoho řešení se současně optmalzuje SA malá 3

populace řešení, které s vţdy po určtém počtu kroků s malou pravděpodobností vymění nformac operací totoţnou s kříţením z GA. V lteratuře [OSMA95], [REEV93] jsou popsány různé modfkace metody. 3.1. Metoda Smulated jumpng Varanta SA nazvaná smulované skákání (Smulated Jumpng - SJ) [AMIN99] je relatvně novou metaheurstckou metodou. Metoda je zaloţená na předpokladu, který se vyuţívá ve fyzce. Některé materály obsahující feromagnetcké antferomagnetcké sloţky, jeţ mohou mít mnoho nestablních stavů. Pro tyto typy sloţek je pak mnohem těţší nalézt základní stav (nízkoenergetcký stav, resp. stav odstranění defektu krystalcké mříţky materálu) pouze samotným ochlazováním a proto se vyuţívá jný proces, kdy je tento materál prudce zahříván a poté prudce ochlazován. Tím pádem se dosáhne nízkoenergetckého stavu lépe. SJ se snaţí vyuţívat této teore v oblast kombnatorckých optmalzačních problémů. SJ, narozdíl od SA (kdy se postupně snţuje pravděpodobnost přjetí rostoucí tendence pro mnmalzac), zvyšuje a snţuje tuto pravděpodobnost v průběhu běhu algortmu. Pseudokód je uveden níţe. Ochlazovací a zahřívací postupy jsou navrţeny v [AMIN99] a mohou být různě adaptovány pro různé typy problémů. Algortmus je podobný jako algortmus SA aţ na tu výjmku, ţe pokud není uskutečněn ţádný přesun, teplota je zvětšena. Sníţení teploty se provádí pouze po jstém počtu přesunů (resp. po jstém počtu zvýšení teploty). SJ bylo s úspěchem aplkováno na problém asymetrckého obchodního cestujícího, problémy moblních radových sítí atp. [AMIN99]: Algortmus smulovaného skákání má následující jednoduchou formu podle //typcké parametry pro algortmus (převzato z [AMIN99]) //T =.1, γ = [.1,.], R =.15, MaCykly = 3 begn =náhodně vygenerované řešení * = do for = 1 to MaCykly náhodný výběr bodu y ze sousedství N() Δf = f(y) f () f (Δf < ) 31

= y else f (r < e -Δf/Tep ) = y else Tep = Tep+R/ Tep = γ*tep f (f() < f( * )) * = end whle not ukončovací podmínka end kde: //Akceptována změna //Zahřátí systému //Ochlazení systému * je nejlepší nalezené řešení v průběhu běhu algortmu, r je náhodné číslo z rozsahu,1, R je koefcent zahřátí systému, γ je parametr slouţící k ochlazení systému. 3.1.3 Iteratvní lokální prohledávání Jednou z nejjednodušších metaheurstk pro lokální prohledávání je opakované náhodné generování počátečního řešení, ačkolv to znamená, ţe se všechny předešlé nformace, dosaţené v průběhu prohledávání, ztratí. Sofstkovanější verze tohoto přístupu vyuţívá nformací, které byly zaznamenány v předchozím kroku prohledávacího algortmu a nazývá se teratvní lokální prohledávání (Iterated Local Search) [GASS4], [STÜT99]. Hlavní myšlenkou tohoto přístupu je vyuţtí předcházejícího nalezeného lokálního mnma a záměny (ve většně případů se vyuţje nejlepší nalezené řešení) nebo modfkace řešení (obvykle se provede určtý počet náhodných přesunů v prostoru) pro vytvoření nového počátečního řešení, čímţ se zvyšuje pravděpodobnost navštívení slbnějších oblastí prohledávaného prostoru. Modfkace řešení na základě znalostí předešlých lokálních optm se nazývají kck-moves [STÜT99] a pomáhají zajstt únk z lokálních optm. Rozdíl mez tímto 3