- Preučevali smo strategije, ki lahko razmišljajo naprej ali nazaj, vendar je mešanica obeh smeri primerna za reševanje kompleksnega in velikega problema. Takšna mešana strategija omogoča, da najprej rešimo večji del problema in se nato vrnemo nazaj in rešimo majhne probleme, ki nastanejo med združevanjem velikih delov problema. Takšna tehnika se imenuje Analiza sredstev in ciljev .
- Analiza sredstev in ciljev je tehnika reševanja problemov, ki se uporablja v umetni inteligenci za omejevanje iskanja v programih AI.
- Je mešanica tehnike iskanja nazaj in naprej.
- Tehniko MEA sta leta 1961 prvič predstavila Allen Newell in Herbert A. Simon v svojem računalniškem programu za reševanje problemov, ki je bil imenovan General Problem Solver (GPS).
- Proces analize MEA je bil osredotočen na oceno razlike med trenutnim stanjem in ciljnim stanjem.
Kako deluje analiza sredstev in ciljev:
Postopek analize sredstev in ciljev se lahko rekurzivno uporabi za problem. Je strategija za nadzor iskanja pri reševanju problemov. Sledijo glavni koraki, ki opisujejo delovanje tehnike MEA za reševanje problema.
- Najprej ocenite razliko med začetnim in končnim stanjem.
- Izberite različne operatorje, ki jih je mogoče uporabiti za vsako razliko.
- Uporabite operator pri vsaki razliki, kar zmanjša razliko med trenutnim stanjem in ciljnim stanjem.
Podgoaliranje operaterja
V procesu MEA zaznavamo razlike med trenutnim stanjem in ciljnim stanjem. Ko pride do teh razlik, lahko uporabimo operator za zmanjšanje razlik. Toda včasih je možno, da operaterja ni mogoče uporabiti za trenutno stanje. Tako ustvarimo podproblem trenutnega stanja, v katerem je mogoče uporabiti operator, takšno vrsto povratnega veriženja, v katerem so izbrani operaterji, nato pa so nastavljeni podcilji za vzpostavitev predpogojev operatorja, se imenuje Podgoaliranje operaterja .
Algoritem za analizo sredstev in ciljev:
Vzemimo trenutno stanje za TRENUTNO in ciljno stanje za CILJ, nato pa sledijo koraki za algoritem MEA.
- Izberite nov operator O, ki je uporaben za trenutno razliko, in če takega operatorja ni, signalizirajte napako.
- Poskus uporabe operatorja O za CURRENT. Opišite dve stanji.
i) O-Start, stanje, v katerem so O?-jevi predpogoji izpolnjeni.
ii) O-rezultat, stanje, ki bi nastalo, če bi O uporabili v O-začetku. - če
(Prvi del<------ mea (current, o-start)< strong>
in
(ZADNJI del<----- mea (o-result, goal)< strong>, so uspešni, nato signalizirajo uspeh in vrnejo rezultat združevanja FIRST-PART, O in LAST-PART.-----> ------>
Zgoraj obravnavani algoritem je bolj primeren za preprost problem in ni primeren za reševanje kompleksnih problemov.
Primer analize povprečnih ciljev:
Vzemimo primer, kjer poznamo začetno stanje in ciljno stanje, kot je navedeno spodaj. V tem problemu moramo dobiti ciljno stanje z iskanjem razlik med začetnim in ciljnim stanjem ter uporabo operatorjev.
rešitev:
Za rešitev zgornjega problema bomo najprej poiskali razlike med začetnimi in ciljnimi stanji ter za vsako razliko generirali novo stanje in uporabili operatorje. Operaterji, ki jih imamo za to težavo, so:
v nizu v Javi
1. Vrednotenje začetnega stanja: V prvem koraku bomo ovrednotili začetno stanje in primerjali začetno in ciljno stanje, da bi ugotovili razlike med obema stanjema.
2. Uporaba operatorja Delete: Kot lahko preverimo, je prva razlika ta, da v ciljnem stanju ni simbola pike, ki je prisoten v začetnem stanju, zato bomo najprej uporabili Izbriši operaterja da odstranite to piko.
3. Uporaba operaterja premika: Po uporabi operatorja Delete se pojavi novo stanje, ki ga bomo ponovno primerjali s ciljnim stanjem. Po primerjavi teh stanj obstaja še ena razlika, da je kvadrat zunaj kroga, zato bomo uporabili Operator premika .
4. Uporaba operatorja razširitve: Zdaj se v tretjem koraku generira novo stanje in to stanje bomo primerjali s ciljnim stanjem. Po primerjavi držav obstaja še ena razlika, in sicer velikost kvadrata, zato bomo uporabili Operator razširitve in končno bo ustvaril ciljno stanje.