- Изучихме стратегиите, които могат да разсъждават напред или назад, но комбинация от двете посоки е подходяща за решаване на сложен и голям проблем. Такава смесена стратегия прави възможно първо да се реши основната част от проблем и след това да се върнете и да разрешите малките проблеми, възникващи по време на комбинирането на големите части от проблема. Такава техника се нарича Анализ на средствата и целите .
- Анализът на средствата и целите е техника за решаване на проблеми, използвана в изкуствения интелект за ограничаване на търсенето в програми с изкуствен интелект.
- Това е смесица от техника за търсене назад и напред.
- Техниката MEA е представена за първи път през 1961 г. от Алън Нюел и Хърбърт А. Саймън в тяхната компютърна програма за решаване на проблеми, наречена General Problem Solver (GPS).
- Процесът на анализ на MEA се съсредоточи върху оценката на разликата между текущото състояние и целевото състояние.
Как работи анализът на средствата и целите:
Процесът на анализ на средствата и целите може да се приложи рекурсивно за проблем. Това е стратегия за контролиране на търсенето при решаване на проблеми. Следват основните стъпки, които описват работата на MEA техниката за решаване на проблем.
стек в java
- Първо, оценете разликата между началното състояние и крайното състояние.
- Изберете различните оператори, които могат да се прилагат за всяка разлика.
- Приложете оператора при всяка разлика, което намалява разликата между текущото състояние и целевото състояние.
Подцели на оператора
В процеса на MEA ние откриваме разликите между текущото състояние и целта. След като възникнат тези разлики, тогава можем да приложим оператор, за да намалим разликите. Но понякога е възможно даден оператор да не може да бъде приложен към текущото състояние. Така че ние създаваме подпроблема на текущото състояние, в който операторът може да бъде приложен, такъв тип обратно верижно свързване, при което се избират оператори и след това се задават подцели, за да се установят предварителните условия на оператора, се нарича Подцели на оператора .
Алгоритъм за анализ на средствата и целите:
Нека вземем текущото състояние като ТЕКУЩО и целевото състояние като ЦЕЛ, след което следват стъпките за алгоритъма MEA.
- Изберете нов оператор O, който е приложим за текущата разлика и ако няма такъв оператор, сигнализирайте за грешка.
- Опит за прилагане на оператор O към ТЕКУЩ. Направете описание на две състояния.
i) O-Start, състояние, при което предварителните условия на O са изпълнени.
ii) O-резултат, състоянието, което би се получило, ако O се приложи в O-старт. - Ако
(Първа част<------ mea (current, o-start)< strong>
И
(ПОСЛЕДНА-част<----- mea (o-result, goal)< strong>, са успешни, след това сигнализират за успех и връщат резултата от комбинирането на FIRST-PART, O и LAST-PART.-----> ------>
Обсъденият по-горе алгоритъм е по-подходящ за прост проблем и не е подходящ за решаване на сложни проблеми.
Пример за анализ на средните цели:
Нека вземем пример, при който знаем първоначалното състояние и целевото състояние, както е дадено по-долу. В този проблем трябва да получим целевото състояние чрез намиране на разлики между първоначалното състояние и целевото състояние и прилагане на оператори.
Решение:
За да разрешим горния проблем, първо ще намерим разликите между началните състояния и целевите състояния и за всяка разлика ще генерираме ново състояние и ще приложим операторите. Операторите, които имаме за този проблем, са:
js base64 декодиране
1. Оценка на първоначалното състояние: В първата стъпка ще оценим първоначалното състояние и ще сравним първоначалното и целевото състояние, за да открием разликите между двете състояния.
jsp
2. Прилагане на оператор Delete: Както можем да проверим, първата разлика е, че в целевото състояние няма символ на точка, който присъства в първоначалното състояние, така че първо ще приложим Оператор за изтриване за да премахнете тази точка.
3. Прилагане на оператор за преместване: След прилагане на оператора Delete възниква новото състояние, което отново ще сравним с целевото състояние. След като сравним тези състояния, има друга разлика, че квадратът е извън кръга, така че ще приложим Оператор за преместване .
4. Прилагане на оператор за разгъване: Сега в третата стъпка се генерира ново състояние и ние ще сравним това състояние с целевото състояние. След сравняване на състоянията все още има една разлика, която е размерът на квадрата, така че ще приложим Оператор за разгъване и накрая ще генерира състоянието на целта.