关于AI planning W3C论坛转载
刚接触到这个AI Planning,感觉思路不是很清楚。
我的初步理解是,planning就是想办法把由很多的相似服务组成的"类"按照一定的"顺序"组合成一个编制,或者说是一个计划,比如制定一个旅游计划,旅店-->订票-->景点-->...至于具体的旅店服务,则是服务发现或者服务优化的事情了。
这里我有个问题,那就是planning是不是必须基于本体来实现,如果基于本体,我们需要考虑那些。有资料说,planning是通过precondition和effet来实现的,不是通过input和output,我这里不太明白。
希望大家给俺说道说道,或者推荐好文。
在经典的规划算法里,动作貌似便是以<name, precond, effects>来表示的,当然,语义显然可以在这个搜索过程中起到作用,语法的也可以工作。
这方面的文章应该也挺多的,SOA领域就是服务的自动组合了,传统 AI 推理里感觉如规则库的搜索策略等都非常有参考意义;一抓一大把~~ 呵呵
事实上,经过组合后的服务(一个满足用户需求的较为复杂的服务),其outputs应该就是用户想要的,目前就是指xml-message吧我想。同时,effects是每个原子服务发生作用后产生的影响,对用户数据库或者对其他的服务,对用户来讲,effect是透明的。
对于AI Planning,可以通过"知识库推理"来实现,比如向前推理(由inputs和effects 推出最终的outputs)和向后推理(由最终的outputs和最初的inputs寻找一阶逻辑规则集)
这里我有两个问题想请教:
1)基于语义web services,precondition 和 effect具体都要处理那些(自己的理解觉得比较片面),目前owl-s是不是还没有相应的实现(在一个个人blog上见到有人实现了,地址忘了,好像是一个清华的哥哥)。
2)楼上所说的动作,它不应该是对应的具体服务而应该是"一类服务",那么这个动作,也就是这个"类"应该用什么来表示?只能用本体来描述吗?如何描述呢?
关于动作,在这里也就是指服务了,其前件可以是语法的符号,或是语义的概念,关键是看你的领域的需求了,比方说如果你要做语义的,那自然是要用语义的东西把他包起来。后者需要用本体。
BTW,这方面的论文挺多的,你可以到中国期刊网--〉优秀硕博士论文里查,很多的,且用别人的毕业论文拿来入门感觉是很便捷的~^_^~ 再者我毕竟不是专攻这个方向的,对自己说的话对错尚且没有十足信心呢,呵呵~~
HTN planning基于 封闭世界假说,那它也就不可避免的存在一个局限性,那就是无法保证能找到一个适合当前任务的method(也许有,只是它自己不知道而已),它的优点,我目前总结的就是高效性,楼上的也提了,还有就是它和owl-s结合的很好,可以比较方便的由owl-s转化为planning方案。希望大家加以补充。
在planning的家族中,我看的资料大抵有以下几个planning: 基于situation calculs的,比如GOLOG,
基于model checking的,基于HTN的应该最多了,SHOP2,JSHOP...还有采用多种混合技术的,象德国人的xplan
动态的domain并不一定非要使用概率推理。传统的规划方法,比如Situational Calculus, 回归规划,STRIPS都是解决planning的很好办法。规划器来说,Prolog应该可以算一个。Answer Set Solver也可以用来求解规划问题。
另一类规划问题涉及到概率和非确定性,这一般称为decision-theoretical planning,它不是生成行动序列,而是生成policy,即状态到行动的映射。这一类的代表是马尔可夫决策,部分可观测马尔可夫决策,在AI领域是另外一个很大的研究分支。
由semantic web service的出现,使得AI Planning才可以运用到semantic web service 的组合上。 服务组合不仅仅只能通过AI plannng 实现。
可以通过UML。Graph search等其它方法。
在工业界:workflow ,BPELWS等。
但工业界的方法缺少形式化的论证等理论支持,随着semantic web service的发展,工业界也将语义加入进来。
AI planning 对与服务组合,主要在于学术界,需要一些形式化的推理,但对于实用,,,还有很多路要走。
两年一度的International Planning Competition。 那里应该可以了解到最新的各种planning系统。
浙公网安备 33010602011771号