最优化问题的求解方法及其系统的制作方法

文档序号:6552868阅读:363来源:国知局
专利名称:最优化问题的求解方法及其系统的制作方法
技术领域
本发明有关最优化领域;特别是指一种基于本地搜索技术在一组约束下的最优化问题的求解方法及其系统。
背景技术
在所有工业中都存在最优化问题。例如,最优化问题涉及生产线上的计画、调度和产品制造的制程。这些制程通常比较复杂,而且取决于很多因素,如设备的可变生产量、制造过程的多个阶段、使用单一资源的多种产品的生产、人力或制程限制以及具体工业的其它特定因素(例如产品生产周期)等。一般而言,可存在大量用来管理这些工艺的规则或约束。因此,在环境约束条件内如何计画、调度或配置以最优地完成这些制程是十分重要的。
求解最优化问题的常规技术包括人工和自动最优化方法。人工方法需要人的介入。通过人工方法获得的最优化程度很大程度上取决于所涉及的人的技能和经验,以及最优化问题的大小(由对应于该最优化问题的潜在解的数目和约束的数目表示)。同时,人工方法耗时、棘手而且可导致例如不良的解品质和人为错误等问题。随着最优化问题牵涉的范围越广,人工方法变得不可行。自动最优化方法利用定义好的算法求解最优化问题。一类常见的自动最优化方法是基于本地搜索(LS)的概念。该技术涵盖了一系列组合启发式算法(combinatorialheuristics),如模拟退火算法(simulated annealing)、遗传算法(geneticalgorithm)、禁忌搜索(taboo search)算法和演化算法(evolutionaryalgorithm)。以下提供了此类启发式算法的参考,包括“Facts,Conjecturesand Improvements for Simulated Annealing”,作者P.Salamon、P.Sibani和R.Frost,于2002年由SIAM Monograph出版。
而“Genetic Algorithms and Engineering Design”,作者M.Gen和R.Chang,于1997年由John Wiley & Sons出版,提供了另一个此类启发式算法。
再者,“Modern Heuristic Techniques for Combinatorial Problems”,作者Colin Reeves,于1993年由Halsted Press出版,也提供了另一个此类启发式算法。
LS技术通过在解的区间内制造局部运动(local move)来求解最优化问题。举例来说,制造—调度问题的解可为生产调度的数学表达式,其实际上是制造不同物品所依据的时间表。在所有的LS启发式算法中,通过方便的机制产生一个或一个以上解。可使用任何方便的机制,因为最初的一组解无需满足任何约束;因此,它们甚至可随机生成。LS启发式算法通过较小改变或局部改变来系统地提炼该组解。此产生一组新的候选解。用于生成这些局部改变的技术根据所使用的LS启发式算法不同而不同。然后,评估该组候选解,以判定对现有约束的欠缺或违反。基于根据所使用的启发式算法不同而变化的接受标准,接受该等候选解中的一个或一个以上。重复此过程,直到这些解无可观改善,或超过计算预算。实际上,获得高品质的解需要大量运动(move),且LS启发式算法的实际利用率取决于对照若干约束对大量(近10δ至108个)候选解的有效评估。
通常,对解的评估是针对整个解。这需要高速且存储容量大的计算机。如果评估以增量方式实施(即,仅评估发生变化的解的邻域),那么该方法是特别针对于特定约束,且取决于局部运动发生的方式。这需要广泛且延续的软件开发或其它产品开发。因此,很明显,所拖延的计算时间和高成本限制了基于本地搜索的方法的实际使用。
因此,需要发展一种能加速计算过程,同时能有效求解实际最优化问题的技术。这种技术应该是成本有效的。还应有可能将其实施于工作站和PC上,而过程需要最少的人力干预。

发明内容
本发明的目的在于提供一种用于有一组约束的最优化问题的求解方法及其系统。
本发明的另一个目的在于提供一种对用于有一组约束的最优化问题的一组解进行增量评估的求解系统及其方法。
本发明的又一个目的是提供一种用于最优化问题的求解系统及其方法,其中对解的评估与约束的性质无关。
本发明的再一个目的是提供一种用于最优化问题的求解系统及其方法,其中对解的评估与候选解是以何种方式产生的无关。
为达上述目的,在本发明提出一种用于有一组约束的最优化问题的求解方法及其系统。在该方法中,对照这些约束评估一组解。该评估生成一组初始违反度量(violation metrics)和一组捕获了LS进程期间执行增量评估所需要的信息的状态。在此初步评估之后,用一组操作数以能典型代表所使用的LS启发式算法的方式从该组解生成一组候选解。操作数对于解的作用用一组变化点来表示。然后,利用与所计算的状态相关联的信息,在每个变化点的邻域评估每个候选解。增量评估的输出是一组新的违反度量和与解中的变化点相对应的新状态。针对每个约束的违反度量的变化接着被变换为成本函数的变化。基于增量评估和能典型代表该LS启发式算法的接受标准,接受一候选解。对每个候选解重复上述过程。若满足终结标准,则结束过程,举例而言,如果迭代数目超过特定的迭代数目,或者如果经过若干迭代,解已无进一步改善的情况。
为达上述目的,在本发明提出一种用于有一组约束的最优化问题的求解方法及其系统。该系统包括用于评估最优化问题的解、生成解的违反度量和状态和更新违反度量和状态的构件。该系统还包括用于运算一组解以产生一组候选解的构件、用于接受最优化问题的解的构件和用于解和状态的比较的构件。


图1显示根据本发明的实施例的用于实现最优化问题的求解方法的计算系统;图2显示根据本发明的实施例的最优化问题的求解方法的流程图;图3说明根据本发明的实施例的最优化问题的求解系统;图4说明根据本发明的实施例的违反度量至成本的映像;及图5说明根据本发明的实施例的用于实现启用增量评估的系统的示意电路图。
具体实施例方式
为达清楚说明,本文所使用的术语定义如下解解是函数或程序的数学表达式,是由最优化问题产生的所要结果。其可由元素列表表示,其中元素自身可为其它列表。解的元素通过一组坐标{i1,i2,...,iN}索引。例如,对于解以二维表示的问题,索引列表{2,3}是指解中的第二列表的第三元素。代表生产线调度的甘特图表(Gantt chart)是这类表达式的一个例子。
约束约束是解应该理想地满足的规则。该规则可适用于解的某一单个点,或者其可控制一组点的特征。违反约束会直接或间接地导致发生成本或惩罚(penalty),且通过违反度量进行量化。
评估单元(Evaluator)评估单元对照一约束或一组约束检查一个单一解。评估单元的输出是一组违反度量。违反度量被变换为成本函数或成本——最优化的目标函数。
目标函数目标函数被定义为被最优化的函数。例如,在例示性制造情境中,解是生产线的调度,而目标函数是最小化的惩罚或成本。
状态状态是针对某一设定约束对解的每个元素进行界定。一个元素的状态编码了针对该约束,所有其它元素对该元素的影响。
运算单元运算单元生成在解区间内的运动,借此从现有的一组解中生成候选解。
运动由操作数生成的运动是由变化点列表表示的。在实施例中,每个变化点是一个包括两个元素的列表。第一元素是坐标范围,而第二元素是对应于该坐标范围的变化的列表。在例示性运动中,由变化点的第一元素索引的解的元素可以被变化点的第二元素取代。
本发明提供了一种用于在一组约束下的最优化问题的求解方法、系统和计算机程序产物。一种最优化问题可以是旅行销售员问题(traveling salesman problem,TSP)。对这一问题的解涉及找出访问一组城市的最佳顺序,以最小化成本函数,如总旅行距离或时间。提供了每对城市之间的旅行成本。另一个最优化问题是制造环境中的生产线上一组生产任务的排序问题。每个任务可具有相关的限期。另外,可能有大量的相关约束,如任务的后续或优先、可排在一定时期或周期内的最大或最小数目的给定类型的任务,以及任务之间的间隔。最优化目标是将每个任务时间排定成可满足有关限期和所有相关约束。本发明适用于求解分配计画、车辆行程安排、多级调度领域中的各种最优化问题和不限于该等例子的其它最优化问题。
为帮助理解,运用下例进一步阐释所定义的术语在旅行销售员问题(TSP)中,问题的解是一个与要访问的城市顺序相对应的城市列表。对于控制旅行距离的约束,某一指定城市的状态可以是抵达该城市所经过的累计距离。生成局部运动的操作数的例子是使列表中的两个城市发生交换的操作数。如果列表中的两个城市Q和Cj发生交换,那么生成的运动可由如下列表表示{{{i,i},{Cj}},{{j,j},{C,}}}。应注意,当问题的解发生变化时,对应的那组状态也发生变化。
本发明的方法是实现于计算系统上,该计算系统还包括用户输入装置和用户输出装置。图1显示了根据本发明的例示性实施例的用于实现最优化问题的求解方法的计算系统100。计算系统100包括执行最优化的处理器102。处理器102可为一个或一个以上通用处理器或专用处理器,如Pentium、Centrino、Power PC和数字信号处理器(DSP)。计算系统100还包括一个或一个以上用户输入装置104,如鼠标、键盘和其它用户输入装置。计算系统100还包括一个或一个以上输出装置106,如适用的显示器、致动器、电子装置和其它输出装置,这取决于处理作业。存储器108(如只读存储器、随机存取存储器或高速缓冲存储器)提供了存储求解最优化问题过程中产生的计算值所需要的存储量。存储器108还可包括(但不限于)一个或一个以上应用程序、移动代码和用于执行所需要的应用程序的资料。处理器102可包括操作系统(OS)110。OS110的类型可取决于计算系统100的功能或计算系统100的特定设备或零件。OS 110可以是Windows、WindowsCE、Mac OSX、Linux、Unix、Palm OS变体、私有OS和其它OS 110。储存器112可存储所需要的资料和其它应用程序,如硬盘、软盘、光盘、数字多用途光盘(DVD)、部分或全部硬化的可移动媒体以及其它可移动盘。
一个或一个以上适用的通信界面114在两个装置之间直接通信或通过适用的私有或公共网络通信,以交换与最优化问题相关的资料和其它信息。通信界面114可为调制解调器、DSL、红外收发器、射频(RF)收发器或其它适用的收发器。上述系统的组件通过通信通道116连接,如总线。通信通道116也可包括(但不限于)用于平行处理或聚簇实现(cluster implementation)的装置。
图2是显示根据本发明的实施例的求解最优化问题的方法的流程图。该方法涉及基于本地搜索(LS)启发式算法,在一组约束下的最优化问题之求解流程图。LS启发式算法的实例包括模拟退火算法(simulatedannealing)、遗传算法(genetic algorithm)、禁忌搜索(taboo search)算法和演化算法(evolutionary algorithm)。在步骤202,在一组约束条件下,评估最优化问题的一组解。基于对该组解的评估,在步骤204产生初始违反度量组和状态组。然后,利用能典型代表所使用的LS启发式算法的一组运算单元,在步骤206,从该组解衍生出一组候选解。
在本发明的一个实施例中,每个操作数本质上都是一个数学函数,其通过生成一组变化点来修改一组解中的一个解。此前已提供了运算单元和相关的变化点的定义。通过对该解应用数学函数产生候选解,并通过一组变化点描述其结果。相应地,基于该等变化点,从状态生成新的状态集。在步骤208,增量评估该候选解。在特定变化点的邻域局部执行增量评估。应注意,评估完全由(i)解点(solution point)和(ii)该点的状态来决定。因此,只要候选解逻辑上与解不等或者状态与新状态不等,就执行增量评估。增量评估的过程下文稍后详细描述。在步骤210,检查被评估的候选解是否可接受,作为最优化问题的解。所述检查是基于接受标准。
该接受标准视LS启发式算法而定。例如,在模拟退火算法中,如果候选解成本更低,那么候选解被接受;即使其成本更高,那么概率上来说它也有可能会被接受。在遗传算法中,基于成本排列顺序或适应度函数,从一组初始候选解中选择一组解。接着,在步骤212,如果解被接受,那么更新违反度量和状态。
步骤214检查是否已经测试了所有的候选解,而步骤216检查是否已满足终结标准。或者,再次产生新一组的候选解以供评估,直到满足终结标准。在本发明的一个实施例中,终结标准可为完成了预定数目的迭代,其取决于例如最优化问题的复杂性和用于求解最优化问题可用的时间等因素。另一个终结标准可为经过数次迭代后,整体解品质几乎无任何改善。以此方式,对于每个违反了约束的解,在各变化点生成一个候选解并进行评估,以产生经过数次迭代得到改善的解。
图3说明根据本发明的实施例的最优化问题的求解系统300。系统300包括评估单元302、运算单元304和接受单元306。在本发明的各实施例中,系统300进一步包括存储阵列308、310、312和314。存储阵列308和310分别存储解和对应的状态。存储阵列312和314分别存储新状态和违反度量。评估单元302包括步进器316和比较器318。在本发明的一个实施例中,评估单元302还包括存储阵列320。步进器316对照约束对候选解执行逐步评估。比较器318可比较两个参数(如两个解点或两个状态)的逻辑相等性。存储阵列320还可存储解、候选解、违反度量和评估期间生成的各种状态。
根据上述方法,存储阵列308和310把解和对应的状态输入到评估单元302中。评估器302基于对解的评估产生一组初始违反度量和新状态。存储阵列308还将解输入到运算单元304中。运算单元304对解执行运算,生成候选解。候选解在新状态接受评估单元302的评估。如果接受单元306接受候选解,那么更新所存储的违反度量和状态。
每个系统组件(如步进器316和比较器318)可利用逻辑电路或软件模块来实现。每个存储阵列308、310、312、314和320可为存储装置,如随机存取存储器和只读存储器。
评估单元302评估最优化问题的解,生成对应的违反度量,同时还更新违反度量和状态。评估单元302储存该等状态所对应的信息。评估器302还评估在设定约束下的一组解。在本发明的一个实施例中,支持任何可作为软件代码执行的约束。可通过随机统计技术或现有技术中已知的其它技术生成一组解。例如,可通过更简单的贪婪启发式算法或图案或优先解基础针对一简约约束集(reduced constraint set)中生成一组解。评估单元302还包括映像当前解与候选解的坐标之间的关系的函数。
在本发明的一个实施例中,评估可分两个阶段发生。在第一评估阶段,评估器302对应于该组初始解中的各解,生成针对设定约束的一组初始违反度量(VM)和状态。在此阶段,评估单元302开始评估零状态(null state)的解。零状态对应于所有变量的量值为0的状态。步进器316已设置了用于零状态的规则。完成评估时,评估单元302繁殖(populate)出各种状态。此评估是利用称为“EVAL”函数执行的。
VM是违反约束的量度标准,即,解与约束的一致程度。违反可具有可变量值,且不同的违反可以不同的方式影响解的成本。在状态机术语中,VM是步进器316的输出。例如,TSP中可存在一个约束——旅行中同一省内不得连续出现多于三个城市。在这种情形下,VM是向量,其中每个向量可具有对应于旅行中每个省变化的元素;且向量的量值对应于该省内城市的行程(run length)。这可以以不同的方式影响到成本。在有些情况下,无论行程多少(即,无论行程是4或是40),约束的违反(即具有多于三个城市的省内的所有路途)可同样不利。在其它情况下,成本可为违反的函数,且可换算作违反的二次幂或者更高幂。因此,VM与违反相对应,且一个独立的数学函数将其变换(transform)、规范化(normalize)和换算(scale)为成本(参看图4)。本实例中的VM是一个向量,但是一般而言,其可以是与解结构相同的列表。
图4说明了VM至成本的映像。VM{VM-i,,VMj,...,VMn}至成本的映像包括四个步骤。在步骤402,基于一定义函数,发生VM变换。此变换的目的是反映违反的影响。在步骤404,规范化已变换过的VM,以消除可发生在不同约束内的VM量值固有变化(intrinsic variation)的作用。在步骤406,换算已规范化的VM。该换算反映了可赋于每个约束的优先权。因此,优先权高的约束比优选权低的约束具有更高的换算系数(scale factor)。然后,按照所使用的基于LS的算法所特定的方式,对照接受标准评估图4中所计算出的成本。
概括而言,成本是约束违反、与违反相关的规则和其它可变参数的函数,以实现一系列行为和影响。视用来实施本发明的LS算法而定,术语“成本”可以被称为罚函数(penalty function)或适应度函数(fitnessfunction)。
第一阶段评估之后,产生一组对应于该组解的初始VM和状态。然后,利用操作数对解进行运算,以产生解的局部运动。在最优化问题中,运算解的目的是修改解。在本发明的一个例示性实施例中,增量评估的进行与运算无关。这就允许本实施例可具有任何数目的操作数,而每个操作数可适用于特定应用。
在本发明的一个实施例中,操作数可对解进行若干运算。这些运算包括(但不限于)“交换(swap)”、“插入(insert)”、“移位(shift)”和“删除(delete)”运算。在本发明的一个例示性实施例中,运算期间可使解的坐标移位。例如,解的交换运算可能不改变未牵涉到该运算的元素或元素部分的坐标。但是,对解的部分的“删除”运算和“插入”运算可能会改变解中元素的坐标。运算的效果可持续(persist)或溢出(spill over)到解的其它区域。例如,在TSP中,如果状态与部分距离(partial distance)列表一致,那么任何两个城市的交换会改变发生交换的两个城市间的所有城市的部分距离。
运算之后,生成自解衍生出的至少一个候选解。候选解经历第二阶段的评估。
在此阶段,在一组约束下针对与新状态的操作数相对应的变化点对候选解进行评估。此过程可称为增量评估。增量评估可利用“INC_EVAL”函数实施。增量评估按步骤进行。每个步骤用一组整数索引。在各步骤,评估候选解的变化。该变化对应于与对该解作用相应的操作数的变化点,该变化促成候选解的生成。评估器302评估新状态的候选解,并计算相应的VM和下一状态。此VM称为增量VM(INC_VM)。
第二阶段评估之后,候选解可被接受。在本发明的一个实施例中,基于评估器302外的逻辑,接受候选解。该逻辑可以“ACCEPT”函数的形式实施。一旦候选解被接受,基于被接受的解,更新增量VM和新状态。已经更新的增量VM被称为更新VM。如果候选解未被接受,那么评估下一候选解。重复此过程,直到该组候选解中的所有候选解都经过评估。
概括而言,评估单元302包含“EVAL”、“INC_EVAL”和“ACCEPT”函数。若设定一解和一相应的状态作为输入,那么上述函数在评估过程中生成输出VM、INC_VM和新状态。
图5说明根据本发明的实施例的用于实现启用增量评估的系统的示意电路图。在本实例中,解是向量,且可将坐标理解为不连续的时钟滴答(clock tick)。如前所述,存储阵列308存储解,且存储阵列310存储解的状态。ClockO 502生成存储阵列308中所存储的解的坐标。存储阵列504存储候选解,而存储阵列312存储候选解所对应的新状态。Clock 506生成存储阵列504中所存储的候选解的坐标。对应于运算效果可能是改变坐标的事实,这两个时钟的不同在于一系列“相位偏移(phase shifts)”。在本发明的实施例中,Clock 506可通过任何标准的时钟产生电路(clock-generating circuit)实现,且施以适当偏移以衍生出ClockO 502。在本发明的另一实施例中,ClockO 502和Clock 506可通过使用软件代码实现。
存储阵列504中存储的候选解和存储阵列308中的存储解是不等式(IEQ)部件508的输入。存储阵列312中存储的新状态和存储阵列310中存储的状态是IEQ部件510的输入。每个IEQ部件508或510检查其两个输入之间是否逻辑相等,且若输入不等,则输出“1”。IEQ部件508或510的输出是OR逻辑块512的输入。如果OR逻辑块512的输出是“1”(即,候选解与解逻辑不相等,或状态与新状态逻辑不相等),步进器316则取存储阵列504中存储的候选解作为输入。步进器316检查至少一个约束的违反。步进器316于评估候选解时生成增量VM(INC_VM)。生成的INC_VM存储在存储阵列514中。每次增量评估后,还更新新状态。如果增量评估后,候选解被接收,则将新状态回馈给步进器316和IEQ部件510。视IEQ部件510的输出情况,可重复上述过程。在本发明的一个实施例中,IEQ部件508和510和OR逻辑块512包括在图3的比较器318中。上述比较是通过将对应于INC_VM的候选解和新状态与对应于初始VM的解和状态相比较而实现。也可有其它比较VM的手段。
步进器316的部件“Comp Rule”516编码用于判定解或候选解是否在某点发生违反且若已发生违反则判定违反程度的规则的特定逻辑。也就是说,Comp Rule 516编码用来生成VM和状态的逻辑。步进器316(特别是′Comp Rule′516)可利用可编程逻辑阵列(PLA)执行。
本发明适用于以计算成本有效的方式对照多个约束来评估大量候选解(约106至108个)。在本发明的一个实施例中,评估器302存储状态信息,该状态信息允许评估器302从一组解或候选解的任何一点对其评估。每个评估器仅在与现有解不同的点处对候选解进行增量评估。通过考虑解中仅仅与现有解不同的那些部分的邻域,评估器302可快速计算出这些差异。
每个评估单元具有相同结构,与约束及从现有解衍生候选解的方式无关。每个评估单元中包含了状态信息,该状态信息在解的每个点总结(summarize)解中其它部分对该点的作用。以此方式,评估单元302可仅处理解中有差异的部分,而无需评估整个解。需注意,Oomp Rule′516是排列中惟一根据约束违反相关规则而变化的部件;所有其它部件针对所有规则不变。另外,评估单元的所有部件针对所有操作数不变。因此,在本发明的一个实施例中,添加新的约束或操作数要求最少的附加逻辑以实施本发明。本发明具有与常规方法相比可使求解最优化问题所需要的时间降低2到3个数量级的优势。本发明还支持任何用于从现有解生成候选解的机制。
本发明可实现于硬件,如图3和图5所述。其可实现于集成电路或集成电路的一部分中,如应用程序特定集成电路、现场可编程门阵列、可编程逻辑阵列和完全定制集成电路。
本发明还可实现作软件。特定而言,在本发明的一个实施例中,可通过利用模拟退火算法以Java实现本发明。因为评估单元享用一共同结构且仅在反映特定约束的计算规则方面不同,所以在本发明的面向对象的实现(object-oriented implementation)中,每个评估单元在单个方法上不同。根据特定应用的要求,还可使用各种编程语言或其它工具,如与C语言变体(如C++、C#)兼容的编程语言或工具、或其它编程语言。
本发明描述的系统或其任何组件可具体表现为计算机系统的形式。常见的计算机系统实例包括通用计算机、编程微处理器、微控制器、外围集成电路(peripheral integrated circuit)组件和其它能实现构成本发明的方法的步骤的装置或装置排列。
计算机系统包括计算机、输入装置、显示单元和互联网。计算机包括微处理器。微处理器连接至通信总线。计算机还包括存储器。存储器可包括随机读取存储器(RAM)和只读存储器(ROM)。计算机系统进一步包括存储装置。其可为硬盘驱动或可移动的存储装置,如软盘驱动、光盘驱动等。存储装置还可为其它用于将计算机程序或其它指令下载到计算机系统的类似构件。
计算机系统执行存储在一个或一个以上存储元件中的一组指令,以处理输入数据。存储元件还可按需要保存资料或其它信息。它们可以为信息源形式或处理机中存在的物理存储器组件。
该组指令可包括指示处理机执行特定任务(例如,构成本发明的方法的步骤)的命令。该组指令可以是软件程序的形式。所述软件可为各种形式,例如系统软件或应用软件。另外,软件可为独立程序、具较大程序的程序模块、或程序模块的一部分的集合的形式。软件还可以包括面向对象的编程形式的模块编程。处理机对输入资料的处理可以是响应用户命令、响应前次处理的结果或响应另一处理机发出的请求。
尽管上文已经描述和说明本发明的优选实施例,但是应了解本发明不应仅仅受限于该等实施例。在不脱离本发明的精神和范畴的情况下,所属领域的技术人员将不难发现本发明的若干修改、变更、变体、替代及其对等物,其范围应由权利要求书界定。
权利要求
1.一种在一组约束下的最优化问题的求解方法,其特征在于,该方法包含a.评估在该组约束下的该最优化问题的一组解;b.基于与评估期间违反了至少一个约束的该组解相对应的该组约束,生成初始违反度量组和状态组;c.利用一组操作数生成一组从该组解衍生出的候选解,其中每个操作数以一组变化点为特征;d.在该等变化点评估该组候选解;e.基于一接受标准,测试一被评估的候选解的可接受性;f.若所测试的候选解被接受,则基于被接受的候选解更新违反度量和状态;g.重复步骤e至步骤f,直到所有被评估的候选解都经过接受性测试;及h.重复步骤c至步骤g,直到满足一终结标准。
2.如权利要求1所述的求解方法,其特征在于评估该最优化问题的该组解的步骤包括利用零状态评估该组解。
3.如权利要求1所述的求解方法,其特征在于包括将每个违反度量映像至一成本之步骤,该映像步骤包括a.基于一定义函数变换每个违反度量;b.规范化每个经过变换的违反度量;c.基于与各变量相关的优先权换算每个规范化的违反度量;及d.合计经过换算的违反度量,以生成与违反约束相关的成本。
4.如权利要求1所述的求解方法,其特征在于通过该组操作数执行的运算包括解的交换、插入、移位和删除运算中的至少一个运算。
5.如权利要求1所述的求解方法,其特征在于评估该组候选解的步骤包括在与对应的操作数相关的各变化点,增量评估该组候选解中的一个候选解。
6.如权利要求1所述的求解方法,其特征在于增量评估该候选解,直到该候选解与对应解逻辑相等,且该候选解所对应的状态与该对应解所对应的状态逻辑相等。
7.如权利要求1所述的求解方法,其特征在于当发生下列情形时,满足该终结标准a.已完成预定数目的迭代;或b.经过预定数目的迭代,该组候选解的改善程度小于预定改善程度。
8.如权利要求7所述的求解方法,其特征在于该预定数目的迭代的完成是基于a.该最优化问题的复杂度;和b.求解该最优化问题可用的时间。
9.一种用于在一组约束下的最优化问题的求解系统,其特征在于,该系统包含一用以评估在该组约束下的该最优化问题的一组解的构件;一用以基于与评估期间违反了至少一个约束的该组解相对应的该组约束,生成初始违反度量组和状态组的构件;一用以运算该组解生成一组候选解的构件;一用以比较解和状态的构件;一用以基于一接受标准接受被评估的解的构件;以及一用以基于被接受的解更新违反度量的构件。
10.一种用于在一组约束下的最优化问题的求解系统,其特征在于,该系统包含一用以评估该最优化问题的解、生成解的违反度量和更新违反度量和状态的评估单元;一用以运算一解以生成一候选解的运算单元,其与该评估单元相连接;以及一用以接受该最优化问题的一解的接收单元,其与该评估单元相连接。
11.如权利要求10所述的求解系统,其特征在于该评估单元包含一用于生成和更新一违反度量的步进器。
12.如权利要求11所述的求解系统,其特征在于该步进器基于判定对至少一个约束的违反的至少一个规则来判定违反。
13.如权利要求10所述的求解系统,其特征在于该评估单元包含一用于比较一对解和一对状态的比较器。
14.如权利要求10所述的求解系统,其特征在于该评估单元包含一用于储存与一状态对应的信息的存储阵列。
15.如权利要求10所述的求解系统,其特征在于该评估单元包含一用于储存所生成的解的存储阵列。
16.一种用于在一组约束下的最优化问题的求解之计算机程序产品,其特征在于,该计算机程序产品包含a.用于评估在一组约束下的最优化问题的一组解的程序指令构件;b.用于基于与评估期间违反了至少一个约束的该组解相对应的该组约束,生成初始违反度量组和状态组的程序指令构件;c.用于利用一组操作数生成一组从该组解衍生出的候选解的程序指令构件,其中每个操作数以一组变化点为特征;d.用于在所生成的变化点评估该组候选解的程序指令构件;e.用于基于一接受标准,测试一被评估的候选解的可接受性的程序指令构件;f.基于被接受的候选解更新违反度量和状态的程序指令构件;以及g.检查是否满足一终结标准的程序指令构件。
全文摘要
一种在一组约束下的最优化问题的求解方法及其系统。在该组约束下评估一组解(202)。基于与违反约束的解所对应的至少一个约束,产生初始违反度量和状态(204)。通过一组操作数从现有的一组解中产生一组候选解(206)。对该组候选解进行增量评估(208),其方式与操作数和约束无关。如果被评估的解被接受(210),那么根据所接受的解可更新(212)违反度量(violation metrics)和状态。但是,如果被评估的解未被接受(214),那么对下一候选解进行增量评估。重复这一过程,直到检查了所有候选解的可接受性。最后,若满足终结标准,则结束方法(216)。
文档编号G06F15/18GK101065742SQ200580036999
公开日2007年10月31日 申请日期2005年10月21日 优先权日2004年10月28日
发明者艾夏克·艾拉米利, 斯瑞尼瓦司·那查甘地 申请人:奈特普软体有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1