Documente Academic
Documente Profesional
Documente Cultură
cautare
informata
Lector. dr. Luciana Morogan
ATM
Cautare neinformata (blind search)
- recap. -
• Solutii
o Generare (stare_curenta) = stari_noi
o Test (stari_noi) = stare_scop?
• Se reia de la pasul 3
Obervatie!
Pentru best-first, OPEN se reordoneaza in functie de meritele euristice ale nodurilor!
Altfel spus... Algoritmul best-first...
• Doua abordari:
o Cautarea Greedy
o Cautarea A*
Best-first -> Greedy
• Ideea de baza: minimizarea costului de atingere a scopului
(de la starea curenta la scop)
Solutia:
deplasare Vaslui,
(nod mai departat) de nodul tinta - conform cu euristica – si sa
Urziceni, Bucuresti…
Greedy (7)
Agoritm:
Vs.
Chiar daca starea tinta este sah mat, se poate tine cont de…
• Numarul de piese pe care il au fiecare din cei doi jucatori
• Numarul de piese ce pot fi atacate de catre piesele
adversarului
• Tipul pieselor pe care le are fiecare din cei doi jucatori...
? Functia euristica ce nu supraestimeaza
=1+0+0+1+2+1+1=6
Efectul functiilor euristice asupra performantei algoritmului:
• Daca
o numarul total de noduri expandate este N
o solutia se gaseste la adancimea d
• O euristica este cu atat mai bine definita cu cat numarul nodurilor in care se
expandeaza fiecare nod este mai mic
• Exp.
o Pb damelor: se pleaca cu 8 dame pe tabla de sah. Dorim
mutarea acestora astfel incat sa nu se atace reciproc.
o Pb rutarii cablurilor prin anumite canale: Dorim mutarea cablurilor
dintr-un canal in altul pentru evitarea congestiei acestora.
Clase:
• Hill-climbing (gradient ascendent) – daca functia de evaluare
trebuie vazuta drept cost mai mult decat dpdv calitativ – se
incearca modificari pt imbunatatirea starii curente
• Simulated annealing
Hill-climbing
bucla ce se misca continuu in
directia valorilor crescatoare
• Daca exista mai mult decat un singur cel mai bun succesor, atunci algoritmul
alege unul random => drawbacks:
o Maximul local (in comparatie cu cel global) poate fi mai mic decat
puctul cel mai sus in spatiul starilor si algoritmul se poate opri chiar daca
este departe de o solutie satisfacatoare
o Pot exista muchii ce pot avea parti alunecoase in care cautarea poate
oscila de pe o parte pe alta cu progrese putine
• Algoritmul poate ajunge in puncte in care nu se fac progrese => se reia
cautarea din alt punct de plecare
• Solutia:
o Random restart pentru o serie de cautari hill-climbing
• Start: stari initiale alese aleator
• Stop: cand cautarea se opreste sau nu se fac progrese considerabile
o Se salveaza cel mai bun rezultat gasit in aceste reiterari ale cautarii
o Reiterarea se opreste
• la un numar maxim de runde alese initaial SAU
• cand in urma unor reiterari succesive rezultatul intors nu se modifica
considerabil
• TEMA
Concluzii
• Cautarea best-first = CAUTARE GENERALA in care nodurile considerate de cost minim (in urma
evaluarii) sunt expandate primele
• Daca minimizam costul estimat pt atingerea scopului, h(n) => cautare de tip greedy
o Algoritm care nu este nici optim si nici complet
o Timpul de cautare este mai scazut decat in cazul cautarii de cost uniform
• Daca minimizam f(n) = g(n) + h(n) (combinand cautarea de cost uniform si greedy) si garantam
ca h(n) nu supraestimeaza costul de atingere a solutiei => cautarea de tip A*
o A* este complet, optimal si eficient
• Algoritmii pentru imbunatatirile iterative pastreaza in memorie o singura stare a problemei, insa
se pot bloca intr-un maxim local. Simulated annealing ofera modalitatea de a scapa dintr-un
astfel de punct si poate fi complet si optim sub anumite constrangeri (ramase tema ☺ )
Exercitii
Se considera problema gasirii drumului cel mai scurt dintre doua puncte dintr-un plan cu
obstacole convexe. Scena cu obstacolele poligonale reprezinta problema pe care un robot
trebuie sa o rezolve pentru a putea naviga intr-un mediu aglomerat.
1. Presupunem ca spatiul starilor consta in toate pozitiile (x,y) din plan. Precizati cate astfel
de stari exista. Cate cai exista pana la atingerea unui scop?
2. Explicati de ce drumul cel mai scurt dintr-un varf poligonal catre oricare altul consta in
segmente de linie dreapta ce unesc anumite muchii ale poligoanelor. In acest moment
definiti un bun spatiu al starilor problemei. Cat este de mare acest spatiu?
3. Definiti functiile necesare implementarii problemei de cautare, incluzand si o functie
succesor ce ia ca intrare un nod si returneaza multimea muchiilor care pot fi atinse in linie
dreapta de la nodul dat. (A nu se uita vecinii din acelasi poligon.) Folositi distanta in linie
dreapta pentru functia euristica.
4. Implementati un algoritm euristic discutat. Aplicati apoi acest algoritm pentru rezolvarea
diferitelor instante ale acestei probleme.
5. In acelasi context analizati hill-climbing. Vom plasa agentul in acest mediu si si acesta va
trebui sa isi gaseasca drumul pana la scop.
a. Implementati un mediu pentru evaluare. Comportamentul mediului:
- La fiecare ciclu, perceptia confera agentului o lista cu locurile pe care le poate vedea
din pozitia curenta. Fiecare loc este reprezentat de un vector pozitie (cu componentele
x si y) ce ofera coordonatele locatiei relative la agent. (DECI: depinde de agent a afla
pozitia sa curenta in plan. Acesta poate presupune ca toate pozitiile au un “view” diferit
☺)
- Actiunea returnata de catre agent va fi reprezentata de vectorul care va descrie drumul
in linie dreapta pe care va trebui sa il urmeze (coordonatele relative ale locului in care
doreste sa mearga). Daca miscarea nu va provoca lovirea nici unui obstacol, atunci
mediul va trebui sa “miste” agentul si sa ii ofere acestuia o noua perceptie potrivita
pentru urmatoarea locatie in care acesta va trebui miscat. Altfel, agentul ramane pe
loc. La o reiterare a algoritmului, mediul va trebui sa mute agentul intr-un varf nou, la
intamplare (intai se alege aleator un poligon si apoi un varf al acestuia tot la intamplare).
Se poate bloca agentul intr-un punct de maxim local?