CN105579966B - 数据处理设备和计算机可读分布介质 - Google Patents
数据处理设备和计算机可读分布介质 Download PDFInfo
- Publication number
- CN105579966B CN105579966B CN201480052325.2A CN201480052325A CN105579966B CN 105579966 B CN105579966 B CN 105579966B CN 201480052325 A CN201480052325 A CN 201480052325A CN 105579966 B CN105579966 B CN 105579966B
- Authority
- CN
- China
- Prior art keywords
- solution
- processor
- path
- paths
- point
- 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.)
- Active
Links
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/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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
- 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/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Tourism & Hospitality (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Educational Administration (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请描述了并行解决方案生成。数据处理设备(100)包括具有计算机程序代码的存储器(104)和配置为执行该计算机程序代码(104)的至少两个处理器(110、116、120)。计算机程序代码(104)包括:在至少两个处理器(110)上并行运行的要素程序(112),以生成由点并行编译的解决方案要素(106),并将所添加的解决方案要素(106)存储在存储器(102)中;以及在至少两个处理器上并行运行的解决方案程序(114、118、120),以通过基于关键点向解决方案(108)中一次添加一个从存储器(102)中读取的解决方案要素(106)来生成解决方案(108),并将向解决方案(108)中添加的解决方案要素(106)存储在存储器(102)中。
Description
技术领域
本发明涉及用于生成并行解决方案的数据处理设备和计算机可读分布介质。
背景技术
大规模并行计算已经兴起,成为提高优化法(optimization)的能力和速度的核心因素。就这一点而言,CPU和GPU(中央处理器/图形处理单元)两种技术的使用发挥了重要作用。面临的挑战是,目前的优化方法不适宜大规模并行计算,特别是在非确定性多项式时间困难(NP-hard)离散优化问题的情况下。此外,由于复杂的改进启发式算法(improvementheuristics),现实实际问题的优化是具有挑战性的,并且维护这些方法很费事。
基于上文所述的,以划分(如,集合覆盖和集合划分)为基础的各种方法是合理的选择。在这些方法中,当例如优化路径时,首先形成路径或其部分的集合,然后将所形成的路径精确地或启发式地组合成解决方案。
存在一些关于使用GPU来优化的研究。GPU已经用于在不同的处理器之间分配待执行的工作的部分。实际上,在GPU的帮助下已经完成了迁移(moves)的评估。评估常常需要相对于参考点来进行,即,每当发现改进迁移时,必须中断评估,更新参考点,并从头开始。因为更新是一项费力的操作,所以大部分时间GPU是处于等待状态中的。因此,所获得的速度优势是微不足道的。已经做过一些尝试使评估成比例地更加复杂和/或使更新操作成比例地更加容易,从而处理器的等待时间会更短,但是据此来说,时间浪费在了低效率的计算上。
集合覆盖方法的根本问题是,如果独立地/并行地建立路径,那么生成足够路径的挑战性是不可估量的,其中这些路径是兼容的且同时是时间有效且不同的。这样的结果是,为了编译一个好的解决方案,所建立的各个路径的数量需要非常高,而这成为了一个挑战,尽管计算能力提高。
发明内容
本发明旨在提供一种改进的数据处理设备和一种改进的计算机程序代码。
根据本发明的一个方面,提供一种数据处理设备。
根据本发明的另一方面,提供一种计算机程序代码。
数据处理设备用于物流中的路径优化或工作班次的规划或生产的规划,所述数据处理设备包括存储器和至少两个处理器,所述存储器包括计算机程序代码,所述至少两个处理器配置为执行所述计算机程序代码,其中,第一处理器包括微处理器或处理器内核,第二处理器包括图形处理器,并且所述计算机程序代码包括:在至少两个处理器上运行的要素程序和在至少两个处理器上并行运行的解决方案程序,其中,所述计算机程序代码当在至少两个处理器上运行时使得所述数据处理设备至少执行如下:所述要素程序形成由点并行编译的解决方案要素,并将所形成的解决方案要素存储在所述存储器中,使得所形成的解决方案要素的副本存储在实现所述图形处理器的显卡的自身存储器中,其中,所述解决方案要素包括各个路径和/或各个路径的部分,或者所述解决方案要素包括各个工作班次和/或各个工作班次的部分,或者所述解决方案要素包括针对各个机器的使用计划;以及
所述解决方案程序通过基于关键点向解决方案中顺序地一次添加一个从所述存储器上读取的解决方案要素来生成所述解决方案,使得依靠所述关键点启发式地执行包括去除、添加和替换的校正操作,从而无需检查所有可能的组合,并将向所述解决方案中添加的所述解决方案要素存储在所述存储器中,其中,通过限定未选择路径的点获得所述关键点,并且所述解决方案包括用于预定区域和/或时间段的相容路径集合,或者,通过在时间上和地域上定义与已经选择的点相关的最近的点来获得所述关键点,并且所述解决方案包括针对预定的物理位置和/或时间段而分配给雇员的相容工作班次的集合,或者,在工作任务的资源或时间要求之间的相似度的基础上获得所述关键点,并且所述解决方案包括预定时间段的综合生产规划。
进一步地,所述解决方案程序另外地生成所述解决方案,以便在每个处理器上独立地生成所述解决方案。
进一步地,所述要素程序另外地将所述点划分成至少两个处理器专用子集,并且为每个处理器分别生成其解决方案要素,而且所述解决方案程序另外地生成所述解决方案,其方式是,通过使用处理器专用的解决方案要素在所述至少两个处理器中的每一个处理器上以处理器专用方式生成所述解决方案。
进一步地,所述解决方案程序另外地为所述解决方案选择具有最佳关键点的且与已经为所述解决方案选择的所述解决方案要素不具有重叠的所述解决方案要素。
进一步地,所述解决方案程序另外地为所述解决方案选择包括关键点的、但与已经为所述解决方案选择的所述解决方案要素具有重叠的且在已经去除所述重叠后具有最佳效率值的所述解决方案要素。
进一步地,所述解决方案程序另外地在去除重叠后将此时仍未选择的各个解决方案点放置在所述解决方案的已经选择的所述解决方案要素中。
进一步地,所述解决方案程序最终另外地为所述解决方案的不能找到解决方案要素且不能被放置在所述解决方案的已经选择的所述解决方案要素中的缺失点生成专用解决方案要素。
进一步地,所述计算机程序代码的应用领域包括物流中的路径优化,其中,所述解决方案的评估是以下述中的至少一项为基础的:路径的长度、路径的容量利用、路径的总时间、路径的合理分配、路径对时间期限的适用性、路径的兼容性、路径的优先级,并且校正是以各个点的放置和/或改变为基础的;或者,所述计算机程序代码的应用领域包括规划工作班次,其中,所述解决方案的评估是以未分配的任务的量、超时工作的量、雇员的需求和/或满足雇员的愿望为基础,并且所述校正是以各个任务的放置和/或改变为基础的;或者,所述计算机程序代码的应用领域包括生产的规划,其中,所述解决方案的评估是以成本、可靠性或机器的利用率为基础的,并且校正是以不同资源之间的工作任务的时间安排和分配的变化为基础的。
进一步地,所述计算机程序代码当在至少一个处理器上运行时生成所述解决方案要素,并且当在至少两个处理器上运行时生成如上所述的所述解决方案。
本发明的优点至少包括对大规模并行计算和多种模式的很好的支持及其通用性和可行性。因为是按顺序进行组合的(一次一个要素),所以立刻明白了,最好的选择是什么,或者所选择的组合路径是否值得继续。
附图说明
下面,参考所附的附图,通过举例方式描述本发明的实施例,附图中:
图1、2、3、4和5示出了数据处理设备的示例实施例;
图6、7和8示出了解决方案要素和解决方案的示例实施例;
图9A、9B、9C、9D、9E、9F、9G、9H、9I、9J和9K示出了生成解决方案的示例实施例;并且
图10示出了数据处理设备的示例实施例。
具体实施方式
下面将披露的实施例仅仅是实例。本发明不限于所披露的实施例,而这些实施例是可行的实施方式的实例。各实施例的特征也可以结合,除非这些特征对于它们的技术实现来说是特别冲突或选择性的。词语“包括”的意思是所披露的实施例包括所引用的特征,但也可以有没有提到的其它特征。应该注意的是,附图示出了简化的框图,其中仅仅描述了从实施例角度来看的必要特征。本领域的技术人员将理解,数据处理设备可以包括许多其它特征和结构也是很明显的。然而,这种其它部件可能与实际的发明不相干,因此在此没有必要更详细地描述这些部件。另外,应该注意的是,虽然元件被描述为是分离的,但是一些元件可被集成到一个物理元件,即,所描述的元件可以是逻辑元件。
图1示出了数据处理设备100,其包括存储器102和至少两个处理器110、116,该存储器包括计算机程序代码104,并且该至少两个处理器配置为执行该计算机程序代码104。
计算机程序代码104包括在至少两个处理器110、116上运行的要素程序112、118,以形成由点并行编译的解决方案要素106,并将所形成的解决方案要素106存储在存储器102中。在一个示例实施例中,解决方案要素106本身不分布在不同处理器110、116中,而是每个处理器110、116有权访问所有所存储的要素106。如果由于重叠而使存储器102的检索次数变得太高,所需数量的副本可以由解决方案要素106组成。因为存储器的要求小,所以这能够实现。要素库106的标识符可以分布在不同处理器110、116中。可以根据预定的规则形成解决方案要素106:如果解决方案要素是例如配送路径,那么能够确定例如路径的最大长度和最大时间或者点的最大数量,以便不超过集体劳动合同所允许的驾驶时间。
另外,计算机程序代码104包括在至少两个处理器110、116上并行运行的解决方案程序114、120,以通过基于关键点向解决方案108中一次添加一个从存储器102中读取的解决方案要素106来生成解决方案108,并将向解决方案108中添加的解决方案要素106存储在存储器102中。在关键点的帮助下,可以定义相互靠近的解决方案要素106。在一个示例实施例中,选择关键点,该关键点相对于已经为解决方案108选择的解决方案要素106已经具有最低放置成本(placing cost)。在一个示例实施例中,选择属于第一合适的解决方案要素106的关键点。在一个示例实施例中,选择属于待组合的最佳解决方案要素106的关键点。在一个示例实施例中,可以潜在地使用向前看类型的策略来预期所做选择的效果,并基于此来总结最佳解决方案是什么:因此,可以以与例如下棋时考虑某一走法对于未来走法的影响的方式相同的方式来检验各种潜在的选择链。在一个示例实施例中,选择解决方案要素106,其包括根据某个选择标准确定的最佳关键点。
在一个示例实施例中,每个处理器110、116完全独立地生成解决方案,因此,这些解决方案可能具有很多重叠。每个处理器110、116可以独立地构建一个完整的解决方案。在一个示例实施例中,因为首先选择的解决方案要素106对随后选择的解决方案要素具有很大影响,所以每个处理器110、116可以分配不同的起始点。可以根据预定规则为每个处理器110、116确定不同的起始点(即首先选择的解决方案要素),其方式例如是:选择尽可能彼此远离的解决方案要素106。可替换地,可以以例如随机数来为每个处理器110、116进行起始点的选择,以便根据每个处理器110、116自身的随机数来为每个处理器初始化选择算法。随机性的影响也可以被扩大:在每个阶段,可以随机地选择最佳选项中的一个,作为随后的解决方案要素106。也可以在不同的阶段随机地执行各种改进迁移。不必组合由不同处理器110、116产生的解决方案108,而在建立解决方案108时,只组合解决方案要素106。由于正在形成解决方案108,仅仅通过更新包括在解决方案108中的信息结构就能进行组合。因此,可能一直具有多个正在被形成的解决方案108。原则上,每个处理器110、116通过使用相同的解决方案要素106建立其自己的解决方案108或至少是解决方案108的独立部分,从而并行更新没有任何问题。
如果处理器110、116形成解决方案108的独立部分,可以这样的方式促进解决方案108的组合,即,事先将点划分成单独的子集,换句话说,它们不重叠。在这种情况下,组合主要是报告技术问题。因此,以除雪为例,例如,某个城镇已经划分成了三个合同区域,那么每个合同区域是一个独立的部分,而与其它区域没有共同之处。这样,城镇的除雪仅仅由这三个已经分别优化的合同区域组成。
如果每个处理器110、116形成其自身的完美的解决方案108,很明显地是,与只生成一个解决方案108的情况相比,将会消耗更多的资源,但是另一方面,解决这种很难的优化问题就是摸索着前进,无论如何,其中大量的工作都“白白浪费了”。只能在尝试尽可能多的组合后才能找到组合不同种类的好的解决方案要素106的最佳方式,所描述的示例实施例能够做到,并且使用尽可能多的计算机性能。最终的结果是,或者得到一个解决方案108,该解决方案具有适合于其目标功能的最佳值,或者然后得到根据至少一个指标(indicator)测量为最佳的最佳解决方案108的集合,然后用户为某目的选择一个最合适的解决方案。
如在图1中所见,具有至少两个处理器110、116,换句话说,可能具有更多个处理器:如在图1中所示,可能具有N个处理器110、116、122,其中N是大于2的整数。因此,解决方案程序114、120、126可以在多于两个的处理器110、116、122(多达N个处理器110、116、122)上并行运行。要素程序112、118、124也在至少两个处理器110、116、122上运行,即,其可以在更多个处理器(多达N个处理器110、116、122)上运行。
在一个示例实施例中,第一处理器110包括微处理器、处理器内核或图形处理器,并且第二处理器116包括微处理器、处理器内核或图形处理器。
在图2的示例实施例中,处理器110、116、122实施为微处理器202、204、206,从而要素程序112、118、124和解决方案程序114、120、126可在多达N个微处理器202、204、206上并行运行。
在图3的示例实施例中,处理器110、116、122实施为多核处理器300的处理器内核302、304、306,从而要素程序112、118、124和解决方案程序114、120、126可在多达N个处理器内核302、304、306上并行运行。
在根据图4的示例实施例中,处理器110、116实施为中央处理器(CPU)400和图形处理单元(GPU)402,从而要素程序112、118和解决方案程序114、120二者可以在CPU 400和GPU402上并行运行。在一个示例实施例中,主处理器400实施为微处理器。图形处理单元402可通过使用单独的显卡来实施。显卡可包括大量的图形处理单元402,例如,多达三千个图形处理单元。另外,显卡可具有其自身的存储器。因为图形处理单元420本身是强大的而且显卡内的存储器操作是快速的,所以在显卡的存储器中可以存储解决方案要素106的副本,但在主处理器400的方向上的数据传送是相对缓慢的。
在图2、3和4中所描述的这些示例实施例的基础上,可以形成各种混合组合。
在图5的示例实施例中,处理器110、116、122、500实施为多核处理器300的处理器内核302、304、306和图形处理单元302,从而要素程序112、118、124、502和解决方案程序114、120、126、504可在多达N+1个处理器110、116、122、500上并行运行。
一般地,处理器110、116、122可实施为微处理器、图形处理单元、多核处理器的处理器内核、并行处理器的处理器,但也可以通过另外地或者替换地使用下述中的至少一个来实施:标准集成电路、特定应用的集成电路(ASIC)、片上系统(SoC)、特定应用的标准产品(ASSP)、数字信号处理器或专用计算机芯片。
在一个示例实施例中,处理器110、116、122是电子数字计算机100的一部分。计算机100可包括随机存取存储器(RAM)、中央处理器(CPU)和系统时钟。中央处理器可包括多个寄存器、算术逻辑单元(ALU)和控制单元。控制单元由已经从随机存取存储器传送到中央处理器的一系列程序指令104控制。中央处理器可包括多个用于基本运算(basicoperations)的微指令。微指令的实施可根据中央处理器的设计而变化。程序指令104可以用编程语言编码,该编程语言可以是高级编程语言(如C语言或Java语言)或者低级编程语言(如机器语言或汇编语言)。计算机100还可以具有操作系统,该操作系统可以向通过程序指令编写的计算机程序104提供系统服务。参考上面的描述,CPU可以是微处理器或多核处理器,并且计算机100还可以包括图形处理单元。存储器102可以是随机存取存储器,而计算机100可以具有非易失性存储器,计算机程序代码104存储在该非易失性存储器中。在最低的水平上,可以按照比特(或量子比特,如果计算机是量子计算机)来处理信息。
如在图1中所示,计算机程序代码132可以存储在分配媒介(分布介质,distribution medium)134上,该计算机程序代码能够从该分配媒介传递到计算机100,从而计算机程序代码104当在至少两个处理器110、116、122上运行时形成解决方案要素106,并且当在至少两个处理器110、116、122上运行时形成解决方案108。在一个示例实施例中,计算机程序代码132、104可以是源代码的格式、目标代码格式、可执行的格式或是一个过渡中的格式。分配媒介134可至少包括如下:任何允许程序分布的实体、存储器装置、只读存储器、通信信号、非临时性计算机可读存储装置。
图6、7和8示出了解决方案要素106和解决方案108的示例实施例。
图6具有点600、602、604、606、608、610、612、614、616,解决方案要素106由这些点生成。解决方案要素K1 620包括点600、602和604。解决方案要素K2 622包括点606、608和610。解决方案要素K3 624包括点614和616。解决方案要素K4 626包括点606和612。如图6所示,一个点可以属于若干个解决方案要素:在我们的实例中,点606同时属于解决方案要素K2 622和解决方案要素K4 626。图6还示出了,不是所有的点需要属于任何解决方案要素:在我们的实例中,点618没有放置在任何解决方案要素中(到该阶段为止)。
在一个示例实施例中,解决方案程序114、120、126进一步生成解决方案108,以便在每个处理器110、116、122上独立地生成解决方案108。根据图7,可以具有多个解决方案108:在我们的实例中,在处理器1 110中生成的解决方案700和在处理器2 116中生成的解决方案702。在这些解决方案中,数据处理设备100可以通过使用质量标准来自动地选择一个解决方案700/702。可替换地,用户选择数据处理设备100可支持的解决方案700/702中的一个,以便使数据处理设备100根据至少一个指标将解决方案700、702上的信息呈现给用户。
在图8中的示例实施例中,要素程序112、118、124进一步将点600、602、604、606、608、610、612、614、616、618划分成至少两个处理器专用的子集800、810,并且为每个处理器110、116、122分别生成解决方案要素802、804、812、814,而且解决方案程序114、120、126进一步以这样的方式生成解决方案108,即,通过使用处理器专用的解决方案要素802、804、812、814,在至少两个处理器110、116、122中的每一个上,生成解决方案820、822。然后,数据处理设备100将所生成的解决方案820、822组合成最终的解决方案108。
所描述的其中使用点600-618来生成解决方案要素620、622、624、802、804、812、814(解决方案108、700、702、820、822进一步由这些解决方案要素生成)的方法可以应用于物流中的路径优化。在路径优化中建立的解决方案要素可以是单独的路径和/或其部分。
第二示例实施例涉及规划工作班次。多种可能的应用中的第三示例实施例涉及生产的规划,换句话说,针对各种资源的工作的分布和分配。这可以通过主要使用与用于路径优化的那些原则相同的原则来完成。
下面仔细观察图9A、9B、9C、9D、9E、9F、9G、9H、9I、9J和9K,其示出了生成关于物流中的路径优化的解决方案108的示例实施例。
在图9A中,矩形部分900是一个节点,解决方案要素必须通过该节点连接。就路径优化而言,该节点可以是例如终端、仓库、货栈等等。在我们的实例中,仅仅有一个节点900,但也可以有更多个节点。解决方案要素由点902-940生成,要素程序112、118、124并行运行。
在图9B中,已经生成了第一解决方案要素950,其包括点902、904、906、908、910、912、914、916、918和920。
在图9C中,已经生成了第二解决方案要素952,其包括点922、924、926和928。
在图9D中,已经生成了第三解决方案要素954,其包括点930、932、910和916。
在图9E中,已经生成了第四解决方案要素956,其包括点930、932、916、934和936。
图9F示出了通过要素程序112生成的四个解决方案要素950、952、954和956。
然后,通过并行运行的解决方案程序114、120和126开始解决方案108的生成。
在图9G中,已经选择了第一解决方案要素950。一旦已经选择了第一解决方案要素950,就寻找与其相关的关键点。在我们的实例中,关键点定义为最近的点,即,在相关路径上放置成本可能是最低的点。在该示例实施例中,点928是第一关键点。在此之后,寻找是否在所存储的解决方案要素952、954、956中具有一个包括关键点928的路径,但该路径与先前所选择的解决方案要素(因此,在本实例中是第一解决方案要素950)没有任何一个重叠点。找到这样的解决方案要素,这是第二解决方案要素952。因此,在一个示例实施例中,解决方案程序114、120、126进一步为解决方案108选择具有最佳关键点928并且与已经为解决方案108选择的解决方案要素950不具有重叠的解决方案要素952。
在此之后的图9H中,再次寻找与第一解决方案要素950相关的目前为止未选择的最近的关键点。在本示例实施例中,点930是下一个关键点。在确定关键点930后,再次从所存储的仍未使用的解决方案要素954、956(其包括关键点930和与已经选择的解决方案要素950、952具有尽可能少的重叠点)中寻找路径。现在,找到了包括关键点的两个解决方案要素954、956,但是二者与已经选择的解决方案要素(在这种情况下是解决方案要素950)具有重叠点。
根据图9I,从解决方案要素954、956中选择第四解决方案要素956,因为其具有较少的重叠点,并且其长度成比例(考虑到点的数量和路径的长度)较好。选择标准自然也可以是不同的。
然后,将第一解决方案要素950和第四解决方案要素956的重叠点916从第四解决方案要素956的路径上去除,在此之后,修改后的第四解决方案要素960如图9J中所示。
因此,在一个示例实施例中,解决方案程序114、120、126另外地为解决方案108选择解决方案要素956,该解决方案要素包括关键点930但与已经为解决方案108选择的解决方案要素950、952具有重叠,并且其在已经去除重叠后具有最佳效率值。
最后,努力将点938和940放置在最后生成的路径960上。这一努力成功了,从而结果是根据图9K的情况,其中最终的第四解决方案要素962由点930、932、938、934、940和936组成。原则上,像这样继续寻找,直到已经选择了所有的点为止,或者直到不再能在解决方案要素的库中找到包括关键点的要素为止。
因此,在一个示例实施例中,解决方案程序114、120、126在去除重叠后进一步将此时仍未选择的各个解决方案点放置在已经选择的解决方案108的解决方案要素中,在我们的实例中,将点938、940放置在解决方案要素956上,解决方案要素962最终由其生成。
另外,在一个实施例中可能的是(在图9A-9K中未示出),解决方案程序114、120、126另外地为解决方案108的无法找到解决方案要素的且不能被放置在已选择的解决方案108的解决方案要素中的缺失点生成专用的解决方案要素。
如图9K所示,最终的解决方案108由解决方案要素950、952和962生成。
在图9A-9K的示例实施例中,程序代码104的应用领域包括物流中的路径优化,从而
-解决方案要素950、952、954、956包括各个路径和/或各个路径的部分;
-解决方案108的评估是以下述中的至少一个为基础的:路径的长度、路径的容量利用(capacity use)、路径的总时间、路径的合理分配、路径对时间期限的适用性、路径的兼容性、路径的优先级,但是自然可以使用许多其它标准;
-通过定义未选择路径的点获得关键点928、930,在我们的实例中,这些未选择路径的点是与第一所选的解决方案要素相关的最近的未选择路径的点;
-校正是以各个点的放置和/或改变为基础的;以及
-所组合的解决方案108包括用于预定区域和/或时间段的相容路径集合950、952、962。
在另一个示例实施例中,计算机程序代码104的应用领域包括工作班次的规划,从而
-解决方案要素包括各个工作班次和/或各个工作班次的部分;
-解决方案的评估是以例如未分配的任务的量、超时工作的量、雇员的需求和/或满足雇员的愿望为基础的;
-通过在时间上和地域上定义与已经选择的点相关的最近的点来获得关键点;
-校正是以各个任务的放置和/或改变为基础的;以及
-所组合的解决方案包括针对预定的物理位置和/或时间段的分配给雇员的相容工作班次的集合。
规划工作班次的一个问题是,将这种解决方案要素106上的点分成组,使得解决方案108能够由所述解决方案要素编译而成,无需再次计算组合阶段的成本。如果不同的解决方案要素106具有同一雇员的工作班次,那么在组合阶段核实在工作班次之间有足够的休息时间,并且雇员得到足够的假期和休息日。这有三个不同的途径:1)如果解决方案要素106是工作班次的一部分,那么在组合阶段核实兼容性;2)同样地,如果工作班次一个接一个地安排,那么在组合阶段核实其兼容性;3)解决方案要素106对应于一个雇员在所选时间段内的行为,这在原则上减少了解决方案要素的数量,但另一方面允许在不同的处理器110、116之间分配整体的相同部分,从而其将具有充分的实际用途。
在第三示例实施例中,计算机程序代码104的应用领域包括生产的规划,从而
-解决方案要素包括各个机器的使用规划;
-解决方案的评估是以例如成本、可靠性或机器的利用率为基础的;
-在工作任务的资源或时间要求之间的相似度的基础上获得关键点;
-校正是以不同资源之间的工作任务的时间安排和分配的变化为基础的;以及
-所组合的解决方案包括预定时间段的综合生产规划。
所描述的示例实施例的新颖之处在于,以在组合阶段中进行校正操作(包括去除、添加和替换)的方式,组合解决方案要素106。除了上面之外的新颖之处在于,依靠关键点928、930启发式地进行组合,从而没有必要考察所有可能的组合。由于使用多形式的校正和关键点928、930,解决方案不是显而易见的。另一个新颖性是,并行地进行组合操作。示例实施例解决了最大的问题,更快地优化了具有挑战性的现实生活中的问题,并改进了结果的质量。
虽然集合覆盖作为一种方法允许具有重叠,并且已经公布了各种与讨论中的问题有关的校正算子,但是其中在解决方案要素106的组合中允许具有重叠和缺失点以及它们的校正的综合方法是未知的。然而,这种方法使得能够有效且并行地编译好的解决方案108,无需在存储器102中构建并维护巨大的基址寄存器。
最后,仔细观察图10,其示出了数据处理设备100的示例实施例。
首先,实现解决方案要素的并行构造(parallel construct)1000。解决方案要素106可以存储在表格(table)中的紧凑数据结构1004中,例如,其仅具有从描述解决方案要素的角度来看所需的信息。在存储器102中,可以仅存储所编译的解决方案要素106中的已经评估了最佳效率值1002的有限集合。效率值的定义取决于应用,但是作为通常的规则,其取决于资源的成本和利用率。
在此之后,通过在构造1006中并行地一次向解决方案中添加一个要素,使用中的每个处理器从不同的起始点做出决策1008。在添加的每个阶段,选择解决方案要素106作为考察的基础,其相对于已经在评价1010中选择的要素具有最佳关键点。这避免了考察所有的组合,并且如果不能找到合适的解决方案要素106来添加,则可在初期中断寻找。该方法将包括关键点而不具有直接的重叠的解决方案要素106加入到所选要素的集合中。这是能够做到的,因为考察仅包括好的解决方案要素106(就其效率值来说)。如果所存储的集合中没有合适的解决方案要素106,那么将首先考察包括关键点的解决方案要素106,但同时也考察与已经选择的解决方案要素106重合的解决方案部分。在这些解决方案要素中,选择在已经去除重叠后具有最佳效率值的解决方案要素106。因为在已经去除重叠后在解决方案要素106中会留有空间,所以努力将此时仍未选择的解决方案的各个部分放置在已经选择的解决方案要素106中,以在每个阶段中使功率使用最大化。如果正在使用的数据库1004中没有包括关键点的解决方案要素106,那么努力包括其它解决方案要素106。最后,如果不能为解决方案108的缺失部分找到解决方案要素106并且它们不能放置在已经选择的解决方案要素106中,那么为它们构建其自身的解决方案要素106。执行所使用的校正方法,以便立即看到哪些校正和成本建立了兼容性,而它们自身不进行改变。实际上,这通过在已经评估了校正1012后分别列出所需的变化来实现。最后,返回所需数量的最佳解决方案1016。算法的所有部分可以并行运行,无需等待。所存储的最佳解决方案要素的集合1014可以通过所编译的最佳总解决方案的要素进行扩展。
解决方案要素106的组合可以通过不同的替换方法来进行。例如,待组合的解决方案要素106的选择可以以不同的方式实现,或者在选择前可以评估不同组合的更大集合。待存储的解决方案要素106可以以不同的方式选择,并且它们可以进一步划分成更小的部分。一次可以添加更多个解决方案要素106,并且可以从多个起始点同时进行添加。校正可以是最具多样性和最具变化的。所述方法也可以是自学习的,即,例如首先集中在昂贵的组合上。可替换地,可以在每个阶段确定最佳解决方案要素106,以便不是组合第一适合的解决方案要素,同时,如果需要,通过向前看类型的策略来预期所做的选择的效果。作为编译解决方案108的一部分,还可以执行改进决策的命令,例如,通过适合于该目的的改进启发式算法。还可以更换解决方案的所选的和未选的解决方案要素106以推动寻找。
对于本领域的技术人员来说显而易见的是,随着技术的进步,本发明的基本理念可以以多种不同的方式实施。因此,本发明及其实施例不限于上面所描述的实例,而是可以在权利要求的范围内进行改变。除了上面描述的示例实施例,同样的方法很有可能应用于至少两种离散优化,且变化很少。
Claims (8)
1.一种数据处理设备(100),用于物流中的路径优化,所述数据处理设备(100)包括存储器(102)和至少两个处理器(110、116),所述存储器包括计算机程序代码(104),所述至少两个处理器配置为执行所述计算机程序代码(104),所述计算机程序代码(104)包括:
要素程序(112、118),所述要素程序配置为在所述至少两个处理器(110、116)上并行运行以形成由点(902-940)编译并通过节点(900)连接的单独的路径(106;950、952、954、956),并将所形成的单独的路径(106;950、952、954、956)存储在所述存储器中;
其特征在于:
解决方案程序(114、120),所述解决方案程序配置为在所述至少两个处理器(110、116)上并行运行,以通过基于关键点(928、930)向相容路径集合(108)中按顺序一次添加一个从所述存储器上读取的单独的路径(106;950、952、954、956)来生成用于预定区域和/或时间段的相容路径集合(108),使得依靠所述关键点(928、930)启发式地进行包括去除、添加和替换的校正操作,从而无需检查所有可能的组合,并将向所述相容路径集合(108)中添加的单独的路径(106;950、952、954、956)存储在所述存储器(102)中,其中所述至少两个处理器(110、116)中的每个处理器被分配不同的单独的路径作为生成所述相容路径集合(108)的起始点,并且其中所述解决方案程序(114、120)通过以下来执行所述添加:
所述解决方案程序(114、120)选择具有最佳关键点(928)的且与已经为所述相容路径集合(108)选择的单独的路径(950)不具有重叠的单独的路径(952),其中所述最佳关键点(928)是在已经选择的单独的路径(950)中放置成本最低的点;并且
所述解决方案程序(114、120)选择包括关键点(930)的、但与已经为所述相容路径集合(108)选择的单独的路径(950、952)具有重叠的且在已经去除所述重叠后具有最佳效率值的单独的路径(956)。
2.根据权利要求1所述的数据处理设备,其中,所述解决方案程序(114、120)生成所述相容路径集合(108),以便在所述至少两个处理器(110、116)中的每个处理器上独立地生成所述相容路径集合(108)。
3.根据权利要求1所述的数据处理设备,其中,所述要素程序(112、118)将点(902-940)划分成至少两个处理器专用子集(800、810),并且为每个处理器(110、116)分别生成其解决方案要素(802、804、812、814),而且所述解决方案程序(114、120)生成所述相容路径集合(108),其方式是,通过使用处理器专用的单独的路径(802、804、812、814)在所述至少两个处理器(110、116)中的每一个处理器上以处理器专用方式生成所述相容路径集合。
4.根据前述权利要求中任一项所述的数据处理设备,其中,所述解决方案程序(114、120)另外地在去除重叠后将此时仍未选择的各个点(938、940)放置在所述相容路径集合(108)的已经选择的单独的路径(956)中。
5.根据权利要求4所述的数据处理设备,其中,所述解决方案程序(114、120)最终另外地为所述相容路径集合(108)的不能找到单独的路径且不能被放置在所述相容路径集合(108)的已经选择的单独的路径(950、952、956)中的缺失点生成专用路径。
6.根据权利要求1所述的数据处理设备,其中,
所述相容路径集合(108)的评估是以下述中的至少一项为基础的:路径的长度、路径的容量利用、路径的总时间、路径的合理分配、路径对时间期限的适用性、路径的兼容性、路径的优先级;并且
通过确定未选择路径的点获得关键点(928、930)。
7.根据权利要求1所述的数据处理设备,其中,所述至少两个处理器(110、116)中的第一处理器包括微处理器、处理器内核或图形处理器,且所述至少两个处理器(110、116)中的第二处理器包括微处理器、处理器内核或图形处理器。
8.一种计算机可读分布介质,包括能由至少两个处理器(110、116)执行的计算机程序代码(132),所述计算机程序代码(132)包括:
要素程序(112、118),所述要素程序配置为在所述至少两个处理器(110、116)上并行运行以形成由点(902-940)编译并通过节点(900)连接的单独的路径(106;950、952、954、956),并将所形成的单独的路径(106;950、952、954、956)存储在存储器中;
其特征在于:
解决方案程序(114、120),所述解决方案程序配置为在所述至少两个处理器(110、116)上并行运行,以通过基于关键点(928、930)向相容路径集合(108)中按顺序一次添加一个从所述存储器上读取的单独的路径(106;950、952、954、956)来生成用于预定区域和/或时间段的相容路径集合(108),使得依靠所述关键点(928、930)启发式地进行包括去除、添加和替换的校正操作,从而无需检查所有可能的组合,并将向所述相容路径集合(108)中添加的单独的路径(106;950、952、954、956)存储在所述存储器(102)中,其中所述至少两个处理器(110、116)中的每个处理器被分配不同的单独的路径作为生成所述相容路径集合(108)的起始点,并且其中所述解决方案程序(114、120)通过以下来执行所述添加:
所述解决方案程序(114、120)选择具有最佳关键点(928)的且与已经为所述相容路径集合(108)选择的单独的路径(950)不具有重叠的单独的路径(952),其中所述最佳关键点(928)是在已经选择的单独的路径(950)中放置成本最低的点;并且
所述解决方案程序(114、120)选择包括关键点(930)的、但与已经为所述相容路径集合(108)选择的单独的路径(950、952)具有重叠的且在已经去除所述重叠后具有最佳效率值的单独的路径(956)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FI20135946 | 2013-09-23 | ||
FI20135946A FI20135946L (fi) | 2013-09-23 | 2013-09-23 | Rinnakkainen ratkaisun muodostaminen |
PCT/FI2014/050723 WO2015040282A1 (en) | 2013-09-23 | 2014-09-22 | Parallel solution generation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105579966A CN105579966A (zh) | 2016-05-11 |
CN105579966B true CN105579966B (zh) | 2019-11-26 |
Family
ID=51951821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480052325.2A Active CN105579966B (zh) | 2013-09-23 | 2014-09-22 | 数据处理设备和计算机可读分布介质 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11694129B2 (zh) |
EP (1) | EP3049926A1 (zh) |
CN (1) | CN105579966B (zh) |
CA (1) | CA2962139A1 (zh) |
FI (1) | FI20135946L (zh) |
WO (1) | WO2015040282A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2016265691A1 (en) | 2015-05-15 | 2017-12-21 | Cox Automotive, Inc. | Parallel processing for solution space partitions |
EP3298555A1 (en) * | 2015-05-19 | 2018-03-28 | Fleetmatics Ireland Limited | System and method for accelerating route search |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101542460A (zh) * | 2006-11-20 | 2009-09-23 | 微软公司 | 并行化的约束满足问题解算机中的无锁状态合并 |
EP2593887A1 (en) * | 2010-07-13 | 2013-05-22 | Algotochip Corporation | Automatic optimal integrated circuit generator from algorithms and specification |
CN103295062A (zh) * | 2012-01-04 | 2013-09-11 | 国际商业机器公司 | 并行进化计算中跨子群体使用全局和局部突变的方法系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7363126B1 (en) * | 2002-08-22 | 2008-04-22 | United Parcel Service Of America | Core area territory planning for optimizing driver familiarity and route flexibility |
US7239962B2 (en) * | 2003-02-21 | 2007-07-03 | Sony Corporation | Method and apparatus for a routing agent |
US20080079737A1 (en) * | 2003-11-19 | 2008-04-03 | Reuven Bakalash | Multi-mode parallel graphics rendering and display system supporting real-time detection of mode control commands (MCCS) programmed within pre-profiled scenes of the graphics-based application |
US7598953B2 (en) * | 2004-11-05 | 2009-10-06 | Microsoft Corporation | Interpreter for simplified programming of graphics processor units in general purpose programming languages |
US20060224423A1 (en) * | 2005-04-01 | 2006-10-05 | Oracle International Corporation | Transportation planning with parallel optimization |
US8103532B2 (en) * | 2008-10-23 | 2012-01-24 | Raytheon Company | Method and system for fast local search and insertion heuristics for vehicle routing |
JP4959774B2 (ja) * | 2009-11-30 | 2012-06-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アプリケーション生成システム、方法及びプログラム |
US8364717B2 (en) | 2011-01-10 | 2013-01-29 | Microsoft Corporation | Hardware accelerated shortest path computation |
WO2013052970A1 (en) * | 2011-10-07 | 2013-04-11 | Telogis, Inc. | Vehicle fleet routing system |
US20140229101A1 (en) * | 2013-02-08 | 2014-08-14 | Audi Ag | System, components and methodologies for navigation route planning |
-
2013
- 2013-09-23 FI FI20135946A patent/FI20135946L/fi not_active Application Discontinuation
-
2014
- 2014-09-22 EP EP14802698.2A patent/EP3049926A1/en active Pending
- 2014-09-22 WO PCT/FI2014/050723 patent/WO2015040282A1/en active Application Filing
- 2014-09-22 US US14/917,542 patent/US11694129B2/en active Active
- 2014-09-22 CA CA2962139A patent/CA2962139A1/en active Pending
- 2014-09-22 CN CN201480052325.2A patent/CN105579966B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101542460A (zh) * | 2006-11-20 | 2009-09-23 | 微软公司 | 并行化的约束满足问题解算机中的无锁状态合并 |
EP2593887A1 (en) * | 2010-07-13 | 2013-05-22 | Algotochip Corporation | Automatic optimal integrated circuit generator from algorithms and specification |
CN103295062A (zh) * | 2012-01-04 | 2013-09-11 | 国际商业机器公司 | 并行进化计算中跨子群体使用全局和局部突变的方法系统 |
Non-Patent Citations (3)
Title |
---|
《Parallel Meta-heuristics》;TG Crainic , M Toulouse;《《IEEE Distributed Systems Online》》;19971231;全文 * |
C Groër , B Golden , E Wasil.《A Parallel Algorithm for the Vehicle Routing Problem》.《Informs Journal on Computing》.2011, * |
Y Nagata , O Bräysy.《A powerful route minimization heuristic for the vehicle routing problem with time windows》.《Operations Research Letters》.2009, * |
Also Published As
Publication number | Publication date |
---|---|
US11694129B2 (en) | 2023-07-04 |
CN105579966A (zh) | 2016-05-11 |
CA2962139A1 (en) | 2015-03-26 |
US20160217402A1 (en) | 2016-07-28 |
FI20135946L (fi) | 2015-03-24 |
WO2015040282A1 (en) | 2015-03-26 |
EP3049926A1 (en) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102929786B (zh) | 非易失性存储设备集合的易失性存储器表示 | |
JP5950285B2 (ja) | 予め決められた複数のビット幅のデータに対して操作を行う命令を使用してツリーの検索を行うための方法、並びに、当該命令を使用してツリーの検索を行うためのコンピュータ及びそのコンピュータ・プログラム | |
CN108664330B (zh) | 一种基于变邻域搜索策略的云资源分配方法 | |
CN109522428B (zh) | 一种基于索引定位的图计算系统的外存访问方法 | |
Vasiljevic et al. | Handling ties in heuristics for the permutation flow shop scheduling problem | |
US9888065B2 (en) | Defragmenting clusters with reserved resources | |
Koulinas et al. | Construction resource allocation and leveling using a threshold accepting–based hyperheuristic algorithm | |
CN109886693B (zh) | 区块链系统的共识实现方法、装置、设备和介质 | |
US20090106730A1 (en) | Predictive cost based scheduling in a distributed software build | |
CN105991478A (zh) | 服务器资源分配方法及其系统 | |
CN109800058A (zh) | 一种虚拟机自动迁移方法 | |
KR20200062299A (ko) | 블록체인 트랜잭션들을 선택하기 위한 트랜잭션 선택 디바이스 | |
CN108241531A (zh) | 一种在集群中为虚拟机分配资源的方法和装置 | |
CN105579966B (zh) | 数据处理设备和计算机可读分布介质 | |
CN112884248B (zh) | 一种大规模云服务流程的优化方法 | |
CN114386349A (zh) | 系统级数字电路的布线方法及装置、设备、存储介质 | |
CN109544329B (zh) | 撮合匹配方法、装置和系统 | |
CN114691630B (zh) | 一种智慧供应链大数据共享方法及系统 | |
Yelmewad et al. | Parallel iterative hill climbing algorithm to solve TSP on GPU | |
CN105721527A (zh) | 一种数据处理方法以及服务器 | |
CN110992443B (zh) | 一种业务流程图构建方法、装置和计算机可读存储介质 | |
CN104932982B (zh) | 一种消息访存的编译方法及相关装置 | |
CN113656046A (zh) | 一种应用部署方法和装置 | |
CN109300032A (zh) | 区块生成方法、装置、设备及计算机可读存储介质 | |
CN109753389A (zh) | 保证数据一致性的方法、装置、存储介质及服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |