技术领域
[0001] 本文中所讨论的实施方式涉及计算机可读记录介质、数据处理方法和数据处理装置。
相关背景技术
[0002] 作为使用评估函数来进行组合优化问题的解查找的示例,可以使用伊辛机。组合优化问题被转换成伊辛模型的能量函数,伊辛模型是表示磁体自旋行为的模型。伊辛机例如在能量函数中包括的状态变量的值的组合中搜索使能量函数的值最小化的组合。在这种情况下,使能量函数的值最小化的状态变量的值的组合对应于基态或最优解。
[0003] 在实际时间内获得组合优化问题的近似解的方法的示例包括模拟退火(SA)方法、遗传算法(GA)、模拟量子退火(SQA)方法、禁忌搜索方法等。这些方法中的每种方法都使用预定的参数来执行解搜索。
[0004] 例如,提出了如下优化装置,其在SA方法中执行基态搜索,同时逐渐降低温度参数的值。
[0005] 提出了如下优化装置,其通过使用包括热噪声(温度)的初始值和热噪声(温度)的衰减率的输入参数,通过SA方法执行解搜索。
[0006] 提出了如下计算系统,其基于问题的特征为执行启发式算法以搜索问题的解空间的求解器生成一组参数,包括搜索时间段、范围和起点。
[0007] 提出了如下计算机系统,其在执行量子退火的情况下,通过使用机器学习技术来确定用于问题的一组退火参数。
[0008] 提出了如下优化装置,其通过使用被转换成伊辛模型的组合优化问题的临时最优解来执行模拟,通过基于结果添加约束项来更新伊辛模型,并且重复搜索临时最优解。
[0009] 作为相关技术公开了日本公开特许公报第2020‑194273号和第2021‑43787号,以及美国专利申请公开第2011/0060710号、第2021/0241143号和第2020/0380065号。
[0010] 问题
[0011] 对于组合优化问题的解查找,重要的是适当地确定要用于针对对应问题的解查找的参数值。因此,用于评估参数值是否适合于对应问题的方法很重要。
[0012] 根据一个方面,本公开内容的目的是高效地执行参数值的评估。
具体实施方式
[0023] 在下文中,将参照附图描述本实施方式。
[0024] [第一实施方式]
[0025] 将描述第一实施方式。
[0026] 图1是用于描述第一实施方式的数据处理装置的图。
[0027] 数据处理装置10用于组合优化问题的解查找。数据处理装置10包括存储单元11和处理单元12。
[0028] 存储单元11可以是诸如随机存取存储器(RAM)的易失性半导体存储器或诸如硬盘驱动器(HDD)或闪存的非易失性存储装置。例如,处理单元12是诸如中央处理单元(CPU)、图形处理单元(GPU)或数字信号处理器(DSP)的处理器。处理单元12可以包括专用电子电路,诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理单元12可以是执行存储在诸如RAM的存储器(其可以是存储单元11)中的程序的处理器。多个处理器的集合可以被称为“多处理器”或简称为“处理器”。
[0029] 下面将描述其中处理单元12搜索解的示例。然而,由FPGA、GPU等实现的搜索单元可以根据来自处理单元12的指令来搜索解,并且可以将搜索结果返回至处理单元12。在这种情况下,搜索单元可以被包括在数据处理装置10中,或者可以被包括在与数据处理装置10通信的另一装置中。
[0030] 组合优化问题由预定的评估函数公式化,并被例如使评估函数的值(例如,评估值)最小化的问题所替代。评估函数可以被称为目标函数,或者在评估函数表示能量的情况下可以被称为能量函数。评估函数包括多个状态变量。状态变量是取值为0或1的二进制变量。状态变量也可以称为比特。组合优化问题的解由多个状态变量的值表示。作为评估函数的示例,给出了伊辛模型的能量函数。使能量函数的值最小化的解表示伊辛模型的基态,并且对应于组合优化问题的最优解。能量函数的值称为能量。能量是评估函数的值的示例,例如,评估值。为此,以下描述中的“能量函数”可以理解为“评估函数”。以下描述中的“能量”可以理解为“评估函数的值”或“评估值”。
[0031] 伊辛型能量函数由等式(1)表示。
[0032]
[0033] 状态矢量x具有作为元素的多个状态变量,并且表示伊辛模型的状态。
[0034] 等式(1)是以二次无约束二元优化(QUBO)形式公式化的能量函数。在使能量最大化的问题的情况下,能量函数的符号可以反转。
[0035] 等式(1)右侧的第一项是通过以下获得的:对于可从所有状态变量中选择的两个状态变量的所有组合,在没有省略和重复的情况下对两个状态变量的值与权重系数的乘积进行整合。下标i和j是状态变量的索引。xi是第i个状态变量。xj是第j个状态变量。Wij是第i个状态变量与第j个状态变量之间的权重或指示耦合强度的权重系数。满足Wij=Wji和Wii=0。
[0036] 等式(1)右侧的第二项是所有状态变量中的每个状态变量的偏差与状态变量的值的乘积之和。bi指示第i个状态变量的偏差。被包括能量函数中的包括权重系数、偏差等的问题信息被存储在存储单元11中。由状态变量xi的变化引起的能量变化量ΔEi由等式(2)表示。
[0037]
[0038] 当满足ΔEi>0的状态变量xi变化时,等式(1)中的能量E(x)减小。处理单元12针对多个状态变量中的每个状态变量,计算由于多个状态变量中的一个状态变量的值的变化而导致的能量函数的值的变化量,并且随机优先地接受其中能量函数的值减小的变化。
[0039] 此时,在陷入局部解的情况下,不可能用最陡下降法逃离局部解。因此,处理单元12使用梅特罗波利斯(Metropolis)方法或吉布斯(Gibbs)方法来确定由于某个状态变量的变化而从某个状态转变至下一状态的概率。例如,处理单元12还根据能量函数的值的变化量与热噪声值之间的比较,随机地接受使能量函数的值增加的变化。根据温度值或随机数获得热噪声值。随着温度值的增加,热噪声值的大小增加。随着热噪声值的大小增加,其中能量函数的值大量增加的状态转变可能被接受。
[0040] 例如,在SA方法中,处理单元12逐渐将温度值从最大温度值变化至最小温度值,以降低热噪声值的大小,并使伊辛模型的状态收敛至基态。如上所述,在SA方法中,使用诸如最大温度值和最小温度值的参数。
[0041] 为此,处理单元12基于用于多个现有训练问题的SA方法等的解查找结果来预先获取通用的参数值,例如通用参数值,并在新问题的解查找中使用通用参数值。训练问题是为通用参数值的训练而准备的问题。为了获取通用参数值,处理单元12使用参数的多个候选值中的每个候选值来执行例如SA方法等达预定时间,并且基于作为执行的结果获得的能量来执行候选值的评估。处理单元12选择具有最佳评估的候选值作为通用参数值,并将所选择的候选值存储在存储单元11中。注意,通用参数值不一定对所有问题都有用。
[0042] 因此,在将通用参数值用于新问题(例如,评估问题)的情况下,处理单元12通过SA方法等执行解查找性能的评估。基于评估结果,处理单元12确定是否获取专用于评估问题的参数值,例如专用参数值。例如,处理单元12执行以下处理。尽管通用参数值在下面被例示为要针对解查找性能被评估的参数值,但是要被评估的参数值不限于通用参数值,并且可以是任意参数值。
[0043] 首先,当通过使用通用参数值执行基于与评估问题对应的能量函数的解搜索时,处理单元12获取通过解搜索获得的能量历史信息。图表20是其中绘制了作为通过该解搜索获得的评估函数的值的能量历史信息的示例。图表20的水平轴指示时间。图表20的垂直轴指示评估函数的值,在该示例中是能量。图表20的水平轴指示解搜索的开始时间点和解搜索的结束时间点。
[0044] 处理单元12获取由评估问题的能量函数计算的能量的第一索引值。处理单元12获取在从解搜索的时间段的开始时间点之后的时间点到解搜索的时间段的结束时间点的第一时间段中获得的能量的第二索引值。例如,第一时间段是从时间t到结束时间点的时间段。例如,第一时间段是从解搜索的开始时间点到结束时间点的整个时间段的后半n%部分。
[0045] 例如,处理单元12使用在第一时间段中获得的能量的中值作为第二索引值。然而,处理单元12可以使用另一统计值诸如在第一时间段中获得的能量的平均值或最小值作为第二索引值。
[0046] 第一索引值的示例包括以下内容。
[0047] 根据第一示例,处理单元12获取在以解搜索的开始时间点作为起点的早于第一时间段的第二时间段中获得的能量的中值作为第一索引值。例如,第二时间段是从解搜索的开始时间点到时间τ的时间段。时间τ是比时间t早的时间。例如,第二时间段是解搜索的整个时间段的前半m%部分。满足m≤n。这是因为解搜索的前半部分中的能量变化大于后半部分中的能量变化。
[0048] 根据第二示例,处理单元12使用在基于评估问题的能量函数的解搜索中使用的初始解的能量作为第一索引值。
[0049] 根据第三示例,处理单元12使用针对评估问题的能量函数预先计算的预定解的能量作为第一索引值。例如,预定解的能量是在理论上预测的最优解的能量。然而,预定解的能量可以是除最优解之外的任意解(例如局部解)的能量。
[0050] 基于第一索引值和第二索引值,处理单元12计算指示第一索引值与第二索引值之间的差异程度的变化率。例如,处理单元12可以计算第一索引值与第二索引值之间的差异与第一索引值的比率作为变化率。例如,处理单元12可以通过将第一索引值与第二索引值之间的差异除以第一索引值来计算变化率。第一索引值与第二索引值之间的差异可以是通过从第一索引值减去第二索引值而获得的值的绝对值。在预定解的能量被用作第一索引值的情况下,变化率也可以被称为差异率。
[0051] 基于变化率,处理单元12评估在将通用参数值用于评估问题的情况下的解查找性能。例如,处理单元12根据变化率与预定参考值之间的比较来评估该解查找性能。例如,在变化率小于参考值的情况下,处理单元12评估出解查找性能不足。在变化率等于或大于参考值的情况下,处理单元12评估出解查找性能是足够的。
[0052] 解查找性能不足意味着通用参数值不适合于该评估问题。因此,在解查找性能不足的情况下,处理单元12确定获取专用于该评估问题的专用参数值。解查找性能足够意味着通用参数值适合于该评估问题。因此,在解查找性能足够的情况下,处理单元12确定不获取专用参数值。
[0053] 参考值是预先确定的。参考值可以由用户预先指定。可替选地,处理单元12可以针对多个训练问题中的每个训练问题来获取通过为了获取通用参数值而执行的解搜索而获得的能量历史,以及基于所获取的能量历史来计算参考值。例如,处理单元12可以基于通过关于通用参数值的每个训练问题的解搜索而获得的能量历史,来针对每个训练问题获得如上所述的相同变化率,并且可以使用针对每个训练问题的变化率的中值作为参考值。在与变化率进行比较时,处理单元12可以将该参考值乘以变量d(d<1),以设置将被接受的性能水平。
[0054] 当确定不获取专用参数值时,处理单元12输出使用通用参数值通过解搜索而获得的第一解。对评估问题的解查找结束。
[0055] 相比之下,当确定获取专用参数值时,处理单元12使用多个参数候选值中的每个候选参数值来执行解搜索,并且基于针对多个参数候选值中的每个参数候选值执行解搜索的结果来获取专用参数值。
[0056] 可以使使用多个参数候选值中的每个参数候选值的解搜索的时间短于使用专用参数值的解搜索的时间。例如,处理单元12可以选择如下参数候选值作为专用参数值:作为使用多个参数候选值中的每个参数候选值进行解搜索达特定时间的结果,该参数候选值达到最低能量。可替选地,处理单元12可以在参数候选值在更短时间内达到更低能量的情况下将该参数候选值评估得更高,并选择具有最高评估的参数候选值作为专用参数值。
[0057] 处理单元12使用专用参数值执行解搜索,并且输出使用专用参数值通过解搜索获得的第二解。对评估问题的解查找结束。
[0058] 如上所述,根据数据处理装置10,基于评估函数使用第一参数值来执行解搜索。获取由评估函数计算出的评估函数的值的第一索引值。获取在从解搜索的时间段的开始时间点之后的时间点到解搜索的时间段的结束时间点的第一时间段中获得的评估函数的值的第二索引值。基于第一索引值和第二索引值,计算指示第一索引值与第二索引值之间的差异程度的变化率。基于变化率来评估将第一参数值用于由该评估函数表示的问题的情况下的解查找性能。
[0059] 因此,数据处理装置10可以有效地评估参数值。处理单元12可以输出将第一参数值用于对应问题的情况下的解查找性能的评估结果。例如,作为结果,数据处理装置10可以支持用户确认第一参数值是否适合于对应的问题。上述通用参数值是第一参数值的示例。
[0060] 在对组合优化问题的解查找中,存在如下情况:基于对现有问题的解搜索的执行结果来预先获取通用的参数值(例如通用参数值),并且将通用参数值用于对新问题的解查找。然而,通用参数值不一定对所有问题都有用。根据问题,使用通用参数值可能无法获得足够的解查找性能。相比之下,也可以设想,针对每个问题获取适合于该问题的参数值。然而,在参数值的获取中,例如,执行如下处理:例如使用参数的多个候选值中的每个候选值执行解搜索达预定时间以及基于执行结果来评估每个候选值。由于这个原因,每当新问题出现时,获取用于该问题的参数值是低效的。
[0061] 通过使用通用参数值作为要被评估的第一参数值,数据处理装置10可以如下高效地执行解查找。
[0062] 例如,在基于变化率评估出在使用通用参数值的情况下的解查找性能足够的情况下,数据处理装置10可以按原样采用通过使用通用参数值搜索的解作为对应问题的解,并且可以省略对专用参数值的获取。
[0063] 数据处理装置10可以将获取专用参数值的问题缩小至在使用通用参数值的情况下的解查找性能被评估为不足的情况。出于该原因,数据处理装置10不必针对每个问题获取专用参数值。在使用通用参数值时解查找性能不足的情况下,数据处理装置10获取专用参数值,从而可以代替通用参数值使用专用参数值来执行解搜索,并改善针对对应问题的解查找性能。
[0064] [第二实施方式]
[0065] 接下来,将描述第二实施方式。
[0066] 图2是示出根据第二实施方式的数据处理装置的硬件示例的图。
[0067] 数据处理装置100执行对组合优化问题的解查找。组合优化问题由等式(1)的能量函数公式化。通过基于能量函数执行SA方法等,数据处理装置100搜索对应于组合优化问题的解。
[0068] 数据处理装置100包括处理器101、RAM 102、HDD 103、GPU 104、输入接口105、介质读取器106、通信接口107和加速卡108。被包括在数据处理装置100中的这些单元耦接至数据处理装置100内部的总线。处理器101对应于第一实施方式中的处理单元12。RAM 102或HDD 103对应于第一实施方式中的存储单元11。
[0069] 处理器101是执行程序的指令的算术装置。例如,处理器101是CPU。处理器101将存储在HDD 103中的程序或数据的至少一部分加载至RAM 102中,并执行该程序。处理器101可以包括多个处理器核心。数据处理装置100可以具有多个处理器。下面将描述的处理可以通过使用多个处理器或处理器核心来并行执行。多个处理器的集合可以被称为“多处理器”或简称为“处理器”。
[0070] RAM 102是易失性半导体存储器,其临时存储要由处理器101执行的程序和要由处理器101用于算术运算的数据。数据处理装置100可以包括与RAM不同类型的存储器,并且可以包括多个存储器。
[0071] HDD 103是存储诸如操作系统(OS)、中间件和应用软件的数据和软件程序的非易失性存储设备。数据处理装置100可以包括其他类型的存储设备,诸如闪存或固态驱动器(SSD),并且可以包括多个非易失性存储设备。
[0072] GPU 104根据来自处理器101的指令将图像输出至耦接至数据处理装置100的显示器51。作为显示器51,可以使用任意类型的显示器,诸如阴极射线管(CRT)显示器、液晶显示器(LCD)、等离子显示器或有机电致发光(OEL)显示器。
[0073] 输入接口105从耦接至数据处理装置100的输入设备52获取输入信号,并将输入信号输出至处理器101。作为输入设备52,可以使用诸如鼠标、触摸面板、触摸板或轨迹球、键盘、遥控器、按钮开关等的定点设备。多种类型的输入设备可以耦接至数据处理装置100。
[0074] 介质读取器106是读取记录在记录介质53中的程序和数据的读取装置。作为记录介质53,例如,可以使用磁盘、光盘、磁光(MO)盘、半导体存储器等。磁盘包括软盘(FD)和HDD。光盘包括致密盘(CD)和数字通用光盘(DVD)。
[0075] 例如,介质读取器106将从记录介质53读取的程序或数据复制到另一个记录介质诸如RAM 102或HDD 103中。例如,读取程序由处理器101执行。记录介质53可以是便携式记录介质,并且可以用于分发程序和数据。记录介质53和HDD 103可以被称为计算机可读记录介质。
[0076] 通信接口107耦接至网络54,并经由网络54与另一信息处理装置通信。通信接口107可以是耦接至诸如交换机或路由器的有线通信装置的有线通信接口,或者可以是耦接至诸如基站或接入点的无线通信装置的无线通信接口。
[0077] 加速器卡108是基于伊辛模型的能量函数执行SA方法的硬件加速器。加速卡108可以使用SA方法以外的算法来执行解搜索。加速卡108包括处理器108a和RAM 108b。例如,处理器108a是CPU、GPU、FPGA、ASIC等。根据来自处理器101的指令,处理器108a执行SA方法并返回通过搜索获得的解。RAM 108b是存储将用于处理器108a进行的处理的数据的存储器。例如,使用诸如最大温度值和最小温度值的参数值来执行SA方法。这些参数的值由处理器
101输入至加速卡108,并保存在RAM 108b中。
[0078] 执行由伊辛型能量函数表示的问题(例如伊辛问题)的解查找的装置,如加速器卡108或数据处理装置100,被称为伊辛机。
[0079] 图3是示出数据处理装置的功能的示例的图。
[0080] 数据处理装置100包括存储单元110、训练问题输入单元120、通用参数搜索单元130、参考值计算单元135、评估问题输入单元140、难度级别计算单元145、解搜索单元150和
180、通用参数性能评估单元160、专用参数搜索单元170和解输出单元190。
[0081] RAM 102或HDD 103的存储区域用于存储单元110。由处理器101执行存储在RAM 102中的程序,从而实现训练问题输入单元120、通用参数搜索单元130、参考值计算单元
135、评估问题输入单元140、难度级别计算单元145、解搜索单元150和180、通用参数性能评估单元160、专用参数搜索单元170和解输出单元190。
[0082] 存储单元110存储训练问题和评估问题的数据。训练问题是用于通用参数搜索的组合优化问题。预先准备多个训练问题。评估问题是用户想要求解的组合优化问题。
[0083] 训练问题输入单元120获取存储在存储单元110中的训练问题的数据,并将该数据输入至通用参数搜索单元130和参考值计算单元135。训练问题的数据可以包括诸如指示训练问题的伊辛型能量函数和用于解搜索的初始解的信息。
[0084] 通用参数搜索单元130执行通用参数搜索。通用参数搜索是通过使用训练问题获取通用参数值的处理。根据SA方法,要获取的通用参数值例如是最大温度值和最小温度值中的两个或一个。在存在诸如最大温度和最小温度的多种类型的参数的情况下,要获取的通用参数值是这些参数的值的集合。这同样适用于下面描述的专用参数值。
[0085] 首先,通用参数搜索单元130获取对应参数的多个候选值。例如,通用参数搜索单元130可以通过网格搜索从预定的候选值范围中以循环(round‑robin)方式获取多个候选值。可替选地,通用参数搜索单元130可以通过随机搜索从预定的候选值范围中随机获取多个候选值。
[0086] 通用参数搜索单元130将参数的候选值和训练问题的数据输入至加速卡108,使加速卡108执行解搜索达特定时间,并获得解搜索中的能量更新历史。对于多个训练问题,通用参数搜索单元130针对每个候选值获取达到的能量和达到该能量的时间,并评估每个候选值,使得当候选值在更短的时间内达到更低的能量时,评估变得更高。通用参数搜索单元130选择具有最高评估的候选值作为通用参数值,并将所选择的通用参数值存储在存储单元110中。
[0087] 参考值计算单元135基于在通用参数搜索中获取的解搜索中的能量更新历史来计算参考值。参考值计算是获得参考值的处理,该参考值用于测量在将通用参数值用于评估问题的情况下的解搜索的解查找性能。参考值计算单元135将计算出的参考值输入至通用参数性能评估单元160。
[0088] 评估问题输入单元140获取存储在存储单元110中的评估问题的数据和通用参数值,并将数据和通用参数值输入至解搜索单元150。评估问题的数据可以包括诸如指示评估问题的伊辛型能量函数和用于解搜索的初始解的信息。评估问题输入单元140将关于评估问题中的状态变量的数量(比特数)、约束类型和约束数量的信息输入至难度级别计算单元145。评估问题输入单元140将评估问题的理论解的能量输入至通用参数性能评估单元160。
[0089] 在确定执行专用参数搜索的情况下,基于通用参数性能评估单元160的性能评估,评估问题输入单元140将评估问题的数据输入至专用参数搜索单元170和解搜索单元180。
[0090] 难度级别计算单元145基于评估问题中的比特数、约束类型以及约束数量来计算评估问题的难度级别。该约束被表示为伊辛型能量函数中的约束项。约束数量对应于表示对应的约束类型的约束项的数量。约束类型的示例包括单向独热约束、双向独热约束等等。
[0091] 例如,难度级别计算单元145随着评估问题的比特数或约束数量的增加而将问题的难度级别设置得更高。作为示例,在存在诸如约束1和约束2的两种类型的约束的情况下,难度级别计算单元145可以通过下面的等式(3)来计算问题的难度级别。
[0092] 问题的难度级别=b1×(评估问题的比特数)+b2×(约束1的数量)+b3×(约束2的数量)...(3)
[0093] 可替选地,难度级别计算单元145可以通过使用下面的等式(4)来计算问题的难度级别。
[0094] 问题的难度级别=b×(评估问题的比特数)+(约束1的数量)×(约束2的数量)...(4)
[0095] 等式(3)中的b1、b2和b3以及等式(4)中的b是预先给出的系数。b1、b2、b3和b是正实数。
[0096] 可替选地,表示难度级别相对于问题中的比特数、约束1的数量和约束2的数量的集合的对应关系的表可以预先存储在存储单元110中。例如,该表保存模式,诸如在比特数等于或小于c1、约束1的数量等于或小于c2、以及约束2的数量等于或小于c3的情况下问题的难度级别被设置为v的模式。在这种情况下,难度级别计算单元145可以在该表中搜索满足评估问题的比特数、约束1的数量和约束2的数量的条件的模式,并且可以获取评估问题的难度级别。
[0097] 难度级别计算单元145将评估问题的难度级别输入至通用参数性能评估单元160。
[0098] 解搜索单元150将评估问题的数据和通用参数值输入至加速卡108,并使加速卡108执行关于评估问题的解搜索。解搜索单元150从加速卡108获取该解搜索中的能量更新历史和搜索到的解。解搜索单元150将能量更新历史输出至通用参数性能评估单元160。
[0099] 通用参数性能评估单元160执行通用参数性能评估。通用参数性能评估是评估在使用通用参数值的情况下的解搜索的解查找性能的处理。
[0100] 首先,通用参数性能评估单元160获取由评估问题的能量函数计算的能量的第一索引值。基于能量更新历史,通用参数性能评估单元160获取在从解搜索的时间段的开始时间点之后的时间点到解搜索的时间段的结束时间点的第一时间段中获得的能量的第二索引值。接下来,通用参数性能评估单元160计算指示第一索引值与第二索引值之间的差异程度的变化率。根据变化率与由参考值计算单元135计算的参考值之间的比较,通用参数性能评估单元160确定在使用通用参数值的情况下的解查找性能对于该评估问题是否是足够的。
[0101] 在确定解查找性能足够的情况下,通用参数性能评估单元160将该确定结果输出至解输出单元190。在确定解查找性能不足的情况下,通用参数性能评估单元160指示专用参数搜索单元170执行专用参数搜索。
[0102] 专用参数搜索单元170执行专用参数搜索。专用参数搜索是获取用于评估问题的专用参数值的处理。专用参数搜索单元170将专用参数的候选值和评估问题的数据输入至加速卡108,使加速卡108执行解搜索达特定时间,并获得解搜索中的能量更新历史。针对多个候选值中的每个候选值,专用参数搜索单元170使加速卡108执行关于评估问题的解搜索。专用参数搜索单元170针对每个候选值获取达到的能量和达到该能量的时间,并且评估每个候选值,使得当候选值在更短的时间内达到更低的能量时,评估变得更高。专用参数搜索单元170选择具有最高评估的候选值作为专用参数值,并将其输出至解搜索单元180。
[0103] 解搜索单元180将评估问题的数据和专用参数值输入至加速卡108,并使加速卡108执行关于评估问题的解搜索。解搜索单元180从加速卡108获取通过该解搜索搜索到的解。解搜索单元180将所获取的解输出至解输出单元190。
[0104] 在通用参数性能评估单元160确定使用通用参数值的解查找性能足够的情况下,解输出单元190从解搜索单元150获取解并输出该解。在确定使用通用参数值的解查找性能不足的情况下,解输出单元190从解搜索单元180获取解并输出该解。
[0105] 例如,解输出单元190可以使显示器51显示表示评估问题的解的图像,或者可以经由网络54将关于解的数据传输至另一计算机。
[0106] 虽然通用参数搜索单元130、解搜索单元150和180以及专用参数搜索单元170使加速卡108执行解搜索,但是解搜索的该功能可以通过处理器101执行程序来实现。在这种情况下,数据处理装置100可以不包括加速卡108。
[0107] 将描述通过关于评估问题的解搜索获得的能量更新历史的示例。
[0108] 图4是示出解搜索中的时间与能量之间的关系的第一示例的图。
[0109] 图表200示出了能量更新历史中指示的时间与能量之间的关系。图表200的水平轴指示时间。图表200的垂直轴指示通过解搜索达到的能量。例如,预先指定解搜索的时间,例如,从解搜索的开始时间点到结束时间点的时间。
[0110] 例如,当由下面的等式(5)根据能量更新历史的前半m%部分和后半n%部分的能量计算出的能量变化率小于参考值时,通用参数性能评估单元160评估出没有获得足够的解查找性能。满足m≤n。
[0111] 能量变化率=(前半m%部分的能量的中值‑后半n%部分的能量的中值)/(前半m%部分的能量的中值)...(5)
[0112] 然而,在通过使用另一种解搜索方法等进行预处理来获得解搜索的初始解的情况下,通用参数性能评估单元160可以使用下面的等式(6)。
[0113] 能量变化率=(初始解的能量‑后半n%部分的能量的中值)/(初始解的能量)...(6)
[0114] 在预先已知理论解的能量的情况下,通用参数性能评估单元160可以使用由下面的等式(7)表示的差异率作为变化率。
[0115] 能量差异率=(理论解的能量‑后半n%部分的能量的中值)/理论解的能量...(7)[0116] 理论解的能量可以是局部解的能量、最优解的能量或除这些之外的解的能量。
[0117] 参考值计算单元135通过使用类似于通用参数性能评估单元160使用的变化率或差异率的等式,基于使用训练问题的通用参数搜索的能量更新历史来预先计算参考值。例如,参考值计算单元135可以基于通过针对关于通用参数值的每个训练问题的解搜索获得的能量历史来针对每个训练问题获得如上所述的相同变化率,并且可以使用针对每个训练问题的变化率的中值作为参考值。
[0118] 在与变化率进行比较时,通用参数性能评估单元160可以将该参考值乘以变量d(d<1),以设置将被接受的性能水平。
[0119] 通用参数性能评估单元160还可以基于评估问题的难度级别来执行针对通用参数值的解查找性能的评估。接下来将描述使用评估问题的难度级别的解查找性能的评估示例。
[0120] 图5是示出解搜索中的时间与能量之间的关系的第二示例的图。
[0121] 图表300示出了能量更新历史中指示的时间与能量之间的关系。图表300的水平轴指示时间。图表300的垂直轴指示通过解搜索达到的能量。基于能量更新历史,通用参数性能评估单元160获得从解搜索的开始时间点到能量的最后更新时间的时间T0。
[0122] 在时间T0相对于评估问题的难度级别而言较短的情况下,通用参数性能评估单元160可以评估出解查找性能足够。例如,在满足时间T0
[0123] 在通过变化率与参考值之间的比较而未确定解查找性能足够的情况下,通用参数性能评估单元160可以基于问题的难度级别与时间T0之间的比较来执行解查找性能的评估。可替选地,在通过问题的难度级别与时间T0之间的比较而未确定解查找性能足够的情况下,通用参数性能评估单元160可以基于变化率与参考值之间的比较来执行解查找性能的评估。
[0124] 接下来,将描述数据处理装置100的处理过程。
[0125] 图6是示出数据处理装置的处理示例的流程图。
[0126] (S10)训练问题输入单元120从存储单元110获取训练问题的数据,并将该数据输入至通用参数搜索单元130。
[0127] (S11)通用参数搜索单元130执行通用参数搜索。例如,通用参数搜索单元130将通用参数的候选值和训练问题的数据输入至加速卡108,使加速卡108执行解搜索达特定时间,并获得解搜索中的能量更新历史。对于多个训练问题,通用参数搜索单元130针对每个候选值获取达到的能量和达到该能量的时间,并评估每个候选值,使得当候选值在更短的时间内达到更低的能量时,评估变得更高。通用参数搜索单元130选择具有最高评估的候选值作为通用参数值,并将所选择的通用参数值存储在存储单元110中。
[0128] (S12)参考值计算单元135基于在通用参数搜索中获取的解搜索中的能量更新历史来计算参考值,并且将该参考值存储在存储单元110中。参考值用于通用参数性能评估单元160中的解查找性能的评估。
[0129] (S13)评估问题输入单元140从存储单元110获取评估问题的数据和通用参数值,并将数据和通用参数值输入至解搜索单元150。评估问题输入单元140将评估问题的数据输入至难度计算单元145。
[0130] (S14)解搜索单元150将评估问题的数据和通用参数值输入至加速卡108,并使加速卡108执行关于评估问题的解搜索。解搜索单元150从加速卡108获取该解搜索中的能量更新历史和搜索到的解。
[0131] (S15)难度级别计算单元145基于评估问题的数据来计算评估问题的难度级别。难度级别用于通用参数性能评估单元160中的解查找性能的评估。例如,使用等式(3)或(4)来计算难度级别。然而,等式(3)和(4)可以根据每种约束类型的约束项的数量而改变。
[0132] (S16)通用参数性能评估单元160执行通用参数性能评估。在通用参数性能评估中,通用参数性能评估单元160获取由评估问题的能量函数计算的能量的第一索引值。基于能量更新历史,通用参数性能评估单元160获取在从解搜索的时间段的开始时间点之后的时间点到解搜索的时间段的结束时间点的第一时间段中获得的能量的第二索引值。通用参数性能评估单元160通过将第一索引值与第二索引值之间的差异除以第一索引值来计算变化率。例如,使用等式(5)、(6)和(7)中的任何一个来计算变化率。
[0133] 通过将变化率与由参考值计算单元135计算的参考值进行比较,通用参数性能评估单元160评估解查找性能是否足够。例如,通用参数性能评估单元160在变化率等于或大于参考值的情况下评估出解查找性能是足够的,并且在变化率小于参考值的情况下未评估出解查找性能是足够的。
[0134] 在通过该比较而未将解查找性能评估为足够的情况下,通用参数性能评估单元160基于问题的难度级别与上述时间T0之间的比较来评估解查找性能。例如,在满足时间T0
[0135] (S17)通用参数性能评估单元160确定是否通过以下方法中的至少一种方法评估出获得了足够的性能:将变化率与参考值进行较来评估解查找性能的方法,和通过将问题的难度级别与时间T0进行比较来评估解查找性能的方法。在通过方法中的至少一种方法评估出获得足够性能的情况下,处理进行至步骤S20。在通过方法中的任何方法都没有评估出获得足够性能的情况下,处理进行至步骤S18。
[0136] (S18)专用参数搜索单元170执行专用参数搜索。专用参数搜索单元170将专用参数的候选值和评估问题的数据输入至加速卡108,使加速卡108执行解搜索达特定时间,并获得解搜索中的能量更新历史。对于多个候选值中的每个候选值,专用参数搜索单元170使加速卡108执行关于评估问题的解搜索。专用参数搜索单元170针对每个候选值获取达到的能量和达到该能量的时间,并且评估每个候选值,使得当候选值在更短的时间内达到更低的能量时,评估变得更高。专用参数搜索单元170选择具有最高评估的候选值作为专用参数值。
[0137] (S19)解搜索单元180将评估问题的数据和专用参数值输入至加速卡108,并使加速卡108执行关于评估问题的解搜索。解搜索单元180从加速卡108获取通过该解搜索搜索到的解。
[0138] (S20)解输出单元190输出由解搜索单元150获取的解或者由解搜索单元180获取的解作为关于评估问题的最终解。数据处理装置100的处理结束。
[0139] 如上所述,通用参数性能评估单元160基于通过将变化率与参考值进行比较而进行的对解查找性能的评估来确定是否针对对应的评估问题执行专用参数搜索。在步骤S16中,通用参数性能评估单元160可以不基于评估问题的难度级别来评估解查找性能。在这种情况下,在步骤S17中,在变化率等于或大于参考值的情况下,通用参数性能评估单元160评估出解查找性能足够,例如,获得了足够的性能。相比之下,在变化率小于参考值的情况下,通用参数性能评估单元160评估出解查找性能不足,例如,没有获得足够的性能。
[0140] 接下来,将描述比较示例。比较示例是不使用参考值计算单元135、难度级别计算单元145、通用参数性能评估单元160、专用参数搜索单元170、解搜索单元180和解输出单元190的功能的情况。
[0141] 图7是示出比较示例的流程图。
[0142] (S30)训练问题输入单元120将训练问题的数据输入至通用参数搜索单元130。
[0143] (S31)通用参数搜索单元130获取通用参数。在通用参数获取中执行类似于上述通用参数搜索的处理。然而,在步骤S31中,通用参数搜索单元130使用加速卡108针对目标参数的一个候选值执行解搜索达特定时间。
[0144] (S32)通用参数搜索单元130从加速卡108获取能量更新历史,并基于能量更新历史来评估参数的候选值。
[0145] (S33)通用参数搜索单元130确定是否结束参数搜索,例如,是否结束对步骤S31和S32中的处理的重复。在参数搜索结束的情况下,处理进行至步骤S34。在参数搜索未结束的情况下,处理进行至步骤S31。例如,当使用所有训练问题完成对所有候选值的评估时,通用参数搜索单元130确定结束参数搜索。否则,通用参数搜索单元130确定不结束参数搜索,并进行至步骤S31,以对未执行的训练问题和候选值的组合执行处理。
[0146] (S34)通用参数搜索单元130输出通用参数值。
[0147] (S35)评估问题输入单元140将评估问题的数据和通用参数值输入至解搜索单元150。
[0148] (S36)解搜索单元150将评估问题的数据和通用参数值输入至加速卡108,并使加速卡108执行关于评估问题的解搜索。解搜索单元150从加速卡108获取所获得的解。
[0149] (S37)解搜索单元150输出所获取的解。比较示例的处理结束。
[0150] 如在比较示例的方法中,也可以设想对于所有评估问题使用通用参数值。然而,通用参数值不一定适合于所有的评估问题。例如,已经执行了下面的实验。
[0151] 在实验中,执行了对已知解的标准基准“QAP‑LIB”的所有134个问题的解查找。R.E.Burkard、S.E.Karisch和F.Rendl,“Qaplib‑a quadratic assignment problem library”,Journal of Global Optimization,第10卷,第4期,第391至403页,1997年,其作为QAP‑LIB的参考。
[0152] 通过使用QAP‑LIB中的10个问题作为训练问题,以30秒的一次搜索时间通过1000次通用参数搜索来获取通用参数值。通过使用通用参数值,在60秒的评估时间内对所有134个问题执行解搜索,并且基于所获得的能量的变化率来执行性能评估。
[0153] 结果,对于性能被确定为足够的125个问题,解的差距(gap)为0.047%,以及解的达到率(reaching rate)为93.6%(117/125)。相比之下,对于性能被确定为不足够的9个问题,解的差距为0.303%,以及解的达到率为33.3%(3/9),这是较差的。根据该实验,已经确认了可以基于变化率正确地确定解查找性能是否足够。
[0154] 根据比较示例的方法,对于如上所述的一些问题,存在可能无法获得合适的解的可能性。因此,针对其性能被确定为不足的9个问题中的每个问题执行专用参数搜索达300秒(30秒×10次),并且使用通过专用参数搜索获得的专用参数值执行解搜索。结果,对于这9个问题,解的差距改善到0.216%,以及解的达到率改善到77.8%(7/9)。例如,在9个问题之一的Tai80a中,通过使用专用参数值在60秒的评估时间内达到的能量甚至在一小时后也没有通过使用通用参数值达到。
[0155] 如上所述,数据处理装置100使用能量的变化率或差异率来评估解查找性能。这些变化率和差异率中的每一个可以容易地从解搜索中的能量更新历史中获取。出于该原因,数据处理装置100可以高效地评估将对应参数值用于评估问题的情况下的解查找性能。
[0156] 通过使用能量的变化率或差异率或难度级别来执行性能评估,数据处理装置100通过缩小到使用通用参数值的情况下的性能不足的问题来执行专用参数搜索,从而可以减少解查找的执行时间。以这种方式,数据处理装置100可以高效地执行解查找。
[0157] 如上所述,数据处理装置100执行例如以下处理。
[0158] 基于评估函数,加速卡108使用第一参数值执行解搜索。该解搜索可以由处理器101执行。处理器101获取由该评估函数计算的评估函数的值的第一索引值。处理器101获取在从该解搜索的时间段的开始时间点之后的时间点到解搜索的时间段的结束时间点的第一时间段中获得的评估函数的值的第二索引值。基于第一索引值和第二索引值,处理器101计算指示第一索引值与第二索引值之间的差异程度的变化率。基于变化率,处理器101评估在将第一参数值用于由对应的评估函数表示的问题(评估问题)的情况下的解查找性能。
[0159] 因此,数据处理装置100可以高效地执行参数值的评估。在存在用于解搜索的多种类型的参数的情况下,第一参数值是多种类型的参数的值的集合。例如,在通过SA方法执行解搜索的情况下,第一参数值可以是最大温度值和最小温度值中的一个或两个。在通过除SA方法以外的方法执行解搜索的情况下,第一参数值可以是除最大温度值和最小温度值以外的类型的参数值。
[0160] 通过使用多个参考值,通用参数性能评估单元160可以根据变化率与多个参考值中的每个参考值之间的比较,在三个或更多个阶段的多个阶段中执行解查找性能的评估。例如,通用参数性能评估单元160可以通过使用第一参考值和大于第一参考值的第二参考值来执行解查找性能的评估。例如,在变化率大于第二参考值的情况下,通用参数性能评估单元160可以评估出解查找性能高于标准解查找性能。在变化率等于或大于第一参考值且小于第二参考值的情况下,通用参数性能评估单元160可以评估出解查找性能是标准解查找性能。在变化率小于第一参考值的情况下,通用参数性能评估单元160可以评估出解查找性能低于标准解查找性能。通过输出这样的评估结果,通用参数性能评估单元160可以支持用户确认使用第一参数值的解查找性能的评估结果。
[0161] 例如,评估函数可以是伊辛模型的能量函数。评估函数可以是用于问题表示的另一种类型的函数。
[0162] 例如,处理器101通过将第一索引值与第二索引值之间的差异除以第一索引值来计算变化率。因此,数据处理装置100可以容易地获取变化率。
[0163] 处理器101可以获取在第一时间段中获得的评估函数的值的中值作为第二索引值。因此,数据处理装置100可以容易地获取第二索引值。然而,第二索引值可以是另一统计值,诸如在第一时间段中获得的评估函数的值的平均值、最小值或百分位数值。
[0164] 处理器101可以获取在以解搜索的开始时间点作为起点的早于第一时间段的第二时间段中获得的评估函数的值的中值作为第一索引值。因此,数据处理装置100可以容易地获取第一索引值。
[0165] 处理器101可以获取与关于评估问题的解搜索中的初始解对应的评估函数的值作为第一索引值。因此,数据处理装置100可以容易地获取第一索引值。
[0166] 处理器101可以获取与关于评估函数预先计算的预定解对应的评估函数的值作为第一索引值。因此,数据处理装置100可以容易地获取第一索引值。该预定解可以是局部解、最优解或除这些之外的任意解。
[0167] 例如,处理器101在对解查找性能的评估中将变化率与预定参考值进行比较。在变化率小于参考值的情况下,处理器101确定解查找性能不足。相比之下,在变化率等于或大于参考值的情况下,处理器101确定解查找性能是足够的。因此,数据处理装置100可以高效地执行参数值的评估。参考值可以由用户预先指定。如上所述,当将变化率与参考值进行比较时,处理器101可以将通过将参考值乘以小于1的可变值(系数值)而获得的值与变化率进行比较。
[0168] 处理器101可以通过将第一索引值与第二索引值之间的差异的绝对值除以第一索引值来计算变化率。在这种情况下,在对应于最优解的评估函数的值被用作第一索引值的情况下,处理器101可以如下评估解查找性能。例如,处理器101可以在变化率大于参考值的情况下确定解查找性能不足。相比之下,处理器101可以在变化率等于或小于参考值的情况下确定解查找性能是足够的。
[0169] 第一参数值可以是以通用方式用于多个问题的通用参数值。在这种情况下,在解查找性能不足的情况下,处理器101确定获取专用于评估问题的第二参数值(专用参数值)。在解查找性能足够的情况下,处理器101确定不获取第二参数值。因此,数据处理装置100可以缩小要获取第二参数值的问题。结果,数据处理装置100可以高效地执行解查找。第二参数值是与第一参数值类型相同的参数值。在存在用于解搜索的多种类型的参数的情况下,第二参数值是这些多种类型的参数的值的集合。
[0170] 处理器101可以针对多个训练问题中的每个训练问题来获取通过为获取第一参数值而执行的解搜索而获得的评估函数的值的历史,并且基于所获取的该评估函数的值的历史来计算参考值。因此,数据处理装置100可以省略由用户指定参考值的工作。通过在数据处理装置100中自动设置参考值,用户不再需要了解问题,并且用户可以容易地使用数据处理装置100的解查找功能。
[0171] 当确定不获取第二参数值时,处理器101输出使用第一参数值通过解搜索而获得的第一解。相比之下,当确定要获取第二参数值时,处理器101使用多个参数候选值中的每个参数候选值来执行解搜索,并且基于针对多个参数候选值中的每个参数候选值执行解搜索的结果来获取第二参数值。处理器101使用第二参数值执行解搜索,并且输出使用第二参数值通过解搜索而获得的第二解。
[0172] 因此,对于可以不获取第二参数值的问题,数据处理装置100可以省略第二参数值的获取,并高效地获得第一解。对于要获取第二参数值的问题,数据处理装置100可以高效地获得该问题的与第一解相比更适合的第二解。如上所述,处理器101可以通过使用诸如加速卡108的搜索单元来执行解搜索。
[0173] 处理器101可以基于该问题(评估问题)的难度级别和从解搜索的时间段的开始时间点到评估函数的值最后更新的时间的时间T0,来评估将第一参数值用于该问题的情况下的解查找性能。因此,数据处理装置100可以更恰当地执行参数值的评估。
[0174] 例如,处理器101可以基于与该问题对应的评估函数中包括的状态变量的数量和表示约束的约束项的数量来计算该问题的难度级别。因此,数据处理装置100可以高效地计算问题的难度级别。例如,随着状态变量的数量越大,处理器101将难度级别设置得越高。随着约束项的数量越大,处理器101将难度级别设置得越高。
[0175] 根据第一实施方式的信息处理可以通过使处理单元12执行程序来实现。根据第二实施方式的信息处理可以通过使处理器101执行程序来实现。该程序可以被记录在计算机可读记录介质53中。
[0176] 例如,可以通过分发其中记录程序的记录介质53来循环程序。该程序可以存储在另一计算机中,并且该程序可以经由网络分发。例如,计算机可以将记录在记录介质53中的程序或从另一计算机接收的程序存储(安装)在诸如RAM 102或HDD 103的存储设备中,从该存储设备读取程序,并执行程序。
[0177] 本发明还可以通过以下技术方案来实现:
[0178] 技术方案1.一种用于使计算机执行处理的程序,该处理包括:
[0179] 当基于评估函数使用第一参数值来执行解搜索时,基于由评估函数计算的评估函数的值的第一索引值和在从解搜索的时间段的开始时间点之后的时间点到解搜索的时间段的结束时间点的第一时间段中获得的评估函数的值的第二索引值来计算变化率,该变化率指示第一索引值与第二索引值之间的差异程度;以及
[0180] 基于变化率来评估将第一参数值用于由评估函数表示的问题的情况下的解查找性能。
[0181] 技术方案2.根据技术方案1所述的程序,
[0182] 其中,评估函数是伊辛模型的能量函数。
[0183] 技术方案3.根据技术方案1所述的程序,还使计算机执行以下处理:
[0184] 在变化率的计算中,通过将第一索引值与第二索引值之间的差异除以第一索引值来计算变化率。
[0185] 技术方案4.根据技术方案1所述的程序,还使计算机执行以下处理:
[0186] 获取在第一时间段中获得的评估函数的值的中值作为第二索引值。
[0187] 技术方案5.根据技术方案1所述的程序,还使计算机执行以下处理:
[0188] 获取在以开始时间点为起点的早于第一时间段的第二时间段中获得的评估函数的值的中值作为第一索引值。
[0189] 技术方案6.根据技术方案1所述的程序,
[0190] 其中,第一索引值是与解搜索中的初始解相对应的评估函数的值。
[0191] 技术方案7.根据技术方案1所述的程序,
[0192] 其中,第一索引值是与针对评估函数预先计算的预定解相对应的评估函数的值。
[0193] 技术方案8.根据技术方案1所述的程序,还使计算机执行以下处理:
[0194] 在评估解查找性能时,将变化率与预定参考值进行比较,并且在变化率小于参考值的情况下,确定解查找性能不足,以及在变化率等于或大于参考值的情况下,确定解查找性能足够。
[0195] 技术方案9.根据技术方案8所述的程序,
[0196] 其中,第一参数值是以通用方式用于多个问题的通用参数值,以及
[0197] 其中,程序还使计算机执行以下处理:
[0198] 在解查找性能不足的情况下确定获取专用于问题的第二参数值,以及在解查找性能足够的情况下确定不获取第二参数值。
[0199] 技术方案10.根据技术方案9所述的程序,还使计算机执行以下处理:
[0200] 针对多个训练问题中的每个训练问题来获取通过为获取第一参数值而执行的解搜索而获得的评估函数的值的历史,以及基于所获取的评估函数的值的历史来计算参考值。
[0201] 技术方案11.根据技术方案9所述的程序,还使计算机执行以下处理:
[0202] 当确定不获取第二参数值时,输出使用第一参数值通过解搜索而获得的第一解;以及
[0203] 当确定获取第二参数值时,使用多个参数候选值中的每个参数候选值来执行解搜索,基于针对多个参数候选值中的每个参数候选值解搜索的执行结果来获取第二参数值,使用第二参数值执行解搜索,以及输出使用第二参数值通过解搜索而获得的第二解。
[0204] 技术方案12.根据技术方案1所述的程序,还使计算机执行以下处理:
[0205] 基于问题的难度级别和从开始时间点到评估函数的值在解搜索中最后更新的时间的时间,来评估将第一参数值用于问题的情况下的解查找性能。
[0206] 技术方案13.根据技术方案12所述的程序,还使计算机执行以下处理:
[0207] 基于评估函数中包括的状态变量的数量和表示约束的约束项的数量来计算难度级别。
[0208] 技术方案14.一种数据处理方法,包括:
[0209] 当基于评估函数使用第一参数值来执行解搜索时,基于由评估函数计算的评估函数的值的第一索引值和在从解搜索的时间段的开始时间点之后的时间点到解搜索的时间段的结束时间点的第一时间段中获得的评估函数的值的第二索引值来计算变化率,该变化率指示第一索引值与第二索引值之间的差异程度;以及
[0210] 基于变化率来评估将第一参数值用于由评估函数表示的问题的情况下的解查找性能。
[0211] 技术方案15.一种数据处理装置,包括:
[0212] 存储单元,其被配置成存储用于解搜索的第一参数值;以及
[0213] 处理单元,其被配置成:当基于评估函数使用第一参数值来执行解搜索时,基于由评估函数计算的评估函数的值的第一索引值和在从解搜索的时间段的开始时间点之后的时间点到解搜索的时间段的结束时间点的第一时间段中获得的评估函数的值的第二索引值来计算变化率,该变化率指示第一索引值与第二索引值之间的差异程度;以及基于变化率来评估将第一参数值用于由评估函数表示的问题的情况下的解查找性能。