首页 / 优化装置和优化方法

优化装置和优化方法有效专利 发明

技术领域

[0001] 本实施方式涉及优化装置和优化方法。

相关背景技术

[0002] 存在利用伊辛(Ising)型评估函数(也称为能量函数等)的伊辛装置(也称为波尔茨曼机)作为计算诺依曼计算机所不擅长的大规模离散优化问题的装置。
[0003] 在通过伊辛装置进行的计算中,使用伊辛模型代替要计算的问题,该伊辛模型是表示磁性材料的自旋行为的模型。然后,使用马尔可夫链蒙特卡罗方法(Markov chain Monte Carlo method)例如伪模糊方法或副本交换方法(也称为交换蒙特卡罗方法),来搜索使伊辛模型型评估函数的值(对应于伊辛模型的能量)最小化的状态。
[0004] 常规地,存在通过使用数字电路执行马尔科夫链蒙特卡罗方法来搜索使能量最小化的状态的优化装置。常规的优化装置在假设一次改变仅一个状态变量值的情况下计算能量变化量(在下文中也可以称为能量变化),并且根据通过将与温度对应的噪声值与能量变化相加而获得的值来确定是否允许位变化。也以预定的概率允许增加能量的状态变量值的变化,并且该概率随温度的降低而降低。
[0005] 顺便提及,一些优化问题存在如下的约束(独热约束):在该约束中,评估函数中包括的多个状态变量中,具有值为1的状态变量的数目为仅一个。存在一些如下的独热约束:2
在这些约束中,当N个状态变量以N行和N列的矩阵布置时,每一行和每一列中包括的状态变量值之和变为1。在下文中,这种独热约束称为双向独热约束。例如,当x1至x9以3行和3列的矩阵布置时,x1+x2+x3=1、x4+x5+x6=1、x7+x8+x9=1、x1+x4+x7=1、x2+x5+x8=1、x3+x6+x9=
1的约束为双向独热约束。旅行商问题、车辆分配计划问题、二次分配问题等具有双向独热约束。

具体实施方式

[0039] 在常规的优化装置中,一次改变的状态变量的数目为1。例如,常规的优化装置在重复具有汉明距离=1的状态转换的同时搜索具有最小能量的基态。因此,在常规的优化装置中,会发生向不满足双向独热约束的状态的转换,并且其中可能发生转换的状态的数目(搜索空间)大于满足双向独热约束的状态的数目。此外,由于双向独热约束产生的能量障碍,状态转换需要一定的时间。根据以上内容,常规的优化装置存在以下问题:搜索具有双向独热约束的优化问题的优化解需要一定的时间。
[0040] 在实施方式的一个方面,提供了缩短具有双向独热约束的优化问题的计算时间的解决方案。
[0041] 在下文中,将参照附图描述实施方式。
[0042] (第一实施方式)
[0043] 图1是示出第一实施方式的优化装置的示例的图。
[0044] 优化装置10通过排除对满足双向独热约束的状态之外的状态的搜索来缩短具有双向独热约束的优化问题的计算时间。
[0045] 在伊辛模型中对优化问题进行建模。所建模的伊辛模型的能量由例如如以下等式(1)所示的评估函数(E(x))来定义。
[0046]
[0047] 右侧的第一项是针对可以从伊辛模型中包括的所有状态变量中选择的两个状态变量的所有组合,在没有遗漏和重复的情况下,通过对两个状态变量的值与加权系数的乘积进行整合而获得的。xi是具有索引=i的状态变量。xj是具有索引=j的状态变量,Wij是指示具有索引=i和j的状态变量之间的权重(例如,结合强度)的加权系数。注意Wii=0。此外,在许多情况下,Wij=Wji(例如,基于加权系数的系数矩阵通常是对称矩阵)。
[0048] 右侧的第二项是所有状态变量中的每一个的偏置系数与状态变量值的乘积的和。bi指示具有索引=i的状态变量的偏置系数,c是常数。
[0049] 例如,伊辛模型中自旋的“‑1”对应于状态变量的值“0”。伊辛模型中自旋的值“+1”对应于状态变量的值“1”。为此,状态变量也可以称为取值0或1的位。
[0050] 使等式(1)的值最小化的状态变量的值的组合是问题的解(最优解)。
[0051] 注意,在等式(1)中,当xi的值改变,并且变成1‑xi时,xi的增量可以表示为Δxi=(1‑xi)‑xi=1‑2xi。与该值的变化相关联的能量变化(ΔEi)由下面的等式(2)表示。
[0052]
[0053] 在等式(2)中,当xi从1变为0时,Δxi变为‑1,以及当xi从0变为1时,Δxi变为1。注意,hi称为局部字段,并且ΔEi是通过将hi乘以取决于Δxi的代码(+1或‑1)而得到的。换句话说,hi表示由于xi变化了1而导致的伊辛模型的能量变化的大小。
[0054] 当xj从0变为1时引起的hi的变化量为Δhi(j)=+Wij,并且当xj从1变为0时引起的hi(j)的变化量为Δhi =‑Wij。类似地,当xi改变时引起的针对xj的hj的变化量可以表示为Δhj(i)
=ΔxiWij。
[0055] 同时,在排除对满足双向独热约束的状态之外的状态的搜索的情况下,在一次状态转换中,改变四个状态变量的值。
[0056] 在下文中,评估函数中包括的n=N2(N为等于或大于2的整数)的状态变量经受双向独热约束。
[0057] 通过在一次状态转换中改变四个状态变量的值以满足如下的约束,可以排除对满足双向独热约束的状态之外的状态的搜索:当状态变量以N行和N列排列时,每一行和每一列中包括的状态变量的值之和变为1。
[0058] 注意,在满足双向独热约束的状态中选择具有值为0的状态变量中的一个作为要更新的候选的情况下,确定其他三个要更新的候选的状态变量。
[0059] 图1示出了通过改变具有索引=i、j、k和l的4个状态变量(xi、xj、xk、xl)的值的状态转换的示例。在作为具有值为0的状态变量的xj为要更新的候选的情况下,作为包括在与xj相同的行和列中的状态变量中的具有值为1的状态变量的xi和xl为要更新的候选。此外,包括在与xi相同的列和与xl相同的行中的状态变量中的具有值为0的xk为要更新的候选。
[0060] ΔEj可以由以下等式(3)表示,在等式(3)中,在这四个状态变量的值被改变时发生的伊辛模型的能量变化为ΔEj。
[0061] ΔEj=(hi+hl)‑(hj+hk)‑(Wil+Wjk)  (3)
[0062] 此外,由于xi、xj、xk和xl的变化而引起的局部字段的变化量(Δhm(m=1、2、……、n))可以由以下等式(4)表示。
[0063] Δhm=Wjm+Wkm‑(Wim+Wlm)  (4)
[0064] 在一次状态转换中改变四个状态变量的值的优化装置10包括例如,如图1所示的存储单元11、传播单元12、计算单元13、转换选择单元14和更新单元15、以及地址解码器16。注意,在图1中,未示出用于更新根据等式(4)的局部字段的电路、用于控制下文要描述的温度参数(T)的大小的控制单元等。
[0065] 存储单元11存储在等式(1)的评估函数中包括的多个加权系数。使用例如电子电路,如静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)或高带宽存储器(HBM)来实现存储单元11。
[0066] 传播单元12基于由转换选择单元14输出的要在下面描述的标识信息,向多个ΔE2 2
计算电路中的每一个传播N个局部字段中的任意,N个局部字段将由包括在计算单元13中的多个ΔE计算电路使用以计算能量变化。此外,传播单元12基于标识信息,向相应的多个ΔE计算电路传播加权系数,该加权系数要由多个ΔE计算电路使用用于能量变化。
[0067] 使用电子电路例如一个或多个总线、多个开关以及用于控制开关的控制电路来实现传播单元12。下面将描述传播单元12的示例。
[0068] 针对改变之前具有值为0的多个状态变量中的每一个,计算单元13计算在改变四个状态变量的值以满足双向独热约束的情况下发生的伊辛模型的能量变化。计算单元13包2
括多个ΔE计算电路(例如,ΔE计算电路13ai和13aj)。例如,对应于N 个状态变量,分别设
2
置N个ΔE计算电路。例如,ΔE计算电路13aj在xj为0的情况下如等式(3)所示计算ΔEj。
[0069] 此外,多个ΔE计算电路中的每一个可以包括存储单元(例如,存储单元13bi或13bj),该存储单元预先从存储单元11读取要用于如等式(3)所示计算ΔEj的加权系数(Wil或Wjk),并且存储所读取的加权系数。
[0070] 注意,为了抑制无意义的状态转换的发生,对应于具有值为1的状态变量的ΔE计算电路输出预定的正值作为能量变化。该预定正值是例如优化装置10可以生成的最大正值。例如,在优化装置10可以生成26位值的情况下,当用二进制补码表示时,最大正值为01...1(1的个数为25)。每个ΔE计算电路从存储单元15a读取与之对应的状态变量的值,并且确定是否如等式(3)所示计算能量变化或者是否输出以上正值。
[0071] 使用诸如加法电路、乘法电路(用于乘以+1或‑1的代码的电路)、和存储器(例如,寄存器或SRAM)的电子电路来实现计算单元13。
[0072] 转换选择单元14基于由计算单元13计算出的能量变化来选择允许改的四个状态变量,并且输出用于标识所选择的四个状态变量(图1中的示例中的p、q、r和s)的标识信息(索引)。
[0073] 转换选择单元14以优先考虑由计算单元13输出的多个能量变化中的在值改变时引起负能量变化的四个状态变量的变化的方式,概率地接受四个状态变量的变化。也概率地允许引起正能量变化的四个状态变量的变化。
[0074] 例如,转换选择单元14将基于温度参数(T)和从控制单元(未示出)输入的均匀随机数而生成的噪声值与由计算单元13输出的多个能量变化中的每一个进行比较。在执行伪模糊方法的情况下,例如,每当由控制单元重复更新伊辛模型的状态更新处理预定次数时,T被控制成具有较小的值,并且噪声值的绝对值也变小。转换选择单元14选择比噪声值小的能量变化,并且获取能量变化的索引。例如,转换选择单元14在选择ΔEj的情况下获取索引=j。例如,该索引被保存在各个ΔE计算电路中,并且转换选择单元14可以获取所保存的索引,或者转换选择单元14可以生成该索引。注意,在存在小于噪声值的多个能量变化的情况下,转换选择单元14例如根据预定的规则或随机地选择能量变化中的一个。
[0075] 在获取一个索引的情况下,转换选择单元14生成其他三个索引。例如,在获取索引=j的情况下,生成作为包括在与xj相同的行和相同的列中的状态变量中的具有值为1的状态变量的xi和xl的索引=i和l、以及包括在与xi相同的列和与xi相同的行中的xk的索引=k。注意,k可以由k=i+l‑j计算。
[0076] 例如,转换选择单元14可以基于存储在下面要描述的存储单元15a中的状态变量(将指示状态变量属于哪一行或哪一列的标识信息分配给该状态变量)的值来生成其他三个索引。此外,转换选择单元14可以存储管理每一行和每一列中的状态变量中的具有值为1的状态变量(热位)的索引的热位管理表,并且可以基于该表生成与以上i和l对应的两个索引。在该情况下,转换选择单元14通过以上等式(k=i+l‑j)生成与以上k对应的索引。
[0077] 使用例如随机数发生器、基于温度参数(T)生成噪声值的电路、比较器、选择器、存储热位管理表的存储单元(例如寄存器或SRAM)、加法器等来实现转换选择单元14。
[0078] 更新单元15包括存储x1至xn的值的存储单元15a。转换选择单元14将信息输出至更新单元15。
[0079] 使用例如电子电路,如将由索引指定的状态变量的值从0反转为1或从1反转为0的电路、寄存器、SRAM来实现更新单元15。
[0080] 地址解码器16指定存储单元11的地址,该存储单元11基于索引=p、q、r、s存储要用于在计算单元13中计算ΔE的加权系数。可以使用诸如各种逻辑电路的电子电路来实现地址解码器16。
[0081] 注意,以上元件可以安装在单片半导体集成电路上,或者也可以由一个位部分地实现。例如,在问题的规模较大的情况下,可以在芯片外设置存储大量加权系数的存储单元11。
[0082] 在下文中,将描述优化装置10的操作示例。
[0083] 首先,进行初始设置。在初始设置中,例如,在控制单元(未示出)的控制下,N行和N列中的x1至xn的值被设置成使得包括在每一行和每一列中的状态变量的值之和变为1。此外,作为初始设置,执行将根据x1至xn的初始值的加权系数存储在存储单元13bi和13bj中的处理、根据x1至xn的初始值设置局部字段的初始值的处理、设置温度参数的处理、设置状态更新处理的重复次数的处理。
[0084] 然后,每个ΔE计算电路如上所述计算能量变化或输出预定的正值,并且转换选择单元14选择允许改变的四个状态变量并且输出用于标识所选择的四个状态变量的索引=p、q、r和s。
[0085] 更新单元15接收索引=p、q、r和s,并且改变由这些索引指定的状态变量的值。此外,地址解码器16指定基于索引存储要用于下次计算能量变化的加权系数以及用于更新局部字段的加权系数的存储单元11的地址,使得这些加权系数能够被读出。
[0086] 所读取的加权系数中的要用于计算能量变化的加权系数经由传播单元12存储在多个ΔE计算电路的存储单元的任意中。此外,利用所读取的用于更新局部字段的加权系数来更新局部字段,并且将更新后的局部字段通过传播单元12传播至多个ΔE计算电路中的任意。然后,每个ΔE计算电路计算能量变化或者输出以上预定的正值。
[0087] 例如,在xj为0、与xj相同的行中的xi为1、与xj相同的列中的xl为1、并且与xi相同的列且与xl相同的行中的xk为0的情况下,Wil和Wjk被传播并存储在ΔE计算电路13aj的存储单元13bj中。此外,hi、hj、hk和hl被传播至ΔE计算电路13aj中。然后,ΔE计算电路13aj如等式(3)所示计算ΔEj。在与另一具有值为0的状态变量(xk等)对应的ΔE计算电路中进行类似的处理。
[0088] 同时,与具有值为1的xi对应的ΔE计算电路13ai输出预定的正值作为能量变化。注意,与另一具有值为1的状态变量(xl等)对应的ΔE计算电路类似地输出预定的正值。
[0089] 在下文中,重复类似的处理。例如,在执行伪模糊方法的情况下,每完成状态更新处理预定的重复次数时,根据预定的温度变化计划表,温度参数的值变小。然后,例如,将在温度参数的值达到最小值时的状态(x1至xn)作为解输出。
[0090] 根据第一实施方式的优化装置10基于四个状态变量一起变化时的能量变化来确定允许哪四个状态变量的变化,以满足双向独热约束。然后,更新所确定的四个状态变量的值。因此,不满足双向独热约束的状态转换被抑制,并且可以减少搜索空间。因此,可以缩短具有双向独热约束的优化问题的计算时间。
[0091] 此外,由于可以从评估函数中减少当不满足双向独热约束时增加能量的约束项,因此可以减少用于表示这种约束项的加权系数的位数,并且可以减少用于存储加权系数的硬件。
[0092] (第二实施方式)
[0093] 图2是示出第二实施方式的优化装置的示例的图。
[0094] 第二实施方式的优化装置20包括存储单元21、局部字段更新单元22、传播单元23、ΔE计算电路24a1至24an、转换选择单元25、更新单元26、地址解码器27和控制单元28。
[0095] 存储单元21、传播单元23、ΔE计算电路24a1至24an、转换选择单元25、更新单元26和地址解码器27具有与图1中示出的优化装置10中的同名的元件类似的功能。注意,在以下示例中,除索引=p、q、r和s之外,转换选择单元25还输出用于标识具有值为1的xp所属的行的索引=gp和用于标识具有值为1的xs所属的列的索引=gs。
[0096] 局部字段更新单元22使用从存储单元21读取的加权系数,来更新根据等式(4)的局部字段。使用例如电子电路,如存储与x1至xn对应的h1至hn的电阻器、以及向所存储的h1至hn分别添加四个加权系数或从所存储的h1至hn中分别减去四个加权系数的电路来实现局部字段更新单元22。
[0097] 控制单元28执行对优化装置20的下面要描述的初始设置处理。此外,在执行伪模糊方法的情况下,例如,每当重复状态更新处理预定次数时,控制单元28根据由控制装置30指定的温度变化计划表,使温度参数的值变小。
[0098] 此外,例如,控制单元28从更新单元26的存储单元26a获取在温度参数的值达到最小值时的状态(x1至xn),并且将所获取的状态作为解传输至控制装置30。注意,在更新单元26的存储单元26a保存最小能量或最小能量时的状态的情况下,控制单元28可以在重复状态更新处理预定次数之后,获取其信息并且将该信息传输至控制装置30。
[0099] 控制单元28可以由电子电路,例如应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)等实现。注意,控制单元28可以是诸如中央处理单元(CPU)或图形处理单元(GPU)的处理器。在这种情况下,处理器通过执行存储在存储器(未示出)中的程序来执行上述处理。
[0100] (传播单元23的示例)
[0101] 图3是示出传播单元的示例的图。注意,图3还示出了局部字段更新单元22的示例。图1中示出的传播单元12也可以通过与下面要描述的传播单元23的示例类似的配置来实现。
[0102] 传播单元23包括开关控制电路23a、开关21b1至21bn以及传播控制单元23c。
[0103] 开关控制电路23a基于索引=p、q、r、s、gp和gs来控制开关21b1至21bn的接通/断开。开关控制电路23a可以包括用于存储如上所述的热位管理表的存储器。在这种情况下,开关控制电路23a基于热位管理表生成针对开关21b1至21bn的控制信号。热位管理表基于索引=p、q、r、s、gp和gs进行更新。下面将描述开关21b1至21bn的控制示例。
[0104] 当开关21b1至21bn接通时,从存储单元21读取的加权系数被传输至传播控制单元23c。
[0105] 传播控制单元23c基于索引=p、q、r、s、gp和gs,将通过包括在局部字段更新单元22中的h更新电路22a1至22an输出的h1至hn中的任意传播至ΔE计算电路24a1至24an中的每一个。此外,传播控制单元23c基于索引=p、q、r、s、gp和gs,将经由开关21b1至21bn提供的加权系数中的任意传播至ΔE计算电路24a1至24an中的每一个。
[0106] 图4是示出传播控制单元的示例的图。
[0107] 传播控制单元23c包括总线单元40a1、40a2、……、40am以及开关控制电路41和42。
[0108] 总线单元40a1包括开关40b1、40b2、……、40bn、40c1、40c2、……和40cn以及总线40d。开关40b1至40bn与h1至hn对应地设置,并且当开关40b1至40bn中的任意一个处于接通状态时,与该开关对应的局部字段被传输至总线40d。开关40c1至40cn与ΔE计算电路24a1、
24a2、……和24an对应地设置,并且局部字段经由总线40d被传播至与开关40c1至40cn中的处于接通状态的开关对应的ΔE计算电路。总线单元40a2至40am具有与总线单元40a1类似的配置。
[0109] 开关控制电路41基于索引=p、q、r、s、gp和gs来控制开关40b1至40bn的接通/断开。
[0110] 开关控制电路42基于索引=p、q、r、s、gp和gs来控制开关40c1至40cn的接通/断开。
[0111] 注意,传播控制单元23c可以包括用于存储如上所述的热位管理表的存储器。在这种情况下,开关控制电路41和42基于热位管理表生成针对开关中的每个开关的控制信号。热位管理表基于索引=p、q、r、s、gp和gs被更新。注意,热位管理表可以与由开关控制电路
23a等使用的热位管理表相同。
[0112] 在以上示例中,总线单元40a1至40am的数目可以根据对在计算中的并行程度所给予的优先的程度来适当地选择。
[0113] 注意,图4示出了其中局部字段被传播至ΔE计算电路24a1至24an的示例。加权系数也可以通过类似的配置传播至ΔE计算电路24a1至24an。
[0114] (在n=25时的局部字段和加权系数的传播示例)
[0115] 在下文中,将以n=25(状态变量的数目为二十五个)的情况作为示例,描述局部字段和加权系数到ΔE计算电路24a1至24an的传播。
[0116] 图5是示出针对二十五个状态变量的满足双向独热约束的状态转换的示例的图。在图5中,为了简化说明,x1至x25由索引=1至25表示,g1c至g5c是用于标识列的索引,并且g1r至g5r是用于标识行的索引。此外,带阴影的索引指示具有值为1的状态变量的索引,并且其他状态变量的值为0。
[0117] 在图5的示例中,x1、x8、x15、x17和x24的值为1。在本示例中,在将x4从0改变为1的情况下,与x4属于同一列(具有索引=g4c的列)并且具有值为1的x24的值改变为0,与x4属于同一行(具有索引=g1r的行)并且具有值为1的x1的值改变为0。此外,与x1属于同一列(具有索引=g1c的列)并且与x24属于同一行(具有索引=g5r的行)的x21的值改变为1。由此,实现了满足双向独热约束的状态转换。
[0118] 在发生如图5所示的状态转换的情况下,由ΔE计算电路24a1至24an使用局部字段和加权系数来计算转换之前和之后的能量变化。
[0119] 图6是示出在已发生如图5中的状态转换的情况下,由每个ΔE计算电路使用的局部字段和加权系数的变化的示例的图。图6示出了图5中示出的分别在状态转换之前和之后的hi、hj、hk、hl、Wil和Wjk,它们是二十五个ΔE计算电路24a1至24an中的每一个计算等式(3)时使用的。注意,为了简化说明,通过索引来示出局部字段和加权系数。例如,h1被示出为1,并且W11被示出为(1,1)。
[0120] 在图6的示例中,在状态转换之前,传播至与诸如x1和x8的热位对应的ΔE计算电路的hi、hj、hk和hl是与热位的索引相同的索引的局部字段。例如,提供至与作为热位的x1对应的ΔE计算电路24a1的hi、hj、hk和hl均为h1。因此,Wil和Wjk均为W11。如上所述,与这种热位对应的ΔE计算电路输出预定的正值。
[0121] 在状态转换之后,在与属于具有索引=g1r的行的x1至x5对应的五个ΔE计算电路中,属于同一行的x4从0改变为1,因此,代替状态转换之前的h1,h4被用作hi。在与属于具有索引=g2r的行的x6至x10对应的五个ΔE计算电路中,由于不改变属于该行的热位,因此与状态转换之前一样,h8被用作hi。在与属于具有索引=g3r和g4r的行的状态变量对应的ΔE计算电路中,由于不改变属于那些行的热位,因此具有与状态转换之前相同的索引的局部字段用作hi。在与属于具有索引=g5r的行的x21至x25对应的五个ΔE计算电路中,属于同一行的x21从0改变为1,因此,代替状态转换之前的h24,h21被用作hi。
[0122] 在状态转换之前和之后,hj没有变化。
[0123] 关于hk,在与属于没有热位改变的行的状态变量对应的ΔE计算电路中,在状态转换之前和之后可能发生变化。例如,由与x6对应的ΔE计算电路使用的hk从h3改变为h23。此外,由与x9对应的ΔE计算电路使用的hk从h23改变为h3。
[0124] 关于hl,在与属于每一行的状态变量对应的ΔE计算电路中,在状态转换之前和之后可能存在变化。注意,关于hl,在与属于每一行的状态变量对应的ΔE计算电路中使用的hl相同。即,在与属于每一行的状态变量对应的ΔE计算电路中使用的hl在状态转换之前为h1、h17、h8、h24和h15,并且在状态转换之后为h21、h17、h8、h4和h15。
[0125] 至于要使用的加权系数,如上所述,随状态转换之前和之后要使用的局部字段的变化,一些加权系数改变而一些加权系数不改变。
[0126] 在下文中,将描述在状态转换之后局部字段和加权系数到每个ΔE计算电路的传播示例。
[0127] 图7是示出hi和hj的传播示例的图。
[0128] 图7示出了其中由h更新电路22a1至22an输出的h1至h25作为hi和hj被传播至ΔE计算电路24a1至24an的状态。
[0129] h1至h25中的每一个作为hj被传播至与具有与h相同的索引的状态变量对应的ΔE计算电路。在状态转换之前和之后,所传播的hj不改变。例如,h1被传播至与x1对应的ΔE计算电路24a1,并且hn被传播至与xn对应的ΔE计算电路24an。因此,如果与h更新电路22a1至22an分别对应的ΔE计算电路直接连接,则可以在不使用传播控制单元23c的情况下传播hj。
[0130] 使用传播控制单元23c来如下传播hi。
[0131] h4作为hi被传播至与属于具有索引=g1r的行的x1至x5对应的五个ΔE计算电路,并且h8作为hi被传播至与属于具有索引=g2r的行的x6至x10对应的五个ΔE计算电路。h15作为hi被传播至与属于具有索引=g3r的行的x11至x15对应的的五个ΔE计算电路,并且h17作为hi传播至与属于具有索引=g4r的行的x16至x20对应的五个ΔE计算电路。此外,h21作为hi传播至与属于具有索引=g5r的行的x21至x25对应的五个ΔE计算电路。
[0132] 在如上所述的传播中,图4中示出的传播控制单元23c在m=5的情况下,可以在一个周期(例如,一个时钟周期)中将hi传播至每个ΔE计算电路24an。例如,总线单元40a1将h4传输至总线40d,并且将h4从总线40d传播至与属于具有索引=g1r的行的x1至x5对应的五个ΔE计算电路。并行地,总线单元40a2至40am将h8、h15、h17和h21传播至与属于具有索引=g2r至g5r的行的状态变量对应的ΔE计算电路。
[0133] 图8是示出hl的传播示例的图。
[0134] 如图8所示,如上所述作为hl传播的h4、h8、h15、h17和h21中的每一个都作为hl传播至ΔE计算电路24a1至24an中的任意。
[0135] h4被传播至与x4以及与x4属于同一列的x9、x14、x19和x24对应的五个ΔE计算电路。h8被传播至与x8以及与x8属于同一列的x3、x13、x18和x23对应的五个ΔE计算电路。h15被传播至与x15以及与x15属于同一列的x5、x10、x20和x25对应的五个ΔE计算电路。h17被传播至与x17以及与x17属于同一列的x2、x7、x12和x22对应的五个ΔE计算电路。h21被传播至与x21以及与x21属于同一列的x1、x6、x11和x16对应的五个ΔE计算电路。
[0136] 还可以使用五个总线单元40a1至40am在一个周期中并行地执行如上所述的hl的传播。
[0137] 图9是示出hk的传播示例的图。
[0138] 至于hk,在如图5所示的状态转换之后的状态中,与包括在x4所属的行和列以及x21所属的行和列中的状态变量对应的局部字段作为hk进行传播。
[0139] 使用例如五个总线单元40a1至40am在四个周期中执行hk的传播。
[0140] 在周期c1中,h1至h5中的每一个被传输至总线单元40a1至40am中的五个总线之一,并且h1至h5被传播至与x24、x19、x9、x4和x14分别对应的ΔE计算电路。在周期c2中,h1、h6、h11、h16和h21中的每一个被传输至五个总线之一,并且h1、h6、h11、h16和h21被传输至与x24、x23、x25、x22和x21分别对应的ΔE计算电路。在周期c3中,h4、h9、h14、h19和h24中的每一个被传输至五个总线中的任意,并且h4、h9、h14、h19和h24被传播至与x4、x3、x5、x2和x1分别对应的ΔE计算电路。在周期c4中,h21、h22、h23、h24和h25中的每一个被传输至五个总线中的任意,并且h21、h22、h23、h24和h25被传播至与x21、x16、x6、x1和x11分别对应的ΔE计算电路。
[0141] 注意,要作为hk传播的局部字段的数目实质上是十四个:h1、h2、h3、h5、h6、h9、h11、h14、h16、h19、h22、h23、h24和h25。这是因为h4和h21作为hi被传播至与热位x4和x21对应的ΔE计算电路。因此,如果减少了这些冗余的传播,则hk可以理想地在三个周期中传播。
[0142] 图10是示出Wil的传播示例的图。
[0143] 如图6所示,在状态转换之后的二十五个ΔE计算电路24a1至24an中使用二十五个Wil,并且二十五个Wil中的九个与状态转换之前的相同。此外,当Wil=Wli时,要传播的Wil的数目为九。因此,可以使用例如五个总线单元40a1至40am在两个周期中进行Wil传播。
[0144] 在第一周期中,W4,8、W4,15、W4,17和W4,21被传播至与x3和x9、x5和x14、x2和x19以及x1和x24分别对应的ΔE计算电路。注意,由于与x4对应的ΔE计算电路输出预定的正值,因此不需要将W4,4传播至ΔE计算电路。因此,在图10中,不传播W4,4。然而,由于添加至传播W4,4的处理开销小,因此可以传播W4,4。例如,由于简化了传播控制单元23c的电路配置等,因此可能存在期望W4,4的传播的可能性。
[0145] 在第二周期中,W21,8、W21,15和W21,17被传播至与x6和x23、x11和x25以及x16和x22分别对应的ΔE计算电路。注意,由于与x21对应的ΔE计算电路输出预定的正值,因此不需要将W21,21传播至ΔE计算电路。因此,在图10中,不传播W21,21。注意,W21,21可以出于与以上类似的原因而传播。
[0146] 图11是示出Wjk的传播示例的图。
[0147] 如图6所示,在状态转换之后的二十五个ΔE计算电路24a1至24an中使用二十五个Wjk,并且二十五个Wjk中的九个与状态转换之前的相同。此外,当Wil=Wli时,要传播的Wjk的数目为九。因此,可以使用例如五个总线单元40a1至40am在两个周期中进行Wjk传播。
[0148] 在第一周期中,将W3,9、W5,14、W2,19和W1,24传播至与x3和x9、x5和x14、x2和x19以及x1和x24分别对应的ΔE计算电路。
[0149] 在第二周期中,将W23,6、W25,11和W22,16传播至与x6和x23、x11和x25以及x16和x22分别对应的ΔE计算电路。注意,由于与以上相似的原因,在图11中不传播W4,4和W21,21。
[0150] (在n=25时读取加权系数的示例)
[0151] 接下来,将描述从存储单元21读取加权系数的有效方法。
[0152] 在如图5所示的状态转换之后,读出W1,1至W1,25、W4,1至W4,25、W21,1至W21,25、以及W24,1至W24,25以更新存储在存储单元21中的25×25个加权系数的局部字段。在W1,1至W1,25、W4,1至W4,25、W21,1至W21,25、以及W24,1至W24,25中,W4,1至W4,25、和W21,1至W21,25包含要使用的Wil。
[0153] 图12是示出读出Wil并且存储到ΔE计算电路的存储单元的示例的图。
[0154] 在图12的示例中,从存储单元21读取W4,1至W4,25以更新局部字段。由此,例如,作为Wil,W4,8被提供至h更新电路22a8以更新h8,并且W4,15被提供至h更新电路22a15以更新h15。此外,例如,作为Wil,W4,17被提供至h更新电路22a17以更新h17,并且W4,21被提供至h更新电路22a21以更新h21。
[0155] 此时,开关控制电路23a基于例如热位管理表接通与其中状态转换之后的值为1的x8、x15、x17和x21对应的开关21b8、21b15、21b17和21b21。尽管未示出,但是其他开关被断开。由此,W4,8、W4,15、W4,17和W4,21被提供至传播控制单元23c。注意,由于出于与以上类似的原因,可以省略对W4,4的读出,因此在图12的示例中,没有将W4,4提供至传播控制单元23c。
[0156] 如在图10中的第一周期中一样,将提供至传播控制单元23c的W4,8、W4,15、W4,17和W4,21中的每一个传播至ΔE计算电路24a1至24an中的任意。
[0157] 例如,如图12所示,W4,21被传播至ΔE计算电路24a1并且被存储在存储单元24b1的存储区域24b1a和24b1b中的用于存储Wil的存储区域24b1a中。W4,17被传播至ΔE计算电路24a2并且被存储在存储单元24b2的存储区域24b2a和24b2b中的用于存储Wil的存储区域
24b2a中。此外,W4,8被传播至ΔE计算电路24a3并且被存储在存储单元24b3的存储区域
24b3a和24b3b中的用于存储Wil的存储区域24b3a中。
[0158] 类似地,在从存储单元21读取W21,1至W21,25以更新局部字段的情况下,开关21b8、21b15、21b17和21b21被接通。由此,W21,8、W21,15、W21,17和W21,21被提供至传播控制单元23c。注意,出于与以上类似的原因,可以省略W21,21的读出和传播。
[0159] 然后,提供至传播控制单元23c的W21,8、W21,15和W21,17中的每一个被传播至ΔE计算电路24a1至24an中的任意并且被存储在存储单元的用于存储Wil的存储区域中,如在图10中的第二周期中一样。
[0160] 如上所述,可以在与用于更新局部字段的加权系数的读出相同的定时从存储单元21读取Wil,并且不需要再次从存储单元21读取Wil。
[0161] 同时,在如图5所示的状态转换之后,除W1,24之外,Wjk不包括在用于更新局部字段而读取的加权系数中。因此,在不同于W1,1至W1,25、W4,1至W4,25、W21,1至W21,25以及W24,1至W24,25的读出的周期中,读取除W1,24之外的Wjk。
[0162] 图13是示出读出Wjk并且存储到ΔE计算电路的存储单元的示例的图。
[0163] 如图6所示,在状态转换之后的二十五个ΔE计算电路24a1至24an中使用二十五个Wjk,并且二十五个Wjk中的九个与状态转换之前的相同。此外,当Wil=Wli时,要从存储单元21读取的Wjk的数目为九。然而,出于上述原因,不需要读取W4,4和W21,21,并且在读取W1,1至W1,25用于更新局部字段时,W1,24被存储在使用W1,24的ΔE计算电路的用于加权系数的存储单元的用于存储Wjk的存储区域中。因此,要从存储单元21读取的作为Wjk的加权系数的数目为六:W23,6、W3,9、W25,11、W5,14、W22,16和W2,19。通过要在下面描述的地址解码器27和存储单元21的配置,可以在一个周期中读取这些加权系数。
[0164] 开关控制电路23a基于例如热位管理表,针对状态转换之后具有值为0的状态变量(xj),检测如图1所示的xk关系中的状态变量,并且检测除xj与xk之间的Wjk中可省略的那些k之外的k。在上面的示例中,检测到k=6、9、11、14、16和19。因此,开关控制电路23a接通开关21b6、21b9、21b11、21b14、21b16和21b19。开关21b6、21b9、21b11、21b14、21b16和21b19与h更新电路22a6、22a9、22a11、22a14、22a16和22a19对应地设置。尽管未示出,但是其他开关被断开。
[0165] 由此,以上六个加权系数被提供至传播控制单元23c。
[0166] 使用例如传播控制单元23c的五个总线单元40al至40am在两个周期中执行六个加权系数的传播。
[0167] 例如,如图13所示,W2,19被传播至ΔE计算电路24a2并且被存储在存储单元24b2的用于存储Wjk的存储区域24b2b中。例如,W3,9被传播至ΔE计算电路24a3并且被存储在存储单元24b3的用于存储Wjk的存储区域24b3b中。
[0168] (存储单元21的示例和地址规范示例)
[0169] 在以下示例中,包括在25行和25列的加权系数矩阵中的加权系数(Wij(i、j=1至25))由全局行地址、局部行地址、全局列地址和局部列地址指定。二十五行的加权系数中的每五行由不同的全局行地址=1至5中的每一个指定,并且这五行由局部行地址=1至5分别指定。此外,二十五列的加权系数中的每五列由不同的全局列地址=1至5中的每一个指定,并且这五列由局部列地址=1至5分别指定。
[0170] 通过指定1至5中的一个作为全局行地址和局部行地址,并且指定1至5中的全部作为全局列地址和局部列地址,来读取要用于更新局部字段的加权系数。同时,通过指定例如如下所述的地址来读取上述Wjk。
[0171] 图14是示出Wjk的地址规范的示例的图。
[0172] 例如,W2,19由全局行地址=1、局部行地址=2、全局列地址=4和局部列地址=4指定。W3,9由全局行地址=1、局部行地址=3、全局列地址=2、和局部列地址=4指定。其他四个Wjk也由四个不同的地址指定。
[0173] 图15是示出存储25×25个加权系数的存储单元的示例的图。
[0174] 图15示出了用于选择一个w位加权系数(W11)的部分。信号grad1是在全局行地址为1时变为1以及在其他情况下变为0的信号,而信号lrad1是在局部行地址为1时变为1以及在其他情况下变为0的信号。此外,信号gcad1是在全局列地址为1时变为1以及在其他情况下变为0的信号,并且信号lcad1是在局部列地址为1时变为1以及在其他情况下变为0的信号。
[0175] w位W11存储在存储器单元21a1至21aw中。将信号grad1、lrad1和gcad1输入至3输入AND(逻辑积)电路21b。
[0176] 将3输入AND电路21b的输出信号和信号lcad1输入至2输入AND电路21c,并且当2输入AND电路21c的输出为1时,选择存储器单元21a1至21aw。然后,读取电路21e经由位线21d1至21dw读取W11。
[0177] 均包括如上所述的存储器单元21a1至21aw、2输入AND电路21c以及位线21d1至21dw的五个单元连接至3输入AND电路21b的输出信号在其上传播的信号线。此外,均包括以上五个单元和3输入AND电路21b的五个单元连接至信号lrad1在其上传播的信号线。此外,为五个局部行地址重复提供这种配置,并且为五个全局行地址进一步重复提供为五个局部行地址提供的配置。
[0178] 可以将针对以上地址中的每一个的信号线独立地设置为1或0。此外,在满足双向独热约束的情况下,将不会同时选择连接至同一位线的不同存储器单元。因此,可以同时分别选择以上六个Wjk,并且可以在一个周期中读取以上六个Wjk。
[0179] 图2中的地址解码器27基于索引=p、q、r、s、gp和gs生成用于指定要读取的加权系数的地址。在更新局部字段时,生成用于指定p、q、r和s行的所有加权系数的地址。在读取Wjk时,地址解码器27基于索引=p、q、r、s、gp和gs选择要读取的多个Wjk,并且生成用于分别指定Wjk的地址。例如,在图5所示的状态转换之后,索引=q,并且r=4和21。在这种情况下,地址解码器27生成用于读取六个:W23,6、W3,9、W25,11、W5,14、W22,16和W2,19作为Wjk的地址,如上所述。
[0180] 地址解码器27可以包括用于存储如上所述的热位管理表的存储器。在那种情况下,地址解码器27基于索引=p、q、r、s、gp和gs选择要读取的多个Wjk。热位管理表可以与开关控制电路23a等使用的表相同。
[0181] 全局行地址可以表示为Gr(j)=int((j‑1)/大小)+1,并且局部行地址可以表示为GREL(j)=mod(j‑1,大小)+1。此外,全局列地址可以表示为Gr(k)=int((k‑1)/大小)+1,并且局部列地址可以表示为GREL(k)=mod(k‑1,大小)+1。
[0182] 在如上所述将每个地址设置为1至5的情况下,大小为5。
[0183] 例如,在读取W23,6的情况下,Gr(23)=int((23‑1)/5)+1=5,GREL(23)=mod(23‑1,5)+1=3,Gr(6))=Int((6‑1)/5)+1=2,并且GREL(6)=mod(6‑1,5)+1=1。在读取W3,9的情况下,Gr(3)=int((3‑1)/5)+1=1,GREL(3)=mod(3‑1,5)+1=3,Gr(9)=Int((9‑1)/5)+
1=2,并且GREL(9)=mod(9‑1,5)+1=4。
[0184] 如上所述,在如图15所示的存储单元21中,可以将针对每个地址的信号线独立地设置为1或0,使得地址解码器27同时设置如上所述的各种地址。
[0185] (第二实施方式的优化装置20的整体操作的流程)
[0186] 图16是用于描述根据第二实施方式的优化装置的示例的流程的图。
[0187] 注意,在下文中,将使用伪模糊方法作为示例来给出描述。然而,实施方式不限于该情况,并且还可以使用诸如副本交换方法的技术。
[0188] 首先,在控制单元28的控制下执行初始设置处理(步骤Sl)。在初始设置处理中,控制单元28将从控制装置30接收到的W11至Wnn存储在存储单元21中。此外,控制单元28在存储单元26a中设置N行和N列中的x1至xn的值,使得包括在每一行和每一列中的状态变量的值之和为1。此外,例如,控制单元28将与x1至xn的初始值对应的加权系数存储在存储单元24b1至24bn中,并且将与x1至xn的初始值对应的h1至hn的初始值存储在h更新电路22a1至22an的电阻器(未示出)中。此外,控制单元28基于从控制装置30接收到的温度变化计划表和转换选择单元25的状态更新处理的重复的次数来设置温度参数(T)的初始值。此外,例如,控制单元28可以根据x1至xn的初始值生成上述热位管理表,并且将该热位管理表存储在传播单元
23等中包括的存储器中。
[0189] 之后,ΔE计算电路24a1至24an从存储单元26a读取与其自身对应的状态变量(步骤S2)。然后,传播单元23在各个ΔE计算电路24a1至24an中将hi、hj、hk和hl从h更新电路22a1至22an传播至ΔE计算电路24a1至24an(步骤S3)。第一次,传播单元23基于例如热位管理表来确定hi、hj、hk和hl的传播路线。然后,从第二次起,传播单元23基于索引=p、q、r、s、gp和gs或用这些索引更新的热位管理表来确定传播路线。
[0190] 接下来,ΔE计算电路24al至24an计算能量变化(步骤S4)。在ΔE计算电路24a1至24an中,与具有值为0的状态变量对应的那些ΔE计算电路如等式(3)所示计算ΔEj。在ΔE计算电路24a1至24an中,与具有值为1的状态变量对应的那些ΔE计算电路输出预定的正值作为能量变化。
[0191] 然后,转换选择单元25基于由ΔE计算电路24a1至24an计算出的能量变化来选择索引=q(步骤S5)。
[0192] 例如,转换选择单元25将基于温度参数(T)和均匀随机数生成的噪声值与多个能量变化中的每一个进行比较,选择小于噪声值的能量变化,并且将该能量变化的索引选择为q。在存在多个小于噪声值的能量变化的情况下,转换选择单元25例如根据预定规则或随机地选择能量变化中的一个。在不存在小于噪声值的能量变化的情况下,转换选择单元25可以通过将偏移值与噪声值等相加来促进状态转换的发生。
[0193] 转换选择单元25还根据所选择的索引=q确定索引=p、q、r、s、gp和gs(步骤S6)。
[0194] 此后,局部字段更新单元22更新局部字段(步骤S7)。在步骤S7中的处理中,基于索引=p、q、r、s、gp和gs,从存储单元21读取要用于更新局部字段的加权系数,并且根据等式(4)基于加权系数更新局部字段。注意,在步骤S7中的处理中,加权系数中的与Wil对应的加权系数存储在存储单元24b1至25bn中的任意中。
[0195] 此外,更新存储在ΔE计算电路24al至24an的存储单元24bl至24bn中的加权系数(步骤S8)。在步骤S8的处理中,基于索引=p、q、r、s、gp和gs,从存储单元21读取存储在存储单元24b1至24bn中的加权系数。然后,传播单元23使用加权系数将所读取的加权系数传播至ΔE计算电路,并且使用新读取的加权系数来更新存储在ΔE计算电路的存储单元中的加权系数。
[0196] 此外,更新单元26基于索引=p、q、r、s、gp和gs来更新存储在存储单元26a中的四个状态变量(步骤S9)。
[0197] 控制单元28确定以上步骤S2至S9中的状态更新处理的次数是否已达到预定次数N1(步骤S10)。在状态更新处理的次数尚未达到预定次数N1的情况下,重复从步骤S2的处理。
[0198] 在状态更新处理的次数已达到预定次数N1的情况下,控制单元28确定T的变化次数(温度的变化次数)是否已达到预定次数N2(步骤S11)。
[0199] 在温度的变化次数尚未达到预定次数N2的情况下,控制单元28改变T(降低温度)(步骤S12)。基于预定的温度变化计划表等确定改变预定的次数N1、N2和T的值的方式(一次减小多少值等)。在步骤S12中的处理之后,重复从步骤S2的处理。
[0200] 例如,当温度的变化次数已达到预定次数N2时,控制单元28将此时存储在存储单元26a中的所有状态变量的值输出至控制装置30作为计算结果(步骤S13),并且终止处理。注意,控制单元28可以在每次状态转换发生时基于所有状态变量的值来计算能量,顺序地更新其中获得最小能量的所有状态变量的值,并且在温度的变化次数已达到预定次数N2时输出所有状态变量的值作为解。
[0201] 注意,以上处理的顺序不限于以上示例,并且可以适当地改变顺序。
[0202] 根据如上所述的第二实施方式的优化装置20,可以获得与第一实施方式的优化装置10的效果类似的效果。即,可以缩短具有双向独热约束的优化问题的计算时间,并且可以减少用于存储加权系数的硬件。
[0203] 此外,上述读取Wil和Wjk的有效技术可以减少对存储单元21的访问次数,并且可以期望进一步减少计算时间。
[0204] 图17是示出模拟结果的图,该模拟结果示出了在使用第二实施方式的优化装置的情况下的计算缩短效果。
[0205] 要计算的组合优化问题是作为二次分配问题中的一个的“2QAP 1K had 12”,并且正确答案是已知的。横轴线表示迭代的次数(如上所述的更新处理的次数),并且竖轴线表示已得出正确答案的副本的数目(优化装置20的数目)。
[0206] 图17示出了在使用如上所述的4位转换优化装置20的情况下的结果50、以及在使用执行搜索的2位转换优化装置、排除在列或行的一个方向上满足独热约束的状态之外的状态的情况下的结果51。此外,示出了在使用常规的1位转换优化装置的情况下的结果52。
[0207] 如图17所示,与2位转换优化装置相比,优化装置20可以将得出正确答案的迭代的次数减少至1/100或更小。例如,在得出正确答案的副本的数目=15的情况下,迭代的次数减少至1/337,这表明计算速度更快。
[0208] (第三实施方式)
[0209] 第二实施方式的优化装置20设置有与状态变量的数目相同的数目的ΔE计算电路2 2
24a1至24an(n=N)。然而,ΔE计算电路的数目可以小于N 。在下文中,将描述其中ΔE计算
2
电路的数目小于N的优化装置的示例。
[0210] 图18是示出第三实施方式的优化装置的示例的图。在图18中,与图3中示出的元件相同的元件由相同的附图标记表示,并且省略了说明。
[0211] 在第三实施方式的优化装置60中,传播单元61不同于图3中的传播单元23,并且Δ2
E计算电路62a1至62aN的数目为N。此外,优化装置60包括传播控制单元63和n(=N)个ΔE保存单元64a1至64an。
[0212] 在其中ΔE计算电路的数目等于N2的第二实施方式的优化装置20中,Wil和Wjk存储在ΔE计算电路24a1至24an的存储单元24b1至24bn中。相反,在其中ΔE计算电路的数目小2 2
于N的第三实施方式的优化装置60中,Wil和Wjk与N个h更新电路22a1至22an中的每一个对应地存储。例如,在等式(3)中的j=1的情况下,要用于计算ΔE1的Wil和Wjk(例如,在图5中的状态转换之后的情况下,图6中的W4,21和W1,24)与更新h1的h更新电路22a1相关联地存储。
[0213] 然而,在下文中,为了简化电路配置,Wil和Wjk与更新由索引=l和k表示的局部字段的每个h更新电路对应地存储。例如,在如图5所示的状态转换之后,与更新h21的h更新电路对应地存储作为要用于计算ΔE1的Wil的W4,21,并且与更新h24的h更新电路对应地存储作为要用于计算ΔE1的Wjk的W1,24。
[0214] 在优化装置60中,传播单元61包括分别与h更新电路22a1至22an对应设置的存储单元61a1至61an。当开关21b1至21bn中的相应开关被接通时,存储单元61a1至61an中的每一个存储从存储单元21读取的加权系数。例如,当开关21b1被接通时,将从存储单元21读取的W11至Wn1中的任意存储在存储单元61a1中。当开关21bn被接通时,将从存储单元21读取的W1n至Wnn中的任意存储在存储单元61an中。存储单元61a1至61an可以由例如电子电路如寄存器或SRAM来实现。
[0215] 此外,传播控制单元61b不同于第一实施方式的优化装置20的传播控制单元23c。
[0216] 传播控制单元61b用作将n个局部字段(或与其对应的加权系数或状态变量)分发2 2
至N个ΔE计算电路62al至62aN的N:N多路复用器,N:N多路复用器由多个N:1多路复用器实现。
[0217] 同时,传播控制单元63用作将由N个ΔE计算电路62a1至62aN计算出的能量变化分2 2
发至n个ΔE保存单元64a1至64an中的N:N解多路复用器。N:N解多路复用器由多个1:N解多路复用器实现。
[0218] 在下文中,将描述N=5的情况作为示例。
[0219] 图19是示出传播局部字段和加权系数的传播控制单元的示例的图。
[0220] 传播控制单元61b包括二十五个开关70a1至70a25、多路复用器71a1、71a2、71a3、71a4、71a5、71b1、71b2、71b3、71b4和71b5以及控制信号生成电路72。
[0221] 开关70a1至70a25的每一端接收h1至h25中的一个作为输入,并且除开关70a1和70a25之外,另一端连接至多路复用器71a1至71a5中的任意两个的五个输入端子之一。开关
70a1的另一端连接至多路复用器71a1的五个输入端子之一,并且开关70a25的另一端连接至多路复用器71a5的五个输入端子之一。注意,在将加权系数存储在存储单元61a1至61an中的情况下,也将加权系数输入至与h1至h25对应的开关70a1至70a25的相应的一端。开关
70a1至70a25通过由控制信号生成电路72生成的控制信号cnta1至cnta25来接通和断开。
[0222] 多路复用器71a1至71a5中的每一个根据由控制信号生成电路72输出的控制信号cntb1、cntb2、cntb3、cntb4和cntb5中的任意来选择并输出输入至五个输入端子的局部字段(或加权系数)中的一个。
[0223] 由多路复用器71a1至71a5输出的局部字段(或加权系数)分别被输入至多路复用器71b1至71b5的五个输入端子。多路复用器71b1至71b5中的每一个根据由控制信号生成电路72输出的控制信号cntc1、cntc2、cntc3、cntc4和cntc5中的任意来选择并输出输入至五个输入端子的局部字段(或加权系数)中的一个。
[0224] 控制信号生成电路72基于索引=p、q、r、s、gp或gs生成并输出控制信号cnta1至cnta25、cntb1至cntb5以及cntc1至cntc5。控制信号生成电路72可以包括例如用于存储如上所述的热位管理表的存储器。在这种情况下,控制信号生成电路72基于热位管理表生成上述控制信号中的每一个。基于索引=p、q、r、s、gp和gs更新热位管理表。
[0225] 注意,例如,在等式(3)中的传播hj的周期中,将输入至传播控制单元61b的x1至xn与hj一起传播。
[0226] 在N=5的情况下,如图19所示,提供五个ΔE计算电路62a1、62a2、62a3、62a4和62a5。
[0227] 局部字段(或加权系数或状态变量)分别从多路复用器71b1提供至ΔE计算电路62a1、从多路复用器71b2提供至ΔE计算电路62a2、以及从多路复用器71b3提供至ΔE计算电路62a3。此外,局部字段(或加权系数)分别从多路复用器71b4提供至ΔE计算电路62a4以及从多路复用器71b5提供至ΔE计算电路62a5。
[0228] 注意,图19示出了ΔE计算电路62a1的示例的电路配置。ΔE计算电路62a2至62a5具有类似的电路配置。
[0229] ΔE计算电路62al包括乘法器75、加法器76、存储单元77、选择器78和控制信号生成电路79。
[0230] 乘法器75将由多路复用器71b1输出的hi、hj、hk、hl、Wil和Wjk乘以由控制信号生成电路79输出的代码(+1或‑1)。
[0231] 加法器76输出由乘法器75输出的乘法结果与存储在存储单元77中的值的相加结果。
[0232] 存储单元77存储由加法器76输出的相加结果。存储单元77可以由例如电子电路如寄存器或SRAM来实现。
[0233] 选择器78例如基于由控制信号生成电路79输出的选择信号选择并输出存储在寄存器(未示出)等中的预定的正值(ΔEmax)或存储在存储单元77中的能量变化(ΔEj)。
[0234] 控制信号生成电路79针对其中传播控制单元61b传播hi等的每个周期,生成要与hi、hj、hk、hl、Wil和Wjk相乘的代码。此外,在由多路复用器71b1输出的xj为1的情况下,控制信号生成电路79将用于选择ΔEmax的选择信号输出至选择器78,并且在xj为0的情况下,控制信号生成电路79将用于选择ΔEj的选择信号输出至选择器78。
[0235] 注意,图2中的ΔE计算电路24a1至24an也可以由与以上描述几乎类似的电路配置来实现。
[0236] 使用如图19中的五个多路复用器71a1至71a5的配置对应于使用五个总线。使用N2
个总线和N个ΔE计算电路来计算N 个能量变化需要4N个周期。在N=5的情况下,需要20个周期。
[0237] 图20是示出在N=5的情况下在每个周期中计算出的能量变化的示例的图。
[0238] 在周期1至4中,计算j=1至5的ΔEj。在周期1中,hi由传播控制单元61b传播,并且控制信号生成电路79输出+1作为代码。因此,存储在存储单元77中的ΔEj为hi。在周期2中,hj和xj由传播控制单元61b传播,并且控制信号生成电路79输出‑1作为代码。因此,计算出ΔEj‑=hj,并且存储在存储单元77中的ΔEj为hi‑hj。在周期3中,hk和Wjk由传播控制单元61b传播,并且控制信号生成电路79输出‑1作为代码。因此,计算出ΔEj‑=hk+Wjk,并且存储在存储单元77中的ΔEj为hi‑hj‑hk‑Wjk。在周期4中,hl和Wil由传播控制单元61b传播,并且控制信号生成电路79输出用于hl的+1和用于Wil的‑1作为代码。因此,计算出ΔEj+=hl‑Wil,并且存储在存储单元77中的ΔEj为hi‑hj‑hk+hl–Wjk‑Wil,即,由等式(3)表示的ΔEj。注意,计算与具有值为1的xj对应的ΔEj的ΔE计算电路输出ΔEmax而不是ΔEj。
[0239] 在周期5至8中,针对j=6至10进行相同的处理,并且在周期9至12中,针对j=11至15进行相同的处理。此外,在周期13至16中,针对j=16至20进行相同的处理,并且在周期17至20中,针对j=21至25进行相同的处理。
[0240] 接下来,将描述传播控制单元61b在如图5所示的状态转换之后的上述周期中的每一个中的操作示例。
[0241] 图21是示出周期1中的传播控制单元的操作示例的图。注意,在图21中,用虚线示出在hi通过其传播时无效的信号线。
[0242] 在图5中示出的状态转换之后,x1至x5中的x4变为1。因此,h4作为h1被传播至ΔE计算电路62a1至62a5。在这种情况下,开关70a1至70a25中的开关70a4被接通,并且其他开关被断开。然后,多路复用器71a1选择并输出输入h4,并且多路复用器71b1至71b5选择并输出作为多路复用器71a1的输出的h4。由此,在周期1中由ΔE计算电路62a1至62a5计算出的ΔE1至ΔE5变为h4。
[0243] 图22是示出周期2中的传播控制单元的操作示例的图。注意,在图22中,用虚线示出了在hj和xj通过其传播时无效的信号线。
[0244] 在周期2中,传播h1至h5和x1至x5。在这种情况下,开关70a1至70a25中的开关70a1至70a5被接通,并且其他开关被断开。然后,多路复用器71a1选择并输出输入h1和x1,多路复用器71a2选择并输出输入h2和x2,并且多路复用器71a3选择并输出输入h3和x3。此外,多路复用器71a4选择并输出输入h4和x4,并且多路复用器71a5选择并输出输入h5和x5。
[0245] 此外,多路复用器71b1选择并输出作为多路复用器71a1的输出的h1和x1,并且多路复用器71b2选择并输出作为多路复用器71a2的输出的h2和x2。多路复用器71b3选择并输出作为多路复用器71a3的输出的h3和x3,并且多路复用器71b4选择并输出作为多路复用器71a4的输出的h4和x4。多路复用器71b5选择并输出作为多路复用器71a5的输出的h5和x5。
[0246] 由此,ΔE计算电路62a1计算ΔE1‑=h1,ΔE计算电路62a2计算ΔE2‑=h2,ΔE计算电路62a3计算ΔE3‑=h3,并且ΔE计算电路62a4计算ΔE4‑=h4,并且ΔE计算电路62a5计算ΔE5‑=h5。
[0247] 图23是示出周期3中的传播控制单元的操作示例的图。注意,在图23中,用虚线表示在hk和Wjk通过其时传播时无效的信号线。
[0248] 在周期3中,传播作为hk的h4、h9、h14、h19和h24以及作为Wjk的W4,4、W3,9、W5,14、W2,19和W1,24。在图5中示出的状态转换之后,地址解码器27从存储单元21读取这些加权系数,并且将这些加权系数存储在与更新存储单元61a1至61an的h4、h9、h14、h19和h24的h更新电路对应的存储单元中。
[0249] 在这种情况下,开关70a1至70a25中的开关70a4、70a9、70a14、70a19和70a24被接通,并且其他开关被断开。然后,多路复用器71a1选择并输出输入h4和W4,4,多路复用器71a2选择并输出输入h9和W3,9,并且多路复用器71a3选择并输出输入h14和W5,14。此外,多路复用器71a4选择并输出输入h19和W2.19,并且多路复用器71a5选择并输出输入h24和W1,24。
[0250] 此外,多路复用器71b1选择并输出作为多路复用器71a5的输出的h24和W1,24,并且多路复用器71b2选择并输出作为多路复用器71a4的输出的h19和W2,19。多路复用器71b3选择并输出作为多路复用器71a2的输出的h9和W3,9,并且多路复用器71b4选择并输出作为多路复用器71a1的输出的h4和W4,4。多路复用器71b5选择并输出作为多路复用器71a3的输出的h14和W5,14。
[0251] 由此,ΔE计算电路62a1计算ΔE1‑=h24+W1,24,ΔE计算电路62a2计算ΔE2‑=h19+W2,19,并且ΔE计算电路62a3计算ΔE3‑=h9+W3,9。此外,ΔE计算电路62a4计算ΔE4‑=h4+W4,4,并且ΔE计算电路62a5计算ΔE5‑=h14+W5,14。
[0252] 图24是示出周期4中的传播控制单元的操作示例的图。注意,在图24中,用虚线表示在hl和Wil通过其传播时无效的信号线。
[0253] 在周期4中,传播作为hl的h4、h8、h15、h17和h21以及作为Wil的W4,4、W4,8、W4,15、W4,17和W4,21。在图5中示出的状态转换之后,地址解码器27从存储单元21读取这些加权系数,并且将这些加权系数存储在与更新存储单元61a1至61an的h4、h8、h15、h17和h21的h更新电路对应的存储单元中。
[0254] 在这种情况下,开关70a1至70a25中的开关70a4、70a8、70a15、70a17和70a21被接通,并且其他开关被断开。然后,多路复用器71a1选择并输出输入h4和W4,4,多路复用器71a2选择并输出输入h8和W4,8,并且多路复用器71a3选择并输出输入h15和W4,15。此外,多路复用器71a4选择并输出输入h17和W4,17,并且多路复用器71a5选择并输出输入h21和W4,21。
[0255] 此外,多路复用器71b1选择并输出作为多路复用器71a5的输出的h21和W4,21,并且多路复用器71b2选择并输出作为多路复用器71a4的输出的h17和W4,17。多路复用器71b3选择并输出作为多路复用器71a2的输出的h8和W4,8,并且多路复用器71b4选择并输出作为多路复用器71a1的输出的h4和W4,4。多路复用器71b5选择并输出作为多路复用器71a3的输出的h15和W4,15。
[0256] 由此,ΔE计算电路62a1计算ΔE1+=h21‑W4,21,ΔE计算电路62a2计算ΔE2+=h17‑W4,17,并且ΔE计算电路62a3计算ΔE3+=h8‑W4,8。此外,ΔE计算电路62a4计算ΔE4+=h4‑W4,4,并且ΔE计算电路62a5计算ΔE5+=h15‑W4,15。
[0257] 在以上周期1至4中完成了针对ΔE1至ΔE5的等式(3)的计算。注意,由于x4=1,因此ΔEmax被输出为ΔE4,而不是如上所述计算的值。
[0258] 在随后的周期中,通过类似的控制来计算ΔE6至ΔE25。
[0259] 图25是示出传播能量变化的传播控制单元的示例的图。
[0260] 传播控制单元63将由五个ΔE计算电路62a1至62a5计算出的能量变化传播至二十五个ΔE保存单元64a1至64a25中的任意五个。传播控制单元63包括二十五个开关63a1至63a25和开关控制电路63b。注意,图25中的五个黑色圆圈用作解多路复用器。
[0261] 开关控制电路63b接通开关63a1至63a25中的任意五个,并且断开其他开关,以将由ΔE计算电路62a1至62a5计算出的能量变化传播至ΔE保存单元64a1至64a25中的任意五个。
[0262] 例如,如图20所示,在二十个周期中计算出ΔE1至ΔE25的情况下,在完成ΔE1至ΔE5的计算的周期4中,开关63a1至63a25中的连接至保存ΔE1至ΔE5的ΔE保存单元的五个开关被接通。在完成ΔE6至ΔE10的计算的周期8中,开关63a1至63a25中的连接至保存ΔE6至ΔE10的ΔE保存单元的五个开关被接通。在完成ΔE11至ΔE15的计算的周期12中,开关63a1至63a25中的连接至保存ΔE11至ΔE15的ΔE保存单元的五个开关被接通。在完成ΔE16至ΔE20的计算的周期16中,开关63a1至63a25中的连接至保存ΔE16至ΔE20的ΔE保存单元的五个开关被接通。在完成ΔE21至ΔE25的计算的周期20中,开关63a1至63a25中的连接至保存ΔE21至ΔE25的ΔE保存单元的五个开关被接通。
[0263] 因此,可以获得如图2所示的输入至转换选择单元25的n=25个能量变化。除此之外,执行与第二实施方式的优化装置20的操作类似的操作。注意,在转换选择单元25以一次2
N个能量变化而输入N个能量变化并且从N个能量变化中选择一个能量变化的情况下,可以不需要如图18所示的传播控制单元63和ΔE保存单元64a1至64an。
[0264] 如上所述,即使ΔE计算电路62a1至62aN的数目小于N2,通过传播单元61传播要用于计算的局部字段和加权系数,也可以获得与第二实施方式的优化装置20的效果类似的效果。
[0265] (修改)
[0266] 顺便提及,除了经受双向独热约束的N2个状态变量之外,包括在评估函数中的状态变量还可以包括不经受双向独热约束的状态变量。
[0267] 在这种情况下,ΔE计算电路可以被配置如下。
[0268] 图26是示出ΔE计算电路的修改的图。在图26中,与图19中示出的ΔE计算电路62a1类似的元件用相同的附图标记表示。
[0269] 修改中的ΔE计算电路80在控制信号生成电路79a中不同于图19中示出的控制信号生成电路79。此外,假设每个状态变量和指示该状态变量是否经受双向独热约束的标志值被存储在存储单元(未示出)中。
[0270] 例如,在xj是经受双向独热约束的状态变量的情况下,标志值(fj)为1。相反,在xj是不经受双向独热约束的状态变量的情况下,标志值(fj)为0。
[0271] 控制信号生成电路79a读取fj和xj,并且在fj=1的情况下,将+1或‑1作为控制信号输出至如上所述的hi、hj、hk、hl、Wil和Wjk。在fj=0的情况下,控制信号生成电路79a将0作为控制信号输出至hi、hj、hk、hl、Wil和Wjk,并且将2xj‑1输出至hj。因此,ΔEj=(2xj‑1)hj。2xj‑1是xj的变化量,(2xj‑1)hj表示在所有状态变量中仅xj改变的情况下的能量变化。注意,在fj=0的情况下,控制信号生成电路79a使选择器78选择ΔEj。
[0272] 注意,在转换选择单元25中在fj=0的xj改变的情况下选择ΔEj的情况下,更新xj的仅一位。然后,还根据更新来更新局部字段。
[0273] 例如,利用这种配置,即使包括在评估函数中的状态变量还包括除经受双向独热2
约束的N个状态变量之外的不经受双向独热约束的状态变量,处理也变得可能。
[0274] 在以上内容中,基于实施方式已经描述了本实施方式的优化装置和优化方法的一方面;然而,这些仅是示例,并且不限于以上描述。
[0275] [附图标记列表]
[0276] 10 优化装置
[0277] 11、13bi、13bj、15a 存储单元
[0278] 12 传播单元
[0279] 13 计算单元
[0280] 13ai至13aj ΔE计算电路
[0281] 14 转换选择单元
[0282] 15 更新单元
[0283] 16 地址解码器
[0284] [引文列表]
[0285] 日本公开特许公报第7‑36473号。
[0286] 日本公开特许公报第2003‑263890号。

当前第1页 第1页 第2页 第3页