PROBLEM-SOLVING SOLVING PROBLEMS BY SEARCHING REŠAVANJE PROBLEMA PRETRAŽIVANJEM

1 / 85

# PROBLEM-SOLVING SOLVING PROBLEMS BY SEARCHING REŠAVANJE PROBLEMA PRETRAŽIVANJEM - PowerPoint PPT Presentation

PROBLEM-SOLVING SOLVING PROBLEMS BY SEARCHING REŠAVANJE PROBLEMA PRETRAŽIVANJEM. In which we look at how an agent can decide what to do by systematically considering the outcomes of various sequences of actions that it might take.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PROBLEM-SOLVING SOLVING PROBLEMS BY SEARCHING REŠAVANJE PROBLEMA PRETRAŽIVANJEM

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
1. PROBLEM-SOLVINGSOLVING PROBLEMS BYSEARCHINGREŠAVANJE PROBLEMA PRETRAŽIVANJEM In which we look at how an agent can decide what to do by systematically considering the outcomes of various sequences of actions that it might take. Kako agenti odlučuju šta da rade, na osnovu sistematskog razmatranja ishoda raznih sekvenci akcija koje mogu da preduzmu

2. Jednostavni refleksni agenti ne mogu da planiraju unapred. Oni su ograničeni jer su njihove akcije određene samo posmatranjem tekuće situacije. Oni takođe nemaju znanja o rezultatima svojih akcija niti o tome šta hoće da postignu. • Agenti rukovođeni ciljem mogu da odluče šta da rade nalaženjem sekvenci akcija koje vode do željenih stanja • Agent može da kreira odgovarajući pogled na problem koji rešava. Tip problema kako ga agent “vidi” zavisi od znanja agenta, prvenstveno od tekućeg stanja i od rezultata akcija • Kada postoji precizna definicija problema, onda je relativno lako da se dođe do procesa pretraživanja kojim će rešenja moći da se nađu.

3. PROBLEM-SOLVING AGENTS • Inteligentni agenti bi trebalo da se ponašaju – deluju na okolinu tako da se okolina menja na način da prolazi kroz niz stanja koja dovode do maksimizovanja mere performansi. U opštem slučaju je teško da se na osnovu ovakve specifikacije uspešno dizajnira agent. • Zadatak se pojednostavljuje ako agent može da “usvoji” cilj koji treba da ostvari – da mu neko drugi to kaže, kao i kako to da uradi • Formulacije - definisanje cilja, koja se bazira na trenutnoj – tekućoj situaciji, je prvi korak u rešavanju problema. Osim formulisanja cilja, agent treba da odluči i u vezi nekih drugih faktora koji su vezani za različite načine kojima se može postići cilj.

4. Smatraće se da je cilj predstavljen skupom nekih stanja – samo onih stanja u kojima je cilj zadovoljen. Akcije se mogu posmatrati kao uzročnici prelaza jednog stanja u drugo, tako da agent treba da pronađe koje akcije vode do ciljnog stanja. Pre nego što to može da uradi, treba da odluči koje vrste akcija i stanja treba da razmatra. • Agent ima informacije o stanjima u kojima može da se nađe i o akcijama koje može da preduzme. Agent može da koristi ove informacije za razmatranje o narednim fazama rešavanja problema • Kada se jednom pronađe rešenje problema, cilj može se ostvari, tj. problem može da se reši. • Uopšte, agent ima više mogućnosti na raspolaganju, i prvo mora da razmotri i pronađe sekvence – niz akcija koje vode rešenju problema, i onda može da izabere najbolje rešenje. Proces traženja sekvence koja dovodi do rešenja se naziva pretraga • Algoritam za pretraživanje kao svoj ulaz uzima problem i daje rešenje kao niz akcija

5. Kada se rešenje pronađe, akcije se mogu izvršiti i to se naziva izvršna faza. Čitav proces rešavanja problema se dakle sastoji iz tri faze – formulacija, pretraga i izvršavanje. To je i osnova za dizajn agenta koji se rukovodi ciljem. • Nakon formulisanja cilja i problema koji treba rešiti, agent poziva proceduru za pretraživanje za izvršavanje rešenja problema. Onda se koristi nađeno rešenje koje rukovodi konkretnim izvođenjem akcija u potrebnom određenom redosledu. Kada se izvrši potrebni niz akcija, agent stiže do rešenja, tj. nalazi traženi cilj. • Izvršna faza je najčešće jednoznačna u slučaju ove jednostavne vrste agenta: f-ja RECOMMENDATION uzima prvu akciju u nizu, dok f-ja REMAINDER vraća ostatak

6. 3.2 FORMULATING PROBLEMS • Agenti mogu imati različite količine znanja koje se odnose na njihove akcije kao i na stanja u kome se nalaze. To zavisi od toga kako je agent povezan sa svojom okolinom sa aspekta opažaja i sa aspekta mogućih akcija. • Postoje četiri suštinski različita tipa problema: • Problemi sa jednim stanjem • Problemi sa više stanja • Nepredvidljivi problemi • Istraživački problemi

7. Knowledge and problem types

8. Knowledge and problem types • Problem sa jednim stanjem –potpunoznanje o akcijama i stanju – sredina je potpuno dostupna • State 5 -> [Right,Suck] • Problem sa više stanja –agent ima delimično znanje, na pr. znanje samo o akcijama ili znanje samo o stanju • Početno stanje je bilo koje iz skupa {1,2,3,4,5,6,7,8} • Sekvenca [Right,Suck,Left,Suck] uvek rešava problem • Nepredvidljivi problem – tačno predviđanje nije moguće jer su moguće nepredvidljive situacije kao na primer: Murphijev zakon: Suck action – usisavanje ponekad prlja, i to samo ako je već bilo čisto

9. Knowledge and problem types • Mnogi problemi u realnom, fizičkom svetu su nepredvidljivi problemi, jer je tačno predviđanje nemoguće. Iz tog razloga, ljudi pažljivo posmatraju okolinu dok se kreću ili voze. • Problemi sa jednim i više stanja se mogu rešiti tehnikama pretraživanja • Nepredvidljivi problemi zahtevaju složenije algoritme gde agent može i mora da deluje – izvodi akciju i pre nego što je našao konačno rešenje koje dovodi do cilja • Često je mnogo bolje da agent otpočne sa nekom akcijom – rešavanjem problema i da vidi kakve će se nepredviđene situacije desiti, nego da unapred razmatra sve moguće nepredviđene situacije do kojih eventualno može doći. Agent u tom slučaju nastavlja sa radom na osnovu dodatnih informacija – o nepredviđenoj situaciji.

10. Exploration problem • Problem istraživačkog tipa je najteži, jer nema nikakvog znanja o tom problemu. • Problem je sličan situaciji kada je neko izgubljen u stranoj zemlji bez mape, i bez znanja o akcijama koje može preduzeti. • U takvom slučaju agent mora da experimentiše, postepeno otkrivajući rezultate - efekte svojih akcija i kakve sve vrste stanja postoje. To se može nazvati nekom vrstom pretrage, ali pretragom u realnom svetu a ne u domenu stanja modela. • Delovanje u realnom svetu u odnosu na model, nosi opasnosti i rizike za agenta bez znanja. Ako preživi, agent uči mapu okoline i koristi je za rešavanje problema

11. Well-defined problems and solutions • Problem predstavlja skup informacija koje će agent koristiti za donošenje odluka o svojim akcijama • Slučaj problema sa jednim stanjem • Osnovni elementi definicije problema su moguća stanja i operacije – akcije • Formalno se definišu sledeći elementi rešavanja problema: • Početno stanje koje je agentu poznato • Skup mogućih akcija dostupnih agentu • Pod operatorom se podrazumeva označavanje opisa akcije preko definisanja stanja u koja će se preći izvršavanjem akcije u određenom zadatom stanju Successor function S(x) daje - vraća skup stanja dostupnih iz stanja x bilo kojom pojedinačnom akcijom

12. Well-defined problems and solutions • Početno stanje i f-ja S, definišu prostor stanja problema: skup svih stanja dostupnih iz početnog stanja bilo kojim redosledom akcija. • Putanja u prostoru stanja je bilo koji niz akcija koje vode iz jednog stanja u drugo. • Otkrivanje cilja je test koji agent primenjuje na svako pojedinačno stanje da bi odredio da li to stanje predstavlja cilj. • Rešenje može biti dobro definisan skup stanja i onda se proverava da li se došlo do nekog stanja iz tog skupa. • Cilj može biti i neko apstraktno svojstvo kao na pr. definicija matne pozicije u šahu.

13. Solution grades • Ako je moguće više različitih rešenja kojima se postiže jedan isti cilj, treba ispitati različita rešenja jer ne moraju biti ekvivalentna i mogu se znatno razlikovati u nekim aspektima • Na primer, rešenja – putanje sa manjom ukupnom cenom akcija mogu biti ono što se traži. • Funkcija cene putanje je funkcija koja dodeljuje određenu cenu nekoj putanji u prostoru stanja • Cena putanje je suma cena pojedinačnih akcija duž putanje. Funkcija cene putanje se uobičajeno označava sa g • Uzeti zajedno, početno stanje, skup operatora, test za cilj, i funkcija cene puta definišu problem

14. Solution grades • Primerci – instance tipa podataka PROBLEM, će predstavljati ulaz u algoritme pretrage • Izlaz algoritma pretrage je rešenje, tj. putanja od početnog stanja do stanja koje zadovoljava test – kriterijum za cilj • Problemi tipa sa više stanja zahtevaju manju modifikaciju: problem se sastoji od skupa početnih stanja; skup operatora koji za svaku akciju određuju skup stanja do kojih se dolazi iz bilo kog zadatog stanja; test – kriterijum cilja i cena puta su isti

15. Solution grades • Operator se primenjuje na skup stanja ujedinjavanjem rezultata primene operatora na svako pojedinačno stanje u skupu. Putanja sada povezuje skupove stanja, a rešenje je sada putanja koja vodi do skupa stanja koja su sva ciljna stanja. Prostor stanja se zamenjuje skupom prostora stanja

16. Measuring problem-solving performance • Efikasnost pretrage može da se meri na najmanje tri različita načina • Pre svega, da li uopšte pronalazi rešenje? • Drugo, da li je to dobro rešenje, rešenje sa niskom cenom puta? • Treće, koja je cena pretraživanja povezana sa vremenom i memorijom potrebnim za pronalaženje rešenja? • Osim cene puta postoji – može se definisati i cena pretraživanja kao takođe bitan faktor za nalaženje rešenja • Ukupna cena pretrage je suma cene puta i cene pretraživanja • Agent treba nekako da odluči koje resurse i u kojoj meri da posveti pretraživanju, a koje i u kojoj meri da posveti samom izvršavanju – kada se rešenje jednom nađe.

17. Za probleme sa veoma malim prostorom stanja, jednostavno je da se nađu rešenja sa najnižom cenom putanje rešenja problema. • Za veće i složenije probleme, potreban je kompromis – agent može veoma dugo da traži optimalno ili rešenje sa malom cenom puta, ili da traži kraće vreme i da dobije rešenje koje nije optimalno

18. Abstraction • Proces uklanjanja nepotrebnih detalja iz reprezentacije se naziva apstrakcija • Apstrakcija se može primeniti kako na opis - specifikaciju stanja, tako i na opis akcija • Izbor dobre apstrakcije takođe predstavlja jednu vrstu kompromisa - eliminisanje što je više detalja moguće, uz istovremeno zadržavanje validnosti opisa i osiguravanje da se apstraktne akcije mogu lako realizovati.. • Ako se ne bi mogle primenjivati upotrebljive apstrakcije, inteligentni agenti bi bili potpuno onemogućeni ogromnom složenošću realnog sveta

19. Toy problem - The 8-puzzIe

20. The 8-queens problem • Postoje dve glavne vrste formulacije problema • Inkrementalna formulacija navodi redosled postavljanja kraljica jedne za drugom • The complete-state formulation počinje sa svih 8 kraljica na tabli i razmatra kako se pomeraju da bi se došlo do rešenja • Cena puta nije od značaja u ovom slučaju, jer je bitno / računa se samo konačno stanje • Algoritmi se onda porede samo po ceni pretraživanja

21. Kriterijum cilja i cena puta • Kriterijum cilja: 8 kraljica na tabli, nijedna napadnuta • Cena puta: nula • Stanja: bilo koji raspored 0 do 8 kraljica na tabli • Operatori: dodavanje kraljice na bilo koje polje • 648 mogućih sekvenci koje treba pretražiti • Razumniji način pretrage može da koristi činjenicu da treba isključiti polja koja su napadnuta prethodno postavljenim kraljicama • Stanja: rasporedi od 0 do 8 kraljica koje se ne napadaju Operatori: postaviti kraljicu u krajnju levu kolonu tako da nije napadnuta ni sa jednom drugom kraljicom

22. Posle prvih sedam kraljica, sleva na desno, ovaj algoritam ne funkcioniše. Pretraživanje treba nastaviti sa preostalih 2057 mogućih sekvenci koje treba istražiti • Od bolje / dobre formulacije zavisi veličina prostora za pretraživanje • Stanja: rasporedi 8 kraljica, svaka u po jednoj koloni Operatori: pomeranje bilo koje napadnute kraljice u polje u istoj koloni • Ovakva formulacija će omogućiti da se algoritmom nađe rešenje • Rešenje se može poboljšati pomeranjem u nenapadnuto polje, umesto samo za po jedno

23. Cryptoarithmetic • U kriptoaritmetičkim problemima, slova se zamenjuju ciframa, a cilj je da se nađe takva principijelna zamena koja takođe daje korektnu rezultujuću matematičku sumu. Uglavnom se svako slovo zamenjuje različitom cifrom. Sledeći primer je dobro poznat:

24. Cryptoarithmetic • States: cryptoaritmetička slagalica u kojoj se slova zamenjuju ciframa • Operators: zamena svih pojavljivanja slova sa cifrom koja još nije iskorišćena u slagalici – zagonetki – zadatku • Kriterijum cilja: slagalica sadrži samo cifre, i reprezentuje i daje korektnu sumu • Cena puta: 0 sva rešenja su ista • Postupak: počinje se sa slovom koje ima najmanje mogućnosti, tj. koje je najviše ograničeno konkretnim slučajem zadate slagalice

25. The vacuum world • Slučaj problema sa jednim stanjem i kompletnom informacijom • Agentu je poznata lokacija gde se nalazi, lokacije svih mesta sa prljavštinom kao i da je usisavač u redu • Stanja: jedno od osam stanja • Operatori: pomeranje u levo, desno, usisavanje. • Kriterijum cilja: počišćena prljavština svuda • Cena puta: svaka akcija ima istu cenu

26. The vacuum world complete single state space

27. The vacuum world – multi state problem • Agent nema senzore • Za multiple-state problem, važi sledeće: • Skupovi stanja: podskupovi stanja 1-8 • Operatori: pomeranje levo, desno, usisavanje • Kriterijum cilja: sva stanja u skupu stanja čista • Cena puta: sve akcije sa istom cenom • Početni skup stanja je skup svih stanja • Rešenje je bilo koja sekvenca akcija koja vodi od početnog skupa stanja do skupa stanja bez prljavštine • Slični prostori stanja mogu se konstruisati za slučaj neizvesnosti o akcijama i neizvesnosti o stanjima i o akcijama

28. Missionaries and cannibals • Stanja: stanja se sastoje od uređenog niza trojki koje predstavljaju broj misionara, kanibala i čamaca na obali odakle polaze • Početno stanje je dato sa: (3,3,1). • Operatori: iz svakog stanja mogući operatori su za po jednog misionara ili kanibala, za po dva i kombinaciju jednog misionara i kanibala što ukupno daje 5 operatora • Kriterijum cilja: dostignuto stanje (0,0,0). • Cena puta: broj prelazaka

29. Real-world problems: Route finding • Algoritmi za pronalaženje rute – putanje se koriste u raznim aplikacijama kao na pr. Rutiranje u računarskim mrežama, GPS, planiranje putovanja avionom • Planiranje putovanja avionom je kompikovano zbog moguće složene f-je cene puta što uključuje na pr. cenu karata, izbor klase, doba dana, tip aviona, Miles and More – Star Allience, zauzeta mesta, propušteni let zbog kašnjenja, magla, tehničke neispravnosti, teroristi...

30. Touring and travelling salesperson problems • Problem putujućeg trgovca – prodavca je poznati problem obilaska u kome se svaki grad mora posetiti samo jednom. • Cilj je da se pronađe najkraća putanja. Problem je NP tipa – nema tačnog rešenja u opštem slučaju • Velika energija je uložena za za unapređenje mogućnosti algoritama za ovakve sisteme. • Osim zadatka planiranja putovanja putujućeg trgovca, ovakvi algoritmi se koriste još i za planiranje pomeranja automatskih bušilica za štampane ploče

31. VLSI layout • VLSI - Very Large Scale Integration (SSI, MSI, LSI...) • Dizajn silicijumskih čipova je jedan od najsloženijih trenutno postojećih inženjerskih zadataka • Tipičan VLSI chip može imati milione logičkih kapija gde su pozicija i konekcije svake logičke kapije od ogromnog značaja za pravilan rad čipa • Razni softverski alati se koriste u svakoj od faza dizajna i izrade ovih složenih kola

32. Robot navigation • Navigacija robota je generalizacija problema nalaženja optimalne putanje • Robot može da se pomera u kontinualnom prostoru kada u principu ima beskonačno mnogo mogućih akcija i stanja • Za jednostavnog robota koji može da se kreće u ograničenoj oblasti po ravnoj površini, prostor je dvodimenzionalan. • Ali kada robot ima ruke i noge koje takođe treba nezavisno kontrolisati (i sinhronizovati) prostor suštinski postaje više dimenzionalan, pa samim tim i odgovarajući prostor pretraživanja postaje višedimenzionalan • Napredne tehnike i modeli su neophodni za efikasno svođenje prostora pretraživanja na konačan prostor koji se može savladati postojećim algoritmima • Za realne robote se mora takođe predvideti uticaj eventualnih pogrešnih očitavanja senzora – grešaka merenja, kao i adekvatno upravljanje motorima koji takođe nisu idelani.

33. Assembly sequencing • Sastavljanje komponenata složenih objekata je težak zadatak koji je 1972 godine uspešno demonstrirao robot FREDDY. • Otada je napredak na tom polju relativno spor, ali konstantan, tako da je sada na pr. ekonomski isplativo da se radi automatsko sastavljanje objekata kao što su elektromotori. • Roboti na pokretnoj traci ne rešavaju problem sastavlanja – već je rešen – osmišljen dobro definisanim operacijama na traci • U problemima sastavljanja, glavni zadatak je nalaženje ispravnog redosleda postavljanja komponenata složenog objekta • Provera da li je novi korak u nizu moguć može biti složen geometrijski problem usko povezan sa zadatkom navigacije robota

34. SEARCHING FOR SOLUTIONS • Nalaženje rešenja problema se vrši pretraživanjem prostora stanja • Osnovna ideja je održavanje i proširivanje skupa nizova sekvenci delimičnih rešenja • Generisanje novih sekvenci pretraživanja i korišćenje postojećih sekvenci se bazira na upotrebi pogodnih tipova podataka – strukture podataka kojom se ove sekvence predstavljaju • Generisanje sekvence pretraživanja počinje sa početnim stanjem • Početno stanje, kao i svako drugo se prvo testira da li je možda konačno – ciljno stanje, u kom slučaju je pretraživanje završeno • Ako nije ciljno stanje, razmatra se kreiranje novih stanja ili se proveravaju neka druga već postojeća stanja

35. Generating action sequences • Generisanje nizova akcija se vrši primenom operatora na tekuće stanje čime se generiše novi skup stanja – svaki od više operatora generiše po jedno novo stanje • Taj proces se naziva proširivanje – ekspanzija prostora stanja • Kad god ima više od jednog novog stanja ili se generiše više od jednog novog stanja, neophodno je na određeni način odabrati sledeće stanje koje će se razmatrati. • To je suštinska karakteristika pretrage – izbor jedne mogućnosti i odlaganje ostalih alternativa za kasnije kada problem pretrage nije trivijalan • Izbor sledećeg čvora – stanja za pretraživanje i dalje otvaranje se određuje odabranom strategijom pretraživanja

36. The search strategy • Proces pretrage odgovara generisanju drveta pretrage u prostoru stanja. Koren drveta pretrage je čvor koji odgovara početnom stanju. • Čvorovi listovi dveta odgovaraju stanjima koja nemaju naslednike, bilo da još nisu primenjeni operatori na njih, bilo zato što je generisan skup prazan. • U svakom koraku algoritam pretrage bira jedan od čvorova koji će se otvoriti • Važno je praviti strogu terminološku razliku između pojmova prostor stanja i drvo pretraživanja

37. The search strategy

38. Data structures for search trees • Čvor u prostoru stanja se može predstaviti odgovarajućnom strukturom podataka sa pet bitnih komponenata: • Stanje u prostoru stanja koje odgovara datom čvoru • Čvor u drvetu pretraživanja koji je generisao dati čvor – roditeljski čvor • Operator koji je primenjen da generiše dati čvor • Broj čvorova na putanji od korena do datog čvora – dubina čvora • Cena puta putanje od početnog čvora do datog čvora

39. Data structures for search trees • Bitna je terminološka razlika između čvorova i stanja Čvor je struktura podataka kojom se modeluju – predstavljaju stanja na drvetu pretraživanja za određeni problem i čvorovi se generišu odgovarajućim algoritmom. • Stanje predstavlja konfiguraciju ili skup konfiguracija iz sveta koji se posmatra. • Dakle, za čvorove se može definisati pojam dubine i roditelja – pretka, dok za stanje ti pojmovi nemaju smisla • Takođe, dva različita čvora mogu da sadrže - predstavljaju jedno isto stanje

40. Data structures for search trees • Skup čvorova koji čekaju da budu otvoreni su na trenutnoj granici drveta pretraživanja i nazivaju se fringe • Najjednostavniji način reprezentacije je skup čvorova • Strategija pretraživanja je f-ja koja bira sledeći čvor iz skupa koji će se otvoriti. • Da bi se odabrao sledeći čvor za otvaranje, može biti potrebno da f-ja strategije treba da pregleda – ispita svaki postojeći čvor • Skup čvorova se može implementirati kao red - queue. • The standard operations on a queue are:

41. Data structures for search trees • Standardne operaciju na redu – queu su: • MAKE-QUEUE(Elements) kreira red - queue sa navedenim elementima • EMPTY(Queue) brisanje reda, vraća true samo ako je queue prazan – nema više elemenata • REMOVE-FRONT(queue) uklanja elemenat sa početka reda i vraća preostali red • QUEUElNG-FN (Elements,Queue) ubacuje skup elemenata u queue. • Različite varijante QUEUElNG-FN daju različite verzije algoritma za pretragu • Sa ovako uvedenim pojmovima, opšti algoritam pretrage se može predstaviti kao na sledećoj slici:

42. The general search algorithm

43. SEARCH STRATEGIES • Kriterijumi za strategiju pretrage • Completeness: da li strategija garantuje nalaženje rešenja kada rešenje postoji? • Time complexity: koliko dugo može da traje nalaženje rešenja? • Space complexity: koliko memorije je potrebno za pretraživanje? • Optimality: da li strategija nalazi najbolja rešenja u slučajevima kada postoji više različitih rešenja?

44. Uninformed search • Uninformed search je vrsta pretrage kod koje nema informacija o potrebnom broju koraka da se dođe do rešenja ili o ceni puta od tekućeg stanja do cilja – sve što je poznato je mogućnost razlikovanja ciljnog stanja od stanja koje ne predstavlja cilj. • Uninformed search se takođe naziva i slepo pretraživanje - blind search. • Strategije koje koriste neko znanje o prostoru pretrage nazivaju se informed search strategies ili heuristic search strategies • Uninformed search strategije su manje efikasne od informed search strategija • Uninformed search strategije su ipak značajne jer ima puno problema kod kojih nema dodatnih informacija koje bi omogućile unapređenje slepe pretrage • Uninformed search strategije se razlikuju prema redosledu otvaranja čvorova • Ova razlika u redosledu je veoma bitna i susštinski razlikuje strategije slepog pretraživanja • Zajedničko za sve strategije slepog pretraživanja je umapred definisana sistematičnost koja i određuje redosled otvaranja čvorova

45. Breadth-first search – pretraživanje po širini • Breadth-first search je jednostavna strategija pretraživanja po širini • U ovoj strategiji, prvo se otvara koreni čvor, posle čega se otvaraju svi čvorovi naslednici korenog čvora, zatim njihovi naslednici i tako dalje • U opštem slučaju, svi čvorovi na dubini d na drvetu pretraživanja se otvaraju pre čvorova na dubini d+1. • Breadth-first search se može implementirati pozivanjem opšteg algoritma za pretragu - GENERAL-SEARCH algorithm, sa queuing funkcijom koja postavlja novo kreirane čvorove na kraj reda posle svih prethodno generisanih čvorova

46. Breadth-first search • Breadth-first search strategija je veoma sistematična strategija jer prvo razmatra sve putanje dužine 1 zatim sve putanje dužine 2 i tako dalje • Ako postoji rešenje, breadth-first search će garantovano naći to rešenje, dok ako postoji više rešenja, breadth-first search će uvek prvo naći najbliže – najpliće rešenje • Na osnovu navedenih kriterijuma, breadth-first search je kompletna, optimalna strategija pretraživanja, koja garantuje da je cena pretraživanja neopadajuća funkcija dubine čvora

47. Breadth-first search • Vreme i memorija koji su potrebni da se završi pretraga u širinu, u opštem slučaju mogu biti zaista ogromni. • U prostoru stanja gde svako stanje može biti otvoreno tako da daje b novih stanja, the branching factor – faktor grananja ovih stanja i drveta pretrage iznosi b • Koren drveta pretrage generiše b čvorova na prvom nivou, od kojih svaki takođe generiše po b čvorova sa ukupno b2 čvorova na drugom nivou • Svaki od ovih čvorova generiše takođe b čvorova dajući ukupno b3 čvorova na drugom nivou • Ako rešenje problema ima putanju dužine d, najveći broj čvorova otvoren pre nalaženja samog rešenja je • 1 + b + b2 + b3 + • • • + bd