2015-11-10 1 views
1
Input : Set of operators 0, Start state s, Goal state g 
Output : Plan P 
1. begin 
2. | let P = []; 
3. | while g (is not a subset of) s do 
4. | | let E = {a|a is ground instance of an operator in O, 
5. | | and Preconditions(a) hold in s} 
6. | | if E = {} then 
7. | | | return failure 
8. | | end 
9. | | choose a (which is a member of) E; 
10. | | let s = s\ DeleteList(a) (union) AddList(a) 
11. | | P = P @ [a] 
12. | end 
13. | return P 
14.end 

Я изо всех сил, чтобы понять линии 4,5 (и то, что E используется?), Строки 9 (как это выбрать?) И линию 10.Может ли кто-нибудь объяснить этот псевдонимы для планирования ПЛОЩАДКИ для меня?

Спасибо за любую помощь, вы можете предложить ,

ответ

1

E - это набор применимых операций в s. То есть E представляет собой набор операций в O, для которых все их предпосылки сохраняются в s.

Если таких операций нет, эта «ветвь» алгоритма планирования приводит к сбою (строки 6 и 7) - план не может быть найден с s для достижения цели цели g.

Линия 9 скорее всего означает «недетерминистически выбирать»; которая в очень легком и абстрактном смысле «пробует все из них параллельно». На практике, однако, реализация планировщика глубин, скорее всего, будет детерминистически проверять членов E по одному на один *.

В строке 10 указано, что следующее состояние задается удалением отрицательных эффектов и добавлением положительных эффектов выбранного оператора a.


* которые должны требовать адаптации кода для проверки контуров для того, чтобы гарантировать полноту. См. Раздел 4.2.2 «Автоматизированное планирование - теория» Най, Галлаба и Траверсо & «Практика».

Смежные вопросы