CN112100799B - 优化装置及优化方法 - Google Patents

优化装置及优化方法 Download PDF

Info

Publication number
CN112100799B
CN112100799B CN202010542694.7A CN202010542694A CN112100799B CN 112100799 B CN112100799 B CN 112100799B CN 202010542694 A CN202010542694 A CN 202010542694A CN 112100799 B CN112100799 B CN 112100799B
Authority
CN
China
Prior art keywords
value
state
unit
values
constraint
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
Application number
CN202010542694.7A
Other languages
English (en)
Other versions
CN112100799A (zh
Inventor
田村泰孝
此岛真喜子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2019112547A external-priority patent/JP7323777B2/ja
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN112100799A publication Critical patent/CN112100799A/zh
Application granted granted Critical
Publication of CN112100799B publication Critical patent/CN112100799B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

提供了优化装置及优化方法。优化装置包括:状态保持单元,其保持在表示能量的评价函数中包括的多个状态变量的值以及针对状态变量的每个集合的权重值;能量变化计算单元,其在多个状态变量的任何值改变的情况下,基于多个状态变量的值和权重值计算在多个状态变量的值中的每个值被设置为下一变化候选时的能量变化值;惩罚加法单元,其通过将根据违反不等式约束的超出量的惩罚值与针对多个状态变量计算出的多个能量变化值中的每个能量变化值相加来计算总能量变化值,该超出量是基于耦合系数以及阈值来计算的;以及更新控制单元,其基于设置温度值、随机数值和多个总能量变化值来改变在状态保持单元中保持的多个状态变量的任何值。

Description

优化装置及优化方法
技术领域
实施方式涉及优化装置及优化方法。
背景技术
作为求解诺伊曼型(Neumann-type)计算机不容易处理的各种变量的优化问题的方法,存在使用伊辛型(Ising-type)能量函数(也被称为评价函数或目标函数)的优化装置(也称为伊辛机(Ising machine)或玻尔兹曼机(Boltzmann machine))。优化装置通过用伊辛模型代替计算对象的问题来对该问题进行计算,该伊辛模型是表示磁性材料的自旋(spin)行为的模型。
还可以通过使用例如神经网络来对优化装置进行建模。在这种情况下,与伊辛模型函数中包括的多个自旋相对应的多个状态变量中的每一个作为神经元,该神经元根据另一状态变量的值以及指示另一状态变量与它自身的状态变量之间的相互作用的大小的权重系数来输出0或1。优化装置通过使用随机搜索方法例如模拟退火获得相应状态变量的值的如下组合作为解:根据所述组合获得以上所描述的能量函数(下文中称为能量)的最小值。
此处,提出了一种通过使用例如数字电路执行模拟退火来计算具有最小能量的每个状态变量的值的组合的优化装置。另外,提出了一种包括对伊辛模型中的相应自旋之间的相互作用进行模拟的伊辛芯片和控制该伊辛芯片的信息处理单元的信息处理装置。
提出了一种优化系统,该优化系统通过将二进制二次规划问题简化为半正定规划问题、得到半正定规划问题的解并将所得到的半正定规划问题的解转换成二进制二次规划问题的解来得出最优解。
在日本公开特许公报第2018-41351号、国际公布小册子第WO2017/017807号和国际公布小册子第WO 2017/056366号中公开了相关技术。
发明内容
以上所描述的优化装置使由状态变量的二次形式表示的评价函数最小化。同时,在优化问题中,可以施加由不等式表示(例如针对某些量(例如,装载量或预算)提供上限或下限来表示)的约束条件(不等式约束)。然而,通过优化装置可能难以求解将不等式约束公式化为状态变量的二次形式的问题。
在一方面,本发明的目的是提供有效地求解包括不等式约束的问题的优化装置和优化方法。
在一方面,提供了一种优化装置。该优化装置包括状态保持单元、能量变化计算单元、惩罚加法单元和更新控制单元。状态保持单元保持在表示能量的评价函数中包括的多个状态变量的值以及针对状态变量的每个集合的权重值。能量变化计算单元在多个状态变量的任何值改变的情况下基于多个状态变量的值和权重值计算在多个状态变量的值中的每个值被设置为下一变化候选时的能量变化值。惩罚加法单元通过将根据违反不等式约束的超出量的惩罚值与针对多个状态变量计算出的多个能量变化值中的每个能量变化值相加来计算总能量变化值,该超出量是基于指示不等式约束中的多个状态变量中的每个状态变量的权重的耦合系数以及阈值来计算的。更新控制单元基于设置温度值、随机数值和多个总能量变化值来改变保持在状态保持单元中的多个状态变量的任何值。
此外,在一方面,提供了一种优化方法。
[本发明的有利效果]
在一方面,可以有效地求解包括不等式约束的问题。
附图说明
图1是示出根据第一实施方式的优化装置的图。
图2A和图2B是示出函数E(x)和C(x)的示例的图。
图3是示出变量之间的关系的示例的图。
图4是示出优化装置的电路配置示例的图。
图5是示出优化装置的电路的块配置示例的图。
图6是示出确定单元的电路配置示例的图。
图7是示出选择单元的电路配置示例的图。
图8是示出针对每个变量的ΔE和ΔC的计算示例的图。
图9是示出用于计算与函数E(x)相对应的能量的电路配置示例的图。
图10是示出优化装置的操作示例的流程图。
图11A和图11B是示出求解结果之间的比较的示例的图。
图12是示出优化系统的示例的图。
图13是示出优化装置的另一电路配置示例的图。
图14是示出根据第二实施方式的优化装置的示例的图。
具体实施方式
在下文中,将参考附图描述本实施方式。
[第一实施方式]
将描述第一实施方式。
图1是示出根据第一实施方式的优化装置的图。
优化装置10在与通过对计算对象的问题进行转换而获得的伊辛模型中包括的多个自旋相对应的多个状态变量的相应值的组合(状态)中搜索在能量函数为最小值时的每个状态变量的值(基态)。状态变量也可以称为“二进制变量”或“位(自旋位)”。
当优化问题不包括不等式约束时,优化装置10可以基于如下能量函数E(x)执行对基态的搜索。伊辛型能量函数E(x)例如由公式1定义。
[公式1]
基于公式1的无约束状态变量(二进制变量)的二次形式的函数的优化问题可以被称为二次无约束二进制优化(QUBO)。另外,二次形式的公式表达也可以称为QUBO形式。
公式1右侧的第一项是通过以下操作获得的:针对可以从所有状态变量中选择的两个状态变量的所有组合在没有遗漏和重复的情况下对两个状态变量的值与权重值的乘积进行合并。xi是第i个状态变量。xj是第j个状态变量。权重值Wij指示第i个状态变量与第j个状态变量之间的权重(例如,耦合强度)。对于矩阵W={Wij},通常满足Wij=Wji且Wii=0。添加至变量例如状态变量xi的下标i是变量的标识信息,并且被称为索引。
公式1右侧的第二项是所有状态变量的偏置值与状态变量的值的乘积之和。bi指示针对第i个状态变量的偏置值。
例如,伊辛模型中的自旋“-1”对应于状态变量的值“0”。伊辛模型中的自旋“+1”对应于状态变量的值“1”。
如果状态变量xi的值改变为1-xi,则状态变量xi的增加量由δxi=(1-xi)-xi=1-2xi表示。因此,伴随状态变量xi的自旋反转(值的变化)的能量变化ΔEi由针对能量函数E(x)的公式2表达。
[公式2]
hi被称为局部字段(field)并且由公式3表达。
[公式3]
状态变量xj改变(位反转)时的局部字段hi的变化量δhi (j)由公式4表示。
[公式4]
优化装置10包括用于存储局部字段hi的寄存器(未示出),并且在状态变量xj的值改变时将变化量δhi (j)与hi相加,从而获得与位反转之后的状态相对应的hi
优化装置10使用Metropolis方法或Gibbs方法来搜索基态以确定是否允许能量变化为ΔEi的状态转变(状态变量xi的值的变化)。即,优化装置10在用于搜索从某一状态向能量低于该状态的能量的另一状态的转变的邻居搜索中,不仅随机地允许能量降低的状态而且还允许至能量增加的状态的转变。例如,接受能量变化为ΔE的状态变量的值的变化的概率(转变接受概率)A由公式5表示。
[公式5]
在此,β是温度T的倒数(β=1/T)。min运算符表示获取参数的最小值。例如,在使用Metropolis方法时,通过对公式5中的A=exp(-β·ΔE)两边取自然对数来获得公式6。
[公式6]
ln(A)×T=-ΔE (6)
因此,针对均匀随机数u(0<u≤1),当能量变化ΔE满足公式7时,优化装置10允许相对应的状态变量的值的变化。
[公式7]
ln(u)×T≤-ΔE (7)
另外,优化装置10改变被允许改变的任何状态变量的值。优化装置10重复执行在将温度T从初始温度向最低温度降低的同时改变每个温度下的状态变量的值的处理,从而获得优化问题的解。
不等式约束可以被添加至优化问题。因此,优化装置10针对不等式约束提供操作功能。优化装置10包括状态保持单元11、能量变化计算单元12、惩罚加法单元13、更新控制单元14、约束超出量计算单元15和约束标识符号输入单元16。优化装置10通过使用例如半导体集成电路例如现场可编程门阵列(FPGA)来实现。优化装置10可以被实现为半导体芯片。
状态保持单元11保持在表示能量的评价函数(以上所描述的能量函数E(x))中包括的多个状态变量的值以及状态变量的每个集合的权重值。在图1中,多个状态变量的值由状态向量x表示。例如,多个状态变量的数量是n(n是大于或等于2的整数)(即,状态向量x是n位)。
如果保持在状态保持单元11中的多个状态变量的任何值改变,则能量变化计算单元12基于多个状态变量的值和权重值计算在多个状态变量的值中的每个值被设置为下一变化候选的情况下的能量的变化值。例如,能量变化计算单元12在变化候选是状态变量xj的情况下针对j=1至n中的每一个来获得能量的变化值ΔEj
惩罚加法单元13通过将根据违反不等式约束的超出量(约束超出量)的惩罚值ΔCj与针对多个状态变量计算的多个能量变化值ΔEj中的每一个相加来计算总能量的变化值(ΔEj+ΔCj)。约束超出量是基于指示不等式约束中的多个状态变量中的每个状态变量的权重的耦合系数和阈值而计算的值。例如,与变化候选的状态变量xj相对应的约束超出量的变化值由约束超出量计算单元15计算,并且被提供至惩罚加法单元13。惩罚加法单元13基于与状态变量xj相对应的约束超出量的变化值来获得惩罚值ΔCj,并将惩罚值ΔCj与ΔEj与相加。例如,惩罚加法单元13可以通过将约束超出量的变化值与表示对于不等式约束的重要性的预定系数相乘来计算惩罚值ΔCj
更新控制单元14基于设置温度值、随机数值和多个总能量的变化值来改变在状态保持单元11中保持的多个状态变量的任何一个值。更新控制单元14还可以通过多个总能量的变化值与热激发能量(热噪声)之间的相对关系来随机地确定是否接受多个状态变量中的任何一个状态变量。更新控制单元14包括转变适当性确定单元14a和选择单元14b。
转变适当性确定单元14a基于温度值T、随机数值u和总能量的变化值(ΔEj+ΔCj)输出指示是否允许与总能量的变化值(ΔEj+ΔCj)相对应的状态转变的标志Fj。例如,当允许由于状态变量xj的值的变化而引起的状态转变时Fj=1,并且当不允许由于状态变量xj的值的变化引起的状态转变时Fj=0。温度值T由图中未示出的控制单元(或控制电路)输入至转变适当性确定单元14a。此处,由转变适当性确定单元14a进行的确定基于公式8来执行,在公式8中用总能量的变化值(ΔEj+ΔCj)替代公式7中的ΔE。
[公式8]
ln(u)×T≤-(ΔE+ΔC) (8)
选择单元14b选择与由转变适当性确定单元14a输出的Fj(j=1至n)中Fj=1相对应的一个状态转变编号(索引)。选择单元14b将所选择的索引输出至状态保持单元11,从而改变保持在状态保持单元11中的多个状态变量中的任何一个状态变量的值。例如,状态保持单元11对与从选择单元14b接收的索引相对应的状态变量的值进行改变(位反转)。通过这样做,与输入至状态保持单元11的时钟信号(clk)同步地更新被保持在状态保持单元11中的状态变量的值。
约束超出量计算单元15基于不等式约束的阈值和针对不等式约束的状态变量xj的耦合系数,计算在状态变量xj被设置为变化候选时的约束超出量的变化值,并且将所计算的变化值提供至惩罚加法单元13。阈值可以是不等式约束的上限值或其下限值。阈值可以是上限值与下限值两者,并且在这种情况下,可以考虑:采用针对上限值的约束超出量的变化值与针对下限值的约束超出量的变化值之中的较大值作为违反不等式约束的约束超出量的变化值。
约束标识符号输入单元16将约束标识符号输入至约束超出量计算单元15。约束标识符号是指定用作阈值的上限值或下限值的信息。由以上所描述的控制单元将约束标识符号输入至约束标识符号输入单元16。
另外,考虑如下配置:将优化装置10可以保持的状态变量的最大数量设置为N(N是大于n的整数),将N个变量中的n个变量用作正常状态变量,并且将K(K是大于或等于1的整数)个变量用作用于表示不等式约束的变量(不等式约束变量)。N=n+K。K对应于不等式约束的数量,并且如果不等式约束的数量为1,则K=1,并且如果不等式约束的数量为2,则K=2。
在这种情况下,约束标识符号输入单元16借助于约束标识符号指定N个变量之中属于状态向量的正常状态变量和不属于状态向量的不等式约束变量。因此,约束标识符号输入单元16可以被配置成针对能量变化计算单元12、惩罚加法单元13和转变适当性确定单元14a输入约束标识符号(图1示出了该配置)。通过这样做,如下面将描述的,可以通过使用在存储了与K个不等式约束变量中的每一个相对应的局部字段hi的寄存器中存储的hi的当前值来计算惩罚值ΔCi
当N个变量中的n个被用作正常状态变量并且K个被用作不等式约束变量时,可以如下将添加了不等式约束的优化问题公式化。此处,正常状态变量的索引的集合由ψ表示。集合ψ的元素的数量为n。不等式约束变量的索引的集合被表示为Ω(Ω={k1,k2,...,kK})。集合Ω的元素的数量为K。
要最小化的能量函数由公式9表示为n个状态变量的函数E(x)。
[公式9]
由n个状态变量构成的K个不等式约束由公式10表示。
[公式10]
耦合系数aij指示在与索引i相对应的(被表示为不等式约束i的)不等式约束中状态变量xj(j∈ψ)的权重。Cli是不等式约束i的下限值。Cui是不等式约束i的上限值。然而,可以仅提供下限值和上限值之一作为不等式约束。
此时,与总能量相对应的目标函数Etot(x)由公式11表示。
[公式11]
Etot(x)=E(x)+C(x) (11)
函数C(x)是对于所有不等式约束的针对不等式约束的约束超出量与重要性系数λi的乘积之和并且由公式12表示。
[公式12]
此处,重要性系数λi是大于或等于0的实数并且表示不等式约束i的重要性。另外,max(最大)运算符指示参数的最大值。函数C(x)的变化值与惩罚值相对应。
图2A和图2B是示出函数E(x)和C(x)的示例的图。
图2A示出了函数E(x)的示例的曲线图G1。图2B示出了函数C(x)的示例的曲线图G2。曲线图G1和G2的横轴指示状态x(由状态向量表示的状态)。曲线图G1的纵轴是E(x)。曲线图G2的纵轴是C(x)。针对通过将函数C(x)与函数E(x)相加而获得的目标函数Etot(x),转移基于例如公式8(Metropolis方法)的状态,从而获得满足函数E(x)的不等式约束(或使针对不等式约束的约束超出量最小化)的解。
图3是示出变量之间的关系的示例的图。
变量组g1指示状态变量的集合{xj}(j∈Ω)。变量组g2指示不等式约束变量的集合{xk}(k∈Ω)。
一对状态变量是双向耦合。即,建立如下关系:该对中的一个状态变量的局部字段受到该对中的另一个状态变量的反转的影响。
一对状态变量和不等式约束变量是从状态变量朝向不等式约束变量的单向耦合。即,建立如下关系:不等式约束变量的局部字段受到状态变量的反转的影响,但是状态变量的局部字段不受不等式约束变量的反转的影响。状态变量xj对不等式约束k的影响的大小(权重)由耦合系数akj表示。给出耦合系数akj作为以上所描述的矩阵W的元素。另外,将不等式约束变量的偏置bk设置为bk=0。
为了实现状态变量与不等式约束变量之间的关系,在一个示例中,优化装置10将不等式约束变量xk的值设置为0并进行控制使得不发生不等式约束变量的反转,从而抑制了状态变量对局部字段的影响。在另一示例中,通过将耦合系数akj设置为不对称耦合系数(即,akj≠0,ajk=0),可以抑制不等式约束变量xk对状态变量的局部字段的影响。在又一示例中,可以基于约束标识符号来控制转变适当性确定单元14a始终针对不等式约束变量xk输出标志Fk=0。
不等式约束变量不与其他不等式约束变量耦合。即,针对成对的不等式约束变量,将Wij和Wji(i,j∈Ω)设置为0。
不等式约束变量xk(k∈Ω)的局部字段hk由公式13表示。
[公式13]
不等式约束变量不影响由正常状态变量表示的状态的能量E(x),但是根据正常状态变量的反转将与不等式约束变量xk相对应的局部字段hk的值更新为最新值。另外,通过将局部字段hk与不等式约束的上限和下限进行比较,获得不等式约束的满足情况。
如公式11所表示的,总能量Etot(x)是QUBO项E(x)与不等式约束项(惩罚项)C(x)之和。针对正常状态变量xj(j∈ψ)的反转的总能量的能量变化ΔEtotj(x)由公式14表示。
[公式14]
ΔEtotj=ΔEj+ΔCj (14)
ΔEj是基于QUBO项生成的,例如通过使用日本公开特许公报第2018-41351号中公开的现有电路配置基于QUBO项生成的。
ΔCj是通过使用不等式约束变量xi(i∈Ω)的局部字段hi的当前值基于公式15生成的。
[公式15]
此处,ΔCij由公式16表示。
[公式16]
ΔCij=max[0,hi+aijδxj-Cui,Cli-aijδxj-hi]-max[0,hi-Cui,Cli-hi] (16)
然而,δxj是在状态变量xj反转时的状态变量xj的变化量,并且由公式17表示。
[公式17]
δxj=(1-xj)-xj=1-2xj (17)
即,ΔCij是伴随状态变量xj的反转的索引i的不等式约束(不等式约束i)的约束超出量的变化量的值(变化值)。另外,惩罚值ΔCj是针对每个不等式约束的约束超出量的变化值的根据重要性系数的加权之和。当不等式约束i仅给出上限值时,参数“Cli-aijδxj-hi”或参数“Cli-hi”可能不包括在公式15和公式16的max运算中。另外,当不等式约束i仅给出下限值时,参数“hi+aijδxj-Cui”或参数“hi-Cui”可能不包括在公式15和公式16的max运算中。当等式约束被表示为约束i时,Cui可以等于公式15和公式16中的Cli
接下来,将进一步描述用于优化装置10的理论的实现示例。在下文中,假定可以由优化装置10保持的状态变量的最大数量被设置为N。另外,为了方便起见,可以通过ki的下标i表示属于Ω的索引,使得k1为1、k2为2……kK为K。
图4是示出优化装置的电路配置示例的图。
能量变化计算单元12包括ΔE计算单元12a1至12aN。ΔE计算单元12a1至12aN中的每一个基于公式2至公式4来计算在从状态保持单元11提供的第j个状态变量被设置为反转候选时能量的变化值ΔEj,并且将所计算的变化值输出至惩罚加法单元13。局部字段h1至hN的当前值分别从(未示出的)用于存储局部字段h1至hN的寄存器提供至ΔE计算单元12a1至12aN。
尽管ΔE计算单元12a1至12aN包括与不等式约束变量相对应的ΔE计算单元,但是如下面将描述的,与不等式约束变量相对应的ΔE计算单元基于约束标识符号输出相对大的值,从而抑制了不等式约束变量的反转。
惩罚加法单元13包括系数寄存器13a1至13aK、乘法器13b1至13bK、加法器13c11至13c1N、……、13cK1至13cKN。此处,尽管示出了与不等式约束变量的索引相对应的K个系数寄存器和乘法器例如系数寄存器13a1至13aK和乘法器13b1至13bK,但是系数寄存器和乘法器可以被分别设置为N个。即,未示出不与不等式约束变量的索引对应的其他系数寄存器和其他乘法器。类似地,尽管示出了与不等式约束变量相对应的K组(或K行)加法器例如加法器13c11至13c1N、……、13cK1至13cKN,但是加法器组可以被设置为N组(或N行)。即,未示出不与不等式约束变量的索引对应的其他加法器组。
系数寄存器13a1至13aK保持公式12和公式15中的重要性系数λ1至λk,并且将重要性系数提供至与系数寄存器13a1至13aK相对应的乘法器13b1至13bK。
乘法器13b1至13bK将由约束超出量计算单元15计算的ΔC1j至ΔCKj(j∈ψ)与系数λ1至λk相乘并将相乘后的值提供至加法器13c11至13c1N、……、13cK1至13cKN。
具体地,乘法器13b1将ΔC11与λ1相乘并将相乘后的值提供至加法器13c11。此处,乘法器13b1将ΔC12与λ1相乘并将相乘后的值提供至加法器13c12。此后,类似地,乘法器13b1将ΔC1N与λ1相乘并将相乘后的值提供至加法器13c1N。
乘法器13bk将ΔCk1与λk相乘并将相乘后的值提供至加法器13ck1。另外,乘法器13bk将ΔCk2与λk相乘并将相乘后的值提供至加法器13ck2。此后,类似地,乘法器13bk将ΔCkN与λk相乘并将相乘后的值提供至加法器13ckN。这同样适用于其他乘法器。
加法器13c11至13c1N、……、13cK1至13cKN将从乘法器13b1至13bK提供的λ1ΔC11至λ1ΔC1N、……、λKΔCK1至λKΔCKN与通过能量变化计算单元12计算的ΔE1至ΔEN相加。
具体地,加法器13c11将λ1ΔC11与从ΔE计算单元12a1提供的ΔE1相加,并将相加结果提供至下一级中与索引1相对应的(未示出的)加法器。加法器13c12将λ1ΔC12与从ΔE计算单元12a2提供的ΔE2相加并将相加结果提供至下一级中与索引2相对应的加法器。此后,类似地,加法器13c1N将λ1ΔC1N与从ΔE计算单元12aN提供的ΔEN相加并将相加结果提供至下一级中与索引N相对应的加法器。
加法器13ck1将λkΔCk1与从前一级中与索引1相对应的(未示出的)加法器提供的值相加并将相加结果输出至转变适当性确定单元14a。加法器13ck2将λkΔCk2与从前一级中与索引2相对应的加法器提供的值相加并将相加结果输出至转变适当性确定单元14a。此后,类似地,加法器13ckN将λkΔCkN与从前一级中与索引N相对应的加法器提供的值相加并将相加结果输出至转变适当性确定单元14a。
转变适当性确定单元14a包括确定单元14al至14aN。确定单元14a1至14aN中的每一个基于从惩罚加法单元13提供的ΔE1+ΔC1至ΔEN+ΔCN通过使用公式8来随机地确定是否允许状态变量xj的反转,并将指示是否反转的标志F1至FN提供至选择单元14b。下面将描述确定单元14a1至14aN的详细电路配置。
选择单元14b基于从转变适当性确定单元14a提供的标志F1至FN选择要被反转的状态变量并将该状态变量的索引提供至状态保持单元11。选择单元14b的详细电路配置将在下面描述。
约束超出量计算单元15包括ΔC计算单元15a1至15aK。ΔC计算单元15a1至15aK基于公式16计算ΔC1j至ΔCKj(j∈ψ),并将计算出的值提供至惩罚加法单元13。
具体地,ΔC计算单元15a1将ΔC11至ΔC1N提供至乘法器13b1。此后,类似地,ΔC计算单元15aK将ΔCK1至ΔCKN提供至乘法器13bK。
如上所述,优化装置10的功能可以通过电子电路来实现。例如,状态保持单元11、能量变化计算单元12、惩罚加法单元13、转变适当性确定单元14a、选择单元14b和约束超出量计算单元15也可以分别称为状态保持电路、能量变化计算电路、惩罚加法电路、转变适当性确定电路、选择电路和约束超出量计算电路。
图5是示出优化装置的电路的块配置示例的图。
图4所示的电路元件可以在与索引i=1、2、……N中的每个索引相对应的块Bi中单独实现。图5示出了优化装置10的第j个块Bj的电路配置示例。
块Bj包括ΔE计算单元12aj、系数寄存器13a1j至13aKj、乘法器13b1j至13bKj、加法器13c1j至13cKj、确定单元14aj以及ΔC计算单元15a1j至15aKj。
ΔE计算单元12aj基于与索引j相对应的状态变量xj的值和局部字段hj的值来计算ΔEj,并将计算出的值提供至加法器13c1j。
系数寄存器13a1j至13aKj保持系数λ1至λk。系数寄存器13a1j至13aKj可以不针对每个块而提供并且可以是针对每个块的共享寄存器。
乘法器13b1j至13bKj分别将保持在系数寄存器13a1j至13aKj中的λ1至λk与从ΔC计算单元15a1j至15aKj提供的ΔC1j至ΔCkj相乘并将相乘后的值提供至加法器13c1j至13cKj。乘法器13b1j至13bKj分别被称为乘法器13b1至13bK的与索引j相对应的电路元件(例如,乘法器13b1j是乘法器13b1的与索引j相对应的电路)。
加法器13c1j将从乘法器13b1j提供的λ1ΔC1j与从ΔE计算单元12aj提供的ΔEj相加,并将相加结果提供至下一级中的(未示出的)加法器。此后,类似地,依次加上λkΔCkj(k∈Ω)。加法器13cKj将λkΔCkj与从前一级中的(未示出的)加法器提供的值相加,并将(与ΔEj+ΔCj相对应的)结果提供至确定单元14aj。
确定单元14aj基于总能量的变化值ΔEj+ΔCj来确定是否执行与索引j相对应的反转,并且将根据确定结果的标志Fj输出至选择单元14b。
ΔC计算单元15a1j至15aKj分别计算ΔC1j至ΔCKj,并将计算出的值提供至乘法器13b1j至13bKj。ΔC计算单元15a1j至15aKj分别被称为ΔC计算单元15a1至15aK的与索引j相对应的电路元件(例如,ΔC计算单元15a1j是ΔC计算单元15a1的与索引j相对应的电路元件)。
此处,由约束标识符号输入单元16将指示索引j是对应于正常状态变量还是对应于不等式约束变量的约束标识符号输入至块Bj。约束标识符号包括用于识别(不与不等式约束变量对应的)无约束、仅上限的约束、仅下限的约束或者上限与下限两者的约束的标识码。
例如,标识码di由2位(di1和di2)表示。标识码di=00指示索引i是正常状态变量的索引。标识码di=01指示索引i是仅上限的约束(或与仅上限的约束相对应的不等式约束变量)的索引。标识码di=10指示索引i是仅下限的约束(或与仅下限的约束相对应的不等式约束变量)的索引。标识码di=11指示索引i是上限和下限两者的约束(或与上限和下限两者的约束相对应的不等式约束变量)的索引。
约束标识符号还包括针对标识码的上限值和下限值的指定。例如,约束标识符号成为(标识码、上限值和下限值)的集合。
在等式约束的情况下,使用标识码di=11,并且如以上所描述的使上限值和下限值匹配。ΔE计算单元12aj根据标识码计算针对索引j的ΔEj。ΔC计算单元15a1j至15aKj根据标识码计算针对索引j的ΔC1j至ΔCKj。下面将描述用于根据标识码计算ΔEj以及ΔC1j至ΔCKj的方法的示例。
图6是示出确定单元的电路配置示例的图。
确定单元14aj包括偏移值生成单元21、随机数生成单元22、噪声值生成单元23、符号反转电路24、加法器25和26以及比较器27。
偏移值生成单元21基于从选择单元14b输出的指示转变适当性的标志来生成偏移值Eoff(Eoff≥0),并将该偏移值提供至加法器25。具体地,当从选择单元14b输出的标志指示可能转变时,偏移值生成单元21将偏移值重置为0。当从选择单元14b输出的标志指示不可能转变时,偏移值生成单元21将增量值ΔEoff与偏移值相加。当该标志连续地指示不可能转变时,偏移值生成单元21对ΔEoff进行合并以使Eoff增加ΔEoff
随机数生成单元22生成均匀随机数u(0<u≤1),并将该均匀随机数u输出至噪声值生成单元23。
噪声值生成单元23根据使用规则(例如,Metropolis方法)保持预定的转换表。噪声值生成单元23通过使用均匀随机数u和由控制单元(或控制电路)提供的指示温度T的温度信息,根据转换表基于公式8来生成与噪声值(热噪声)相对应的-T·ln(u)的值。噪声值生成单元23将所生成的-T·ln(u)的值输出至加法器26。
符号反转电路24将从加法器13cKj提供的总能量的变化值(ΔEj+ΔCj)的符号反转,并将经反转的符号提供至加法器25。
加法器25将偏移值Eoff与从符号反转电路24提供的-(ΔEj+ΔCj)相加,并将相加结果提供至加法器26。
加法器26将热噪声-T·ln(u)与从加法器25提供的-(ΔEj+ΔCj)+Eoff相加,并将相加结果提供至比较器27。
比较器27将从加法器26输出的评价值(-(ΔEj+ΔCj)+Eoff-T·ln(u))与阈值(具体地,为0)进行比较以基于公式8执行确定。当评价值大于或等于0时,比较器27将指示可能转变的标志(Fj=1)输出至选择单元14b。当评价值小于0时,比较器27将指示不可能转变的标志(Fj=0)输出至选择单元14b。
此处,当从选择单元14b输出的标志指示不可能转变时,认为当前状态落入局部解。通过经由偏移值生成单元21将Eoff与-(ΔEj+ΔCj)相加并逐渐增加Eoff容易允许状态转变,并且在当前状态处于局部解时促进从局部解的逃离(escape)。
接下来,将描述选择单元14b的电路配置示例。
图7是示出选择单元的电路配置示例的图。
选择单元14b包括在多个级中以树形耦接的多个选择器单元以及随机数位生成单元32a、32b、……32r。针对以树形耦接的多个选择器单元的每一级设置随机数位生成单元32a至32r。随机数位生成单元32a至32r中的每一个生成具有值0或1的1位随机数,并将所生成的随机数提供至每一级的选择电路。1位随机数用于选择输入标志对中的一个输入标志。
从确定单元14a1至14aN中的每个确定单元输出的指示转变适当性的标志的集合被输入至第一级中的选择器单元31a1、31a2、……和31ap中的每个选择器单元。例如,成对的从第一确定单元14a1输出的标志和从第二确定单元14a2输出的标志被输入至选择器单元31al。另外,成对的从第三确定单元输出的标志和从第四确定单元输出的标志被输入至选择器单元31a2。此后,类似地,成对的从第N-1确定单元输出的标志和从第N确定单元14aN输出的标志被输入至选择器单元31ap。这样,从相邻确定单元输出的成对的标志被输入至第一级中的选择器单元。第一级中的选择器单元31a1至31ap的数量为N/2。此后,每经过一级时,选择器单元的数量减半。
选择器单元31a1至31ap中的每一个基于输入标志对以及从随机数位生成单元32a输出的1位随机数来选择所述输入标志对中的一个输入标志。选择器单元31a1至31ap中的每一个将状态信号输出至第二级中的选择器单元31b1至31bq:所述状态信号包括所选择的标志以及与所选择的标志相对应的1位的标识值。例如,从选择器单元31a1输出的状态信号和从选择器单元31a2输出的状态信号被输入至选择器单元31b1。类似地,从选择器单元31a1至31ap中的相邻选择器单元输出的状态信号对被输入至第二级中的选择器单元。
选择器单元31b1至31bp中的每一个基于输入状态信号对和从随机数位生成单元32b输出的1位随机数来选择输入状态信号中的一个状态信号。各个选择器单元31b1至31bp将所选择的状态信号输出至第三级中的选择器单元31c1……。此处,选择器单元31b1至31bq通过向包括在所选择的状态信号中的状态信号加1位来执行更新以指示哪个状态信号被选择,并且将所选择的状态信号输出。
第三级及后续级中的选择器单元也执行类似的处理,由每一级中的选择器单元将标识值的位宽增加1位,并且将作为选择单元14b的输出的状态信号从最后一级中的选择器单元31r输出。包括在从选择单元14b输出的状态信号中的标识值与由二进制数表示的索引相对应。在图7所示的电路配置示例中,变量的索引从0开始(可以将通过将选择单元14b输出的标识值加1而获得的值设置为索引以与从1开始的索引相对应)。
例如,图7示出了选择器单元31bq的电路配置示例。第二级和后续级中的其他选择器单元也通过与选择器单元31bq的电路配置类似的电路配置来实现。
选择器单元31bq的输入是第一状态信号(状态_1)和第二状态信号(状态_2)。选择器单元31bq的输出是状态信号(状态)。选择器单元31bq包括OR(或)电路41、NAND(与非)电路42以及选择器43和44。
包括在状态信号(状态_1)中的标志(标志1)以及包括在状态信号(状态_2)中的标志(标志2)被输入至OR电路41。例如,状态信号(状态_1)是前级中的两个选择器单元的较高侧(索引的较大侧)上的输出,并且状态信号(状态_2)是前级中的两个选择器单元的较低侧(索引的较小侧)上的输出。OR电路41输出标志1和标志2的OR运算结果(标志)。
标志1和标志2被输入至NAND电路42。NAND电路42将标志1和标志2的NAND运算结果输出至选择器43的选择信号输入端子。
选择器43接收标志1和1位随机数(rand)。选择器43基于从NAND电路42输入的NAND运算结果来选择并输出标志1或rand。例如,当NAND电路42的NAND运算结果为“1”时,选择器43选择标志1,并且当NAND电路42的NAND运算结果为“0”,选择器43选择rand。
选择器44接收包括在状态信号(状态_1)中的标识值(索引1)以及包括在状态信号(状态_2)中的标识值(索引2)。选择器43的选择结果被输入至选择器44的选择信号输入端子。选择器44基于选择器43的选择结果选择并输出索引1或索引2。例如,当选择器43的选择结果为“1”时,选择器44选择索引1,并且当选择器43的选择结果为“0”时,选择器44选择索引2。
来自OR电路41以及选择器43和44的输出集合是从选择器单元31bq输出的状态信号(状态)。
第一级中的选择器单元的输入不包括标识值。因此,第一级中的选择器单元变成这样的电路:该电路将与所选择的值相对应的位值(在较低侧的情况下为“0”,在较高侧的情况下为“1”)作为标识值(在该图中被表示为索引)相加并输出相加结果。
这样,选择单元14b在锦标赛(tournament)模式下选择可能转变的自旋位中的一个自旋位。在锦标赛的每场比赛中(即在每个选择电路中的选择中),将胜者(即所选择的一个)的条目号(0或1)添加至索引字的高位。从最后一级中的选择器单元31r输出的索引指示所选择的自旋位。例如,当变量的数量N为1024时,从最后一级中的选择器单元31r输出的状态信号包括指示转变适当性的标志和由10位表示的索引。
然而,也可以考虑除了如以上所描述的通过选择单元14b生成的方法之外的方法作为索引输出方法。例如,与每个确定单元相对应的索引可以被从确定单元14a1至14aN中的每一个提供至选择单元14b,并且选择单元14b可以选择与标志相对应的索引以及指示转变适当性的标志。在这种情况下,确定单元14a1至14aN中的每一个还包括用于存储与其自身相对应的索引的索引寄存器,并且将索引从索引寄存器提供至选择单元14b。
图8是示出针对每个变量的ΔE和ΔC的计算示例的图。
优化装置10针对与所有i(i=1至N)有关的(x1,h1)、(x2,h2)、……、(xN,hN)和标识码di并行执行以下过程。
(S1)优化装置10确定是否i∈Ω。如果不满足i∈Ω,则处理进行至步骤S2和步骤S2a。如果满足i∈Ω,则处理进行至步骤S3和步骤S3a。是否i∈Ω可以通过di=(di1,di2)确定。即,如果di1和di2中的至少一个是1(di=01、10、11),则满足i∈Ω。另外,如果di1和di2两者均为0(di=00),则不满足i∈Ω。
(S2)优化装置10将ΔEi设置为通过公式2计算的值(ΔEi=(2xi-1)hi)。
(S2a)优化装置10对于所有索引j设置ΔCij=0。
(S3)优化装置10基于存储在保持矩阵W的寄存器R1中的系数aij,针对所有索引j将ΔCij设置为通过公式16计算的值。用于计算ΔCij的局部字段hi被从保持hi的寄存器提供至针对不等式约束i计算ΔCij的每个ΔC计算单元。
(S3a)优化装置10被假设为ΔEi=Emax。此处,Emax是非常大的值并且是始终由确定单元14ai确定使Fi=0的值。例如,可以认为Emax是可以被设置为ΔEi的值中的最大值。
另外,优化装置10通过使用以下电路来监视与总能量Etot(x)中的QUBO项相对应的能量E(x)。
图9是示出用于计算与函数E(x)相对应的能量的电路配置示例的图。
优化装置10还包括能量计算单元17和控制单元18。
能量计算单元17计算与总能量Etot(x)中的QUBO项相对应的能量E(x)。能量计算单元17基于由更新控制单元14选择的改变对象的状态变量的标识信息,选择从能量变化计算单元12输出的多个能量变化值中的任何一个能量变化值。能量计算单元17通过对所选择的变化值进行累加来计算与保持在状态保持单元11中的多个状态变量的值相对应的能量值E(x)。具体地,能量计算单元17包括选择单元17a和累加器17b。
选择单元17a从选择单元14b接收要被反转的状态变量的索引i的选择结果。选择单元17a在从能量变化计算单元12输出的ΔEi(i=1,……,n)中选择与从选择单元14b提供的索引i相对应的ΔEi,并将所选择的ΔEi输出至累加器17b。
累加器17b保持能量E(x)的值、将从选择单元17a提供的ΔEi累加在能量E(x)的值中、更新与状态变量的当前值相对应的能量E(x)并输出能量E(x)。在针对状态向量的初始值开始进行操作时将能量E(x)的初始值施加至累加器17b。
控制单元18对优化装置10中的搜索单元D1的操作进行控制。此处,搜索单元D1是包括状态保持单元11、能量变化计算单元12、惩罚加法单元13、更新控制单元14、约束超出量计算单元15、约束标识符号输入单元16、选择单元17a和累加器17b的电路块。控制单元18控制搜索单元D1的搜索次数(状态变量的反转次数)、温度设置等。控制单元18由电子电路实现。控制单元18也被称为控制电路。
优化装置10可以根据图9所示的电路配置来监视与QUBO项相对应的能量E(x)。通过根据图9的电路配置来监视能量E(x),存在如下优点:即使在不等式约束中的不等式约束项中的系数λi的值相对大时,也不存在能量E(x)的计算的溢出。
接下来,将描述由优化装置10执行的操作过程。
图10是示出优化装置的操作示例的流程图。
(S10)控制单元18对搜索单元D1进行初始化。例如,控制单元18接收外部设置例如温度、针对温度的重复计数C1或温度更新计数C2,并且将初始温度设置在搜索单元D1中。另外,控制单元18设置约束标识符号输入单元16中的约束标识符号。控制单元18设置状态保持单元11中的初始状态。此时,控制单元18将通过约束标识符号指定为不等式约束变量的变量的值设置为0。另外,控制单元18将与权重W、系数λ和每个变量相对应的局部字段的初始值设置至预定寄存器,并且将与初始状态相对应的能量E(x)设置在累加器17b中。当初始化完成时,控制单元18使搜索单元D1开始操作。
虽然以下步骤S11和S12是通过关注块Bj而描述的,但是步骤S11和S12在块B1至BN中并行执行。
(S11)块Bj读取hj和xj。如以上所描述的,hj被保持在预定寄存器中。xj被保持在状态保持单元11中。
(S12)块Bj基于图8中的过程计算ΔCij和ΔEj、基于ΔCij计算ΔCj、并且获得ΔEtotj=ΔEj+ΔCj。块Bj将Eoff与-(ΔEj+ΔCj)相加,并且还基于通过将热噪声-T·ln(u)相加而获得的评价值与阈值的确定来输出标志Fj
(S13)选择单元14b基于从块B1至BN输出的标志F1至FN选择反转对象的索引i,并将所选择的索引i提供至状态保持单元11。
(S14)状态保持单元11将与从选择单元14b提供的索引i相对应的状态变量xi的值反转(改变),从而更新状态并且更新(基于公式4更新)保持在预定寄存器中的与每个变量相对应的局部字段h。在该步骤的描述中,改变对象的索引被表示为i。基于公式13的不等式约束变量的局部字段的值也通过该更新被更新。
(S15)在当前温度下,控制单元18确定状态变量是否被更新指定次数C1。当更新仅被执行指定次数C1时,处理进行至步骤S16。当更新未被执行指定次数C1时,处理进行至步骤S11。
(S16)控制单元18对温度进行更新。因此,设置在搜索单元D1中的温度T被降低。每当更新指定次数C1时,控制单元18根据预定方法降低设置在搜索单元D1中的温度T。
(S17)控制单元18确定温度是否被更新指定次数C2。当温度被更新指定次数C2时,处理进行至步骤S18。当温度未被更新指定次数C2时,处理进行至步骤S11。
(S18)控制单元18输出与从累加器17b输出的最低能量(能量E(x)的最小值)相对应的状态。例如,控制单元18可以将搜索单元D1最终达到的状态输出为与最低能量相对应的状态。可替选地,控制单元18可以输出搜索单元D1在搜索过程期间达到的与最低能量相对应的状态。
此处,在步骤S12中,惩罚加法单元13如下所述将惩罚值与能量变化值相加,从而计算总能量变化值ΔEtotj=ΔEj+ΔCj(j∈ψ)。
例如,惩罚加法单元13通过将基于耦合系数aij(i∈Ω)和阈值(Cui和Cli)计算出的约束超出量的变化值ΔCij与指示不等式约束i的重要性的重要性系数λi相乘来计算惩罚值ΔCj,并将所计算的惩罚值与ΔEj相加。当存在多个不等式约束时,惩罚加法单元13获得针对i的每个不等式约束的λiΔCij之和,从而获得ΔCj。可以通过重要性系数对针对QUBO项的不等式约束的权重或者当存在多个不等式约束时每个不等式约束的权重进行调整,并进行求解。
另外,当不等式约束是针对上限约束值Cui(i∈Ω)的不等式约束时,惩罚加法单元13将根据第一超出量针对第一阈值Cui沿正方向的变化值的第一惩罚值ΔCj与多个能量变化值ΔEj中的每一个相加,所述第一超出量是基于第一耦合系数aij和第一阈值Cui计算的。
另外,当不等式约束是针对下限约束值Cli的不等式约束时,惩罚加法单元13将根据第二超出量针对第二阈值Cli沿负方向的变化值的第二惩罚值ΔCj与多个能量变化值ΔEj中的每一个相加,所述第二超出量是基于第二耦合系数aij和第二阈值Cli计算的。
另外,当不等式约束是针对上限约束值Cui和下限约束值Cli的不等式约束时,惩罚加法单元13将根据第三超出量针对第三阈值Cui沿正方向的变化值与第四超出量针对第四阈值Cli沿负方向的变化值之间的较大变化值的第三惩罚值ΔCj与多个能量变化值ΔEj中的每一个相加,所述第三超出量是基于第三耦合系数aij和第三阈值Cui计算的,所述第四超出量是基于第三耦合系数aij和小于第三阈值Cui的第四阈值Cli计算的。
另外,在针对预定约束值的等式约束的情况下,惩罚加法单元13将根据第五超出量针对第五阈值Cui=Cli沿正方向的变化值与第六超出量针对第五阈值Cui=Cli沿负方向的变化值之间的较大变化值的第四惩罚值ΔCj与多个能量变化值ΔEj中的每一个相加,第五超出量是基于第四耦合系数aij和第五阈值Cui=Cli计算的。
图11A和图11B是示出求解结果之间的比较的示例的图。
图11A示出了包括不等式约束的优化问题的求解结果的示例,其中,针对该问题使用了优化装置10。图11B示出了当以状态变量的二次形式表示不等式约束时(在平方约束的情况下)优化问题的求解结果的示例,其中,针对该问题使用了不包括惩罚加法单元13的现有优化装置。
此处,在图11A和图11B中,考虑背包问题作为优化问题的示例。当通过使用现有优化装置(不包括惩罚加法单元13)求解背包问题时,该问题可以如下被公式化。
此处考虑的背包问题是这样的问题:将N件物品(索引为i的物品的重量为wi且价格为vi)投入具有装载容量C的背包中并且使背包中的物品的总价格(总价值)最大化。当商品i被投入背包时,状态变量xi=1,并且当商品i未被投入背包时,状态变量xi=0。
在这种情况下,背包中的物品的总价值V由公式18表示。
[公式18]
另外,背包的容量约束由公式19表示。
[公式19]
通过使用松弛变量S(S≥0),将公式19的容量约束通过公式20表示。
[公式20]
基于公式20,由公式21表示QUBO的目标函数E。
[公式21]
认为S如公式22那样被二进制扩展并且按照状态变量xi和yi的QUBO形式求解。状态变量xi和yi的QUBO形式由公式23表示。
[公式22]
[公式23]
由于松弛变量S在优化中变为相对小的值,因此即使S=0,也可以获得最优解。因此,得到公式24。
[公式24]
在图11A和图11B的比较中,准备以下测试数据以执行实验。
背包容量C=4952991。每个物品的重量W=D1至DN是分别将100000与区间[0,100]中的均匀随机数相加获得的值。每个物品的价格P=P1至PN是分别生成为区间[1,1000]中的均匀随机数的值。
另外,实验条件如下。首先,将针对不等式约束的重要性系数λ设置为λ=10^z且z从-10到10逐1增加。其次,分别设置温度T=5、10、50、100和500(初始温度),并且通过使用根据Metropolis标准的Monte Carlo方法来执行操作。第三,准备随机数u的100个初始值,并且如果存在给出满足约束中至少之一的解的初始值,则“获得解”。
在图11A和图11B的比较中,针对优化装置10的包括不等式约束(绝对值约束)的能量函数E(x)由公式25表示。
[公式25]
另外,图11A和图11B中的比较中的平方约束的情况下的能量函数E(x)由公式26表示。
[公式26]
然而,在公式26中,由于对于松弛变量而言小值是最优的,因此将松弛变量设置为0。
图11A和图11B的每个曲线图的横轴是λ=10^z中的z。图11A和图11B的每个曲线图的纵轴是价值Pi的总价值(最大值)。当不满足约束时,Pi=0。
在以上实验条件下,在绝对值约束下,如果在任何温度下λ均大于或等于10^(-1),则获得解,而在平方约束下,所有Pi=0且无法获得满足约束的解。因此,当扩展λ的范围并且将温度T设置为大,使得T=10^10、10^15和10^20时,在平方约束下仅在有限范围内获得解,并且发现通过平方约束在搜索中会产生相对大的成本。
认为当系数λ相对小时不能获得解的原因是不等式约束项的值小于总值,并且因此,约束几乎被忽略并且获得满足约束的解的可能性减少。
在图11A中,序列p1是T=10^10的情况。序列p2是T=10^15的情况。序列p3是T=10^20的情况。序列p4是T=5的情况。序列p5是T=10的情况。序列p6是T=50的情况。序列p7是T=100的情况。序列p8是T=500的情况。
在图11B中,序列q1是T=10^10的情况。序列q2是T=10^15的情况。序列q3是T=10^20的情况。在图11B所示的平方约束的示例中,没有获得与温度T=5、10、50、100和500相对应的序列的解,并且因此省略了其图示。
在平方约束的情况下,认为这样的结果的原因在于平方约束的能量函数的等式。即,当背包中包含的物品的总重量接近背包的容量时,即使物品被移除,基于公式26的能量也增加,并且因此可能不能执行搜索。特别是,在平方约束的情况下,与由通过二次项的线性项表示的绝对值约束的情况相比,不等式约束项对公式26的能量函数E(x)的值的贡献可能会过多。
此处,由于在优化问题中包括各种约束条件,因此可能难以仅以二次形式来公式化问题。除了上述示例之外,可能经常出现由不等式表示的约束,诸如所需资源量不超过上限或者不下降到下限以下,例如,诸如车辆调度配送问题的装载量的上限、用于建造工厂的预算的上限等。
存在以下问题:可能难以通过现有的优化装置以二次形式来求解这些不等式约束,并且在进行搜索以严格满足不等式约束时可能难以达到最优解。这是因为在不通过打破不等式约束的中间状态的情况下,通常不可能达到最优解。
因此,通过使用具有惩罚加法单元13的优化装置10,即使不将不等式约束变换为二次形式,也可以容易地将不等式约束处理为原始线性表达式。
如图11A和图11B例示的,与现有优化装置相比,根据优化装置10可以在系数λ和温度T的宽范围内获得解。因此,与平方约束的情况相比,可以更容易地处理不等式约束,并且可以扩展可以成为运算对象的问题的种类。即,可以扩展优化装置10的应用范围,并且可以将优化装置10用于求解更多问题。
在上述示例中,通过针对k∈Ω设置xk=0且ΔEk=Emax,抑制了变量xk对能量E(x)的影响,但是可以通过使用不对称耦合系数作为系数akj来抑制变量xk对能量E(x)的影响。如以上所描述的,不对称耦合系数被表示为akj≠0,ajk=0。通过使用变量之间的权重值的符号W,可以将不对称耦合系数表示为Wkj≠0且Wjk=0。
即,状态保持单元11可以保持针对状态变量以及与不等式约束相对应的不等式约束变量的集合的耦合系数aij。耦合系数aij可以是不对称耦合系数:在不对称耦合系数中,不等式约束变量xk(k∈Ω)的局部字段hk中的状态变量xj的权重(akj)被设置为除0之外的值,并且状态变量xj的局部字段hj中的不等式约束变量xk的权重(ajk)被设置为0。
当使用不对称耦合系数时,即使选择单元14b将不等式约束变量选择为反转对象,也可以抑制变量xk的反转对能量E(x)的影响。
接下来,将描述第一实施方式的另一配置示例。首先,将描述包括优化装置10的优化系统的示例。
图12是示出优化系统的示例的图。
优化系统100包括优化装置10和信息处理装置110。
信息处理装置110包括中央处理单元(CPU)111、存储器112和总线113。
CPU 111是控制信息处理装置110的处理器。CPU 111执行存储在存储器112中的程序。存储器112是例如随机存取存储器(RAM),并且存储由CPU 111执行的程序以及由CPU111处理的数据。总线113是例如内部总线,例如外围部件互连高速(PCIe)总线。CPU 111、存储器112和优化装置10耦接至总线113。
CPU 111针对优化装置10设置温度T,并且经由总线113接收关于指定次数C1和C2的信息。另外,CPU 111将约束标识符号(包括标识码、上限值和下限值)以及针对每个不等式约束的系数λ输入至优化装置10。控制单元18基于由此输入的输入信息对搜索单元D1进行设置。例如,用户可以通过操作耦接至信息处理装置110的(未示出的)输入单元将约束标识符号或系数λ设置在信息处理装置110中。
通过这样做,优化装置10被耦接至信息处理装置110,并且被用作针对包括不等式约束的组合优化问题通过硬件以高速执行操作的加速器。
接下来,将描述优化装置的另一电路配置示例。
图13是示出优化装置的另一电路配置示例的图。
优化装置10a包括搜索单元D2和控制单元18a。搜索单元D2包括状态保持单元11a、寄存器11b1至11bN、h计算单元11c1至11cN、ΔE计算单元12a1至12aN、ΔC加法单元13d1至13dN、确定单元14a1至14aN以及选择单元14b。
此处,在图13中,如“hi”计算单元等中的情况一样,用下标i表示h计算单元11c1至11cN、ΔE计算单元12a1至12aN以及ΔC加法单元13d1至13dN的名称,使得容易理解与索引i的状态变量的对应。另外,状态保持单元11a、寄存器11b1至11bN以及h计算单元11c1至11cN与以上所描述的状态保持单元11相对应。
状态保持单元11a保持状态向量。状态保持单元11a基于从选择单元14b提供的更新信号,通过对状态向量中的一个状态变量的值进行反转来更新状态向量。更新信号指示要被反转的状态变量的索引。
寄存器11b1、h计算单元11c1、ΔE计算单元12a1、ΔC加法单元13d1和确定单元14a1对第一状态变量执行操作。寄存器11b2、h计算单元11c2、ΔE计算单元12a2、ΔC加法单元13d2和确定单元14a2对第二自旋位执行操作。类似地,在符号例如“11b1”和“12a1”末尾的数值i指示执行与索引i的状态变量相对应的操作。即,搜索单元D2包括寄存器、h计算单元、ΔE计算单元、ΔC加法单元和确定单元的N个集合(一个集合是对1个自旋位执行操作的操作处理电路的一个单元,其也可以称为“神经元”)。这N个集合对与相应集合相对应的状态变量并行地执行操作。
尽管某一神经元中的ΔC加法单元接收在另一神经元中的寄存器中保持的权重值以及由h计算单元保持的局部字段,但是该ΔC加法单元与另一神经元中的寄存器和h计算单元之间的信号线未示出。
例如,在ΔC加法单元13d1的示例中,将W11、W21、……、WN1中的与不等式约束变量xk(k∈Ω)相对应的一个或更多个权重值(Wk1=ak1)提供至ΔC加法单元13d1。另外,在h计算单元11c1至11cN中将与不等式约束变量xk相对应的一个或更多个局部字段(hk)提供至ΔC加法单元13d1。即使将与状态变量xi(i∈ψ)相对应的Wil或hi提供至ΔC加法单元13d1,也可以基于图8所示的标识码通过控制将ΔC加法单元13d1设置为ΔCi1=0。
另外,在ΔC加法单元13d2的示例中,将W12、W22、……、WN2中的与不等式约束变量xk(k∈Ω)相对应的一个或更多个权重值(Wk2=ak2)提供至ΔC加法单元13d2。另外,在h计算单元11c1至11cN中将与不等式约束变量xk相对应的一个或更多个局部字段(hk)提供至ΔC加法单元13d2。即使将与状态变量xi(i∈ψ)相对应的Wi2或hi提供至ΔC加法单元13d2,也可以基于标识码通过控制将ΔC加法单元13d2设置为ΔCi2=0。
在下文中,将主要例示和描述寄存器11b1、h计算单元11cl、ΔE计算单元12al、ΔC加法单元13dl和确定单元14al。被配置成具有相似名称的寄存器11b2至11bN、h计算单元11c2至11cN、ΔE计算单元12a2至12aN、ΔC加法单元13d2至13dN以及确定单元14a2至14aN也具有相似的功能。
寄存器11b1是存储单元,其存储状态变量x1与其他状态变量之间的权重值Wlj(j=1至N)。另外,对于状态变量的数量N,权重值的总数为N^2。寄存器11b1存储N个权重值。
寄存器11b1存储针对索引1的N个权重值W11、W12、……、W1N。Wii=W11=0。寄存器11b1将与由选择单元14b提供的索引=j相对应的权重值W1j输出至h计算单元11c1。
h计算单元11c1通过使用从寄存器11b1提供的权重系数W1j基于公式3和公式4计算局部字段h1。h计算单元11c1包括用于保持先前计算的局部字段h1的寄存器,并且通过将根据由索引=j指示的状态变量的反转方向的δh1 (j)合并至h1来更新存储在寄存器中的h1。根据问题将h1的初始值预先设置在h计算单元11c1的寄存器中。另外,也根据问题将b1的值预先设置在h计算单元11c1的寄存器中。h计算单元11c1将所计算的局部字段h1输出至ΔE计算单元12a1。
ΔE计算单元12a1基于从h计算单元11c1提供的局部字段h1通过公式2来计算ΔE1,并将所计算的值输出至ΔC加法单元13d1。此处,ΔE计算单元12a1通过根据状态变量x1的反转方向对h1的符号进行确定来计算ΔE1
ΔC加法单元13d1基于公式15根据针对不等式约束的超出量的变化值来计算惩罚值ΔC1,并将ΔC1与从ΔE计算单元12a1提供的ΔE1相加。ΔC加法单元13d1将ΔE1+ΔC1输出至确定单元14a1。
确定单元14a1基于从ΔC加法单元13d1提供的ΔE1+ΔC1,将指示反转适当性的标志F1输出至选择单元14b。
选择单元14b基于从确定单元14a1至14aN提供的标志F1至FN选择反转对象的状态变量的索引j,并将索引j提供至状态保持单元11a以及寄存器11b1至11bN。尽管选择单元14b将指示是否选择了反转对象的状态变量的索引j的标志提供至确定单元14a1至14aN以促进偏移值的产生,但是通过其提供标志的信号线未示出。
控制单元18a针对搜索单元D2中的确定单元14a1至14aN设置温度T、控制状态变量的更新次数并将约束标识符号输入至ΔE计算单元12a1至12aN以及ΔC加法单元13d1至13dN。ΔE计算单元12a1至12aN的ΔE计算以及ΔC加法单元13d1至13dN的ΔC计算如图8所示受约束标识符号控制。
优化装置10a还可以像优化装置10一样有效地求解包括不等式约束的优化问题。通过使用优化装置10a,可以容易地处理不等式约束,并且可以扩展可以属于操作对象的问题的类型。即,可以扩展优化装置10a的应用范围,并且可以将优化装置10a用于求解更多的问题。
[第二实施方式]
接下来,将描述第二实施方式。将主要描述与以上描述的第一实施方式不同的项,并且将省略共同项的描述。
第一实施方式例示了优化装置10或优化装置10a包括单个搜索单元的配置。同时,在包括多个搜索单元的优化装置中,还考虑用于通过使用副本交换方法来求解优化问题的配置。
图14是示出根据第二实施方式的优化装置的示例的图。
优化装置50包括搜索单元51a1至51aM(M(M是大于或等于2的整数)个搜索单元)和交换控制单元52。
搜索单元51a1至51aM均具有与根据第一实施方式的搜索单元D1或搜索单元D2的配置相同的电路配置。图14示出了搜索单元51aj的示例。
搜索单元51aj包括状态保持单元11、能量变化计算单元12、惩罚加法单元13、更新控制单元14、约束超出量计算单元15和约束标识符号输入单元16。状态保持单元11、能量变化计算单元12、惩罚加法单元13、更新控制单元14、约束超出量计算单元15和约束标识符号输入单元16的功能分别与根据第一实施方式的类似名称的元件的功能相同。另外,搜索单元51aj还包括(未示出的)能量计算单元17。
交换控制单元52针对相应搜索单元51a1至51aM设置不同的温度值,并且通过使用搜索单元51a1至51aM来控制基于副本交换方法的基态搜索。在搜索单元51a1至51aM中的每个搜索单元达到基态搜索的重复次数之后或者在经过了一定时间之后,交换控制单元52在搜索单元之间交换保持在相应搜索单元中的温度值或状态变量的值。例如,认为交换控制单元52在具有相邻温度的成对的两个搜索单元中以预定概率(交换概率)交换温度。例如,将基于metropolis方法的概率用作交换概率。可替选地,代替温度,交换控制单元52可以在具有相邻温度的成对的两个搜索单元中交换由两个搜索单元保持的状态(多个状态变量的值)或者与相应状态变量相对应的局部字段。
根据优化装置50,即使在使用副本交换方法时,也可以有效地求解包括不等式约束的优化问题。根据优化装置50,可以容易地处理不等式约束,并且可以扩展可能成为操作对象的问题的类型。可以扩展优化装置50的应用范围,并且可以将优化装置50用于求解更多的问题。

Claims (11)

1.一种优化系统,包括:
信息处理装置,包括存储器和耦接至所述存储器的处理器;以及
优化装置,所述优化装置耦接至所述信息处理装置,并且包括:
状态保持电路,被配置为保持在表示能量的伊辛型能量函数中使用的多个状态变量的值;
运算电路,被配置为在所述多个状态变量的任何值改变的情况下,基于所述多个状态变量的值和权重值计算在所述多个状态变量的值中的每个值被设置为下一变化候选时的能量变化值,作为能量变化计算处理,以及通过将根据违反不等式约束的超出量的惩罚值与针对所述多个状态变量计算出的多个能量变化值中的每个能量变化值相加来计算总能量变化值作为惩罚加法处理,所述超出量是基于指示所述不等式约束中的所述多个状态变量中的每个状态变量的权重的耦合系数以及阈值来计算的;以及
更新控制电路,其包括针对各个状态变量设置的多个转变适当性确定电路和选择电路,并且被配置为基于设置温度值、随机数值和多个所述总能量变化值来改变在所述状态保持电路中保持的所述多个状态变量的任何值作为状态控制处理,
所述多个转变适当性确定电路的每一个包括将所述总能量变化值的符号反转的符号反转电路,将偏移加到具有反转的符号的总能量变化值的第一加法器、将与热噪声对应的值加到所述第一加法器的输出值的第二加法器,以及将所述第二加法器的输出值与阈值进行比较的比较器,
所述选择电路包括在多个级中以树形耦接的多个选择器以及针对各个级提供的多个随机数位生成电路,所述多个级中的第一级中的第一选择器分别接收来自所述多个转变适当性确定电路的一对输出值,所述多个级中的第二级中的第二选择器分别接收来自所述第一选择器的一对输出值,以及所述多个级中的最后一级中的最后选择器接收来自设置在所述最后一级前一步的级中的两个选择器的一对输出信号并且输出输出值作为所述多个状态变量的任何值。
2.根据权利要求1所述的优化系统,
其中,所述运算电路通过将基于所述耦合系数和所述阈值计算出的超出量的变化值与指示所述不等式约束的重要性的重要性系数相乘来计算所述惩罚值。
3.根据权利要求1或2所述的优化系统,
其中,当所述不等式约束是针对上限约束值的不等式约束时,
所述运算电路将根据第一超出量沿数字相对于第一阈值增加的正方向的变化值的第一惩罚值与所述多个能量变化值中的每个能量变化值相加,其中,所述第一超出量是基于第一耦合系数和所述第一阈值而计算的。
4.根据权利要求1或2所述的优化系统,
其中,当所述不等式约束是针对下限约束值的不等式约束时,
所述运算电路将根据第二超出量沿数字相对于第二阈值减小的负方向的变化值的第二惩罚值与所述多个能量变化值中的每个能量变化值相加,其中,所述第二超出量是基于第二耦合系数和所述第二阈值而计算的。
5.根据权利要求1或2所述的优化系统,
其中,当所述不等式约束是针对上限约束值和下限约束值的不等式约束时,
所述运算电路将根据第三超出量沿数字相对于第三阈值增加的正方向的变化值与第四超出量沿数字相对于第四阈值减小的负方向的变化值之间的较大变化值的第三惩罚值与所述多个能量变化值中的每个能量变化值相加,其中,所述第三超出量是基于第三耦合系数和所述第三阈值计算的,所述第四超出量是基于所述第三耦合系数和小于所述第三阈值的所述第四阈值计算的。
6.根据权利要求1或2所述的优化系统,
其中,所述存储器保持与所述不等式约束相对应的不等式约束变量以及针对状态变量集合的所述耦合系数,并且
其中,所述耦合系数是不对称耦合系数,在所述不对称耦合系数中,所述不等式约束变量的局部字段中的状态变量的权重被设置为除0之外的值,并且所述状态变量集合中的状态变量的局部字段中的所述不等式约束变量的权重被设置为0。
7.根据权利要求1或2所述的优化系统,其中,所述运算电路通过对所述变化值进行累加来计算与保持在所述状态保持电路中的所述多个状态变量的值相对应的能量值。
8.根据权利要求1或2所述的优化系统,其中,设置分别包括所述存储器和所述运算电路的多个电路,并且分别针对所述多个电路设置彼此不同的温度值;以及在所述多个电路中的每个电路达到基态搜索的重复次数之后或者在经过了一定时间之后,在所述多个电路之间交换所述温度值或所述多个状态变量的值。
9.根据权利要求1或2所述的优化系统,其中,所述更新控制电路使用以下式(5)使用Metropolis方法或Gibbs方法来计算接受针对所述能量变化值的所述多个状态变量中任何值的变化的转变接受概率,作为更新控制处理:
其中,ΔE为能量变化值,β是设置的温度T的倒数,并且当所述总能量变化值满足以下式(8)时,允许针对所述总能量变化值的所述多个状态变量中任何值的变化:
ln(u)×T≤-(ΔE+ΔC) (8)
其中,u是随机数值,ΔC是惩罚值,并且(ΔE+ΔC)是所述总能量变化值。
10.根据权利要求1或2所述的优化系统,其中,所述伊辛型能量函数由以下式(1)表示:
其中,xi是第i个状态变量,xj是第j个状态变量,Wij是xi与xj之间的权重值,以及bi是xi的偏置值。
11.根据权利要求10所述的优化系统,其中,使用以下式(2)、(3)和(4)计算所述能量变化值ΔE:
以及
其中,δxi是状态变量xi的值改变为1-xi时状态变量xi的增加量,δhi (j)是状态变量xj位反转时的局部字段hi的变化量。
CN202010542694.7A 2019-06-18 2020-06-15 优化装置及优化方法 Active CN112100799B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-112547 2019-06-18
JP2019112547A JP7323777B2 (ja) 2019-06-18 2019-06-18 最適化装置および最適化方法

Publications (2)

Publication Number Publication Date
CN112100799A CN112100799A (zh) 2020-12-18
CN112100799B true CN112100799B (zh) 2024-05-31

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107123994A (zh) * 2017-04-28 2017-09-01 华南理工大学 区间无功优化模型的线性化求解方法
CN107516892A (zh) * 2017-07-21 2017-12-26 重庆邮电大学 基于处理有功优化约束条件提高电能质量的方法
JP6465231B1 (ja) * 2018-03-12 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法
JP6465223B1 (ja) * 2018-02-01 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107123994A (zh) * 2017-04-28 2017-09-01 华南理工大学 区间无功优化模型的线性化求解方法
CN107516892A (zh) * 2017-07-21 2017-12-26 重庆邮电大学 基于处理有功优化约束条件提高电能质量的方法
JP6465223B1 (ja) * 2018-02-01 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法
JP6465231B1 (ja) * 2018-03-12 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法

Similar Documents

Publication Publication Date Title
EP3757908A1 (en) Optimization device and optimization method
US10885147B2 (en) Optimization apparatus and control method thereof
CN112394756B (zh) 优化装置和优化装置的控制方法
US11475346B2 (en) Optimization device and control method of optimization device
CN113821983B (zh) 基于代理模型的工程设计优化方法、装置及电子设备
CN113342403A (zh) 信息处理方法、信息处理系统和计算机可读记录介质
CN111930007B (zh) 优化装置和控制优化装置的方法
US11188044B2 (en) Optimization device and control method of optimization device
CN112487345A (zh) 优化设备、优化程序和优化方法
JP7181454B2 (ja) 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム
JP7137074B2 (ja) 最適化計算方法、最適化計算装置及び最適化計算プログラム
CN112100799B (zh) 优化装置及优化方法
Zhou et al. Adaptive multiobjective optimization of process conditions for injection molding using a Gaussian process approach
Chen et al. Stochastic approximation methods for the two-stage stochastic linear complementarity problem
CN113919504A (zh) 信息处理系统、信息处理方法及计算机可读存储介质
JP7256378B2 (ja) 最適化システムおよび最適化システムの制御方法
Abdou et al. Multi-pareto-ranking evolutionary algorithm
EP3901837A1 (en) Optimization apparatus, optimization method, and optimization program
Vořechovský et al. Correlated random variables in probabilistic simulation
CN112330023A (zh) 考虑主观需求的0-1背包问题的求解方法及电子设备
EP4216109A1 (en) Information processing apparatus, information processing method, and information processing program
US20240184626A1 (en) Processing system, processing method, and processing program
Aguirre et al. Evolutionary multiobjective design targeting a field programmable transistor array
Wahdan et al. An Efficient Optimization Algorithm for Modular Product Design.
Wu et al. A fast incremental cycle ratio algorithm

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant