专利名称:跨个别过程增强约束求解器的性能的制作方法
技术领域:
本发明主要地涉及用于求解针对问题域的约束问题的技术。具体而言,本发明涉 及一种用于跨一个或者多个问题域重用与约束求解运算关联的信息的系统。
背景技术:
半导体制造技术的发展已经引起每个半导体器件的晶体管数量的显著增长。晶体 管个数的这一增长使计算机架构师能够创造出设计复杂性与日俱增的数字电路设计。因 而,随着数字电路设计变得更复制,验证所得实施的正确性这一任务变得更加复杂。为此,电路设计团队依赖于自动化技术以处理与日俱增的设计复杂性。在这样做 时,这些设计团队针对与实施和验证电路设计的功能关联的诸多应用来执行约束求解运 算。在一种应用中,这些设计团队执行约束求解运算以生成受约束的随机输入刺激以朝着 重要拐角情况驱动给定的电路仿真。在另一应用中,这些设计团队在电路合成期间执行约 束求解运算。然而,这些应用可能由于大量递归的复杂约束满足问题而负担过重。另外,多 个独立问题域(即应用实例)必须时常求解类似的复杂约束满足问题,其中一个独立问题 域可以持续从另一问题域的经验中受益。
发明内容
本发明的一个实施例提供一种用于重用与针对问题域的约束求解运算关联的信 息的系统。该系统通过从问题域接收约束问题来开始。然后,该系统在问题高速缓存中搜 寻与规范表示对应的条目。如果对应条目在问题高速缓存中不存在,则该系统在问题高速 缓存中产生用于规范表示的条目。否则,如果对应条目已经存在于问题高速缓存中,则该系 统通过重用与问题高速缓存中的对应条目关联的求解器试探法来生成规范表示的解。在一些实施例中,该系统在问题高速缓存中产生条目。在这样做时,该系统先在问 题高速缓存中存储约束问题的规范表示。接着,该系统从多个可用试探法中选择求解器试 探法并且通过使用所选求解器试探法来生成规范表示的解。只要所选试探法无法在预定 时间段内生成解,则该系统选择新的求解器试探法并且使用新的试探法以生成规范表示的 解。在选择求解器试探法之后,该系统将所选求解器试探法与问题高速缓存中的规范表示 条目关联。在一些实施例中,该系统监视在生成规范表示的解时的计算时间并且在问题高速 缓存中的对应规范表示条目中存储计算时间。在一些实施例中,该系统使用后台过程来精化对求解器试探法的选择。在一些实施例中,该系统能够执行多个同时线程,其中相应线程与独立约束问题 关联。在一些实施例中,该系统将约束问题转换成规范表示。在一些实施例中,当该系统将约束问题转换成规范表示时,该系统将约束问题分 割成多个不相交约束问题。
在一些实施例中,该系统通过在问题高速缓存中记录和保留用来第一次求解指定 的规范表示的求解器试探法、由此允许当在以后时间求解指定的规范表示时使用相同试探 法来提供用于规范表示的持久解。在一些实施例中,该系统通过在问题高速缓存中记录和保留用来第一次求解指定 的规范表示的随机种子、由此允许该系统产生与求解个别规范表示的顺序无关的恒定解来 为规范表示提供随机稳定性。在一些实施例中,该系统记录用于问题域的约束问题解序列并且为后续问题域重 放解序列。在一些实施例中,该系统跨与一个或者多个应用关联的多个独立问题域重用问题 高速缓存的信息。
图1图示了根据本发明一个实施例的约束求解器系统。图2图示了根据本发明一个实施例的跨约束求解器系统的数据流。图3图示了根据本发明一个实施例的问题高速缓存。图4A图示了根据本发明一个实施例的变换机制。图4B图示了根据本发明一个实施例的不相交机制。图4C图示了根据本发明一个实施例的归约机制。图5呈现了对根据本发明一个实施例的用于重用与约束求解运算关联的信息的 过程进行图示的流程图。图6呈现了对根据本发明一个实施例的用于生成规范约束表示的解的过程进行 图示的流程图。图7图示了根据本发明一个实施例的实施求解器服务器的计算机系统。
具体实施例方式呈现以下描述以使本领域技术人员能够实现和利用本发明,并且在特定应用及其 要求的背景下提供该描述。本领域技术人员将容易清楚对公开的实施例的各种修改,并且 这里限定的一般原理可以适用于其它实施例和应用而不脱离本发明的精神和范围。因此, 本发明不限于所示实施例而是将被赋予以与这里公开的原理和特征一致的最广范围。在本具体实施方式
中描述的数据结构和代码通常存储于计算机可读存储介质上, 该介质可以是能够存储用于由计算机系统使用的代码和/或数据的任何设备或者介质。计 算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光学存储设备(比 如盘驱动器、磁带、CD(压缩盘)、DVD(数字多功能盘或者数字视频盘)或者现在已知或者 以后开发的能够存储计算机可读介质的其它介质。可以将具体实施方式
这一节中描述的方法和过程实施为能够存储于如上所述计 算机可读存储介质中的代码和/或数据。当计算机系统读取和执行计算机可读存储介质上 存储的代码和/或数据时,计算机系统实现作为数据结构和代码来实施的并且存储于计算 机可读存储介质内的方法和过程。另外,可以在硬件模块中包括下文描述的方法和过程。例如,硬件模块可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)和现在已知或者将来开发的 其它可编程逻辑器件。当激活硬件模块时,硬件模块实现硬件模块内包括的方法和过程。鍵电路设计团队依赖于自动化技术以处理复杂性与日俱增的电路设计。在这样做 时,这些设计团队针对与实施和验证电路设计的功能关联的诸多应用来执行约束求解运 算。在一种应用中,这些设计团队执行约束求解运算以生成受约束的随机输入刺激以朝着 重要拐角情况驱动给定的电路仿真。在另一应用中,这些设计团队在电路合成期间执行约 束求解运算。然而,这些应用可能由于大量递归的复杂约束满足问题而负担过重。另外,多个独 立问题域(即应用实例)必须时常求解类似的复杂约束满足问题,其中一个独立问题域可 以持续从另一问题域的经验中受益。对于本公开内容的其余部分,问题域指代一个需要大 量约束求解运算的应用实例。例如,来自电路仿真集合的相应电路仿真是用于相应问题域 的来源。本发明的实施例提供一种系统,用于重用来自问题域的与约束求解运算关联的信 息以在重访给定的约束问题时改进性能并且提高它们的解的稳定性。在本发明的一些实施例中,系统支持在给定的问题域内重用约束求解信息,而在 其它实施例中,系统支持随时间跨多个独立或者有关问题域内重用这一信息。另外,在本发 明的实施例中,系统允许依次重放约束问题的先前解以有助于回归测试。在一些实施例中, 系统有助于对于给定的约束求解运算而言解随时间的持久性。在更多实施例中,系统有助 于在以后时间重访给定的约束求解运算时的随机稳定性。约束求解器系统图1图示了根据本发明一个实施例的约束求解器系统100。约束求解器系统100 包括网络102、求解器服务器104、问题高速缓存106和多个求解器客户机108-112。网络 102可以包括任一类有线或者无线通信信道。在本发明的一个实施例中,网络102包括因特 网。求解器客户机108-112可以包括任何如下节点,该节点具有计算能力和用于通过 网络102来与求解器服务器104通信的通信机制。求解器客户机108-112执行与一个或者 多个约束求解应用关联的运算。在本发明的一个实施例中,求解器客户机108-112或者使 用预先生成的输入刺激或者使用由求解器服务器104生成的受约束的随机刺激对一个或 者多个受验证的电路设计(DUV)进行电路仿真。在仿真期间,电路仿真器可以生成对复杂 约束满足问题执行限定的约束并且可以将该约束发送到求解器服务器104以请求满足约 束值的输入刺激。求解器服务器104可以包括任何如下节点,该节点具有计算能力和用于通过网络 102来与求解器客户机108-112通信并且直接地或者通过网络102来与问题高速缓存106 通信的通信机制。求解器服务器104从求解器客户机108-112中的任何求解器客户机接收 约束并且返回可以满足约束值的输入刺激。在这样做时,求解器服务器104通过利用可以 求解给定的约束满足问题的许多可用求解器试探法之一来生成用于约束的输入刺激。求解 器服务器104然后存储和重用问题高速缓存106中与约束求解运算有关的信息以帮助加速 递归约束的约束求解运算。问题高速缓存106可以包括用于在非易失性储存器中存储数据的任一类系统。这
7包括但不限于基于磁、光或者磁光存储设备的系统以及基于闪存和/或电池后援式存储器 的存储设备。注意,问题高速缓存106可以耦合到求解器服务器104或者网络102。问题高 速缓存106可以包括与多个约束求解运算有关的信息和/或可以存储用于一个或者多个求 解器客户机108-112的多个预先生成的输入序列。注意本发明的不同实施例可以使用不同配置而不限于约束求解器系统100中图 示的配置。在本发明的一些实施例中,求解器客户机108-112执行并行运算,而在其它实施 例中,求解器客户机108-112在不同时间工作。在这些实施例的一些变形中,求解器客户机 108-112存在于相同计算节点上,而在其它变形中,求解器客户机108-112存在于分布式计 算节点上。在本发明的一些实施例中,求解器服务器104在与给定的求解器客户机相同的 计算节点上执行。在其它实施例中,求解器服务器104实施为在一个或者多个计算节点上 执行的分布式系统。在本发明的更多其它实施例中,求解器服务器104实施为在实现求解 器客户机108-112的相同计算节点上执行的分布式系统。图2图示了根据本发明一个实施例的跨约束求解器系统200的数据流。起初,求解 器客户机202将约束204发送到求解器服务器206。求解器服务器206使用接收机制270 以从求解器客户机202接收约束204并且使用变换机制208以将约束204转换成规范表示 210。接着,求解器服务器206在问题高速缓存212中搜寻与规范表示210对应的条目。约 束的规范表示是用于该约束和结构类似的任何其它约束的标准表示,从而将类似约束汇集 转换成它们的规范表示产生一种一致的形式。将约束转换成它的规范表示允许任何其它类 似约束访问和重用问题高速缓存中的约束问题的解。在本发明的一些实施例中,规范表示 作为二元判决图(BDD)而存在。在本发明的一些实施例中,接收机制207从求解器客户机202接收的约束204是 用于约束问题的规范表示。如果对应条目在问题高速缓存212中不存在,则求解器服务器206通过在问题高 速缓存212中存储规范表示210来产生条目。求解器服务器206也将规范表示210转发到 求解器216以对规范表示210执行约束求解运算并且生成解218。在这样做时,求解器216 从多个可用试探法中选择求解器试探法并且通过使用所选求解器试探法来生成规范表示 210的解。只要所选试探法无法在预定时间段内生成解,求解器216就选择新的求解器试探 法并且使用新的求解器试探法以生成规范表示210的解。在生成规范表示210的解之后,求解器216将元数据214转发到问题高速缓存 212,其中元数据214包括所用求解器试探法和与约束求解运算关联的其它信息。问题高速 缓存212然后将元数据214与问题高速缓存212中的新条目关联。因而,当遇到与先前已 经探究的约束问题类似的约束问题时,求解器216将通过使用发现成功的求解器试探法来 求解约束问题。否则,如果对应条目存在于问题高速缓存212中,则求解器216通过重用与先前约 束求解运算关联的信息来生成规范表示的解218。在这样做时,求解器216先从问题高速 缓存212中的对应条目取回如下元数据214,该元数据包括先前用来求解约束问题的规范 表示的求解器试探法。然后,求解器216使用元数据214以通过重建先前已经允许求解器 216求解规范表示210的条件来生成解218。在求解器216生成用于规范表示210的解218之后,求解器服务器206将解218转发到求解器客户机202。在这一实施例的一种变形中,求解器服务器206从问题高速缓存 212取回预先计算的解218并且将解218转发到求解器客户机202。在本发明的实施例中,在将解218转发到求解器客户机202之前,求解器服务器 206将为规范表示210生成的解218转换成与原约束204 —致的形式。在这一实施例的一 种变形中,求解器服务器206用原约束204的原变量名取代为规范表示210生成的解218 的任何通用变量名。在本发明的一些实施例中,求解器服务器206使用后台过程以精化对用于问题高 速缓存212中难以求解的规范表示条目的求解器试探法的选择。在这些实施例的一种变形 中,求解器服务器206选择其解先前已经需要多于预定计算时间的规范表示条目并且尝试 使用不同求解器试探法来生成更快的解。在本发明的一些实施例中,求解器服务器206尝试通过先应用一求解器试探法以 求解来自规范表示的约束变量的子集并且随后将该求解器试探法应用于规范表示的其余 部分来优化用于给定的规范表示条目的求解器试探法。问题高谏缓存图3图示了根据本发明一个实施例的问题高速缓存300。问题高速缓存300存储 规范表示302和与针对规范表示302的约束求解运算关联的元数据。这一元数据包括求解 器试探法304、计算时间306、持久性标志308、随机稳定性标志310和随机种子312。求解 器试探法304指代如下求解器试探法,该试探法允许求解器服务器在预定时间段生成用于 规范表示302的解。求解器服务器206监视在生成规范表示210的解时的计算时间并且在 与问题高速缓存300的规范表示302条目关联的计算时间306条目之下存储这一时间。求解器客户机的许多用户持续从随时间的持久解中受益。例如,当用户希望产生 用于DUV的具体仿真结果时,求解器服务器206可以继续产生用于相同问题随时间一致的 结果。先前提到在本发明的实施例中,求解器服务器重访问题高速缓存的规范表示条目以 精化对应用于它们的求解器试探法的选择。重要的是求解器服务器没有重访其值随时间保 持持久的规范表示条目。当为问题高速缓存300中的规范表示302设置持久性标志308时, 不允许求解器服务器改变用于对应规范表示302的求解器试探法304。当没有设置持久性 标志308时,允许求解器服务器重访问题高速缓存300中的规范表示302以搜寻可以在更 短计算时间内求解规范表示的最优求解器试探法。为了进一步增强解随时间的持久性,针对电路仿真的一些用途可能需要在重访规 范表示302时的随机稳定性。随机稳定性指代依赖于随机数的运算必须针对固定成组输入 随时间产生一致结果这一要求。当求解器服务器针对多个问题域同时对多个约束执行运算 时可能出现随机稳定性违规。在这一情形中,针对一个问题域的约束求解运算可能影响另 一问题域的后续约束求解运算所用的随机种子值。 在本发明的一个实施例中,求解器服务器能够以任何顺序处理用于多个求解器客 户机的约束而不会让一个约束求解运算干扰后续约束求解运算的随机稳定性。求解器服务 器在相应规范表示320的解必须随时间维持随机稳定性时通过允许规范表示320设置随机 稳定性标志310来为对某些规范表示的约束求解运算施加随机稳定性。如果为问题高速缓 存300中的给定规范表示条目设置随机稳定性标志310,则求解器服务器将把用来求解规 范表示302的随机种子存储到随机种子312条目中。如果求解器服务器接收对求解如下约束的请求,该约束的规范表示302具有在问题高速缓存300中的对应条目,该条目设置有随 机稳定性标志310,则求解器服务器将从对应条目取回随机种子312并且使用这一随机种 子值作为约束求解运算的初始种子。重放机制电路设计者通常需要复制用于约束求解器的给定应用的先前解序列。例如,这可 以作为对电路设计的完整回归测试的部分而发生,或者它可以是先前确定为激活已知设计 错误的孤立仿真运行。因此,用户可能想要保存先前受约束的随机输入刺激序列和生成该 序列的种子以重建先前电路仿真运行。在本发明的实施例中,问题高速缓存300存储多个重放序列314,其中相应重放序 列314伴随有解ID 316和外部状态318。在这些实施例中,求解器服务器存储它为它从相 应求解器客户机接收的约束而生成的解。在这样做时,求解器服务器在问题高速缓存300 的重放序列314条目中按依次顺序存储这些解。解ID 316是与重放序列314条目对应的 标识符,求解器服务器用该标识符来将重放序列与给定的求解器客户机执行匹配。外部状 态318包括与可以改变值并且对给定的约束问题有影响的多个非随机变量关联的信息。在本发明的一些实施例中,求解器客户机可以请求求解器服务器提供重放序列 314以重现先前约束求解应用。在其它实施例中,求解器客户机可以请求在相同约束求解 应用中更早生成的重放序列314。例如,电路仿真可以请求求解器服务器提供在用于给定 DUV的回归仿真期间的重放序列314或者甚至可以请求在相同电路仿真中更早生成的重放 序列314。变换机制图4A图示了根据本发明一个实施例的变换机制400。变换机制400将约束402变 换成一个或者多个不相交规范表示410。注意变换机制400包括用于将约束402分割成一 个或者多个不相交约束406的不相交机制404。另外,变换机制400也包括将不相交约束 406变换成规范表示410的归约机制408。图4B图示了根据本发明一个实施例的不相交机制404。不相交机制404接收约束 402并且产生一个或者多个不相交约束406。如果约束从其它约束断开并且与其它约束无 关,则它是不相交约束,并且它代表单个邻接问题空间。注意为了能够将约束402分割成多 个不相交约束406,约束402需要是对多个不相交问题空间的描述(例如,如在图4B的约束 402中所示的约束不相交)。图4C图示了根据本发明一个实施例的归约机制408。在操作期间,归约机制408 接收不相交约束406并且产生对应规范表示410。归约机制408通过对不相交约束执行将 形式相似的约束变换成单个规范表示的一致的运算序列来产生对应规范表示。为了产生规 范表示410,归约机制408先通过将不相交约束406的运算顺序转换成规范形式来将不相交 约束406转换成中间表示。接着,归约机制408按预定顺序(例如从左到右)遍历中间表 示并且通过用变量名递增序列(例如VI、V2…Vn)取代中间表示的变量名序列来产生规范 表示410。图5呈现了对根据本发明一个实施例的用于重用与约束求解运算关联的信息的 过程进行图示的流程图。系统通过从求解器客户机接收约束来开始(操作502)。接着,系 统将约束分割成一个或者多个不相交约束(操作504)并且将不相交约束归约成规范表示(操作506)。在本发明的一些实施例中,系统仅使用一个所得规范表示以求解约束。在本 发明的其它实施例中,系统求解多个规范表示并且在问题高速缓存中存储元数据和/或它 们的解以供以后使用。为了解决规范表示,系统在问题高速缓存中搜寻与规范表示对应的条目(操作 508)并且确定对应条目是否存在(操作510)。如果是这样,则系统从问题高速缓存中的对 应条目中选择求解器试探法(操作51幻。然后,系统通过使用所选求解器试探法来生成规 范表示的解(操作514)并且将解返回给求解器客户机(操作522)。如果对应条目在问题高速缓存中不存在,则系统在问题高速缓存中的新条目内存 储规范表示(操作516)。然后,系统通过使用求解器试探法来生成规范表示的解(操作 518)并且将求解器试探法与问题高速缓存中的新条目关联(操作520)。最后,系统将解返 回给求解器客户机(操作522)。图6呈现了对根据本发明一个实施例的扩展图5的操作518的用于生成规范约束 表示的解的过程进行图示的流程图。系统通过从可用求解器试探法汇集中选择求解器试探 法(操作602)来开始。然后,系统使用所选求解器试探法预定时间段以生成对给定规范表 示的解(操作604)。接着,系统确定是否找到解(操作606)。如果是这样,则系统返回解 和用来生成该解的求解器试探法(操作608)。如果没有找到解,则系统确定是否存在任何未用的求解器试探法(操作610)。如 果存在,则系统返回到操作602以选择另一求解器试探法。如果不存在未用的求解器试探 法,则系统启动错误处理程序(操作612)。在这一实施例的一种变形中,错误处理程序报告 错误。在另一变形中,错误处理程序将规范表示标注为不可解,从而可以忽略对求解类似约 束问题的以后尝试。图7图示了根据本发明实施例的求解器服务器的计算机系统。计算机系统702包 括处理器704、存储器706和存储设备708。计算机系统702也耦合到显示设备710。存储 设备708存储操作系统712和求解器服务器714。求解器服务器714包括接收机制716、变 换机制718和求解器720。在操作期间,求解器服务器714从存储设备708加载到存储器 706中并且由处理器704执行。仅出于示例和描述的目的已经呈现对本发明实施例的前文描述。本意并非让它们 穷举本发明或者使本发明限于公开的形式。因而,本领域技术人员将清楚许多修改和变形。 此外,本意并非让上述公开内容限制本发明。本发明的范围由所附权利要求书限定。
权利要求
1.一种用于重用与针对问题域的约束求解运算关联的信息的方法,所述方法包括从所述问题域接收用于约束问题的规范表示;在问题高速缓存中搜寻与所述规范表示对应的条目;并且如果对应条目在所述问题高速缓存中不存在,则在所述问题高速缓存中产生用于所述 规范表示的条目;否则,如果对应条目存在于所述问题高速缓存中,则通过重用与所述问题高速缓存中 的所述对应条目关联的求解器试探法来生成所述规范表示的解。
2.根据权利要求1所述的方法,其中在所述问题高速缓存中产生用于所述规范表示的 条目包括在所述问题高速缓存中存储所述约束问题的所述规范表示;从多个可用试探法中选择求解器试探法;通过使用所述选择的求解器试探法来生成所述规范表示的解,其中只要所述选择的试 探法无法在预定时间段内生成解,则系统选择新的求解器试探法并且使用所述新的试探法 以生成所述规范表示的解;并且将所述选择的求解器试探法与所述问题高速缓存中的所述规范表示条目关联。
3.根据权利要求1所述的方法,其中所述方法还包括监视在生成规范表示的解时的 计算时间,并且在所述问题高速缓存中的所述对应规范表示条目中存储所述计算时间。
4.根据权利要求3所述的方法,其中所述方法还包括使用后台过程来精化对求解器试 探法的选择。
5.根据权利要求1所述的方法,其中执行所述方法的求解器服务器能够执行多个同时 线程,其中相应线程与独立约束问题关联。
6.根据权利要求1所述的方法,其中所述方法还包括将约束问题转换成规范表示。
7.根据权利要求1所述的方法,其中所述方法还包括通过在所述问题高速缓存中记录 和保留用来第一次求解指定的规范表示的求解器试探法、由此允许当在以后时间求解所述 指定的规范表示时使用相同试探法来提供用于所述规范表示的持久解。
8.根据权利要求7所述的方法,其中所述方法还包括通过在所述问题高速缓存中记录 和保留用来第一次求解指定的规范表示的随机种子、由此允许系统产生与求解个别规范表 示的顺序无关的恒定解来为所述规范表示提供随机稳定性。
9.根据权利要求1所述的方法,其中所述方法还包括记录用于问题域的约束问题解 序列,并且为后续问题域重放所述解序列。
10.根据权利要求1所述的方法,其中所述方法还包括跨与一个或者多个应用关联的 多个独立问题域重用所述问题高速缓存的信息。
11.一种存储指令的计算机可读存储介质,所述指令在由计算机执行时使所述计算机 执行一种用于重用与针对问题域的约束求解运算关联的信息的方法,所述方法包括从所述问题域接收用于约束问题的规范表示;在问题高速缓存中搜寻与所述规范表示对应的条目;并且如果对应条目在所述问题高速缓存中不存在,则在所述问题高速缓存中产生用于所述 规范表示的条目;否则,如果对应条目存在于所述问题高速缓存中,则通过重用与所述问题高速缓存中的所述对应条目关联的求解器试探法来生成所述规范表示的解。
12.根据权利要求11所述的计算机可读存储介质,其中在所述问题高速缓存中产生用 于所述规范表示的条目包括在所述问题高速缓存中存储所述约束问题的所述规范表示;从多个可用试探法中选择求解器试探法;通过使用所述选择的求解器试探法来生成所述规范表示的解,其中只要所述选择的试 探法无法在预定时间段内生成解,系统选择新的求解器试探法并且使用所述新的试探法以 生成所述规范表示的解;并且将所述选择的求解器试探法与所述问题高速缓存中的所述规范表示条目关联。
13.根据权利要求11所述的计算机可读存储介质,其中所述方法还包括使用后台过程 来精化对求解器试探法的选择。
14.根据权利要求11所述的计算机可读存储介质,其中执行所述方法的求解器服务器 能够执行多个同时线程,其中相应线程与独立约束问题关联。
15.根据权利要求11所述的计算机可读存储介质,其中所述方法还包括将约束问题转 换成规范表示。
16.根据权利要求11所述的计算机可读存储介质,其中所述方法还包括通过在所述问 题高速缓存中记录和保留用来第一次求解指定的规范表示的求解器试探法、由此允许当在 以后时间求解所述指定的规范表示时使用相同试探法来提供用于所述规范表示的持久解。
17.根据权利要求16所述的计算机可读存储介质,其中所述方法还包括通过在所述问 题高速缓存中记录和保留用来第一次求解指定的规范表示的随机种子、由此允许系统产生 与求解个别规范表示的顺序无关的恒定解来为所述规范表示提供随机稳定性。
18.根据权利要求11所述的计算机可读存储介质,其中所述方法还包括记录用于问 题域的约束问题解序列,并且为后续问题域重放所述解序列。
19.根据权利要求11所述的计算机可读存储介质,其中所述方法还包括跨与一个或者 多个应用关联的多个独立问题域重用所述问题高速缓存的信息。
20.一种用于重用与针对问题域的约束求解运算关联的信息的约束求解器服务器,包括接收机制,配置成从所述问题域接收用于约束问题的规范表示;问题高速缓存,配置成存储用于约束问题的规范表示、存储与针对所述规范表示的所 述约束求解运算关联的元数据并且取回与所述规范表示对应的条目;以及求解器机制,配置成通过使用选择的求解器试探法来生成所述规范表示的解;其中如果所述问题高速缓存没有包含与所述规范表示对应的条目,则所述约束求解器 服务器在所述问题高速缓存中产生用于所述规范表示的条目;否则,如果所述问题高速缓存包含与所述规范表示对应的条目,则所述求解器机制通 过重用与所述问题高速缓存中的所述对应条目关联的求解器试探法来生成所述规范表示 的解。
21.根据权利要求20所述的约束求解器服务器,其中在所述问题高速缓存中产生用于 所述规范表示的条目包括在所述问题高速缓存中存储所述约束问题的所述规范表示;从多个可用试探法中选择求解器试探法;通过使用所述选择的求解器试探法来生成所述规范表示的解,其中只要所述选择的试 探法无法在预定时间段内生成解,则系统选择新的求解器试探法并且使用所述新的试探法 以生成所述规范表示的解;并且将所述选择的求解器试探法与所述问题高速缓存中的所述规范表示条目关联。
22.根据权利要求20所述的约束求解器服务器,其中所述约束求解器服务器能够使用 后台过程来精化对求解器试探法的选择。
23.根据权利要求20所述的约束求解器服务器,其中所述约束求解器服务器能够执行 多个同时线程,其中相应线程与独立约束问题关联。
24.根据权利要求20所述的约束求解器服务器,还包括配置成将约束问题转换成规范 表示的变换机制。
25.根据权利要求20所述的约束求解器服务器,其中所述约束求解器服务器能够通过 在所述问题高速缓存中记录和保留用来第一次求解指定的规范表示的求解器试探法、由此 允许当在以后时间求解所述指定的规范表示时使用相同试探法来提供用于所述规范表示 的持久解。
26.根据权利要求25所述的约束求解器服务器,其中所述约束求解器服务器能够通过 在所述问题高速缓存中记录和保留用来第一次求解指定的规范表示的随机种子、由此允许 所述约束求解器服务器产生与求解个别规范表示的顺序无关的恒定解来为所述规范表示 提供随机稳定性。
27.根据权利要求20所述的约束求解器服务器,其中所述约束求解器服务器能够在所 述问题高速缓存中记录用于问题域的约束问题解序列并且为后续问题域重放所述解序列。
28.根据权利要求20所述的约束求解器服务器,其中所述约束求解器服务器能够跨与 一个或者多个应用关联的多个独立问题域重用所述问题高速缓存的信息。
全文摘要
本发明的一个实施例提供一种用于重用与针对问题域的约束求解运算关联的信息的系统。该系统通过从问题域接收约束问题来开始。然后,该系统在问题高速缓存中搜寻与规范表示对应的条目。如果对应条目在问题高速缓存中不存在,则该系统在问题高速缓存中产生用于规范表示的条目。否则,如果对应条目已经存在于问题高速缓存中,则该系统通过重用与问题高速缓存中的对应条目关联的求解器试探法来生成规范表示的解。
文档编号G06N5/02GK102084381SQ200980000255
公开日2011年6月1日 申请日期2009年7月13日 优先权日2008年7月21日
发明者G·R·玛图拉纳 申请人:新思科技有限公司