- Vi har studert strategiene som kan resonnere enten fremover eller bakover, men en blanding av de to retningene er passende for å løse et komplekst og stort problem. En slik blandet strategi gjør det mulig at man først løser hoveddelen av et problem og deretter går tilbake og løser de små problemene som oppstår ved å kombinere de store delene av problemet. En slik teknikk kalles Middel-målsanalyse .
- Means-Ends Analysis er problemløsningsteknikker som brukes i kunstig intelligens for å begrense søk i AI-programmer.
- Det er en blanding av søk bakover og fremover.
- MEA-teknikken ble først introdusert i 1961 av Allen Newell og Herbert A. Simon i deres problemløsende dataprogram, som ble kalt General Problem Solver (GPS).
- MEA-analyseprosessen sentrerte seg om evalueringen av forskjellen mellom nåværende tilstand og måltilstand.
Slik fungerer middel-mål-analyse:
Middel-målsanalyseprosessen kan brukes rekursivt for et problem. Det er en strategi for å kontrollere søk i problemløsning. Følgende er hovedtrinnene som beskriver hvordan MEA-teknikken fungerer for å løse et problem.
- Først, evaluer forskjellen mellom opprinnelig tilstand og endelig tilstand.
- Velg de forskjellige operatørene som kan brukes for hver forskjell.
- Bruk operatøren ved hver forskjell, noe som reduserer forskjellen mellom gjeldende tilstand og måltilstand.
Operatør Delmål
I MEA-prosessen oppdager vi forskjellene mellom nåværende tilstand og måltilstand. Når disse forskjellene oppstår, kan vi bruke en operatør for å redusere forskjellene. Men noen ganger er det mulig at en operatør ikke kan brukes til den nåværende tilstanden. Så vi skaper delproblemet til den nåværende tilstanden, i hvilken operatør kan brukes, en slik type baklengs kjeding der operatører velges, og deretter delmål settes opp for å etablere forutsetningene til operatøren kalles Operatør Delmål .
funksjonene til arduino
Algoritme for middel-målsanalyse:
La oss ta Current state som Gjeldende og Goal State som MÅL, så følger trinnene for MEA-algoritmen.
- Velg en ny operatør O som er aktuelt for gjeldende forskjell, og hvis det ikke er en slik operatør, signalisere feil.
- Forsøk å bruke operator O på CURRENT. Lag en beskrivelse av to tilstander.
i) O-Start, en tilstand hvor O?s forutsetninger er oppfylt.
ii) O-resultat, tilstanden som ville resultere hvis O ble brukt i O-start. - Hvis
(Første del<------ mea (current, o-start)< strong>
Og
(Siste del<----- mea (o-result, goal)< strong>, er vellykkede, signaliserer deretter Suksess og returnerer resultatet av å kombinere FIRST-PART, O og LAST-PART.-----> ------>
Den ovenfor diskuterte algoritmen er mer egnet for et enkelt problem og ikke tilstrekkelig for å løse komplekse problemer.
Eksempel på middelverdianalyse:
La oss ta et eksempel der vi kjenner starttilstanden og måltilstanden som gitt nedenfor. I denne oppgaven må vi få måltilstanden ved å finne forskjeller mellom starttilstand og måltilstand og bruke operatører.
Løsning:
For å løse problemet ovenfor vil vi først finne forskjellene mellom starttilstander og måltilstander, og for hver forskjell vil vi generere en ny tilstand og bruke operatørene. Operatørene vi har for dette problemet er:
i regex i java
1. Evaluering av starttilstanden: I det første trinnet vil vi evaluere starttilstanden og sammenligne starttilstanden og måltilstanden for å finne forskjellene mellom begge tilstandene.
strengfunksjoner i java
2. Bruke Slett-operatør: Ettersom vi kan sjekke den første forskjellen er at i måltilstand er det ikke noe prikksymbol som er til stede i starttilstanden, så først vil vi bruke Slett operatør for å fjerne denne prikken.
3. Bruk av Move Operator: Etter bruk av Slett-operatoren oppstår den nye tilstanden som vi igjen vil sammenligne med måltilstand. Etter å ha sammenlignet disse tilstandene, er det en annen forskjell som er at kvadratet er utenfor sirkelen, så vi vil bruke Flytt operatør .
4. Bruk av Expand Operator: Nå genereres en ny tilstand i tredje trinn, og vi vil sammenligne denne tilstanden med måltilstanden. Etter å ha sammenlignet statene er det fortsatt en forskjell som er størrelsen på kvadratet, så vi vil bruke Utvid operatør , og til slutt vil den generere måltilstanden.