一种面向交通信息服务的智能规划方法与流程

文档序号:12916218阅读:215来源:国知局

本发明属于人工智能的智能规划领域,具体为一种面向交通信息服务的智能规划方法。



背景技术:

随着计算机技术、网络化的迅猛发展,人们开始把计算机等技术应用到交通出行方面,以便使人们的出行更加便利。与此同时,随着web服务技术的日益成熟,越来越多稳定易用的web服务被应用于各个领域中。交通领域注意到web服务的独特性能,开始在智能交通系统的开发中引入web服务技术。但是,单个web服务无法满足人们日益增加的出行需求,研究人员需要将单个服务组合起来应用到交通环境下,并在此基础上进行不断的完善,让交通信息服务的功能更加强大、全面。

现阶段服务组合技术层出不穷,从服务描述上可分为基于语法与基于语义的组合方式;从服务的人工参与程度可分为基于工作流和基于智能规划的组合方法;从服务的绑定时机又分为静态和动态的组合过程等。从各个国家学术界的研究成果中可以看出,目前动态组合技术是组合研究领域中的热点问题,其中,基于智能规划的动态组合技术尤为突出。

现有的智能规划技术的自动服务规划已经能够很好的解决服务组合中难以人工解决的动态变化问题,但是,在应用到具体领域下的服务语义描述到规划器的转换中,依然存在一些问题。因为,shop2是一个基于htn规划构造的领域无关的规划系统,无法感知目标,这便需要用户自行构造领域模型,增加具体领域知识来弥补规划器的不足。



技术实现要素:

针对现有智能规划技术中的弊端,本发明的目的是提出一种面向交通信息服务的智能规划方法。

为实现上述目的,本发明采用如下的技术方案:

一种面向交通信息服务的智能规划方法,包括以下步骤:

1)当收到服务请求信息与当前模板库中模板完全不相同时,进行如下步骤:

步骤一,对交通信息服务按照owl-s本体描述模型进行语义处理;

步骤二,为语义处理后的交通信息服务设计owl-s到shop2的转换器,得到shop2的规划域和问题域:

步骤三,读取步骤二的规划域和问题域,整合得到抽象服务序列,并存储至模板库:

2)当服务请求信息与当前模板库中信息部分相同时,则:

当新的请求服务进行访问时,遍历模板库,判断当前新的请求与模板库中的已知模板的分解结构的匹配结果为部分匹配,那么调取已知模板的抽象服务序列进行增删改的操作,完成对新的请求服务的修改,作为新的请求服务的抽象服务序列并存入模板库;

3)当服务请求信息与当前模板库中信息完全相同时,则情况如下:

当新的请求服务进行访问时,遍历模板库,判断当前新的请求与模板库中的已知模板的分解结构的匹配结果为完全匹配,那么,直接调取已知模板的抽象服务序列。

本发明进一步的改进在于,步骤一中交通信息服务的语义信息包括属性、操作和参数。

本发明进一步的改进在于,步骤二的具体过程为:将用owl-s本体描述模型描述的交通信息服务转换为用shop2描述的交通信息服务,具体转换规则如下:

a.owl-s中的原子过程对应于htn中的原子任务,即shop2下的原子服务;

b.owl-s中的复合过程对应于htn中的复合任务,即shop2下的复合服务;

本发明进一步的改进在于,shop2的规划域由操作和方法构成;操作是描述原子服务如何实现,每一个方法用来描述如何将一个复合服务分解成原子过程或原子过程和复合过程。

本发明进一步的改进在于,对于shop2中规划域的转换,具体规则如下:

a.owl-s本体模型中的原子过程对应于shop2的一个原子服务,规划域为每一个原子服务构造一个操作;操作的表达式为:

operation=(o(v),pre,del,add)

其中,o(v)为操作头,用于存放转换完的原子服务和参数;pre为操作的前提条件,作为owl-s本体描述模型中的输入;add为操作的添加效果,del为删除效果,add和del均作为owl-s本体描述模型的输出;由于shop2不支持后置条件,将同时拥有前提条件和后置条件的owl-s本体描述模型转换成两个操作,第二个操作的前提条件是owl-s本体描述模型描述中的后置条件;

b.owl-s本体模型中每一个带有后置条件的原子过程转换为一个带有两个操作的方法;owl-s本体模型中的一个复合过程对应于shop2规划域下的一个方法,方法由若干操作和子方法构成,方法的表达式为:

method=(m(v),pre,o,t)

其中,m(v)为方法头,存放方法名和参数;pre为方法的前提条件,作为owl-s中的输入;o为可直接执行的操作;t表示简单过程或者符合过程的序列,由t1,t2,t3...有限个子方法组成。

本发明进一步的改进在于,shop2的问题域使用一阶逻辑语言作为描述语言,将owl-s描述的服务请求直接转换为求解抽象服务序列的问题域,表达式为:

(i,d,t)

其中,i表示服务请求的初始状态及参数;d表示规划域;t表示待规划的任务列表。

本发明进一步的改进在于,步骤三的具体过程为:首先,将步骤二中的操作和方法整合为规划域的文档,并整合问题域的文档,然后,将问题域读入规划域,规划产生一系列可执行的操作序列为抽象服务序列,最后,保存当前服务请求及相应的抽象服务序列到模板库。

与现有技术相比,本发明的有益效果在于:

(1)通过增加交通领域来扩展智能规划技术,将用户出行的请求服务映射到智能规划的交通领域下,规划用户出行行为,从而指导用户出行。

(2)将存在嵌套的、拥有复合过程的问题域中的方法逐层分解成简单过程。这样,有助于将众多功能集中的组合问题域分解成功能单一的、相互独立的单元,从而匹配预设的服务集合。

(3)shop2采用从初始状态向前规划的方法。在规划过程中的每一个节点上,shop2已经知道当前节点的前置条件,使得shop2有强大的预处理能力。

进一步的,将步骤二中的操作和方法整合为规划域的文档,并整合问题域的文档,然后,将问题域读入规划域,规划产生一系列可执行的操作序列为抽象服务序列,最后,保存当前服务请求及相应的抽象服务序列到模板库。通过对模板库的重用,提高了组合效率,降低了人工干预成本,并且本发明将智能规划应用于交通信息服务的组合范畴中。

附图说明

图1为面向服务请求的智能规划过程示意图。

具体实施方式

以下结合附图对面向交通信息服务的智能规划方法进行具体说明。

参见图1,本发明的面向交通信息服务的智能规划方法为:

1)当收到服务请求信息与当前模板库中模板完全不相同,则情况如下:

步骤一,对交通信息服务按照owl-s本体描述模型进行语义处理;

owl-s本体描述模型按照service_profile、service_model和service_grounding本体对交通信息服务即web服务的语义信息(包括属性、操作和参数)进行标记。其中,service_profile定义了web服务的功能和非功能属性;service_grounding描述了web服务如何在网络中被成功访问的本体结构;service_model主要描述web服务的内部流程。在servicemodel中,owl-s本体描述模型有两个顶层定义:process(过程本体)和controlconstruct(控制构件),owl-s把每个web服务看成是一个process。process由atomicprocess(原子过程)、simpleprocess(简单过程)和compositeprocess(复合过程)组成。当接收到服务请求时,使用protégé本体建模工具分别对service_grounding、service_model和service_profile进行扩展完成本体建模。例如<profile:inputrdf:id="#current-location">为服务的输入参数current-location到owl-s模型的service_profile的部分建模结果,<process:compositeprocessrdf:about=”#navigation”/>为服务的复合过程navigation到owl-s模型的service_model的部分建模结果。

为了便于对服务的管理,本发明将标准的owl-s本体描述模型进行扩展,增加交通信息服务名称的动词和名词字段,例如字段“<profile:requestname-dordf:resource="#go"/>”,“<profile:requestname-doingrdf:resource="#company"/>”。并设计自定义命名规则,将请求名称用<动词+名词>或<名词+动词+名词>的分解结构形式进行规范。在protégé工具中构建当前自定义命名为thing类的子类(由于protégé是树型结构,thing类为最顶层父类),这不仅有利于对请求服务的快速归类,而且便于请求与模板库中抽象服务序列进行语义匹配。

步骤二,为语义处理后的交通信息服务设计owl-s到shop2的转换器;

shop2(simplehierarchicalorderedplanner2)是基于分层任务网络规划系统(htn)的一种代表性规划方法。htn规划的目标是产生一个序列完成对某个任务的执行动作序列的规划。htn规划域由一系列操作和方法构成,规划过程就是使用方法对复杂任务进行分解成简单的子任务,然后对子任务再进行分解成更小的子任务,直到子任务是原子任务,并且这些原子任务都是可以直接用规划操作直接执行的。

由于htn与owl-s在概念层次有极大的相似性,因此可以将用owl-s描述的交通信息服务转换为用shop2描述的交通信息服务。具体转换规则如下:

1.owl-s中的原子过程对应于htn中的原子任务,即shop2下的原子服务;

2.owl-s中的复合过程对应于htn中的复合任务,即shop2下的复合服务;

同样,shop2的规划域(domain)也是由操作(operation)和方法(method)构成。操作是描述原子服务如何实现,每一个方法用来描述如何将一个复合服务分解成原子过程或原子过程和复合过程。对于shop2中规划域的转换,具体规则如下:

1.owl-s本体描述模型中的原子过程对应于shop2的一个原子服务,规划域为每一个原子服务构造一个操作。操作的一般表达式为:

operation=(o(v),pre,del,add)

其中,o(v)为操作头,存放转换完的原子服务和参数;操作的前提条件(pre)为owl-s中的输入;操作的添加效果(add)和删除效果(del)为owl-s的输出;由于shop2不支持后置条件,将同时拥有前提条件和后置条件的owl-s转换成两个操作,第二个操作的前提条件是owl-s描述中的后置条件。

2.owl-s本体模型中每一个带有后置条件的原子过程转换为一个带有两个操作的方法;owl-s本体模型中的一个复合过程对应于shop2规划域下的一个方法,方法由若干操作和子方法构成,方法的表达式为:

method=(m(v),pre,o,t)

其中,m(v)为方法头,存放方法名和参数;方法的前提条件(pre)为owl-s中的输入;o为可直接执行的操作;t表示简单过程或者符合过程的序列,由t1,t2,t3...有限个子方法组成。

shop2的问题域使用一阶逻辑语言作为描述语言,将owl-s描述的服务请求直接转换为求解抽象服务序列的问题域,表达式为:

(i,d,t)

其中,i表示服务请求的初始状态及参数;d表示规划域;t表示待规划的任务列表。

步骤三,读取步骤二的规划域和问题域,整合得到抽象服务序列,并存储至模板库;

首先,将步骤二中的操作和方法整合为规划域的文档(defdomain),并整合问题域的文档(defproblem)。然后,将问题域读入规划域,规划产生一系列可执行的操作序列为抽象服务序列。最后,保存当前服务请求及相应的抽象服务序列到模板库。

2)当服务请求信息与当前模板库中信息部分相同时,则情况如下:

当新的请求服务进行访问时,遍历模板库,判断当前新的请求与模板库中的已知模板的分解结构的匹配结果为部分匹配,即分解结构的动词字段和名词字段至少有一个相同。那么调取已知模板的抽象服务序列进行增删改的操作,完成对新的请求服务的修改,作为新的请求服务的抽象服务序列并存入模板库。

3)当服务请求信息与当前模板库中信息完全相同时,则情况如下:

当新的请求服务进行访问时,遍历模板库,判断当前新的请求与模板库中的已知模板的分解结构的匹配结果为完全匹配,那么,直接调取已知模板的抽象服务序列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1