03 - Heuristicki Pristupi I Metodi Lokalnih Pretraga

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 47

Хеуристички приступи и

методи локалних претрага


M.Божић
МВИ-3
Садржај

• Рјешавање проблема помоћу хеуристике


• Примјена “доброте” хеуристике у рјешавању
проблема
• Алгоритми локалног претраживања и проблеми
оптимизације
• Алгоритам симулираног стврдњавања
• Градијентне методе
• Закључци
Примјена хеуристике у рјешавању
проблема
• Термин хеуристика долази из грчког језика и има значење
открића (проналаска), а хеуристички методи су засновани на
искуству, рационалним идејама и искуственим правилима.
• Људи много користе хеуристику у рјешавању свакодневних
проблема од “једноставних” као што је препознавање шефа до
сложених као што је вожња млазног авиона у комплетно новом
просторном окружењу.
• Ми учимо хеуристички кроз наше животе. И то је оно гдје
рачунари “падају”. Исти не могу да науче “знање засновано на
здравом разуму” или барем не тако брзо као људи.
• Представљање хеуристике у рачунарима је главни проблем ВИ.
И врло једноставна хеуристика коју може да научи мало дијете
врло брзо може бити врло тешка за представљање помоћу
рачунарског програма.
Примјена хеуристике у рјешавању
проблема(1)
• Примјер

За балансирање оловке у вертикалном положају на длану (или


прсту) ако су дозвољена само два смјера (напријед и назад) се
своди на једноставну хеуристику:

АКО оловка пада напријед/назад ТАДА гурај руку напријед/назад

• Хеуристичка правила за рјешење овог задатка у стварности


могу бити много сложенија. Напримјер, она могу узети у обзир и
брзину кретања оловке. Али њихов број је око десетак.
Међутим, да ли је то све што користимо када рјешавамо овај
компликовани проблем?
--Да ли је могуће обучити рачунар са овим хеуристикама?
Рјешавање проблема помоћу хеуристике

• Колико хеуристичких правила користимо када,


напримјер, печемо јаја?
--Да ли ћемо користити “милион” правила за
одређени број различитих могућих ситуација које се
могу појавити, таквих као што је величина тигња,
величина јаја, температура гријача, преференције
оних који чекају да једу, расположивост различитих
додатака, итд.?
--Или ћемо користити мали број једноставних
правила?
Друга сугестија изгледа много реалније, јер не
можемо памтити “милионе” правила које користимо у
извршавању свакодневних једноставних и
компликованих задатака.
Рјешавање проблема помоћу
хеуристике(1)
• Али, како се програмом може представити
овај мали број правила за рјешавање
посебног проблема?
• Да ли можемо представити “здраворазумске”
вјештине и направити рачунарски програм
којим се балансира изврнуто клатно или
управљају неки други објекти и процеси, као
што су влажност и температура у соби, или
летење и слијетање авиона?
Рјешавање проблема помоћу
хеуристике(2)
• Било који возач зна да паркира ауто. Возачи
примјењују “здраворазумско” знање и вјештине. У
сваком моменту ситуација је мање или више
различита од оне с којом су имали искуства раније.
• Да ли је могуће “здрави разум” обичног возача
представити програмом у рачунару који ће
аутоматски паркирати ауто када су познати
параметри његове позиције?
• Ови примјери показују фасцинантност хеуристика-
њихову снагу и експресивност, “мистерију” њихове
интерпретације у човјечијем мозгу, и изазов за
њихове имплементације помоћу рачунара.
Филозофија хеуристичког приступа у
рјешавању проблема
• Када је проблем дефинисан претпоставља се да је
дат скуп од n нез.улазних промјенљивих (атрибута)
x1 , x2 ,..., xn
и дефинисан скуп од m промјенљивих рјешења
y1 , y2 ,..., ym
за које су опсервације или правила позната.
• Свака могућа комбинација вриједности
промјенљивих улаза се може представити вектором
d = (a1, a2,. . . , an) у простору домена D и свака
могућа вриједност излаза вектором s = (b1, b2, . . . bm)
из излазног простора S (дефинисан скуп од m
промјенљивих рјешења).
Филозофија хеуристичког приступа у
рјешавању проблема(1)
• Идеалан случај је када имамо формулу ( y=f(x) ) на основу које
се за сваку вриједност вектора улаза x може израчунати вектор
излаза y (оптимално рјешење). Међутим, за већину реалних
проблема ВИ не постоје такве формуле.
• Уопштено гледано, рјешавање проблема се може посматрати
као пресликавање простора улаза домена D у простор рјешења
S. Обично је број свих могућих рјешења и за једноставне
проблеме врло велик. Исцрпљујућа претрага у простору
рјешења S значи тестирање свих могућих вектора из овог
простора и проналажење најбољег за дату вриједност вектора
улаза. Ово није реалистично и мора се пронаћи начин како да
се ограничи зона (област) у којој ће се тражити рјешење. Ако
се погледа како људи рјешавају проблеме може се уочити да
они не испитују сва могућа рјешења иако су у овоме успјешни.
Разлог успјешности лежи у томе што они користе претходно
искуство и хеуристичка правила, како би тражење
усмјерили на одређене ограничене области у којима би се
могло пронаћи прихватљиво рјешење.
Филозофија хеуристичког приступа у
рјешавању проблема(2)
• Хеуристике су начини помоћу којих се праве ограничене
пројекције простора домена D у одређене “закрпе” простора
рјешења S.
Простор домена

Хеуристика

Простор рјешења
Примјена “доброте” хеуристике у
рјешавању проблема
• У принципу, хеуристички приступ не гарантује да ће
се пронаћи најбоље рјешење, али омогућава да се
знатно скрати вријеме и смањи цијена
проналажења рјешења.
• У случају многих проблема не постоје алгоритми и
формуле за налажење егзактних рјешења. Неки
примјери су: дијагностка кварова код аута,
дијагностике у медицини или креирање неког плана.
Сви ови проблеми спадају у област ВИ.
• Процес тражења рјешења се може убрзати ако се
може дефинисати “доброта” хеуристике за свако
стање s из простора рјешења S у облику функције
h(s)=c(s,g), гдје је g циљно стање.
Илустрација хеуристика

• За хеуристику H1 се може рећи да је “информативнија” од H2 ако


функција цијене h има мању вриједност за H1 него за H2. Хеуристике се
могу илустровати “закрпама” у простору рјешења проблема чији облик
зависи од програмске реализације у рачунару.
Оптимално
рјешење
Простор
рјешења

• “Информативнијој” хеуристици одговара мања “закрпа”


Општи облик хеуристике

• Хеуристика садржи симболе, наредбе, концепте, и независно од


тога како су онe добро дефинисани, општи облик хеуристичког
правила је
АКО <услов> TAДА <закључак>
• Коју врсту хеуристике за рјешавање датог проблема можемо
користити када на располагању имамо само неке претходно
сакупљене податке?
• Тада се може користити сљедеће правило:
АКО је за нови улазни вектор d’ сличан неком улазном вектору
di из скупа претходно сакупљених података, ТАДА се може
претпоставити да је и ново рјешење проблема s’ за d’ слично si
добијеном за улаз di.
• Уопштено речено, проблемско знање за рјешавање неког
проблема се може састојати из хеуристичких правила или
формула које представљају експлицитно знање, а
претходно знање садржано у сакупљеним подацима
представља имплицитно, скривено знање.
Општи облик хеуристике(1)
• Знање представља везе између улазних података
(независних промјенљивих) из домена проблема и излазних
вектора (зависних промјенљивих) из простора рјешења.

Простор домена Простор рјешења

Правило
Могућа
рјешења

Правило Циљна
функција
Системи за рјешавање проблема

• Циљ овог система је да се пронађе пресликавање, простора


домена у простор рјешења, које на најбољи начин повезује
векторе података из улазног и излазног простора. Оптимално
(жељено) пресликавање се назива циљном функцијом. Могу
се разликовати два типа циљних функција:
(1) израчунљиве, ако постоји алгоритам или хеуристика за
њихово одређивање, и
(2) случајне функције, када пресликавање има стохастички
карактер.
Пажну ћемо поклонити типу (1), који укључује и хаотичне
функције које се манифестују као да су случајног карактера.
• Историјски (претходно сакупљени) подаци се могу
представити скупом парова улазних и излазних вектора (di,si),
i=1,2,..p.
• Хеуристичка правила у бази знања се могу представити као
IF Xj THEN Yj , j=1,2,…N,
гдје Xj одговара скупу улазних вектора (“закрпа” из простора
домена проблема), а Yj скупу излазних вектора (“закрпа” из
простора рјешења).
Системи за рјешавање проблема(1)

• Хеуристичка правила се требају артикулисати или научити помоћу


система на бази претходног искуства стеченог на основу успјешних
рјешења датог проблема или на основу сакупљених података.
• За учење хеуристике на основу прикупљених података су потребни
методи обучавања, то јест потребан је систем обучавања, односно
“како да се науче хеуристичка правила на бази прикупљених
података”.
• Научене информације помоћу система обучавања могу или не могу
бити схватљиве за појединце. Такви системи могу да комбинују знање
које посједују поједини људи са знањем које ће бити стечено помоћу
самог система.
• На располагању може постојати формула која даје парцијално
рјешење за дати проблем. Ова формула се такође може уградити у
систем засноваван на знању (knowledge-based system) зa рјешавањe
датог проблема.
Системи за рјешавање проблема(2)

• Методи и средства који се користе за постизање пресликавања


којим се рјешава дати проблем могу бити:
-- симболички, који су намијењени за рјешавање типичних
проблема ВИ, али ипак не могу да ријеше овај проблем
комплетно. Они не обезбјеђују средства за одређивање
партикуларних пресликавања, за обучавање којим се
апроксимира циљна функција, за адаптивно обучавање
када кроз процес рјешавања пристигну нови подаци који
представљају несигурно и не сасвим егзактно знање.
-- методи фази логике и неуронских мрежа испуњавају
посљедње захтјеве, који су инхерентни њиховим
карактеристикама, посебно када се комбинују са симболичким
методама ВИ.
Фази системи и НМ

-- Фази системи су одлична средства за


представљање хеуристичких и правила типа “здравог
разума”.
-- Неуронске мреже (НМ) су јако ефикасне за
обучавање хеуристике из расположивих података.
• Фази системи и НМ су такозвани универзални
апроксиматори у смислу да за дату непрекидну
циљну функцију постоји фази систем (постоји НМ)
помоћу којег се ова функција може апроксимирати са
произвољним степеном тачности.
Алгоритми локалног претраживања и
проблеми оптимизације
• До сада разматрани алгоритми претраживања су пројектовани
на такав начин да се изврши систематско испитивање
простора претраге. То се чини на бази меморисања једне или
више путања и биљежењем које су алтернативе испитане, а
које нису, на свакој тачци путање. Када се пронађе циљ, тада
путања до циља представља рјешење за дати проблем.
• У многим проблемима путања до циља је ирелевантна. Такве
класе проблема укључују многе важне примјене као што су:
пројектовање интегрисаних кола, распореди машина у
фабричким халама, разне оптимизације у телекомуникационим
мрежама, рутирање возила и сл.
• Ако путања до циља није важна тада се не мора водити рачуна
о самим путањама.
Алгоритми локалног претраживања и
проблеми оптимизације(1)
• Алгоритми локалног тражења оперишу са
подацима о једном текућем стању (а не са више
могућих путања) и генерално праве кретање само
према стањима у њиховој околини (у сусједству).
• Премда алгоритми локалног претраживања нису
систематичног карактера, они имају двије кључне
предности:
(а) захтијевају само ограничен меморијски простор и
(б) помоћу њих се може пронаћи рјешење у простору
стања који није ограничен, а за које су алгоритми
систематског претраживања неподесни.
Алгоритми локалног претраживања и
проблеми оптимизације(2)
• У додатку, алгоритми локалног претраживања се
могу користити за рјешавање чисто оптимизационих
проблема, у којима је циљ да се пронађе најбоље
рјешење сагласно дефинисаној критеријумској
функцији.
• Многи оптимизациони проблеми се не могу уклопити
у раније помињане моделе претраге. Напримјер, у
природи се одвија процес одржања врста према
критеријумској функцији - прилагођеност
репродукцији - која према Дарвиновој теорији
еволуције може да се посматра и као оптимизација.
Али овдје не постоји “тест за циљ”, не постоји
“цијена коштања” путање за овај проблем.
Оптимизација
Улаз:
• Скуп рјешења или
• Генератор за рјешења
Циљ:
• Пронаћи најбоље рјешење или
• Пронаћи довољно добро рјешење
Функција доброте рјешења:
• Функционално представљање доброте
• Функција која зависи од рјешења
За еволуционе алгоритме рјешење је јединка
Оптимизација(1)

• Ако се критеријумска функција односи на цијену


коштања тада имамо у виду проблем
минимизације—налажење глобалног минимума.
• Када се критеријумска функција односи на неку
мјеру доброте система ради се о проблему
налажења глобалног максимума.
• Алгоритми локалног тражења су усмјерени на
испитивање облика критеријумских функција
(landscape).
• Aлгоритам је комплетан ако омогућава да се
пронађе циљ (минимум/максимум) када исти постоји.
Оптималним алгоритмом се проналази глобални
минимум/ максимум.
Алгоритaм пењања на врх (hill-climbing)
• Ако се ради о проблему чија функција доброте зависи од два
параметра x и y, и који имају ограничене вриједности, тада
критеријумска функција може да изгледа као на Сл. .

Глобални максимум

Локални максимум
Функција
доброте
f(x,y)

• Кад полазећи у случајно изабраном правцу у новој сусједној тачки


критеријумска функција има већу вриједност та тачка се прихвата као
нова полазна, иначе се поново бира нова сусједна тачка.
Примјер фунције са више екстремума

Функција двију промјенљивих са више максимума и минимума


Алгоритм пењања на врх(1)

• Критеријумска функција може да се односи на цијену коштања


(минимизација) па се онда може говорити о алгоритму силаска
у долину (valley descent).
• Један од начина да се спријечи “заглављивање” алгоритма у
неком од локалних екстрема је да се поступак понови из
стартних тачака које припадају различитим подпросторима од
комплетног простора претраживања.
Алгоритам директног тражења

• Директан метод тражења оптимума критеријумске функције f (x)


унутар затвореног скупа x S Rn може се стартовати помоћу
промјене прве координате x1 почетног вектора x за
одговарајући корак λ и израчунати f (x1 + λ,x2,...,xn).
• Ако је f (x1 + λ,x2,...,xn) > f (x), тада је правац тражења рјешења
(према максимуму критеријумске функције) успјешан и
поставља се x1 = [x1 + λ,x2,...,xn]T
• У супротном испитује се да ли је f (x1 - λ,x2,...,xn) > f (x), па ако је
задовољена ова неједнакост поставља се x1 = [x1 - λ,x2,...,xn]T.
• Ако ни једна од претходних неједнакости није задовољена
поставља се x1 = x.
Алгоритам директног тражења(1)

• На аналоган начин како је израчунато x1 испитују се утицај


промјена друге координате x2 вектора x за одговарајући корак
+λ (или - λ) и тако редом до xn (са промјенама xn за ±λ).

• Ако се са кораком λ не могу добити побољшања, то јест ако је


x = xn, тада се претходни поступак може поновити са смањеним
кораком постављајући λ := αλ, гдје је 0 < α < 1.
Алгоритам симулираног стврдњавања

• Алгоритм симулираног стврдњавања (Simulated annealing) се


заснива на идеји случајног “бјежања” из локалних максимума
дозвољавајући кретање у “лошем” правцу, али да се
фреквенција и величина тих покрета постепено смањује са
протоком времена.
• На фиксној “температури” Т вјероватноћа заузетости стања x је
одређена Болцмановом расподјелом

p( x)   exp( E ( x) / kT )
тако да ако температура опада споро слиједи да можемо
очекивати достизање најбољег стања.
Алгоритам симулираног стврдњавања(1)

• Претпоставимо да се ради о проблему


проналажења минимума функције f (x). Нека је Pij
вјероватноћа преласка из тачке xi у тачку xј тада се
Pij израчунава сагласно
 1 ako f ( x j )  f ( xi )
Pij    f ( x j ) f ( xi ) (1)
e kT
иначе

гдје је k Болцманова константа и Т “температура”


система.
• Са порастом Т смањује се вјероватноћа тражења
рјешења у правцу са већом вриједности
критеријумске функције.
Алгоритам симулираног
стврдњавања(2)
• Механизам генерисања новог рјешења може да
буде додавање нове случајне промјене на текуће
рјешење, као напримјер,
x(t+1)=x(t)+D(t)r(t)
гдје r(t)~U(-1,1)nx и D дијагонална матрица која
дефинише максималну дозвољену промјену у било
којој од nx координатa вектора x. Када се пронађе
побољшано рјешење тада
D(t+1)=(1-α)D(t)+αωR(t)
гдје је R(t) дијагонална матрица чији су чланови
магнитуде успјешних промјена направљених у свакој
промјенљивој, а α и ω константе.
Алгоритам симулираног стврдњавања(3)

• Код експоненцијалног “хлађења”: T(t+1)=αT(t), 0<α<1


• Код линеарног “хлађења”:T(t+1)=T(t)-ΔT, гдје је ΔT нека константа,
напримјер Т(nt)/nt у току неколико сљедећих итерација; T(0) je велика
почетна температура, а Т(nt) је температура у nt итерацији.
• Алгоритам је дат следећим псеудо кодом:
Изабери почетно рјешење x(0);
Постави почетну температуру Т(0);
t=0;
Понављај
Генериши ново рјешење, x;
Одреди, f(x);
Одреди вјероватноћу прихватања рјешења Pij користећи једн. (1)
Ако је U(0,1) ≤ Pij тада
x(t)=x;
крај
док се не задовољи критеријум заустављања;
Рјешење је x(t)=x;
Градијентне методе

• Ове методе такође спадају у групу метода локалног


претраживања.
• Дат је скуп примјера

гдје је xi улаз (напримјер, нека слика), а излаз yi (лабела која се


односи на одређену класу слика, напримјер 5 означава да се
ради о слици аута).
• Задатак класификације је бољи уколико је укупна грешка за
дати скуп примјера мања.
Градијентне методе(1)
• Критеријумска функција, која се у поменутом примјеру може
сматрати функцијом цијене коштања L(f (x,W))=F(x,W) (функција
губитака), показује колико је “добар” изабрани предиктор f (x,W)
за дати скуп примјера.
• Цијена коштања за цијели скуп података

• Подешавање параметара (тежинских коефицијената) W


предиктора се врши на такав начин да се постигне минимална
вриједност цијене коштања L.
• Израчунавање градијента функције цијене коштања може се
обавити нумерички или аналитички.
Градијентне методе(2)

• У случају функције F једне промјенљиве (1-димензионални


случај), према дефиницији деривација је

• У случају функције више промјенљивих градијент је вектор


парцијалних деривација по свим димензијама.
• Правац најбржег опадања неке функције се поклапа са
правцем негативног градијента.
Градијентне методе(3)
• Када се ради о подешавању параметара (напримјер, неког
класификатора) обично се има у виду поступак којим се постиже
најмања цијена коштања (или губитака) дата функцијом
L=F(W,x)
• На основу скупа података парова

гдје је x улаз, а y излаз (или класа) којој припада тај улаз,


успјешност класификовања зависи од изабраног предиктора
f(x,W), а отуда је и цијена коштања (L=F(W,x)) функција од
параметара W.
Примјер класификације
• Линеарни предиктор
Илустрација нумеричког поступка
• Нумерички поступак се заснива на апроксимацији парцијалне
деривације фунције L по свакој координати (димен.) вектора W.
Илустрација нумеричког поступка(1)
• Нумерички поступак се заснива на апроксимацији парцијалне
деривације фунције L по свакој координати (димен.) вектора W.
Аналитички поступак одређивања
градијента
• У односу на нумеричке поступке, ефикаснији начин са рачунског
аспекта је аналитичко одређивање градијента (на основу
аналитичог израза за функцију коштања и аналитичког израза
за функцију предиктора).

(neka funkcija
podataka i W)
Поређење нумеричког и аналитичког
поступка
• Нумерички поступак одређивања градијента:
-апроксимативан,
-дуже траје,
-једноставан.
• Аналитички поступак одређивања градијента:
-тачан,
-брз,
-склон грешкама
• У пракси се користи аналитички поступак, али и контрола у
имплементацији помоћу нумеричког градијента.
Алгоритам градијентног спуштања (АГС)

• Тражење тачке минимума путем кретања у правцу супротном од


правца градијента функције коштања у текућој тачци:
Inicijalizacija

veličina koraka gradijent


• Итеративни поступак оптимизације зависи од два параметра:
величине корака η, који одређује агресивност кретања према
минимуму, и
броја итерација Т.
Алгоритам градијентног спуштања
(1)
• Подешавање параметара у некој итерацији алгоритма се врши у
правцу негативног градијента.

tekuća vrijednost W

pravac negativnog gradijenta


Трајекторија кретања према
минимуму

https://docs.google.com/file/d/0Byvt-AfX75o1ZWxMRkxrUFJ2ZUE/preview
Зависност трајекторија од почетних
услова

L(w0, w1)

w11
w0 0
Зависност трајекторија од почетних
услова(1)

L(w0, w1)

w11
w0 0
Закључци

• Перформансе хеуристичких алгоритама претраживања зависе


од квалитета хеуристичке функције. Некада се може изабрати
добра хеуристика тако да се олакша дефиниција проблема
помоћу прерачунавања цијена коштања за подпроблеме који
постоје у бази података, или на основу обучавања из искуства
са одређеном класом проблема.
• Методи локалног претраживања, као што је алгоритам пењања
на врх, оперишу са комплетним формулацијама стања и у
меморији чувају само мали број чворова.
• Методи стохастичког претраживања, као што је алгоритам
симулираног стврдњавања, могу да пронађу оптимална
рјешења када се изабере адекватан графикон “хлађења”.

You might also like