- Vi har studerat de strategier som kan resonera antingen framåt eller bakåt, men en blandning av de två riktningarna är lämplig för att lösa ett komplext och stort problem. En sådan blandad strategi gör det möjligt att först lösa huvuddelen av ett problem och sedan gå tillbaka och lösa de små problemen som uppstår när man kombinerar de stora delarna av problemet. En sådan teknik kallas Medel-målanalys .
- Means-Ends Analysis är problemlösningstekniker som används i artificiell intelligens för att begränsa sökning i AI-program.
- Det är en blandning av bakåt- och framåtsökteknik.
- MEA-tekniken introducerades först 1961 av Allen Newell och Herbert A. Simon i deras problemlösningsdatorprogram, som fick namnet General Problem Solver (GPS).
- MEA-analysprocessen fokuserade på utvärderingen av skillnaden mellan nuvarande tillstånd och måltillstånd.
Så fungerar medel-mål-analys:
Medel-mål analysprocessen kan tillämpas rekursivt för ett problem. Det är en strategi för att kontrollera sökning i problemlösning. Följande är huvudstegen som beskriver hur MEA-tekniken fungerar för att lösa ett problem.
- Utvärdera först skillnaden mellan ursprungligt tillstånd och sluttillstånd.
- Välj de olika operatorerna som kan användas för varje skillnad.
- Använd operatorn vid varje skillnad, vilket minskar skillnaden mellan det aktuella tillståndet och måltillståndet.
Operatörs delmål
I MEA-processen upptäcker vi skillnaderna mellan nuvarande tillstånd och måltillstånd. När dessa skillnader uppstår kan vi använda en operatör för att minska skillnaderna. Men ibland är det möjligt att en operatör inte kan tillämpas på det aktuella tillståndet. Så vi skapar delproblemet med det nuvarande tillståndet, i vilket operatör kan tillämpas, en sådan typ av bakåtkedjning där operatörer väljs ut, och sedan delmål sätts upp för att fastställa operatörens förutsättningar kallas Operatörs delmål .
Algoritm för medelvärdesanalys:
Låt oss ta Current state som CURRENT och Goal State som MÅL, sedan följer stegen för MEA-algoritmen.
- Välj en ny operatör O som är tillämplig för den aktuella skillnaden, och om det inte finns någon sådan operatör, signalera fel.
- Försök att applicera operator O på CURRENT. Gör en beskrivning av två tillstånd.
i) O-Start, ett tillstånd där O?s förutsättningar är uppfyllda.
ii) O-Resultat, tillståndet som skulle resultera om O applicerades i O-start. - Om
(Första delen<------ mea (current, o-start)< strong>
Och
(Sista delen<----- mea (o-result, goal)< strong>, är framgångsrika, signalera sedan Success och returnerar resultatet av att kombinera FIRST-PART, O och LAST-PART.-----> ------>
Den ovan diskuterade algoritmen är mer lämpad för ett enkelt problem och inte lämplig för att lösa komplexa problem.
Exempel på medelvärdesanalys:
Låt oss ta ett exempel där vi känner till initialtillståndet och måltillståndet enligt nedan. I detta problem måste vi få fram måltillståndet genom att hitta skillnader mellan initialtillståndet och måltillståndet och tillämpa operatorer.
Lösning:
För att lösa ovanstående problem kommer vi först att hitta skillnaderna mellan initialtillstånd och måltillstånd, och för varje skillnad kommer vi att generera ett nytt tillstånd och tillämpa operatörerna. Operatörerna vi har för detta problem är:
1. Utvärdera det initiala tillståndet: I det första steget kommer vi att utvärdera initialtillståndet och jämföra initialtillståndet och måltillståndet för att hitta skillnaderna mellan båda tillstånden.
2. Använda Delete-operatorn: Eftersom vi kan kontrollera den första skillnaden är att i måltillstånd finns det ingen punktsymbol som finns i det initiala tillståndet, så först kommer vi att tillämpa Ta bort operatör för att ta bort denna punkt.
3. Använda Move Operator: Efter applicering av Delete-operatorn uppstår det nya tillståndet som vi återigen kommer att jämföra med måltillstånd. Efter att ha jämfört dessa tillstånd finns det en annan skillnad som är att kvadraten är utanför cirkeln, så vi kommer att tillämpa Flytta operatör .
4. Använder Expand Operator: Nu genereras ett nytt tillstånd i det tredje steget, och vi kommer att jämföra detta tillstånd med måltillståndet. Efter att ha jämfört tillstånden finns det fortfarande en skillnad som är storleken på kvadraten, så vi kommer att tillämpa Expandera operatör , och slutligen kommer det att generera måltillståndet.