一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

优化装置和优化方法与流程

2022-06-05 19:46:22 来源:中国专利 TAG:


1.本文讨论的实施方式涉及优化装置和优化方法。


背景技术:

2.作为计算诺依曼型计算机不易处理的大规模组合优化问题的优化装置,存在使用伊辛型评估函数(也称为能量函数等)的伊辛装置(也称为玻尔兹曼机)。
3.在通过伊辛装置进行的计算中,使用伊辛模型来替换计算目标的问题,该伊辛模型是表示磁体的自旋行为的模型。通过马尔可夫链蒙特卡罗方法例如模拟退火方法或副本交换方法(也称为交换蒙特卡罗方法)来搜索使伊辛模型类型评估函数的值(对应于伊辛模型的能量)最小化的状态。该状态由包括在评估函数中的多个状态变量的值来表示。
4.存在相关技术的优化装置,其通过使用数字电路执行马尔可夫链蒙特卡罗方法来搜索使能量最小化的状态。相关技术的优化装置通过一次改变仅单个状态变量的值来计算能量变化量,并且根据通过将与温度对应的噪声值与变化量相加而获得的值来确定是否允许状态变量的变化。还以预定的概率允许能量随其增加的状态变量的值的变化,并且该概率随着温度的降低而降低。
5.存在具有下述约束(1热约束)的优化问题,在该约束中,包括在评估函数中的状态变量组中的具有值1的状态变量的数量为仅一个。作为1热约束,存在其中在一组约束表达式中每个状态变量仅出现一次的约束,以及其中当n2个状态变量以n行和n列的矩阵形式布置时包括在单行和单列中的状态变量的值之和为1的约束。在下文中,前一个1热约束称为1向1热约束(1-way 1-hot constraint),以及后一个1热约束称为2向1热约束(2-way 1-hot constraint)。例如,流量优化问题、装箱问题等具有1向1热约束。例如,旅行商问题、车辆调度计划问题、二次分配问题等具有2向1热约束。
6.在相关技术中,已经提出了通过使用遗传算法或量子计算来计算车辆调度计划问题的技术。
7.日本公开特许公报第2003-285930号和第2003-114132号被公开作为相关技术。


技术实现要素:

8.[技术问题]
[0009]
一些组合优化问题包括许多约束条件,并且这样的组合优化问题的评估函数包括与各个约束条件对应的约束项。由于包括许多约束项的评估函数具有包括许多局部最大值和局部最小值的复杂潜在形状,因此存在向最优解的收敛性降低的问题。
[0010]
在一个方面,本公开内容的目的是提供可以提高向最优解的收敛性的优化装置和优化方法。
[0011]
[问题的解决方案]
[0012]
根据实施方式的方面,一种优化装置包括:搜索单元,其基于当在表示伊辛模型的能量的评估函数中包括的多个状态变量之一的值变化时的能量的变化量来搜索使能量最
小化的最优解;以及转换允许范围确定单元,其基于在多个状态变量中包括的多个状态变量组中的第一状态变量组中具有第一值的第一状态变量的第一标识号来确定在多个状态变量组中的第二状态变量组中被允许从第二值变化的第二状态变量的第二标识号的上限或下限,并且在多个状态变量组的每个状态变量组中,状态变量中的一个状态变量具有第一值并且其他状态变量具有第二值。
[0013]
[发明的有利效果]
[0014]
在一个方面,本公开内容可以提高向最优解的收敛性。
附图说明
[0015]
图1示出了根据第一实施方式的优化装置的示例;
[0016]
图2示出了转换结果的示例;
[0017]
图3示出了满足约束条件和不满足约束条件的情况的示例;
[0018]
图4示出了允许值变化的范围的确定的另一示例;
[0019]
图5示出了根据第二实施方式的优化装置的示例;
[0020]
图6示出了转换允许范围确定单元的示例;
[0021]
图7示出了边界值的计算的示例;
[0022]
图8示出了转换允许-禁止信号输出单元和存储单元的示例;
[0023]
图9示出了转换允许-禁止位生成电路的示例;
[0024]
图10示出了δe计算单元的示例;
[0025]
图11示出了d
t
和r
i,t
的存储示例;
[0026]
图12示出了情况1的示例;
[0027]
图13示出了在情况1的状态转换之前和之后的r
i,t
的存储示例;
[0028]
图14示出了情况2的示例;
[0029]
图15示出了情况3的示例;
[0030]
图16示出了在情况3的状态转换之前和之后的r
i,t
的存储示例;
[0031]
图17示出了δe计算单元的另一示例;以及
[0032]
图18是示出优化装置的整体操作流程的示例的流程图。
具体实施方式
[0033]
在下文中,参照附图描述本公开内容的实施方式。
[0034]
(第一实施方式)
[0035]
图1示出了根据第一实施方式的优化装置的示例。
[0036]
优化装置10搜索使对组合优化问题进行建模的伊辛模型的能量最小化的最优解。
[0037]
伊辛模型的能量由例如由以下表达式(1)表示的评估函数(e(x))定义。
[0038][0039]
右侧的第一项针对可从包括在评估函数中的所有状态变量中选择的两个状态变量的所有组合在没有遗漏和重叠的情况下将两个状态变量值和权重系数的乘积相加,其
中,xi是第i个状态变量,xj是第j个状态变量,以及w
ij
是指示第i个状态变量与第j个状态变量之间的权重(例如,耦合的强度)的权重系数。w
ii
=0。通常满足关系w
ij
=w
ji
(例如,权重系数的系数矩阵通常是对称矩阵)。
[0040]
右侧的第二项是所有状态变量的偏置系数与状态变量的值的乘积之和,其中,bi表示第i个状态变量的偏置系数,以及c是常数。
[0041]
例如,伊辛模型中自旋的
“‑
1”对应于状态变量的值“0”,以及伊辛模型中自旋的“ 1”对应于状态变量的值“1”。因此,状态变量可以称为具有值0或1的“位”。
[0042]
使表达式(1)的值最小化的状态变量的值的组合是问题的解(最优解)。
[0043]
优化装置10包括搜索单元11和转换允许范围确定单元12。
[0044]
搜索单元11执行确定处理,该确定处理基于当包括在如上所述的评估函数中的多个状态变量中的任何状态变量的值变化时的能量的变化量来确定该值是否可以变化。基于确定处理的结果,搜索单元11执行改变多个状态变量中的任何状态变量的值的处理(更新处理)。搜索单元11通过重复这些处理来搜索使能量最小化的最优解。
[0045]
在以下示例中,搜索单元11在满足1热约束(以下示例中为1向1热约束)的同时执行更新处理。搜索单元11可以在满足2向1热约束的同时执行更新处理。
[0046]
例如,搜索单元11基于通过使用包括在表达式(1)中的权重系数组计算的能量变化量来确定是否更新要满足1热约束的状态变量组(下文称为组)的状态变量中的任意两个状态变量的值。为了满足1热约束,在包括在组中的状态变量中具有值1的状态变量被更新为0的情况下,仅一个具有值0的状态变量被更新为1。
[0047]
在表达式(1)中,当xi的值变为1-xi时,xi的增量被表示为δxi=(1-xi)-xi=1-2xi。由该值的变化引起的能量变化量(δei)由下面的表达式(2)表示。
[0048][0049]
在表达式(2)中,当xi从1变为0时,δxi变为-1,以及当xi从0变为1时,δxi变为1。在表达式(2)中,hi被称为局部字段,以及hi与根据δxi的符号( 1或-1)的乘积是δei。
[0050]
当xj从0变为1时,hi的变化为δh
i(j)
= w
ij
,以及当xj从1变为0时,hi的变化为δh
i(j)
=-w
ij
。类似地,当xi变化时,针对xj的hj的变化可以表示为δh
j(i)
=δxiw
ij

[0051]
因此,当xi和xj都变化时的能量变化量(e
ij
)可以由下面的表达式(3)表示。
[0052][0053]
如上所述,为了从满足1热约束的某个状态转换到满足该约束的另一状态,改变两个状态变量的值。当在xi从1变为0并且xj从0变为1的情况下的能量变化量被表示为δej时,由于δxi=-1并且δxj=1,因此δej可以根据表达式(3)由下面的表达式(4)表示。
[0054]
δej=h
i-hj w
ij
ꢀꢀꢀꢀ
(4)
[0055]
由于当表达式(1)中xi或xj为0时,w
ij
xixj对能量没有贡献,因此不必提供表达式(4)中的w
ij

[0056]
搜索单元11针对要满足1热约束的每个组的状态变量中具有值0的每个状态变量
来如上所述计算能量变化量。基于δej,搜索单元11通过使用模拟退火方法、副本交换方法等来确定是否允许引起能量变化量的状态变量的变化。搜索单元11优选地接受使表达式(1)中的e(x)减少的状态变量的变化,并且随机地允许使e(x)增加的变化。然而,在δej是非常大的正值的情况下,允许该变化的概率非常小。
[0057]
当确定某个组中的其值将从0更新为1的状态变量时,搜索单元11将状态变量的值从0更新为1,并且将该组中的其当前值为1的状态变量的值从1更新为0。
[0058]
搜索单元11包括保存所有状态变量(x1至xn)的当前值的存储单元11a。
[0059]
搜索单元11例如通过电子电路诸如专用集成电路(asic)或现场可编程门阵列(fpga)实现。存储单元11a例如是电子电路诸如静态随机存取存储器(sram)或寄存器。搜索单元11可以通过由处理器诸如中央处理单元(cpu)或图形处理单元(gpu)执行程序而产生的软件处理来实现。
[0060]
转换允许范围确定单元12针对包括在x1至xn中的多个组确定其中允许值变化的范围,并且在多个组的每个组中,单个状态变量具有第一值以及其余状态变量具有第二值。在下面的示例中,在以下假设下给出描述:转换允许范围确定单元12针对要满足如上所述的1向1热约束的多个组确定其中允许值变化的范围。例如,虽然假设第一值是1并且第二值是0,但是这些不是限制性的,并且第一值可以是0并且第二值可以是1。
[0061]
在多个组中,基于在某个组中具有值1的状态变量的标识号,转换允许范围确定单元12确定在另一组中其值被允许从0变化为1的状态变量的标识号的上限或下限。
[0062]
以这种方式,可以在不添加约束项的情况下满足某个约束条件,这将在后面描述。
[0063]
转换允许范围确定单元12例如通过电子电路诸如asic或fpga来实现。转换允许范围确定单元12可以通过由处理器诸如cpu或gpu执行程序而产生的软件处理来实现。
[0064]
在下文中,通过使用多个节点的路径问题例如容量受限的车辆路径问题(cvrp)作为示例给出描述。在这样的问题中,例如,使用通过0、1表示某个运输车辆在某个时间处是否存在于某个节点处的状态变量。然而,当节点的数量或运输车辆的数量增加时,状态变量的数量增加。
[0065]
cvrp是用于当在称为车厂(出发点)的特定设施处等待的运输车辆将需求递送到(或收集在)客户位置(以下称为节点)并再次返回车厂时基于各种输入变量获得使总移动距离等最小化的访问客户的顺序(路径)的问题。
[0066]
存在以下约束条件a至g作为cvrp的约束条件。
[0067]
(约束条件a)对于所有路径,路径上除车厂外的节点的需求总值在单个运输车辆(以下简称卡车)的最大运载能力范围内。
[0068]
(约束条件b)在任何时候,卡车在相同的时间处仅通过(访问)单个路径上的单个位置(一个节点)。
[0069]
(约束条件c)卡车通过除车厂外的所有节点仅一次。
[0070]
(约束条件d)当卡车在某个时间(》0)处通过某个路径上除车厂外的某个节点时,该卡车在紧之前的时间处通过该路径上的任何节点。
[0071]
(约束条件e)在卡车在某个时间(《m(行驶通过所有节点的时间))处通过某个路径上除车厂外的某个节点后,卡车在紧随后的时间处通过该路径上的任何节点。
[0072]
(约束条件f)在所有路径上,卡车在同一路径上通过车厂两次。
[0073]
(约束条件g)对于所有路径,卡车在开始时间和结束时间处不通过除车厂外的点。
[0074]
根据第一实施方式的优化装置10使用例如如图1所示的状态变量。其中描述“1”的单元指示具有值1的状态变量,以及其中未描述值的单元指示具有值0的状态变量。图1示出了在计算具有4辆卡车和13个节点的cvrp的情况下的状态变量的示例。尽管可以提供多个车厂,但在下文中假设存在单个车厂。
[0075]
在横轴上,1至13表示节点编号,以及d0至d4表示车厂。纵轴表示时间t。尽管存在如上所述的单个车厂,但是使用d0至d4以便允许四个卡车的从车厂的出发时间和到车厂的返回时间彼此区分。例如,第一辆卡车离开的车厂由d0表示,第一辆卡车返回的车厂以及第二辆卡车离开的车厂由d1指示,并且第二辆卡车返回的车厂以及第三辆卡车离开的车厂由d2指示。第三辆卡车返回的车厂以及第四辆卡车离开的车厂由d3指示,并且第四辆卡车返回的车厂由d4指示。
[0076]
因此,状态变量的数量为18
×
18是足够的。然而,当假设第一辆卡车在时间t=0处离开车厂并且第四辆卡车在最后的时间t=17处返回车厂时,不必提供行t=0、17和列“d0、d4”的状态变量。因此,指示四辆卡车中的任何卡车在时间t处是否出现在13个节点或车厂中的任何一个处的状态变量的数量可以是在图1的边框15内的16
×
16=256个。
[0077]
例如,包括在评估函数中的状态变量的数量可以是(除车厂外的节点的数量 卡车的数量-1)的平方。
[0078]
为了满足约束条件b、c和f,16
×
16个状态变量具有其中包括在单行和单列中的状态变量的值之和为1的2向1热约束。
[0079]
因此,列d1至d3中的每一列的状态变量的组是满足1向1热约束的组。边框15内的列d1至d3的每一列中的状态变量的组可以用于计算四辆卡车在每条路径上的运载能力的总和(节点的需求的总值)。
[0080]
在下文中,边框15内的列d1至d3的状态变量的组分别被称为组gd1、gd2和gd3。在边框15内,表示在时间t处在具有节点编号n的节点处是否存在卡车的状态变量(x1至x
208
)被表示为x
t,n
。此外,组gd1中的16个状态变量(x
209
至x
224
)被表示为y
d1,1
至y
d1,16
,组gd2中的16个状态变量(x
225
至x
240
)被表示为y
d2,1
至y
d2,16
,以及组gd3中的16个状态变量(x
241
至x
256
)被表示为y
d3,1
至y
d3,16

[0081]
为了计算在每条路径上四辆卡车的运载能力之和,由例如搜索单元11基于下面的表达式(5)来转换如上表示的组gd1至gd3的状态变量。
[0082][0083]
在表达式(5)中,k=1、2、3,i=1、2、3、
……
、16。
[0084]
图2示出了转换结果的示例。
[0085]
在图2所示的示例中,y
d1,5
、y
d2,8
、y
d3,14
是1。因此,利用表达式(5),转换后的值如下:z
d1,1
至z
d1,5
、z
d2,1
至z
d2,8
、z
d3,1
至z
d3,14
是1;并且其他为0。
[0086]
在路径(d
tot1
至d
tot4
)中的每条路径上的四辆卡车的运载能力之和能够通过使用上述转换后的值由例如下面的表达式(6)来计算。
[0087][0088]
在表达式(6)中,d
t
是在时间t处的需求之和并且由下面的表达式(7)表示。
[0089][0090]
在表达式(7)中,dn是具有节点编号n的节点的需求。车厂处的需求为0。
[0091]
为了实现如上所述的d
tot1
至d
tot4
的公式,约束条件是:其中组gd1至gd3的状态变量的值变为1的顺序是组“gd1、gd2、gd3”的顺序。例如,期望在第二卡车访问之前的时间处访问多个节点中的任何节点的第一卡车在第二卡车返回之前的时间处返回车厂。此外,期望在第三卡车访问之前的时间处访问多个节点中的任何节点的第二卡车在第三卡车返回之前的时间处返回车厂。当不满足该约束条件时,应用约束条件违反(约束条件违反1)。
[0092]
在下面的示例中,组gd2的状态变量在紧接在组gd1的状态变量变为1的时间之后的时间处变为1的情况以及组gd3的状态变量在紧接在组gd2的状态变量变为1的时间之后的时间处变为1的情况也被设置为约束条件违反(约束条件违反2)。例如,期望第二辆卡车不要在紧接在第一辆卡车返回车厂的时间之后的时间处返回车厂。此外,期望第三辆卡车不要在紧接在第二辆卡车返回车厂的时间之后的时间处返回车厂。
[0093]
此外,组gd1至gd3的状态变量在紧接在卡车第一次离开车厂的时间之后的时间处变为1的情况以及组gd1至gd3的状态变量在卡车最终到达车厂的时间紧之前的时间处变为1的情况也被设置为约束条件违反(约束条件违反3)。约束条件违反2和3意指4辆卡车中的一辆不访问任何节点的情况。然而,约束条件违反不一定根据问题设置来设置。
[0094]
图3示出了满足约束条件和不满足约束条件的情况的示例。
[0095]
在图3中,上述约束条件违反均不被应用于指示为“ok”的示例。约束条件违反1被应用于指示为“ng1”和“ng2”的示例。约束条件违反2被应用于指示为“ng3”的示例,以及约束条件违反3被应用于指示为“ng4”的示例。
[0096]
在将约束项添加到评估函数以抑制如上所述的约束条件违反的情况下,约束项的数量增加,并且存在降低向最优解的收敛性的可能性。
[0097]
在组gd1至gd3中,基于在某个组中具有值1的状态变量的标识号,转换允许范围确定单元12确定在另一组中其值被允许从0变化为1的状态变量的标识号的上限或下限。
[0098]
转换允许范围确定单元12包括存储单元12a。存储单元12a存储用于标识组gd1、
gd2、gd3的状态变量的标识号。存储单元12a还存储用于标识在组“gd1、gd2、gd3”中具有值1的状态变量(热位)hd1、hd2、hd3的标识号。存储单元12a例如是电子电路诸如sram或寄存器。
[0099]
在图1所示的示例中,作为x
209
至x
224
的标识号的209至224被存储作为组gd1的状态变量的标识号。此外,作为x
225
至x
240
的标识号的225至240被存储作为组gd2的状态变量的标识号,以及作为x
241
至x
256
的标识号的241至256被存储作为组gd3的状态变量的标识号。此外,作为x
213
的标识号的213被存储作为热位hd1的标识号,作为x
232
的标识号的232被存储作为热位hd2的标识号,并且作为x
254
的标识号的254被存储作为热位hd3的标识号。
[0100]
图1示出了由转换允许范围确定单元12执行的处理的示例。
[0101]
为了避免上述约束条件违反3,组gd1中其值被允许从0变为1的状态变量的标识号的下限是通过将1与组gd1的状态变量的第一标识号209相加获得的210。
[0102]
为了避免上述约束条件违反1、2,基于热位hd2的标识号来确定组gd1中其值被允许从0变为1的状态变量的标识号的上限。在如图1所示的示例中包括在组gd1到gd3的每一个组中的状态变量的数量(组大小)是16的情况下,热位hd2的标识号-16-2是组gd1中其值被允许从0变为1的状态变量的标识号的上限。当热位hd2的标识号为232时,上限为232-16-2=214。
[0103]
为了避免上述约束条件违反1、2,基于热位hd1的标识号来确定组gd2中其值被允许从0变为1的状态变量的标识号的下限。在组大小=16的情况下,热位hd1的标识号 16 2是组gd2中其值被允许从0变为1的状态变量的标识号的下限。当热位hd1的标识号为213时,下限为213 16 2=231。
[0104]
为了避免上述约束条件违反1、2,基于热位hd3的标识号来确定组gd2中其值被允许从0变为1的状态变量的标识号的上限。在组大小=16的情况下,热位hd3的标识号-16-2是组gd2中其值被允许从0变为1的状态变量的标识号的上限。当热位hd3的标识号为254时,上限为254-16-2=236。
[0105]
为了避免上述约束条件违反1、2,基于热位hd2的标识号来确定组gd3中其值被允许从0变为1的状态变量的标识号的下限。在组大小=16的情况下,热位hd2的标识号 16 2是在d3列中的状态变量组中其值被允许从0变为1的状态变量的标识号的下限。当热位hd2的标识号为232时,下限为232 16 2=250。
[0106]
为了避免上述约束条件违反3,组gd3中其值被允许从0变为1的状态变量的标识号的上限是通过从组gd3的状态变量的最后标识号256中减去1获得的255。
[0107]
转换允许范围确定单元12基于如上所述确定的上限或下限针对组gd1至gd3的状态变量中的每一个输出指示是否允许值从0变为1的信号(指示转换禁止或转换允许的信号)。在图1所示的示例中,指示转换禁止的信号是1,以及指示转换允许的信号是0。
[0108]
例如,关于组gd2,针对其值被允许从0变为1的x
231
至x
236
中除了其值已经为1的x
232
之外的x
231
至x
236
输出指示转换允许的信号。对于x
232
、x
225
至x
230
和x
237
至x
240
,输出指示转换禁止的信号。
[0109]
对于针对其输出指示转换禁止的信号的状态变量,搜索单元11使用预定的大的正值作为当状态变量的值变化时的能量变化量。这可以抑制状态变量的值的变化的允许,并且抑制约束条件违反1至3的发生。
[0110]
图4示出了其中允许值变化的范围的确定的另一示例。
[0111]
在图4所示的示例中,在组gd1至gd3中,其值被允许从0变为1的状态变量是其标识号比具有值1的状态变量的标识号大1或小1的状态变量。然而,为了不导致上述约束条件违反1至3被应用,被允许变化的状态变量的标识号的上限或下限如上述示例中那样被确定。
[0112]
如图4所示的示例,当在组gd1中标识号比具有值1的状态变量的标识号大1的状态变量的值变为1时,这导致关于组gd2中的具有值1的状态变量应用约束条件违反2。因此,在组gd1中,仅允许标识号比具有值1的状态变量的标识号小1的状态变量的变化。
[0113]
当在组gd2中标识号比具有值1的状态变量的标识号小1的状态变量的值变为1时,这导致关于组gd1中具有值1的状态变量应用约束条件违反2。因此,在组gd2中,仅允许标识号比具有值1的状态变量的标识号大1的状态变量的变化。
[0114]
当在组gd3中标识号比具有值1的状态变量的标识号大1的状态变量的值变为1时,这导致约束条件违反3。因此,在组gd3中,仅允许标识号比具有值1的状态变量的标识号小1的状态变量的变化。
[0115]
如上所述进一步限制其中允许值变化的范围可以使得能够简化搜索单元11的硬件配置,搜索单元11基于在状态变量的值变化的情况下的能量变化量来确定是否允许该变化。
[0116]
在图4所示的示例中,其值被允许从0变为1的状态变量是其标识号比具有值1的状态变量的标识号大1或小1的状态变量。然而,这些值可变的状态变量不一定是其标识号比具有值1的状态变量的标识号大1或小1的状态变量。可以适当地设置值可变的状态变量。
[0117]
如上所述,利用根据第一实施方式的优化装置10,基于在某个组中具有值1的状态变量的标识号,确定在另一组中其值被允许从0变为1的状态变量的标识号的上限或下限。因此,能够根据当前状态来限制下一个其值被允许变化的状态变量的范围,并且能够搜索在不增加约束项的情况下满足约束条件的解。因此,可以提高向最优解的收敛性。
[0118]
如图1所示,包括在评估函数中的状态变量的数量是(除车厂外的节点的数量 卡车的数量-1)的平方是足够的。因此,即使当节点的数量或卡车的数量增加时,也可以抑制状态变量的数量。
[0119]
利用优化装置10,针对(卡车数量-1)个卡车提供指示卡车是否在每个时间处返回车厂的组gd1至gd3((卡车数量-1)个组),并且能够通过使用这些来计算每个卡车在每条路径上的运载能力的总和。这使得能够计算用于避免其中运载能力的总和超过最大运载能力的情况的约束项(约束项的计算示例将在后面描述)。因此,不期望在例如准备满足最大运载能力的卡车的运载能力组合的多个模式以针对每个模式搜索最优解方面付出努力。因此,可以抑制最优解搜索处理的执行次数的增加。
[0120]
如上所述的确定其值被允许从0变为1的状态变量的标识号的上限或下限的技术不限于多个节点的路径问题例如cvrp,并且还可以应用于其他组合优化问题。
[0121]
(第二实施方式)
[0122]
图5示出了根据第二实施方式的优化装置的示例。
[0123]
根据第二实施方式的优化装置20包括搜索单元21和转换允许范围确定单元22。
[0124]
搜索单元21执行确定处理,该确定处理基于包括在评估函数中的多个状态变量中的任何状态变量的值发生变化的情况下的能量变化量来确定该值是否可以变化。基于确定
处理的结果,搜索单元21重复执行改变多个状态变量中的任何状态变量的值的更新处理,从而搜索使能量最小化的最优解。
[0125]
搜索单元21在满足1热约束(以下示例中为2向1热约束)的同时执行更新处理。与根据第一实施方式的搜索单元11的情况一样,搜索单元21可以在满足1向1热约束的同时执行更新处理。
[0126]
如上所述用于计算cvrp的如图1所示设置的16
×
16个状态变量(以16行16列布置的状态变量)具有2向1热约束。
[0127]
在排除对除满足2向1热约束的状态之外的状态的搜索的情况下,四个状态变量的值在单个状态转换中变化。
[0128]
当在满足2向1热约束的状态下将具有值0的状态变量之一设置为更新目标候选时,确定其他三个更新目标候选的状态变量。当具有值0的状态变量xj被设置为更新目标候选时,包括在与xj的行和列相同的行和列中的状态变量中具有值1的状态变量xi、x
l
被设置为更新目标候选。此外,在与xi的列相同的列中和与x
l
的行相同的行中具有值0的xk被设置为更新目标候选。
[0129]
当在这四个状态变量的值变化的情况下生成的伊辛模型的能量变化是δej时,δej能够由下面的表达式(8)表示。
[0130]
δej=(hi h
l
)-(hj hk)-(w
il
w
jk
)
ꢀꢀ
(8)
[0131]
由于xi、xj、xk、x
l
的变化引起的局部字段的变化(δhm(m=1、2、
……
、n))能够由下面的表达式(9)表示。
[0132]
δhm=w
jm
w
km-(w
im
w
lm
)
ꢀꢀ
(9)
[0133]
搜索单元21包括δe计算单元21a、选择电路21b、标识号计算单元21c、更新单元21d和控制单元21e。
[0134]
在满足1热约束的组的每个组中,δe计算单元21a计算当通过汉明距离(hamming distance)=4的状态转换从满足1热约束的某个状态转换到满足1热约束的另一状态时的能量变化量(δe1到δen)。δe计算单元21a计算由表达式(8)表示的能量变化量,以便在满足1热约束的同时执行更新处理。
[0135]
对于由转换允许范围确定单元22针对其输出指示转换禁止的信号的状态变量或具有当前值1的状态变量,δe计算单元21a输出预定的大的正值作为当状态变量的值变化时的能量变化量。预定的大正值例如是能够由优化装置20输出的正的最大值。由更新单元21d输出的n个控制信号en通知具有当前值1的状态变量。例如,与具有当前值1的状态变量相对应的控制信号en为1,以及与具有当前值0的状态变量相对应的控制信号en为0。
[0136]
δe计算单元21a通过使用例如保存权重系数和局部字段的寄存器、选择用于表达式(8)和(9)的计算的权重系数的选择器、执行表达式(8)和(9)的计算的加减器等来实现。
[0137]
选择电路21b基于热激励能量与δe1至δen之间的大小关系来输出标识号=j,该标识号=j用于标识在包括在每个组中的具有值0的状态变量中其值被允许从0变为1的状态变量之一。基于随机数和指示从控制单元21e输入的温度的参数t来确定热激励能量。热激励能量也可以称为噪声值。在某些情况下,根据热激励能量与δe1至δen之间的大小关系,不允许任何具有值0的状态变量的变化。在下文中,假设选择电路21b将标识号=j与指示是否允许具有标识号=j的状态变量的值的变化的标志f一起输出。例如,在标志f的值为
1的情况下,这指示允许状态变量的值的变化,以及在标志f的值为0的情况下,这指示不允许该变化。
[0138]
标识号计算单元21c包括例如寄存器,该寄存器存储状态变量中的每一个所属的组的标识号以及每个组中具有值1的状态变量的标识号。标识号计算单元21c基于选择电路21b输出的标识号=j来计算其他三个标识号=i、k、l。
[0139]
例如,i和l是xi和x
l
的标识号,xi和x
l
是包括在与xj的行和列相同的行和列中的状态变量中具有值1的状态变量。标识号k是在与xi的列相同的列以及与x
l
的行相同的行中的xk的标识号,并且k能够通过k=i l-j来计算。
[0140]
在下文中,假设标识号计算单元21c也输出从选择电路21b提供的标识号=j和标志f。标识号=i、j、k、l被提供给δe计算单元21a,并且在基于表达式(9)更新用于计算能量变化量的局部字段时使用。当标志f指示不允许变化时,标识号计算单元21c将标识号=i、j、k、l设置为例如无效值(例如,0)。
[0141]
标识号计算单元21c可以是例如其中处理器(例如cpu或gpu)基于存储在寄存器中的标识号执行如上所述的处理的单元,或者可以通过使用各种类型的逻辑电路来实现。
[0142]
更新单元21d包括保存例如n个状态变量(x1至xn)的值的存储单元21d1。存储单元21d1例如通过使用电子电路例如寄存器、sram等来实现。当标志f指示允许变化时,更新单元21d将具有由标识号计算单元21c输出的标识号=i、l的状态变量的值从1更新为0,并且将具有标识号=j、k的状态变量的值从0更新为1。
[0143]
更新单元21d基于与具有标识号=i、j、k、l的状态变量的变化相对应的能量变化量来更新能量。存储单元21d1在每次更新时保存最小能量以及获得最小能量时的状态(能量处于最小值时的状态)。更新单元21d将上述x1至xn和控制信号en提供给δe计算单元21a。
[0144]
更新单元21d可以通过使用以下来实现:用于更新能量的加法电路、将更新的能量与先前的最小能量进行比较的比较器、将具有标识号=i、j、k、l的状态变量的值从0反转为1或从1反转为0的各种类型的逻辑电路等。
[0145]
控制单元21e执行优化装置20的初始设置处理。作为初始设置处理,执行用于表达式(4)的计算的权重系数的设置、局部字段和状态变量的初始值的设置、状态变量所属的组的标识号的设置等。设置状态变量的初始值,使得在组的每个组中满足1热约束。例如,对于稍后要描述的转换允许范围确定单元22针对其确定其中允许值变化的范围的组,设置热位,使得如上所述的约束条件违反1至3不被应用。
[0146]
每当更新伊辛模型的状态的更新处理重复预定次数时,控制单元21e例如根据从外部指定的温度计划来减小t的值。
[0147]
例如,控制单元21e在更新处理已经被重复预定重复次数之后获得由存储单元21d1保存的状态(x1至xn),并且将状态(x1至xn)输出到外部作为优化问题的解。控制单元21e可以在更新处理已经被重复预定重复次数之后获得并输出由存储单元21d1保存的最小能量以及当能量处于最小值时的状态。控制单元21e可以将获得的各种类型的信息输出到显示装置(未示出)以便显示该信息,或者可以将该信息发送到外部信息处理装置。
[0148]
控制单元21e可以例如通过电子电路诸如asic或fpga来实现。控制单元21e可以是处理器例如cpu或gpu。在这种情况下,处理器通过执行存储在存储器(未示出)中的程序来执行上述处理。
[0149]
转换允许范围确定单元22针对多个组确定其中允许值变化的范围,使得预定约束条件违反不被应用。
[0150]
图6示出了转换允许范围确定单元的示例。
[0151]
转换允许范围确定单元22包括存储单元22a、热位更新单元22b、边界值计算单元22c和转换允许-禁止信号输出单元22d。
[0152]
存储单元22a存储例如n个状态变量的值和标识号、状态变量所属的组的标识号、用于标识针对其确定转换允许范围的多个组的状态变量的标识号以及组大小(属于单个组的状态变量的数量)。存储单元22a还存储在针对其确定转换允许范围的组的每个组中的热位的标识号。在由控制单元21e执行的上述初始设置处理中,这些标识号和组大小被存储在存储单元22a中。存储单元22a还存储由边界值计算单元22c计算的在针对其确定转换允许范围的组的每个组中其值被允许从0变为1的状态变量的标识号的边界值(上限和下限)。存储单元22a例如是电子电路诸如sram或寄存器。
[0153]
热位更新单元22b基于由标识号计算单元21c输出的标识号=j、k和标志f以及保存在存储单元21d1中的状态(x1至xn)来更新存储在存储单元22a中的热位的标识号。例如,当j或k与针对其确定存储在存储单元22a中的转换允许范围的组的状态变量的标识号相匹配并且xj或xk变为1时,热位更新单元22b将j或k设置为该组的热位的标识号。这样的热位更新单元22b可以通过各种类型的逻辑电路来实现。
[0154]
基于状态变量、热位的标识号以及针对其确定转换允许范围的组的每个组的组大小,边界值计算单元22c计算组中其值被允许从0变为1的状态变量的标识号的边界值(上限和下限)。
[0155]
图7示出了边界值的计算的示例。
[0156]
图7示出了其中计算边界值使得如上所述的约束条件违反1至3不被应用的示例。
[0157]
在组gd1中,下限min是通过将1与组gd1的状态变量的第一标识号相加而获得的值,以及上限max是通过从组gd2的热位的标识号减去18而获得的值。如上所述,18是组大小(16) 2。
[0158]
在组gd2中,下限min是通过将18与组gd1的热位的标识号相加而获得的值,以及上限max是通过从组gd3的热位的标识号减去18而获得的值。
[0159]
在组gd3中,下限min是通过将18与组gd2的热位的标识号相加而获得的值,以及上限max是通过从组gd3的状态变量的最后标识号减去1而获得的值。
[0160]
执行这样的处理的边界值计算单元22c通过使用例如各种类型的逻辑电路诸如加法和减法电路等来实现。
[0161]
转换允许-禁止信号输出单元22d基于由边界值计算单元22c计算并存储在存储单元22a中的边界值,针对属于多个组的状态变量中的每一个输出指示值变化的允许或禁止的信号(转换允许-禁止信号)。
[0162]
图8示出了转换允许-禁止信号输出单元和存储单元的示例。
[0163]
图8示出了存储在存储单元22a中存储的部分信息的寄存器组22a1、22a2、22a3、22a4、22a5。
[0164]
寄存器组22a1存储x1至xn的标识号(1至n),寄存器组22a2存储x1至xn分别所属的组的标识号(g1至gn),以及寄存器组22a3存储x1至xn的值。寄存器组22a4存储x1至xn分别所
属的组中的上述下限(min1至minn),以及寄存器组22a5存储x1至xn分别所属的组中的上述上限(max1至maxn)。
[0165]
当具有标识号=j的状态变量(xj)所属的组的标识号与针对其确定存储在存储单元22a中的转换允许范围的组的标识号匹配时,更新min1至minn以及max1至maxn中的第j个minj和maxj。因此,上述下限和上限保持在与针对其确定转换允许范围的组不同的组的初始值中。
[0166]
转换允许-禁止信号输出单元22d包括转换允许-禁止位生成电路22d1、22d2、
……
、22dn。转换允许-禁止位生成电路22d1至22dn基于x1至xn、min1至minn和max1至maxn的值生成并输出指示分别针对x1到xn是否允许值从0变为1的转换允许-禁止位p1、p2、
……
、pn。因此,转换允许-禁止信号输出单元22d输出通过使用n个转换允许-禁止位p1至pn的转换允许-禁止信号。
[0167]
图9示出了转换允许-禁止位生成电路的示例。
[0168]
图9示出了图8所示的转换允许-禁止位生成电路22d1至22dn中的第i个转换允许-禁止位生成电路22di的电路示例。其他转换允许-禁止位生成电路也可以通过类似的电路配置来实现。
[0169]
转换允许禁止位生成电路22di包括比较电路30、31和负“与”(与非)电路32。
[0170]
比较电路30输出标识号=i与xi所属组中的上述下限mini之间的比较结果。比较电路30在mini≤i的情况下输出1,以及在mini》i的情况下输出0。
[0171]
比较电路31输出标识号=i与xi所属组中的上述上限maxi之间的比较结果。比较电路30在maxi≥i的情况下输出1,以及在maxi《i的情况下输出0。
[0172]
与非电路32输出比较电路30、31的输出信号与通过反转xi值获得的值(在xi值为0的情况下为1,在xi值为1的情况下为0)之间的与非。在所有三个输入都是1的情况下,与非电路32输出指示允许xi的值从0变到1的0作为转换允许-禁止位pi。在三个输入中的至少一个为0的情况下,与非电路32输出指示禁止xi的值从0变到1的1作为转换允许-禁止位pi。
[0173]
如上所述的转换允许范围确定单元22的使用使得能够针对多个组确定其中允许值变化的范围,使得预定约束条件违反不被应用。
[0174]
对于与针对其确定转换允许范围的组不同的组,例如,将上述下限的初始值设置为1并且将上述上限的初始值设置为n是足够的。在这样的情况下,针对属于不同组的状态变量输出指示允许从0到1的值变化的转换允许-禁止位0。
[0175]
(用于考虑cvrp的约束条件的能量变化量的第一种计算技术)
[0176]
如上所述,在cvrp中,存在这样的约束条件:在该约束条件下,对于所有路径,除了路径上的车厂之外的节点的需求的总值在单辆卡车的最大运载能力内。例如,路径(d
tot1
至d
tot4
)中的每条路径上的四辆卡车的运载能力的总和能够通过上述表达式(6)来计算,并且这些是关于状态变量的二次式。因此,d
tot1
至d
tot4
能够被转换成下面的表达式(10)。
[0177][0178]
在表达式(10)中,x是(x1、x2、
……
、xn)矩阵,并且v1至v4中的每一个都是n
×
n矩阵。
[0179]
当最大运载能力为q时,上述约束条件能够被表示为d
tot1
至d
tot4
≤q。
[0180]
包括这样的二次不等式约束作为约束项的评估函数能够由下面的表达式(11)表示。
[0181]
e=c max(d
tot1-q,0)

max(d
tot4-q,0)
ꢀꢀ
(11)
[0182]
在表达式(11)中,c是成本项并且表示四辆卡车的总移动距离。成本项c能够由下面的表达式(12)表示。
[0183][0184]
在表达式(12)中,w是具有如表达式(1)中所表示的w
ij
的n&
×
n矩阵。
[0185]
如上所述的评估函数的值的变化(能量变化量)δe能够由下面的表达式(13)表示。
[0186][0187]
在如图5所示的δe计算单元21a中,为了如上所述如表达式(13)所示计算δe,δc、δp1至δp4可以被分别并行计算并相加在一起。
[0188]
图10示出了δe计算单元的示例。
[0189]
δe计算单元40包括存储单元41a、41b1至41b4、δc计算电路42a、δd
tot
计算电路42b1至42b4和δe输出电路43。
[0190]
存储单元41a存储上述w。存储单元41b1至41b4存储上述v1至v4。存储单元41a、41b1至41b4可以通过例如使用电子电路诸如寄存器、sram等来实现。
[0191]
δc计算电路42a针对x1至xn中的每一个计算与如由表达式(8)表示的δej相对应的能量变化量(δc)。提供给δc计算电路42a的标识号=i、j、k、l用于选择用于计算的w的元素。表达式(8)的(例如,保存在寄存器中的)局部字段被传播到电路,该电路通过使用x1至xn来针对x1到xn中的任何一个计算能量变化量。
[0192]
然而,δc计算电路42a输出大的正值作为针对对应的控制信号en为1的状态变量或转换允许-禁止位p1至pn中对应的一个为1的状态变量的变化量。
[0193]
δd
tot
计算电路42b1至42b4针对x1至xn中的每一个计算与如由表达式(8)表示的δej相对应的能量变化量(δd
tot1
至δd
tot4
)。然而,与δc计算电路42a不同,δd
tot
计算电路
42b1至42b4使用v1至v4而不是w。例如,δd
tot
计算电路42b1通过使用v1来针对每个x1至xn计算能量变化量δd
tot1

[0194]
提供给δd
tot
计算电路42b1至42b4的标识号=i、j、k、l用于选择用于计算的v1至v4的元素。表达式(8)的局部字段被传播到通过使用x1至xn来针对x1至xn中任何一个计算能量变化量的电路。
[0195]
δd
tot
计算电路42b1至42b4还可以输出大的正值作为针对对应的控制信号en为1的状态变量或对应的转换允许-禁止位p1至pn为1的状态变量的变化量。
[0196]
基于表达式(13),δe输出电路43计算并输出δe1至δen,δe1至δen是针对x1至xn的相应能量变化量。
[0197]
(用于考虑cvrp的约束条件的能量变化量的第二种计算技术)
[0198]
根据第二种计算技术,优化装置20基于表达式(7)计算并存储在时间t中的每一个处的需求的总d
t
。优化装置20存储指示卡车在时间t处是否经过路径i的变量r
i,t

[0199]
图11示出了d
t
和r
i,t
的存储示例。
[0200]
图11示出了当i=1至4、t=1至16时的d
t
和r
i,t
的存储示例。关于r
i,t
,r
i,t
在卡车在时间t处通过路径i的情况下为1,以及在卡车在时间t处不通过路径i的情况下为0。
[0201]
在x1至xn中,根据其值变化的状态变量的标识号,存在相同路径上的要访问的节点顺序改变的情况1、在 不同路径之间交换要访问的节点的情况2以及交换要访问的车厂的顺序和要访问的节点的顺序的情况3。
[0202]
图12示出了情况1的示例。
[0203]
图12示出了这样的示例:在该示例中,在具有四辆卡车和13个节点的cvrp如图1的情况那样被计算的情况下,在状态变量(边框15中的16
×
16个状态变量)中,通过四个状态变量的值变化来交换访问具有节点编号=2、4的节点的顺序。
[0204]
在情况1中,在图12所示的示例中,在时间t中的每一个处的需求的总d
t
中,交换了d2和d3。然而,每条路径上的总运载能力(d
tot1
至d
tot4
)没有变化。因此,如由表达式(11)表示的评估函数中的约束项不改变。
[0205]
图13示出了情况1的状态转换之前和状态转换之后的r
i,t
的存储示例。
[0206]
在情况1中,如图13所示,r
i,t
在状态转换(四个状态变量的变化(四位转换))之前和状态转换之后不改变。
[0207]
图14示出了情况2的示例。
[0208]
在图14所示的示例中,在第一路径中,卡车在时间t=2处访问的节点从具有节点编号=2的节点变为具有节点编号=3的节点。在第二路径中,卡车在时间t=3处访问的节点从节点编号=3的节点变为节点编号=2的节点。例如,要访问的节点在不同的路径之间交换。
[0209]
在情况2中,在时间t中的每一个处的需求的总d
t
中,交换d2和d6,并且改变d
tot1
和d
tot2
。因此,约束项发生变化。然而,情况2的状态转换之前和状态转换之后的r
i,t
与图13中的类似,并且在转换之前和转换之后不改变。
[0210]
图15示出了情况3的示例。
[0211]
在图15所示的示例中,在第一路径中,卡车在时间t=3处返回到车厂,而不是访问具有节点编号=4的节点。在第二路径中,卡车在时间t=5处访问具有节点编号=4的节点,
而不是在车厂中。
[0212]
在情况3中,在时间t中的每一个处的需求的总d
t
中,d3和d5被交换,并且d
tot1
和d
tot2
被改变。因此,约束项发生变化。
[0213]
图16示出了情况3的状态转换之前和状态转换之后的r
i,t
的存储示例。
[0214]
在情况3中,在状态转换之前和状态转换之后,两条路径中要访问的节点数量发生了变化。因此,如图16所示,针对两条路径的r
i,t
在状态转换之前和状态转换之后也发生变化。
[0215]
优化装置20基于d
t
和r
i,t
计算d
tot1
至d
tot4
,并考虑上述情况1至3计算δd
tot1
至δd
tot4
。如上所述,在情况1的状态转换中,d
tot1
至d
tot4
不改变。相比之下,在情况2、3的状态转换中,d
tot1
至d
tot4
中的任何两个发生变化。
[0216]
在图14所示的示例中(情况2),状态转换之前的d
tot1
是d
tot1
=d1 d2 d3 d4 d5,以及状态转换之前的d
tot2
是d
tot2
=d6 d7 d8。状态转换之后的d
tot1
为d
tot1
=d1 d'2 d3 d4 d5,以及状态转换后的d
tot2
为d
tot2
=d'6 d7 d8。此处,d'2=-d'6。
[0217]
状态转换之前和状态转换之后的运载能力之和的变化是δd
tot1
=δd2=d'
2-d2。这能够由下面的表达式(14)表示。
[0218][0219]
在表达式(14)中,δr
1,i
表示在时间t=i处的状态转换之前和状态转换之后的r
1,i
的变化。在图14的示例中,δr
1,i
为0。
[0220]
同时,表示δd
tot2
=-δd
tot1
是可能的。
[0221]
在图15所示的示例中(情况3),状态转换之前的d
tot1
是d
tot1
=d1 d2 d3 d4 d5,以及状态转换之前的d
tot2
是d
tot2
=d6 d7 d8。状态转换之后的d
tot1
为d
tot1
=d1 d2 d'3,以及状态转换之后的d
tot2
为d
tot2
=d4 d'5 d6 d7 d8。
[0222]
状态转换之前和状态转换之后的运载能力之和的变化是δd
tot1
=δd
3-(d4 d5)=δd3 (d4δr
1,4
d5δr
1,5
)。这能够由下面的表达式(15)表示。
[0223][0224]
在表达式(15)中,δr
1,i
表示在时间t=i处的状态转换之前和状态转换之后的r
1,i
的变化。在情况3中,δr
1,i
为1。
[0225]
同时,表示δd
tot2
=-δd
tot1
是可能的。
[0226]
当考虑上述示例时,在某条路径p中的状态转换之前和状态转换之后的运载能力之和的变化δd
totp
能够通过以下阶段来计算。
[0227]
阶段1:优化装置20生成转换候选的四个状态变量的标识号=i、j、k、l。
[0228]
阶段2:优化装置20基于标识号=i、j、k、l来计算路径p,在该路径p上运载能力的总和发生变化。
[0229]
阶段3:优化装置20获得其中针对路径p的运载能力之和发生变化的标识号的区间[s1,s2]。
[0230]
阶段4:优化装置20计算针对区间[s1,s2]的δd
t
、δr
i,t

[0231]
阶段5:优化装置20基于下面的表达式(16)计算δd
totp

[0232][0233]
在优化装置20中,为了执行如上所述的阶段1至5,例如,可以使用如下所述的δe计算单元。
[0234]
图17示出了δe计算单元的另一示例。在图17中,与图10所示的元件相同的元件由相同的附图标记表示。
[0235]
δe计算单元50包括存储单元51、更新电路52、转换候选生成电路53、路径p计算电路54、δd
tot
计算电路55和δe输出电路56。
[0236]
如图11所示,存储单元51存储d
t
和r
i,t
。存储单元51可以通过例如使用电子电路诸如寄存器、sram等来实现。
[0237]
更新电路52基于x1至xn的值更新存储在存储单元51中的d
t
和r
i,t

[0238]
转换候选生成电路53基于x1至xn的值生成转换候选的四个状态变量的标识号=i、j、k、l。例如,转换候选生成电路53从其当前值为0的状态变量的标识号中选择标识号=j,并且将生成其他标识号=i、k、l的处理重复与具有值0的状态变量的数量一样多的次数,使得满足2向1热约束。然而,转换候选生成电路53不使用其转换允许-禁止位p1至pn为1的状态变量的标识号作为标识号=i、j、k、l中的任何一个。
[0239]
如图4所示,如上所述进一步限制其中允许值变化的范围可以使得能够简化转换候选生成电路53和执行后续处理的电路的硬件配置。
[0240]
路径p计算电路54基于由转换候选生成电路53生成的标识号=i、j、k、l来计算运载能力之和发生变化的路径p。例如,该处理被执行与由转换候选生成电路53生成的标识号=i、j、k、l的集合的数量一样多的次数。
[0241]
δd
tot
计算电路55获得其中路径p的运载能力之和发生变化的标识号的区间[s1,s2]。例如,在图14所示的示例的情况下(情况2),s1=s2=2,并且在图15所示的示例的情况下(情况3),s1=3,s2=5。基于d
t
和r
i,t
,δd
tot
计算电路55计算针对区间[s1,s2]的δd
t
和δr
i,t
,并且如表达式(16)所示计算δd
totp

[0242]
δe输出电路56基于d
t
和r
i,t
来计算d
totp
。δe输出电路56通过针对运载能力之和发生变化的所有路径p将δp
p
与由δc计算电路42a针对x1至xn中的每一个输出的δc相加,来计算并输出δe1至δen。此处,δp
p
=max(d
totp
δd
totp-q,0)-max(d
totp-q,0)。
[0243]
(优化装置20的整体操作的示例)
[0244]
图18是示出优化装置的整体操作流程的示例的流程图。
[0245]
尽管下面描述了使用模拟退火方法的情况作为示例,但是本公开内容不限于此,并且可以使用诸如副本交换方法的技术。
[0246]
首先,在控制单元21e的控制下,执行初始设置处理(步骤s1)。在初始设置处理中,控制单元21e执行用于表达式(4)的计算的权重系数的设置、局部字段和状态变量的初始值的设置、状态变量所属的组的标识号的设置等。当使用上述用于δe的第一种计算技术时,控制单元21e将v1设置为v4。当使用用于δe的第二种计算技术时,控制单元21e设置d
t
和r
i,t
的初始值。
[0247]
设置状态变量的初始值,使得在组的每个组中满足1热约束。例如,对于转换允许范围确定单元22针对其确定其中允许值变化的范围的组,设置热位,使得如上所述的约束条件违反1至3不被应用。
[0248]
控制单元21e基于预定的温度变化计划、更新处理的重复次数等来设置t的初始值。
[0249]
然后,转换允许范围确定单元22确定其中允许值变化的范围(转换允许范围)(步骤s2)。
[0250]
在满足1热约束的组的每个组中,δe计算单元21a、40、50计算当通过汉明距离=4的状态转换从满足1热约束的状态转换到满足1热约束的另一状态时的δe1至δen(步骤s3)。
[0251]
对于作为转换允许范围确定单元22针对其输出指示转换禁止的信号的状态变量或具有当前值1的状态变量的转换禁止位,δe计算单元21a、40、50输出预定的大的正值作为能量变化量。
[0252]
在已经执行了步骤s3中的处理之后,选择电路21b基于δe1至δen选择标识号=j(步骤s4)。
[0253]
步骤s4的处理是基于δe1至δen确定是否允许x1至xn中的任何一个的变化的确定处理。例如,选择电路21b将基于t和均匀随机数生成的热激励能量与δe1至δen中的每一个进行比较,选择小于热激励能量的能量变化量,并且将对应于该变化量的标识号选择为j。当存在小于热激励能量的多个能量变化量时,选择电路21b例如根据预定规则或随机地从这些能量变化量中选择能量变化量中的一个。当不存在小于热激励能量的能量变化量时,任何状态变量都不会发生变化。然而,选择电路21b可以通过例如将热激励能量与偏移值相加来促进状态转换的生成。
[0254]
此外,在已经执行了步骤s4的处理之后,标识号计算单元21c根据选择的标识号=j计算标识号=i、k、l(步骤s5)。
[0255]
然后,执行更新处理(步骤s6)。在步骤s6的处理中,δe计算单元21a、40、50更新局部字段,并且更新单元21d更新存储在存储单元21d1中的四个状态变量。当使用δe计算单元50时,存储在存储单元51中的d
t
和r
i,t
由更新电路52进行更新。
[0256]
在步骤s6的处理中,存储在存储单元22a中的热位的标识号由转换允许范围确定单元22的热位更新单元22b进行更新。
[0257]
控制单元21e确定步骤s2至s6中的处理的重复次数是否已经达到预定次数n1(步骤s7)。当重复次数没有达到预定次数n1时,重复从步骤s2开始的处理。
[0258]
当重复次数已经达到预定次数n1时,控制单元21e确定t的变化次数(温度变化次数)是否已经达到预定次数n2(步骤s8)。
[0259]
当温度变化的次数没有达到预定次数n2时,控制单元21e改变t(降低温度)(步骤s9)。基于预定的温度变化计划等来确定改变t的值的方式和预定次数n1、n2(例如,这些值一次被减少到什么程度)。在已经执行了步骤s9中的处理之后,重复从步骤s2开始的处理。
[0260]
例如,当温度变化次数已经达到预定次数n2时,控制单元21e输出在该时间处保存在存储单元21d1中的所有状态变量的值作为计算结果(步骤s10),并结束处理。每次状态转
换发生时,控制单元21e可以基于所有状态变量的值来计算能量,顺序地更新通过其获得最小能量的所有状态变量的值,并且在温度变化次数已经达到预定次数n2时输出所有状态变量的值作为解。
[0261]
上述处理的顺序不限于上述示例,并且处理的循环可以适当地互换。
[0262]
如上所述,根据第二实施方式的优化装置20产生与根据第一实施方式的优化装置10的效果类似的效果。例如,基于在某个组中具有值1的状态变量的标识号,转换允许范围确定单元22确定在另一组中其值被允许从0变为1的状态变量的标识号的上限或下限。因此,能够根据当前状态来限制下一个其值被允许变化的状态变量的范围,并且能够搜索在不增加约束项的情况下满足约束条件的解。因此,可以提高向最优解的收敛性。
[0263]
虽然已经基于实施方式描述了根据本公开内容的优化装置和优化的方法的方面,但是这些仅仅是示例性的,并且本公开内容不限于以上描述。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献