并行解决方案生成的制作方法

文档序号:9816367阅读:415来源:国知局
并行解决方案生成的制作方法
【技术领域】
[0001 ]本发明涉及用于生成并行解决方案的数据处理设备和计算机程序代码。
【背景技术】
[0002 ]大规模并行计算已经兴起,成为提高优化法(opt imi zat i on)的能力和速度的核心因素。就这一点而言,CPU和GPU(中央处理器/图形处理单元)两种技术的使用发挥了重要作用。面临的挑战是,目前的优化方法不适宜大规模并行计算,特别是在非确定性多项式时间困难(NP-hard)离散优化问题的情况下。此外,由于复杂的改进启发式算法(improvementheuristics),现实实际问题的优化是具有挑战性的,并且维护这些方法很费事。
[0003]基于上文所述的,以划分(如,集合覆盖和集合划分)为基础的各种方法是合理的选择。在这些方法中,当例如优化路径时,首先形成路径或其部分的集合,然后将所形成的路径精确地或启发式地组合成解决方案。
[0004]存在一些关于使用GPU来优化的研究。GPU已经用于在不同的处理器之间分配待执行的工作的部分。实际上,在GHJ的帮助下已经完成了迀移(moves)的评估。评估常常需要相对于参考点来进行,即,每当发现改进迀移时,必须中断评估,更新参考点,并从头开始。因为更新是一项费力的操作,所以大部分时间GPU是处于等待状态中的。因此,所获得的速度优势是微不足道的。已经做过一些尝试使评估成比例地更加复杂和/或使更新操作成比例地更加容易,从而处理器的等待时间会更短,但是据此来说,时间浪费在了低效率的计算上。
[0005]集合覆盖方法的根本问题是,如果独立地/并行地建立路径,那么生成足够路径的挑战性是不可估量的,其中这些路径是兼容的且同时是时间有效且不同的。这样的结果是,为了编译一个好的解决方案,所建立的各个路径的数量需要非常高,而这成为了一个挑战,尽管计算能力提尚。

【发明内容】

[0006]本发明的目的是提供一种改进的数据处理设备和一种改进的计算机程序代码。
[0007]本发明的一个方面以根据权利要求1的数据处理设备的形式公开。
[0008]本发明的第二个方面以根据权利要求10的计算机程序代码的形式公开。
[0009]本发明的优点至少包括对大规模并行计算和多种模式的很好的支持及其通用性和可行性。因为是按顺序进行组合的(一次一个要素),所以立刻明白了,最好的选择是什么,或者所选择的组合路径是否值得继续。
【附图说明】
[0010]下面,参考所附的附图,通过举例方式描述本发明的实施例,附图中:
[0011 ]图1、2、3、4和5示出了数据处理设备的示例性实施例;
[0012]图6、7和8示出了解决方案要素和解决方案的示例性实施例;
[0013]图9A、9B、9C、9D、9E、9F、9G、9H、91、9J和9K示出了生成解决方案的示例性实施例;并且
[0014]图10示出了数据处理设备的示例性实施例。
【具体实施方式】
[0015]下面将披露的实施例仅仅是实例。本发明不限于所披露的实施例,而这些实施例是可行的实施方式的实例。各实施例的特征也可以结合,除非这些特征对于它们的技术实现来说是特别冲突或选择性的。词语“包括”的意思是所披露的实施例包括所引用的特征,但也可以有没有提到的其它特征。应该注意的是,附图示出了简化的框图,其中仅仅描述了从实施例角度来看的必要特征。本领域的技术人员将理解,数据处理设备可以包括许多其它特征和结构也是很明显的。然而,这种其它部件可能与实际的发明不相干,因此在此没有必要更详细地描述这些部件。另外,应该注意的是,虽然元件被描述为是分离的,但是一些元件可被集成到一个物理元件,即,所描述的元件可以是逻辑元件。
[0016]图1示出了数据处理设备100,其包括存储器102和至少两个处理器110、116,该存储器包括计算机程序代码104,并且该至少两个处理器配置为执行该计算机程序代码104。
[0017]计算机程序代码104包括在至少两个处理器110、116上运行的要素程序112、118,以形成由点并行编译的解决方案要素106,并将所形成的解决方案要素106存储在存储器102中。在一个示例性实施例中,解决方案要素106本身不分布在不同处理器110、116中,而是每个处理器110、116有权访问所有所存储的要素106。如果由于重叠而使存储器102的检索次数变得太高,所需数量的副本可以由解决方案要素106组成。因为存储器的要求小,所以这能够实现。要素库106的标识符可以分布在不同处理器110、116中。可以根据预定的规则形成解决方案要素106:如果解决方案要素是例如配送路径,那么能够确定例如路径的最大长度和最大时间或者点的最大数量,以便不超过集体劳动合同所允许的驾驶时间。
[0018]另外,计算机程序代码104包括在至少两个处理器110、116上并行运行的解决方案程序114、120,以通过基于关键点向解决方案108中一次添加一个从存储器102中读取的解决方案要素106来生成解决方案108,并将向解决方案108中添加的解决方案要素106存储在存储器102中。在关键点的帮助下,可以定义相互靠近的解决方案要素106。在一个示例性实施例中,选择关键点,该关键点相对于已经为解决方案108选择的解决方案要素106已经具有最低放置成本(placing cost)。在一个示例性实施例中,选择属于第一合适的解决方案要素106的关键点。在一个示例性实施例中,选择属于待组合的最佳解决方案要素106的关键点。在一个示例性实施例中,可以潜在地使用向前看类型的策略来预期所做选择的效果,并基于此来总结最佳解决方案是什么:因此,可以以与例如下棋时考虑某一走法对于未来走法的影响的方式相同的方式来检验各种潜在的选择链。在一个示例性实施例中,选择解决方案要素106,其包括根据某个选择标准确定的最佳关键点。
[0019]在一个示例性实施例中,每个处理器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的独立部分,从而并行更新没有任何问题。
[0020]如果处理器110、116形成解决方案108的独立部分,可以这样的方式促进解决方案108的组合,S卩,事先将点划分成单独的子集,换句话说,它们不重叠。在这种情况下,组合主要是报告技术问题。因此,以除雪为例,例如,某个城镇已经划分成了三个合同区域,那么每个合同区域是一个独立的部分,而与其它区域没有共同之处。这样,城镇的除雪仅仅由这三个已经分别优化的合同区域组成。
[0021]如果每个处理器110、116形成其自身的完美的解决方案108,很明显地是,与只生成一个解决方案108的情况相比,将会消耗更多的资源,但是另一方面,解决这种很难的优化问题就是摸索着前进,无论如何,其中大量的工作都“白白浪费了”
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1