Task planning入门
三大入门材料:
PDDL
Automated Planning and Acting
Planning algorithms
workflow
future work
- 只能deal 静态环境,non-reactive。 Solution: adopt the determinization and iterative planning strategy presented in Chap. 6.
- 人给定的task specification可能: 无法完全达到要求; 或者有逻辑冲突,比如让机器人出现在两个空间。
- 关于行为树,人的编程可能有Bug,需要做一个编译器。
- 现在行为树只能处理a linear sequence of actions。还不能处理时序planner等输出。
Coursera automata:
- strong bisimulation>rooted branching bisimulation>branching bisimulation(允许隐藏动作tau) > weak bisimulation
strong bisimulation: 保留所有性质,不会去掉tau。
branching bisimulation: 尽可能去掉tau, 但是保留了deadlock。
divergence preserving branching bisimulation: 不完全隐藏tau,只合并tau,保留可以无限进行的tau。
weak trace bisimulation:
tau之前的可以不管,tau之后的related就行。可以去掉足够多的不感兴趣的transition,让graph变小。
trace equivalent: 最长trace以及其子集 相同。
complete trace equivalence: 最长trace 集合相同。
refusal sets: 下一个不能到达的state
failure pair: < state, refusal sets>
youtube automata
input: string
if final state at ‘accepted set’ , the machine accept the string.
if final state not at ‘accepted set’ , the machine reject the string.
finite state machine(DFSM):
定义和automata很像,
S(state), U(actions), Y(transitions: S x U–> S)
language that M accepts/ recognizes: L(M). 比如,空string或者结尾是0的string。
设计一个machine,让其可以accept一个一定规律的language.
如果一个language可以被recognize,那么就是regular的。
computation: r0, r1, r2…
问: A是regular(M1 recognize A), B 也是regular(M2 recognize B), 求证明: A和B的交集和并集也是regular。
答: 一个M3,可以simulate M1 M2并行(同时处理一个input string )。
M3的状态是M1, M2的笛卡尔积。注意accepted set就是A和B的accepted set的交集。
如果求交集,那么只有final state上不同,就是求两个accept set的交集。但是init state都是二者的交集。
NFA: nondetermistic finite automata
另一种不确定性:take in empty string
NFA可能fail,比如在accept state再吸收一个0. 写的更紧凑。下图,下面就是DFA,上面是NFA。
正则表达式
就是regular language的表达,可以被NFA或者DFA accept。
GNFA
要从language得到regular expression(从automata到LTL),需要先得到regular language: A=L®.
DFA/NFA–>generalized NFA
- 只有一个被其他所指的accepted state, empty string
- 只有一个指向其他的init state,empty language
GNFA–>regex
example: rip 2,1
spot
buchi automata和NFA的区别是,可以take in infinite word,并且最后的w-word要visit accept state无穷次。也被称为w-automata。
要根据一个specification构造automata还是挺难的。比如For instance the following Büchi automaton accept all runs in which at all point a is true iff b is true at the next instant. 可以用几个例子验证下。。