Rezolvarea problemelor de căutare

download Rezolvarea problemelor de căutare

of 51

Transcript of Rezolvarea problemelor de căutare

  • 8/12/2019 Rezolvarea problemelor de cutare

    1/51

    INTELIGENARTIFICIAL

    Laura Dioan

    Rezolvarea problemelor de cutare

    Strategii de cutare informat

    global i local

    UNIVERSITATEA BABE-BOLYAI

    Facultatea de Matematic i Informatic

  • 8/12/2019 Rezolvarea problemelor de cutare

    2/51

    SumarA. Scurt introducere n Inteligena Artificial (IA)B. Rezolvarea problemelor prin cutare

    Definirea problemelor de cutare Strategii de cutare

    Strategii de cutare neinformate Strategii de cutare informate Strategii de cutare locale (Hill Climbing, Simulated Annealing, Tabu Search, Algoritmi

    evolutivi, PSO, ACO) Strategii de cutare adversial

    C. Sisteme inteligente Sisteme bazate pe reguli n medii certe Sisteme bazate pe reguli n medii incerte (Bayes, factori de

    certitudine, Fuzzy) Sisteme care nva singure

    Arbori de decizie Reele neuronale artificiale Maini cu suport vectorial Algoritmi evolutivi

    Sisteme hibride

    Martie, 2013 2Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    3/51

  • 8/12/2019 Rezolvarea problemelor de cutare

    4/51

    Materiale de citit i legturi utile capitolul II.4 din S. Russell, P. Norvig, Artificial Intelligence:

    A Modern Approach, Prentice Hall, 1995

    capitolul 3 i 4 din C. Groan, A. Abraham, IntelligentSystems: A Modern Approach, Springer, 2011

    capitolul 2.5 din http://www-

    g.eng.cam.ac.uk/mmg/teaching/artificialintelligence/

    Martie, 2013 4Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    5/51

    Rezolvarea problemelor prin cutare Strategii de cutare (SC)

    Topologie n funcie de informaia disponibil

    SC ne-informate (oarbe) SC informate (euristice)

    Martie, 2013 5Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    6/51

    Strategii de cutare informate (SCI) Caracteristici

    se bazeaz pe informaii specifice problemei ncercnd srestrng cutarea prin alegerea inteligent a nodurilor care vor fiexplorate

    ordonarea nodurilor se face cu ajutorul unei funcii (euristici) deevaluare sunt particulare

    Topologie Strategii globale

    Best-first search Greedy best-first search A* + versiuni ale A*

    Strategii locale Cutare tabu Hill climbing Simulated annealing

    Martie, 2013 6Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    7/51

    SC n structuri arborescente Noiuni necesare

    f(n) funcie de evaluare pentru estimarea costului soluieiprin nodul (starea) n

    h(n) funcie euristic pentru estimarea costului drumului

    de la nodul n la nodul obiectiv g(n) funcie de cost pentru estimarea costului drumuluide la nodul de start pn la nodul n

    f(n) = g(n) + h(n)

    actual estimat

    start n obiectiv

    g(n) h(n)

    f(n)

    Martie, 2013 7Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    8/51

    SCI Best first search Aspecte teoretice

    Best first search = mai nti cel mai bun Se determin costul fiecrei stri cu ajutorul funciei de evaluare f Nodurile de expandant sunt reinute n structuri (cozi) ordonate Pentru expandare se alege starea cu cea mai bun evaluare

    Stabilirea nodului care urmeaz s fie expandat

    Exemple de SC care depind de funcia de evaluare Cutare de cost uniform (SCnI)

    f= costul drumului n SCI se folosesc funcii euristice

    Dou categorii de SCI de tip best first search SCI care ncearc s expandeze nodul cel mai apropiat de starea obiectiv SCI care ncearc s expandeze nodul din soluia cu costul cel mai mic

    Exemplu Detalii n slide-urile urmtoare

    Martie, 2013 8Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    9/51

    SCI Best first searchAlgoritm

    bool Best FS( el em, l i st ) {f ound = f al se;visited = ;

    t oVi si t = {st ar t }; / / FI FO sor t ed l i st ( pr i or i t y queue)while((toVisit != ) && (!found)){

    i f ( t oVi s i t == )return f al se

    node = pop( t oVi si t ) ;vi si t ed = vi si t ed U {node};i f ( node == el em)

    f ound = t r ue;el se

    aux = ;

    f or al l unvi si t ed chi l dr en of node do{

    aux = aux U {chi l d};}t oVi si t = t oVi si t U aux; / / addi ng a node i nt o t he FI FO l i st based on i t s

    / / eval uat i on ( best one i n t he f r ont of l i st )

    } / / whi l er et ur n f ound;

    }

    Martie, 2013 9Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    10/51

    SCI best first search Analiza cutrii Complexitate temporal:

    b factor de ramnificare (nr de noduri fii ale unui nod) d- lungimea (adncimea) maxim a soluiei T(n) = 1 + b + b2 + + bd=> O(bd)

    Complexitate spaial S(n) = T(n)

    Completitudine Nu- drumuri infinite dac euristica evalueaz fiecare stare din drum ca fiind cea mai bun alegere

    Optimalitate Posibil depinde de euristic

    Avantaje Informaiile despre domeniul problemei ajut cutarea (SCI) Vitez mai mare de a ajunge la starea obiectiv

    Dezavantaje Necesit evaluarea strilor efort computaional, dar nu numai Anumite path-uri pot arta ca fiind bune conform funciei euristice

    Aplicaii Web crawler (automatic indexer) Jocuri

    Martie, 2013 10Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    11/51

    SCI Funcii euristice Etimologie: heuriskein (gr)

    a gsi, a descoperi

    studiul metodelor i regulilor de descoperire i invenie

    Utilitate Evaluarea potenialului unei stri din spaiul de cutare Estimarea costului drumului (n arborele de cutare) din starea curent pn n

    starea final (ct de aproape de int a ajuns cutarea)

    Caracteristici Depind de problema care trebuie rezolvat Pentru probleme diferite trebuie proiectate sau nvate diferite euristici Se evalueaz o anumit stare (nu operatorii care transform o stare n alt

    stare) Funcii pozitive pentru orice stare n

    h(n) 0 pentru orice stare n

    h(n) = 0 pentru starea final

    h(n) = pentru o stare din care ncepe un drum mort (o stare din care nu se poate ajunge n starea final)

    Martie, 2013 11Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    12/51

    SCI Funcii euristice Exemple

    Problema misionarilor i canibalilor h(n) nr. persoanelor aflate pe malul iniial

    8-puzzle h(n) nr pieselor care nu se afl la locul lor h(n) suma distanelor Manhattan (la care se afl fiecare

    pies de poziia ei final)

    Problema comisului voiajor h(n) cel mai apropiat vecin !!!

    Plata unei sume folosind un numr minim de monezi h(n) alegerea celei mai valoroase monezi mai mic dect

    suma (rmas) de plat

    Martie, 2013 12Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    13/51

    SCI - Greedy Aspecte teoretice Funcia de evalaure f ( n ) = h ( n )

    estimarea costului drumului de la starea curent la starea final h(n) minimizarea costului drumului care mai trebuie parcurs

    Exemplu

    A,D,E,H

    Algoritm

    bool BestFS(el em, l i st) {f ound = f al se;visited = ;t oVi si t = {st ar t }; / / FI FO sor ted l i s t ( pr i or i ty queuewhi l e(( toVi si t != ) && (!found)){

    i f ( toVi s i t == )return f al se

    node = pop( toVi si t );vi si t ed = vi si t ed U {node};i f ( node == el em)

    f ound = tr ue;el se

    aux = ;f or al l unvi si ted chi l dren of node do{

    aux = aux U {chi l d};}toVi si t = toVi si t U aux; / / addi ng a node onto the FI FO l i st based on i t s evaluati on h(n)

    / / (best one i n the f ront of l i st)

    } / / whi l er eturn f ound;

    }

    A

    B C D

    H I

    E F G

    4 4 2

    0 2

    1 3 3

    Vizi tate deja De vizi tat

    A

    A D, B, C

    A, D E, F, G, B, C

    A, D, E H, I, F, G, B, C

    A, D, E, H

    Martie, 2013 13Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    14/51

    SCI - Greedy Analiza cutrii: Complexitate temporal DFS

    b factor de ramnificare (nr de noduri fii ale unui nod) dmax- lungimea (adncimea) maxim a unui arbore explorat T(n) = 1 + b + b2 + + bdmax=> O(bdmax)

    Complexitate spaial BFS d- lungimea (adncimea) soluiei S(n) = 1 + b + b2 + + bd=> O(bd)

    Completitudine Nu (exist posibilitatea intrrii n cicluri infinite)

    Optimalitate posibil

    Avantaje Gsirea rapid a unei soluii (dar nu neaprat soluia optim), mai ales pentru probleme mici

    Dezavantaje Suma alegerilor optime de la fiecare pas nu reprezint alegerea global optim

    Ex. Problema comisului voiajor

    Aplicaii Probleme de planificare Probleme de sume pariale

    Plata unei sume folosind diferite tipuri de monezi Problema rucsacului

    Puzzle-uri Drumul optim ntr-un graf

    Martie, 2013 14Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    15/51

    SCI A* Aspecte teoretice

    Combinarea aspectelor pozitive ale cutrii de cost uniform

    optimalitate i completitudine utilizarea unei cozi ordonate

    cutrii Greedy viteza mare ordonare pe baza unei funcii de evaluare

    Funcia de evalaure f ( n ) estimarea costului celui mai bun drum care trece prin nodul n f ( n ) = g ( n ) + h ( n )

    g ( n ) funcie folosit pentru stabilirea costului drumului de la starea iniial pn la stareacurent n

    h ( n ) funcie euristic folosit pentru estimarea costului drumului de la starea curent n lastarea final

    Minimizarea costului total al unui drum

    Exemplu Problema rucsacului de capacitate Wn care pot fi puse n obiecte (o1, o2, ..., on) fiecare avnd o

    greutate wii aducnd un profitpi, i=1,2,...,n Soluia: pentru un rucsac cu W = 5 alegerea obiectelor o1 i o3 g(n) =pi, pentru acele obiecte oicare au fost selectate h(n) =pj, pentru acele obiecte care nu au fost selectate iwj

  • 8/12/2019 Rezolvarea problemelor de cutare

    16/51

    SCI A* Algoritm

    bool BestFS( el em, l i st) {f ound = f al se;visited = ;

    t oVi si t = {st ar t }; / / FI FO sor t ed l i s t ( pr i or i t y queuewhi l e(( t oVi s i t != ) && (!found)){

    i f ( t oVi si t == )

    retur n f al senode = pop( t oVi si t ) ;vi si t ed = vi si t ed U {node};i f ( node == el em)

    f ound = t r ue;el se

    aux = ;

    f or al l unvi si t ed chi l dr en of node do{aux = aux U {chi l d};

    }

    t oVi si t = t oVi si t U aux; / / addi ng a node ont o t he FI FO l i st/ / based on i t s eval uat i on f ( n) = g(n) + h(n)/ / (best one i n the f ront of l i st )

    } / / whi l er et ur n f ound;

    }

    Martie, 2013 16Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    17/51

    SCI A* Analiza cutrii:

    Complexitate temporal: b factor de ramnificare (nr de noduri fii ale unui nod) dmax- lungimea (adncimea) maxim a unui arbore explorat T(n) = 1 + b + b2 + + bdmax=> O(bdmax)

    Complexitate spaial d- lungimea (adncimea) soluiei T(n) = 1 + b + b2 + + bd=> O(bd)

    Completitudine Da

    Optimalitate Da

    Avantaje Algoritmul care expandeaz cele mai puine noduri din arborele de cutare

    Dezavantaje Utilizarea unei cantiti mari de memorie

    Aplicaii Probleme de planificare Probleme de sume pariale

    Plata unei sume folosind diferite tipuri de monezi Problema rucsacului

    Puzzle-uri Drumul optim ntr-un graf

    Martie, 2013 17Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    18/51

    SCI A* Variante

    iterative deepening A* (IDA*) memory-bounded A* (MA*) simplified memory bounded A* (SMA*) recursive best-first search (RBFS)

    dynamic A* (DA*) real time A* hierarchical A*

    Bibliografie suplimentar 02/A_IDA.pdf 02/A_IDA_2.pdf 02/SMA_RTA.pdf 02/Recursive Best-First Search.ppt 02/IDS.pdf 02/IDA_MA.pdf http://en.wikipedia.org/wiki/IDA* http://en.wikipedia.org/wiki/SMA*

    Martie, 2013 18Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    19/51

    Rezolvarea problemelor prin cutare Tipologia strategiilor de cutare

    n funcie de modul de generare a soluiei Cutare constructiv

    Construirea progresiv a soluiei Ex. TSP

    Cutare perturbativ O soluie candidat este modificat n vederea obinerii unei noi soluii candidat Ex. SAT - Propositional Satisfiability Problem

    n funcie de modul de traversare a spaiului de cutare Cutare sistematic

    Traversarea complet a spaiului Ideintificarea soluiei dac ea exist algoritmi complei

    Cutare local Traversarea spaiului de cutare dintr-un punct n alt punct vecin algoritmi incomplei O stare a spaiului poate fi vizitat de mai multe ori

    n funcie de elementele de certitudine ale cutrii Cutare determinist

    Algoritmi de identificare exact a soluiei Cutare stocastic

    Algoritmi de aproximare a soluiei n funcie de stilul de explorare a spaiului de cutare

    Cutare secvenial Cutare paralel

    Martie, 2013 19Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    20/51

    Rezolvarea problemelor prin cutarePoate consta n: Construirea progresiv a soluiei Identificarea soluiei poteniale optime

    Componentele problemei Condiii (constrngeri) pe care trebuie s le satisfac (parial sautotal) soluia Funcie de evaluare a unei soluii poteniale identificareaa optimului

    Spaiul de cutare mulimea tuturor soluiilor poteniale complete Stare = o soluie complet Stare final (scop) soluia optim

    Exemple Problema celor 8 regine,

    Strile posibile: configuraii ale tablei de sah cu cte 8 regine Operatori: modificarea coloanei n care a fost plasat una din regine Scopul cutrii: configuraia n care nu existe atacuri ntre regine Funcia de evaluare: numrul de atacuri

    probleme de planificare, proiectarea circuitelor digitale, etc

    Martie, 2013 20Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    21/51

    Rezolvarea problemelor prin cutarePoate consta n: Construirea progresiv a soluiei Identificarea soluiei poteniale optime

    Algoritmi Algoritmii discutai pn acum explorau n mod sistematic spaiul de cutare

    De ex. A* 10100 stri 500 variabile binare

    Problemele reale pot avea 10 000 100 000 variabile nevoia unei alte categorii de algoritmi careexploreaz local spaiul de cutare (algoritmi iterativi) Ideea de baz:

    se ncepe cu o stare care nu respect anumite constrngeri pentru a fi soluie optim i se efectueaz modificri pentru a elimina aceste violri (se deplaseaz cutarea ntr-o soluie

    vecin cu soluia curent) astfel nct cutarea s se ndrepte spre soluia optim Iterativi se memoreaz o singur stare i se ncearc mbuntirea ei

    versiunea inteligent a algoritmului de for brut Istoricul cutrii nu este reinut

    bool LS(el em, l i s t ){

    f ound = f al se;crt St at e = i ni t St at ewhi l e ( ( ! f ound) && t i meLi mi t I sNotExceeded) {

    t oVi si t = nei ghbour s( cr t St at e)i f ( best( t oVi s i t ) i s bet t er t han crt St at e)crt St at e = best( t oVi si t )

    i f (cr tState == el em)f ound = tr ue;

    } / / whi l er et ur n f ound;

    }

    Martie, 2013 21Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    22/51

    Rezolvarea problemelor prin cutarePoate consta n: Construirea progresiv a soluiei Identificarea soluiei poteniale optime

    Avantaje

    Simplu de implementat Necesit puin memorie

    Poate gsi soluii rezonabile n spaii de cutare (continue) foarte mari pentru care alialgoritmi sistematici nu pot fi aplicai

    E util atunci cnd: Se pot genera soluii complete rezonabile

    Se poate alege un bun punct de start Exist operatori pentru modificarea unei soluii complete

    Exist o msur pentru a aprecia progresul (avansarea cutrii)

    Exist un mod de a evalua soluia complet (n termeni de constrngeri violate )

    Martie, 2013 22Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    23/51

    Strategii de cutare local Tipologie

    Cutare local simpl - se reine o singur stare vecin Hill climbing alege cel mai bun vecin

    Simulated annealing alege probabilistic cel mai bun vecin Cutare tabu reine lista soluiilor recent vizitate

    Cutare local n fascicol (beam local search) se reinmai multe stri (o populaie de stri) Algoritmi evolutivi Optimizare bazat pe comportamentul de grup (Particle swarm

    optimisation)

    Optimizare bazat pe furnici (Ant colony optmisation)

    Martie, 2013 23Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    24/51

    Strategii de cutare local Cutare local simpl

    elemente de interes special: Reprezentarea soluiei

    Funcia de evaluare a unei poteniale soluii

    Vecintatea unei soluii Cum se definete/genereaz o soluie vecin Cum are loc cutarea soluiilor vecine

    Aleator Sistematic

    Criteriul de acceptare a unei noi soluii Primul vecin mai bun dect soluia curent Cel mai bun vecin al soluiei curente mai bun dect soluia curent Cel mai bun vecin al soluiei curente mai slab dect soluia curent Un vecin aleator

    dependentede problem

    Martie, 2013 24Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    25/51

    Strategii de cutare local Hill climbing (HC) Aspecte teoretice

    Urcarea unui munte n condiii de cea i amnezie aexcursionistului :D

    Micarea continu spre valori mai bune (mai mari urcuul pemunte)

    Cutarea avanseaz n direcia mbuntirii valorii strilorsuccesor pn cnd se atinge un optim

    Criteriul de acceptare a unei noi soluii cel mai bun vecin al soluiei curente mai bun dect soluia curent

    mbuntire prin Maximizarea calitii unei stri steepest ascent HC Minimizarea costului unei stri gradient descent HC

    HC steepest ascent/gradient descent (SA/GD) HC optimizeaz f(x) cu xRn prin modificarea unui element al lui x SA/GD optimizeaz f(x) cu xRn prin modificarea tuturor elementelor lui x

    Martie, 2013 25Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    26/51

    Strategii de cutare local Hill climbing (HC) Exemplu

    Construirea unor turnuri din diferite forme geometrice Se dau n piese de form dreptunghiular (de aceeai lime,

    dar de lungimi diferite) aezate unele peste altele formndun turn (stiv). S se re-aeze piesele astfel nct s se formeze unnou turn tiind c la o mutare se poate mica doar o pies din vrful

    stivei, pies care poate fi mutat pe una din cele 2 stive ajuttoare. Reprezentarea soluiei

    Starex vectori de n perechi de forma (i,j), unde i reprezint indexul piesei(i=1,2,...,n), iarjindexul stivei pe care se afl piesa (j=1,2,3)

    Starea iniial vectorul corespunztor turnului iniial Starea final vectorul corespunztor turnului final

    Funcia de evaluare a unei stri f1 = numrul pieselor corect amplasate maximizare

    conform turnului final f1 = n

    f2 = numrul pieselor greit amplasate

    minimizare conform turnului final f2 = 0 f = f1 f2 maximizare

    Vecintate Mutri posibile

    Mutarea unei piese idin vrful unei stivej1 pe alt stivj2 Criteriul de acceptare a unei noi soluii

    Cel mai bun vecin al soluiei curente mai bun dect soluia curent

    Martie, 2013 26Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    27/51

    Strategii de cutare local Hill climbing (HC)Exemplu

    Iteraia 1 Starea curent x = starea iniial:

    x = s1 = ((5,1), (1,1), (2,1), (3,1), (4,1)) Piesele 1, 2 i 3 sunt corect aezate Piesele 4 i 5 nu sunt corect aezate f(s1) = 3 2 = 1

    x* = x

    Vecinii strii curente x un singur vecin piesa 5 semut pe stiva 2 s2 = ((1,1), (2,1), (3,1), (4,1), (5,2)) f(s2) = 4-1=3 > f(x) x =s2

    Martie, 2013 27Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    28/51

    Strategii de cutare local Hill climbing (HC)Exemplu

    Iteraia 2 Starea curent x = ((1,1), (2,1), (3,1), (4,1), (5,2))

    f(x) = 3

    Vecinii strii curente doi vecini: piesa 1 se mut pe stiva 2 s3 = ((2,1), (3,1), (4,1), (1,2),(5,2)) f(s3) = 3-2=1 < f(x)

    piesa 1 se mut pe stiva 3 s4 = ((2,1), (3,1), (4,1), (5,2),(1,3)) f(s4) = 3-2=1 < f(x)

    nu exist vecin de-al lui x mai bun ca x stop

    x* = x = ((1,1), (2,1), (3,1), (4,1), (5,2))

    Dar x* este doar optim local, nu global

    Martie, 2013 28Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    29/51

    Strategii de cutare local Hill climbing (HC)Exemplu

    Construirea unor turnuri din diferite forme geometrice

    Funcia de evaluare a unei stri

    f1 = suma nlimilor stivelor pe care sunt amplasate corectpiese (conform turnului final f1 = 10) maximizare f2 = suma nlimilor stivelor pe care sunt amplasate incorect

    piese (conform turnului final f2 = 0) minimizare f = f1 f2 maximizare

    Vecintate Mutri posibile Mutarea unei piese i din vrful unei stive j1 pe alt stiv j2

    Martie, 2013 29Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    30/51

    Strategii de cutare local Hill climbing (HC)Exemplu

    Iteraia 1 Starea curent x = starea iniial s1 = ((5,1), (1,1),

    (2,1), (3,1), (4,1)) Toate piesele nu sunt corect aezate f1 = 0, f2 =3+2 + 1 + 0 + 4 = 10 f(s1) = 0 10 = -10

    x* = x

    Vecinii strii curente x un singur vecin piesa 5 semut pe stiva 2 s2 = ((1,1), (2,1), (3,1), (4,1),(5,2))

    f(s2) = 0 (3+2+1+0) = -6 > f(x) x =s2

    Martie, 2013 30Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    31/51

    Strategii de cutare local Hill climbing (HC) Exemplu

    Iteraia 2 Starea curent x = ((1,1), (2,1), (3,1), (4,1), (5,2))

    f(x) = -6

    Vecinii strii curente doi vecini: piesa 1 se mut pe stiva 2 s3 = ((2,1), (3,1), (4,1), (1,2), (5,2)) f(s3)

    = 0 (0+2+3+0)=-5 > f(x)

    piesa 1 se mut pe stiva 3 s4 = ((2,1), (3,1), (4,1), (5,2), (1,3)) f(s4)= 0 - (1+2+1) = -4 > f(x)

    cel mai bun vecin al lui x este s4 x = s4

    Iteraia 3 ...

    Se evit astfel blocarea n optimele locale

    Martie, 2013 31Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    32/51

    AlgoritmBool HC( S) {

    x = s1 //starea iniialx*=x // cea mai bun soluie gsit(pn la un moment dat)

    k = 0 // numarul de iteraiiwhi l e ( not t er mi ant i on cr i t er i a) {

    k = k + 1gener at e al l nei ghbour s of x ( N)Choose t he best sol ut i on s f r om Ni f f ( s) i s bet t er t han f ( x) t hen x = s

    el se st op} / / whi l ex* = xr et ur n x*;

    }

    Strategii de cutare local Hill climbing (HC)

    Martie, 2013 32Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    33/51

    Analiza cutrii Convergena spre optimul local

    Avantaje Simplu de implementat se poate folosi usor pentru a aproxima soluia unei probleme cnd

    soluia exact este dificil sau imposibil de gsit Ex. TSP cu forate multe orae

    Nu necesit memorie (nu se revine n starea precedent)

    Dezavantaje

    Funcia de evaluare (eurisitc) poate fi dificil de estimat Dac se execut foarte multe mutri algoritmul devine ineficient Dac se execut prea puine mutri algoritmul se poate bloca

    ntr-un optim local (nu mai poate cobor din vrf) Pe un platou zon din spaiul de cutare n care funcia de evaluare este constant Pe o creast saltul cu mai muli pai ar putea ajuta cutarea

    Aplicaii Problema canibalilor 8-puzzle, 15-puzzle TSP Problema damelor

    Strategii de cutare local Hill climbing (HC)

    Martie, 2013 33Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    34/51

    Variante

    HC stocastic Alegerea aleatoare a unui succesor

    HC cu prima opiune Generarea aleatoare a succesorilor pn la ntlnirea

    unei mutri neefectuate

    HC cu repornire aleatoare beam local search Repornirea cutrii de la o stare iniial aleatoare

    atunci cnd cutarea nu progreseaz

    Strategii de cutare local Hill climbing (HC)

    Martie, 2013 34Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    35/51

    Strategii de cutare local Simulated Annealing Aspecte teoretice

    Inspirat de modelarea proceselor fizice Metropolis et al. 1953, Kirkpatrick et al. 1982;

    Succesorii strii curente sunt alei i n mod aleator Dac un succesor este mai bun dect starea curent

    atunci el devine noua stare curent altfel succesorul este reinut doar cu o anumit probabilitate

    Se permit efectuarea unor mutri slabe cu o anumit probabilitate p evadarea din optimele locale

    Probabilitatea p = eE/T

    Proporional cu valoarea diferenei (energia) E Modelat de un parametru de temperatur T

    Frecvena acestor mutri slabe i mrimea lor se reduce gradual prinscderea temperaturii

    T = 0 hill climbing T mutrile slabe sunt tot mai mult executate

    Soluia optim se identific dac temperatura se scade treptat (slowly) Criteriul de acceptare a unei noi soluii

    Un vecin aleator mai bun sau mai slab (cu probabilitatea p) dect soluia curent

    Martie, 2013 35Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    36/51

    Strategii de cutare local Simulated Annealing Exemplu Problema celor 8 regine

    Enun S se amplaseze pe o tabl de ah 8 regine astfel nct ele s nu se atace reciproc

    Reprezentarea soluiei Starex permutare de n elemente x = (x1,x2,..,xn), unde xi linia pe care este plasat regina

    de pe coloana j Nu exist atacuri pe vertical sau pe orizontal Pot exista atacuri pe diagonal

    Starea iniial o permutare oarecare Starea final o permutare fr atacuri de nici un fel

    Funcia de evaluare a unei stri f suma reginelor atacate de fiecare regin minimizare

    Vecintate Mutri posibile

    Mutarea unei regine de pe o linie pe alta (interschimbarea a 2 elemente din permutare)

    Criteriul de acceptare a unei noi soluii Un vecin oarecare al soluiei curente

    mai bun dect soluia curent mai slab dect soluia curent cu o anumit probabilitate unde:

    E diferena de energie (evaluare) ntre cele 2 stri (vecin i curent) T temperatura, T(k) = 100/k, unde k este nr iteraiei

    T

    E

    eEP

    )(

    Martie, 2013 36Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    37/51

    Strategii de cutare local Simulated AnnealingExemplu Problema celor 8 regine

    Iteraia 1 (k = 1) Starea curent x = starea iniials1 = (8,5,3,1,6,7,2,4)

    f(s1) = 1+1 = 2

    x* = x T = 100/1 = 100

    Un vecin al strii curente x regina de pelinia 5 se interschimb cu regina de pe linia 7 s2 = (8,7,3,1,6,5,2,4)

    f(s2) = 1+1+1=3 > f(x) E = f(s2) f(s1) = 1 P(E)=e-1/100

    r = random(0,1) Dac r < P(E) x = s2

    a b c d e f g h

    1 1

    2 2

    3 3

    4 4

    5 5

    6 6

    7 7

    8 8

    a b c d e f g h

    a b c d e f g h

    1 12 2

    3 3

    4 4

    5 5

    6 6

    7 7

    8 8

    a b c d e f g h

    Martie, 2013 37Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    38/51

    Strategii de cutare local Simulated AnnealingAlgoritm

    bool SA( S) {x = s1 //starea iniialx*=x // cea mai bun soluie gsit (pn la un moment dat)k = 0 // numarul de iteraiiwhi l e ( not t er mi ant i on cri t er i a) {

    k = k + 1gener at e a nei ghbour s of xi f f ( s ) i s bet t er t han f ( x) t hen x = sel se

    pi ck a randomnumber r ( i n (0, 1) r ange)i f r < P( E) t hen x = s

    } / / whi l ex* = xr et ur n x*;

    }

    Criterii de oprire S-a ajuns la soluie S-a parcurs un anumit numr de iterii

    S-a ajuns la temepratura 0 (nghe)

    Cum se alege o probabilitate mic? p = 0.1 p scade de-a lungul iteraiilor p scade de-a lungul iteraiilor i pe msur ce rul |f(s) f(x)| crete

    p = exp(- |f(s) f(x)|/T) Unde T temepratura (care crete)

    Pentru o T mare se admite aproape orice vecin v Petnru o T mic se admite doar un vecin mai bun dect s

    Dac rul e mare, atunci probabilitatea e mic

    Martie, 2013 38Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    39/51

  • 8/12/2019 Rezolvarea problemelor de cutare

    40/51

    Strategii de cutare local Cutare tabu Aspecte teoretice

    Tabu interdicie social sever cu privire la activitile umane sacre i interzise Propus n anii 1970 de ctre F. Glover

    Ideea de baz se ncepe cu o stare care nu respect anumite constrngeri pentru a fi soluie optim i se efectueaz modificri pentru a elimina aceste violri (se deplaseaz cutarea n cea

    mai bun soluie vecin cu soluia curent) astfel nct cutarea s se ndrepte spresoluia optim

    se memoreaz Starea curent Strile vizitate pn la momentul curent al cutrii i mutrile efectuate pentru a

    ajunge n fiecare din acele stri de-a lungul cutrii (se memoreaz o list limitatde stri care nu mai trebuie revizitate)

    Criteriul de acceptare a unei noi soluii Cel mai bun vecin al soluiei curente mai bun dect soluia curent i nevizitat nc

    2 elemente importante Mutri tabu (T) determinate de un proces non-Markov care se folosete de informaiile

    obinute n timpul cutrii de-a lungul ultimelor generaii Condiii tabu pot fi inegaliti liniare sau legturi logice exprimate n funcie de soluia

    curent Au rol n alegerea mutrilor tabu

    Martie, 2013 40Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    41/51

    Strategii de cutare local Cutare tabu Exemplu

    Enun Plata sumei S folosind ct mai multe dintre cele n monezi de valori vi(din fiecare

    moned exist bibuci)

    Reprezentarea soluiei Starex vector de nntregix= (x1, x2, ..., xn) cuxi {0, 1, 2, ..., bi} Starea iniial aleator

    Funcia de evaluare a unei stri f1 = Diferena ntre valaorea monezilor alese i S minim

    Dac valoarea monezilor depete S penalizare de 50 uniti f2 = Numrul monezilor selectate maxim f = f1 f2 minimizare

    Vecintate Mutri posibile

    Includerea n sum a monezii injexemplare (plusi,j) Excluderea din sum a monezii injexemplare (minusi,j)

    Lista tabu reine mutrile efectuate ntr-o iteraie Mutare moneda adugat/eliminat din sum

    Martie, 2013 41Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    42/51

    Strategii de cutare local Cutare tabu Exemplu

    S = 500, penalizare = 500, n = 7

    Soluia final: 4 1 5 4 1 3 10 (f= -28)

    S= 5 0 m 1 m2 m3 m4 m5 m6 m7

    vi 10 50 15 20 100 35 5

    bi 5 2 6 5 4 3 10

    Stare curent Val. f Listtabu

    Strivecine Mutri Val. f

    2 0 1 0 0 2 1 384 2 0 1 3 0 2 1 plus4,3 321

    2 0 1 0 0 3 1 plus6,1 348

    0 0 1 0 0 2 1 minus1,2 406

    2 0 1 3 0 2 1 321 plus4,3 2 0 1 3 5 2 1 plus5,5 6562 0 1 1 0 2 1 minus4,2 363

    2 1 1 3 0 2 1 plus2,1 270

    2 1 1 3 0 2 1 270 plus4,3plus2,1

    ...

    Martie, 2013 42Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    43/51

    Strategii de cutare local Cutare tabu Exemplu

    S = 500, penalizare = 500, n = 7

    Soluia final: 4 1 5 4 1 3 10 (f = -28)

    S= 5 0 m 1 m2 m3 m4 m5 m6 m7

    vi 10 50 15 20 100 35 5

    bi 5 2 6 5 4 3 10

    Starecurent

    Val. f List tabu Strivecine Mutri Val. f

    2 0 1 0 0 2 1 384 1 0 1 4 0 2 1 minus1,1,plus4,4 311

    2 0 4 0 1 2 1 plus3,3,minus5,1 235

    2 0 1 0 4 2 6 plus5,4, plus7,5 520

    2 0 4 0 1 2 1 235 plus3,3, minus5,1 2 0 5 0 5 2 1 plus3,1, plus5,4 6555 0 4 0 4 2 1 plus1,3, plus5,3 569

    2 2 4 0 5 2 1 plus2,2, plus5,4 739

    2 0 4 0 1 2 1 235 plus3,3, minus5,1 ...

    Martie, 2013 43Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    44/51

    Strategii de cutare local Cutare tabu Algoritm

    bool TS( S) {Sel ect xS / / S spaiul de cutarex*=x //cea mai bun soluie (pn la un mom. dat )k = 0 // numarul de iteraii

    T = // list de mutri tabu

    whi l e ( not t er mi ant i on cri t er i a) {k = k + 1gener at e a subset of sol ut i ons i n t he nei ghbor hood N- T of xchoose the best sol ut i on s f r om N- T and set x=s.i f f ( x)

  • 8/12/2019 Rezolvarea problemelor de cutare

    45/51

    Strategii de cutare local Cutare tabuAnaliza cutrii

    Convergena rapid spre optimul global

    Avantaje Algoritm general i simplu de implementat Algoritm rapid (poate oferi soluia optim global n

    scurt timp)

    Dezavantaje Stabilirea strilor vecine n spaii continue Numr mare de iteraii Nu se garanteaz atingerea optimului global

    Martie, 2013 45Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    46/51

    Strategii de cutare local Cutare tabu Aplicaii

    Determinarea structurii tridimensionale a proteinelor n secvene deaminoacizi (optimizarea unei funcii de potenial energetic cu multipleoptime locale)

    Optimizarea traficului n reele de telecomunicaii Planificare n sisteme de producie Proiectarea reelelor de telecomunicaii optice Ghidaj automat pentru vehicule Probleme n grafuri (partiionri) Planificri n sistemele de audit Planificri ale task-urilor paralele efectuate de procesor (multiprocesor) Optimizarea structurii electromagnetice (imagistica rezonanei magnetice

    medicale) Probleme de asignare quadratic (proiectare VLSI) Probleme de combinatoric (ricsac, plata sumei) Problema tierii unei buci n mai multe pri Controlul structurilor spaiale (NASA) Optimizarea proceselor cu decizii multi-stagiu Probleme de transport Management de portofoliu Chunking

    Martie, 2013 46Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    47/51

    Recapitulare SCI best first search

    Nodurile mai bine evaluate (de cost mai mic) au prioritate laexpandare

    SCI de tip greedy minimizarea costului de la starea curent la starea obiectiv h(n) Timp de cutare < SCnI Ne-complet Ne-optimal

    SCI de tip A* minimizarea costului de la starea iniial la starea curent g(n) i a

    costului de la starea curent la starea obiectiv h(n) Evitarea repetrii strilor Fr supraestimarea lui h(n) Timp i spaiu de cutare mare n funcie de euristica folosit Complet Optimal

    Martie, 2013 47Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    48/51

    Recapitulare

    SC locale Algoritmi iterativi

    Lucreaz cu o soluie potenial soluia optim

    Se pot bloca n optime localeAlegerea striiurmtoare

    Criteriul deacceptare

    Convergena

    HC Cel mai bun vecin Vecinul este mai bundect strarea curent

    Optim local saugloabl

    SA Un vecin oarecare Vecinul este mai bunsau mai slab (acceptatcu probabilitatea p)dect starea curent

    Optim global(lent)

    TS Cel mai bun vecinnevizitat nc

    Vecinul este mai bundect strarea curent

    Optim global(rapid)

    Martie, 2013 48Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    49/51

    Cursul urmtorA. Scurt introducere n Inteligena Artificial (IA)

    B. Rezolvarea problemelor prin cutare Definirea problemelor de cutare Strategii de cutare

    Strategii de cutare neinformate Strategii de cutare informate Strategii de cutare locale (Hill Climbing, Simulated Annealing, Tabu Search, Algoritmi

    evolutivi, PSO, ACO) Strategii de cutare adversial

    C. Sisteme inteligente Sisteme bazate pe reguli n medii certe Sisteme bazate pe reguli n medii incerte (Bayes, factori decertitudine, Fuzzy) Sisteme care nva singure

    Arbori de decizie Reele neuronale artificiale Maini cu suport vectorial Algoritmi evolutivi

    Sisteme hibride

    Martie, 2013 49Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    50/51

    Cursul urmtor Materiale de citit i legturi utile capitolul 14 din C. Groan, A. Abraham,

    Intelligent Systems: A Modern Approach,Springer, 2011

    M. Mitchell, An Introduction to GeneticAlgorithms, MIT Press, 1998

    capitolul 7.6 dinA. A. Hopgood, IntelligentSystems for Engineers and Scientists, CRC

    Press, 2001

    Capitolul 9 din T. M. Mitchell, MachineLearning, McGraw-Hill Science, 1997

    Martie, 2013 50Inteligen artificial - metode de cutare informat

  • 8/12/2019 Rezolvarea problemelor de cutare

    51/51

    Informaiile prezentate au fost colectate dindiferite surse de pe internet, precum i dincursurile de inteligen artificial inute n anii

    anteriori de ctre: Conf. Dr. Mihai Oltean www.cs.ubbcluj.ro/~moltean

    Lect. Dr. Crina Groan - www.cs.ubbcluj.ro/~cgrosan

    Prof. Dr. Horia F. Pop - www.cs.ubbcluj.ro/~hfpop

    Martie 2013 51Inteligen artificial - metode de cutare informat