一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用基于Q学习的增强学习的扫描链线长度优化的制作方法

2022-04-02 06:15:33 来源:中国专利 TAG:

使用基于q学习的增强学习的扫描链线长度优化
技术领域
1.本公开涉及使用基于q学习的增强学习的扫描链无线优化。


背景技术:

2.本发明总体上涉及计算领域,并且更具体地涉及使用机器学习的扫描链优化。使用扫描链技术可以通过基于所传输的信号集合在集成电路中的每个触发器处提供可控性和可观察性来简化集成电路测试。扫描链优化方法包含通过经受包含总线长度扫描的多个约束的触发器组对扫描链重新排序。锁存器或触发器可分布在多个扫描链之间。


技术实现要素:

3.本发明的实施例公开了一种用于扫描链线长度优化的方法、计算机系统和计算机程序产品。本发明的实施例可以包括从根节点获得根节点细节。本发明的实施例可以包括优化根节点的连接性。本发明的实施例可以包括识别用于每个根节点的最佳开始节点和最佳结束节点。本发明的实施例可以包括优化每个根节点中的子节点。本发明的实施例可以包括确定全行程的线长度比最近邻居更短还是更长。本发明的实施例可包括应用或跳过解决方案。
附图说明
4.本发明的这些和其他目的、特征和优点将从结合附图阅读的其说明性实施例的以下详细描述中变得清楚。附图的各种特征不是按比例的,因为为了清楚起见,附图有助于本领域技术人员结合具体实施方式理解本发明。在附图中:
5.图1示出根据至少一个实施例的联网计算机环境;
6.图2a和2b是描绘了根据至少一个实施例的簇的多个根节点表示的示例的框图;
7.图3a是示出根据至少一个实施例的使用基于q学习的加强学习的扫描链线长度优化的过程的操作流程图;
8.图3b是示出根据至少一个实施例的用于扫描链的优化根节点(optrootnode)和优化子节点(optchildchain)连接性期间的q学习过程的选择动作部分的过程的操作流程图;
9.图3c是示出根据至少一个实施例的用于选择根节点(rootnode)之间的最佳连接的过程的操作流程图;
10.图4是根据至少一个实施例的在图1中描绘的计算机和服务器的内部和外部组件的框图;
11.图5是根据本公开的实施例的包括图1中所描绘的计算机系统的说明性云计算环境的框图;并且
12.图6是根据本公开的实施例的图5的说明性云计算环境的功能层的框图。
具体实施方式
13.本文公开了所要求保护的结构和方法的详细实施例,然而,可以理解,所公开的实施例仅仅是可以以不同形式体现的所要求保护的结构和方法的说明。然而,本发明可以以许多不同的形式体现,并且不应被解释为限于在此阐述的示例性实施例。相反,提供这些示例性实施例使得本公开将是全面和完整的,并且将向本领域技术人员充分地传达本发明的范围。在描述中,可省略众所周知的特征和技术的细节以避免不必要地模糊所呈现的实施例。
14.如前所述,使用扫描链技术可以通过基于所传输的信号集合在集成电路中的每个触发器处提供可控性和可观察性来简化集成电路测试。扫描链优化方法包含通过经受包含总线长度扫描的多个约束的触发器组对所述扫描链重新排序。锁存器或触发器可分布在多个扫描链之间。
15.扫描链优化的一个主要目标是减小扫描链的线长度。减小的线长度增加扫描频率,改进测试时间,并且改进设计路由能力,这导致减小的芯片面积和功率。当前扫描链优化解决方案可以包括使用贪婪方法的方法,所述贪婪方法使用最近邻节点并且然后利用链或节点之间的交换来增强节点。另一种方法包括具有使测试不可行的许多组合的穷举搜索。一些使用遗传算法类型的方法。用于减小线长度的当前扫描链优化排序未并入用于针对减小的线长度对扫描链重新排序的q学习方法。因此,尤其通过使用q学习来重新连接扫描网,创建改进的扫描链线长度优化方法以减少总线长度和功率可能是有利的。
16.以下描述的示范性实施例提供用于扫描链优化的系统、方法和程序产品。照此,本发明的实施例具有通过使用基于q学习的加强学习来优化扫描链线长度来改进扫描链优化的技术领域的能力。更具体来说,可通过整合和使用现有扫描链中的节点的多个排列来识别有效且重新排序的扫描链。扫描链的有效重排序可以使用从先前探索获得的指导学习,并且基于来自每个探索的总链线长度对指导进行加权或奖励。
17.q学习是无模型且离线策略(off policy)的强化学习算法。无模型是指不要求模型执行动作。q学习可具有与随机转换和奖励一起工作并且不需要适配的能力。离线策略可指学习基于当前状态找到最佳动作的算法的能力。q学习功能可基于策略之外的动作(例如,采取随机动作)来学习。强化学习可以指基于奖励或累积奖励采取动作的机器学习领域。
18.锁存器或触发器可分布在多个扫描链之间以最小化每一扫描链中的锁存器的数目,这可直接减少扫描时间,且因此还减少测试时间。基本扫描链结构可以按顺序扫描信号。在寄存器传送级(rtl)设计的扫描链可以具有以随机顺序或以不知道锁存器的物理位置的逻辑顺序分配给扫描链的扫描锁存器。
19.在芯片上确定锁存器位置之后,可在集成电路(ic)的物理设计优化期间运行扫描链优化。在优化期间,第一锁存器的扫描输出串联连接到第二锁存器的扫描输入,从而形成链。总线长度可以被定义为扫描链上的每对锁存器之间的距离的总和。扫描链优化还可限制每一扫描链中的锁存器以减少测试时间。每个扫描锁存器可以被分配给扫描链中的一个。每个锁存器可以发生在扫描链中的任何一个扫描链上一次,并且每个锁存器可以发生在至少一个扫描链上。扫描优化可以指代扫描链通过锁存器的重新连接以减少总线长度和功率。
20.根据实施例,q学习可被用于执行许多迭代以获得最优的q表或可被认为是好的q表的q表。好的q表可以是给定状态的最佳动作的表示。q表可以是查找表,其捕获针对在每个状态的动作的所计算的最大预期未来奖励。在q表的初始化之后,在加强学习期间可以采取包括用于改进q表的多个步骤的许多迭代。迭代步骤可包括例如选择动作、执行该动作、测量结果、量化奖励并随后更新q表。状态和动作的新q值可由new q(s,a)表示。当前q值可由q(s,a)表示。学习速率可以由

表示。在给定状态下采取动作的奖励可由r(s,a)表示。折扣率可以由γ表示。给定新状态的最大预期未来奖励s’和在新状态的所有可能的动作可以由maxq’(s’,a’)表示。表示迭代步骤的等式可以包括,例如,newq(s,a)=q(s,a)

[r(s,a) γmaxq

(s

,a

)-q(s,a)]。
[0021]
根据实施例,基于q学习的加强学习算法可以用于找到用于扫描拼接的连接性。迭代q学习方法可用于扫描链重排序。扫描链重排序可以包括基于锁存器的物理位置重新连接扫描网以减小总扫描线长度。
[0022]
根据实施例,当指导q学习时,测试要求可被纳入作为约束。所述约束可为任何单个扫描链中的总锁存器,且不应超过可测试性(dft)限度的设计。约束还可以是与应被分组在一起的给定本地时钟缓冲器(lcb)集群相关联的锁存器。约束可以另外是被标记为不可优化并且需要照原样保持的某些锁存器的扫描链顺序。最佳扫描链连接性可以被划分成集群间和集群内探索。例如,锁存器节点可分区为群集间(例如,根节点)优化,接着是群集内(例如,子节点)优化。
[0023]
根据实施例,q学习的递归应用可与根节点和子节点一起使用。可以做出与子节点的最优开始点和最优结束点有关的上下文内确定。
[0024]
根据实施例,节点折叠可用于减小状态空间以实现更多迭代和更多探索。使能节点折叠还可以用于支持特定无优化和用于支持可测试性(dft)约束的设计以在本地时钟缓冲器(lcb)集群中将锁存器组保持在一起。
[0025]
根据实施例,可提供零折扣率,因为可从新状态估计所有可能的动作,这可为时间密集且穷尽的。
[0026]
参见图1,描绘了根据一个实施例的示范性联网计算机环境100。联网计算机环境100可以包括具有处理器104和数据存储设备106的计算机102,处理器104和数据存储设备106能够运行软件程序108和扫描链优化程序110a。联网计算机环境100还可以包括服务器112,服务器112能够运行扫描链优化程序110b,扫描链优化程序110b可以与数据库114和通信网络116交互。计算机102还可以被称为客户端计算机,并且服务器112也可以被称为服务器计算机。联网计算机环境100可以包括多个计算机102和服务器112,仅示出了其中之一。通信网络116可包括不同类型的通信网络,诸如广域网(wan)、局域网(lan)、电信网络、无线网络、公共交换网络和/或卫星网络。应了解,图1仅提供一个实施例的说明且并不暗示关于其中可实施不同实施例的环境的任何限制。可以基于设计和实现要求对所描绘的环境进行许多修改。
[0027]
计算机102可以经由通信网络116与服务器112通信。通信网络116可包括连接,诸如有线、无线通信链路或光纤电缆。如将参见图4讨论的,服务器112可以分别包括内部部件902a和外部部件904a,并且计算机102可以分别包括内部部件902b和外部部件904b。服务器112还可在云计算服务模型中操作,诸如软件即服务(saas)、分析即服务(aaas)、块链即服
务(baas)、平台即服务(paas)或基础设施即服务(iaas)。服务器112还可位于云计算部署模型中,诸如私有云、社区云、公共云或混合云。计算机102可以是例如移动设备、电话、个人数字助理、上网本、膝上型计算机、平板计算机、台式计算机、或能够运行程序、访问网络和访问数据库114的任何类型的计算设备。根据本实施例的不同实现,扫描链优化程序110a、110b可以与数据库114交互,该数据库114可以被嵌入在不同存储设备(诸如但不限于计算机/移动设备102、服务器112或云存储服务)中。
[0028]
根据本实施例,使用客户端计算机102或服务器计算机112的用户可以(分别)使用扫描链优化程序110a、110b以使用基于q学习的加强学习来优化扫描链线长度。下面参见图2a-b和3a-c更详细地解释扫描链优化方法。
[0029]
现在参见图2a-2b,描绘了根据至少一个实施例的由扫描链优化程序110a、110b使用的集群的多个根节点表示的示例的框图。
[0030]
在202处,示出具有包括scan_in端口和scan_out端口的一个扫描链的设计的表示。框表示设计中的锁存器集群。例如,存在7个锁存器集群,集群0被定义为不可优化集群。
[0031]
在204处,示出折叠到根节点中的锁存器群集的表示。例如,在202处在簇6中标识的四个锁存器折叠成单个根节点c6。从根节点c0到节点c6的定向边指示从c0到c6的探索的下一个可允许状态。边上的相关联的权重可以包括用于采取从c0至c6的路径的线长度,该线长度是线长度w06。
[0032]
在206处,根节点创建和权重被示出为基于线长度wl(i)的q学习更新的权重或奖励,以有利于最短路径。考虑探索1(wl1)和探索2(wl2),并且将使用探索2(wl2)的路径计算为最短路径的一部分。所计算的最短路径用于更新q表中的权重。
[0033]
在208处,在n次探索之后的根节点解决方案被示出为最终的预测路径,其中基于n次探索来更新权重。最终路径可以是与探索的路径之一相同的路径,或者最终路径可以不同于探索的路径。最终路径可以包括最短线长度路径。
[0034]
现在参见图3a,描绘了示出根据至少一个实施例由扫描链优化程序110a、110b使用的示范性扫描链线长度优化过程200的操作流程图。
[0035]
在302,执行获取根节点细节的操作。从根节点获得的细节可以与根节点的连接性有关。一个或多个根节点可表示例如本地时钟缓冲器(lcb)集群中的一组锁存器、一组不可优化锁存器或独立节点。根节点(rootnode)是需要被约束在一起的锁存器组的折叠表示。可以使用增强学习或q学习来获得根节点的最优连通性。
[0036]
在304,根节点的连接性被优化。根节点的连接性被优化以创建将预测根节点行程(rootnodetour)的根节点数据。根节点行程(rootnodetour)是减少总线长度的根节点的最优连接性。最优q表将用于预测根节点行程(rootnodetour)。可以为每个节点元素矩阵预测根节点tour(rootnodetour)。优化根节点可以包括在304a处初始化q-表以用于初始操作,并且然后执行步骤304b-e的许多迭代。迭代的次数可取决于探索的期望深度而变化。q表的质量可以随着迭代次数的增加而改善。所执行的迭代次数可足以创建最优q表。例如,选择n的值的一个实例是当先前探索尚未返回比先前n-k探索更短的线长度(wl)时选择该值。
[0037]
优化扫描链的根节点(rootnode)细节可以包括利用作为组中的所有(x,y)锁存器坐标的平均值的坐标将锁存器组表示到集群(即,节点)。
[0038]
在304a,初始化q表。可以通过将表中或矩阵中的值设置为零或跨表的所有位置设
置为统一值来初始化q表。该表被表示为状态和该状态下的动作。
[0039]
在304b,选择动作。可以基于节点之间的权重来选择动作,或者可以随机地选择动作。节点之间的权重可以通过集群(即,节点)点之间的距离来测量。例如,输入群集位置可为(xi,yi)且另一群集位置可为(xo,yo),其中表示可包含以及线长度(wl)可以被计算为wl=|xo

xi| |yo

yi|。
[0040]
基于权重选择的动作可等于f(qcurrent,k/distance),其中k为恒定值。qcurrent是q表中的状态、动作对的当前值。基于权重选择的动作可包括选择具有被评估为f(qcurrent,k/distance)的最大权重的节点或从距当前节点最近的n个节点的选择中随机地选择节点。图3b中示出了在优化扫描链的根节点(rootnodes)期间q学习过程的选择动作部分304b的过程。
[0041]
根据替代实施例,根节点内的一组锁存器可以用坐标表示,该坐标是该组中的扫描输入和扫描输出引脚的中点的平均值。
[0042]
在304c,执行动作。可以通过将从步骤304b选择的节点添加到根节点行程(rootnodetour)来执行该动作。可以重复步骤304b和304c的序列直到所有节点已经被添加到根节点行程(rootnodetour)。
[0043]
在304d,测量奖励。在每次探索结束时,通过测量根节点行程(rootnodetour)的总线长度作为评估度量来测量奖励。例如,节点之间的manhattan距离可以用作线长度(wl)测量的度量,并且总线长度(wl)与在先前的行程评估迭代中实现的最佳线长度(wl)进行比较。
[0044]
在304e,更新q表。基于行程线长度更新表。q表更新或q更新可表示为*qnext=(1
‑∝
)qcurrent

(currentwl/globaloptwl γ*下一状态的最大值)。qnext是下一动作或下一状态的动作,

是学习速率,currentwl是qcurrent节点处的当前线长度,γ是折扣速率,并且下一状态的最大值是当前动作的所有下一状态中的q的最大值。
[0045]
在第一实施例中,基于表示为currentwl<k*globaloptwl的每个迭代来更新q表。例如,如果currentwl小于k*globaloptwl,则更新q表。如果currentwl不小于k*globaloptwl,则跳过q表更新。
[0046]
在第二实施例中,基于表示为currentwl<k*globaloptwl的每个迭代来更新q表,并且之前从未更新路径。例如,如果currentwl小于k*globaloptwl,则扫描链优化程序确定该节点是否已经被奖励。如果节点已经被奖励,则q表被更新。如果currentwl不小于k*globaloptwl,则跳过q表更新。
[0047]
步骤304b-304e的顺序可以执行n次以连续地改进q表。在n次迭代或探索之后,通过从第一节点开始并且基于当前q表选择动作直到到达根节点行程(rootnodetour)中的最后节点来选择最佳根节点行程(rootnodetour)。最后的根节点行程(rootnodetour)可以被称为或认为是优化的根节点行程(rootnodetour)。
[0048]
在306,标识最佳开始节点和结束节点。对于每个根节点(rootnode),将最佳开始节点和最佳结束节点标识为最佳开始节点和结束节点之间的最佳连接。对于每个根节点(rootnode),子节点被视为最优子节点行程(childnodetour)的开始节点和结束节点。图3c中可参考用于识别或选择最佳开始节点和结束节点或最佳连接的过程。
[0049]
在308处,优化每个根节点中的子节点。根节点行程(rootnodetour)中的每个节点可以由多个子节点组成。可以优化每个节点以找到该根节点(rootnode)内的最佳行程(optchildchain)。子节点的优化过程可以类似于来自步骤304b-304e的根节点行程(rootnodetour)优化的过程。
[0050]
在每个子节点优化之后,通过从开始节点开始并遍历根节点行程(rootnodetour)来创建全行程。在每个根节点(rootnode),该根节点(rootnode)的经优化的子节点行程(childnodetour)在移动到根节点行程(rootnodetour)中的下一节点之前被附加到全行程(fulltour)。
[0051]
在308a,初始化q表。可以初始化用于每个根节点(rootnode)的新q表,其可以表示该根节点(rootnode)中的每个子节点的当前状态和动作。对于子节点行程(optchildchain)优化,初始化q表包括将表中或矩阵中的值设置成0或设置成跨表的所有位置的统一值。可以执行步骤308b-e的许多迭代以获得高质量q表。不同子节点行程(optchildchain)的优化可以并行地进行以节省运行时间。
[0052]
在308b,选择动作。可基于节点矩阵的固定或最佳开始节点和固定或最佳结束节点确定来选择动作。基于确定根节点(rootnode)内的子节点之间的最小线长度来选择动作。可基于子节点上的引脚位置来计算两个子节点之间的距离。线长度wl可以被计算为wl=|xo

xi| |yo

yi|。基于权重选择的动作可包括选择具有被评估为f(qcurrent,k/distance)的最大权重的节点或从距当前节点最近的n个节点的选择中随机地选择节点。图3b中示出了在优化扫描链的根节点(rootnodes)期间q学习过程的选择动作部分308b的过程。
[0053]
在308c,执行动作。如在步骤304c中那样执行该动作。
[0054]
在308d,测量奖励。如在步骤304d中那样测量奖励。
[0055]
在308e,q表被更新。q表类似于步骤308e被更新,然而,对于q表,q表针对子节点行程(childnodetours)中的每一个被更新。步骤308b-308e的序列可以执行n次以完成全行程(fulltour)。步骤308b-308e的序列可以被执行n次以连续地改进q表。在n次迭代或探索之后,通过从第一节点开始并且基于当前q表选择动作直到到达子节点行程(childnodetour)中的最后节点来选择最佳子节点行程(childnodetour)。步骤和迭代的序列可以导致优化的子节点。
[0056]
如果当前节点是集群节点,则可以优化子节点行程(childnodetour)并将其附加到全行程(fulltour)。为了连接两个集群节点,确定一个集群的最佳结束节点和下一个集群的开始节点。对于每个开始-结束节点选项,q学习过程可从开始节点到结束节点完成。然后,可以识别最佳集群优化链(optchildchain)。附加到全行程(fulltour)的子节点行程(childnodetour)可以表示为将optchildchain附加到fulltour。下一集群的开始节点(optstartnode)可以基于最优结束节点(optendnode)与下一集群节点之间的最小线长度(wl)连接来识别。
[0057]
如果当前节点为独立节点,如开始节点、结束节点或单个节点,则将该独立节点附加到全行程(fulltour)。下一节点可以被设置为与当前节点具有最小线长度(wl)的节点。
[0058]
如果当前节点是不可优化节点,则不可优化节点被附加到全行程(fulltour)的链中。在当前节点等于下一节点的最小线长度(wl)时,可通过从重新连接的结束节点识别下
一节点的最小线长度(wl)来设置下一节点。
[0059]
在310,扫描链优化程序110a、110b确定全行程线长度是否比现有最近邻解决方案短。将从步骤308优化的全行程线长度与来自最近邻解决方案的线长度进行比较。最近邻可以例如是用于求解扫描链优化问题的算法解,其中在每个给定步骤处选择最近邻。
[0060]
如果扫描链优化程序110a、110b确定全行程线长度比最近邻短,则在步骤312应用该解决方案。所应用的解决方案来自基于q学习的全行程(fulltour)。例如,该解决方案是与迄今为止远离所有先前探索的最佳已知全行程线长度相比的全行程线长度。
[0061]
如果扫描链优化程序110a、110b确定全行程线长度不短于最近邻居,则在314跳过当前路径或解决方案。
[0062]
现在参见图3b,描绘了示出根据至少一个实施例的扫描链优化程序110a、110b所使用的q学习优化根节点(optrootnode)和优化子节点(optchildchain)连接性过程304b、308b的示例性选择动作部分的操作流程图。示出了选择动作和下一状态,其中下一状态可以表示为动作=f(qcurrent,k/weight),其中k是常数值,或者动作可以随机选择。
[0063]
在320,扫描链优化程序110a、110b确定该选择是否是随机的。该选择可以指基于探索系数确定所选择的动作是否是随机动作。探索系数可以是从0至1的任何值,其中1是指最大随机性,0是指无随机性。
[0064]
如果扫描链优化程序110a、110b确定该选择不是随机的,则在322选择要访问的节点。要被访问的节点包括在当前探索中尚未被访问的所有节点。
[0065]
在324处,基于当前q值和线长度来计算成功的可能性。q值和节点之间的线长度由q*h计算,其中h是当前节点与每个候选下一节点之间的线长度的函数。
[0066]
在326处,选择具有最大成功可能性的节点。使用q*h计算的结果选择具有最大成功可能性的节点。例如,具有最大值q*h的节点可以被计算为具有最大成功可能性。
[0067]
如果扫描链优化程序110a、110b确定该选择是随机的,则在328找到n个最近的邻居。可以使用n作为在运行期间定义的数目来找到n个最近的邻居。
[0068]
在328处,找到n个最近的邻居。基于邻居的排序距离来找到或识别n个最近的邻居。例如,基于所标识的距当前节点的距离,从最小到最大距离对n个最近邻居距离进行排序。
[0069]
在330,扫描链优化程序110a、110b确定该节点是否已被访问。通过检查所选择的节点是否已经是行程探索的一部分或者在行程探索中被标识,基于节点是否在当前探索中被访问来做出确定。
[0070]
如果扫描链优化程序110a、110b确定该节点在行程中已被访问,则在332选择下一节点。从n个最近的邻居中选择下一个节点作为剩余节点之一。在选择下一个节点之后,扫描链优化程序110a、110b在步骤330确定是否已经在行程中访问了该节点(例如,下一个节点)。
[0071]
如果扫描链优化程序110a、110b确定在行程中没有访问该节点,则在334测量最接近系数。例如,可以利用玻尔兹曼探索来找到最近的邻居的最接近系数。
[0072]
在336,扫描链优化程序110a、110b确定节点是否在限度内。可基于学习过程中所需的探索的深度来确定限度。较小的限度可以将探索限制到邻近的邻居,而较高的限度可以探索邻近的邻居和更远的节点两者。
[0073]
如果扫描链优化程序110a、110b确定该节点不在该限度内,则在332选择下一节点。在选择下一个节点之后,扫描链优化程序110a、110b在步骤330确定是否已经在行程中访问了该节点(例如,下一个节点)。
[0074]
如果扫描链优化程序110a、110b确定该节点在限度内,则在338将该节点添加到选择列表。确定节点在限度内可包括检查接近度系数是否小于预定义或预定阈值。选择列表可以表示在随机探索或充分更靠近当前节点的多个随机探索期间可以被探索的节点。
[0075]
在340处,扫描链优化程序110a、110b确定是否完成了所有邻居。如果已经评估了来自步骤328的所有n个最近的邻居,则完成所有邻居。
[0076]
如果扫描链优化程序110a、110b确定未完成所有邻居,则在332选择下一节点。在选择下一个节点之后,扫描链优化程序110a、110b在步骤330确定是否已经在行程中访问了该节点(例如,下一个节点)。
[0077]
如果扫描链优化程序110a、110b确定所有邻居完成,则从选择列表中选择随机节点。通过从选择列表中随机挑选节点之一来选择随机节点。
[0078]
现在参见图3c,描绘了示出根据至少一个实施例的扫描链优化程序110a、110b所使用的示范性选择根节点(rootnode)之间的最佳连接过程306的操作流程图。
[0079]
在350处,读取或识别根节点行程(rootnodetour)。在步骤304e中更新q表之后,基于q表识别根节点行程(rootnodetour)。
[0080]
在352处,选择根节点行程(rootnodetour)中的第一节点。所选择的第一节点是最优根节点游程上的第一节点。
[0081]
在354处,选择根节点行程(rootnodetour)中的下一节点(例如,第二节点)。第二节点可以设置为距离第一节点q值最大的节点。
[0082]
在356处,计算节点之间的所有可能连接的权重。计算根节点行程(rootnodetour)中第一节点与根节点行程(rootnodetour)中第二节点的子节点之间的所有可能连接的权重。权重可以表示节点之间的线长度(wl)并且可以计算为两个节点之间的距离。如步骤308b所述,wl=|xo

xi| |yo

yi|。
[0083]
在358,选择具有最佳权重的连接。最佳权重或最优权重可以是在集群之间的k个最小线长度(wl)中的随机选择,其中k是小于集群连接性节点的数。k的值越小,对于k=1,探索最佳线长度(wl)和选择贪婪解决方案的机会越小。
[0084]
在360处,将第一节点的子节点设置为结束节点,并且将下一节点的子节点设置为开始节点。第一根节点的子节点被设置为第一根节点的结束节点,下一节点(例如,第二节点)的子节点被设置为下一根节点的开始节点。
[0085]
在362,扫描链优化程序110a、110b确定下一节点是否是根节点行程(rootnodetour)中的最后节点。通过检查在该探索期间是否已经访问了行程中的所有节点,来确定下一个节点是否是根节点行程(rootnodetour)中的最后一个节点。
[0086]
如果扫描链优化程序110a、110b确定下一节点不是行程中的最后节点,则在364,下一节点被设置为第一节点。对于根节点行程(rootnodetour)中的每一对相邻节点,重复识别开始和结束节点的处理。一旦下一个节点被设置为第一节点,将在根节点行程(rootnodetour)中选择下一个相邻节点(例如,第三节点)。例如,如果下一节点是根节点行程(rootnodetour)中的第二节点,则在步骤354选择的下一节点可以是选择的第三节点。
[0087]
如果扫描链优化程序110a、110b确定下一节点是行程中的最后节点,则根节点行程(rootnodetour)的最佳开始-结束节点部分的选择结束。
[0088]
可以理解,图2a-b和3a-c仅提供了一个实施例的图示,而并不暗示关于如何实现不同实施例的任何限制。可以基于设计和实现要求对所描绘的实施例进行许多修改。
[0089]
图4是根据本发明的一个说明性实施例的图1中所描绘的计算机的内部和外部组件的框图900。应了解,图4仅提供一个实施例的说明且并不暗示关于可实施不同实施例的环境的任何限制。可以基于设计和实现要求对所描绘的环境进行许多修改。
[0090]
数据处理系统902、904表示能够执行机器可读程序指令的任何电子设备。数据处理系统902、904可以表示智能电话、计算机系统、pda或其他电子设备。可由数据处理系统902、904表示的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、厚客户端、手持或膝上设备、多处理器系统、基于微处理器的系统、网络pc、小型计算机系统,以及包括任何上述系统或设备的分布式云计算环境。
[0091]
计算机102和服务器112可以包括图4所示的各组内部组件902a、b和外部组件904a、b。每组内部组件902a、902b包括一个或多个处理器906、在一个或多个总线912上的一个或多个计算机可读ram 908和一个或多个计算机可读rom 910、以及一个或多个操作系统914和一个或多个计算机可读有形存储设备916。客户端计算机102中的一个或多个操作系统914、软件程序108和扫描链优化程序110a,以及网络服务器112中的扫描链优化程序110b可存储在一个或多个计算机可读有形存储设备916上,以供一个或多个处理器906经由一个或多个ram 908(其通常包括高速缓冲存储器)来执行。在图4所示的实施例中,计算机可读有形存储设备916中的每一个是内部硬盘驱动器的磁盘存储设备。或者,计算机可读有形存储装置916中的每一者为半导体存储装置,例如rom 910、eprom、快闪存储器或可存储计算机程序和数字信息的任何其他计算机可读有形存储装置。
[0092]
每组内部组件902a、902b还包括r/w驱动器或接口918,用于从诸如cd-rom、dvd、记忆棒、磁带、磁盘、光盘或半导体存储设备的一个或多个便携式计算机可读有形存储设备920读取和向其写入。诸如软件程序108和扫描链优化程序110a、110b之类的软件程序可被存储在相应的便携式计算机可读有形存储设备920中的一个或多个上,经由相应的r/w驱动器或接口918来读取并被加载到相应的硬盘驱动器916中。
[0093]
每组内部组件902a、902b还可包括网络适配器(或交换机端口卡)或接口922,诸如tcp/ip适配器卡、无线wi-fi接口卡或3g/4g/5g无线接口卡或其他有线或无线通信链路。计算机102中的软件程序108和扫描链优化程序110a以及网络服务器112中的扫描链优化程序110b可以经由网络(例如,互联网、局域网或其他广域网)和相应的网络适配器或接口922从外部计算机(例如,服务器)下载。从网络适配器(或交换机端口适配器)或接口922,计算机102中的软件程序108和扫描链优化程序110a以及网络服务器计算机112中的扫描链优化程序110b被加载到相应的硬盘驱动器916中。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
[0094]
各组外部组件904a、904b可以包括计算机显示监视器924、键盘926和计算机鼠标928。外部组件904a、b还可包括触摸屏、虚拟键盘、触摸板、定点设备和其他人机接口设备。各组内部组件902a、902b还包括用于与计算机显示监视器924、键盘926和计算机鼠标928交互的设备驱动器930。设备驱动器930、r/w驱动器或接口918和网络适配器或接口922包括硬
件和软件(存储在存储设备916和/或rom 910中)。
[0095]
预先理解的是,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
[0096]
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便、按需的网络访问,所述可配置计算资源可以用最小的管理努力或与服务提供者的交互来快速配置和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
[0097]
特性如下:
[0098]
按需自助服务:云消费者可按需自动地单方面供应计算能力,诸如服务器时间和网络存储,而无需与服务的提供者的人类交互。
[0099]
广泛的网络接入:能力在网络上是可用的并且通过标准机制来访问,所述标准机制促进由异构的瘦或厚客户端平台(例如,移动电话、膝上型计算机和pda)的使用。
[0100]
资源池化:提供者的计算资源被池化以使用多租户模型服务于多个消费者,其中不同的物理和虚拟资源根据需要被动态地指派和重新指派。存在位置独立性的意义,因为消费者通常对所提供资源的确切位置不具有控制或知识,但可能能够在较高抽象层级(例如,国家、州或数据中心)处指定位置。
[0101]
快速弹性:可以快速且弹性地提供能力(在一些情况下,自动地)以快速缩小并且快速释放以快速放大。对于消费者,可用于供应的能力通常显得不受限制,并且可以在任何时间以任何数量购买。
[0102]
测量的服务:云系统通过利用适于服务类型(例如,存储、处理、带宽和活动用户账户)的某种抽象级别的计量能力来自动控制和优化资源使用。资源使用可以被监控、控制和报告,从而为所利用的服务的提供者和消费者两者提供透明度。
[0103]
业务模型如下:
[0104]
软件即服务(saas):提供给消费者的能力是使用在云基础设施或混合云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从不同客户端设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至个体应用能力的底层云基础结构,可能的例外是有限的用户特定的应用配置设置。
[0105]
平台即服务(paas):向消费者提供的能力是在云基础结构上部署消费者创建或获取的应用,所述应用是使用提供者所支持的编程语言和工具来创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础结构,但是具有对所部署的应用以及可能的应用托管环境配置的控制。
[0106]
分析即服务(aaas):提供给消费者的能力是使用基于web或基于云的网络(即,基础设施)来访问分析平台。分析平台可包括对分析软件资源的访问或者可包括对相关数据库、语料库、服务器、操作系统或存储的访问。消费者不管理或控制底层的基于web的或基于云的基础架构(包括数据库、语料库、服务器、操作系统或存储),但是具有对所部署的应用以及可能的应用托管环境配置的控制。
[0107]
基础设施即服务(iaas):提供给消费者的能力是提供消费者能够部署和运行可包括操作系统和应用的任意软件的处理、存储、网络和其他基本计算资源。消费者不管理或控
制底层云基础结构,而是具有对操作系统、存储、所部署的应用的控制,以及对所选联网组件(例如,主机防火墙)的可能有限的控制。
[0108]
部署模型如下:
[0109]
私有云:云基础结构仅为组织操作。它可由组织或第三方管理,并且可存在于场所内或场所外。
[0110]
社区云:云基础结构由若干组织共享并且支持具有共享的关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可由组织或第三方管理,并且可存在于场所内或场所外。
[0111]
公共云:使云基础结构对公众或大型产业组可用并且由销售云服务的组织拥有。
[0112]
混合云:云基础架构是两个或更多个云(私有、社区或公共的)的组成,这些云保持唯一实体但通过标准化或专有技术来绑定在一起,这些技术实现数据和应用便携性(例如,用于云之间的负载平衡的云突发)。
[0113]
云计算环境是面向服务的,关注于状态、低耦合、模块性和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
[0114]
现在参见图5,描绘了说明性云计算环境1000。如所示出的,云计算环境1000包括一个或多个云计算节点1050,云消费者使用的本地计算设备(诸如例如个人数字助理(pda)或蜂窝电话1000a、台式计算机1000b、膝上型计算机1000c和/或汽车计算机系统1000n)可以与云计算节点1050通信。云计算节点1050可彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境1000提供基础结构、平台和/或软件作为云消费者不需要维护本地计算设备上的资源的服务。应当理解,图5中所示的计算设备1000a-n的类型旨在仅是说明性的,并且计算节点1050和云计算环境1000可以通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备进行通信。
[0115]
现在参见图6,示出了由云计算环境1000提供的一组功能抽象层1100。应预先理解,图6中所示的部件、层和功能旨在仅是说明性的,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
[0116]
硬件和软件层1102包括硬件和软件组件。硬件组件的示例包括:主机1104;基于risc(精简指令集计算机)架构的服务器1106;服务器1108;刀片服务器1110;存储装置1112;以及网络和联网部件1114。在一些实施例中,软件组件包括网络应用服务器软件1116和数据库软件1118。
[0117]
虚拟化层1120提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器1122;虚拟存储1124;虚拟网络1126,包括虚拟专用网络;虚拟应用和操作系统1128;以及虚拟客户端1130。
[0118]
在一个实例中,管理层1132可提供下文所描述的功能。资源供应1134提供计算资源和被用来执行云计算环境内的任务的其他资源的动态获取。计量和定价1136在云计算环境内利用资源时提供成本跟踪,并针对这些资源的消费进行计费或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及对数据和其他资源的保护。用户门户1138为消费者和系统管理员提供对云计算环境的访问。服务级别管理1140提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(sla)计
划和履行1142提供云计算资源的预安排和采购,根据sla预期该云计算资源的未来要求。
[0119]
工作负载层1144提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:映射和导航1146;软件开发和生命周期管理1148;虚拟课堂教育交付1150;数据分析处理1152;事务处理1154;以及扫描链优化1156。扫描链优化程序110a、110b提供了一种使用基于q学习的加强学习来优化扫描链线长的方式。
[0120]
本发明可以是任何可能的集成技术细节水平的系统、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储媒体(或媒体),所述计算机可读程序指令用于致使处理器执行本发明的方面。
[0121]
计算机可读存储媒质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储媒质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储媒质的更具体例子的非穷举列表包括以下:便携式计算机盘,硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存),静态随机存取存储器(sram)、便携式致密盘只读存储器(cd-rom),数字通用盘(dvd)、记忆棒、软盘、机械编码设备(诸如穿孔卡片)或具有记录在其上的指令的凹槽中的凸起结构),以及上述的任意合适的组合。如本文中所使用的计算机可读存储媒质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输媒质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
[0122]
本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储媒质中。
[0123]
用于执行本发明的操作的计算机可读程序指令可以是汇编指令,指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,集成电路的配置数据,或以一种或多种编程语言的任何组合编写的源代码或目标代码,包括面向对象的smalltalk、c 等编程语言,以及过程式编程语言,例如“c”编程语言、python编程语言或类似的编程语言。计算机可读程序指令可完全在用户”的计算机上执行、部分在用户”的计算机上执行、作为独立软件包执行、部分在用户”的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的方面。
[0124]
本文中参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图描述本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
[0125]
这些计算机可读程序指令可以被提供给通用计算机的处理器,专用计算机或其他可编程数据处理装置,以产生机器,其通过计算机或其他可编程数据处理装置的处理器执行,创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机可读程序指令还可存储在可指导计算机的计算机可读存储媒质中,可编程数据处理装置,和/或以特定方式起作用的其他设备,使得具有存储在其中的指令的计算机可读存储媒质包括制品,该制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
[0126]
计算机可读程序指令还可以加载到计算机、其他可编程数据处理装置上,或使得在计算机上执行一系列操作步骤的其他装置,其他可编程装置或其他设备,以产生计算机实现的过程,使得在计算机上执行的指令,其他可编程装置或其他设备实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0127]
附图中的流程图和框图图示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实施例中,框中所标注的功能可以不以图中所标注的次序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,所述基于专用硬件的系统执行指定的功能或动作或执行专用硬件与计算机指令的组合。
[0128]
已经出于说明的目的呈现了本发明的不同实施例的描述,但并不旨在是穷尽性的或局限于所披露的实施例。在不脱离所描述的实施例的范围的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。选择在此使用的术语以最佳地解释实施例的原理、实际应用或在市场上找到的技术上的技术改进,或使得本领域普通技术人员能够理解在此披露的实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献