CN1894559A - 执行使命引擎的方法和装置 - Google Patents
执行使命引擎的方法和装置 Download PDFInfo
- Publication number
- CN1894559A CN1894559A CN 200480007380 CN200480007380A CN1894559A CN 1894559 A CN1894559 A CN 1894559A CN 200480007380 CN200480007380 CN 200480007380 CN 200480007380 A CN200480007380 A CN 200480007380A CN 1894559 A CN1894559 A CN 1894559A
- Authority
- CN
- China
- Prior art keywords
- mission
- logic
- route
- engine
- cost
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
描述一种提供使命引擎130的方法和装置。使命引擎130包括使命接收逻辑210,用于接收一组包括使命的任务;起始状态识别逻辑260,用于产生描述有效起始状态组的特征函数;以及解算逻辑280、285,用于产生完成使命的路线。
Description
相关申请
本发明要求在2003年3月17日提交的,序列号为60/456,035的美国临时申请的优先权,该申请在此整体引入作为参考。
技术领域
本发明涉及路由选择,特别是多位置的最佳路由选择。
背景技术
当前可用的使命引擎一般通过一组预定的节点提供点到点的路由选择。如果用户希望运行使命,现有技术需要他或她键入起始位置,以及依次键入每一后续位置。现有技术计划假设这些使命的顺序是预先设定的。而且,现有技术服务不提供在路由中处理错误的应急计划。
该申请概要以及其中存在的大量问题,已经被计划和调度组织考虑很久。然而,现有技术解决方案使用的技术要么需要确定性算子(即,不能处理随机算子),要么不能处理实值效用函数,要么不能传送最佳解。SUMMARY。
描述了一种提供使命引擎的方法和装置。所述使命引擎包括使命接收逻辑,用于接收一组包括使命的任务;起始状态识别逻辑,用于产生描述有效起始状态组的特征函数;以及解算逻辑,用于产生完成使命的路线。
附图说明
本发明将参照附图以实例的形式加以描述,但不限于这些实例,附图中相似的参考数字指示相似的元件,其中:
图1是网络的一个实施例的框图,其中,使命引擎可以在该网络中使用。
图2是根据本发明使命引擎的一个实施例的框图。
图3A是使用根据本发明使命引擎的用户系统的一个实施例的框图。
图3B是定义一组使命的示例性的用户接口。
图4是使用使命引擎产生路由的一个实施例的流程图。
图5A和5B是根据本发明的策略图和修剪的策略图。
图6是可以执行本发明的计算机系统的框图。
发明详述
描述了一种使命引擎的方法和装置。设计一种使命引擎,用于获得一组位置的最佳访问顺序,以在客观评判函数标准下完成一组使命,计算帐目代价、所需资源的获取概率以及获得资源的奖励。一个实施例中,排序使用符号试探法(与符号试探搜索相结合的决策理论符号模型检测)执行。
该使命引擎解法可以应用的一般问题空间包括产生最佳路由的任务,以通过一组位置定位一组资源。一个实施例中,这里描述的使命引擎包括内在不确定性的计算,即给定的资源可以在特定的位置获得,同时在考虑访问位置的代价、从位置获取资源的代价、和从位置获取资源的奖励的基础上使得性能最优化。使命引擎适用于位置相关的任务(例如通过一组仓库完成购物单)、非物理(循环空间)的应用(例如对网络中一组资源的访问进行优化排序)、用于制作流程任务的自动排序、编写游戏字符和机器人玩具,以及其它多步骤任务。
本发明处理“资源仓库”或位置,从中可以获得所需资源(此处简称为“仓库”或“位置”),它可以拥有或不拥有所需资源。触发机制(这里简称为“用户”)可以是个体、设备、应用程序或其它任何可以触发使命引擎的实体。产生一个策略,所述策略引导用户最大期望效益地定位下一个位置,其中,效益是代价和奖励的组合。代价说明了传输时间或费用。奖励说明了主观价值和试图获得资源的瞬态代价。
一个实施例中,任务以马尔可夫(Markov)判决过程(MDP)提出。MDP是一数组(S,A,P,R)。S是一组状态。A是一组动作。P是一组转移模型,对应每个动作,规定转移概率Pa:S×S→[0,1]。R是奖励Ra:S→R,其中R是一组实数。目标是发现一个策略π:S→A,在H∈0,1,…,∞范围内获得最大化期望的折现奖励(discountedreward),其中,D∈[0,1]是折现因子。
考虑一组M“资源”RM={r1,…,rM}(别处称为“项目”),以及L“位置”(各自的“仓库”),XL={x1,x2,…,xL}。理性的代理人进行搜寻,通过顺序访问规定位置的一些子集获得M资源。S=SL×SD×SM×Sφ。“空”状态Sφ是一个吸收状态,用于明确捕获非法或“坏”的行为。 跟踪先前的代理人,其中,对于一些组Z,2(Z)是使用所有Z的子集获得的幂集(即,元素Z的所有组合,并包括空子集)。代理人已经获得M个所需资源中的
跟踪。该问题中公式SL代表当前位置。
在一个实施例中,SL=XL。因此,在该实施例中#SL=L,#SD=2D,#SM=2M,并且#Sφ=2。该实施例中,代表位置的状态变量编码使用二进制编码,该二进制编码使用至少log2(L)位(二进制对数必须上舍入到与之最相邻的整数值)。对于给定的M和L,该状态空间的大小是L-2L+M+1。
另一个实施例中,通过获得将相互排除其它亚态向量(substatevector)的Sφ,状态空间的大小进一步减小,在这种情况下S={SL×SD×SM}USφ。对于给定的M和L,该状态空间的大小为L2L+M+1。
另一个实施例中
当选择s∈SL时,使命引擎强制使仅一个Xi=1,1≤i≤L,设置其它值为零。这简化了产生MDP编码的任务和简化了提取策略的任务,但是增加了状态空间的大小,使得在该实施例中,#SL=2L。对于给定的M和L,状态空间的大小为22L+M+1。一个实施例中,该执行方法使用了MDP解算器,其空间和时间复杂度受搜索空间大小的影响较小,其包括使用可达性步骤的技术,该可达性步骤从考虑(例如sLAO*)中删除不可到达的状态。
假设动作A={gx,y,x≠y,x∈XL,y∈XL}Ug0,其中gx,y是“从x到y”,g0是“停留”。因此,#A=L(L-1)+1。该表达式没有明显地为获取资源提供动作,但隐含地假设了一旦访问位置,代理人将(可能)获取可用资源,因此大大减少了表现任务所需的动作的数目。一个实施例中,理性的代理人因获取并不已经有的项目而受奖励。
一些位置被指定成集合点位置。一旦获取所需资源,代理人因在集合点完成路线而受额外奖励。一个实施例中,代理人因为获得一个或多个所需资源而受奖励。另一个实施例中,代理人因为获得所有所需资源而受额外的奖励。一个实施例中,使命引擎使用一种编码,该编码通过状态变量SD跟踪已经被访问的状态,允许其惩罚代理人重复访问不必要的位置(即,如果位置不含有代理人所需的任何信息)。如果仓库含有代理人现用购物单上的至少一项,或者位置是集合点和现用购物单是空的时,惩罚被避免。
为了更精确地定义奖励,一个实施例中,奖励由状态的立即值减去动作代价给定。Ra(s)=Rr(s)-Rc(a),s∈S,a∈A,其中,Rr:S→R,Rc:A→R+,其中R+={x∈R,x≥0}。对于位置x和y,一个实施例中,Rc(gx,y)是从x传输到y所需的时间。另一个实施例中,Rc(gx,y)是从x传输到y所覆盖的距离。任意两个给定位置间的传输时间(距离)是非对称的,即,从x到y的时间(距离)可以比反方向多或少,即,一般而言,Rc(gx,y)≠Rc(gy,x)。
为了更精确地定义容许转移,一个实施例通过修改状态转移不允许访问任何已经在SD中被指定的位置而禁止重复访问。另一个实施例通过修改状态转移允许访问任何在SD中已经指定的位置,允许有用的重复访问,但是不允许不必要的重复访问,但是它必须包括下面两种情况的一种:(a)该位置在其清单中承载至少一个可获得概率大于零的资源,使得资源在SM中没有被指定(即,该位置拥有代理人所需的某些东西),或(b)所有项目都被获取(即SM全为1),以及位置是集合点。另一个实施例不使用跟踪状态变量SD,允许无限制的重复访问任何位置。该实施例使用非稳定策略,当该策略推荐重复访问一个位置时在空闲时间重复计算该非稳定策略。该实施例大大减少了状态空间的大小,进而减小了获得策略所需的时间,但所附出的代价是,在运行时间内通常需要重新计划,以避免不必要和不需要的重复访问。
一个实施例中,使命引擎使用附加数据结构来表现目标之间的关联性。使G是覆盖项RM={r1,…,rM}的非循环定向图。给定G中的两个节点ri和rj,从ri到rj的一条边代表了一个关联,以便ri必须在获得rj之前获得(即,目标ri是目标rJ的先决条件)。图可以是不连通的。(在连通的图中,图中的任意节点到任意其它节点间都有通道。不相连的图称为不连通。)一个不连通的节点(代表一个项目(所需资源))与任何其它目标没有关联。G中的节点rj可以具有多个关联,由多个与其它节点相连的边表征。一个实施例中,在转移图中这些关联在MDP中通过先决条件进行编码。该编码规定当一个目标具有任何先决条件时,这些先决条件必须在目标实现之前获得。
在一个实施例中,可以使用相似的数据结构和编码识别动作的先决条件,即,在一个动作可以执行之前其它动作必须已经发生。另一个实施例使用更常用的编码,该编码为每个动作指定一组状态,状态中的一个或多个必须按顺序保持以执行该动作。另一个实施例使用一种编码,该编码为每个目标指定一组状态,在目标达到之前状态中的一个或多个必须被保持。该组状态可以以决策图,决策树,对照表,或在MDP编码中使用的状态的其它标准表示法表征。
使命引擎特别适用于在物理(地理位置)空间和时间里发生的基于位置的作业或其中的一些模拟或仿真,例如虚拟世界(例如,电脑游戏),或自动机器人的行为控制。乍一看使命引擎似乎被限制在基于位置的行为--然而,使命引擎易于修改,以使其执行位于电脑空间的判决过程。术语“电脑空间”指联网环境,例如从位于环球网网络服务获得的合成服务的动态组合。该申请中,L位置指L网络服务。该修改通过用动作Awww={gy,y∈XL}Ug0取代动作A而获得,其中,gy是“到y去(go to y)”,g0是“停留(stay)”。因此,#Awww=L+1。直观上,每个位置y代表单个网络服务。注意访问网络服务的代价不依赖于一个“当前位置”,特别是,不依赖于由系统访问的直接先前网络服务。
一个实施例中,使命引擎使用通用MDP(马尔可夫判决过程)解算器(行话也称为“基本”或“标准”技术),例如数值迭代、策略迭代、改进的策略迭代、或线性编程。另一个实施例中,使命引擎使用与符号试探搜索策略(sLAO*)相结合的、使用符号模型检查的、基于判决理论回归的算法来解算MDP。符号模型检查是通过在问题中自动利用结构,对数值迭代应用动态编程的有效方式。在技术行话中这也称为“结构”方法,或称为使用“因子”的表达。符号LAO*是一种试探搜索技术,其还能在问题中自动利用结构。这两种方法的结合使得动态编程和试探搜索结合。该技术此处称为“符号试探”搜索。
符号试探法提供运算法则,该法则提供使命引擎,具有:
(a)可表达性-能够解算按MDP公式表达的随机计划任务,
(b)最佳性-对于给定MDP任务能够产生最佳数值函数,
(c)空间复杂性-能够通过有效数据结构利用解题结构,
(d)时间复杂性-能够避免关于不可达状态的计算浪费。
图2示出了使命引擎130的一个实施例的框图。使命接收逻辑210从用户接收使命定义。一个实施例中,用户仅列出一组要完成的任务。另一个实施例中,用户定义了任务中的任何关联。例如,任务可以是到一个ATM机上提款,购买一件礼物和喝点饮料。礼物和饮料的购买可以依赖于首先到ATM提款。一个实施例中,用户定义了这些关联。另一个实施例中,如下所述,使命引擎130识别这些关联。
位置获取逻辑210获得一组仓库的位置,仓库中所需资源是可获得的。上面的例子中,位置获取逻辑210可以获得ATM的位置,卖饮料的商店的位置,以及卖礼物的位置。一个实施例中,礼物类型的偏好由用户定义,即,用户表明他/她希望购买一个手表,位置获取逻辑210获取卖手表的商店。一个实施例中,位置获取逻辑210获取一组位置,例如,它获取10个位置。
代价计算逻辑230计算在每个位置获取资源的代价。代价包括项目的物理代价(即,ATM的提款额,饮料的价格等)和交易价格(即,传输时间)。
奖励计算逻辑240计算完成每项任务的主观值。这在一个实施例中,使得使命引擎130在受约束条件下仅完成具有最高奖励的任务的一个子集。所述约束可以是时间、传输距离或用户设定的任何其它约束。一个实施例中,用户可以识别“必要”任务。例如,上面的例子中,用户可以识别到ATM和购买礼物的任务是“必要的”而获得饮料的任务是可选的。一个实施例中,系统可以默认假设所有的任务都是可选的。另一个实施例中,系统可以默认假设所有的任务都是必要的。一个实施例中,用户可以设定他的或她的偏好作为默认假设。
目标编码240对用户设定的目标(即,任务)进行编码以便于计算。一个实施例中,任务被公式化以利用符号试探法的益处。使用的编码使得状态变量的数目最小化并且利用了符号模型检查方法(用于获取初始试探)和符号试探法(用于计算策略)的有益特征。一个实施例中,编码提供了非常灵活的结果,可以应用到很广泛的任务类型。然而,一个实施例中,某些决策被下载到外部程序以减小使命引擎所考虑的搜索空间。
使命分解逻辑250,在一个实施例中,分解两步使命。使命分解逻辑250支持在两个不同步骤获得的资源,每个步骤被给定的时间长度分割。
例如,当到照片馆冲洗一卷胶卷时,照片馆提供一个小时的胶卷显影服务,用户必须首先访问照像馆以放下胶卷,然后必须等待至少一个小时取照片。一个实施例中,使命引擎允许另一个状态变量跟踪特定的行为所需时间单元的通道(该例子中,从放下胶卷开始的一个小时),然后当取胶卷时“奖励”使命引擎。奖励规定在下面情况下发生:(1)用户访问照像馆,(2)一个小时过去,和(3)用户再次访问照像馆。使命引擎可以决定是等待更好,还是离开,并且试图在可支配的时间内完成其它任务。例如,用户可以开车到服务站加油,这只需要15分钟。使命引擎130计算完成清单上另一个任务的代价,然后决定这样做的净代价(奖励减去传输代价)使其不超过仅等待15分钟的代价。
一个实施例中,对于每个这样的二步任务,优先的MDP补充有一个附加的多值状态变量Tτ={t1,…tτ},其中Tτ是已经发生的时间步(time step)数目的布尔变量表达,因为两步任务的第一步开始了,所以Tτ∈{(0,0,…,0,0),(0,0,…0,1),(0,0,…,1,0),…,(1,1,…,1,0),(1,1,…,1,1)}。
该实施例中,当Tτ={1,1,…,1}(即全为1)时,可以执行两步任务的第二步。该实施例中,该“秒表”变量的每个“滴答”(即时间步)对应着一个时间单元,例如15分钟。该实施例中,每个动作可以根据特定动作消耗的时间总量更新该秒表变量和增加秒表变量。一旦Tτ全为1,它保留该值,直到两步任务的第二步骤完成。该实施例中,秒表变量可以代表2τ-1个时间步。另一个实施例中,一元编码用于秒表变量,使得Tτ∈{(0,0,…,0,0),(0,0,…,0,1),(0,0,…,1,1),(1,1,…,1,1)}。该实施例中,秒表变量可以代表最多τ个时间步。另一个实施例中,“K的一个”编码被使用,使得对于某些整数K,和τ=K,Tτ∈{(0,0,…,0,0),(0,0,…,0,1),(0,0,…,1,0),(0,1,…,0,0),(1,0,…,0,0)}。该实施例中,秒表变量可以代表最多τ个时间步。每个这些附加实施例中,两步任务中的第二步在最高位(即此处所写的最左边的位)设置为1时执行。一旦秒表变量到达它的最高值,它保持在该值,直到两步任务中的第二步完成。
一个实施例中,一个附加的“等候”动作加入到动作组,使得“等候”动作导致代理人维持在相同的位置,除了增加秒表变量一个滴答(即,消耗一个时间单位)之外没有其它影响。
起始状态识别逻辑260定义了符号试探法使用的“初始情况”。起始状态识别逻辑260,在一个实施例中,在任务描述编码中利用规律性以指定所有的有效起始状态,然后产生由描述有效起始状态组的特征函数指定的组合“初始情况”。这允许MDP解算器(能够利用可达结构(例如sLAO*))为所有有效起始状态、而不是单个起始状态计算有效的策略。另一个实施例中,起始状态识别逻辑260识别单个有效起始状态。这允许MDP解算器利用可达结构(例如sLAO*),仅为这些从给定起始状态中可以到达的状态计算数值和策略。
集合点逻辑265识别可以结束使命引擎130指定路线的位置。一个实施例中,所述路线可以在任何位置结束。一个实施例中,使命引擎130允许仓库的子集指定成“集合点位置”。集合点位置是使命引擎可以结束其路线的位置。集合点位置不需要包括任何资源。
例如,两个人可以一起去购物,然后决定分开一段时间去完成他们各自的使命。他们决定在他们完成各自任务时汇合。他们指定一个集合点位置例如公园(其不包括他们各自购物单上的任何资源),或咖啡店(其可能包括他们购物单的资源)。一个实施例中,使命引擎还允许指定多个集合点。这允许第一个人完成单独任务后在他们选择的集合点等待,然后打电话给另一个人联系他们在哪里等待。这样,如果一个集合点位置被定义,路线在集合点位置结束。路线是否实际在集合点结束依赖于这样做的奖励和到达该集合点的代价的比较。通过设置奖励大于旅行到集合点的最大代价,可以设置奖励使得路线必须在一个集合点结束。
修剪逻辑270去除任何不可达状态。在MPD解算器中某些状态不会遇到,这是因为状态转移表(规定怎样通过执行动作从一个状态到达一个状态)在一般应用中可以阻止到达这些状态。换句话说,这些状态从特定的起始状态组是“不可达”的。这些基于起始状态识别逻辑260识别的起始状态和由集合点逻辑265识别的结束状态的“不可达状态”被屏蔽。这意味着使命引擎130不计算这些不可达状态。这显著的减小了数值图和策略图的复杂度。也常使用不屏蔽的数值表,它具有几十万个节点,通过屏蔽可以减少到几千个节点,大约减少90%。当然所述减少依赖于问题和所述问题的可达结构。
图5A和5B说明了修剪的(屏蔽的)策略图和无屏蔽的策略图之间的区别。可以看出,修剪的策略图的复杂度更低,这是因为它不包含不可达状态的策略,而无屏蔽的策略图则包括。
利用可达性(例如符号LAO*)的MDP解算器的一个有益的副产品是使最终的数值函数排除不必要的状态,使最终的策略对所有不可达状态产生一个“空”动作。图5A和5B说明了由盲目无遗漏的Spudd方法产生的策略和“屏蔽”的策略(这里由LAO*产生)之间的区别。
图5A示出了使命任务的简化版本的非屏蔽策略,使用四个位置SV(at0,at1,at2,at3)和单个资源SV(parked)。(为简化图表对SV的跟踪(这允许策略避免重复访问位置)予以省略)。内部(即,非结束)节点代表SV。如果SV为真,跟随实线,否则跟随虚线。叶(即,结束)节点代表动作。例如,对于parked AND at0(给定所有其它SV为假)的动作是stay。At3的动作(给定所有其它SV为假)是go_3to0。具有一个以上位置变量设置为真的任何节点是不可达的--这些节点永远不会被访问。例如,at0 AND at1的动作(给定所有其它SV为假)是go_1to2。这说明由(无屏蔽的)数值迭代算法产生的策略包括不可达状态的策略。
图5B示出了图5A中相同任务的屏蔽策略。屏蔽策略屏蔽不可达状态。可以看到,一个实施例中,所有不可达状态归结到标记“空”的单个结束节点。
例如,在一种总共具有11个位置、6个资源和29个状态变量的情况下,在一个实施例中,被编码的总状态数超过536,870,912。然而,可达状态数仅为2,883,584。这是位置状态变量中的稀疏性造成的,因为使命引擎在任何一个时间必须严格的位于一个位置,在这种情况下编码严格的将一个位置状态变量设置为1,共有11个位置。因此仅0.54%的状态可以到达。使用无遗漏(和盲目)搜索的通用数值迭代消耗一些周期,这些周期用于评价在实际使用中永远不会遇到的99.46%的状态。
返回到图2,一个实施例中,系统提供近似解以及最佳解。一个实施例中,使命引擎130包括最佳解发生器285和近似解发生器280。
近似解发生器280将“双结束”ADD的数据结构结合到sLAO*方法。这提供了用近似数值迭代技术替代精确数值迭代技术的选择。在近似解适用的说明中这提供了额外的加速,进而同时获得了近似数值迭代和符号试探搜索以及相关的屏蔽不可达状态的益处。另一个实施例中,近似解使用近似线性编程技术获得。
最佳解逻辑285计算迭代最佳解。一个实施例中,提供循环中断逻辑290。在应用领域上构建最终的符号试探法之后,发现在收敛循环中消耗大量紊乱时间。循环中断逻辑290是任务相关参数,其允许最佳解逻辑285以两种方式减小在循环中消耗的时间:(a)通过指定最大极限限制迭代次数,和/或(b)允许循环中断逻辑290以中断循环。如有必要最佳解逻辑285可以重新开始计算。一个实施例中,通过在执行策略时设置初始状态到最近遇到的状态,最佳解逻辑285可以在使用策略的运行时间之后重新开始计算。
图2中描述的使命引擎130运用“仓库”(资源仓库)和“资源”(在仓库中发现),以及购物单(也称为使命清单)。使命引擎通过访问仓库和获取资源产生一个“路线”,直到购物单清空。然后该路线被发送到用户。
图3是用户系统的一个实施例的框图。使命发送逻辑发送使命到使命引擎130。一个实施例中,用户定义一组目标。一个实施例中,用户可以提供相对优先级,或目标间的关联性。例如,用户可以键入下面内容:
1.到ATM取钱
2.在Fondue Fred吃午饭
3.为儿子购买礼物,需要先到ATM提款
4.参观San Francisco的最主要的景点
上述清单指明了优先级(顺序)以及关联。一个实施例中,关联计算逻辑320可以提示用户识别任何关联。例如,当接收上述清单时,系统可以提问:需要在吃午饭之前到ATM提款吗?
集合点设置逻辑330允许用户识别一个或多个目的地作为集合点。一个实施例中,仅识别的位置可以被识别为集合点。这样,在上面的例子中,仅Fondue Fred可以指定为集合点,这是因为ATM、购买地点或参观位置都没有被特殊识别。另一个实施例中,上述任何一个都可以被识别为集合点。
一个实施例中,使用网络接口。在这种情况下,在一个实施例中,接口可以如图3B所示。可以看出,每个使命350的相邻处列出了关联清单360。一个实施例中,相关性360作为下拉菜单370显示。一个实施例中,每种可能的组合都被示出。另一个实施例中,仅较高的优先级(列在较高位置的)被示出。识别使命是否是集合点380也是可以选择的。采用这种方式,用户可以简单提供系统足够的数据以产生路线。
另一个实施例中,基于给定的用户特征和领域知识,基于知识的系统决定适用于用户和给定条件的典型关联。一个实施例中,用户特征由用户提供。另一个实施例中,用户特征通过观察用户一段时间提供。另一个实施例中,用户特征通过观察大量相似的用户而获得。一个实施例中,领域知识由专业设计者提供。另一个实施例中,领域知识由一般知识基础例如Cyc提供。另一个实施例中,领域知识通过在该领域描述领域和推论规则的本体(ontology)提供。另一个实施例中,领域知识通过观察大量相似用户提供。
返回到图3A,用户系统包括路线接收逻辑340用于接收由使命引擎计算的路线。
图4是使用使命引擎的一个实施例的流程图。程序从方框405开始。在方框410中接收使命清单。一个实施例中,使命清单包括至少从不同仓库获得的两个资源。
在方框415,识别每个仓库的位置。在一个实施例中,从公共资源获得仓库的位置。例如,如果仓库是卖场中的物理仓库,卖场地图(一般在英特网上可以得到)可以用来识别每个仓库的位置。另一个实施例中,仓库的位置从具有私有资源的合同中获得,例如从卖场主或从代表卖场关系的市场代理那里获得。另一个实施例中,仓库位置从第三方数据卖主那里获得。
在方框420中,识别每个仓库的资源代价。如上指出的,资源代价包括交易代价(传输时间、停留时间等)和项目本身的实际代价。一个实施例中,项目的实际代价可以是未知的。该例子中,仅评估交易代价。一个实施例中,仓库的存货从公共资源获得,例如英特网(例如广告)。另一个实施例中,仓库存货可以从第三方数据卖方获得。另一个实施例中,仓库存货从合作用户组织获得。
方框425中,程序评价使命清单上是否存在任何两步任务。两步任务需要两个单独的步骤,通常由时间或位置分开。如果存在两步任务,在方框430,它们被分解成单独的任务。注意,该特征具有规定目标间先决条件相关性的能力,其有效地允许具有两步以上的多步骤任务。
在方框435中,为每个任务/项目识别奖励。一个实施例中,用户可以识别一个或多个使命的优先级/奖励水平。最简单的,用户可以识别某些使命是“必须被执行”而其它的为“应该被执行”或“如有时间可以被执行”的优先级水平。一个实施例中,优先级是数字化的。在标准任务计划中,用户可以为每个使命指定优先级水平。优先级越高,完成任务的奖励越高。
在方框445中,识别起始状态。一个实施例中,所有可能的起始状态都被识别,产生识别所有起始状态的单个公式。该单个公式然后用于使使命引擎计算所有可能起始状态的路线。另一个实施例中,所有“有效”起始状态被识别,其中“有效”意味着从一个空的购物卡开始,并且还没有访问任何位置。产生用于识别所有有效起始状态的单个公式。另一个实施例中,识别单个起始状态,产生识别起始状态的单个公式。
在方框450,程序判断用户是否识别了集合点。集合点是路线可以结束的节点。如果用户识别了集合点,在方框455,则识别路线的可能结束点。否则,在一个实施例中,程序假定结束点可以在任何地方。注意集合点可以不是“仓库”的节点,可以不含有“资源”。例如,对于购物,集合点可以是家。
在方框460,基于使命清单产生的奖励图被修剪。产生的“标准”奖励图试图画出所有可能的路径,即,它是无遗漏的。然而,基于已知的起始条件存在大量的不可达状态。例如,存在这样的状态,在这些状态用户同时处于多个位置。这显然是不可能的。因此,该修剪从计算中去除不可能的路径。一个实施例中,该修剪或屏蔽,意味着这些路径的值永远不会被计算。这使得评估阶段节省了大量的时间。
在方框465,程序判断近似解是否是可接受的。系统可以提供最佳解。然而,提供近似解消耗较少的时间。如果近似解可以被接受,程序继续到方框470。在方框470,近似解被计算。如上描述,在一个实施例中,近似解使用“双结束”ADD与sLAO*方法。另一个实施例中,近似解使用近似线性编程获得。
程序然后继续到方框490,路线信息被送到用户。一个实施例中,在远离用户便携式系统的计算机系统中计算所述路线。该例子中,所述路线可以被用户下载到便携式系统。另一个实施例中,该步骤被跳过。程序然后结束于方框495。
如果在方框465中,近似解被认为不可接受,程序进入到方框475。在方框475中,计算迭代最佳解。一个实施例中,最佳解使用sLAO*方法计算。另一个实施例中,最佳解使用传统数值迭代计算。另一个实施例中,最佳解使用传统策略迭代计算。另一个实施例中,最佳解使用改进的策略迭代计算。另一个实施例中,最佳解使用结构数值迭代技术例如SPUDD计算。另一个实施例中,最佳解使用结构数值迭代技术例如SPUDD,结合可达屏蔽近似法计算,该屏蔽近似法首先从初始状态执行可达性分析,然后仅在可达状态组上应用结构数值迭代。另一个实施例中,最佳解使用传统数值迭代,结合可达屏蔽近似法计算,该可达屏蔽近似法首先从初始状态执行可达性分析,然后仅在可达状态组应用数值迭代。
在方框480,程序判断是否存在收敛循环锁。一个实施例中,在测试中发现在收敛循环中消耗大量紊乱时间。因此如果收敛循环被检测到,则程序继续到方框485。在方框485,使用任务相关参数,其允许理性的代理人以两种方式减少循环所消耗的时间:(a)通过指定最大极限来限制迭代数目,和(b)允许理性的代理人中断循环。如有需要代理人可以重新开始计算。程序然后返回到方框475。另一个实施例中,通过在执行策略时设置初始状态到最近相遇的状态,最佳解逻辑285可以在运行时间使用策略重新开始计算。这允许MDP解算器集中它的计算资源从对应当前现实世界的状态中探索那些仅可到达的状态。如果没有收敛循环,最佳解被成功的计算,程序继续到方框490。
图6是使用本发明的计算机系统的一个实施例。对于本领域普通技术人员这是显而易见的,然而也可使用其它各种体系结构的备选的系统。
图6中阐述的数据处理系统包括总线或用于交流信息的其它内部通讯装置615,耦合到总线615用于处理信息的处理器610。系统进一步包括随机存取存储器(RAM)或其它易失性存储设备650(称为存储器),耦合到总线615以存储被处理器610执行的信息和指令。主存储器650还可以用于在处理器610执行指令时存储暂时变量或其它中间信息。系统还包括一个只读存储器(ROM)和/或耦合到总线615的静态存储设备620以存储静态信息和处理器610的指令,以及一个数据存储设备625,例如磁盘或光盘和与之对应的磁盘驱动。数据存储设备625耦合到总线615以存储信息和指令。
系统可以进一步耦合到显示设备670,例如通过总线665耦合到总线615的阴极射线管(CRT)或液晶显示器(LCD),用于为计算机用户显示信息。一个文字数字输入设备675,包括文字数字和其它键,也可以通过总线665耦合到总线615以交流信息和命令选择到处理器610。附加的用户输入设备是指针控制设备680,例如通过总线665耦合到总线615的鼠标,跟踪球,触笔,或指针方向键以交流方向信息和命令选择到处理器610,以及控制指针在显示设备670上移动。
可选的耦合到计算机系统600的另一个设备,是通过网络访问分布式系统其它节点的通讯设备690。通讯设备690可以包括任何大量的商用可获得的网络外围设备,例如耦合到以太网、令牌环、英特网或宽区域网的设备。通讯设备690还可以是零调制解调器连接、无线连接机制或任何提供计算机系统600和外部世界之间连接的其它机制。注意图6中描述的任何或所有这些系统的部件和相关硬件可以在本发明的不同实施例中使用。
对于本领域普通技术人员应当理解的是,系统的任何配置可以根据特定应用用于多种目的。应用本发明的控制逻辑或软件可以存储在主存储器650、主存储设备625或其它可以被处理器610访问的本地或远程存储介质中。
对于本领域普通技术人员来说很显然这里描述的系统、方法和程序可以作为存储在主存储器650或只读存储器620的软件实施并且被处理器610执行。该控制逻辑或软件可以存在于制造的物品中,该制造的物品包括计算机可读介质,该可读介质中嵌入有计算可读程序代码,并且通过主存储设备625读取以使得处理器610根据此处的方法和教导进行操作。
本发明可以嵌入在手持或便携式设备中,该设备包含上面描述的计算机硬件部件的子集。例如,手持设备可以配置成仅包含总线615、处理器610、存储器650和/或625。本发明还可以嵌入到特殊目的装置中,该特殊目的装置包括上面描述的计算机硬件部件的子集。例如,该装置可以包括处理器610、数据存储设备625、总线615、和存储器650,以及仅基本的通讯机制,例如允许用户和设备以基本方式交流的小接触屏。一般而言,设备目的越特殊,设备需要的元件越少。一些设备中,和用户的通讯可以通过基于接触的屏幕或相似机制实现。
对于本领域普通技术人员来说应当理解的是,系统的任何配置可以用于根据特殊实施的多种目的。实施本发明的控制逻辑或软件可以存储在能被处理器610访问的本地或远程的任何机器可读介质中。机器可读介质包括任何存储或传输可被机器(例如,计算机)读取形式的信息的机制。例如,机器可读介质包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质、光学存储介质,闪存设备、光学、电学、声学或其它传播信号的形式(例如载波、红外信号、数字信号等)。
本发明的使命引擎适用于多种应用。下面列出了一些可以使用本发明使命引擎的应用实例:
(a)网络服务合成:自动从一组服务产生合成服务。
(b)旅行计划:基于兴趣水平、旅游偏好(走路还是乘坐公共交通还是自驾车)为游客产生到达各个旅游目的地的个性化路线,以参观不同景点。
(c)购物代理:在给定购物者购物单和其它偏好(例如在仓库中和所需价格点间分类的偏好)基础上,为购物者产生路线访问商店卖场。
(d)博物馆路线计划:在游客的偏好和机动性(有活力的单个步行者还是悠闲漫步的夫妻还是坐轮椅者)基础上,建议一个访问博物馆中陈设的策略。
(e)设备协调:在被主设备使用的邻近网络中给定一组服务设备,为主设备提供策略,优化访问服务设备,为执行一些任务将所述设备排序。例如,数码相机拍摄快照,传送它到PDA进行图像处理以修剪图片和消除图像中人物目标的红眼,传送一个硬拷贝到附近的商用打印机以便于后续提取,通过手机传送一个拷贝给用户配偶,然后指引GPS设备为用户提供行走方向以定位该商用打印机,以便提取该硬拷贝。
(f)个人信息助理:为位于广域网(例如英特网或环球网)的一组资源进行优化排序。
(g)工作流程任务:算法也适合用于自动排序,该自动排序有利于对共享项目产生文件工作流程或协作,例如当文件需要有次序的放置以获得必要的评价、建议和标记时。
(h)编程游戏字符。
(i)编程机器人玩具。
前面的说明中,本发明参照特定示例的实施例予以描述。然而,很明显可以对其进行各种修改和改变,而不偏离本发明附属权利要求书的宽广精神和发明范围。说明和附图,仅用于说明而不是限制。
Claims (35)
1.一种使命引擎130,包括:
使命接收逻辑210,用于接收一组包括使命的任务;
起始状态识别逻辑260,产生描述有效起始状态组的特征函数;和解算逻辑280、285,产生完成使命的路线。
2.根据权利要求1所述的使命引擎130,进一步包括:
修剪逻辑270,用于屏蔽基于有效起始状态组的不可达状态。
3.根据权利要求1所述的使命引擎130,进一步包括:
集合点逻辑330,用于定义结束位置,其中所述路线在结束位置结束。
4.根据权利要求1所述的使命引擎,进一步包括:
代价计算逻辑230,用于计算从仓库获取资源的代价。
5.根据权利要求4所述的使命引擎130,其中所述代价包括:实际代价和交易代价。
6.根据权利要求1所述的使命引擎130,进一步包括:
循环中断逻辑290,以结束收敛循环。
7.根据权利要求6所述的使命引擎130,其中所述循环中断逻辑配置为通过识别最大极限而限制迭代数目。
8.根据权利要求6所述的使命引擎130,其中所述循环中断逻辑290配置为允许所述使命引擎中断所述循环。
9.根据权利要求1所述的使命引擎130,进一步包括:
使命分解逻辑250,以分解多步使命成单独的任务。
10.一种构建路线的方法,包括:
接收一组包括使命的任务410;
产生特征函数445以描述有效起始状态组;和
产生路线470、475以完成任务的至少一个子集,使得奖励最大化。
11.根据权利要求10所述的方法,进一步包括:
屏蔽状态460,基于有效起始状态组该屏蔽状态460是不可达的。
12.根据权利要求10所述的方法,进一步包括:
接收一个或多个集合点位置450、455,每个集合点位置是路线的一个有效结束节点。
13.根据权利要求10所述的方法,进一步包括:
计算从仓库获得资源的代价415、420。
14.根据权利要求13所述的方法,其中所述代价包括:实际代价和交易代价。
15.根据权利要求10所述的方法,进一步包括:
定义一个收敛循环480;和
结束收敛循环485。
16.根据权利要求15所述的方法,其中结束收敛循环485包括:
判断多个收敛循环的迭代475、480、485是否超出最大极限;和
如果收敛循环已经超出最大极限,结束收敛循环485。
17.根据权利要求15所述的方法,其中结束收敛循环包括中断收敛循环485。
18.一种系统,包括:
用户系统110,与用户交互以识别一组要完成的任务;
使命引擎130,包括:
起始状态识别逻辑260,用于产生描述有效起始状态组的特征函数;和
解算逻辑280、285,用于产生完成使命的路线。
19.根据权利要求18所述的系统,其中所述使命引擎进一步包括:
修剪逻辑270,用于屏蔽基于有效起始状态组的不可达状态。
20.根据权利要求18所述的系统,其中所述使命引擎130进一步包括:
集合点逻辑330,用于定义结束位置,其中所述路线在结束位置处结束。
21.根据权利要求18所述的系统,其中所述用户系统110包括为服务器提供网络接口的系统。
22.一种使命引擎130包括:
接收逻辑210,用于接收多个包括使命的任务,每个任务包括与之相关的完成奖励;
目标编码240,用于将多个任务编码成多个状态和状态转移;
修剪逻辑270,用于屏蔽不可达的状态和状态转移;
解算逻辑280、285,用于产生路线。
23.根据权利要求22所述的使命引擎130,其中所述路线完成多个任务的一个子集。
24.根据权利要求22所述的使命引擎130,进一步包括:
集合点逻辑330,用于定义结束位置,其中所述路线在结束位置结束。
25.根据权利要求22所述的使命引擎130,其中:
代价计算逻辑230计算完成奖励,所述完成奖励包括资源值减去获取所述资源的代价。
26.根据权利要求25所述的使命引擎130,其中所述代价包括:实际代价和交易代价。
27.一种使命引擎,包括:
装置210,用于接收使命;
第一装置270,去除不可达状态;
第二装置280、285,产生基于不被第一装置屏蔽的可达状态的路线。
28.根据权利要求27所述的使命引擎,其中,第一装置包括:
将所述目标编码成多个状态的装置;和
屏蔽多个不可达状态子集的装置。
29.一种方法,包括:
接收410多个将被获取的资源;
为所述多个资源中的每个资源识别位置415,所述位置具有潜在可获取的资源;
计算所述位置的一个路线465-485;和
在集合点位置结束所述路线455,所述集合点位置由用户定义。
30.根据权利要求29所述的方法,其中多个集合点位置被接收,每个集合点位置都是路线可接受的终点。
31.根据权利要求29所述的方法,其中所述路线仅包括获取所述资源的子集的位置的一个子集。
32.一种机器可读介质,其上存储有代表指令顺序的数据,当它被计算机系统执行时,通过执行以下步骤,使所述计算机系统构建一个路线来完成使命:
接收在不同位置可以获得的资源的清单410,获取的资源清单包括使命;
产生特征函数445以描述有效起始状态组;和
产生路线465-485以完成任务的至少一个子集,所述路线设计成使得奖励最大化。
33.根据权利要求32所述的机器可读介质,其上进一步存储有代表指令顺序的数据,当它被计算机系统执行时,使所述计算机系统执行以下步骤:
屏蔽基于有效起始状态组的不可达状态460。
34.根据权利要求32所述的机器可读介质,其上进一步存储有代表指令顺序的数据,当它被计算机系统执行时,使所述计算机系统执行以下步骤:
计算从仓库获取资源的代价420,其中所述代价包括:实际代价和交易代价。
35.根据权利要求32所述的机器可读介质,其上进一步存储有代表指令顺序的数据,当它被计算机系统执行时,使所述计算机系统执行以下步骤:
识别480一个收敛循环;和
结束485所述收敛循环。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US45603503P | 2003-03-17 | 2003-03-17 | |
US60/456,035 | 2003-03-17 | ||
US10/739,553 | 2003-12-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1894559A true CN1894559A (zh) | 2007-01-10 |
Family
ID=37598255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200480007380 Pending CN1894559A (zh) | 2003-03-17 | 2004-03-04 | 执行使命引擎的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1894559A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103443767A (zh) * | 2011-01-25 | 2013-12-11 | 美光科技公司 | 展开量化以控制自动机的入度和/或出度 |
US9104828B2 (en) | 2011-01-25 | 2015-08-11 | Micron Technology, Inc. | State grouping for element utilization |
US9146714B2 (en) | 2011-01-25 | 2015-09-29 | Micron Technology, Inc. | Method and apparatus for compiling regular expressions |
US9471290B2 (en) | 2011-01-25 | 2016-10-18 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
US9785847B2 (en) | 2010-06-10 | 2017-10-10 | Micron Technology, Inc. | Analyzing data using a hierarchical structure |
-
2004
- 2004-03-04 CN CN 200480007380 patent/CN1894559A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9785847B2 (en) | 2010-06-10 | 2017-10-10 | Micron Technology, Inc. | Analyzing data using a hierarchical structure |
US11488378B2 (en) | 2010-06-10 | 2022-11-01 | Micron Technology, Inc. | Analyzing data using a hierarchical structure |
CN103443767A (zh) * | 2011-01-25 | 2013-12-11 | 美光科技公司 | 展开量化以控制自动机的入度和/或出度 |
US9104828B2 (en) | 2011-01-25 | 2015-08-11 | Micron Technology, Inc. | State grouping for element utilization |
US9146714B2 (en) | 2011-01-25 | 2015-09-29 | Micron Technology, Inc. | Method and apparatus for compiling regular expressions |
US9298437B2 (en) | 2011-01-25 | 2016-03-29 | Micron Technology, Inc. | Unrolling quantifications to control in-degree and/or out-degree of automaton |
US9471290B2 (en) | 2011-01-25 | 2016-10-18 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
US9792097B2 (en) | 2011-01-25 | 2017-10-17 | Micron Technology, Inc. | Method and apparatus for compiling regular expressions |
US9916145B2 (en) | 2011-01-25 | 2018-03-13 | Micron Technology, Inc. | Utilizing special purpose elements to implement a FSM |
US10089086B2 (en) | 2011-01-25 | 2018-10-02 | Micron Technologies, Inc. | Method and apparatus for compiling regular expressions |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kotiloglu et al. | Personalized multi-period tour recommendations | |
US8050949B2 (en) | Method and apparatus for an itinerary planner | |
Cheng et al. | Task assignment on multi-skill oriented spatial crowdsourcing | |
KR101145518B1 (ko) | 에런즈 엔진을 구현하는 방법 및 장치 | |
JP4911536B2 (ja) | 地域情報検索装置、地域情報検索装置の制御方法、地域情報検索システム、および地域情報検索システムの制御方法 | |
CN105320724A (zh) | 用于优化用于学习排序的非凸函数的新探索 | |
CN112365283B (zh) | 一种优惠券发放方法、装置、终端设备及存储介质 | |
CN101027683A (zh) | 用于搜索并显示针对给定的启程-回程日期组合或启程-回程日期范围的组合的低费用产品可用性信息的系统、方法和计算机程序产品 | |
CN102289461A (zh) | 基于引导请求活动和数据的推荐和有针对性的广告 | |
CN102884779A (zh) | 直觉计算方法和系统 | |
CN111639253B (zh) | 一种数据判重方法、装置、设备及存储介质 | |
JP2011118110A (ja) | 地図表示装置、地図表示方法及び地図表示プログラム | |
Zhou et al. | Deepmove: Learning place representations through large scale movement data | |
US20210125109A1 (en) | Subscription services awards | |
Mukhina et al. | Orienteering problem with functional profits for multi-source dynamic path construction | |
US20210125113A1 (en) | Subscription services with extensions | |
CN114730405A (zh) | 基于交通标准的旅行服务 | |
US11676184B2 (en) | Subscription based travel service | |
CN1894559A (zh) | 执行使命引擎的方法和装置 | |
Halder et al. | A survey on personalized itinerary recommendation: From optimisation to deep learning | |
Mikhailov et al. | Smartphone-based tourist trip planning system: a context-based approach to offline attraction recommendation | |
Quan et al. | An optimized task assignment framework based on crowdsourcing knowledge graph and prediction | |
De Paola et al. | A multi‐agent system for itinerary suggestion in smart environments | |
TWM539677U (zh) | 行程安排的傳送裝置 | |
US20220374487A1 (en) | Flexible variable listings search |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20070110 |