CN112567399A - 用于路由优化的系统和方法 - Google Patents
用于路由优化的系统和方法 Download PDFInfo
- Publication number
- CN112567399A CN112567399A CN201980006113.3A CN201980006113A CN112567399A CN 112567399 A CN112567399 A CN 112567399A CN 201980006113 A CN201980006113 A CN 201980006113A CN 112567399 A CN112567399 A CN 112567399A
- Authority
- CN
- China
- Prior art keywords
- routing scheme
- actions
- applying
- routing
- state
- 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
- 238000000034 method Methods 0.000 title claims abstract description 124
- 238000005457 optimization Methods 0.000 title description 19
- 230000009471 action Effects 0.000 claims abstract description 301
- 230000006872 improvement Effects 0.000 claims abstract description 125
- 230000002787 reinforcement Effects 0.000 claims abstract description 38
- 238000003860 storage Methods 0.000 claims abstract description 18
- 238000007670 refining Methods 0.000 claims abstract description 14
- 230000015654 memory Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 17
- 230000009467 reduction Effects 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 8
- 230000002829 reductive effect Effects 0.000 claims description 8
- 230000000246 remedial effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 abstract 1
- 230000000875 corresponding effect Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 239000003795 chemical substances by application Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000010801 machine learning Methods 0.000 description 10
- 238000012384 transportation and delivery Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000003094 perturbing effect Effects 0.000 description 9
- 239000013598 vector Substances 0.000 description 8
- 230000003068 static effect Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000005611 electricity Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000000446 fuel Substances 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 101100521334 Mus musculus Prom1 gene Proteins 0.000 description 1
- 230000004308 accommodation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000009194 climbing Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/047—Optimisation of routes or paths, e.g. travelling salesman problem
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/3415—Dynamic re-routing, e.g. recalculating the route when the user deviates from calculated route or after detecting real-time traffic data or accidents
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3453—Special cost functions, i.e. other than distance or default speed limit of road segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/083—Shipping
- G06Q10/0835—Relationships between shipper or supplier and carriers
- G06Q10/08355—Routing methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Tourism & Hospitality (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Automation & Control Theory (AREA)
- Quality & Reliability (AREA)
- Entrepreneurship & Innovation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Development Economics (AREA)
- Operations Research (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Game Theory and Decision Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Medical Informatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Primary Health Care (AREA)
- Navigation (AREA)
Abstract
提供了用于使用强化学习(RL)确定路由的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。所述方法之一包括:基于路由方案初始化RL模型的状态,其中,RL模型包括应用于所述状态的多个改进动作;将所述多个改进动作中的一个或多个应用于所述状态以获得更新的路由方案,直到满足预定条件;应用扰动动作以获得扰动的路由方案,并将该扰动的路由方案反馈给RL模型,以使RL模型根据策略应用多个改进动作中的一个或多个;以及从更新的路由方案中确定具有最低成本的路由方案。
Description
技术领域
本申请总体上涉及用于确定路由的系统和方法,尤其涉及使用强化学习(RL)确定路由的系统和方法。
背景技术
路由优化可以旨在从候选的有限集中识别具有最佳成本的路由方案。经典的旅行商问题(TSP)和车辆路线问题(VRP)是路由优化问题的变体的一些示例。路由优化的实际应用可以在诸如电信网络设计、任务调度、运输系统规划、能源、财务和供应链等领域中找到。涉及寻找车辆的有效路线的路由优化问题通常称为车辆路线问题(VRP)。VRP有多种变体,例如装卸VRP(VRPPD)、后进先出VRP、带时间窗的VRP(VRPTW)和带能力约束的VRP。
在典型的路由优化情况下,需要识别通过N个给定位置中的每个的一条或多条最佳路线(例如,最短距离的路线)。识别最佳路线一直具有挑战性,因为即使N的值很小,候选路线的总数也是非常大的。众所周知,确定VRP的最佳方案是NP困难的。实际上,由于资源、时间等方面的限制,通常不可能通过反复试验来测试每个可能的候选路线。因此,期望提供一种用于以更短的时间和更高的准确性确定路由的方法。
发明内容
本说明书的各种实施例包括但不限于用于确定路由的系统、方法和非暂时性计算机可读介质。
根据一些实施例,一种计算机实现的用于使用强化学习(RL)确定路由的方法包括:基于包括用于路由一个或多个车辆通过多个位置的一条或多条路线的路由方案初始化RL模型的状态,其中RL模型包括用于根据策略应用于所述状态以降低路由方案的成本的多个改进动作;根据所述策略将多个改进动作中的一个或多个应用于所述状态,以降低路由方案的成本并获得更新的路由方案,直到满足预定条件;响应于满足预定条件,应用扰动动作以获得扰动的路由方案,并将该扰动的路由方案反馈给RL模型以使RL模型根据所述策略应用所述改进动作中的一个或多个;以及从更新的路由方案中确定具有最低成本的路由方案。
在一些实施例中,用于根据所述策略应用于所述状态以降低路由方案的成本的多个改进动作包括以下中的一项或多项:改变多个位置中的至少两个位置在所述一条或多条路线中的一条路线内的顺序;以及将位置从一条或多条路线中的一条移动到一条或多条路线中的另一条。
在一些实施例中,应用扰动动作包括以下中的一项或多项:在至少两条所述路线中重排所述多个位置中的至少两个位置;连接至少两条所述路线;以及将至少一条所述路线分成多条路线。
在一些实施例中,每个更新的路由方案受到一个或多个约束,所述约束包括以下中的一项或多项:时间约束;行驶距离约束;车辆容量约束;以及动力费用约束。
在一些实施例中,所述多个位置中的每个位置与一个或多个特征相关联,所述一个或多个特征包括以下中的一项或多项:位置信息;需求信息;沿着一条或多条路线中的相应路线的一个或多个相邻位置的位置信息;以及离开多个位置中的每个位置的车辆的剩余容量。
在一些实施例中,所述状态包括与所述多个位置相关联的一个或多个特征。
在一些实施例中,所述状态包括先前应用于所述状态的一个或多个改进动作的信息。
在一些实施例中,所述方法还包括基于通过应用多个改进动作中的一个或多个而接收的奖励调整所述策略,其中,基于在应用一个或多个改进动作之后的成本变化计算所述奖励。
在一些实施例中,如果所述一个或多个改进动作降低所述路由方案的成本,则应用所述一个或多个改进动作的奖励是预定正数;或者如果所述一个或多个改进动作没有降低所述路由方案的成本,则应用所述一个或多个改进动作的奖励是预定负数。
在一些实施例中,在应用扰动动作之前将多个改进动作中的一个或多个应用于所述状态对应于第一次迭代;在第i次迭代中应用一个或多个改进动作的奖励包括先前迭代的先前总成本降低与第i次迭代的总成本降低之间的差。
在一些实施例中,所述改进动作包括操作或不操作。
在一些实施例中,所述预定条件包括在将阈值数量的连续改进动作应用于所述状态之后,所述路由方案的成本没有降低。
在一些实施例中,初始化RL模型的状态包括:对于包括所述RL模型的多个RL模型中的每个模型,基于路由方案初始化每个RL模型的状态,其中,每个RL模型包括用于根据策略应用于状态以降低所述路由方案的成本的多个改进动作;将所述多个改进动作中的一个或多个应用于所述状态包括:对于多个RL模型中的每个模型,根据策略将多个改进动作中的一个或多个应用于状态以降低路由方案的成本,并获得更新的路由方案,直到满足预定条件,其中,所述状态包括先前应用于状态的多个改进动作的信息,并且对于多个RL模型中的每个模型,所述多个改进动作的数量是不同的;应用扰动动作以获得扰动的路由方案并将所述扰动的路由方案反馈给RL模型包括:对于多个RL模型中的每个模型,应用扰动动作以获得扰动的路由方案并将扰动的路由方案反馈给每个RL模型以使每个RL模型根据策略应用多个改进动作中的一个或多个;从更新后的路由方案中确定具有最低成本的路由方案包括:从为多个RL模型获得的更新的路由方案中确定具有最低成本的路由方案。
在一些实施例中,多个RL模型包括N个RL模型,每个模型被称为第j个模型,其中j为1、2、3、…、或N;第j个RL模型的状态包括先前应用于该状态的(j-1)个改进动作的信息。
在一些实施例中,所述方法包括:迭代地执行将所述多个改进动作中的一个或多个应用于所述状态,并且响应于满足所述预定条件,应用所述扰动动作以获得所述扰动的路由方案,并将所述扰动的路由方案反馈给所述RL模型,直到满足退出条件。
根据其他实施例,一种用于使用强化学习(RL)确定路由的系统包括:一个或多个处理器;以及耦接到所述一个或多个处理器并且具有存储在其上的指令的一个或多个计算机可读存储器,所述指令可由所述一个或多个处理器执行以执行任何前述实施例的方法。
根据其他实施例,一种非暂时性计算机可读存储介质配置有可由一个或多个处理器执行的指令,以促使一个或多个处理器执行前述实施例中任一项的方法。
根据其他实施例,一种用于使用强化学习(RL)确定路由的装置包括用于执行前述实施例中任一项的方法的多个模块。
根据一些实施例,一种用于使用强化学习(RL)确定路由的系统包括一个或多个处理器和一个或多个非暂时性计算机可读存储介质,该介质存储可由一个或多个处理器执行以促使一个或多个处理器执行包括以下的操作的指令:基于包括用于路由一个或多个车辆通过多个位置的一条或多条路线的路由方案初始化RL模型的状态,其中RL模型包括根据策略应用于状态以降低路由方案的成本的多个改进动作;根据策略将多个改进动作中的一个或多个应用于状态以降低路由方案的成本并获得更新的路由方案,直到满足预定条件;响应于满足预定条件,应用扰动动作以获得扰动的路由方案,并将该扰动的路由方案反馈给RL模型以使RL模型根据政策应用所述多个改进动作中的一个或多个;以及从更新的路由方案中确定具有最低成本的路由方案。
根据其他实施例,一种非暂时性计算机可读存储介质配置有可由一个或多个处理器执行以促使一个或多个处理器执行包括以下的操作的指令:基于包括用于路由一个或多个车辆通过多个位置的一条或多条路线的路由方案初始化RL模型的状态,其中RL模型包括用于根据策略应用于所述状态以降低路由方案的成本的多个改进动作;根据所述策略将多个改进动作中的一个或多个应用于所述状态,以降低路由方案的成本并获得更新的路由方案,直到满足预定条件;响应于满足预定条件,应用扰动动作以获得扰动的路由方案,并将该扰动的路由方案反馈给RL模型以使RL模型根据所述策略应用所述改进动作中的一个或多个;以及从更新的路由方案中确定具有最低成本的路由方案。
根据其他实施例,一种用于使用强化学习(RL)确定路由的装置包括:初始化模块,用于基于包括用于路由一个或多个车辆通过多个位置的一条或多条路线的路由方案初始化RL模型的状态,其中RL模型包括用于根据策略应用于所述状态以降低路由方案的成本的多个改进动作;应用模块,用于根据所述策略将多个改进动作中的一个或多个应用于所述状态,以降低路由方案的成本并获得更新的路由方案,直到满足预定条件;扰动模块,用于响应于满足预定条件,应用扰动动作以获得扰动的路由方案,并将该扰动的路由方案反馈给RL模型以使RL模型根据所述策略应用所述改进动作中的一个或多个;以及确定模块,用于从更新的路由方案中确定具有最低成本的路由方案。
本文公开的实施例具有一个或多个技术效果。在一些实施例中,所述方法和系统结合了启发法和强化学习(RL)二者来确定路由。通过结合启发法和RL,本文公开的方法和系统提供了黑盒启发式方案,其可以在合理时间内生成高质量的路由方案。在一个实施例中,用于提供有效的局部优化的启发式动作与RL框架相结合,以学习关于采取启发式动作以最大化累积奖励的策略。在一个实施例中,可以针对多个问题实例学习RL的策略,使得其可以对各种不同的路由请求做出适当反应。在其他实施例中,本文公开的方法和系统可以通过使用不同的状态表示来训练多个RL模型。在建议采取行动时,不同的状态表示会导致多个RL模型的多个策略具有不同的重点。通过将多个RL模型用于一个路由优化实例,可以从多个RL模型识别的所有候选方案中选择最佳路由方案,从而使用具有单个关注点的策略提高端到端RL模型的路由优化准确度。在一个实施例中,由于多个RL模型可以并行运行,因此这种方法和系统的响应时间比仅使用一个RL模型的响应时间短得多。在其他实施例中,所述方法和系统使用RL模型将启发式操作或动作分为不同的类别,例如改进动作和扰动动作。通过这种分离,可以避免因将RL直接应用于混合动作而导致的策略崩溃。在一个实施例中,由于对动作进行了分类,因此本文公开的方法和系统可以使用多个RL模型学习针对不同类别的动作的应用的多个策略。例如,一个RL模型针对改进动作的应用,而另一个RL模型针对扰动动作的应用。在其他实施例中,本文公开的方法和系统避免提供最佳方案(其是难以获得的),以按照监督学习的要求训练模型。
参考附图考虑以下描述和所附权利要求,本文公开的系统、方法和非暂时性计算机可读介质的这些和其他特征,以及操作方法和相关结构元件的功能以及部件的组合和制造经济性将变得更加明显,所有附图形成本说明书的一部分,其中相同的附图标记表示各附图中的对应部分。然而,应该清楚地理解,附图仅用于说明和描述的目的,而不是限制性的。
附图说明
图1示出了根据一些实施例的与路由问题或其变型实例相关联的环境。
图2示出了根据一些实施例的用于路由问题或其变型实例的路由方案的示例。
图3示出了根据一些实施例的与用于确定路由的方法相关联的架构。
图4A示出了根据一些实施例的用于确定路由的基于强化学习(RL)的处理。
图4B示出了根据一些实施例的用于确定路由的RL算法的状态表示方案。
图5示出了根据一些实施例的用于优化路由方案的两种方法。
图6示出了根据一些实施例的用于扰动路由方案的方法。
图7示出了根据一些实施例的路由方案转变轨迹的图表。
图8示出了根据一些实施例的用于使用多个RL模型确定路由的方法的图示。
图9示出了根据一些实施例的用于确定路由的方法。
图10示出了根据一些实施例的用于确定路由的方法的流程图。
图11示出了根据一些实施例的用于确定路由的计算机系统的框图。
图12示出了计算机系统的框图,其中可以实现本文描述的任何实施例。
具体实施方式
传统上,由于需要解决的现实生活中的车辆路线问题的规模和频率,因此使用启发式方法来探索最佳路由方案。诸如经典爬山法的启发式算法的框架只会在重复中扰动候选方案,直到收敛。然而,仅扰动候选方案是耗时的并且限制了启发式算法在现实生活场景中的适用性。当前的其他一些工作着眼于训练端到端框架,以基于有监督的机器学习算法解决TSP、VRP和其他组合问题。但是,有监督的学习需要针对相同VRP系列的实例的最佳方案以训练模型,并且通常难以获得最佳方案。
本文描述的实施例提供了用于有效地结合启发法和RL以确定路由的方法、系统和装置。所确定的最佳路由方案可以作为导航被提供给一个或多个车辆以用于访问区域中的多个位置。车辆可以包括汽车、卡车、火车、轮船、飞机等。车辆可以出于各种目的而访问这些位置,例如接取和/或递送货物和/或乘客。这些位置可以通过道路、高速公路、空中航线、水路等连接,以路由车辆。在一些实施例中,可以获得针对环境中的实例(VRP或其变体)的最佳路由方案。例如,环境可以是社区、城市、州、国家或其他合适的地理区域。在这种环境中的路由方案可以包括车辆行驶的路线的集合。沿着每条路线行驶可能会产生行驶费用。
路由方案可受到成本的阈值(例如,预算)限制,并且可受到某些约束,例如时间、行驶距离、车辆重量、大小、范围、另一约束或其任意组合。优化路由方案可以包括在遵守约束的同时使成本最小化。行驶成本和约束二者都可能是特定于实例的。在商业环境中,服务提供商可以基于与环境相对应的最佳路由方案来相应地计划估计的交付时间、调度服务车辆或为运载车辆分配路线。例如,物流公司可能需要将许多货物从一个或多个取货地点转移到一个或多个交货地点,目的是为一组车队找到最佳路线以访问取货和交货地点。又例如,快递公司可能必须使用负载能力有限的车队进行递送。又例如,快递公司可能有时间约束,必须在该时间约束内进行递送到交货地点。可能需要在预定的时间窗内识别最佳路由方案,以确保符合时间约束。在某些情况下,在用户将导航请求输入到地图应用后立即确定最快路线的时间窗可以是几秒钟甚至几毫秒。在其他一些情况下,为第二天的递送计划最佳递送路线的时间窗可以是几分钟甚至几个小时。可替代地,在一些实施例中,环境可以包括集成电路,在该集成电路上,与路由方案类似地,确定最佳布线方案。
图1示出了根据一些实施例的与路由问题或其变型实例相关联的环境。在一些实施例中,实例110包括一个或多个仓库101、多个位置180(例如,等待从一个或多个仓库运货或请求通过一个或多个仓库提货的房屋)以及可以通过各种路线访问多个位置的一个或多个车辆102。每条路线可以沿着一条或多条道路、高速公路、空中航线、水路、连接至少两个位置的其他合适的通道或其任意组合导航。路由优化的目标可能是寻找最佳路由方案,以使车辆的行驶成本最小化,同时满足各种约束,诸如时间、行驶距离、车辆重量、尺寸、范围、动力(如汽油、电力)费用、另一约束或其任意组合。行驶成本和约束都可能是特定于实例的。
在一些实施例中,环境可以包括计算系统120,该计算系统120包括一个或多个计算设备,例如服务器集群中的服务器。计算系统120可以获得实例110并将其表示为计算机可读数据结构130。数据结构130可以包括与仓库相对应的仓库节点150、与多个位置180相对应的多个位置160以及位置160之间的多个路径170。多个路径170可以与涉及行驶成本(例如,距离、通行费、交通)、道路状况、速度限制、交通信号灯和停车标志的数量等的特征相关联。路由方案下的路线(例如,路线190)可以从诸如仓库150的起点开始,包括彼此连接的多个路径170中的一个或多个,并覆盖多个位置160中的一个或多个。每个路径170可以允许单向或双向交通。每个位置160可以与包括静态特征和动态特征的多个特征相关联。静态特征可以独立于路由方案,并且包括例如位置信息(例如,位置160的地图坐标或地址)、需求信息(例如,要递送或收取的包裹的数量、包裹的总尺寸或重量、递送或收取的软预计到达时间或硬预计到达时间、其他合适的信息或其任意组合。动态特征可以是特定于路线方案的,并且包括例如与在当前路由方案下沿路线的一个或多个相邻位置相关联的位置信息、车辆离开位置的剩余容量、另一合适的信息或其任意组合。
在一些实施例中,计算系统120可以基于数据结构130和/或其他信息确定一个或多个路由方案(例如,最佳路由)。下面参考图2描述路由方案的示例。计算系统120可以向一个或多个车辆102(例如,车载计算机)、一个或多个计算设备(例如,路由控制中心的计算机103、车辆驾驶员的移动电话104)等提供一种或多种路由方案来完成路由。在环境中,每个系统和设备可以安装有适当的软件(例如,应用程序接口)和/或硬件(例如,有线连接、无线连接)以访问环境的其他设备。通常,系统和设备可以能够通过一个或多个有线或无线网络(例如,互联网)彼此通信,通过所述网络可以通信数据。系统和设备中的每一个可以包括一个或多个处理器以及耦接到一个或多个处理器的一个或多个存储器。存储器可以是非暂时性且计算机可读的,并且配置有由一个或多个处理器可执行以促进所述一个或多个处理器执行本文描述的操作的指令。所述指令可以存储在存储器中或通过通信网络下载而不必存储在存储器中。尽管在该图中系统和设备被示为单独的组件,但是应当理解,这些设备可以实现为单个设备或耦接在一起的多个设备。
图2示出了根据一些实施例的用于路由问题或其变型实例的路由方案的示例。在一些实施例中,用于实例的路由方案220满足一个或多个实例特定约束。例如,公司可以要求在一天结束前为一些用户提供服务(例如,买方已订购当日发货),然后可以确定路由方案以包括一条或多条路线,使得车辆240能够在一天结束前访问所有这些用户。如所示,三辆车辆240可以分别经由路线230a、路线230b和路线230c覆盖所有位置。确定一条或多条路线可以考虑到用户的位置、交通信息、车辆的容量(尺寸限制、重量限制、范围限制)、要服务的包裹的特征(例如,冷冻物品、易碎物品、尺寸、重量)、其他合适的信息或其任意组合。又例如,服务提供商可以要求用于服务所有用户的费用低于预定预算。所述费用可以包括动力费用(例如,汽油费用、电费、其他类型的能源费用或其任意组合)、人工费用(例如,驾驶员的工资、食物、住宿、另一费用或其任意组合)、通行费、另一费用或其任意组合。可以确定用于这种服务提供商的路由方案包括一条或多条路线(230a,230b,230c),使得该方案的总费用(与每条路线相关的费用之和)低于所述预算。与每个路线相关联的费用可以具有其他约束,例如时间、行驶距离、车辆重量、大小、范围、动力(例如,汽油、电力)费用、另一约束或其任意组合。在一些实施例中,车辆240在车辆容量、状况、燃料效率方面是一致的。在其他实施例中,车辆240在车辆容量、状况、燃料效率方面可以是多样化的。在一些实施例中,实例110可以具有多个要满足的约束。例如,实例110可以具有用于要使用的车辆数量的第一预算、用于服务时间的第二预算以及用于总货币支出的第三预算。例如,成本要求是每天使用不超过5辆车并递送100个包裹,同时使行驶的燃料和人工费用最低。
图3示出了根据一些实施例的与用于确定路由的方法相关联的架构300。在一些实施例中,架构300可以包括由方案跟踪器310和控制器320执行的步骤,这两个步骤都可以被实现为用于确定路由的系统(例如,计算系统120)的模块。用于确定路由的系统可以包括一个或多个处理器以及耦合到一个或多个处理器并且具有存储在其上的指令的一个或多个计算机可读存储器,所述指令可由一个或多个处理器执行以执行各种步骤。模块可以对应于所述指令的至少一部分。
在一个实施例中,方案跟踪器310可以被配置为跟踪当前的路由方案及其演进历史。控制器320可以被配置为在给定当前路由方案的情况下确定要应用哪个动作来更新当前路由方案。控制器320可以应用一个或多个静态或演进的策略作为对动作选择的指导。控制器320选择应用的可能动作可以包括两类:改进动作330和扰动动作340。
在每个时间步骤,控制器320可以选择一个动作以应用于当前路由方案。当将改进动作330应用于路由方案时,可以改进当前路由方案。例如,如果将改进动作330应用于当前路由方案,则可以以在满足路由方案的所有约束的同时降低路由方案的总成本的方式调整当前路由方案。当将扰动动作340应用于路由方案时,可以重构当前路由方案。例如,如果将扰动动作340应用于当前路由方案,则可以将当前路由方案重构为可以具有较高或较低的总体成本同时仍满足用于路由方案的所有约束的新路由方案。在应用一种改进动作或扰动动作之后,更新的路由方案将成为当前路由方案。如图3所示,可以迭代地执行将动作应用于当前路由方案,并且继续探索最佳路由方案,直到控制器320决定终止该处理。
在一些实施例中,可以使用针对VRP(或其变体)的实例的人工挑选、人工设计、随机选择或以其他方式生成的初始路由方案来初始化方案跟踪器310。该初始路由方案可以包含一条或多条路线,分别用于路由一个或多个车辆通过多个位置,每条路线都满足实例所施加的约束(例如,时间、车辆重量、大小、范围、费用、另一约束、或其任意组合)。初始路由方案可以对应于可能是不可接受或不切实际去执行的成本(例如,行驶成本)。初始路由方案是架构300搜索最佳路由方案(例如,用于以最小行驶成本路由一个或多个车辆通过所述位置的路线)的起点。
在一些实施例中,控制器320可以包括两个组件:第一组件,被配置为学习与改进动作330相关联的策略;以及第二组件,被配置为学习与扰动动作340相关联的策略。根据该策略,控制器320可以确定对给定输入(例如,当前路由方案)应用哪个动作以及何时应用该动作。在一些实施例中,该策略可以是基于规则的条件-动作映射,例如在满足条件X时应用动作x。这样的策略可以表示为映射、表、字典、哈希表或其他合适的数据结构。在一些实施例中,所述策略可以是启发式的,其建议响应于给定输入而应用的特定动作。在一些实施例中,策略可以是确定性的(通过建议采取的确切动作)或随机的(通过建议可以采取的动作的可能性)的函数。所述策略可以是静态的(例如,人为设计的策略),也可以是动态的(例如,使用诸如强化学习(RL)的算法进行优化的演进策略)。使用RL的策略优化可以是相对于策略的参数最大化期望的总奖励。
在一些实施例中,控制器320的第一组件可以使用RL来学习最优策略,该最优策略建议将哪个改进动作330应用于给定路由方案(例如,当前路由方案)。RL模型可以使用Q学习、深度Q学习、策略梯度(取决于RL模型的奖励如何成形的梯度下降或上升)、另一策略优化算法或其任意组合来优化策略。例如,控制器320可以使用具有策略梯度的RL模型来优化建议应用于当前路由方案的具有置信度得分(例如,可能性)的动作的策略。然而,由于RL通过策略梯度学习的策略通常是随机的,因此该策略可以允许控制器320探索可能的优化,即使对于相同的输入也不必总是采取相同的动作。在一些实施例中,该策略建议的改进动作330可能实际上并未降低当前路由方案的成本。在这些情况下,控制器320可以跳过建议的改进动作330,而在此时间步骤不应用任何实际动作(即,该动作包括此时间步骤无操作,并且当前路由方案保持不变)。在其他实施例中,控制器320可以应用改进动作330并接收负奖励(意思是“将此动作应用于这样的路由方案是不好的”),从而在将来通过降低将这种动作应用于相似的路由方案的可能性来调整策略。
在一些实施例中,控制器320的第一组件可以采用Boosting方法,通过针对同一VRP(或其变体)实例使用多个RL来训练多个相当良好的策略。随后,系统330可以从由所有RL识别的路由方案中选择最佳路由方案作为最终最佳路由方案。在一些实施例中,多个RL可以共享共同的配置,例如要应用的多个可能的改进动作、要运行多少场景以训练相应策略、其他合适的配置或其任意组合。同时,多个RL可能会有一些差异,以便学习具有不同重点的多个策略。在一些实施例中,多个RL可以具有不同的状态表示,例如,除了当前路由方案的信息之外,一些RL的状态可以包括导致当前路由方案的一个或多个先前应用的改进动作的信息。例如,第一RL可以使用当前路由方案作为其状态,因此要学习的策略专注于优化或扰动当前方案。除了当前路由方案之外,第二RL还可包括一些历史数据(例如,导致当前路由方案的X个改进动作以及相应的效果),作为其状态。通过考虑除当前路由方案之外的一系列紧接在前的改进动作,要学习的策略可以考虑在当前路由方案之前发生的历史动作模式的影响(即,当前路由方案的演进历史)。
在一些实施例中,所述系统可以训练多个RL模型。RL模型i的状态包括[在时间步骤t,动作t-i、…动作t-2、动作t-1、当前路由方案]的信息。“动作t-i、...动作t-2、动作t-1”可以指在时间步骤t导致当前路由方案的一系列应用的改进动作。对于VRP(或其变体)实例,可以执行多个RL模型,以从多个RL模型识别的所有候选方案中获得最佳路由方案。在一个实施例中,通过使用相同总量的计算周期(例如,CPU周期,存储器使用率),七个RL模型的系统比仅一个RL模型的系统产生更好的路由方案。例如,七个RL模型中的每个都可以执行20,000个场景,这对应于所有七个模型中总共140,000个场景,以提供最终最佳路由方案,其优于针对140,000个场景运行一个RL模型的系统所识别的方案。另外,由于七个RL模型可以并行运行,因此它们在理论上可以比仅使用一个RL模型的系统快7倍地识别最佳路由方案的更好版本。
在一些实施例中,控制器320的第二组件可以使用基于规则的策略进行确定,例如何时应用扰动动作340,以及如果处于该时间,则应该将哪个扰动动作340应用于当前路由方案。例如,如果控制器320跳过应用不能降低路由方案的成本的改进动作330,则在当前路由方案的成本在最近十个时间步骤中没有降低阈值水平时(即,在所述策略选择的最后十个改进动作330不能优化当前路由方案时),控制器320可以确定应用扰动动作340。对于另一示例,控制器320可以以预定方式挑选扰动动作340中的一个扰动动作来扰动当前路由方案,诸如随机地、以循环方式或以另一项目选择模式。在一些实施例中,控制器320的第二组件可以使用一个或多个RL模型来学习一个或多个策略以确定“何时应用扰动动作340”、“在当前情况下应用哪个扰动动作340”、另一合适的状态-动作问题、或其任意组合。
在一些实施例中,应用改进动作330可以包括调整当前的路由方案以降低成本。所述改进动作可以包括路线内调整、路线间调整或其任意组合。例如,改进动作330可以包括以下中的一项或多项:改变多个位置中的至少两个位置在一条或多条路线中的一条路线内的顺序,以及将一个位置从一条或多条路线中的一条移动至所述一条或多条路线中的另一条。在一个实施例中,与应用改进动作330相关联的调整是小规模的(例如,影响路由方案内的少量路线),而不像应用扰动动作340(例如,重构整个路由方案)那样剧烈。在一个实施例中,一种改进动作330可以减少一个路由方案的成本,但是可以不减少不同路由方案的成本。在控制器320应用一个改进动作330之前,控制器320可能需要确定该动作是否实际上将降低路由方案的成本。所述确定可以涉及一个或多个路由方案的成本的计算。在一些实施例中,路由方案的成本可以是与该路由方案所涉及的路线相关联的成本的总和。与每个路线相关联的成本可以是与访问位置相关联的成本的总和。与访问每个位置相关联的成本可以基于与该位置相关联的一个或多个成本(例如,待递送的包裹的数量)、与通往该位置的路径相关联的一个或多个成本(例如,行驶费用、行驶时间)或其任意组合来计算。下面参照图5描述改进动作330的进一步细节。
在一些实施例中,扰动动作340可以包括路线间调整、或者路线内和路线间调整的组合,以扰动当前路由方案。例如,扰动动作340可以在当前路由方案的至少两个路线中重排多个位置中的至少两个位置。对于另一个示例,扰动动作340可以将当前路由方案中所涉及的至少两个路线连接起来。对于又一个示例,扰动动作340可以将当前路由方案中所涉及的至少一条路线分解为多条路线。在一些实施例中,扰动动作340可以是前述动作的任意组合。下面参照图6描述扰动动作340的进一步细节。
图4A示出了根据一些实施例的用于确定路由的基于RL的处理。RL是一种机器学习技术,使代理能够使用来自自身动作和经验的反馈通过反复试验在交互式环境中进行学习。与监督学习不同,RL的目标是找到合适的动作模型,该模型将最大化代理的总累积奖励。如图4A所示,在一些实施例中,RL模型可以配置有多个组件:环境410、代理420、代理的状态430(其在下一时间步骤转变为状态440)、应用于状态以实现状态转变的多个动作450、以及与所应用的动作相关联的奖励460(其在下一时间步骤转变为奖励470)。在一些实施例中,多个动作450可以包括一个或多个改进动作。环境410对应于VRP或其变体的实例,代理420在VRP或其变体中运行。代理的状态430包括环境410中正在检查的当前路由方案的信息。动作450之一可以在时间步骤t被应用于代理的状态t 430,其可以在时间步骤t+1将状态430更新为代理的新状态t+1 440。奖励t+1 470是在应用动作450时响应于代理的状态更新而来自环境的反馈。RL可以随后根据奖励调整其策略(即,策略的参数)。
在一些实施例中,代理的状态430可以包括当前路由方案的信息以及先前应用于该状态的一个或多个改进动作的信息。在一个示例中,当前路由方案的信息可以包括当前路由方案中包括的路线,每个路线包括该路线覆盖的一个或多个位置的特征。一个位置的特征可以包括在不同的路由方案下不会改变的实例特定的或静态的特征,例如位置信息。这些特征还可以包括基于当前路由方案的特定于方案的特征。例如,在给定具有一组路线的路由方案的情况下,一个位置的特征可以包括该位置特定于路线的相邻位置及其信息(或与每个相邻位置的距离)。对于另一示例,一个位置的特征还可以包括与一个位置相关联的需求。在一些实施例中,所述需求可以被表示为在路由计划的执行期间不改变的特定于实例的特征。在一些其他实施例中,在所述位置被服务之后,所述需求可以改变。例如,如果所述位置已经被派遣的车辆访问并被相应地服务(例如,进行所订购的货物的完全递送),则所述需求可以变为零,或者如果所述位置已被部分服务,则所述需求的值降低。对于另一示例,先前应用于状态的一个或多个改进动作的信息可以包括已采取的一个或多个改进动作以及改进动作的效果(例如,与改进动作相对应的奖励)。
在一些实施例中,动作450可以是改进动作(例如,单路线动作或多路线动作)或扰动动作(例如,重构动作)。通过单独优化一条或多条路线,应用单路线动作可以降低当前路由方案的成本。例如,应用单路线方案可以通过交换路线中的两个位置或将位置移动到路线内的新位置来重新排序位置以沿特定路线访问。通过在两个或更多路线之间移动或交换要服务的位置,应用多路线动作可以降低路由方案的成本。例如,代替当前路由方案所建议的服务路线A中的位置,应用多路线动作可以将位置移动到路线B。多路线动作可以包括交叉(例如,对一条路线的最后N个位置与另一条路线的最后M个位置进行交换,其中N不必等于M)、反向交叉(例如,颠倒两条路线中的一个,然后执行交叉动作)、对称交换(例如,在两个路线之间交换多个连续位置)、非对称交换(例如,将来自第一条路线中的多个连续位置与来自第二条路线中的不同的多个连续位置进行交换)、重新定位(例如,将来自一条路线中的多个连续位置移动到另一条路线)、循环交换(例如,在三条路线之间循环交换一个位置)等。在当前路由方案达到局部最优值时(例如,在当前路由方案的成本不会进一步明显降低时)可以应用重构动作以生成新的当前路由方案作为新的起点。重构动作可以包括随机重排、循环交换。例如,重构动作可以包括以下中的一项或多项:在至少两条所述路线中重排所述多个位置中的至少两个位置;连接至少两条所述路线;以及将至少一条所述路线分成多条路线。如图4A所示,通过改进动作450来优化状态t 430中的路由方案,该改进动作450将411中的两条路线合并为412中的一条路线以更新路由方案并获得状态t+1 440中的新路由方案。
在一些实施例中,奖励460或470可以是专注于所应用的一个或多个改进动作的直接影响的中间奖励。例如,所述奖励可以是通过应用选择的改进动作而实际降低的成本。以图4A中的图示为例,奖励t+1 470可以被计算为与状态t 430相关联的成本和在应用动作t450之后与状态t+1 440相关联的成本之间的差。在另一实施例中,如果所述一个或多个改进动作降低所述路由方案的成本,则用于应用所述一个或多个改进动作的奖励是预定的正数(例如,+1);或者如果所述一个或多个改进动作没有降低所述路由方案的成本,则用于应用所述一个或多个改进动作的奖励是预定的负数(例如,-1)。如果根据RL的策略选择的动作不能降低当前路由方案的成本,则可以跳过该动作(无操作),并将相应的奖励视为预定负数(例如,-1)以表示未能优化路由方案。以图4A中的图示为例,如果与状态t+1 440相关联的成本小于在应用动作t 450之后与状态t 430相关联的成本,则奖励t+1 470被计算为+1,否则为-1。
在一些实施例中,所述奖励可以是基于优势的。在一个示例中,如果在扰动更新的路由方案中的一个之前,将多个改进动作中的一个或多个应用于所述状态对应于第一次迭代,则在第i次迭代中针对应用一个或多个改进动作的奖励包括先前迭代的先前总成本降低与第i次迭代的总成本降低之间的差。例如,迭代可以指的是连续地应用一个或多个改进动作直到需要应用扰动动作以扰动路由方案的处理。在基于优势的奖励下,不可以立即确定动作的奖励,直到当前迭代结束。可以将在第一次迭代(即,从初始路由方案到应用第一扰动动作之前的优化处理)所实现的总成本降低视为基准。随后,在第i次迭代期间应用的所有改进动作都可以收到相同的奖励,即基线迭代的总成本降低与第i次迭代期间实现的总成本降低之间的差。在一些实施例中,所述奖励可以使用未来折扣因子以为最近接收的奖励赋予比未来要接收的奖励更高的权重。
在一些实施例中,图4A中所示的RL模型可以专注于学习关于应用改进动作以优化路由方案的策略。因此,RL模型可以不考虑与将扰动动作应用于路由方案相关联的相关联的相关奖励。在应用扰动动作之后的路由方案可以成为RL的新初始路由方案,以在新迭代中进一步优化。在一些实施例中,可以使用一个或多个单独的RL模型来学习一种或多种策略,这些策略确定何时应用扰动动作、要应用哪种扰动动作以及应当以什么顺序应用扰动动作等。
图4B示出了根据一些实施例的用于确定路由的RL算法的状态表示方案。如图4B所示,RL模型的状态432可以包括当前路由方案434的信息、先前应用于所述状态的导致当前路由方案434的一个或多个改进动作的信息以及其他合适的信息。路由方案434可包含一条或多条路线,分别用于路由一个或多个车辆通过多个位置。每个路线436可与对应于沿该路线的一个或多个位置的特征相关联。每个位置的特征438可以包括该位置的位置信息(例如,地址、坐标或另一合适的标识符)、该位置的需求信息、相应路线上的相邻位置的位置信息、在服务该位置之后车辆的剩余容量、其他合适的信息或其任意组合。
在一些实施例中,可以使用诸如关注嵌入的嵌入技术将状态表示为一个或多个向量。例如,可以通过使用三个堆叠的关注层将状态中的位置的特征438转变为嵌入向量。因此,路线436可以被表示为具有多个元素的向量,其中每个元素对应于一个位置的特征。换句话说,路线436可以表示为二维向量。在一些实施例中,路由方案434可以被表示为具有多个元素的向量,其中每个元素对应于路由方案中包括的一条路线的向量。换句话说,路由方案434可以表示为三维向量。在一些其他实施例中,路由方案434可以通过在其中连接多个路线而被表示为链表或向量。在连接路线时,例如,在连接路线1和路线2时,路线1的尾节点(返回到仓库节点的路由)和路线2的头节点(从仓库节点开始的路由)可以指相同的仓库节点。因此,链表可以将两个仓库节点合并为一个,以表示路线1的尾部和路线2的头部二者。在一些实施例中,为了简化,可以将表示路由方案的链表的长度配置为固定长度。如果路由方案的总元素小于固定长度,则RL模型可以执行零填充(添加0)以强制链表具有固定长度。
图5示出了根据一些实施例的用于优化路由方案的两种方法。图5示出了上述改进动作的两个示例(单路线动作和多路线动作)。在一个示例中,在应用“交换”动作512之后,框510中的路线1被更新为框520中的路线1'。因此,多个位置中的两个位置在路线中交换它们的位置(服务的顺序)。在另一示例中,在应用“移动”动作532之后,框530中的路线2和路线3被更新为框540中的路线2'和路线3'。因此,路线2的两个位置被移到了路线3。尽管此处针对每个改进动作仅示出了一个动作,但是改进动作可以包括一个或多个“交换”动作、一个或多个“移动”动作、其他合适的动作或其任意组合。
图6示出了根据一些实施例的用于扰动路由方案的方法。如图6所示,路由方案610包含三个路线:路线1、路线2和路线3。在应用扰动动作620之后,路由方案610被重构为新路由方案630。例如,路由方案610的路线1上的位置被移动到路线2和路线3中,并且路线2和路线3交换它们的一些位置。作为扰动动作620的结果,新路由方案仅包含2个路线:路线2'和路线3'。在应用扰动动作时,目标是扰动路由方案,而不考虑与该动作相关联的路由方案的成本变化。换句话说,当获得区域(或本地)最佳路由方案时,可以应用扰动动作以将探索移动到另一个区域,以进一步在新区域内搜索最佳路由方案。
图7示出了根据一些实施例的路由方案转变轨迹的图表。如图7所示,路由方案710可以经历与一系列改进动作和/或扰动动作相对应的一系列转变,以便找到针对VRP(或其变体)实例的最佳路由方案。在一些实施例中,在t0处的路由方案710可以是提供给所述方法的初始路由方案。例如,可以手动选择、人工设计、随机选择或使用其他适当的方法生成初始路由方案。此初始路由方案可以包含一条或多条路线,分别用于路由一个或多个车辆通过多个位置,每条路线都满足实例所施加的约束,例如时间、行驶距离、车辆重量、大小、范围、动力(例如,汽油、电力)费用、另一约束、或其任意组合。初始路由方案可以对应于可能不可接受或不切实际去执行的成本。在一些实施例中,在t0处的路由方案710可以是来自先前迭代的扰动的路由方案。迭代可以指应用一个或多个改进动作、然后将扰动动作应用于演进路由方案的一个循环。
在一些实施例中,可以在应用动作(改进或扰动)之后更新路由方案710。如图7所示,一些改进动作720被应用于t0和t1之间的路由方案。对应于改进动作720的成本降低可以是不一致的。一些改进动作可以比其他改进动作导致更高的成本降低。成本降低的确定可以涉及计算路由方案的成本。在一些实施例中,所述路由方案的成本可以是与该路由方案所涉及的路线相关联的成本的总和。与每个路线相关联的成本可以是与访问位置相关联的成本的总和。可以基于与所述位置相关联的一个或多个成本(例如,待递送的包裹的数量)、与通往该位置的路径相关联的一个或多个成本(例如,行驶费用、行驶时间)或其任意组合来计算与访问每个位置相关联的成本。
在一些实施例中,可以基于一个或多个预定规则,或者通过机器学习算法学习的一个或多个策略,选择要应用于路由方案的改进动作。作为示例,可以从改进动作池中随机选择改进动作,而不知道是否它实际上会降低路由方案的成本。作为另一示例,可以根据机器学习模型的策略选择改进动作。在一些实施例中,所述机器学习模型可以是具有通过先前实验或历史数据收集的一组或多组训练数据的监督学习模型。在一些实施例中,所述机器学习模型可以是诸如加强学习模型的无监督学习模型,其在采取某些动作之后根据从实例接收到的反馈(例如,奖励)来调整和改进策略。
在一些情况下,要应用于路由方案的改进动作可能实际上不能降低路由方案的成本。在一些实施例中,无监督机器学习模型可能仍会应用这样的动作并接收负奖励(意思是“将这种动作应用到这种路由方案是不好的”),从而通过降低未来将这种动作应用到类似路由方案的可能性来调整策略。在一些其他实施例中,如果该方法确定要应用的动作可能无法降低成本,则它可以在当前时间步骤跳过这一动作。如图7所示,如果该方法确定在t1要应用于路由方案的动作730没有降低其成本(意味着,在应用动作730之后成本可以增加或保持不变),则跳过该动作,并且结果,路由方案的成本不会从t1变为t2。在一些其他实施例中,如果根据规则或策略选择的改进动作没有降低路由方案的成本,则该方法可以以预定方式对一些其他改进动作进行采样以尝试优化路由方案。采样过程可能要花费时间或计算资源预算。如果采样过程发现可以降低路由方案成本的一个改进动作,则该方法可以应用该动作。否则,在达到或超过预算之后,该方法可以确定应用其采样的改进动作之一,或者跳过应用任何改进动作。
在一些实施例中,该方法可以在满足预定条件之后向该路由方案应用扰动动作。作为示例,预定条件可以是在将阈值数量的连续改进动作应用于状态之后,路由方案的成本没有降低。当满足这样的条件时,这意味着路由方案已经在候选方案的当前区域内局部达到相对最佳路由方案。结果,阈值数量的确定成为(1)在候选方案的当前区域内继续探索更好的方案与(2)切换到候选方案的另一区域进行探索之间的权衡考虑。在一些实施例中,为了切换到候选方案的另一区域,该方法可以应用一个或多个扰动动作来扰动路由方案。如图7所示,在t2处将扰动动作740应用于路由方案之后,在t3处的被扰动的路由方案的成本增加。在一些实施例中,在t3处的被扰动的路由方案可以成为用于探索最佳路由方案的下一次迭代的新起点(在t3和t4之间,如图7所示)。
在一些实施例中,预定条件可以是由诸如RL的机器学习模型学习的策略。可以将RL模型设计为形成建议何时应针对给定状态扰动路由方案的策略。在一些实施例中,该方法还可以使用诸如RL的机器学习模型来学习建议针对给定状态应该应用哪种扰动动作的策略。在一些实施例中,该方法可以使用诸如RL的机器学习模型来学习建议何时应用扰动动作以及要应用哪个扰动动作的策略。
图8示出了根据一些实施例的用于使用多个RL模型确定路由的方法的图示。在一些实施例中,为了针对给定VRP(或其变体)实例搜索最佳路由方案,可以以不同的重点来训练多个RL模型。例如,多个RL模型可以包括N个RL模型,每个被称为第j个模型,其中j为1、2、3,…或N;第j个RL模型的状态包括先前应用于该状态的(j-1)个改进动作的信息。在一些实施例中,该方法可以从针对多个RL模型中的每个RL模型开始,基于路由方案初始化每个RL模型的状态。每个RL模型包括用于根据策略应用于状态以降低路由方案的成本的多个改进动作。该方法可以进一步包括,对于多个RL模型中的每个,根据策略将多个改进动作中的一个或多个迭代地应用于所述状态以降低路由方案的成本并获得更新的路由方案,直到满足预定条件。该方法可以进一步包括,对于多个RL模型中的每个,扰动更新的路由方案之一,并且将被扰动的路由方案反馈给每个RL模型以使每个RL模型根据政策应用多个改进动作中的一个或多个。该方法可以进一步包括从针对多个RL模型获得的更新的路由方案中确定具有最低成本的路由方案(最佳路由方案)。即,可以从由多个RL模型中的所有RL模型获得的更新的路由方案中确定具有最低成本的最佳路由方案。
作为图8中所示的示例,该方法使用三种不同的RL模型:框810中的RL模型1,框820中的RL模型2和框830中的RL模型3。RL模型可以共享一些共同配置,例如多个改进动作和多个扰动动作。RL模型可以通过使用不同的状态表示来彼此区分。例如,除了在它们的状态中包含的当前路由方案之外,图8中的三个RL模型还可以各自包括在到达当前路由方案之前应用的一系列历史改进动作。例如,不同的RL模型在它们的状态中可以包括不同数量的历史改进动作及其相应的效果。在这情况下,RL模型考虑了应用改进动作的顺序或模式对累积奖励的影响。RL模型考虑的历史改进动作越多,RL模型就越倾向于学习所应用的一系列改进动作的模式以及所应用的一系列改进动作对当前路由方案的影响。相反,仅考虑当前路由方案的RL模型可专注于最新应用的动作对路由方案的影响。
在一些实施例中,对于给定VRP(或其变体)实例,该方法可以使用多个RL中的每个运行预定数量的迭代。迭代可以指连续地应用一个或多个改进动作直到需要应用扰动动作以扰动路由方案(即,直到在预定预算内不能进一步降低路由方案的成本)的处理。在每两次迭代之间,该方法可以将一个或多个扰动动作应用于路由方案。如图8所示,每个RL模型运行三个迭代840,每个迭代840(840a-804i)包含一个或多个连续改进动作,这些动作降低了路由方案的成本。在每个迭代840之后,可以应用扰动动作以为下一迭代重置路由方案。
在一些实施例中,对于三个RL模型中的每个,一旦RL策略不能以预定次数的尝试降低路由方案的成本或以其他方式触发预定条件,则路由方案可以被扰动,并且扰动的路由方案可以被反馈给RL以进行进一步优化。在一些实施例中,继续此循环的优化-扰动-优化处理,直到该方法决定存在或预定退出条件被触发。例如,对于循环优化-扰动-优化处理,退出条件可以是达到预定迭代次数。
在一些实施例中,在多个RL模型完成其迭代之后,该方法可以从每个模型收集多个路由方案候选,并且针对给定VRP(或其变体)实例从候选中选择最佳路由方案。如图8所示,该方法从多个RL的迭代840(840a-804i)收集多个路由方案候选850,然后从候选池中选出最佳路由方案作为用于实例的最佳路由方案。
在一些实施例中,可以从在所有优化阶段期间通过三个RL模型获得的所有路由方案中确定最终最佳路由方案。例如,图8中所示的每个迭代包括分别对应于多个路由方案的成本的多个点,其中许多是中间更新的路由方案。可以例如基于最低成本从多个路由方案中确定最终最佳路由方案。
在一些实施例中,该方法可以创建与环境相关联的多个VRP(或其变体)实例,以训练多个RL模型,使得训练后的模型可以对用于该特定环境中的最佳路由方案的请求做出适当反应。例如,该方法可以创建七个RL模型,每个RL模型包括不同数量的历史改进动作,从而导致当前路由方案处于其相应状态。随后,假设环境具有多个位置,则该方法可以通过模拟多个位置之间的5,000个不同的需求分布来创建5,000个实例。对于这5,000个实例中的每个,该方法可以通过在每个RL模型上运行每个实例2000次迭代来训练七个RL模型。最终,可以响应于与环境相关联的VRP或其变体,使用七个RL模型来搜索最佳路由方案。
图9示出了根据一些实施例的用于确定路由的方法。在一些实施例中,该方法可以从用户设备900开始,该用户设备900在步骤902处指定VRP(或其变体)实例的约束,例如时间、行驶距离、车辆重量、大小、范围、动力(例如,汽油、电力)费用、其他约束或其任意组合。最终路由方案应满足所有指定的约束。因此,控制器910可以提供满足所有约束但可以具有优化成本的初始路由方案912。初始路由方案是获得最佳路由方案的起点。在接收初始路由方案之后,RL模型920可以执行对初始路由方案的改进迭代922。改进迭代可包括根据RL模型的策略将一个或多个改进动作应用于路由方案。RL模型可以基于通过应用一个或多个改进动作而接收到的奖励来调整和改进其策略。该奖励可以是中间奖励,其专注于所应用的一个或多个改进动作的直接影响。改进迭代922可以继续直到满足预定条件。在一些实施例中,所述预定条件是应用阈值数量的连续应用的改进动作没有降低路由方案的成本。例如,如果根据RL策略选择的最后十个连续改进动作没有降低路由方案的成本,则满足该条件。当满足这样的条件时,在步骤914处,控制器910可以从改进迭代922收集一个或多个候选路由方案。例如,如果刚刚对其应用了改进交互作用的最后动作或中间动作的路由方案具有最低成本,则控制器910可以选择该路由方案作为候选路由方案。
一旦在步骤924处满足预定条件,就得到区域(或本地)最佳路由方案。然后,在步骤932处,RL 920可以应用一个或多个扰动操作以扰动所述路由方案。扰动的目的是将最佳路由方案探索移至另一区域。路由方案受到扰动后,成本可以增加。随后,可以在步骤926处将扰动的路由方案反馈给RL 920,作为用于最佳路由方案的新改进迭代的新起点。在接收扰动的路由方案之后,在步骤928处,RL 920可以执行另一改进迭代。类似地,在RL的改进迭代928终止之后(例如,当满足预定条件时),在步骤916处,控制器可以进一步收集一个或多个候选方案。
在一些实施例中,所述方法可以迭代执行以下操作,直到满足退出条件:将多个改进动作中的一个或多个应用于所述状态;以及响应于满足预定条件,应用扰动动作以获得扰动的路由方案,并将扰动的路由方案反馈给RL模型。例如,如图9所示,改进迭代-扰动-候选方案收集的循环可以是持续进行直到控制器接收到退出信号918或919的迭代处理。当满足退出条件时,可以接收退出信号。在一些实施例中,退出信号918或919可以是该方法被设置运行的预定数量的改进迭代。在一些实施例中,退出信号918或919可以是来自用户或控制器的有意中断,例如当RL 920或扰动930在预定时间段内没有分别通过应用改进动作或扰动动作而将路由方案更新为新路由方案时。在步骤904,用户设备900可以接收来自收集的候选方案中的具有最低成本的最佳路由方案。
图10示出了根据一些实施例的用于确定路由的方法1000的流程图。方法1000可以由用于确定路由的设备、装置或系统执行。方法1000可以由图1至图9所示的环境或系统的一个或多个组件,例如计算系统120执行。取决于实施方式,方法1000可以包括以各种顺序或并行执行的附加、更少或替代步骤。
框1010包括基于路由方案初始化RL模型的状态,所述路由方案包括用于路由一个或多个车辆通过多个位置的一条或多条路线,其中,所述RL模型包括用于根据策略应用于所述状态以降低所述路由方案的成本的多个改进动作。在一些实施例中,每个更新的路由方案受到一个或多个约束,所述约束包括以下中的一项或多项:时间约束;行驶距离约束;车辆容量约束;和动力费用约束。在一些实施例中,所述多个位置中的每个与一个或多个特征相关联,所述特征包括以下中的一项或多项:位置信息;需求信息;沿着一条或多条路线中的相应路线的一个或多个相邻位置的位置信息;以及离开多个位置中的每个位置的车辆的剩余容量。在一些实施例中,所述RL模型的状态包括与多个位置相关联的一个或多个特征。在一些实施例中,所述状态包括先前应用于所述状态的一个或多个改进动作的信息,例如,已经采取的一个或多个改进动作以及改进动作的效果(例如,与改进动作相对应的奖励)。
在一些实施例中,初始化RL模型的状态包括:对于包括RL模型的多个RL模型中的每个,基于路由方案初始化每个RL模型的状态,其中,每个RL模型包括多个改进动作,用于根据策略应用于状态以降低路由方案的成本。在一些实施例中,将多个改进动作中的一个或多个应用于状态包括:对于多个RL模型中的每个,根据策略将多个改进动作中的一个或多个应用于状态以降低路由方案的成本并获得更新的路由方案,直到满足预定条件,其中,所述状态包括先前应用于所述状态的多个改进动作的信息,以及对于多个RL模型中的每个,所述多个改进动作不同。在一些实施例中,应用扰动动作以获得扰动的路由方案并将扰动的路由方案反馈给RL模型包括:对于多个RL模型中的每个,应用扰动动作以获得扰动的路由方案并将扰动的路由方案反馈给每个RL模型以使每个RL模型根据策略执行多个改进动作中的一个或多个。在一些实施例中,从更新的路由方案中确定具有最低成本的路由方案包括:从为多个RL模型获得的更新的路由方案中确定具有最低成本的路由方案。
在一些实施例中,多个RL模型可以包括N个RL模型,每个被称为第j个模型,其中j为1、2、3,…或N;第j个RL模型的状态包括先前应用于状态的(j-1)个改进动作的信息。
框1020包括根据策略将多个改进动作中的一个或多个应用于状态,以降低路由方案的成本并获得更新的路由方案,直到满足预定条件。在一些实施例中,用于根据策略应用于状态以降低路由方案的成本的多个改进动作包括以下中的一项或多项:改变多个位置中的至少两个位置在一条或多条路线中的一条路线内的顺序;并将位置从一条或多条路线中的一条路线移动到所述一条或多条路线中的另一条路线。在一些实施例中,所述动作包括操作或不操作。在一些实施例中,所述预定条件包括在将阈值数量的连续动作应用于所述状态之后,所述路由方案的成本没有降低。
框1030包括,响应于满足预定条件,应用扰动动作以获得扰动的路由方案,并将所述扰动的路由方案反馈给RL模型以使RL模型根据策略应用多个改进动作中的一个或多个。在一些实施例中,应用扰动动作包括以下中的一项或多项:在至少两条所述路线中重排所述多个位置中的至少两个位置;连接至少两条所述路线;以及将至少一条所述路线分成多条路线。
框1040包括从更新的路由方案确定具有最低成本的路由方案。
在一些实施例中,所述方法1000还包括基于通过应用多个改进动作中的一个或多个而接收到的奖励来调整策略,其中,基于在应用一个或多个动作之后的成本变化来计算所述奖励。在一些实施例中,如果所述一个或多个改进动作降低路由方案的成本,则用于应用所述一个或多个改进动作的奖励是预定正数;或者如果所述一个或多个改进动作没有降低路由方案的成本,则所述奖励是预定负数。在一些实施例中,在应用扰动动作之前将多个改进动作中的一个或多个应用于所述状态对应于第一次迭代;在第i次迭代中应用一个或多个改进动作的奖励包括先前迭代的先前总成本降低与第i次迭代的总成本降低之间的差。
在一些实施例中,方法1000还包括迭代地执行以下操作,直到满足退出条件:将多个改进动作中的一个或多个应用于所述状态;或者响应于满足预定条件,应用扰动动作以获得扰动的路由方案,并将扰动的路由方案反馈给RL模型,直到满足退出条件。例如,所述退出条件可以是所述方法被设置为运行的预定循环次数。对于另一个示例,退出条件可以是来自用户的有意中断。
图11示出了根据一些实施例的用于确定路由的计算机系统1100的框图。计算机系统1100可以是计算系统120的一个或多个组件的实现的示例。方法1000可以由计算机系统1100实现。计算机系统1100可以包括一个或多个处理器和一个或多个非暂时性计算机可读存储介质(例如,一个或多个存储器),所述非暂时性计算机可读存储介质耦接到所述一个或多个处理器并配置有可由所述一个或多个处理器执行的指令,以促使系统或设备(例如,处理器)执行上述方法,例如方法1000。计算机系统1100可以包括与指令(例如,软件指令)相对应的各种单元/模块。
在一些实施例中,计算机系统1100可以被称为使用强化学习(RL)确定路由的装置。所述装置可以包括:初始化模块1110,用于基于包括用于路由一个或多个车辆通过多个位置的一条或多条路线的路由方案初始化RL模型的状态,其中RL模型包括用于根据策略应用于所述状态以降低路由方案的成本的多个改进动作;应用模块1120,用于根据所述策略将多个改进动作中的一个或多个应用于所述状态,以降低路由方案的成本并获得更新的路由方案,直到满足预定条件;扰动模块1130,用于响应于满足预定条件,应用扰动动作以获得扰动的路由方案,并将该扰动的路由方案反馈给RL模型以使RL模型根据所述策略应用所述改进动作中的一个或多个;以及确定模块1140,用于从更新的路由方案中确定具有最低成本的路由方案。
这里描述的技术可以由一个或多个专用计算设备实现。所述专用计算设备可以是台式计算机系统、服务器计算机系统、便携式计算机系统、手持设备、网络设备或包含硬连线和/或程序逻辑以实现这些技术的任何其他设备或设备的组合。专用计算设备可以被实现为个人计算机、膝上型计算机、蜂窝电话、照相电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板电脑、可穿戴设备或其组合。计算设备通常可以由操作系统软件控制和协调。传统的操作系统控制和调度用于执行的计算机进程,执行存储器管理,提供文件系统、网络、I/O服务,以及提供用户接口功能,例如图形用户接口(“GUI”)等。这里描述的各种系统、装置、存储介质、模块和单元可以在专用计算设备或一个或多个专用计算设备的一个或多个计算芯片中实现。在一些实施例中,这里描述的指令可以在专用计算设备上的虚拟机中实现。当被执行时,指令可以促使专用计算设备执行本文描述的各种方法。虚拟机可以包括软件、硬件或其组合。
图12示出了计算机系统1200的框图,其中可以实现本文描述的任何实施例。计算机系统1200可以在图1至图11所示的环境或系统的任何组件中实现。图1至图11所示的一个或多个示例方法可以通过计算机系统1200的一个或多个实施方式来执行。
计算机系统1200可以包括用于通信信息的总线1202或其他通信机制,与总线1202耦接以处理信息的一个或多个硬件处理器1204。硬件处理器1204可以是例如一个或多个通用微处理器。
计算机系统1200还可以包括耦接到总线1202的主存储器1206,例如随机存取存储器(RAM)、高速缓存和/或其他动态存储设备,用于存储可由处理器1204执行的信息和指令。主存储器1206还可以用于在执行可由处理器1204执行的指令期间存储临时变量或其他中间信息。当这些指令被存储在处理器1204可访问的存储介质中时,这些指令将计算机系统1200呈现为被定制以执行指令中指定的操作的专用机器。计算机系统1200还可以包括耦接到总线1202的只读存储器(ROM)1208或其他静态存储设备,用于存储处理器1204的静态信息和指令。存储设备1210诸如磁盘、光盘或USB拇指驱动器(闪存驱动器)等可以被提供并被耦接到总线1202以存储信息和指令。
计算机系统1200可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑实现本文描述的技术,其中所述固件和/或程序逻辑与计算机系统相结合使得计算机系统1200成为专用机器或将计算机系统700编程为专用机器。根据一个实施例,这里描述的操作、方法和过程由计算机系统1200响应于处理器1204执行主存储器1206中包含的一个或多个指令的一个或多个序列而执行。这些指令可以从另一存储介质(例如,存储设备1210)读入主存储器1206。主存储器1206中包含的指令序列的执行可以促使处理器1204执行这里描述的处理步骤。在替代实施例中,可以使用硬连线电路代替软件指令或与软件指令组合。
主存储器1206、ROM 1208和/或存储设备1210可以包括非暂时性存储介质。这里使用的术语“非暂时性介质”和类似术语是指存储促使机器以特定方式操作的数据和/或指令的介质,所述介质不包括暂时性信号。这种非暂时性介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,例如存储设备1210。易失性介质包括动态存储器,例如主存储器1206。常规形式的非暂时性介质包括,例如,软磁盘、软盘、硬盘、固态驱动器、磁带或任何其他磁数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他存储器芯片或盒式磁带的以及它们的网络版本。
计算机系统1200可以包括耦接到总线1202的网络接口1218。网络接口1218可以提供耦接到一个或多个网络链路的双向数据通信,所述一个或多个网络链路连接到一个或多个本地网络。例如,网络接口1218可以是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或调制解调器,用于提供到相应类型的电话线路的数据通信连接。作为另一示例,网络接口1218可以是局域网(LAN)卡,以提供到兼容LAN(或WAN组件以与WAN通信)的数据通信连接。还可以实现无线链路。在任何这样的实施方式中,网络接口1218可以发送和接收携带表示各种类型的信息的数字数据流的电信号、电磁信号或光信号。
计算机系统1200可以通过网络、网络链路和网络接口1218发送消息和接收数据,其中包括程序代码。在互联网示例中,服务器可以通过互联网、ISP、本地网络和网络接口1218发送用于应用程序的请求代码。
所接收的代码当被接收时可以由处理器1204执行,和/或存储在存储设备1210或其他非易失性存储器中以用于稍后执行。
前面部分中描述的每个过程、方法和算法可以在包括计算机硬件的一个或多个计算机系统或计算机处理器执行的代码模块中实现,并且通过所述代码模块完全或部分自动化地实现。过程和算法可以部分或全部地在专用电路中实现。
上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合都旨在落入本说明书的范围内。另外,在一些实施方式中可以省略某些方法或过程框。本文描述的方法和过程也不限于任何特定序列,与其相关的框或状态可以以适当的其他序列执行。例如,所描述的框或状态可以以不同于具体公开的顺序执行,或者多个框或状态可以在单个框或状态中组合。框或状态的示例可以串行、并行或以某种其他方式执行。可以将框或状态添加到所公开的实施例中或从所公开的实施例中移除。这里描述的系统和组件的示例可以与所描述的不同地被配置。例如,与所公开的实施例相比,可以添加、移除或重新布置元件。
本文描述的方法的各种操作可以至少部分地由被临时配置(例如,通过软件)或被永久配置为执行相关操作的一个或多个处理器执行。无论是临时配置还是永久配置,这样的处理器可以构成处理器实现引擎,所述处理器实现引擎用于执行本文描述的一个或多个操作或功能。
类似地,这里描述的方法可以至少部分地由处理器实现,其中特定处理器是硬件的示例。例如,所述方法的至少一些操作可以由一个或多个处理器或处理器实现引擎执行。此外,一个或多个处理器还可以操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(SaaS)。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,因特网)并且经由一个或多个适当的接口(例如,应用程序接口(API))被访问。
某些操作的性能可以在处理器之间分配,不仅驻留在单个机器中,而且跨多个机器被部署。在一些实施例中,处理器或处理器实现引擎可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其他实施例中,处理器或处理器实现引擎可以分布在多个地理位置。
在整个说明书中,多个实例可以实现作为单个实例所描述的组件、操作或结构。尽管一个或多个方法的各个操作被示出并描述为独立的操作,但是可以同时执行一个或多个独立的操作,并且不需要以所示的顺序执行所述操作。在配置中作为独立组件呈现的结构和功能可以实现为组合结构或组件。类似地,作为单个组件呈现的结构和功能可以实现为独立的组件。这些和其他变化、修改、添加和改进都落入本文中的主题的范围内。
尽管已经参考具体实施例描述了主题的概述,但是在不脱离本说明书的实施例的较宽范围的情况下,可以对这些实施例进行各种修改和改变。具体实施方式不应被视为具有限制意义,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围限定。此外,这里使用的相关术语(诸如“第一”、“第二”、“第三”等)不表示任何顺序、高度或重要性,而是用于将一个元件与另一元件区分开。此外,术语“一”、“一个”和“多个”在本文中并不表示数量的限制,而是表示存在至少一个所述的物品。
Claims (18)
1.一种计算机实现的用于使用强化学习RL确定路由的方法,包括:
基于包括一条或多条路线的路由方案初始化强化学习模型的状态,其中,所述一条或多条路线用于路由一个或多个车辆通过多个位置,所述强化学习模型包括用于根据策略应用于所述状态以降低所述路由方案的成本的多个改进动作;
根据所述策略将所述多个改进动作中的一个或多个应用于所述状态,以降低所述路由方案的成本并获得更新的路由方案,直到满足预定条件;
响应于满足所述预定条件,应用扰动动作以获得扰动的路由方案,并将所述扰动的路由方案反馈给所述强化学习模型,以使所述强化学习模型根据所述策略应用所述多个改进动作中的一个或多个;以及
从所述更新的路由方案中确定具有最低成本的路由方案。
2.根据权利要求1所述的方法,其中,根据所述策略应用于所述状态以降低所述路由方案的成本的所述多个改进动作包括以下中的一项或多项:
改变所述多个位置中的至少两个位置在所述一条或多条路线中的一条路线内的顺序;以及
将位置从所述一条或多条路线中的一条路线移动至所述一条或多条路线中的另一条路线。
3.根据权利要求1至2中的任一项所述的方法,其中,应用所述扰动动作包括以下中的一项或多项:
在至少两条所述路线中重排所述多个位置中的至少两个位置;
连接至少两条所述路线;以及
将至少一条所述路线分成多条路线。
4.根据权利要求1至3中的任一项所述的方法,其中,所述更新的路由方案中的每个都受到一个或多个约束,所述约束包括以下中的一项或多项:
时间约束;
行驶距离约束;
车辆容量约束;以及
动力费用约束。
5.根据权利要求1至4中的任一项所述的方法,其中,所述多个位置中的每个位置与一个或多个特征相关联,所述特征包括以下中的一项或多项:
位置信息;
需求信息;
沿着所述一条或多条路线中的相应路线的一个或多个相邻位置的位置信息;以及
离开所述多个位置中的每个位置的车辆的剩余容量。
6.根据权利要求5所述的方法,其中,所述状态包括与所述多个位置相关联的一个或多个特征。
7.根据权利要求1至6中的任一项所述的方法,其中,所述状态包括先前应用于所述状态的一个或多个改进动作的信息。
8.根据权利要求1至7中的任一项所述的方法,还包括:
基于通过应用所述多个改进动作中的一个或多个而接收到的奖励,调整所述策略,其中,所述奖励是基于在应用所述一个或多个改进动作之后的成本变化而计算的。
9.根据权利要求8所述的方法,其中,
如果所述一个或多个改进动作降低了所述路由方案的成本,则应用所述一个或多个改进动作的奖励是预定正数;或者
如果所述一个或多个改进动作没有降低所述路由方案的成本,则应用所述一个或多个改进动作的奖励是预定负数。
10.根据权利要求8至9中的任一项所述的方法,其中:
在应用所述扰动动作之前将所述多个改进动作中的一个或多个改进动作应用于所述状态对应于第一次迭代;以及
在第i次迭代中应用所述一个或多个改进动作的奖励包括先前迭代的先前总成本降低与所述第i次迭代的总成本降低之间的差。
11.根据权利要求1至10中的任一项所述的方法,其中,所述改进动作包括操作或不操作。
12.根据权利要求1至11中的任一项所述的方法,其中,所述预定条件包括:在将阈值数量的连续改进动作应用于所述状态之后,所述路由方案的成本没有降低。
13.根据权利要求1至12中的任一项所述的方法,其中:
初始化所述强化学习模型的状态包括:对于包括所述强化学习模型的多个强化学习模型中的每个强化学习模型,基于路由方案初始化所述每个强化学习模型的状态,其中,所述每个强化学习模型包括用于根据策略应用于所述状态以降低所述路由方案的成本的多个改进动作;
将所述多个改进动作中的一个或多个改进动作应用于所述状态包括:对于所述多个强化学习模型中的每个强化学习模型,根据所述策略将所述多个改进动作中的一个或多个改进动作应用于所述状态以降低所述路由方案的成本并获得更新的路由方案,直到满足预定条件,其中,所述状态包括先前应用于所述状态的多个改进动作的信息,对于所述多个强化学习模型中的每个强化学习模型,所述多个改进动作的数量是不同的;
应用所述扰动动作以获得所述扰动的路由方案并将所述扰动的路由方案反馈给所述强化学习模型包括:对于所述多个强化学习模型中的每个强化学习模型,应用扰动动作以获得扰动的路由方案并将所述扰动的路由方案反馈给所述每个强化学习模型,以使所述每个强化学习模型根据所述策略应用所述多个改进动作中的一个或多个;以及
从所述更新的路由方案中确定具有最低成本的路由方案包括:从针对所述多个强化学习模型获得的更新的路由方案中确定具有最低成本的路由方案。
14.根据权利要求13所述的方法,其中:
所述多个强化学习模型包括N个强化学习模型,每个强化学习模型称为第j个模型,其中j为1、2、3、…、或N;以及
所述第j个强化学习模型的状态包括先前应用于所述状态的(j-1)个改进动作的信息。
15.根据权利要求1至14中的任一项所述的方法,其中,所述方法包括:迭代地执行将所述多个改进动作中的一个或多个改进动作应用于所述状态,以及响应于满足所述预定条件,应用所述扰动动作以获得所述扰动的路由方案,并将所述扰动的路由方案反馈给所述强化学习模型,直到满足退出条件。
16.一种用于使用强化学习RL确定路由的系统,包括:
一个或多个处理器;以及
耦接到所述一个或多个处理器并具有存储在其上的指令的一个或多个计算机可读存储器,所述指令能够由所述一个或多个处理器执行以执行权利要求1至15中的任一项所述的方法。
17.一种用于使用强化学习RL确定路由的装置,包括用于执行权利要求1至15中的任一项所述的方法的多个模块。
18.一种非暂时性计算机可读存储介质,配置有能够由一个或多个处理器执行以促使所述一个或多个处理器执行权利要求1至15中的任一项所述的方法的指令。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2019/052465 WO2021061094A1 (en) | 2019-09-23 | 2019-09-23 | System and method for routing optimization |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112567399A true CN112567399A (zh) | 2021-03-26 |
Family
ID=68159161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980006113.3A Pending CN112567399A (zh) | 2019-09-23 | 2019-09-23 | 用于路由优化的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10655975B2 (zh) |
EP (1) | EP3824419A1 (zh) |
CN (1) | CN112567399A (zh) |
SG (1) | SG11202006803VA (zh) |
WO (1) | WO2021061094A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448687A (zh) * | 2021-06-24 | 2021-09-28 | 山东大学 | 云环境下基于强化学习的超启发式任务调度方法及系统 |
CN113469417A (zh) * | 2021-06-10 | 2021-10-01 | 哈尔滨工业大学 | 一种快递车辆运输调度方法、系统及设备 |
CN113919772A (zh) * | 2021-09-26 | 2022-01-11 | 山东师范大学 | 一种含时间窗的时变车辆路径规划方法及系统 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017160276A1 (en) * | 2016-03-15 | 2017-09-21 | Ford Global Technologies Llc | Multi-day, multi-person, and multi-modal trip planning system |
US20200359550A1 (en) * | 2019-05-13 | 2020-11-19 | Bao Tran | Farm ecosystem |
US20210295176A1 (en) * | 2020-03-17 | 2021-09-23 | NEC Laboratories Europe GmbH | Method and system for generating robust solutions to optimization problems using machine learning |
US11386797B2 (en) * | 2020-03-17 | 2022-07-12 | Bank Of America Corporation | System for generation of data content based on learning reinforcement |
JP2021162387A (ja) * | 2020-03-31 | 2021-10-11 | トヨタ自動車株式会社 | 経路案内システム、サーバ装置、及びプログラム |
US20210325891A1 (en) * | 2020-04-16 | 2021-10-21 | Raytheon Company | Graph construction and execution ml techniques |
DE102020208620A1 (de) | 2020-07-09 | 2022-01-13 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren und Vorrichtung zum Betreiben eines streckengebundenen Transportsystems mithilfe von Methoden künstlicher Intelligenz |
US11692832B2 (en) | 2020-07-24 | 2023-07-04 | Bayerische Motoren Werke Aktiengesellschaft | Systems, methods, and computer programs for efficiently determining an order of driving destinations and for training a machine-learning model using distance-based input data |
US20220028022A1 (en) * | 2020-07-27 | 2022-01-27 | Windigo Logistics, Inc. | Optimized logistic planning |
CN112033430B (zh) * | 2020-08-24 | 2023-08-29 | 安庆师范大学 | 一种改进的基于大规模多中心问题的路径规划方法 |
US20220101177A1 (en) * | 2020-09-25 | 2022-03-31 | International Business Machines Corporation | Optimizing a machine for solving offline optimization problems |
JP2022066017A (ja) * | 2020-10-16 | 2022-04-28 | 富士通株式会社 | 求解プログラム、求解方法および情報処理装置 |
WO2022173376A1 (en) * | 2021-02-10 | 2022-08-18 | Singapore Management University | Systems and methods for scalable, decentralized and coordinated logistics schedule planning |
US20220343243A1 (en) * | 2021-04-23 | 2022-10-27 | Beijing Didi Infinity Technology And Development Co., Ltd. | Systems and methods for resource allocation in ride-hailing platforms |
EP4210332A1 (en) | 2022-01-11 | 2023-07-12 | Tata Consultancy Services Limited | Method and system for live video streaming with integrated encoding and transmission semantics |
WO2023224559A2 (en) * | 2022-05-20 | 2023-11-23 | Grabtaxi Holdings Pte. Ltd. | System and method for adaptively identifying optimal model to select route to location |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2636537A1 (en) * | 2008-06-30 | 2009-12-30 | Autonomous Solutions, Inc. | Vehicle dispatching method and system |
CA2768578A1 (en) * | 2012-02-16 | 2013-08-16 | Trapeze Software Inc. | Method and system for adjusting a demand-response transit schedule |
CN106779251A (zh) * | 2017-01-23 | 2017-05-31 | 东南大学 | 一种基于位置学习效应的最短路径问题的启发式搜索方法 |
US20180032955A1 (en) * | 2016-08-01 | 2018-02-01 | Sap Se | System and method of minimizing waiting time in vehicle routing and scheduling with narrow time-windows |
US20180293514A1 (en) * | 2017-04-11 | 2018-10-11 | International Business Machines Corporation | New rule creation using mdp and inverse reinforcement learning |
CN108667734A (zh) * | 2018-05-18 | 2018-10-16 | 南京邮电大学 | 一种基于q学习和lstm神经网络的快速路由决策算法 |
CN109405843A (zh) * | 2018-09-21 | 2019-03-01 | 北京三快在线科技有限公司 | 一种路径规划方法及装置和移动设备 |
CN109540151A (zh) * | 2018-03-25 | 2019-03-29 | 哈尔滨工程大学 | 一种基于强化学习的auv三维路径规划方法 |
CN109697523A (zh) * | 2017-10-23 | 2019-04-30 | 顺丰科技有限公司 | 优化收派件路径的方法、系统及设备 |
CN109726866A (zh) * | 2018-12-27 | 2019-05-07 | 浙江农林大学 | 基于q学习神经网络的无人船路径规划方法 |
CN110263979A (zh) * | 2019-05-29 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 基于强化学习模型预测样本标签的方法及装置 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100278972B1 (ko) * | 1996-08-21 | 2001-01-15 | 모리 하루오 | 네비게이션장치 |
US6665651B2 (en) * | 2001-07-18 | 2003-12-16 | Colorado State University Research Foundation | Control system and technique employing reinforcement learning having stability and learning phases |
US8612107B2 (en) * | 2008-06-10 | 2013-12-17 | The Regents Of The University Of Michigan | Method, control apparatus and powertrain system controller for real-time, self-learning control based on individual operating style |
US9958272B2 (en) * | 2012-08-10 | 2018-05-01 | Telogis, Inc. | Real-time computation of vehicle service routes |
KR101371866B1 (ko) * | 2012-12-14 | 2014-03-07 | 현대자동차주식회사 | 운전정보 데이터베이스 기반의 무인 자율주행 서비스 장치 및 그 방법 |
US10321870B2 (en) * | 2014-05-01 | 2019-06-18 | Ramot At Tel-Aviv University Ltd. | Method and system for behavioral monitoring |
US9776512B2 (en) * | 2014-11-10 | 2017-10-03 | Streetsmart Ltd. | Methods, circuits, devices, systems and associated computer executable code for driver decision support |
US10012990B2 (en) * | 2016-04-01 | 2018-07-03 | Uber Technologies, Inc. | Optimizing timing for configuring an autonomous vehicle |
US20170337682A1 (en) * | 2016-05-18 | 2017-11-23 | Siemens Healthcare Gmbh | Method and System for Image Registration Using an Intelligent Artificial Agent |
EP3832419A1 (en) * | 2016-12-23 | 2021-06-09 | Mobileye Vision Technologies Ltd. | Navigational system with imposed constraints |
US20180247191A1 (en) * | 2017-02-03 | 2018-08-30 | Milestone Entertainment Llc | Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions |
WO2018172849A1 (en) * | 2017-03-20 | 2018-09-27 | Mobileye Vision Technologies Ltd. | Trajectory selection for an autonomous vehicle |
US10605905B2 (en) * | 2017-04-07 | 2020-03-31 | Osram Sylvania Inc. | Occupancy estimation using nonparametric online change-point detection, and apparatuses, systems, and software for same |
US11263707B2 (en) * | 2017-08-08 | 2022-03-01 | Indigo Ag, Inc. | Machine learning in agricultural planting, growing, and harvesting contexts |
US10678241B2 (en) * | 2017-09-06 | 2020-06-09 | GM Global Technology Operations LLC | Unsupervised learning agents for autonomous driving applications |
US20190184561A1 (en) * | 2017-12-15 | 2019-06-20 | The Regents Of The University Of California | Machine Learning based Fixed-Time Optimal Path Generation |
US11068787B2 (en) * | 2017-12-15 | 2021-07-20 | Uber Technologies, Inc. | Training neural networks using evolution based strategies and novelty search |
US20190186939A1 (en) * | 2017-12-20 | 2019-06-20 | Nio Usa, Inc. | Intelligent trip prediction in autonomous vehicles |
US11568236B2 (en) * | 2018-01-25 | 2023-01-31 | The Research Foundation For The State University Of New York | Framework and methods of diverse exploration for fast and safe policy improvement |
EP3805064B8 (en) * | 2018-03-20 | 2024-07-17 | Mobileye Vision Technologies Ltd. | Modified responsibility sensitivity safety model |
US11086317B2 (en) * | 2018-03-30 | 2021-08-10 | Intel Corporation | Emotional adaptive driving policies for automated driving vehicles |
US20200031370A1 (en) * | 2018-07-25 | 2020-01-30 | Continental Powertrain USA, LLC | Driver Behavior Based Propulsion Control Strategy Using Artificial Intelligence |
US20200033869A1 (en) * | 2018-07-27 | 2020-01-30 | GM Global Technology Operations LLC | Systems, methods and controllers that implement autonomous driver agents and a policy server for serving policies to autonomous driver agents for controlling an autonomous vehicle |
-
2019
- 2019-09-23 EP EP19783403.9A patent/EP3824419A1/en not_active Withdrawn
- 2019-09-23 CN CN201980006113.3A patent/CN112567399A/zh active Pending
- 2019-09-23 WO PCT/US2019/052465 patent/WO2021061094A1/en unknown
- 2019-09-23 SG SG11202006803VA patent/SG11202006803VA/en unknown
- 2019-12-20 US US16/722,533 patent/US10655975B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2636537A1 (en) * | 2008-06-30 | 2009-12-30 | Autonomous Solutions, Inc. | Vehicle dispatching method and system |
CA2768578A1 (en) * | 2012-02-16 | 2013-08-16 | Trapeze Software Inc. | Method and system for adjusting a demand-response transit schedule |
US20180032955A1 (en) * | 2016-08-01 | 2018-02-01 | Sap Se | System and method of minimizing waiting time in vehicle routing and scheduling with narrow time-windows |
CN106779251A (zh) * | 2017-01-23 | 2017-05-31 | 东南大学 | 一种基于位置学习效应的最短路径问题的启发式搜索方法 |
US20180293514A1 (en) * | 2017-04-11 | 2018-10-11 | International Business Machines Corporation | New rule creation using mdp and inverse reinforcement learning |
CN109697523A (zh) * | 2017-10-23 | 2019-04-30 | 顺丰科技有限公司 | 优化收派件路径的方法、系统及设备 |
CN109540151A (zh) * | 2018-03-25 | 2019-03-29 | 哈尔滨工程大学 | 一种基于强化学习的auv三维路径规划方法 |
CN108667734A (zh) * | 2018-05-18 | 2018-10-16 | 南京邮电大学 | 一种基于q学习和lstm神经网络的快速路由决策算法 |
CN109405843A (zh) * | 2018-09-21 | 2019-03-01 | 北京三快在线科技有限公司 | 一种路径规划方法及装置和移动设备 |
CN109726866A (zh) * | 2018-12-27 | 2019-05-07 | 浙江农林大学 | 基于q学习神经网络的无人船路径规划方法 |
CN110263979A (zh) * | 2019-05-29 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 基于强化学习模型预测样本标签的方法及装置 |
Non-Patent Citations (4)
Title |
---|
CHEN 等: ""Learning to Perform Local Rewriting for Combinatorial Optimization"", 《NEURIPS 2019》, 24 May 2019 (2019-05-24), pages 6278 - 6289 * |
HAO LU 等: ""A Learning-based Iterative Method For Solving Vehicle Rounting Problems"", 《ICLR 2020 CONFERENCE》, 20 December 2019 (2019-12-20), pages 1 - 12 * |
KIN-MING LO 等: ""A Genetic Algorithm with New Local Operators for Multiple Traveling Salesman Problems"", 《INTERNATIONAL JOURNAL OF COMPUTATIONAL INTELLIGENCE SYSTEMS》, vol. 11, no. 1, 5 February 2018 (2018-02-05), pages 692 - 705, XP055696509, DOI: 10.2991/ijcis.11.1.53 * |
赵雨亭: ""面向多AGV系统的路径规划及监控技术研究"", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 2019, 15 May 2019 (2019-05-15), pages 140 - 264 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113469417A (zh) * | 2021-06-10 | 2021-10-01 | 哈尔滨工业大学 | 一种快递车辆运输调度方法、系统及设备 |
CN113469417B (zh) * | 2021-06-10 | 2022-08-05 | 哈尔滨工业大学 | 一种快递车辆运输调度方法、系统及设备 |
CN113448687A (zh) * | 2021-06-24 | 2021-09-28 | 山东大学 | 云环境下基于强化学习的超启发式任务调度方法及系统 |
CN113448687B (zh) * | 2021-06-24 | 2022-07-26 | 山东大学 | 云环境下基于强化学习的超启发式任务调度方法及系统 |
CN113919772A (zh) * | 2021-09-26 | 2022-01-11 | 山东师范大学 | 一种含时间窗的时变车辆路径规划方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2021061094A1 (en) | 2021-04-01 |
EP3824419A1 (en) | 2021-05-26 |
US10655975B2 (en) | 2020-05-19 |
US20200124429A1 (en) | 2020-04-23 |
SG11202006803VA (en) | 2021-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112567399A (zh) | 用于路由优化的系统和方法 | |
US11537954B2 (en) | System and method for ride order dispatching and vehicle repositioning | |
US20210142248A1 (en) | Mixed vehicle selection and route optimization | |
US10809080B2 (en) | System and method for determining routing by learned selective optimization | |
CN111183438A (zh) | 动态车辆路线选择确定 | |
CN112074845A (zh) | 用于优化拼车策略的深度强化学习 | |
US11270583B2 (en) | Traffic control for autonomous vehicles | |
CN109345091B (zh) | 基于蚁群算法的整车物流调度方法及装置、存储介质、终端 | |
Yepes et al. | Economic heuristic optimization for heterogeneous fleet VRPHESTW | |
Powell et al. | Adaptive labeling algorithms for the dynamic assignment problem | |
CN113848970B (zh) | 一种车辆-无人机多目标协同路径规划方法 | |
US12062289B2 (en) | Dispatching provider devices utilizing multi-outcome transportation-value metrics and dynamic provider device modes | |
CN113947348A (zh) | 一种订单分配方法及装置 | |
Situ et al. | A parallel ant colony system based on region decomposition for taxi-passenger matching | |
Xu et al. | Hyperbush algorithm for strategy-based equilibrium traffic assignment problems | |
US20220044569A1 (en) | Dispatching provider devices utilizing multi-outcome transportation-value metrics and dynamic provider device modes | |
US20230076582A1 (en) | Transmitting digital transportation requests across modes to limited-eligibility provider devices to improve network coverage and system efficiency | |
Pérez-Rodríguez et al. | Simulation optimization for the vehicle routing problem with time windows using a Bayesian network as a probability model | |
Liu et al. | Edge-enhanced attentions for drone delivery in presence of winds and recharging stations | |
US20220292434A1 (en) | Resource planning for delivery of goods | |
CN112088106B (zh) | 提供车辆导航模拟环境的方法和装置 | |
WO2024106031A1 (ja) | 経路生成装置、経路生成方法、経路生成システムおよびコンピュータプログラム | |
Guo et al. | Deep reinforcement learning for urban multi-taxis cruising strategy | |
US20240177003A1 (en) | Vehicle repositioning determination for vehicle pool | |
KR102696587B1 (ko) | 운송 관련 서비스에 대한 요청을 관리하기 위한 통신 서버 장치, 방법, 및 통신 시스템 |
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 |