BINÁRNÍ KÓDOVÁNÍ A HC ALGORITUS Radomil atouše Ústav automatizace a iformatiy, FSI VUT Bro Abstrat Aglicý evivalet ázvu horolezecý algoritmus je hill climbig, dále tedy HC algoritmus, ebo zráceě HCA. Název v podstatě charaterizuje přístup metody řešeí optimalizačího problémů, tj. postup horolezce, terý poud se má čeho chytit, může jít dál. V případě matematicy pojatého horolezecého algoritmu se tedy jedá o postup vhodým směrem, terým je samozřejmě rádoby extrém úlohy. Vhodost směru postupu je určea a záladě specificého prohledáváí oolí atuálího řešeí. Volbě tohoto oolí a metodě ódováí HCA, terý byl implemetová v prostředí atlab, je věová teto příspěve.. Biárě reprezetovaý HC algoritmus V otextu optimalizačích metod můžeme HC algoritmus zařadit metodám, teré směr ejvhodějšího postupu určují a záladě prohledáí svého oolí a určeí ejstrmějšího spádu (steepest descet) či růstu. Z tohoto fatu vyplývá, že výpočtu eí potřeba gradiet, ale pouze apriorí zalost hodot účelové fuce. Prezetovaý HCA je založe a biárí reprezetaci parametrů a jeho realizace odpovídá ásledujícímu postupu: o Pro atuálí řešeí (tj. i prví aproximace) se v metricém Hammigově prostoru geeruje pomocí oečého souboru trasformací určité oolí. o Poté se účelová fuce extremalizuje a tomto oolí, přičemž může být zahruto i původí (zdrojové) řešeí. o Zísaé řešeí se použije jao zálad pro geerováí ového oolí. o Uočovací ritérium může být voleo apřílad a záladě max. počtu iterací [3] ebo a záladě eschoposti algoritmu geerovat lepší řešeí []. Záladím roem algoritmu je vygeerovat oolí původího řešeí a záladě zvoleé metodiy. Příladem taovéhoto rou je realizovaé oolí 8-mi bitového řetězce a ásledujícím obrázu. Bitový řetězec uprostřed slouží jao zálad uvažovaé trasformace, tedy tzv. jádro, či střed. Oolí je vytvořeo vždy egací jedoho bitu. Bitové řetězce se ohodotí, a ejvhodější z ich postupuje do další iterace jao ové jádro. Obr. : Geerováí oolí 8-mi bitového řetězce pomocí jedobitové iverze.
Na valitě tohoto oolí pa bude bezprostředé záviset loálost či globálost uvedeého heuristicého postupu. Pro další popis metody uvažujme stadardí problém optimalizace fuce f(x) a disrétí oblasti D. Equatio Chapter (Next) Sectio { f x x D}, resp. max { f ( x) x D} mi ( ) Tedy hledáí taového x!, aby platilo: () x! = arg mi f ( x), resp. x! = arg max f ( x ). (2) x D Disretizace oblasti D R je dáa relací reprezetací a reálých proměých x. Protože platí řešeí úlohy () ásledující vztah (3). l a {0,} { } x D Γ: 0, l D, tedy zavedeou biárí x= Γ( a ), považujeme dále za optimálí ( ) a = arg mi f Γ( a ) (3) opt Nad touto biárí reprezetací defiujeme určitou relaci sousedosti, terá pro aždé přípusté a jádro umožňuje staovit oolí a oolí S(a jádro ). Volba trasformačí fuce S, bude determiovat chováí a charater HC algoritmu. Poud bude mít stochasticý charater, můžeme mluvit o stochastico-heuristicém HC algoritmu, v opačém případě o heuristicém HC algoritmu. Realizovaá atlab implemetace HC algoritmu má ásledující specifia: o Prví aproximace řešeí je algoritmem volea áhodě. o Následující aproximace jsou zísáy pomocí specificé (specificých) bitových trasformací. Tyto trasformace již mají determiisticou povahu. o Neí připuštěo zhoršeí hodot účelové fuce a iteračí cylus algoritmu je zastave poud eí daou trasformací alezeo lepší řešeí. % biárí HC algoritmus (miimalizace) a opt = áhodě vygeerovaý či zvoleý biárí vetor repeat a jádro = a opt a oolí = S(a jádro ) a = arg mi f Γ( a) util opt f a S ( ajádro ) ( ) ( Γ( aopt )) f ( Γ( a jádro) ) % předem zvoleá trasformačí fuce % výběr ejlepšího řešeí % test uočeí Obr. 2: Pseudo-ód: HC algoritmus s testem vality řešeí. Realizovaý HC algoritmus je tedy stochasticý pouze volbou své prví iterace a další průběh je pevě urče zvoleou trasformací. Iteračí výpočet je uoče v oamžiu, dy elze pomocí užité trasformace dosáhout lepšího řešeí.
# : 0000 0000 F6_mi= 48.30 x:-0.576 x2:-4.2480 # 2: 0000 0000 F6_mi= 30.055 x:-0.576 x2:-0.767 # 3: 0000 0000 F6_mi= 2.4488 x:-0.72 x2:-0.767 # 4: 0000 0000 F6_mi= 6.708 x:-0.72 x2:-.230 # 5: 00 00 F6_mi= 4.5732 x:-0.0488 x2:-.230 # 6: 00 00 F6_mi= 2.690 x:-0.0488 x2:-.0742 # 7: 00 00 F6_mi=.6208 x:-0.0488 x2:-0.9668 # 8: 00000000 00000000 F6_mi=.4527 x: 0.039 x2:-0.9668 # 9: 00000000 00000000 F6_mi=.2964 x: 0.039 x2:-0.996 #0: 0000000 0000000 F6_mi=.650 x: 0.0293 x2:-0.996 #: 000000000 000000000 F6_mi= 0.9952 x: 0.0000 x2:-0.996 >> Obr. 3: Fučí optimalizace algoritmem HCA-HC - úloha F6, výpis z průběhu výpočtu. Uáza realizovaého výpočtu fučí miimalizace je demostrováa výpisem (Obr. 3). Použitá metoda trasformace S odpovídá azačeému postupu dle (Obr. ). Čísla s prefixem # ozačují číslo iterace výpočtu, biárí hodoty odpovídají příslušým a opt vetorům, dále ásleduje fučí hodota jao ritérium optimality a příslušé deódovaé reálé parametry, ze terých je tato hodota vypočtea. Pro rychlejší a ázorější popis úlohy ozačeé jao F6 je přílad doplě graficým zázorěím průběhu optimalizace (Obr. 4.). V příladu je užito deódováí pomocí Grayova biárího ódu. Zvoleá disretizace prostoru odpovídající 0 bitové reprezetaci reálých parametrů odpovídá hodotě možé chyby ε = 9.8E-03. 5 4 3 2 0 - -2-3 -4 0.5 0-0.5 - -.5-2 -2.5-3 -3.5-4 -5-5 -4-3 -2-0 2 3 4 5-2.5-2 -.5 - -0.5 0 0.5.5 2-0.4-0.92-0.6-0.94-0.8 - -0.96-0.98 - -.2 -.02 -.4 -.04 -.6-0.6-0.4-0.2 0 0.2 0.4 -.06-0.06-0.04-0.02 0 0.02 0.04 0.06 0.08 Obr. 4: Fučí optimalizace algoritmem HCA-HC - úloha F6, zobrazeí průběhu výpočtu.
Jaéoliv, v literatuře prezetovaé variaty HC algoritmu, jsou v podstatě založey a odlišé metodě trasformace S, tedy způsobu defiice relace sousedosti. K výzamým variatám můžeme zařadit:! HC algoritmus s mutací Teto algoritmus využívá tvorbě oolí, tedy vetorů a oolí, stochasticý operátor mutace popsaý v předchozím odstavci. Pomocí tohoto operátoru trasformuje biárí vetor a jádro a možiu vetorů a oolí. Kardialita této možiy je z oboru " a je předem daá.! HC algoritmus s učeím [5] Tato modifiace HC algoritmu se saží pomocí specificého mechaismu avrhout ové oolí vetoru a jádro ta, aby pravděpodobost vziu vetoru a oolí odpovídala jistým pravidlům. echaismus využívá tzv. pravděpodobostí vetor, terý determiuje pravděpodobosti stavů jedotlivých bitů geerovaých vetorů oolí a oolí. Vhodé astaveí tohoto pravděpodobostího vetoru je realizováo pomocí Hebbova pravidla učeí.! Tabu search (zaázaé prohledáváí) [6] Glover avrhl modifiaci HC algoritmu, terá využívá možiy přípustých trasformací a tzv. rátodobou paměť. Pomocí této paměti jsou zazameáy po jistý čas iverzí trasformace trasformací, teré vedly alezeí ejlepšího loálího řešeí. Tyto iverzí trasformace jsou při geerováí ového oolí vetoru a jádro zaázáy, tedy tabu. Rozšířeí metody zaázaého prohledáváí využívá dalšího mechaizmu, terý je ozače ja tzv. dlouhodobá paměť. Ta v podstatě slouží pealizaci těch trasformací, teré se v průběhu optimalizace využívaly příliš často. 2. Trasformačí fuce Navržeé a realizovaé HC algoritmy schématicy popsaé dle (Obr. 2) jsou založey a libovolé, ale pevě daé možiě trasformací příslušých biárích vetorů [2]. { } a 0,, pro " (...déla biárího vetoru) (4) ožiu avržeých trasformací ozačme H a jedotlivé trasformace jao t. { } H = t0, t,..., t (5) Užitím trasformace t H realizujeme zobrazeí biárího vetoru a jádro a možiu A oolí biárích vetorů a oolí, dále též ozačovaou jao matici A oolí. A a {,, }, = a a A = $, pro c " ac oolí c oolí (6)
( ) { } { } t: a A, tedy t: 0, 0, jádro oolí Kardialita c možiy A oolí je dáa zvoleou trasformací t a délou biárího vetoru a jádro. c ( t, ) = Aoolí =, pro {0,,, }, (8) de idex ozačuje příslušost e orétímu prvu z možiy H dle (5). K realizaci možiy trasformací H je zavede systém matic. O matici příslušející daé trasformaci t budeme hovořit jao o matici -tého řádu a ozačíme ji, teto řád eí totožý s řádem čtvercové matice. c (7) t,, pro {0,,, } (9) Defiice: matice řádu, zráceě, je taová matice, jejíž řády reprezetují všechy body Hammigova metricého prostoru, se vzdáleostmi od počátu (tj. ulového vetoru dély ) ve smyslu Hammigovi metriy ρ H. Schéma možé ostruce matic je ásledující: ( 0 0 % 0 ) 0,,2, =, 0,2 % 0, 02, 2,2 = $ & 0c, c, # 2,,2 0,3 % 0, 2, 02,2 2,3 02, = $ & 0c 2, c2, c 2, $ 0,,2 %, 2, 02,2 = $ & c, 0 c, = (,,2 %, ). (0) Pro výpočet matice A oolí (6) připomeňme, že realizovaé operace jsou provedey v lieárím prostoru ad specificým tělesem Z 2 = {0,}.
K výpočtu matice A oolí je dále třeba zavést operaci realizující tzv. repliaci vetoru a jádro. Tato operace vytvoří matici A jádro obsahující po řádcích ideticé opie biárího vetoru a jádro. Počet řádů této matice odpovídá počtu řádů příslušé matice a tedy ardialitě c cílové možiy A oolí dle (8). A jádro a, jádro = $ c, jádro a () Nyí pomocí (9), respetive (0) může být realizováa příslušá trasformace t (7). t : A = A, pro t H a = 0,,..., oolí jádro (2) O trasformaci t lze říci, že geeruje úplou možiu vetorů, teré jsou ve smyslu metriy ρ H ( ρ ( xy, ) = x y ) vzdáley od počátu o hodotu. H i i i= t ρ ( a, a ) =, pro a A H jádro oolí oolí oolí (3) Zobecěí vztahu (2) pro libovolý, ale pevě daý výběr prvů z možiy H, je zřejmé. ožiu vybraých, a dále pro HC algoritmus (Obr. 2) pevě daých trasformací ozačíme H v. Hv H ožia H v vzájemě jedozačě určuje trasformaci S, terá je sjedoceím trasformací z této možiy. (4) A jádro, Hv S, a tedy S: A =, (5) OKOLÍ $ A jádro, v v de i I a I je idexová možia vybraých prvů z možiy H defiovaá výběrem H v. 3. Realizovaé trasformace a závěr Předchozí apitola uvedla avrhovaou třídu biárích trasformací H (5) a demostrovala matematicý aparát pro jejich realizaci (2), respetive (5). Vzhledem e ombiatoricé áročosti byly pro praticou realizaci vybráy trasformace t 0, t a t 2, respetive zbývající, ovšem modifiovaé trasformace z možiy H.
K další práci bylo pro výběr trasformací H v, respetive trasformaci S, zavedeo ásledující zjedodušující ozačeí:! trasformace ozačeé HC,HC2 a HC2 jsou z možiy H v = {t 0, t, t 2 },! trasformace ozačeé HCxR jsou výběrem H v z H, přičemž ardialita příslušých moži A oolí, i je reduovatelá. Pro apliaci HC algoritmů musí být zvážea povaha úlohy. Implemetovaé a teoreticy popsaé [2] variaty samozřejmě dispoují možostí volby způsobu biárího deódováí i rozsahem biárí reprezetace. Disutovaé algoritmy byly realizováy v prostředí atlab a jsou pro odzoušeí volě dispozici po dotazu a e-mail autora tohoto čláu. Referece [] atouše, R., Hill Climbig ad 0/ Kapsac Problem, 7 th Iteratio Coferece ENDEL 200, Bro, Czech Republic, 200, ISBN 80-24- 235-5. [2] atouše, R., Vybraé metody umělé iteligece implemetace a apliace, Ph.D. práce v oboru Techicá yberetia, VUT Bro, Bro, Czech Republic, 2004. [3] Kvasiča, V., Beňušová, Ĺ., Pospíchal, J., Faraš, I, Tiňo, P., Kráĺ, A.: Úvod do teórie euroových sietí. Vydavateĺstvo IRIS, Bratislava, 997, ISBN 80-88778-30-. [4] Kvasiča, J., Pospíchal, J.: Evolučí algoritmy, Tabu search, Computer word 95, Praha, 995. [5] Kvasiča, V., Pospíchal, J., Peliá,.: Hill Climbig with Learig. Proceedigs of ENDEL 95, st Iteratioal Coferece o Geetic Algorithms, Bro, 995, pp. 65-70. [6] Glover, F.: Tabu Search Part I. ORSA Joural of Operatios Research., 998. Radomil atouše, matouse@fme.vutbr.cz ODBORNÝ ASISTENT ODBORU INFORATIKY ÚSTAV AUTOATIZACE A INFORATIKY, FSI VUT V BRNĚ TECHNICKÁ 2896/2, 66 69 BRNO