1.一种基于时态逻辑控制策略的配送机器人路径规划方法,其特征在于,包括步骤如下:S1,基于奇偶校验博弈合成时态逻辑的控制策略来表述配送机器人的任务规约,根据合成策略的接受条件构建带有势能函数的奖励自动机来对配送机器人的行为赋予奖励值;
S2,在原环境的马尔可夫决策过程的基础上设计奖励自动机引导的状态转移函数,使得基于时态逻辑的控制策略作为顶层策略引导底层强化学习方法;其中,通过添加奖励机基于控制策略的经验回放机制到Q‑学习中,具体实现步骤如下:S21,设配送机器人目前所处的奖励机状态为u,配送机器人采取了动作e,则配送机器人所处环境的状态从s转换为了s′,奖励机的下一个状态u′由下式确定:δu(u,L(s,e,s′))
其中,L(s,e,s′)是标签函数,δu是奖励机的状态转移函数,s′表示配送机器人执行动作e之后的环境状态;
获得的奖励r′由δr(u,L(s,e,s′))确定,其中δr表示状态奖励函数;
S22,在MDP上定义一个带有势能的奖励自动机,则表达式如下:其中,标签函数 T代表配送机器人状态的集合,t0代表初始位置,Q表示采取的动作,V是状态转移的概率函数,K是奖励转移的相关函数,γ代表MDP中的折扣因子;A表示的有限状态集合,ao表示初始状态,M表示有限终止状态集合,δa表示状态转移函数,δi表示状态奖励函数, 表示势能函数,A′表示一个有限状态集合; 表示奖励自动机;
MDP上扩展带有势能的奖励自动机 的表达式如下:
其中, 为带有势能的奖励自动机中的状态转移概率
函数, 为带有势能的奖励自动机中的奖励转移的相关函数;
如果配送机器人在状态
配送机器人转移的下一个状态如果是可接受的状态,则将奖励函数更新成势能函数 如果不是可接受
的状态,则赋值为0,则表达如下:
其中, 表示势能函数;V是状态转移的概率函数, 为带有势能的奖励自动机中的状态转移概率函数;
S3,基于奖励自动机状态图的拓扑排序设计势能函数,并计算配送机器人每个状态的势能函数,将每个任务点赋予势能值;若配送机器人从高势能前往低势能,则赋予配送机器人负奖励;若配送机器人从低势能前往高势能,则赋予正奖励。
2.根据权利要求1所述基于时态逻辑控制策略的配送机器人路径规划方法,其特征在于,步骤S1中,基于奇偶校验博弈合成时态逻辑的控制策略来表述配送机器人的任务规约的具体实现步骤如下:S11,采用Strix工具作为LTL策略合成工具,将简化后的LTL公式转化为确定型奇偶自动机,并将确定型奇偶自动机组合为控制器与环境间的奇偶博弈;LTL公式的具体表达式如下:其中p为原子命题; 表示不满足φ;φ1∧φ2表示同时满足φ1和φ2;φ1∨φ2表示满足φ1或者满足φ2; 表示不满足φ1或者满足φ2; 表示φ1和φ2都不满足;
φ1∪φ2表示在满足φ2之前,φ1一直满足;Nφ表示在下一刻满足φ;Gφ表示总是满足φ;Fφ表示最终满足φ;
并通过策略迭代算法计算控制器获得成功的策略,将成功的策略作为符合LTL规约的控制策略 所述控制策略 的形式可表示为:其中A表示的有限状态集合,a0表示初始状态,M表示有限终止状态集合,δa表示状态转移函数,δi表示状态奖励函数;
S12,通过基于控制策略S定义带有势能的奖励自动机,来对配送机器人行为赋予奖励值,奖励自动机的定义为:其中,A′表示一个有限状态集合,a0′∈A′表示初始状态, 表示接受状态集合,pδa′∈A′×2→A′表示状态间的转移函数, 表示带有转移函数的状态奖励函数, 表示势能函数,其中A′=A,a′0=a0,M′=M,δa′=δa;
当状态间转移函数得出的状态不属于接受状态集合时,则赋予配送机器人奖励为0,取值在0和 之间,a表示状态, 表示在配送机器人执行动作后状态a的势能函数;
当状态间转移函数得出的状态属于接受状态集合时,则会赋予配送机器人连续奖励也取值
3.根据权利要求1所述基于时态逻辑控制策略的配送机器人路径规划方法,其特征在于,步骤S3中,采用基于拓扑排序来计算配送机器人每个状态的势能函数的具体实现步骤如下:S31,将策略自动机转化为状态图,进行深度优先搜索,表达式如下:DFS(i,j,m,n,dcg)
其中,i表示当前访问顶点,j表示递增变量,m存储配送机器人正在访问的顶点的序号,n表示配送机器人当前访问节点的邻近节点,dcg表示按照拓扑排序存储强连通分量的列表;
S32,配送机器人在对某些任务点之间进行循环配送时,这些任务点组成一个强连通分量;所述强连通分量中每个任务点的势能函数w[scc]的表达为:其中, 为父节点的权重,scc.size为强连通分量内的任务点总数,num为状态图中的总任务点数。
4.根据权利要求3所述基于时态逻辑控制策略的配送机器人路径规划方法,其特征在于,每个访问过的顶点都被存入栈中,与顶点邻接的点v如果邻接点还未访问,则递归调用深度优先搜索函数,并将m[i]更新为m[i]和m[v]中的最小值;其中m[i]存储配送机器人顶点的访问顺序,m[v]存储配送机器人邻近节点的访问顺序;
如果已经被访问且邻接点v位于栈中,表示找到一个强连通分量,则将当前正访问的顶点序号换成m[i]和n[v]中的最小值;其中n[i]为被推入堆栈中的顶点、n[v]为被推入堆栈中的邻近节点;
如果m[i]和n[i]相等,将栈中连接点的所有顶点和连接点标记在同一个强连通分量内。