用于搜索算法的受约束探索的制作方法

文档序号:6567935阅读:264来源:国知局
专利名称:用于搜索算法的受约束探索的制作方法
用于搜索算法的受约束探索
背景
通过搜索算法可以解决包括计划、进度安排和结构在内的一大类问题,而该 搜索算法则是定义如何为问题的解来探索问题空间或"搜索空间"的算法。例如, 通过搜索算法,可以解决寻找适于具有不同属性、不同连接的多种计算机系统的网 络拓扑。另一个问题的实例是为满足不同需要的一组资源来确定合适的调度,在这 其中使用搜索算法可能会有用。
通常,用于解决这些问题的方法可以分类为确定性方法或非确定性方法。确 定性方法包括被定义明确且有顺序的一组步骤,这些步骤可以对搜索空间执行高效 探索以找出解。相反地,非确定性方法探索搜索空间的方式可能不仅仅取决于输入 和当前状态,并且其搜索路径无法完全预知。对于许多问题而言,不存在高效的确 定性方法,并且用于解决特定问题的最适合的可能方法是使用非确定性方法。
对于许多这类问题而言,无论所使用的搜索算法的性质如何,探索搜索空间 都需要大量计算资源。加速搜索的常用方法是采用多个独立的计算资源,包括多核 心的计算机处理器、带有多个处理器的计算机以及按许多不同方式组织起来的多个 计算机。一些确定性算法支持使用多个计算资源——搜索空间可以被分为多个独立
的子空间,每个子空间随后可由一个独立的计算资源进行探索。相反地,许多非确 定性算法则难以按相同的方式来高效利用多个计算资源。例如,因为可能很难或者 无法预知多种非确定性算法的最终搜索路径,即,在给定的开始搜索的状态下,可 能很难或者无法确定将探索搜索空间的哪个部分,所以在开始非确定性搜索之前划 分搜索空间可能无法确保探索的相异性。
概述
为了向读者提供基本知识,下文中给出了本发明公开内容的简单概述。该概 述不是本发明公开内容的扩展综述,也不对标识本发明的关键/核心要素或描绘本 发明的范围。它的唯一目的在于作为稍后介绍的更详细说明的前奏,以简化形式介 绍本文所公开的一些概念。 在此描述了旨在用于约束和引导搜索算法进行探索的方法和系统的各种技术 和工艺。这些方法和系统有关搜索探索的一个应用是更有效地利用了多个独立的计 算资源。
在此描述的示例性实施例使用多个进程来搜索将识别出结果的空间。 一个或 多个搜索进程通常会使用一个或多个划分准则将搜索空间区分为多个区域,该划分 准则可被表示为基准搜索状态和基准搜索状态周围待搜索的距离的度量。取决于如 何选择划分准则以及如何将划分准则分配给各个搜索进程,搜索拓扑和策略可以具 有各种特征,并且可能具有重叠的搜索空间、不重叠的搜索空间或者两者的组合。 在对搜索空间进行划分时,进程可以由协调或控制进程进行协调,而协调或控制进 程可以是搜索进程之一或者是分开的控制进程。可选地,为了在搜索进程之间进行 协调以划分搜索空间,搜索进程可以交换信息。在此描述的示例性实施例可以利用 任何一种数值模型来估计候选的搜索状态,并可以利用任何一种策略,用于在区域 内部选择搜索状态,直到定位出合适的状态和/或满足某些停止准则为止。


图1是示例性概括操作流程的示意图,该流程包括由搜索算法探索搜索空间 所执行的各种操作和所用的各种数据。
图2是使用一个或多个搜索算法的实例来探索搜索空间的示例性概括系统的
示意图。
图3是示例性概括操作流程的示意图,该流程包括被执行以使用搜索算法探 索搜索空间的各种操作,而不含集中的划分代理或逻辑。
图4是一系统的示例性概括表示的图示,该图示通过示出将一个搜索空间划 分为两个搜索空间来说明多种可能的搜索拓扑之一。
图5是一系统的示例性概括表示的图示,该图示说明了通过使用新的划分准 则, 一搜索如何随时间而改变。
图6是一系统的示例性概括表示的图示,该图示说明了将一个搜索空间分成 三个搜索空间的许多可能分隔之一。
图7是一系统的示例性概括表示的图示,该图示说明了分成两个搜索空间的 分隔,其中基准状态不同并且其中各搜索空间没有涵盖总搜索空间的全部。
图S是一系统的示例性概括表示的图示,该图示说明了分成两个搜索空间的 分隔,其中基准状态不同并且其所得的搜索空间重叠。
图9是一系统的示例性概括表示的图示,该图示说明了分成三个搜索空间的 分隔,其中使用包含多个基准状态和距离约束的划分准则来定义第三搜索空间。 图IO是计算设备的一个可能的基本实现的图示。
具体实施例方式
转向图l,其中显示出示例性概括操作流程100,操作流程100包括通过搜索
算法探索搜索空间而可被执行的各种操作以及可被使用的各种数据。给定一些状态
数据110,以及诸如停止准则122和划分准则118之类的其它数据,操作流程100 通过估计模型和识别新状态来探索搜索空间。
虽然对图1的描述可以参考其它附图进行,但是应当理解,示例性的操作流 程100并不旨在限于与任何具体附图中的系统或其它内容相关联。另外,应当理解, 尽管示例性操作流程100指出特定的操作执行顺序,但是在一个或多个可选实施例 中,操作顺序可以不同。此外,在示例性操作流程100中示出的一些步骤和数据在 某些实现中并不是必需的,而且可以省略。最后,虽然操作流程包含多个不连续的 步骤,但应当认识到,在某些环境下,可以合并一些操作并同时执行这些操作。
通常,搜索算法尝试寻找特定问题的一个或多个解。搜索算法通常利用模型 进行工作。该模型提供对用作解决该问题的一部分的某些行为的表现。给定一些状 态,则模型给出结果。然后这种结果可以用于估计其对于解决该问题的适用性—— 对该问题而言,一些结果是比另一些结果更好的解。然后搜索算法可使用现有状态、 结果和结果的适用性以及多种其它因素,从而为该状态选择新的值。搜索算法可向 该模型提供这一新状态,获得结果,并估计结果等等。这个过程可以一直连续进行, 直到满足某些停止准则为止。例如,该过程可以一直连续进行,直到特定数量的状 态己被检査或者直到结果满足一定的适用性准则,或者直到满足其它准则为止。
在一些示例性的并且在不作为限制的情况下,待解决的问题位于一个物理的 域中。在这些情况的某些情况下,模型可以是某些物理过程的表现,提供给模型的 状态可以是物理参数的编撰,并且该模型产生的结果可以是模型查找物理参数的结 果。作为示例而非限制,假定待解决的问题包括配置计算机服务器。在此示例中提 供给模型的状态可以包含可用服务器的数目、服务器速度、服务器所使用的存储器 的量、连接服务器的网络速度、服务器所执行的处理的复杂度等。假定这些输入值 的类型表示为(A、 B、 C、 D、 E),并且状态数据的一组特定集合表示为(a、 b、 c、 d、 e),其中每个值对应于用于识别解的模型中的一个变量。在此示例中,模
型可以执行各种计算并提供结果,该结果包括由给定状态表示的计算机服务器可以 支持的并发用户数量,以及每个用户在使用计算机服务器时将体验到的平均响应时
间的估计值。假定结果的类型表示为(y,z),当提供一组诸如(a,b,c,d,e)的输入 值时,模型产生带有如(y,z)的输出值的结果。
区分不同搜索算法的因素之一是其中该搜索算法识别待估计的次态或多个次 态(next states)的方式。可以使用许多不同的方法来识别次态,大部分或所有的 方法都可用于本发明的上下文。例如, 一些搜索算法可以识别随机次态,其它的搜 索算法比如可以通过使用"遗传"算法、当前和最近结果的"斜率"或其它方法等, 从与当前状态有某种联系的状态族中识别出次态。
确定次态时,使用"距离约束"就可按各种有益的方法来约束搜索算法的探 索。通常,"距离约束"可以基于两状态之间的"距离"或差异的某些度量来约束 一种算法。如果搜索算法仅仅可以识别满足由距离约束所规定限制的后续状态,就 可出于各种目的而以多种方式限制搜索算法的探索。
在一些示例性实现中, 一个或多个距离约束可以用于一个或多个搜索算法的
多个实例,以便一种搜索算法的每个实例都对作为总搜索空间一部分的一个特定搜 索空间进行探索。在一个类似的示例中,取决于提供给模型的这一个或多个距离约 束的性质,可以避免搜索算法的不同的实例之间的重叠,从而避免以同一种方式对 搜索空间的相同部分进行多次搜索,以便对搜索空间的特定区域进行比其它区域更 详细的探索等。
如图所示,操作流程100的一个实现使用了状态数据110。这个状态数据110 表示为该搜索算法所知的当前状态。在操作流程100的第一次迭代中,状态数据 110可以包含提供给该搜索算法的初始状态,或者在指定搜索空间内选择的初始状 态。如下文将更为详细地解释的那样,在后续迭代期间,状态数据110可以包含基 于在前的一次或多次迭代的执行所识别出的新状态。
在一些示例性实现中并且不作为限制,状态数据110可被表示为用于一个或 多个变量的值。如上讨论,在这一示例性实现中,状态数据可被类似地表示为(a, b,c,d,e),并可以表示诸如可用计算机服务器的数目、服务器速度等的内容。应 当理解,变量的数目和组织、变量所表示的数据,以及变量使用本身,通常是待解 决问题以及用于解决该问题的模型的函数。状态的表现在本发明上下文中并不重 要,状态数据110可以表示为任何一种形式。
在操作130的一个实现中,搜索算法使用与该搜索算法所探索的问题相关的
一特定模型来估计状态数据110。该模型提供用作解决该问题的一部分的一些行为 的表现。给定一些状态,模型给出结果。可以使用各种方法实现该模型,并可以根 据待解决问题的性质来改变模型。
估计给定状态数据110的模型的结果示出为图1中的结果数据112。在一些示 例性的实现中并且不作为限制,结果数据112可以表示为用于一个或多个变量的 值,这些变量通常(但不一定)表示在产生所需结果过程中用于确定状态适用性或 适当性的待检查的参数。在上述介绍过的一示例中,这些变量可以表示诸如给定的 一组计算机服务器集合能支持的并发用户数目以及模型系统的每个用户将体验的
平均响应时间。如同状态数据110,应当理解,变量的数目和组织、变量所表示的 数据以及变量使用本身,都是搜索算法探索过程的一特定实现的具体细节,并且结
果数据112可以表示为任何一种形式。
在操作150的一个实现中,操作流程100判定是否满足停止准则122。如果在 操作150中判定满足停止准则("是"分支,操作150),那么操作流程如下所述 行进到到操作170。如果在操作150中判断出不满足停止准则("否"分支,操作 150),那么操作流程如下所述行进到操作160。
停止准则122可以是任何一种指定何时应该终止搜索的准则。作为示例而非 限制,停止准则122可以包含时间准则,诸如对迭代次数或者允许启动搜索的时间 的限制。额外地或可选地,可以使用诸如适用性或适当性度量之类其它的准则。使 用上文介绍的示例,停止准则可以指定由一组计算机服务器集合支持的并发用户多 于规定量的数目,或者响应时间小于某一给定时间。可以同时使用任何其它的期望 准则,包括由另一个并发执行的搜索进程己经找到的适合的解。用于停止准则122 的可能性实质上是无限的。
如果已经满足停止准则122,则操作流程100行进至操作170,在其中在一实 现内的操作流程100返回一些探索结果。探索结果可以包括但不限于最近处理的状 态数据110。它可能包括最近的结果数据112,也可能不包括。在一些实现中,搜 索结果可以包含状态数据110、结果数据112或其它数据的一个以上的片段。在返 回一组以上数据集合的某些实施例中,在这期间或更长的时段中, 一些或全部数据 可以存储在诸如数据存储180的数据存储中。此外,在某些情况下,操作流程IOO 可以不返回值。作为示例而非限制,如果操作流执行了指定次数但没有找到满足某 些指定准则的结果数据112,那么操作170可以不返回结果。操作170不返回结果 的另一示例在一些实现中是因为操作流的另一个实例已经找到一个解所以操作流 程停止。可选地,在其它实现中,操作170可以返回最匹配于某些准则的数据,或 者在某些方面对搜索算法的用户有用的其它数据集。
如果尚未满足停止准则122,那么操作流程IOO行进到操作160。在操作160 的一个实现中,操作流程IOO识别出将用于该操作流程后续迭代的新状态。在完全 执行操作160之后,操作流程再次行进到操作130,在其中使用在操作160中识别 出的状态。
操作160识别新状态的方法可以有很大的变化。在一些实现中,操作流程可 以通过该操作流程执行作为操作160—部分的进程来识别新状态。例如,操作160 可以使用一种算法来识别新状态的给定数据,诸如但不限于现有状态以及现有状态 的适用性。在相同的或其它的实现中,操作160比如可以通过从操作160范围外的 其它进程或者输入中获取新状态来识别该新状态。作为示例而非限制,包括另一搜 索进程的其它进程,可以识别稍后由操作160使用的新状态。
取决于所使用的特定搜索算法及其它选择,如何识别次态的细节可以有很大 的变化。例如在一些实现中,可以随机识别次态。在其它的实现中,比如可以通 过使用"遗传"算法、当前和最近结果的"斜率"或其它的方法等,而从与当前状 态有某种联系的状态族中识别出该次态。在本发明的上下文中,任何这样的算法或 进程都可用来识别次态。
在特定的实现中,次态可以被其自身或者除其它约束或准则之外并且通过划 分准则118,使用任何一种特定的算法而约束。划分准则118可以包括"距离约束" 和"基准状态"。取决于距离约束和基准状态的选择,可以获得大量不同的搜索行 为。下文将参考图4到图9来解释搜索行为的一些实例,其中该搜索行为由对于划 分准则参数的不同选择而引起。
取决于确切的实施例和实现,可以用多种方法识别划分准则118。作为示例而 非限制,根据操作流程100操作的搜索进程,可能基于一些准则或基于与其它搜索 进程的信息交换来选择划分准则118本身。在可选实现中,划分准则118可以从另 一源获得,诸如控制或协调进程或用作控制或协调进程的另一搜索进程。其它选项 也是可用的,并且可以使用识别划分准则118的任何方法。
距离约束提供两个或更多状态之间差异的一些度量。在一个或多个实现中, 距离约束相关的状态之一可以是"基准状态"。在一些实现中,基准状态可以是提 供给搜索算法的原始状态数据。在其它的实现中,或者在另一时刻的相同实现中, 基准状态可以包含其它的状态数据。在操作160的一些实现中,作为划分准则118
一部分的距离约束可用来估计该基准状态是否类似于所识别的新状态,是否类似于 现有状态110,或者是否类似于某些其它的状态数据,是否类似于一些指定的程度。 在其它的实现中,距离约束可被用来估计该基准状态与已识别的新状态的差异是否 再次达到某种指定程度。
在一个示例性实现中,可以使用"汉明距离"实现距离约束。汉明距离是必 须在一种状态上执行以使其与另一种状态相同的改变次数的度量。比如假定变量
(A,B,C)、状态(a,b,c)和另一状态(a,f,g)。这些状态之间的汉明距离是2,因 为为了使得第一状态等于第二状态,B的值将不得不从'b'变为并且C的值 将不得不从'c,变为'g,。在某些情况下,比如,当与一些本地搜索算法一起使 用时,汉明距离可以表示开始状态和最终状态之间的中间状态的数目。
在相同的或其它的实现中,其它的操作或方法可以用作距离约束的实现的一 部分。作为示例而非限制,在使用矢量表示状态数据的情况下,可以使用(举例但 不限于)诸如将矢量投影到另一个矢量上,将一个矢量或多个矢量投影到表面上等 的矢量操作来实现距离约束。
取决于采用的距离约束的算法,可以获得距离约束特定的极值、为了估计距 离约束的状态选择、多种搜索探索行为。作为示例而非限制,在操作流程100的一 次使用中,操作160可以将基准状态定义为提供给搜索算法的初始状态,并可以使 用距离约束,以便它仅仅识别出在其中基准状态的距离度量小于指定值的新状态。 在另一个示例中,操作160可以使用不同的距离约束,从而仅仅识别出在其中关于 基准状态的距离度量大于其它值的新状态。在另一示例中,操作160可以使用一种 距离约束,这种距离约束指定仅是带有在两个值之间或在特定范围之内的的距离度 量的状态将被识别。操作160可以使用带有许多不同状态和值的距离度量来控制或 约束搜索探索。
当使用多个独立计算资源并发地(在单个计算资源上或顺序或通过分时)产 生多个搜索实例时,对距离准则的划分准则参数和基准状态的不同值的选择是有用 的。例如,搜索算法的一个实例可以被引导去探索那些离开基准状态始在指定距离 度量之内的状态。搜索算法的另一实例则可被引导去探索那些离开该相同基准状态 大于指定距离度量的状态。如下将参考图2描述使用搜索算法的一个或多个实例的 一个可能的示例性系统。
现在转到图2,其中显示了示例性的概括系统200,该系统使用搜索算法的一 个或多个实例来探索搜索空间。在系统200内包含了一个或多个搜索进程210、 212
和214以及协调或控制进程260。在一些实现中,搜索进程210、 212和214的一 个或多个进程可以包含协调或控制元件270、 272和274。该系统也使用各种数据 元素,包括划分准则220、 222和224的一个或多个实例;其它数据230、 232和 234的一个或多个实例;输出数据250、 252和254的一个或多个实例;以及结束 输出数据280。
尽管可以参考其它图对图2做出描述,但是应当理解,示例性系统200并不 旨在限制于与任何具体附图中的系统或其它内容相关联。
在一个或多个实现中, 一个或多个搜索进程210、 212和214执行被设计用以 基于给定的划分准则220、 222和224及其它数据230、 232和234来搜索该搜索空 间给定部分的操作流程。例如,搜索进程可以执行参照图l所述的操作流程100, 或对其的一些适用性修改。在其它的实现中, 一个或多个搜索进程210、 212和214 可以执行其它的操作流程。在一些实现中,每个搜索进程可以在特定的独立计算资 源上运行,独立计算资源比如是带有多核的计算机处理器中特定的核,特定的计算 机处理器,或者多个计算机的分布集合内的特定计算机。在其它的实现中, 一个或 多个搜索进程共享给定的计算资源。可以使用任何数量的搜索进程;取决于待解决 问题的复杂度、可用的独立计算资源的数目等等,不同的实现可以使用不同数量的 搜索进程。
执行操作流程的搜索进程可以使用一些已提供的划分准则220、 222和224, 以及在某些实现中的其它数据230、 232和234。
如下文将更为详述的那样,尤其通过划分准则220、 222和224所包含或引用 的指定数据以及所使用的搜索进程的数量来确定用于整个系统的搜索拓扑。在一些 实现中, 一些搜索进程可以具有相同的或相似的划分准则,而其它的则可具有不同 的划分准则。类似的,各种搜索进程可以使用相同的数据或不同的其它数据。
如上文详述的那样,划分准则220、 222和224可以包括距离约束和基准状态 信息。搜索进程使用的划分准则可以包括距离约束和基准状态的单个集合,或者可 以包括距离约束和基准状态信息的多个集合。在后一种情况下,采用距离约束和基 准状态信息的多个集合,搜索进程可以仅使用距离约束和基准状态信息的部分或全 部。
其它数据230、 232和234尤其可以包括对搜索进程识别输出数据250、 252 和254必需或有用的任何一种附加数据。在一些实现中,其它数据230、 232和234 可以包括但不限于停止准则。在一些实现中,不需要或在不要求其它数据230、 232
和234,并且这种数据元素可以不存在或者不由该系统使用。
使用提供的划分准则220、 222和224及其它数据230、 232和234,以及诸如 操作流程100的操作流程,搜索进程210、 212和214识别输出数据250、 252和 254。输出数据250、 252和254可以包含各种信息。此信息可以包括作为已执行的 操作流程(比如操作流程100) —部分而产生的任何信息和/或其它的信息。作为示 例而非限制,输出数据250、 252和254可以包括由搜索进程识别的一个或多个状 态。在某些情况下,这些一个或多个状态可以表示待解决问题的一个或多个合适的 解,至少通过特定的搜索进程与己提供的划分准则和可能存在的其它数据已经找到 这些状态。在相同的或其它的实现中,输出数据可以包括已探索状态的数目、对已 返回或已探索状态的适用性或适当性的度量、和/或其它数据。
然后输出数据250、 252和254可能由协调或控制进程260使用,该协调或控 制进程260可以识别一些结束输出数据280或可以识别一组新的划分准则220、222 和224并有可能识别出通过再次使用搜索进程210、 212和214而用于对搜索空间 进行额外探索的其它数据230、 232和234。
结束输出数据280可以包含各种信息。在一些示例性实现中,结束输出数据 280可以包括已经被搜索进程210、 212和214识别并被搜索进程和/或协调或控制 进程260判断出与系统200的用户相关的一个或多个状态。作为示例而非限制,结 束输出数据280可以包括单个最合适输出状态,这种状态由系统200贯穿操作流程 的全部迭代所使用的任何搜索进程所找出。在其它的示例性实现中,结束输出数据 可以包含多种输出状态。结束输出数据可能还包含对该系统的用户有用的其它信 息,并且同样不做限制,这些信息例如可以是由操作流程IOO产生的详细结果数据 112等等。结束输出数据还可以包含由协调或控制进程产生的信息,包括(作为示 例而非限制)搜索搜索进程的总计累计或其它数据。
协调或控制进程260可以判定是否停止执行并使用各种方法返回一些结束输 出数据280。在一些实现中,当输出数据250、 252和254处于由系统200的用户 所提供的一些阈值范围内时,协调或控制进程可以返回结束输出数据。例如,当输 出数据在某个值之上或当输出数据的结果数据112在指定范围之内时,可以仅返回 结束输出数据。在相同的或其它的实现中,当协调或控制进程260已经执行搜索进 程210、 212和214所使用的操作流程一定次数时,协调或控制进程260可以返回 结束输出数据。例如,可以仅执行固定次数的迭代或执行一段给定的时间,然后则 可能返回一些结束输出数据280。
如果协调或控制进程260不返回结束输出数据280,那么它可能代替地识别一 组新的划分准则220、 222和224,并且有可能识别一组新的其它数据230、 232和 234,其它数据230、 232和234可在随后通过再次使用搜索进程210、 212和214 对搜索空间进行额外探索。协调或控制进程260识别这种数据的方式和/或数据本 身的性质都可以有很大变化。
新的划分准则220、 222和224和新的其它数据230、 232和234对于某些搜 索进程可以是相同的,或者对于某些或全部搜索进程是不同的。比如,在一个实现 中,协调或控制进程260可以使用相同的基准状态数据及其它数据,并且仅仅改变 距离约束数据。在其它实现中,协调或控制进程260可以为某些或全部搜索进程改 变基准状态和距离约束。下文将参考图4到图9来解释由不同的划分准则所引起的 搜索行为的一些实例。
协调或控制进程260可以使用任何方法来识别新的划分准则220、 222和224 和新的其它数据230、 232和234。在一个或多个示例性实现中,协调或控制进程 260可以像在输出数据250、 252和254中提供的那样,为全部搜索进程仅识别单 个基准状态,并通过从在前迭代中识别出的最合适的状态来识别那一状态。在其它 的实现中,可以使用某些其它方式来识别基准状态,或者为不同的搜索进程识别不 同的基准状态。类似的,协调或控制进程260可以为每个搜索进程使用不同的距离 约束,从而例如将搜索空间划分为多个不同的划分并由此以多种不同的方式来引导 该探索。
在某些实现中,可以在一个或多个协调或控制元素270、 272和274中而不是 在单个协调或控制进程260中识别输出数据、划分准则和/或用于探索的新状态。 在某些实现中,这些协调或控制元素可以与一个或多个搜索进程210、 212和214 相关联。参考图3,下文将更详细地讨论了使用诸如一个或多个协调或控制元素的 元素来识别结束输出数据和用于探索新状态的操作流程的一个可能实现。
在某些这种实现中且并非限制,在多个搜索进程210、 212和214之间,仅有 一个协调或控制元素270是指导和协调或控制整个搜索探索进程所必需的。例如, 将启动的第一搜索进程可以检测出它是第一搜索进程并假定控制其后启动的任何 搜索进程。在其它的实现中并且同样不作为限制,每个搜索进程210、 212和214 可以具有其自身的协调和控制进程270、 272和274。在这一系统中,协调或控制 进程可以相互通信,从而确定何时停止全面该搜索探索进程并识别待探索的新状 态、要使用的新的划分准则等等。在另一些实现中,只有一些而不是全部搜索进程
可以包含协调或控制元素。
现在转到图3,其中显示出示例性的概括操作流程300,它包括可被执行以使
用搜索算法探索搜索空间的各种操作,但没有集中的划分代理或逻辑。示例性操作
流程300探索搜索空间并且在某些实现中通过与执行可能类似于操作流程300的操 作流程的其它系统来引导其的搜索。
尽管可以参考其它图对图3做出描述,但是应当理解示例性操作流程300并 不旨在仅限于与任何具体附图中的系统或其它内容相关联。另外,应当理解,尽管 示例性操作流程300表明特定的操作执行顺序,但在一个或多个可选实现中,操作 顺序可以不同。此外,在示例性操作流程300中示出的一些步骤和数据可以不是必 需的,并且可以在某些实现中省略。最后,尽管操作流程包含多个不连续的步骤, 但是应当认识到,这些操作中的某一些在某些环境下可被同时地合并和执行。
图2的系统200例证了示例性操作流程100的一种使用,其中该操作流程100 探索搜索空间以得到对于一问题的一个或多个合适解。尽管系统200的一个实现使 用协调或控制进程260来直到执行操作流程100的整个搜索进程210、 212和214 的操作,但是在所有实现中都不需要使用单个划分代理,诸如协调或控制进程260。
在其它实现中,可以使用其它的方法来执行搜索进程210、 212和214的指导。 例如,由搜索进程执行的操作流程本身可以识别结束输出数据以及要探索的新状 态,并且可以不需要集中的划分逻辑。作为示例而非限制,每个搜索进程210、 212 和214可以执行如同操作流程300的操作流程。这种情况尤其可以通过使用一个或 多个协调或控制元素270、 272和274产生,或者可以通过其它的元素或在搜索进 程本身之内产生。在这一实现中,或在其它实现中,交换/划分操作330可以实现 由协调或控制进程260提供的相同功能中的部分或全部。在一个或多个实现中,多 个搜索进程各自可以并发地执行操作流程300,并且可以交换数据或以其他方式通 信以进一步地引导该探索。
如图所示,操作310的一个实现探索一个搜索空间。该探索可以使用与上述 图1的操作流程IOO类似的操作流程,或者通过使用其它的操作流程来实现。在使 用操作流程100的示例中,在操作流程300从操作310行进之后,由操作流程IOO 使用或产生的任何数据都可以用于操作流程300中的后续操作。这些数据包括但不 限于状态数据110和结果数据112,其中该状态数据110包括初始状态和搜索期间 探索过的状态。
在操作320的一个实现中,操作流程300判定该操作流程的这一实例是否应 该停止执行。如果在操作320中判定操作流程300的此示例应该停止,那么操作流 程300结束("是"分支,操作320)。如果判定操作流程300将不会停止,那么 操作流程行进到如下所述的操作330 ("否"分支,操作320)。
由操作320用于判断操作流程是否应该停止执行的准则可以有很大变化。例 如,在一个实现中且不作为限制,当由操作310的执行返回的一个或多个结果都属 于可接受的范围内时,操作320可以判定停止执行操作流程。在另一或相同实现中, 且不作为限制,当操作流程300已执行过某些数次迭代或特定时间己过时,操作 320可以停止执行操作流程。在另外一个或一些实现中,当某些其它的操作流程已 经找到适合解时,操作320可以停止执行操作流程300。
在某些实现中,操作320可以仅停止执行操作流程300的特定实例。在相同 或其它实现中,操作320还可以直接地或间接地停止执行操作流程300的一个或多 个其它并发执行实例。例如,在某些实现中,如果操作流程300的这个特定实例识 别出问题的可接受的解,那么操作320可以停止执行并通知操作流程300的所有其 它实例停止执行。
如果操作流程300不被操作320停止,那么操作流程行进到操作330。在操作 330的一个或多个实现中,数据可以与其它并发执行的操作流程300的实例进行交 换,并且可以做出关于在其中划分或进一步探索搜索空间的一种方式的判定并在操 作流程300的一个或多个实例之间通信这一判定。
数据交换和在其中搜索空间被划分的方式可以有很大变化。在一个或多个实 现中,作为示例而非限制,操作流程300的特定实例可以识别用于下一次迭代的特 定划分准则。操作流程300的这个实例然后可以向操作流程300的其它实例通知全 部或部分的已选划分准则以及关于其他要搜索的划分的可能指令。操作流程300 的其他实例随后可以根据操作流程的第一实例提供的指令进行搜索。
在操作330的一个或多个其它实现中,操作流程300的每个实例可以识别用 于划分准则的优选值,然后将该值通知给执行操作流程300的其它实例。在操作 330的每个实例内的某些逻辑然后可以估计它最初选择的特定划分准则相比于操 作流程其它实例所选的划分准则如何。在某些实现中,操作330可以识别新的划分 准则,然后将这个新的划分准则通信给执行操作330的其他实例。在某些实现中, 选择候选的划分准则、和操作流程300的其它实例进行通信并更新所选划分准则的 这一过程可以执行任何次数,直到比如所选的划分汇合或被认为适合为止。
类似于参考图1和图2所述的划分准则,在某些实现中,由操作流程300的
实例使用的划分准则可以与操作流程300其它实例使用的划分准则相同。在相同的或其它的实现中,由操作流程300的一个实例使用的划分准则可以与操作流程300 的另一个实例使用的划分准则不同。更进一步地,划分准则的不同可以是因为基准 状态不同、距离约束不同、或者基准状态和距离约束都不同。类似地,由操作流程 300的实例使用的任何其它数据可以与操作流程300的其它实例使用的数据相同或 不同。
应当理解,在其中操作330识别用于操作流程下一次迭代的划分准则的方式 可以有很大变化,并且不限于在前实例的任何方法。
图4到图9将探索示例性的搜索拓扑,该拓扑可以通过由多个搜索进程使用 各种划分准则而获得。如前所述,划分准则可以包含基准状态和距离约束。通过识 别用于基准状态和距离约束的相同值或不同值,可以为多个搜索进程创建搜索拓 扑。虽然在某些情况下图4到图9所示的拓扑可被认为是相对静止的,但是它们也 可被结合以使得搜索拓扑随着时间发展或者在整个搜索期间发生改变。
在图4到图9的每张图中,所示拓扑可被如何实现的适合实现可以是关于在 前图1到图3所述的那些系统和操作流程。例如,表示两个搜索空间的拓扑可以利 用搜索进程210和搜索进程212, 二者都已参考图2进行了描述。也可以使用任何 其它实现或其变化形式。在参考图1所述的使用操作流程100的实现中,操作160 可以使用下述划分准则来约束其识别出的新状态。
尽管可以参考其它图对图4到图9做出描述,但是应当理解,图4到图9所 示的内容并不旨在仅限于与任何具体附图中的系统或其它内容相关联。另外,如图 4到图9中提供一组示例性数据集的概括表现的说明,出于解释的目的,不应从所 示形状的性质和组织或从示例性数据值的识别中推断出任何额外内容。尽管在此描 述的说明可以用适于使用两个变量表示建模问题空间的二维空间表示,但是应当理 解可以使用任何数量的变量或任何其它的表现来表现问题空间和搜索探索的方法。 例如,使用由用于表示一状态的各变量的笛卡尔乘积所创建的超平面,就可部分地 或完全地表示问题空间和搜索探索的方法。
现在转到图4,在此显示出系统400的示例性概括表示,系统400通过显示将 一个搜索空间划分为两个搜索空间来示出多种可能的搜索拓扑之一。系统400中所 示的是总搜索空间410、第一搜索空间420、第二搜索空间430、基准状态424和 距离约束426。注意,如下根据图5到图9所述的后续搜索拓扑的每一个都可以包 含某些相似的元素并且不再对每幅附图中的这些相似元素进行重复论述。
图4所示的搜索拓扑可由使用不同的划分准则将总搜索空间410划分为由第 一搜索进程处理的搜索空间和由第二搜索进程处理搜索空间来产生,其中上述总搜
索空间410表示可用于搜索解的整个问题区域。在示例性系统400中,用于第一搜 索进程和第二搜索进程的基准状态可以相同,并可由基准状态424表示。用于第一 搜索进程的距离约束可以是"d<D"并且可以由距离约束426代表。在此上下文 中,"d < D"可以指示由第一搜索进程搜索的状态与基准状态424的距离的度量 应该小于某个值D。相反,第二搜索进程可能具有距离约束"d>=D",其可以将 第二搜索进程所考虑的状态限制为那些距离度量大于或等于相同的值D,而在此示 例中同样是相对于相同的基准状态424进行判断。
这些划分准则的选择可能导致第一搜索空间420由第一搜索进程搜索而第二 搜索空间430由第二搜索进程搜索。
尽管对于如图4所示的搜索拓扑存在多种合适的使用,但是一种可能的使用 可以是使用第一搜索空间420详细地搜索总搜索空间410的特定区域,而由第二搜 索空间430或许没那么详细地搜索总搜索空间410的其余部分。
现在转到图5,在其中显示出系统500的示例性概括表示,该表示通过使用新 的划分准则示出了搜索如何随时间而发生改变。这个具体实例显示来自上述图4 的搜索拓扑中的搜索拓扑中一种可能改变。系统500所示的是总搜索空间410、第 一搜索空间520、第二搜索空间530、旧的第一搜索空间420 (与第一搜索空间420 相同)和基准状态524。
图5所示的搜索拓扑可能显示在其中使用两个搜索进程的搜索可被引导并随 时间改变的一种可能的方法,在这种情况下,该方法来自于图4所示的搜索拓扑。 类似于示例性系统400,在示例性系统500中,用于第一搜索进程和第二搜索进程 的基准状态相同基准状态524,但距离约束是不同的"d<D"和"d>=D"。然 而,因为基准状态524已经从系统400中的基准状态424发生变化,所以第一和第 二搜索进程现在搜索总搜索空间410的不同部分。
通过周期性地改变划分准则,或许以类似于图5所述的方式,或者以某种其 它方法,整个搜索可以逐渐找到越来越适合的解。作为示例而非限制,在类似于图 4和图5的实现中,其中一个搜索进程进行详细的搜索,而另一个搜索进程执行更 全面的搜索,这些搜索进程可以时而交换并比较它们最适合的解。在一个实现中, 这可以允许对由全面搜索定位的可能更为适合的的搜索空执行更详细的搜索。
在一个实现中,划分准则的改变可能与如上图2所述的协调或控制进程260
或协调或控制元素270、 272和274有关,和/或作为如上图3所述的"划分/交换" 操作330的执行结果。在其它的实现中,划分准则的改变可能与其它的系统元素或 操作相关联。
现在转到图6,其中显示出系统600的示例性概括表示,系统600通过显示将 一个搜索空间划分为三个搜索空间多种可能分隔中的一种。系统600中所示的是总 搜索空间610、第一搜索空间620、第二搜索空间630、第三搜索空间640和基准 状态624。
图6所示搜索拓扑是由使用不同的划分准则将总搜索空间610划分为三个搜 索空间而产生的,每个搜索空间都由一个搜索进程处理。第一搜索进程可以搜索第 一搜索空间620、第二搜索进程可以搜索第二搜索空间630,并且第三搜索进程可 以搜索第三搜索空间640。
在示例性系统600中,用于每个搜索进程的基准状态相同基准状态624。用 于第一搜索进程的距离约束可以是"d<Dl",用于第二进程的距离约束是"D2> d>=Dl",而用于第三搜索进程的距离约束是"d^D3"。用于第一搜索空间620 的距离约束(距离约束642)和用于第三搜索空间640的距离约束(距离约束646) 类似于前述图4和图5所述的距离约束,由于它们可以定义在其中用于已搜索状态 的距离度量小于比如Dl的某些值(在第一搜索空间620的情况下)或者大于或等 于比如D3的某些值(在第二搜索空间640的情况下)的搜索空间。用于第二搜索 空间630的划分准则使用合并两个指定值的距离约束644 "D2>d>=Dl",以便 它搜索在某种意义上处于第一搜索空间620和第二搜索空间640 "之间"的状态。
取决于如何选择D2和D3,有可能故意创建一个在这些搜索空间发生重叠的 区域。例如若是在某种意义上D2〉D3,那么可以创建如632所示的重叠区域。另 一方面,如果D2二D3,那么不会创建任何重叠区域。示出可能的重叠632以显示 使用在此所述的划分机制的可用灵活性。
现在转到图7,其中显示出系统700的示例性概括表示,该表示示出出分为两 个搜索空间的分隔,其中这两个基准状态不相同,并且搜索空间不涵盖整个总搜索 空间。系统700中所示的是总搜索空间710、第一搜索空间720、第二搜索空间730、 第一空间基准状态724和第二空间基准状态734。
图7所示搜索拓扑可由使用不同的划分准则将总搜索空间710分为第一搜索 空间720和第二搜索空间730而产生,每个搜索空间都由一个搜索进程处理。与前 述一些实例相反,系统700说明一种搜索拓扑,其中作为划分准则一部分的基准状
态不同。在此示例中,用于第一搜索空间的基准状态由第一空间基准状态724示出,
而用于第二搜索空间的基准状态由第二空间基准状态734示出。另外,作为每个划 分准则一部分的距离约束也不同,这些距离约束在与之相关的基准状态和它们自己 的距离约束中都不相同。用于第一搜索空间720的距离约束740是"d<Dl",而 用于第二搜索空间730的距离约束742是"d<D2"。得到的第二搜索空间730的 显示尺寸大于第一搜索空间720的显示尺寸,其可能暗示着在某些实例中D2大于 Dl,但这并不是必需的。
最后,系统700也例证并不搜索整个的总搜索空间710。示例性系统700仅仅 具有两个搜索进程,每个搜索进程搜索其自身基准状态"周围"的具体区域。不对 在这些区域之外的总搜索空间710进行搜索。虽然这在某些情况下可能有用,但是 并不要求整个搜索空间由至少一个搜索空间所覆盖。另外,在某些实现中,其中一 个或多个划分准则可以发生改变的进一步迭代可能随后包含当前不搜索的部分或 全部搜索空间。
现在转到图8,其中显示出系统800的示例性概括表示,该表示示出分为两个 搜索空间的分隔,其中这两个基准状态不相同,并且所得的搜索空间重叠。系统 800中所示的是总搜索空间810、第一搜索空间820、第二搜索空间830、第一空间 基准状态824和第二空间基准状态834,以及共享搜索空间850。
如同前述一些实例,图8所示的搜索拓扑可由不同的划分准则将总搜索空间 810划分为第一搜索空间820和第二搜索空间830而产生,每个搜索空间由一个搜 索进程处理。如图所示,用于两个搜索空间的基准状态不同第一搜索空间使用第 一空间基准状态824,而第二搜索空间使用第二空间基准状态834。
在这个示例性系统中用于划分准则的特定选择刚好导致正被两个搜索进程所 搜索的总搜索空间810的一部分。这个重叠部分由共享搜索空间850示出。如此示 例所例证,并不要求搜索进程总是探索不相同的搜索空间。
现在转到图9,其中显示系统卯O的示例性概括表示,该表示示出分为三个搜 索空间的分隔,其中第三搜索空间由包含多个基准状态和距离约束的划分准则定 义。系统900中所示的是总搜索空间910、第一搜索空间920、第二搜索空间930、 第三搜索空间940、第一空间基准状态924和第二空间基准状态934。
第一搜索空间920和第二搜索空间930例如可使用类似于前述图7所述的划 分准则来定义。它们分别使用不同的基准状态,即第一空间基准状态924和第二空 间基准状态934,以及不同的距离约束,距离约束定义了包含在由一组在此示例中
分别为Dl和D2的值所指定的距离度量之内的状态的搜索空间。
相反地,第三搜索空间940以不同于己经定义了的其它搜索空间的方式来定 义。第三搜索空间940是通过使用包含两个基准状态和两个距离约束的划分准则来 定义的。在此示例中,使用从第一空间基准状态924判断的距离约束"dl>=Dl" 和从第二空间基准状态934判断的距离约束"d2 ^D2"来定义第三搜索空间940。 在此示例中,这个划分准则将第三搜索进程考虑的状态限制为仅仅是不属于第一搜 索空间920的部分或第二搜索空间930的部分的那些部分。
现在转到图10,其中显示出计算设备的一种可能的基本实现。图IO和相关讨 论旨在提供在其中可以实现本文中所述各种技术的示例性计算环境的简要、通用的 说明。虽然不是必需的,但是这些技术可以在诸如由控制器、处理器、个人计算机 或其它诸如图IO所示的计算机设备1000的计算机设备执行的程序模块之类的计算 机可执行指令的通用上下文中来描述。
通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、 对象、组件、数据结构等等。由程序模块执行的任务在前已借助框图和操作流程图 进行了描述。
本领域技术人员可以按计算机可执行指令的形式实现这些描述、框图和流程 图,这些指令可以嵌入到计算机可读介质的一种或多种形式中。在本文中,计算机 可读介质是能够存储或具体化以计算机可访问和理解的形式进行编码的信息的任 何一种介质。计算机可读介质的典型形式包括但不限于易失性和非易性存储器存储 设备,包含可移动的和/或不可移动的介质和通信介质。
通信介质将计算机可读信息具体化在诸如载波或其它的传输机制的已调制数 据信号中,并且包括任何信息传递介质。术语"已调制数据信号"是指具有一个或 多个特征集合或者以对信号中的信息进行编码的形式而被改变的信号。作为示例而 非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、 RF、红外线及其它无线介质的无线介质。
在图10的计算设备1000的最基本结构中,至少包括一个处理单元1002和存 储器1004。取决于计算设备的确切配置和类型,存储器1004可以是易失性的(诸 如RAM)、非易失性的(诸如ROM、闪存等),或者是二者的结合。在图10中 由虚线1006表示最为基本的配置。另外,计算设备1000还可以具有额外的特征/ 功能。例如,计算设备1000还可以包括额外的存储(可移动的和/或不可移动的), 包括但不限于磁盘或光盘或磁带。在图10中由可移动存储1008和不可移动的存储 1010表示这些额外的存储。
计算设备1000还可以包含允许计算设备1000与其它设备通信的一个或多个 通信连接1012。计算设备1000还可以具有一个或多个输入设备,比如键盘、鼠标、 笔、话音输入设备、接触式输入设备等等。计算设备IOOO也可以包括一个或多个 输出设备1016,诸如显示器、扬声器和打印机。
本领域的技术人员将理解在此描述的技术可由除图10所示的计算设备1000 之外的计算设备来实现。作为示例而非限制,在此描述的技术同样可以采用手持设 备、多处理器系统、基于微处理器的或可编程的消费电子品、网络PC、小型计算 机、大型计算机等实现。
在此描述的技术也可以在分布式计算环境中实现,其中任务由通过通信网络 链接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程 存储器存储设备内。
尽管本文所述内容可由软件实现,但是应当理解在此描述的技术也可以任选 地被全部或部分地实现为硬件、固件或软件、硬件和/或固件的各种组合。
权利要求
1.一种方法,包括a.为在搜索空间中所述的每个进程,识别所述搜索空间内的至少一个基准搜索状态;以及b.为在所述搜索空间中搜索的每个进程,识别至少一个距离约束,所述距离约束连同所述至少一个基准搜索状态用于在所述搜索空间内选择当前搜索状态。
2. 如权利要求l所述的方法,其特征在于,在所述搜索空间中搜索的每个进 程都执行一种方法,包括C.基于所述至少一个距离约束和所述至少一个基准状态识别当前搜索状态;d. 使用所述当前搜索状态估计一模型;e. 基于所述至少一个距离约束和所述至少一个基准状态选择一新状态,并且 使用所述新状态作为所述当前搜索状态;以及f. 重复步骤(d)至(e)直到停止准则被满足。
3. 如权利要求2的方法,其特征在于,至少两个进程搜索所述搜索空间。
4. 如权利要求3所述的方法,其特征在于a. 所述搜索空间内的所述至少一个基准搜索状态对所述搜索空间内搜索的每 个进程相同;以及b. 为了将所述搜索空间划分为多个区域,用于在所述搜索空间中搜索的每个 进程的所述至少一个距离约束被选择。
5. 如权利要求4所述的方法,其特征在于,至少两个区域至少部分重叠。
6. 如权利要求4所述的方法,其特征在于,至少两个区域不相重叠。
7. 如权利要求3所述的方法,其特征在于a.至少一个距离约束对在所述搜索空间中搜索的至少一个进程与对在所述搜 索空间中搜索的其它进程不同。
8. 如权利要求3所述的方法,其特征在于a.在所述搜索空间内的至少一个基准搜索状态对在所述搜索空间中搜索的至 少一个进程与对在所述搜索空间中搜索的其它进程不同。
9. 如权利要求8所述的方法,其特征在于,为了将所述搜索空间划分为多个 区域,用于在所述搜索空间中搜索的每个进程的所述至少一个距离约束被选择。
10. 如权利要求9所述的方法,其特征在于,至少两个区域至少部分重叠。
11. 如权利要求9所述的方法,其特征在于,至少两个区域不相重叠。
12. 如权利要求2所述的方法,其特征在于,至少两个进程各自执行如权利 要求2的方法,并且其中所述至少两个进程中的至少一个进一步地将其至少一个基 准搜索状态与所述至少两个进程中的至少另一个进程的基准搜索状态进行交换。
13. 如权利要求2所述的方法,其特征在于,在所述搜索空间中搜索的每个迸程a. 识别它自己的至少一个基准搜索状态;b. 识别它自己的至少一个距离约束;以及C.其中在所述搜索空间中搜索的每个进程进一步地执行一种方法,包括i. 将包含其至少一个基准状态的信息与所述至少两个迸程中的至少一个 进程的信息进行交换;ii. 执行权利要求2的(c)至(f);并且当(f)的停止准则被满足时,则iii. 识别至少一个新的基准状态并使用所述至少一个新的基准状态作为所述至少一个基准状态;iv. 识别至少一个新的距离约束,所述至少一个新的距离约束连同所述至少一个基准搜索状态用于在所述搜索空间内选择当前搜索状态,并且使用所述至少一个新的距离约束作为所述至少一个距离约束;以及v. 重复步骤(i)到(iv)直到全局停止准则被达到。
14. 如权利要求2所述的方法,其特征在于g. 通过用于在搜索空间中搜索的每个进程的协调进程,识别所述搜索空间内的至少一个基准搜索状态;以及h. 通过用于在搜索空间中搜索的每个进程的协调进程,识别至少一个距离约 束,所述至少一个距离约束连同所述至少一个基准搜索状态用于在所述搜索空间内选择当前搜索状态;以及i. 其中在所述搜索空间中搜索的每个进程进一步执行权利要求2的(C)至(f);并且当(f)的停止准则被满足时,则j.通过所述协调进程,识别至少一个新的基准状态,并且通过搜索所述搜索 空间的所述进程,使用所述至少一个新的基准状态作为所述至少一个基准状态;k.通过所述协调进程,识别至少一个新的距离约束,所述至少一个新的距离 约束要被在所述搜索空间中搜索的进程连同所述至少一个基准搜索状态用于在所述搜索空间内选择当前搜索状态,并且使用所述至少一个新的距离约束作为所述至 少一个距离约束;以及1.重复上述步骤(i)至(k)直到全局停止准则被达到。
15. 包括执行如权利要求1的方法的可执行指令的计算机可读介质。
16. 其上具有已编码的可执行指令的计算机可读介质,包括a.用于识别为了将搜索空间划分成多个区域的至少一个划分准则的装置,所 述每个区域表示将要由搜索进程搜索的所述搜索空间的一部分,所述至少一个划分 准则的每一个包括至少一个基准搜索状态和至少一个距离约束。
17. 如权利要求16中所述计算机可读介质,其特征在于,还包括基于所述至少一个划分准则识别当前搜索状态的装置。
18. —种用于搜索一搜索空间的系统,包括a. 多个计算资源;b. 在所述多个计算资源的至少一个上执行的多个搜索进程;c. 用于识别至少一个划分准则的至少一个控制进程,所述划分准则包括相对于基准状态的至少一个距离度量;以及d. 每一个都适于基于所述至少一个划分准则来选择当前搜索状态的所述多个 搜索进程。
19. 如权利要求18所述的系统,其特征在于,至少一个搜索进程是所述控制 进程,所述控制进程为所述多个搜索进程中的每一个识别至少一个划分准则,所述 控制进程在所述多个计算资源中的至少一个上执行。
20. 如权利要求18所述的系统,其特征在于,所述距离度量是汉明距离。
全文摘要
划分准则被用来引导或约束为搜索一个问题的解而搜索一搜索空间的搜索进程。为进一步探索搜索空间而对状态的识别通过使用作为划分准则一部分的基准状态和距离约束信息来被引导。多个进程使用相同或不同划分准则来一起搜索搜索空间的相应区域。包括对划分准则进行选择的多个进程的操作由协调或控制进程协调。不同的搜索拓扑通过选择各种划分准则而被实现。
文档编号G06F17/30GK101208693SQ200680022856
公开日2008年6月25日 申请日期2006年6月27日 优先权日2005年6月28日
发明者Y·哈玛迪 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1