CN113095701A - 作业车间调度障碍图模型中的栅格化路径规划算法 - Google Patents

作业车间调度障碍图模型中的栅格化路径规划算法 Download PDF

Info

Publication number
CN113095701A
CN113095701A CN202110429444.7A CN202110429444A CN113095701A CN 113095701 A CN113095701 A CN 113095701A CN 202110429444 A CN202110429444 A CN 202110429444A CN 113095701 A CN113095701 A CN 113095701A
Authority
CN
China
Prior art keywords
node
open
barrier
closed
nodes
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.)
Withdrawn
Application number
CN202110429444.7A
Other languages
English (en)
Inventor
黄林
赵诗奎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Jinan
Original Assignee
University of Jinan
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Jinan filed Critical University of Jinan
Priority to CN202110429444.7A priority Critical patent/CN113095701A/zh
Publication of CN113095701A publication Critical patent/CN113095701A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06313Resource planning in a project environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/04Manufacturing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • Manufacturing & Machinery (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Primary Health Care (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了一种作业车间调度障碍图模型中的栅格化路径规划算法。采用栅格化将障碍图模型转化为量化的网格节点,具体包括:障碍图起点、障碍图终点、障碍块边缘点、障碍块内部点、以及剩余区域点。采用不同的符号分别表示网格节点,从障碍图起点开始,按照路径规则,采用A星算法规划到障碍图终点的路径。扩展父节点时,每次搜索至多产生三个可行的子节点,如果子节点为障碍块内部点,或者为父节点穿过障碍块内部得到的点,则为不可行子节点。将可行的子节点设为新的父节点,并判断新的父节点是否为终点,如果是则搜索结束,否则继续搜索。通过路径规划,可以实现基于障碍图模型导向的移动工件搜索,从而获得进一步改进的调度结果。本发明亦可应用于其它类似障碍图的路径规划问题。

Description

作业车间调度障碍图模型中的栅格化路径规划算法
技术领域
本发明涉及作业车间调度技术领域,具体为一种作业车间调度障碍图模型中的栅格化路径规划算法。
背景技术
高效的生产调度优化技术对于提高制造系统生产率和设备资源利用率,降低生产成本,缩短产品制造周期具有十分重要的意义。作业车间调度问题是现实许多制造企业和服务行业调度问题的抽象化模型,是一种最基本、最著名的典型调度问题。智能算法是求解作业车间调度问题的有效方法,结合问题特征,设计有效的搜索技术是提升智能算法性能的有效途径。文献“An extended Akers graphical method with a biased random-keygenetic algorithm for job-shop scheduling,International Transactions inOperational Research,2014,vol21(2),p215-246”,通过融入基于障碍图模型导向的移动工件搜索技术,刷新了多个国际基准算例的已知最好解,然而,对于其中的障碍图模型路径规划具体实现算法尚未报道,限制了该搜索技术的推广应用。
发明内容
要解决的技术问题
在给定作业车间调度方案中,移走一个工件,然后基于障碍图模型导向进行优化插入,进而实现移动工件大尺度搜索,为解决障碍图路径规划问题,本发明提出了一种作业车间调度障碍图模型中的栅格化路径规划算法。
技术方案
本发明基于栅格化的方法把障碍图区域简化为一组可以量化的节点,然后采用A星算法求解。
本发明的技术方案为:
所述作业车间调度障碍图模型中的栅格化路径规划算法,其特征在于以下步骤:
步骤1:读取问题数据,建立直角坐标系,x轴表示已调度的工序,y轴表示新加入的工序,x轴的取值范围为[0,MAX_X],其中MAX_X为已调度工件的最大的完工时间,y轴的取值范围为[0,MAX_Y],其中MAX_Y为需加入工件的加工时间之和,障碍图终点为(MAX_X,MAX_Y);
步骤2:针对y轴上的每个工序,如果x轴上存在与y轴工序加工机器相同的工序,则在坐标系中产生一个对应障碍块;
步骤3:重复步骤2,直到遍历完y轴上的所有工序,生成障碍图中的所有障碍块,进而执行步骤4;
步骤4:创建障碍图所对应的二维栅格节点地图MAP,其中MAP为MAX_X+1行,MAX_Y+1列的表格;
步骤5:把障碍图起点、障碍图终点、障碍块边缘点、障碍块内部的点、以及剩余区域无障碍点的纵横坐标分别加1,得到对应表MAP中行和列的位置,然后对这些位置采用不同的数值表示;
步骤6:根据A星算法给出距离函数:f(u)=g(u)+e(u),u代表MAP中某个栅格节点,g(u)表示起点到达u的实际距离,e(u)表示u到达终点的直线距离,f(u)表示两者距离之和;
步骤7:创建开放节点集合OPEN和关闭节点集合CLOSED,将初始数据放入OPEN当中,OPEN中的节点为候选节点,将MAP中代表障碍块内部节点的坐标放入CLOSED中,CLOSED中的节点为不可行子节点;
步骤8:从OPEN开放的行中比较f(u)的大小,选择f(u)最小值所在的行,随后将该行关闭,令该行子节点为新的父节点并记为(xNode,yNode),然后放入CLOSED中,并判断新的父层节点(xNode,yNode)是不是终点,如果是则执行步骤11,否则执行步骤9;
步骤9:扩展父节点(xNode,yNode),每次搜索至多产生三个可行的子节点,分别为(xNode+1,yNode)、(xNode+1,yNode+1)、(xNode,yNode+1),如果子节点在CLOSED中则为不可行子节点,或者子节点为父节点穿过障碍块内部得到的也为不可行子节点;
步骤10:将可行的子节点及参数加入OPEN中,返回步骤8;
步骤11:从障碍图终点开始,在OPEN中根据父子节点递推的关系,筛选出COLSED集合中的最短路径,得到障碍图中的最短路径Path。
有益效果
本发明作业车间调度障碍图模型中的栅格化路径规划算法,采用栅格化将障碍图模型转化为量化的网格节点,按照路径规则,规划障碍图起点到终点的路径。基于规划出的路径,可以实现在保证可行解的前提下,基于障碍图模型导向的工件优化插入,从而获得进一步改进的调度结果。基于障碍图模型导向的移动工件搜索可以作为共性技术,应用于各种智能算法,如遗传算法、差分进化算法、模拟退火算法等,提升智能算法的性能,具有重要的基础意义和应用价值。
附图说明
图1:障碍图模型
图2:栅格化的障碍图
图3:栅格化障碍图的路径
图4:障碍图的规划路径
图5:本发明具体实施方式的流程图;
具体实施方式
下面结合具体实施例描述本发明:
本例以表1所示的4×3作业车间调度问题实例为例,其中包含4个工件和3台机器,工件J1,J2,J3为已调度的工件,其开工时间和完工时间已知;工件J4为需加入的工件,其开工时间和完工时间未知。
表1 4×3作业车间调度问题实例
Figure BDA0003030818590000021
其特征在于:采用以下步骤:
步骤1:读取表1数据,建立直角坐标系,x轴的取值范围为[0,13],y轴的取值范围为[0,8],障碍图终点为(13,8),其中x轴的下方表示已调度的工件J1、J2和J3,y轴左侧表示需加入的工件J4
步骤2:针对y轴上的每个工序,如果x轴上存在与y轴工序加工机器相同的工序,则在对应坐标系中产生一个障碍块。
步骤3:重复步骤2,直到遍历完y轴上的所有工序,完成障碍图(如图1所示,图中x轴下方,矩形中J1-1的含义为工件J1的第1道工序,M1为对应的加工机器),进而执行步骤4。
步骤4:创建二维表格地图MAP,其中MAP为9行14列的表格。
步骤5:将障碍图中的起点、终点、障碍块边缘节点、障碍块内部节点、以及剩下区域无障碍节点的横纵坐标分别加1得到对应MAP中行和列的位置,然后在MAP中将这些对应位置分批采用不同的数值表示,最后得到量化后的栅格化表格,如表2所示。其中0代表障碍图的起点,1代表障碍图的终点,3代表障碍块边缘的点,-1代表障碍区内部的点,2代表剩下无障碍区的点。为了下面更好描述父节点的扩展,由表2生成栅格化的障碍图如图2所示,图2中每个符号与表2单元格中的数值相对应。
步骤6:根据A星算法给出距离函数:f(u)=g(u)+e(u),u代表图2中某个节点的坐标,g(u)表示起点到达u的实际距离,e(u)代表u到达终点的直线距离,f(u)表示两者距离之和。
表2障碍图所对应的栅格节点地图
3 3 3 3 3 3 3 3 3 3 3 3 2 1
3 -1 -1 -1 -1 3 -1 3 -1 -1 -1 3 2 2
3 3 3 3 3 3 3 3 3 3 3 3 3 3
3 -1 3 2 2 2 2 3 -1 -1 3 -1 -1 3
3 -1 3 2 2 2 2 3 -1 -1 3 -1 -1 3
3 -1 3 2 2 2 2 3 -1 -1 3 -1 -1 3
3 3 3 3 3 3 3 3 3 3 3 3 3 3
3 -1 -1 3 -1 -1 3 -1 3 2 2 2 2 2
0 3 3 3 3 3 3 3 3 2 2 2 2 2
步骤7:创建开放节点集合OPEN和关闭节点集合CLOSED。初始时,父节点、子节点与起点(0,0)相同,将初始数据放入OPEN当中(如表3所示),其中1标记该行开放,g(u)为起点到子节点的实际距离,因为起点与子节点坐标相同,故实际距离为0,e(u)为子节点到终点(13,8)的直线距离。CLOSED中的节点表示障碍块内部点或者已搜索过的点,均为关闭的节点,将图2中表示障碍块内部的节点放入CLOSED中,如表4所示。
步骤8:从表3,OPEN第一列标记为1的行中比较f(u)的大小,选择f(u)最小值所在的行为第一行(如表3所示,被选行字体加黑且带有星号),将该行第一列赋值0标记该行节点关闭,令该行子节点为新的父节点并记为(0,0),然后放入CLOSED中,并判断新的父节点(0,0)不是终点,执行步骤9;
表3OPEN中加入的节点及参数
开放节点标记 父节点坐标 子节点坐标 g(u) e(u) f(u)
1 (0,0) (0,0) 0 15.26 15.26*
步骤9:在图2中描述扩展父节点(0,0),生成至多三个子节点分别为(1,0)、(1,1)、(0,1),其中(1,0)、(0,1)表示障碍块边缘的点,(1,1)表示障碍块内部的点,同时(1,0)、(0,1)不在CLOSED中说明不是障碍点也没有被搜索过,因此可行的子节点坐标为(1,0)和(0,1)。
表4CLOSED中关闭的节点
节点序号 节点坐标 节点序号 节点坐标 节点序号 节点坐标
1 (1,1) 11 (5,1) 21 (9,7)
2 (1,3) 12 (6,7) 22 (10,7)
3 (1,4) 13 (7,1) 23 (11,3)
4 (1,5) 14 (8,3) 24 (11,4)
5 (1,7) 15 (8,4) 25 (11,5)
6 (2,1) 16 (8,5) 26 (12,3)
7 (2,7) 17 (8,7) 27 (12,4)
8 (3,7) 18 (9,3) 28 (12,5)
9 (4,1) 19 (9,4)
10 (4,7) 20 (9,5)
步骤10:将可行的子节点坐标及参数加入OPEN中,如表5所示,其中第二行的g(u)表示起点(0,0)到子节点(0,1)的实际距离,e(u)表示子节点(0,1)到终点(13,8)的直线距离,f(u)=g(u)+e(u),第三行与第二行的含义同理可得。
表5OPEN中加入的节点及参数
开放节点标记 父节点坐标 子节点坐标 g(u) e(u) f(u)
0 (0,0) (0,0) 0 15.26 15.26
1 (0,0) (0,1) 1 14.76 15.76
1 (0,0) (1,0) 1 14.42 15.42*
重复步骤8-10:从表5,OPEN第一列标记为1的行中选择当中第六列最小的行,为第三行,将该行第一列赋值为0标记关闭,令该行子节点坐标为新的父节点并记为(1,0),然后将(1,0)放入CLOSED中,判断新的父层节点(1,0)不是终点,扩展父节点坐标(1,0),生成三个子节点分别为(2,0)、(1,1)、(2,1),如图2所示,(2,0)表示障碍块边缘的点,其中(1,1)、(2,1)表示为障碍块内部的点,同时(2,0)不在CLOSED中,因此可行的子节点坐标为(2,0)。将(2,0)及其它参数加入OPEN中,如表6所示,其中表6第四行的g(u)为起点到(2,0)的实际距离,e(u)表示子节点(2,0)到终点(13,8)的直线距离。
重复步骤8-10:从OPEN第一列为1的行中选择当中第六列最小的行,为第四行,将该行第一列赋值为0标记关闭,令该行子节点坐标为新的父节点并记为(2,0),然后将(2,0)放入CLOSED中(如表7所示),判断新的父层节点不是终点,扩展父节点坐标(2,0),生成三个子节点分别为(3,0)、(2,1)、(3,1),如图2所示,(3,0)表示障碍块边缘的点,其中(2,1)表示为障碍块内部的点,(3,1)为父节点穿过障碍块内部得到的点(如图1所示,父节点(2,0)到达子节点(3,1)穿过了障碍块内部,因此该节点是不可行的),同时(3,0)不在CLOSED中,因此可行的子节点坐标为(3,0),将(3,0)及其它参数加入OPEN中,如表8所示,表8第五行的g(u)为起点到(3,0)的实际距离,e(u)表示子节点(3,0)到终点(13,8)的直线距离。
表6OPEN中加入的节点及参数
开放节点标记 父节点坐标 子节点坐标 g(u) e(u) f(u)
0 (0,0) (0,0) 0 15.26 15.26
1 (0,0) (0,1) 1 14.76 15.76
0 (0,0) (1,0) 1 14.42 15.42
1 (1,0) (2,0) 2 13.6 15.60*
表7CLOSED中关闭的节点
节点序号 节点坐标 节点序号 节点坐标 节点序号 节点坐标
1 (1,1) 12 (6,7) 23 (11,3)
2 (1,3) 13 (7,1) 24 (11,4)
3 (1,4) 14 (8,3) 25 (11,5)
4 (1,5) 15 (7,4) 26 (12,3)
5 (1,7) 16 (8,5) 27 (12,4)
6 (2,1) 17 (8,7) 28 (12,5)
7 (2,7) 18 (9,3) 29 (0,0)
8 (3,7) 19 (9,4) 30 (1,0)
9 (4,1) 20 (9,5) 31 (2,0)
10 (4,7) 21 (9,7)
11 (5,1) 22 (10,7)
表8OPEN中加入的节点及参数
开放节点标记 父节点坐标 子节点坐标 g(u) e(u) f(u)
0 (0,0) (0,0) 0 15.26 15.26
1 (0,0) (0,1) 1 14.76 15.76*
0 (0,0) (1,0) 1 14.42 15.42
0 (1,0) (2,0) 2 13.6 15.6
1 (2,0) (3,0) 3 12.8 15.8
重复步骤8-10:从表8,OPEN第一列为1的行中选择当中第六列最小的行,为第二行,将该行第一列赋值为0标记关闭,令该行子节点坐标为新的父节点并记为(0,1),然后将(0,1)放入CLOSED中,判断新的父层节点(0,1)不是终点,扩展父节点坐标(0,1),生成三个子节点分别为(1,1)、(1,2)、(0,2),如图2所示(0,2)表示障碍块边缘的点,其中(1,1)表示为障碍块内部的点,(1,2)为父节点穿过障碍块内部得到的点(如图1所示,父节点(0,1)到达子节点(1,2)穿过了障碍块内部,因此该节点是不可行的),同时(0,2)不在CLOSED中,因此可行的子节点坐标为(0,2)。将(0,2)及其它参数加入OPEN中,如表9所示。
重复步骤8-10:从表9,OPEN第一列为1的行中选择当中第六列最小的行,为第五行,将该行第一列赋值为0标记关闭,令该行子节点坐标为新的父节点并记为(3,0),然后将(3,0)放入CLOSED中,判断新的父层节点不是终点,扩展父节点坐标(3,0),生成三个子节点分别为(4,0)、(4,1)、(3,1),如图2所示其中(4,0)、(3,1)表示障碍块边缘的点,(4,1)表示为障碍块内部的点,同时(4,0)、(3,1)不在CLOSED中,因此可行的子节点坐标为(4,0)、(3,1)。将(4,0)、(3,1)及其它参数加入OPEN中,如表10所示。
表9OPEN中加入的节点及参数
开放节点标记 父节点坐标 子节点坐标 g(u) e(u) f(u)
0 (0,0) (0,0) 0 15.26 15.26
0 (0,0) (0,1) 1 14.76 15.76
0 (0,0) (1,0) 1 14.42 15.42
0 (1,0) (2,0) 2 13.6 15.6
1 (2,0) (3,0) 3 12.8 15.80*
1 (0,1) (0,2) 2 14.31 16.31
重复步骤8-10:从表10,OPEN第一列为1的行中选择当中第六列最小的行,为第六行,将该行第一列赋值为0标记关闭,令该行子节点坐标为新的父节点并记为(4,0),然后将(4,0)放入CLOSED中,判断新的父层节点不是终点,扩展父节点坐标(4,0),生成三个子节点分别为(5,0)、(5,1)、(4,1),如图2所示其中(5,0)表示障碍块边缘的点,其中(4,1)、(5,1)表示为障碍块内部的点,同时(5,0)不在CLOSED中,因此可行的子节点坐标为(5,0)。将(5,0)及其它参数加入OPEN中,如表11所示。
表10OPEN中加入的节点及参数
开放节点标记 父节点坐标 子节点坐标 g(u) e(u) f(u)
0 (0,0) (0,0) 0 15.26 15.26
0 (0,0) (0,1) 1 14.76 15.76
0 (0,0) (1,0) 1 14.42 15.42
0 (1,0) (2,0) 2 13.6 15.6
0 (2,0) (3,0) 3 12.8 15.8
1 (0,1) (0,2) 2 14.31 16.31
1 (3,0) (3,1) 4 12.2 16.2
1 (3,0) (4,0) 4 12.04 16.04*
表11OPEN中加入的节点及参数
开放节点标记 父节点坐标 子节点坐标 g(u) e(u) f(u)
0 (0,0) (0,0) 0 15.26 15.26
0 (0,0) (0,1) 1 14.76 15.76
0 (0,0) (1,0) 1 14.42 15.42
0 (1,0) (2,0) 2 13.6 15.6
0 (2,0) (3,0) 3 12.8 15.8
1 (0,1) (0,2) 2 14.31 16.31
1 (3,0) (3,1) 4 12.2 16.20*
0 (3,0) (4,0) 4 12.04 16.04
1 (4,0) (5,0) 5 11.31 16.31
重复步骤8-10:从表11,OPEN第一列为1的行中选择当中第六列最小的行,为第七行,将该行第一列赋值为0标记关闭,令该行子节点坐标为新的父节点并记为(3,1),然后将(3,1)放入CLOSED中,判断新的父层节点不是终点,扩展父节点坐标(3,1),生成三个子节点分别为(4,1)、(3,2)、(4,2),如图2所示其中(3,2)表示障碍块边缘的点,其中(4,1)表示为障碍块内部的点,(4,2)为父节点穿过障碍块内部得到的点,同时(3,2)不在CLOSED中,因此可行的子节点坐标为(3,2)。将(3,2)及其它参数加入OPEN中,如表12所示。
表12OPEN中加入的节点及参数
开放节点标记 父节点坐标 子节点坐标 g(u) e(u) f(u)
0 (0,0) (0,0) 0 15.26 15.26
0 (0,0) (0,1) 1 14.76 15.76
0 (0,0) (1,0) 1 14.42 15.42
0 (1,0) (2,0) 2 13.6 15.6
0 (2,0) (3,0) 3 12.8 15.8
1 (0,1) (0,2) 2 14.31 16.31
0 (3,0) (3,1) 4 12.2 16.2
0 (3,0) (4,0) 4 12.04 16.04
1 (4,0) (5,0) 5 11.31 16.31*
1 (3,1) (3,2) 5 11.66 16.66
由于栅格化属于全局搜索需要遍历的点很多,每次搜索过程与上述相同,下面我们简化叙述。
从OPEN选择新的父节点并记为(5,0),然后将(5,0)放入CLOSED中,生成可行的子节点坐标为(6,0)。将(6,0)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(0,2),然后将(0,2)放入CLOSED中,生成可行的子节点坐标为(0,3)、(1,2)。将(0,3)、(1,2)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(1,2),然后将(1,2)放入CLOSED中,生成可行的子节点坐标为(2,2)。将(2,2)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(2,2),然后将(2,2)放入CLOSED中,生成可行的子节点坐标为(3,2)、(2,3)、(3,3)。因为此前(3,2)已经被当作子节点搜索过,为避免重复搜索,将(3,2)以及它的相关参数覆盖到OPEN的第十行(父节点为旧状态保持不变),再将(2,3)、(3,3)以及其它参数加入OPEN中,如表13所示。
表13OPEN中加入的节点及参数
开放节点标记 父节点坐标 子节点坐标 g(u) e(u) f(u)
0 (0,0) (0,0) 0 15.26 15.26
0 (0,0) (0,1) 1 14.76 15.76
0 (0,0) (1,0) 1 14.42 15.42
0 (1,0) (2,0) 2 13.6 15.6
0 (2,0) (3,0) 3 12.8 15.8
0 (0,1) (0,2) 2 14.31 16.31
0 (3,0) (3,1) 4 12.2 16.2
0 (3,0) (4,0) 4 12.04 16.04
0 (4,0) (5,0) 5 11.31 16.31
1 (3,1) (3,2) 5 11.66 16.66
1 (5,0) (6,0) 6 10.63 16.63
1 (0,2) (0,3) 3 13.92 16.92
0 (0,2) (1,2) 3 13.41 16.41
0 (1,2) (2,2) 4 12.52 16.52
1 (2,2) (2,3) 5 12.08 17.08
1 (2,2) (3,3) 5.41 11.18 16.59
从OPEN选择新的父节点并记为(3,3),然后将(3,3)放入CLOSED中,生成可行的子节点坐标为(4,3)、(4,4)、(3,4)。将(4,3)、(4,4)、(3,4)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(6,0),然后将(6,0)放入CLOSED中,生成可行的子节点坐标为(6,1)、(7,0)。将(6,1)、(7,0)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(3,2),然后将(3,2)放入CLOSED中,生成可行的子节点坐标为(4,2)、(4,3)。将(4,2)、(4,3)及其它参数加入或覆盖OPEN中。
从OPEN选择新的父节点并记为(4,4),然后将(4,4)放入CLOSED中,生成可行的子节点坐标为(4,5)、(5,4)、(5,5)。将(4,5)、(5,4)、(5,5)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(4,3),然后将(4,3)放入CLOSED中,生成可行的子节点坐标为(5,3)、(5,4)。将(5,3)、(5,4)及其它参数加入或覆盖OPEN中。
从OPEN选择新的父节点并记为(5,4),然后将(5,4)放入CLOSED中,生成可行的子节点坐标为(5,5)、(6,5)、(5,5)。将(5,5)、(6,5)、(5,5)及其它参数加入或覆盖OPEN中。
从OPEN选择新的父节点并记为(6,6),然后将(6,6)放入CLOSED中,生成可行的子节点坐标为(6,7)、(7,6)、(7,7),将(6,7)、(7,6)、(7,7)及其它参数加入或覆盖OPEN中。
从OPEN选择新的父节点并记为(4,2),然后将(4,2)放入CLOSED中,生成可行的子节点坐标为(5,2)、(5,3)。将(5,2)、(5,3)及其它参数加入或覆盖到OPEN中。
从OPEN选择新的父节点并记为(5,3),然后将(5,3)放入CLOSED中,生成可行的子节点坐标为(6,3)、(6,4)。将(6,3)、(6,4)及其它参数加入或覆盖OPEN中。
从OPEN选择新的父节点并记为(6,5),然后将(6,5)放入CLOSED中,生成可行的子节点坐标为(6,6)、(7,5)、(7,6)。将(6,6)、(7,5)、(7,6)及其它参数加入或覆盖OPEN中。
从OPEN选择新的父节点并记为(6,4),然后将(6,4)放入CLOSED中,生成可行的子节点坐标为(7,4)、(7,5)。将(7,4)、(7,5)及其它参数加入或覆盖OPEN中。
从OPEN选择新的父节点并记为(6,1),然后将(6,1)放入CLOSED中,生成可行的子节点坐标为(6,2)。将(6,2)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(0,3),然后将(0,3)放入CLOSED中,生成可行的子节点坐标为(0,4)。将(0,4)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(6,6),然后将(6,6)放入CLOSED中,生成可行的子节点坐标为(7,6)。将(7,6)及其它参数覆盖到OPEN中。
从OPEN选择新的父节点并记为(7,5),然后将(7,5)放入CLOSED中,生成可行的子节点坐标为(7,6)。将(7,6)及其它参数覆盖到OPEN中。
从OPEN选择新的父节点并记为(7,6),然后将(7,6)放入CLOSED中,生成可行的子节点坐标为(7,7)、(8,6)。将(7,7)、(8,6)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(7,0),然后将(7,0)放入CLOSED中,生成可行的子节点坐标为(8,0)。将(8,0)及其它参数加入或覆盖OPEN中。
从OPEN选择新的父节点并记为(5,2),然后将(5,2)放入CLOSED中,生成可行的子节点坐标为(6,2)、(6,3)。将(6,2)、(6,3)及其它参数覆盖到OPEN中。
从OPEN选择新的父节点并记为(6,3),然后将(6,3)放入CLOSED中,生成可行的子节点坐标为(7,3)、(7,4)。将(7,3)、(7,4)及其它参数加入或覆盖OPEN中。
从OPEN选择新的父节点并记为(7,4),然后将(7,4)放入CLOSED中,无可行子节点坐标。
从OPEN选择新的父节点并记为(8,6),然后将(8,6)放入CLOSED中,生成可行的子节点坐标为(9,6)。将(9,6)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(2,3),然后将(2,3)放入CLOSED中,生成可行的子节点坐标为(2,4)、(3,4)。将(2,4)、(3,4)及其它参数加入或覆盖到OPEN中。
从OPEN选择新的父节点并记为(9,6),然后将(9,6)放入CLOSED中,生成可行的子节点坐标为(10,6)。将(10,6)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(3,4),然后将(3,4)放入CLOSED中,生成可行的子节点坐标为(3,5)、(4,5)。将(3,5)、(4,5)及其它参数加入或覆盖到OPEN中。
从OPEN选择新的父节点并记为(6,2),然后将(6,2)放入CLOSED中,生成可行的子节点坐标为(7,2)、(7,3)。将(7,2)、(7,3)及其它参数加入或覆盖到OPEN中。
从OPEN选择新的父节点并记为(7,3),然后将(7,3)放入CLOSED中,无可行子节点坐标。
从OPEN选择新的父节点并记为(10,6),然后将(10,6)放入CLOSED中,生成可行的子节点坐标为(11,6)。将(11,0)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(4,5),然后将(4,5)放入CLOSED中,生成可行的子节点坐标为(4,6)、(5,6)。将(4,6)、(5,6)及其它参数加入或覆盖到OPEN中。
从OPEN选择新的父节点并记为(8,0),然后将(8,0)放入CLOSED中,生成可行的子节点坐标为(8,1)、(9,0)、(9,1)。将(8,1)、(9,0)、(9,1)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(9,1),然后将(9,1)放入CLOSED中,生成可行的子节点坐标为(10,1)、(9,2)、(10,2)。将(10,1)、(9,2)、(10,2)及其它参数加入到OPEN中。
从OPEN选择新的父节点并记为(7,2),然后将(7,2)放入CLOSED中,生成可行的子节点坐标为(8,2)。将(8,2)及其它参数加入到OPEN中。
从OPEN选择新的父节点并记为(11,6),然后将(11,6)放入CLOSED中,生成可行的子节点坐标为(11,7)、(12,6)、(12,7)。将(11,7)、(12,6)、(12,7)及其它参数加入OPEN中。
从OPEN选择新的父节点并记为(12,7),然后将(12,7)放入CLOSED中,生成可行的子节点坐标为(13,2)、(13,8)。将(13,7)、(13,8)及其它参数加入到OPEN中,如表14所示。
从OPEN选择新的父节点并记为(13,8),然后将(13,8)放入CLOSED中,判断(13,8)是终点,执行步骤11。
表14OPEN中加入的节点及参数
开放节点标记 父节点坐标 子节点坐标 g(u) e(u) f(u)
0 (0,0) (0,0) 0 15.26 15.26
0 (0,0) (0,1) 1 14.76 15.76
0 (0,0) (1,0) 1 14.42 15.42
0 (1,0) (2,0) 2 13.6 15.6
0 (2,0) (3,0) 3 12.8 15.8
0 (0,1) (0,2) 2 14.31 16.31
0 (3,0) (3,1) 4 12.2 16.2
0 (3,0) (4,0) 4 12.04 16.04
0 (4,0) (5,0) 5 11.31 16.31
1 (3,1) (3,2) 5 11.66 16.66
1 (5,0) (6,0) 6 10.63 16.63
1 (0,2) (0,3) 3 13.92 16.92
0 (0,2) (1,2) 3 13.41 16.41
0 (1,2) (2,2) 4 12.52 16.52
1 (2,2) (2,3) 5 12.08 17.08
1 (2,2) (3,3) 5.41 11.18 16.59
0 (2,3) (3,4) 6.41 10.77 17.18
0 (3,2) (4,3) 6.41 10.29 16.7
0 (3,3) (4,4) 6.82 9.848 16.67
0 (6,0) (6,1) 6 9.899 16.89
0 (6,0) (7,0) 6 10 17
0 (3,2) (4,2) 6 10.81 16.81
0 (3,4) (4,5) 7.82 9.486 17.31
0 (4,3) (5,4) 7.82 8.944 16.77
0 (4,4) (5,5) 8.24 8.544 16.78
0 (4,2) (5,3) 7.41 9.433 16.84
0 (5,3) (6,4) 8.82 8.06 16.89
0 (5,5) (6,5) 9.24 7.61 16.85
1 (4,5) (5,6) 9.24 8.24 17.48
0 (5,5) (6,6) 9.65 7.28 16.93
0 (4,2) (5,2) 7 10 17
0 (5,2) (6,3) 8.41 8.6 17.01
0 (6,4) (7,5) 10.24 6.7 16.95
0 (6,6) (7,6) 10.65 6.32 16.98
0 (6,4) (7,4) 9.82 7.21 17.03
0 (5,2) (6,2) 8 9.21 17.21
1 (0,3) (0,4) 4 13.6 17.6
1 (7,6) (7,7) 11.65 6.08 17.73
0 (7,6) (8,6) 11.65 5.38 17.04
0 (7,0) (8,0) 8 9.43 17.43
0 (6,2) (7,3) 9.41 7.81 17.22
0 (8,6) (9,6) 12.65 4.47 17.12
1 (2,3) (2,4) 6 11.7 17.7
0 (9,6) (10,6) 13.65 3.6 17.26
1 (3,4) (3,5) 7.41 10.44 17.85
0 (6,2) (7,2) 9 8.48 17.48
0 (10,6) (11,6) 14.65 2.82 17.48
1 (4,5) (4,6) 8.82 9.21 18.04
1 (8,0) (8,1) 9 8.6 17.6
1 (8,0) (9,0) 9 8.94 17.94
0 (8,0) (9,1) 9.41 8.06 17.47
1 (9,1) (9,2) 10.41 7.21 17.62
1 (9,1) (10,1) 10.41 7.61 18.02
1 (9,1) (10,2) 10.82 6.7 17.53
1 (7,2) (8,2) 10 7.81 17.81
1 (11,6) (11,7) 15.65 2.23 17.89
1 (11,6) (12,6) 15.65 2.23 17.89
0 (11,6) (12,7) 16.07 1.41 17.48
1 (12,7) (12,8) 17.07 1 18.07
1 (12,7) (13,7) 17.07 1 18.07
0 (12,7) (13,8) 17.48 0 17.48
步骤11:将(13,8)放入CLOSED中(如表15所示),从终点(13,8)开始,根据父子节点坐标递推的关系,从表14中可以倒推出:
(13,8)的父节点为(12,7);
(12,7)的父节点为(11,6);
(11,6)的父节点为(10,6);
(10,6)的父节点为(9,6);
(9,6)的父节点为(8,6);
(8,6)的父节点为(7,6);
(7,6)的父节点为(6,6);
(6,6)的父节点为(5,5);
(5,5)的父节点为(4,4);
(4,4)的父节点为(3,3);
(3,3)的父节点为(2,2);
(2,2)的父节点为(1,2);
(1,2)的父节点为(0,2);
(0,2)的父节点为(0,1);
(0,1)的父节点为(0,0);
最终得到栅格化障碍图的路径(如图3所示),得到障碍图的规划路径(如图4所示)。
表15CLOSED中关闭的节点
节点序号 节点坐标 节点序号 节点坐标 节点序号 节点坐标
1 (1,1) 26 (12,3) 51 (6,1)
2 (1,3) 27 (12,4) 52 (0,3)
3 (1,4) 28 (12,5) 53 (6,6)
4 (1,5) 29 (0,0) 54 (7,5)
5 (1,7) 30 (1,0) 55 (7,6)
6 (2,1) 31 (2,0) 56 (7,0)
7 (2,7) 32 (0,1) 57 (5,2)
8 (3,7) 33 (3,0) 58 (6,3)
9 (4,1) 34 (4,0) 59 (7,4)
10 (4,7) 35 (3,1) 60 (8,6)
11 (5,1) 36 (5,0) 61 (2,3)
12 (6,7) 37 (0,2) 62 (9,6)
13 (7,1) 38 (1,2) 63 (3,4)
14 (8,3) 39 (2,2) 64 (6,2)
15 (7,4) 40 (3,3) 65 (7,3)
16 (8,5) 41 (6,0) 66 (10,6)
17 (8,7) 42 (3,2) 67 (4,5)
18 (9,3) 43 (4,4) 68 (8,0)
19 (9,4) 44 (4,3) 69 (9,1)
20 (9,5) 45 (5,4) 70 (7,2)
21 (9,7) 46 (5,5) 71 (11,6)
22 (10,7) 47 (4,2) 72 (11,7)
23 (11,3) 48 (5,3) 73 (12,7)
24 (11,4) 49 (6,5) 74 (13,8)
25 (11,5) 50 (6,4)

Claims (1)

1.作业车间调度障碍图模型中的栅格化路径规划算法,其特征在于包括以下步骤:
步骤1:读取问题数据,建立直角坐标系,x轴表示已调度的工序,y轴表示新加入的工序,x轴的取值范围为[0,MAX_X],其中MAX_X为已调度工件的最大的完工时间,y轴的取值范围为[0,MAX_Y],其中MAX_Y为需加入工件的加工时间之和,障碍图终点为(MAX_X,MAX_Y);
步骤2:针对y轴上的每个工序,如果x轴上存在与y轴工序加工机器相同的工序,则在坐标系中产生一个对应障碍块;
步骤3:重复步骤2,直到遍历完y轴上的所有工序,生成障碍图中的所有障碍块,进而执行步骤4;
步骤4:创建障碍图所对应的二维栅格节点地图MAP,其中MAP为MAX_X+1行,MAX_Y+1列的表格;
步骤5:把障碍图起点、障碍图终点、障碍块边缘点、障碍块内部的点、以及剩余区域无障碍点的纵横坐标分别加1,得到对应表MAP中行和列的位置,然后对这些位置采用不同的数值表示;
步骤6:根据A星算法给出距离函数:f(u)=g(u)+e(u),u代表MAP中某个栅格节点,g(u)表示起点到达u的实际距离,e(u)表示u到达终点的直线距离,f(u)表示两者距离之和;
步骤7:创建开放节点集合OPEN和关闭节点集合CLOSED,将初始数据放入OPEN当中,OPEN中的节点为候选节点,将MAP中代表障碍块内部节点的坐标放入CLOSED中,CLOSED中的节点为不可行子节点;
步骤8:从OPEN开放的行中比较f(u)的大小,选择f(u)最小值所在的行,随后将该行关闭,令该行子节点为新的父节点并记为(xNode,yNode),然后放入CLOSED中,并判断新的父层节点(xNode,yNode)是不是终点,如果是则执行步骤11,否则执行步骤9;
步骤9:扩展父节点(xNode,yNode),每次搜索至多产生三个可行的子节点,分别为(xNode+1,yNode)、(xNode+1,yNode+1)、(xNode,yNode+1),如果子节点在CLOSED中则为不可行子节点,或者子节点为父节点穿过障碍块内部得到的也为不可行子节点;
步骤10:将可行的子节点及参数加入OPEN中,返回步骤8;
步骤11:从障碍图终点开始,在OPEN中根据父子节点递推的关系,筛选出COLSED集合中的最短路径,得到障碍图中的最短路径Path。
CN202110429444.7A 2021-04-21 2021-04-21 作业车间调度障碍图模型中的栅格化路径规划算法 Withdrawn CN113095701A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110429444.7A CN113095701A (zh) 2021-04-21 2021-04-21 作业车间调度障碍图模型中的栅格化路径规划算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110429444.7A CN113095701A (zh) 2021-04-21 2021-04-21 作业车间调度障碍图模型中的栅格化路径规划算法

Publications (1)

Publication Number Publication Date
CN113095701A true CN113095701A (zh) 2021-07-09

Family

ID=76679361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110429444.7A Withdrawn CN113095701A (zh) 2021-04-21 2021-04-21 作业车间调度障碍图模型中的栅格化路径规划算法

Country Status (1)

Country Link
CN (1) CN113095701A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114444239A (zh) * 2022-01-27 2022-05-06 湘南学院 基于混合遗传算法的作业车间运动轨道路径导向优化方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114444239A (zh) * 2022-01-27 2022-05-06 湘南学院 基于混合遗传算法的作业车间运动轨道路径导向优化方法

Similar Documents

Publication Publication Date Title
CN108898668A (zh) 二维图纸与三维模型的映射系统创建及映射查找方法
CN113311829B (zh) 一种基于动态时间窗冲突搜索的多机器人路径规划方法
Yu et al. A multi-modal route planning approach with an improved genetic algorithm
CN111323037B (zh) 一种移动机器人新型骨架提取的Voronoi路径规划算法
US8255077B2 (en) Apparatus, method and program for creating tool reference plane
CN110802601B (zh) 一种基于果蝇优化算法的机器人路径规划方法
CN113189988B (zh) 一种基于Harris算法与RRT算法复合的自主路径规划方法
CN103838829A (zh) 一种基于分层次边界拓扑搜索模型的栅格转矢量系统
CN113096147B (zh) 一种基于matlab的激光标记阴影的自动生成方法
CN112633590B (zh) 一种用于四向穿梭车的智能入库方法及系统
CN113095701A (zh) 作业车间调度障碍图模型中的栅格化路径规划算法
CN102968539A (zh) 一种格式图纸的批量快速生成方法
CN114578828A (zh) 一种基于空间约束a星算法的移动机器人路径规划方法
CN108537263A (zh) 一种基于最大公共子图的栅格地图融合方法
JP2984218B2 (ja) 複数台ロボットの作業計画方法
CN114700944A (zh) 一种面向异种任务的双机器人协同路径规划方法
CN113449878A (zh) 数据分布式的增量学习方法、系统、设备及存储介质
CN112269848A (zh) 一种众包轨迹数据融合方法及装置
CN115420296B (zh) 基于多分辨率拓扑地图的路径搜索方法及系统
CN110688439A (zh) 一种基于区域地理编码自动识别企业信息和分析的方法
CN111477006A (zh) 基于高德路径规划接口的交通路网模型构建方法
Yaku et al. 8 k-ary Grid Graph Models of Tabular Forms
CN105759724A (zh) 一种智能化的编程方法
CN113588195B (zh) 碰撞堵塞检测方法及装置
Daita et al. Algorithms for production flow analysis

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20210709

WW01 Invention patent application withdrawn after publication