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

使用因果模型调谐PID参数的制作方法

2021-11-03 21:04:00 来源:中国专利 TAG:

使用因果模型调谐pid参数


背景技术:

1.本说明书涉及控制一个或多个比例积分微分(pid)控制器,并且涉及确定pid控制器的参数与从pid控制器环境接收的环境响应之间的因果关系。
2.用于确定应使用哪些控制设置来控制环境的现有技术通常采用基于建模的技术或依靠系统的主动控制。
3.在基于建模的技术中,系统被动地观察数据,即,控制设置到环境响应的历史映射,并且尝试发现数据中的模式以学习可用于控制环境的模型。基于建模的技术的示例包括决策森林、逻辑回归、支持向量机、神经网络、内核机和贝叶斯分类器。
4.在主动控制技术中,系统依靠对环境的主动控制来进行知识生成和应用。主动控制技术的示例包括随机化受控实验,例如班迪特实验。


技术实现要素:

5.本说明书描述了系统和方法,该系统和方法被实现为一个或多个位置中的一个或多个计算机上的选择用于一个或多个pid控制器的参数的计算机程序。
6.根据第一方面,提供了一种方法,该方法包括重复地执行以下操作:i)基于度量pid参数与在控制所述系统方面的成功的量度之间的因果关系的因果模型,为所述多个pid控制器中的每一个pid控制器选择相应pid参数的配置;ii)确定所述多个pid控制器的相应pid参数的配置在控制所述系统方面的成功的量度;以及iii)基于所述多个pid控制器的相应pid参数的配置在控制所述系统方面的成功的量度,来调整所述因果模型。
7.在一些具体实施中,该方法还包括基于一组内部控制参数,来选择多个pid控制器中的每个pid控制器的相应pid参数的配置,并且基于多个pid控制器的相应pid参数的配置在控制系统方面的成功的量度,来调整内部控制参数。
8.在一些具体实施中,确定多个pid控制器的相应pid参数的配置在控制系统方面的成功的量度包括以下中的一者或多者:测量期望的系统结果与测量的系统结果之间的差异的目标函数;峰值过冲;稳定时间;摆动程度;噪声因子;谐波程度;所述多个pid控制器中的两个或更多个pid控制器之间的相长干涉程度;或所述多个pid控制器中的两个或更多个pid控制器之间的相消干涉程度。在一些具体实施中,测量期望的系统结果与测量的系统结果之间的差异的目标函数是积分平方误差函数。
9.在一些具体实施中,pid参数包括以下中的一者或多者:比例增益参数;积分增益参数;微分增益参数;或所述多个pid控制器中的pid控制器之间的时间延迟。
10.在一些具体实施中,该方法还包括基于因果模型和预先确定的一组外部变量的相应量度,来选择多个pid控制器的相应pid参数的配置,以及调整将预先确定的一组外部变量对选择配置的影响参数化的内部控制参数。在一些具体实施中,预先确定的一组外部变量包括以下中的一者或多者:环境温度;进气温度;进水温度;气流的量度;或太阳负荷的量度。
11.根据第一方面,提供了一种方法,该方法包括重复地执行以下操作:i)基于度量
pid参数与在控制所述系统方面的成功的量度之间的因果关系的因果模型,选择pid参数的配置;ii)确定所述pid参数的配置在控制所述系统方面的成功的量度;以及iii)基于所述pid参数的配置在控制所述系统方面的成功的量度,来调整所述因果模型。
12.在一些具体实施中,该方法还包括基于一组内部控制参数,来选择pid参数的配置,并且基于pid参数的配置在控制系统方面的成功的量度,来调整内部控制参数。
13.在一些具体实施中,pid参数的配置在控制系统方面的成功的量度包括以下中的一者或多者:测量期望的系统结果与测量的系统结果之间的差异的目标函数;峰值过冲;稳定时间;摆动程度;噪声因子;或谐波程度。在一些具体实施中,测量期望的系统结果与测量的系统结果之间的差异的目标函数是积分平方误差函数。
14.在一些具体实施中,pid参数包括以下中的一者或多者:比例增益参数;积分增益参数;微分增益参数;或所述pid控制器的回路之间的时间延迟。
15.在一些具体实施中,该方法还包括基于因果模型和预先确定的一组外部变量的相应量度,来选择pid参数的配置,以及调整将预先确定的一组外部变量对选择配置的影响参数化的内部控制参数。在一些具体实施中,预先确定的一组外部变量包括以下中的一者或多者:环境温度;进气温度;进水温度;气流的量度;或太阳负荷的量度。
16.本说明书中所述的主题的具体实施方案可被实施为实现下述优点中的一者或多者。
17.使用本说明书中所述的方法允许快速改善pid控制器的参数。通过重复地选择不同的参数并测量参数对pid控制器的目标系统的影响,控制系统能够生成因果模型,该因果模型比其它现有技术的控制系统更快速且更准确地建模参数和目标系统之间的因果关系。
18.控制系统还能够考虑不可控制但影响目标系统的环境的特性。因此,因果模型能够针对环境特性的各种配置独立地对参数与目标系统之间的关系进行建模,使得目标系统可不太容易受到那些特性的变化的影响。
19.在一些具体实施中,控制系统可继续操作并使用因果模型来选择pid控制器的参数。因此,该系统能够连续更新因果模型,同时还利用因果模型来优化目标系统上的pid控制。
20.在一些情况下,一组多于一个pid控制器可在同一目标系统上一起操作。为该多于一个pid控制器的组中的每一个选择参数是几乎难以解决的问题。控制系统不仅通过量化给定pid控制器的参数与目标系统之间的直接因果效应,而且通过量化相应pid控制器之间的所有非局部效应来解决该问题。因果模型的连续更新允许在给定其与其他控制器的交互水平的情况下优化相应pid参数。它还允许优化控制器彼此间的相对延迟以响应特定事件。
附图说明
21.图1a示出了选择应用于pid控制器环境的控制设置的控制系统。
22.图1b示出了来自示例性因果模型的数据。
23.图2是用于控制环境的示例性过程的流程图。
24.图3是用于执行环境控制的迭代的示例性过程的流程图。
25.图4a是用于确定程序实例的示例性过程的流程图。
26.图4b示出了包括各自与空间范围相关联的多个物理实体的环境的示例。
27.图5是用于针对一组当前实例选择控制设置的示例性过程的流程图。
28.图6是用于针对给定可控元件和给定类型的环境响应更新因果模型的示例性过程的流程图。
29.图7是用于针对给定可控元件对一组程序实例进行聚类的示例性过程的流程图。
30.图8是用于使用随机变化更新一组内部参数的示例性过程的流程图。
31.图9是用于基于启发法针对给定可控元件更新数据包含值的值的示例性过程的流程图。
32.图10是用于对环境的一个或多个特性的变化作出响应的示例性过程的流程图。
33.图11示出了当限定数据包含的一组内部参数随机变化时环境的给定可控元件的数据包含窗口的表示。
34.图12示出了所述系统在控制环境时的性能相对于使用现有控制方案控制相同环境的系统的性能。
35.图13示出了所述系统的性能相对于多个其它系统在控制多个不同环境时的性能。
36.图14示出了所述系统的性能相对于多个其它系统在控制具有不同时间效应的多个不同环境时的性能。
37.图15示出了所述系统在聚类和不聚类情况下的性能。
38.图16示出了所述系统有能力改变数据包含的性能相对于所述系统在保持数据包含窗口参数固定的同时控制相同环境的性能。
39.图17示出了所述系统在进行和不进行时间分析(即,有能力和没有能力改变时间范围)的情况下的性能。
40.图18示出了所述系统在控制环境时的性能相对于使用现有控制方案(“ucb_lin”)控制相同环境的系统的性能。
41.在各个图中,类似的参考标号和名称表示类似的元件。
具体实施方式
42.本说明书大体描述了一种随着环境改变状态而控制环境的控制系统。特别地,系统控制环境以便确定环境的控制设置和对控制设置的环境响应之间的因果关系。具体地讲,控制系统为在目标系统上操作的一个或多个比例积分微分(pid)控制器选择参数。pid控制器是广泛用于工业控制系统和需要连续调制控制的其他应用中的控制回路机构。包括pid控制器和目标系统的环境提供pid控制器根据需要在控制目标系统的成功方面的量度形式的环境响应。
43.例如,正在针对其确定因果关系的环境响应可包括:(i)反映环境状态的传感器读数或其它环境测量结果,(ii)基于环境测量结果来测量pid控制器的性能的性能度量,例如品质因数或目标函数,或(iii)两者。
44.特别地,控制系统重复地选择控制设置,每个控制设置包括目标系统上操作的一组一个或多个pid控制器中的每个pid控制器的相应pid参数。一般来讲,选择不同的控制设置导致控制系统性能的差异,即,pid控制器在控制目标系统方面的成功的量度的不同值。
45.更具体地,通过重复选择控制设置并度量控制设置对环境的影响,控制系统更新对控制设置与环境响应之间的因果关系进行建模的因果模型,即,更新保持数据,该保持数
据识别pid参数与pid控制器的性能之间的因果关系。
46.虽然因果模型被称为“因果模型”,但是在一些具体实施中,该模型可由多个因果模型组成,每个因果模型对应于环境的不同区段,即,对应于环境的共享某些特性的区段。
47.在一些情况下,单个pid控制器可在目标系统上单独操作。在其他情况下,一组多于一个pid控制器可在同一目标系统上一起操作。该组多于一个pid控制器中的每一者可具有影响区域,并且相应的影响区域可彼此重叠。例如,在单个大型数据中心中可能存在多个pid控制器,其中每个pid控制器控制数据中心的重叠区域。多个pid控制器例如可负责数据中心的热管理,即,将数据中心保持在恒定温度下。在这种情况下,目标系统将是数据中心的hvac系统,并且pid控制器将连续调制hvac系统的设置以确保数据中心的温度不改变,即使外部温度改变或通常将影响数据中心的温度的一些其他事件发生也是如此。
48.为多于一个pid控制器的组中的每一个选择参数(包括选择比例增益参数、积分增益参数、微分增益参数以及其自身与其他pid控制器之间的时间延迟)是几乎难以解决的问题。控制系统不仅通过量化给定pid控制器的参数与在控制目标系统方面的成功的量度之间的直接因果效应,而且通过量化相应pid控制器之间的所有非局部效应来解决该问题。因果模型的连续更新允许在给定其与其他控制器的交互水平的情况下优化相应pid参数。它还允许优化控制器彼此间的相对延迟以响应特定事件。
49.在一些具体实施中,控制系统可继续操作并使用因果模型来选择pid控制器的pid参数。在其它具体实施中,一旦满足某些标准,控制系统就可向外部系统提供因果模型,或者可向用户提供显示在因果模型中识别的因果关系的数据,以用于控制环境。例如,在系统已经控制环境达一定时间量或者已经选择pid参数一定次数之后,可满足标准。又如,当在所保持数据中识别的因果关系满足某些标准时,例如具有不重叠的置信区间时,可满足标准。
50.在更新因果模型的同时,系统基于控制系统的内部参数和环境的特性来重复选择不同的控制设置并测量每个可能控制设置对环境响应的影响。
51.换句话讲,控制系统的内部参数限定以下两者:(i)系统如何更新因果模型,以及(ii)系统在给定当前因果模型的情况下如何确定选择哪些控制设置。在更新因果模型的同时,随着更多的环境响应变得可用于帮助识别因果关系,控制系统还重复调整内部参数中的至少一些内部参数。
52.图1a示出了选择应用于pid控制器环境102的控制设置104的控制系统100。pid控制器环境102包括一组一个或多个pid控制器以及pid控制器正在操作的目标系统。示例性目标系统可以是需要pid控制器进行热管理的数据中心或大型建筑物。许多汽车、火车和飞机还需要可由一个或多个pid控制器控制的热管理。
53.每个控制设置104限定环境102中的pid控制器中的每个pid控制器的pid参数。
54.由控制系统100选择的pid参数可包括比例增益参数、积分增益参数和/或微分增益参数。pid参数还可包括pid控制器组中的两个或更多个pid控制器之间的时间延迟。优化彼此交互的两个pid控制器之间的时间延迟可极大地改善pid控制器的性能。例如,如果第一pid控制器被迫在孤立状态下非常快速地响应,则第一pid控制器可响应于事件而生成大量摆动。然而,如果第一pid控制器与第二pid控制器强烈交互,则两者之间的适当时间延迟可减轻或甚至消除具有第一pid控制器和第二pid控制器之间的相消干涉的那些摆动,同时
保持总体快速响应时间。
55.在操作期间,控制系统100重复选择控制设置104并监测对控制设置104的环境响应130。使用pid控制器组在控制目标系统方面的成功的量度来测量环境响应130。pid控制器的成功的量度可包括测量目标系统的期望结果与测量结果之间的差异的目标函数。例如,如果用于目标系统的热管理的pid控制器具有目标系统的平均温度的期望值,并且实际温度不同,则目标函数将测量所期望平均值与实际平均值之间的差值。
56.pid控制器在控制目标系统上的成功的量度还可包括峰值过冲,该峰值过冲是pid使感兴趣的变量的实值过冲变量的期望值的量;稳定时间,该稳定时间是实际值返回到期望值所花费的时间;和/或在目标系统经历事件之后围绕感兴趣的变量的期望值的摆动程度。事件可以是环境中的将改变感兴趣的变量的值的任何发生,从而导致pid控制器作出反应。成功的量度还可包括噪声因子和谐波程度。如果多于一个pid控制器正在控制目标系统,则pid控制器组的成功的量度可包括两个或更多个pid控制器之间的相长干涉程度、和/或两个或更多个pid控制器之间的相消干涉程度。
57.系统可由选择的成功量度计算性能度量,即,可计算表示系统在控制环境以使控制目标系统的成功最大化方面的性能的单个值。组合系统使用的所有成功量度的示例性能度量是所选成功量度的值的加权和。
58.又如,针对成功量度中的每一个成功量度,性能度量可以是成功量度与成功量度的基线或期望值之间的差值的加权和,即,使得系统试图使成功量度中的每一个成功量度的可接受值之外的偏差最小化。此类性能度量的另一个示例是以下函数的加权和:针对成功量度中的每一个成功量度,如果成功量度在可接受的范围内,则函数为零,并且如果成功量度在可接受的范围之外,则函数等于从成功量度到可接受范围的最近端点的距离。
59.系统100还监测环境102的特性140。一般来讲,特性140可包括表征环境的任何数据,该数据可修改控制设置104对环境响应130的影响,但在控制设置中未被考虑,即,不能够由控制系统100控制。
60.示例性环境特性140可包括环境温度、进气温度、进水温度、气流的量度或太阳能负载的量度。这些是必须由控制系统100考虑但不能改变的特性。
61.系统100使用环境响应130来更新因果模型110,该因果模型对控制设置和环境响应之间的因果关系进行建模,即,对不同元件的不同设置如何影响环境响应的值进行建模。
62.特别地,针对每个pid参数并且针对每种不同类型的环境响应,因果模型110测量pid参数的不同可能设置对环境响应的因果效应以及系统关于可能设置的因果效应的当前不确定性水平。
63.作为特定示例,针对给定pid参数的每个不同的可能设置并且针对每种不同类型的环境响应,因果模型110可包括:影响测量结果,该影响测量结果表示可能设置相对于pid参数的其它可能设置对环境响应的影响,例如,可能设置的真实平均效应的平均估计值;以及影响测量结果的置信区间,例如95%置信区间,该置信区间表示关于因果效应的当前系统不确定性水平。
64.在开始控制环境102之前,控制系统100接收外部输入106。外部输入106可包括由控制系统100从多种源中的任一源接收的数据。例如,外部输入106可包括从系统的用户接收的数据、由先前控制环境102的另一个控制系统生成的数据、由机器学习模型生成的数
据、或这些数据的某种组合。
65.一般来讲,外部输入106至少指定(i)环境102的pid控制器的参数的设置的初始可能值和(ii)控制系统100在操作期间追踪的环境响应。
66.例如,外部输入106可指定控制系统100需要追踪:环境的某些传感器的测量结果、系统100在控制环境时要优化的从某些传感器测量结果得出的性能度量(即,品质因数或其它目标函数)、或两者。
67.控制系统100使用外部输入106来生成pid参数的初始可能设置值上的初始概率分布(“基线概率分布”)。通过使用外部输入106初始化这些基线概率分布,系统100确保选择以下设置,这些设置不违反由外部数据106强加的任何约束,并且如果系统100的用户需要,这些设置不偏离已经用于控制环境102的控制设置的历史范围。例如,如果存在已知为不安全的pid参数的某些范围,例如导致目标系统的过热,则外部数据106可以限定那些范围,使得控制系统决不选择不安全范围内的控制设置。
68.控制系统100还使用外部输入106来初始化一组内部参数120,即,将基线值分配给该组内部参数。一般来讲,内部参数120限定系统100在给定当前因果模型110的情况下(即,在给定已由系统100确定的当前因果关系和关于当前因果关系的系统不确定性的情况下)如何选择控制设置。内部参数120还限定系统100如何使用所接收的环境响应130来更新因果模型110。
69.如将在下文更详细地描述的,在更新因果模型110的同时,系统100更新内部参数120中的至少一些内部参数。即,虽然内部参数120中的一些内部参数在系统100的操作期间可固定为初始化基线值,但系统100在操作期间重复调整内部参数120中的其它内部参数,以便允许系统更有效地测量并且在一些情况下利用因果关系。
70.特别地,为了控制环境,在操作期间,系统100基于内部参数120重复识别环境内的程序实例。
71.每个程序实例是环境内与时间窗口相关联的一个或多个实体的集合。环境内的实体是环境的子集,即,适当的子集或不适当的子集。特别地,实体是可针对其获得环境响应并且所应用的控制设置可对其造成影响的环境的子集。
72.例如,当环境包括可从其获得传感器测量结果的多个物理实体时,给定程序实例可包括一组控制设置将应用到的物理实体的适当子集。环境内的实体可被划分成的子集的数量由内部参数120限定。
73.特别地,系统100如何在系统操作期间的任何给定时间将实体划分成子集由限定由系统应用于实例的控制设置的空间范围的内部参数限定。实例的空间范围识别分配给实例的环境的子集,即,使得从该子集获得的环境响应将与实例相关联。
74.例如,程序实例可包括数据中心的区域和在该区域上操作的一个或多个pid控制器;这里,空间范围可以限定程序实例中pid控制器的区域和数量。系统100可从数据中心的区域获得对程序实例中pid控制器的参数的环境响应。
75.与任何给定程序实例中的实体相关联的时间窗口的长度也由内部参数120限定。特别地,系统分配给任何给定程序实例的时间窗口由限定由系统应用的控制设置的时间范围的内部参数限定。这个时间窗口(即,实例的时间范围)限定系统100将确定的哪些未来环境响应是由针对程序实例选择的控制设置引起的。
76.因为内部参数120在系统100的操作期间改变,由系统100生成的实例也可改变。即,当系统改变内部参数120时,系统可修改如何识别程序实例。修改程序实例的参数的能力对于给定程序实例的时间范围是特别重要的,因为通常情况是真实时间范围,即控制设置的变化的影响将可通过环境响应多快地测量,在开始时将是未知的。即,在系统操作开始时,被分配给pid的参数与对目标系统具有影响的参数之间的真实时间延迟通常是控制系统不知道的。通过改变时间范围,系统可识别最可能的时间延迟,并且更有效地识别目标系统的哪些方面受到每个pid参数的变化的影响。
77.然后,系统100基于内部参数120并且在一些情况下基于环境特性140,来选择每个实例的设置。
78.在一些情况下,即,当系统100探索可能设置的空间时,系统100基于基线概率分布,来选择所有实例。
79.在其它情况下,即,当系统100正在利用已确定的因果关系来优化目标函数时,系统100使用当前因果模型110选择一些实例(“混合实例”)的设置,同时继续基于基线概率分布选择其它实例(“基线实例”)的设置。更具体地,在系统100的操作期间的任何给定时间,内部参数120限定混合实例相对于实例总数的比例。
80.针对每个实例,系统100还基于内部参数120确定哪些环境响应130将与该实例相关联,即,用于更新因果模型110。
81.然后,系统100设定实例中的每个实例的设置104,并且监测对针对这些实例选择的设置的环境响应130。系统100将环境响应130映射到每个实例的影响测量结果,并且使用影响测量结果来确定用于更新当前因果模型110的因果模型更新150。
82.特别地,系统基于内部参数120确定因果模型110应考虑哪些历史程序实例(以及与实例相关联的环境响应130),并且仅基于这些确定的历史程序实例来确定因果模型更新150。因果模型110考虑哪些历史程序实例由限定数据包含窗口的一组内部参数120确定。数据包含窗口在任何给定时间指定一个或多个历史时间窗口,其间必须已经发生程序实例,以便因果模型110考虑针对该程序实例的结果,即,与该程序实例相关联的环境响应130。
83.针对系统100正在改变的那些内部参数,系统100还基于因果模型110周期性地更新160由系统100针对那些内部参数保持的数据。换句话讲,当因果模型110在系统100的操作期间改变时,系统100还更新内部参数120以反映因果模型110的改变。在系统100分配一些控制设置以利用当前因果模型110的情况下,系统100还可使用“混合”实例的系统性能和“基线”实例的系统性能之间的差异来确定内部参数更新160。
84.图1b示出了来自示例性因果模型的数据。特别地,在图1b的示例中,因果模型被表示为图表180,该图表在x轴上示出控制设置(即,不同可控元件的不同可能设置)并且在y轴上示出控制设置的因果效应。特别地,针对每个可控元件的每个可能设置,因果模型描绘了影响测量结果和该影响测量结果周围的置信区间。
85.元件特定的图表190中针对特定可控元件192更详细地示出了这些因果关系。元件特定的图表190示出了针对可控元件192存在五个可能设置,其中可能设置在图表190中被称为水平。针对五个设置中的每个设置,图表包括表示影响测量结果的条和条周围的置信区间的表示(作为影响测量结果周围的误差条)。因此,针对可控元件的任何给定设置的因果模型中的信息包括影响测量结果和该影响测量结果周围的置信区间。例如,针对第二设
置192(在图中表示为iv

lv2),图表190示出:柱194,该柱指示第二设置的影响测量结果;柱194的顶部上方的上部条196,该上部条示出第二设置的置信区间的上限;以及柱194的顶部下方的下部条198,该下部条示出第二设置的置信区间的下限。
86.虽然图1b示出单个因果模型,但是从下文的描述中应当理解,系统可针对任何给定可控元件保持和更新多个不同的因果模型—每个程序实例集群一个因果模型。
87.图2是用于控制环境的示例性过程200的流程图。为了方便起见,过程200将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当编程的控制系统(例如,图1的控制系统100)可执行过程200。
88.系统将基线值分配给一组内部参数并将基线概率分布分配给环境的可控元件中的每个可控元件(步骤202)。
89.特别地,系统接收例如来自系统的用户的外部数据或从另一个系统先前对系统环境进行的控制得出的数据,然后使用外部数据来分配基线值并生成概率分布。一般来讲,外部数据指定系统在控制环境时在其内操作的初始约束。
90.特别地,外部数据识别环境中的可控元件中的每个可控元件的可能控制设置。即,针对环境中的可控元件中的每个可控元件,外部数据识别系统在控制该系统时可针对该可控元件选择哪些可能设置。
91.在一些情况下,外部数据可指定对可能控制设置的附加约束,例如,某些可控元件的设置取决于其它可控元件的设置,或者某些实体可仅与给定可控元件的可能控制设置的某个子集相关联。
92.因此,外部数据限定系统在控制环境时可探索的控制设置的可能组合的搜索空间。
93.在一些具体实施中,这些约束可在系统的操作期间改变。
94.例如,系统可接收附加外部输入,这些附加外部输入修改可控元件中的一个或多个可控元件的可能控制设置或空间范围和时间范围的值的范围。
95.又如,如果系统确定可控元件中的一个可控元件或内部参数中的一个内部参数的最优设置接近由外部约束限定的搜索空间的边界,例如,如果因果模型中的影响测量结果指示最优设置是最靠近搜索空间的边界之一的那些设置,则系统可例如从系统管理员或系统的其它用户寻求授权以扩展可控元件或内部参数的可能值的空间。
96.又如,如果外部数据指定一些可控元件的可能设置可以是连续范围内的任何值,则系统初始地可以一种方式离散化该范围,然后一旦置信区间足够强地指示最优值在连续范围的一个区段中,就修改离散化以有利于该区段。
97.又如,如果系统确定某个可控元件对环境响应没有因果效应,例如,如果可控元件的所有可能设置的影响测量结果全部可能为零,则系统可寻求授权以去除可控元件,使其不受系统控制。
98.然后,系统生成环境的可控元件中的每个可控元件的可能控制设置上的基线(或“先验”)概率分布。例如,当外部数据仅指定给定可控元件的可能值并且不将优先级分配给可能值中的任一值时,系统可生成可能值上的均匀概率分布,该概率分布将相等概率分配给每个可能值。又如,当外部数据例如基于控制环境的历史结果使给定可控元件的某些设置优先于其它设置时,系统可生成将较高概率分配给优先化设置的概率分布。
99.系统还将基线值分配给系统的内部参数中的每个内部参数。特别地,系统的内部参数包括(i)限定由系统生成的程序实例的空间范围的一组内部参数(称为“空间范围参数”)和(ii)限定由系统生成的程序实例的时间范围的一组内部参数(称为“空间范围参数”)。
100.在系统包括多个实体的一些情况下,系统可针对多个实体中的每个实体保持多组单独的空间范围参数和时间范围参数。在系统包括多个实体的其它情况下,系统仅保持应用于所有多个实体的单组空间和时间范围参数。在系统包括多个实体的其它情况下,系统初始地保持单组空间和时间范围参数,并且在系统的操作期间,可切换成保持一组单独的空间范围或时间范围参数,如果这样做导致系统性能改善的话,即,如果不同实体以与其它实体不同的方式对控制设置作出响应的话。
101.另外,在一些具体实施中,系统针对不同的可控元件保持多组单独的时间范围参数。
102.系统还保持(iii)限定系统所使用的数据包含窗口的一组内部参数(称为“数据包含窗口参数”)。在一些具体实施中,系统保持应用于所有可控元件的单组数据包含窗口参数。在一些其它具体实施中,系统针对环境的每个可控元件保持一组单独的数据包含窗口参数,即,以允许系统在更新因果模型时针对不同的可控元件使用不同的数据包含窗口。如将在下文更详细地描述的,在系统已将程序实例聚类到多于一个集群中的情况下,系统可(a)每集群保持一组单独的数据包含窗口参数,或者(b)每集群和每可控元件保持一组单独的数据包含窗口参数,即,使得不同的集群可针对同一可控元件使用不同的数据包含窗口。
103.在系统利用因果模型的具体实施中,内部参数还包括(iv)限定混合实例与基线实例的比率的一组内部参数(称为“比率参数”)。在一些具体实施中,系统保持应用于所有可控元件的单组比率参数。在一些其它具体实施中,系统针对环境的每个可控元件保持一组单独的比率参数,即,以允许系统在选择控制设置时针对不同的可控元件使用不同的比率。如将在下文更详细地描述的,在系统已将程序实例聚类到多于一个集群中的情况下,系统可(a)继续跨所有集群保持单组比率参数,(b)每集群保持一组单独的比率参数,或(c)每集群和每可控元件保持一组单独的比率参数,即,使得在针对同一可控元件选择控制设置时,不同的集群可使用不同的比率。
104.在系统将实例聚类到多个集群中的具体实施中,如下文将描述的,内部参数还包括(v)限定当前聚类策略的一组内部参数(称为“聚类参数”)。
105.一般来讲,聚类参数是系统使用的聚类技术的超参数或限定这些超参数。此类超参数的示例包括每个集群的集群大小,即,每个集群中的程序实例的数量,以及用于对程序实例进行聚类的环境特性。
106.系统针对每个可控元件保持一组聚类参数。即,针对每个可控元件,系统在应用聚类技术来针对该可控元件生成程序实例的集群时使用不同的超参数。
107.内部参数还可任选地包括影响控制系统的操作的多种其它内部参数中的任一内部参数。例如,内部参数还可包括限定如何更新因果模型的一组内部参数(例如,一组权重,每个权重表示每个环境特性在程序实例之间的倾向匹配期间的相对重要性,其可用于计算d评分,如下所述)。
108.如上所述,系统在操作期间改变这些内部参数中的至少一些内部参数。
109.针对系统在控制环境时改变的一组内部参数中的每个内部参数,系统可使用(i)基于启发法的方法、(ii)通过对值进行随机采样以优化内部参数的品质因数或(iii)两者来改变值。
110.针对仅基于启发法改变的任何多组内部参数,系统保持内部参数的单个值,并且基于启发法重复调整该单个值。
111.针对通过随机采样改变的任何多组内部参数,系统保持限定内部参数的可能值的范围的参数,并且保持识别内部参数的可能值和内部参数的品质因数之间的因果关系的因果模型。内部参数的品质因数可与在针对控制设置的因果模型中使用的性能度量不同。针对任何给定时间的实例中的至少一些实例,系统然后基于当前因果模型从可能值的范围内选择值。
112.当系统除了通过随机采样之外还使用启发法来更新一组内部参数时,系统可使用启发法更新可能值的范围。即,通过基于启发法的方法更新可能值的范围,而通过随机采样更新在任何给定时间针对该范围内的值的因果模型。
113.针对系统在控制环境时不会改变的任何内部参数,系统可保持固定的值范围和固定的值范围上的固定的概率分布,或者可保持一直是在系统的操作期间使用的值的固定的单个值。
114.根据外部数据中包括的内容,系统向每个内部参数分配基线值,该基线值是从外部数据得出的或者是默认值。
115.例如,外部数据通常识别空间范围和时间范围的值的范围。例如,当空间范围不是固定的并且是可由系统改变的内部参数时,外部数据可指定空间范围的最小值和最大值。类似地,当时间范围不是固定的并且是可由系统改变的内部参数时,外部数据可指定时间范围的最小值和最大值。
116.然后,系统使用外部数据来:将初始值分配给空间范围参数,使得这些参数限定在外部数据中指定的值范围;并且将初始值分配给时间范围参数,使得这些参数限定在外部数据中指定的值范围。
117.针对其它内部参数,系统分配默认值。例如,系统可初始化聚类参数以指示集群的数量为1,即,使得在控制环境开始时不存在聚类,并且可初始化比率参数以指示不存在混合实例,即,使得系统仅在控制环境开始时探索。系统还可初始化数据包含窗口参数以指示数据包含窗口包括已经完成的所有历史程序实例。
118.系统执行发起阶段(步骤204)。在发起阶段期间,系统基于可控元件的基线概率分布来针对程序实例选择控制设置,并且使用环境响应来更新因果模型。即,只要没有提供历史因果模型作为外部数据的一部分,系统在确定哪些控制设置要分配给程序实例时就不考虑当前因果模型。
119.相反,系统根据分配方案使用基线概率分布来选择控制设置,该分配方案允许稍后有效地计算影响测量结果,即d评分。换句话讲,分配方案以考虑到系统用于计算影响测量结果的成块方案的方式选择控制设置,即,将控制设置分配给允许稍后识别成块群组的不同程序实例,以便计算成块群组之间的影响测量结果。系统采用的成块方案(以及相应地,分配方案)可以是减少不同控制设置之间的原因不明的可变性的多种方案中的任一种方案。系统可采用的成块方案的示例包括双盲分配、成对分配、拉丁方分配、倾向匹配等中
的一者或多者。一般来讲,系统可使用基于程序实例中的实体的当前环境特性将程序实例分配到成块群组的任何适当的成块方案。
120.当空间范围和时间范围中的一者或两者可由系统改变时,系统在初始化阶段期间改变空间范围参数、时间范围参数或两者,使得更可能选择更可能导致充分正交的程序实例的空间范围和时间范围的值。如果应用于实例群组中的实例中的一个实例的控制设置不影响与该群组中的其它实例中的任一实例相关联的环境响应,则该群组被认为是正交的。
121.下文参考图3更详细地描述在处于初始化阶段时选择控制设置并更新因果模型。下文结合图11更详细地描述改变空间或时间范围参数。
122.在一些具体实施中,系统在系统的整个操作过程中在该初始化阶段中继续。即,系统继续探索可能控制设置的空间并且在因果模型中编译探索的结果。
123.例如,当系统关于多个不同的环境响应而不是关于单个品质因数或目标函数来更新因果模型时,即,当系统不具有在利用因果模型时要使用的品质因数或目标函数时,系统可在该初始化阶段中继续。
124.在这些具体实施中的一些具体实施中,系统继续探索可能控制设置的空间,同时还基于因果模型,来调整多组初始参数中的某些初始参数,例如,空间范围参数、时间范围参数、数据包含窗口参数、聚类参数等。
125.在一些其它具体实施中,一旦系统确定满足某些标准,系统就开始执行不同阶段。在这些具体实施中,在初始化阶段期间,系统将内部参数中的某些内部参数保持为固定的。例如,系统可将数据包含窗口参数保持为固定的,以指示所有历史实例应并入因果模型中。又如,系统可将聚类内部参数保持为固定的,以指示不应执行聚类。
126.特别地,在这些其它具体实施中,一旦系统确定满足标准,系统就可开始执行利用阶段(步骤206)。
127.例如,一旦已针对其收集环境响应的程序实例的量超过阈值,系统就可开始执行利用阶段。作为特定示例,当此类程序实例的总数超过阈值时,系统可确定满足阈值。作为另一个特定示例,当与任何可控元件的任何一个可能设置相关联的环境响应的最小数量超过阈值时,系统可确定满足阈值。
128.另外,在一些情况下,系统不采用初始化阶段,并且立即进行到利用阶段,即,不执行步骤204。
129.当使用阈值时,系统能够以多种方式中的任一种方式确定阈值。
130.例如,当已针对足够的实例收集了环境响应,使得基于因果模型针对实例分配设置导致不同的设置具有不同的被选择可能性时,系统可确定满足阈值。下文参考图5更详细地描述如何基于因果模型来分配可能性。
131.又如,系统可确定阈值是系统执行以确定置信区间的统计检验产生准确的置信区间所需的程序实例的数量,即,满足置信计算的统计假设的程序实例的数量。
132.又如,系统可确定阈值等于使因果模型产生期望统计功效(即,如通过功效分析所确定)所需的程序实例的数量。
133.在利用阶段期间,系统基于当前因果模型针对程序实例中的一些程序实例选择控制设置,同时继续基于内部参数的基线值针对其它程序实例选择控制设置。
134.特别地,系统改变比率内部参数,使得多少程序实例应为混合实例(即,基于因果
模型针对其分配控制设置的实例)和多少程序实例应为基线实例(即,基于基线概率分布针对其分配控制设置的实例)之间的比率大于零。
135.因为系统在利用阶段期间开始将某些实例指定为混合实例,所以系统可开始使用混合实例和探索实例之间的系统性能差异来调整内部参数(例如,比率内部参数、数据包含窗口参数等)的值。
136.下文参考图3更详细地描述在处于利用阶段时选择控制设置、更新因果模型并更新内部参数。
137.在一些具体实施中,一旦系统确定满足某些标准,系统就开始聚类阶段(步骤208)。即,如果系统被配置为对程序实例进行聚类,则一旦满足聚类的标准,系统就开始聚类阶段。如果系统未被配置为对实例进行聚类,则在系统的操作期间的任何时刻,系统都不对程序实例进行聚类。
138.一般来讲,系统考虑聚类以创建类似程序实例的亚群体。在现实世界的情况下,跨群体的不同程序实例可对不同的控制设置以不同的方式作出响应。一个程序实例的最优控制设置对于另一个程序实例可能是次优的。这些差异可能影响跨实例所见的性能度量的分布。如果针对整个群体选择一个控制设置,则可导致对总体效用(即,系统的总体性能)的不利影响。为了最大化跨整个群体的总体效用,系统可将实例聚类到亚群体中,从而考虑它们的个体特性(在它们的环境特性中建模)和它们的反馈特性(在针对控制设置接收的性能度量中建模)。系统在这些亚群体的水平上选择控制设置。
139.根据具体实施和标准,系统可在初始化阶段期间或在利用阶段期间开始聚类阶段。即,尽管图2指示聚类是步骤208,而初始化阶段和利用阶段分别是步骤204和206,但聚类阶段与初始化阶段、利用阶段或两者重叠。
140.在聚类阶段期间,在将控制设置分配给程序实例之前,系统基于聚类内部参数的当前值并且基于程序实例的特性将程序实例聚类到集群中。如上所述,任何给定可控元件的聚类内部参数限定将用于针对该可控元件进行聚类的聚类技术的超参数。
141.一旦系统已在任何给定时间开始聚类阶段,系统就针对每个集群保持单独的因果模型。即,系统识别每个集群内的单独的因果关系。如上所述,系统还可针对每个集群的内部参数中的至少一些内部参数保持多组单独的内部参数。
142.下文的描述将大体描述每集群和每可控元件保持多组单独的比率参数和数据包含窗口参数。然而,应当理解,当系统每集群仅保持单组某种类型的参数时,所述计算针对每个集群仅需要执行一次,并且单次计算的结果可用于该集群的每个可控元件。类似地,当系统针对所有集群仅保持单组某种类型的参数时,所述计算仅需要执行一次,并且单次计算的结果可用于所有集群中的所有可控元件。
143.在利用阶段期间,一旦已发起聚类,则在给定集群内,系统基于当前因果模型针对该集群中的程序实例中的一些程序实例选择控制设置,同时继续基于内部参数的基线值针对其它程序实例选择控制设置。
144.系统可采用多种标准中的任一种标准来确定何时开始聚类,即,确定聚类内部参数何时可开始从基线值变化,这些基线值指示集群的总数必须设置为1。
145.例如,一种标准可包括:已收集了足够的环境响应,例如,一旦已收集的环境响应的量超过阈值。作为特定示例,当环境响应的总数超过阈值时,系统可确定满足阈值。作为
另一个特定示例,当与任何可控元件的任何一个可能设置相关联的环境响应的最小数量超过阈值时,系统可确定满足阈值。
146.又如,另一种标准可指定:一旦系统已确定,针对可控元件中的任一可控元件,不同的环境特性不同地影响该可控元件的不同控制设置的因果效应,系统就可开始聚类。作为特定示例,此标准可指定:系统可在任何可控元件的d评分分布在任何两个程序实例之间有统计学差异时开始聚类,即,仅基于一个程序实例的环境响应的因果模型中的d评分分布与仅基于另一个程序实例的环境响应的因果模型中的d评分分布有统计学差异(即,在统计显著性的阈值水平上)。
147.下文参考图3更详细地描述在处于聚类阶段时选择控制设置、更新因果模型并更新内部参数。
148.图3是用于执行环境控制的迭代的示例性过程300的流程图。为了方便起见,过程300将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当编程的控制系统(例如,图1的控制系统100)可执行过程300。
149.系统可重复执行过程300以更新因果模型,该因果模型测量控制设置和环境响应之间的因果关系。
150.系统基于当前内部参数确定一组当前程序实例(步骤302)。如将在下文中参考图4a更详细地描述的,系统基于当前内部参数来确定空间范围和时间范围,例如基于不同的空间范围和时间范围导致正交的实例的可能性,然后基于空间范围和时间范围来生成当前程序实例。
151.如上所述,每个程序实例是环境内的一个或多个实体的集合并且与时间窗口相关联。如下文更详细地描述的,与给定程序实例相关联的时间窗口限定系统将哪些环境响应归因于程序实例或使哪些环境响应与程序实例相关联。
152.在一些情况下,针对每个可控元件,系统还作为与可控元件相关联的时间窗口的比例(例如,整个时间窗口、时间窗口的第一四分之一、或时间窗口的第一半部)确定针对可控元件选择的设置将应用多长时间。一般来讲,应用设置的持续时间可固定为与时间窗口无关的值,可以是时间窗口的固定比例,或者时间窗口的比例可以是由系统改变的内部参数。
153.下文参考图4a更详细地描述确定一组当前程序实例。
154.在环境仅包括单个物理实体的情况下,该组当前实例可包含仅一个实例。另选地,系统可识别多个当前实例,其中每个当前实例包括单个物理实体,但在时间上是分开的,即,分开至少该实体的时间范围。
155.系统针对每个当前实例分配控制设置(步骤304)。系统针对任何给定实例分配控制设置的方式取决于系统当前正在执行哪个控制阶段。
156.如上所述,在控制环境开始时,即,在足够的信息可用于以任何置信度确定因果关系之前,系统在初始化阶段中操作。在初始化阶段中,系统在不考虑当前因果模型的情况下针对实例选择控制设置,即,系统探索可能控制设置的空间。即,系统根据每个可控元件的可能控制设置上的基线概率分布来针对实例选择控制设置。
157.在一些具体实施中,在初始化阶段期间,系统改变确定程序实例的空间范围、时间范围或两者的内部参数,以便识别空间范围和时间范围的每个可能值导致彼此正交的实例
的可能性。
158.如上所述,在一些具体实施中,该组控制阶段仅包括初始化阶段,并且系统继续始终在该发起阶段中操作,即,继续探索可能控制设置的空间,同时编译环境响应以便更新因果模型。
159.在一些其它具体实施中,一旦满足某些标准,系统就转入利用阶段。在利用阶段中,系统基于当前因果模型针对当前实例中的一些实例选择控制设置,即,以利用因果模型中当前反映的因果关系,同时继续基于内部参数的基线值针对当前实例中的其它实例选择控制设置。
160.另外,在一些具体实施中,在初始化阶段或利用阶段期间,系统开始执行聚类。
161.当执行聚类时,系统将程序实例聚类到集群中。在每个集群内,系统如上所述独立地进行。
162.即,在初始化阶段期间,系统独立地在每个集群内使用基线分布来选择设置,而在利用阶段期间,系统独立地在每个集群内基于当前因果模型针对当前实例中的一些实例分配控制设置,同时继续独立地在每个集群内基于内部参数的基线值针对当前实例中的其它实例选择控制设置。
163.通过执行聚类,系统能够基于(i)设置对环境响应的影响和实例的环境特性(例如,不能由控制系统操纵的实例的属性)之间的因素交互作用、(ii)不同自变量的因素交互作用、或(iii)两者来有条件地分配控制设置。
164.下文参考图5更详细地描述在进行和不进行聚类的情况下在利用阶段中选择控制设置。
165.系统获得程序实例中的每个程序实例的环境响应(步骤306)。
166.特别地,系统监测环境响应,并且基于与每个程序实例相关联的时间窗口来确定哪些环境响应归因于哪个当前实例。
167.更具体地,针对每个程序实例,系统使(i)对应于程序实例中的实体并且(ii)在与程序实例相关联的时间窗口的某一部分期间接收到的每个环境响应与程序实例相关联。作为特定示例,为了限制来自先前控制设置分配的残留效应,系统可使对应于实例中的实体并且在时间窗口开始之后超过阈值持续时间的时间内(例如,在时间窗口的第二半部、时间窗口的最后三分之一或时间窗口的最后四分之一期间)接收到的每个环境响应与程序实例相关联。在一些具体实施中,该阈值持续时间是固定的。在其它具体实施中,系统保持限定该阈值持续时间的一组内部参数,并且在系统的操作期间改变持续时间。
168.系统基于获得的环境响应来更新因果模型(步骤308)。下文参考图6更详细地描述更新因果模型。
169.系统基于系统的当前性能(即,如更新后的因果模型中所反映)、相对于系统的基线性能、或两者来更新内部参数中的至少一些内部参数(步骤310)。
170.特别地,系统可基于基于启发法的方法、通过随机变化、或两者来更新多组内部参数中的任一组。基于启发法的方法可包括从以下中的一者或多者得出的启发法:更新后的因果模型、相对于系统基线性能的系统当前性能、或使用先验统计分析确定的标准。
171.换句话讲,针对系统能够改变的每组内部参数,系统可使用上述技术中的一种或多种技术来更新该组内部参数,以允许系统更准确地测量因果关系。
172.在一些情况下,即使系统能够改变内部参数,系统也将某些组内部参数约束为固定的。例如,系统可在初始化阶段期间固定数据包含窗口参数和聚类参数。又如,系统可固定聚类参数,直到满足某些标准,然后在已满足标准之后在利用阶段期间开始改变处于系统控制下的所有内部参数。
173.下文参考图8至图12更详细地描述更新一组内部参数。
174.一般来讲,系统能够以与步骤308不同的频率执行步骤302至306,并且以与步骤302至306和步骤310两者不同的频率执行步骤310。例如,系统可针对所执行的步骤308的每次迭代执行步骤302至306的多次迭代,即,以在更新因果模型之前收集对多组不同实例的环境响应。类似地,系统可在执行步骤310之前执行步骤308的多个不同实例,即,可在更新内部参数之前执行多次不同的因果模型更新。
175.图4a是用于确定程序实例的示例性过程400的流程图。为了方便起见,过程400将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当编程的控制系统(例如,图1的控制系统100)可执行过程400。
176.系统针对环境中的实体中的每个实体选择空间范围(步骤402)。给定实体的空间范围限定在由一组给定控制设置控制时影响从给定实体获得的环境响应的环境区段。给定实体的空间范围由一组空间范围参数(例如,特定于给定实体的一组空间范围参数,或在所有实体之间共享的一组空间范围参数)限定。在一些具体实施中,空间范围内部参数是固定的,即,保持恒定为同一值,或者在整个环境控制过程中从固定范围随机采样。例如,如果环境仅包括单个实体,则每个程序实例将包括相同的单个实体。又如,如果环境包括多个实体,但不存在关于哪些实体受控制设置影响的不确定性,则空间范围参数可固定为确保生成的实例将正交的值。
177.当空间范围不是固定的并且针对空间范围参数保持单个值(即,仅基于启发法更新空间范围参数)时,系统选择每个实体的空间范围参数的当前值作为实体的空间范围。当空间范围不是固定的并且值的范围由空间范围参数限定时,系统基于针对实体的空间范围参数的当前因果模型从空间范围参数当前限定的范围对空间范围的值进行采样。
178.通过针对实体选择空间范围,系统限定每个程序实例中有多少实体以及每个程序实例中包括哪些实体。特别地,系统生成程序实例,使得任何程序实例都不覆盖甚至部分地在另一个程序实例中的实体的空间范围内的环境区段。
179.图4b示出了包括各自与空间范围相关联的多个物理实体的环境的地图420的示例。特别地,图4b示出了在美国的一部分内包括多个物理实体(在图中表示为点)的环境。系统针对每个实体选择的空间范围由阴影圆表示。例如,系统可保持每个实体的可能半径的范围,并且可从该范围中选择每个实体的阴影圆的半径。如从图4b的示例可看出,不同实体可具有不同空间范围。例如,实体412具有与实体414不同大小的阴影圆。
180.如从图4b的示例还可看出,系统还可任选地应用附加标准以减小程序实例不正交的可能性。特别地,系统还已针对每个实体选择延伸超出实体的空间范围的缓冲区(表示为虚线圆),并且已要求不同实例中的任何实体都不能具有在该缓冲区内的空间范围。
181.由于空间范围并且由于缓冲区,环境内的某些实体在图4b所示的迭代中不被选择作为程序实例的一部分。这些未被选择的实体(例如,实体416)被表示为没有阴影圆或虚线圆的点。特别地,系统尚未选择这些实体,因为它们的空间范围与被选择作为程序实例的一
部分的另一个实体的空间范围或缓冲区相交。对于实体416,不选择该实体,因为实体416的空间范围将已与实体414的空间范围或缓冲区相交。例如,在给定所采样的空间范围和缓冲区的情况下,系统可已选择了将使可包括在一组当前实例中而不违反标准中的任一标准的程序实例的数量最大化的空间范围。
182.系统针对每个程序实例选择时间范围,或者如果不同可控元件具有不同时间范围,则针对每个程序实例的每个可控元件选择时间范围(步骤404)。如上所述,时间范围限定与程序实例中的每个程序实例相关联的时间窗口或与程序实例内的可控元件相关联的时间窗口。
183.在一些情况下,时间范围可以是固定的,即,在控制系统的操作之前,系统的用户就已知针对环境中的给定实体观察到的哪些环境响应应归因于包括该实体的程序实例。在其它情况下,时间范围可以是未知的或与一定不确定性水平相关联,即,系统的用户不知道或未指定在应用一组设置之后确切地多长时间可观察到该设置的影响。
184.在时间范围不固定的情况下,系统基于针对时间范围参数的当前因果模型从时间范围参数当前限定的范围对时间范围的值进行采样。如上所述,不同实体(并且因此不同程序实例)可具有多组不同时间范围参数,或者所有实体可共享同一组时间范围参数。
185.系统基于所选择空间范围和所选择时间范围生成程序实例(步骤406)。换句话讲,系统基于空间范围划分环境中的实体,即,使得在程序实例中的任何实体所具有的空间范围(或缓冲区,如果使用)都不与在不同程序实例中的另一个实体的空间范围相交,并且使每个程序实例与由程序实例的空间范围限定的时间窗口相关联。
186.图5是用于针对一组当前实例选择控制设置的示例性过程500的流程图。为了方便起见,过程500将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当编程的控制系统(例如,图1的控制系统100)可执行过程500。
187.系统确定当前程序实例(步骤502),例如,如上文参考图4a所述。
188.然后,系统针对可控元件中的每个可控元件执行步骤504至514,以针对所有当前程序实例针对可控元件选择设置。
189.任选地,系统基于环境特性对当前程序实例进行聚类,即,针对可控元件生成多个集群(步骤504)。因为聚类是针对每可控元件执行的,所以系统可针对不同可控元件以不同方式对当前程序实例进行聚类。下文参考图7描述对程序实例进行聚类。
190.即,当系统当前正在执行聚类阶段时,系统首先确定当前程序实例的当前聚类分配。在系统确定当前集群分配之后,系统针对每个集群独立地执行步骤506至514的迭代。
191.当系统当前未在执行聚类阶段时,系统不对当前程序实例进行聚类,并且针对所有当前程序实例执行步骤506至514的单次迭代。
192.系统确定当前的混合与基线比率(步骤506)。特别地,当可控元件的该组比率参数仅包括单个值时,系统选择比率参数的当前值作为当前的混合与基线比率。当可控元件的比率参数的系统限定可能值的范围时,系统基于针对该组比率参数的因果模型从比率参数限定的可能值的当前范围对混合与基线比率的值进行采样。
193.系统基于当前的混合与基线比率将每个实例识别为可控制元件的混合实例或可控制元件的基线实例(步骤508)。例如,系统能够以基于该比率的概率将每个实例分配为混合实例,或者可将实例的总数随机划分成尽可能接近等于该比率。另选地,当系统基于混合
实例性能和基线实例性能之间的差异随机改变内部参数中的至少一个内部参数时,系统可应用基于当前比率分配实例并且考虑在计算测量性能之间的差异的因果模型时使用的成块方案的分配方案,即,如上所述。
194.系统基于内部参数的基线值并且根据分配方案针对基线实例针对可控元件选择控制设置(步骤512)。换句话讲,系统基于在初始化阶段开始时确定的可控元件的可能值上的基线概率分布来针对基线实例选择控制设置。
195.系统基于当前因果模型并且根据分配方案针对混合实例选择控制设置(步骤514)。
196.特别地,系统将当前因果模型映射到可控元件的可能设置上的概率分布。例如,系统可应用概率匹配来将因果模型中针对可控元件的影响测量结果和置信区间映射到概率。
197.一般来讲,系统基于这些概率分配控制设置,并且使得系统稍后在计算d评分时将识别足够数量的成块群组。作为特定示例,系统然后可将混合实例划分成成块群组(基于稍后将用于计算d评分的相同成块方案),然后根据可能设置上的概率分布在每个成块群组内选择控制设置,即,使得成块群组中的每个实例以概率分布中指定的概率被分配任何给定的可能设置。
198.图6是用于针对给定可控元件和给定类型的环境响应更新因果模型的示例性过程600的流程图。为了方便起见,过程600将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当编程的控制系统(例如,图1的控制系统100)可执行过程600。
199.系统可针对每个可控元件并且针对每种类型的环境响应执行过程600,系统针对该可控元件和该环境响应保持因果模型。例如,当系统仅针对单个性能度量保持对因果效应进行建模的因果模型时,系统仅针对该性能度量执行过程600。另选地,当系统针对多种不同类型的环境响应保持对因果效应进行建模的因果模型时,系统针对每种类型的环境响应(例如,每种不同类型的传感器读数或测量结果)执行过程600。
200.当系统当前正在将程序实例聚类到集群中时,系统可针对每个集群独立地执行过程600。即,系统可针对每个集群独立地保持和更新因果模型。
201.系统确定可控元件的当前数据包含窗口(步骤602),即,基于可控元件的当前数据包含窗口参数来确定。特别地,当可控元件的该组数据包含窗口参数仅包括单个值时,系统选择数据包含窗口参数的当前值作为当前数据包含窗口。当可控元件的该组数据包含窗口参数限定可能值的范围时,系统从该组数据包含窗口参数当前限定的值的范围对数据包含窗口的值进行采样。当系统不改变数据包含窗口参数时,系统将值设置为固定的初始数据包含窗口或从可能值的固定范围对值进行采样。
202.系统针对可控元件的每个可能值获得给定类型的环境响应(步骤604),这些环境响应是针对为其选择了可控元件的可能值的实例记录的。特别地,系统仅获得在当前数据包含窗口期间发生的实例的环境响应。
203.系统基于对可控元件的可能设置的环境响应来更新因果模型中的影响测量结果(步骤606)。
204.即,系统基于成块方案(例如,上述成块方案之一)来确定一组成块群组。
205.针对每个成块群组,系统然后针对在成块群组中的实例中的任一实例中选择的每个可能设置确定相应的d评分。一般来讲,系统基于成块方案计算针对给定可控元件的影响
测量结果,即d评分,即,计算针对分配给同一成块群组的实例的环境响应之间的d评分。
206.作为特定示例,在将成块群组分配成包括具有每个可能设置的至少一个实例的成块方案中,针对可控元件的可能设置i的影响测量结果di可满足:
[0207][0208]
其中x_i是针对成块群组内的其中已选择了设置i的实例的给定类型的环境响应,总和是除i之外的所有可能设置上的总和,并且n是可能设置的总数。
[0209]
作为另一个特定示例,在将实例对分配给成块群组的成块方案中,针对可控元件的可能设置i的影响测量结果di可满足:
[0210]
d_i=x_i

x_(i 1)。
[0211]
其中x_i是针对成块群组的其中已选择了设置i的实例的给定类型的环境响应,并且x_(i 1)是针对成块群组内的其中已选择了设置i 1的实例的给定类型的环境响应,其中设置i 1是可控制元件的紧接着更高的可能设置。对于可控元件的最高设置,设置i 1可以是可控元件的最低设置。
[0212]
作为又一个特定示例,在将实例对分配给成块群组的成块方案中,针对可控元件的可能设置i的影响测量结果di可满足:
[0213]
d_i=x_i

x_1,
[0214]
其中x_1是针对已选择了可控元件的可能设置中的预先确定的一个可能设置的实例的给定类型的环境响应。
[0215]
然后系统将针对给定设置i的更新后的总体影响测量结果计算为针对设置i计算的d评分的平均值。
[0216]
在一些情况下,d评分计算可以是比例计算而不是加法计算,即,以上定义中的任一定义中的减法运算可由除法运算替代。
[0217]
针对可控元件的每个可能值,系统确定更新后的影响测量结果的置信区间(步骤608)。例如,系统可执行t检验或其它统计假设检验以构建更新后的影响测量结果周围(即,d评分的平均值周围)的p%置信区间,其中p是固定值,例如,95%或97.5%或99%。
[0218]
在一些具体实施中,例如,当外部数据指定不同可控元件具有与偏离不同可控元件的基线概率分布相关联的不同成本或风险水平时,系统针对不同可控元件应用不同p值。
[0219]
在一些具体实施中,在可控元件的某些设置与不同实施成本或较高风险相关联的情况下,系统将校正(例如bonferroni校正)应用于置信区间。特别地,在bonferroni校正中,应用校正,使得如果针对可控元件的n个可能设置计算n个置信区间并且该元件的总体期望置信水平是95%(即,α=0.05),则用于每个单独检验以计算置信区间的α值是α/n。如果某些设置与较高风险或实施成本相关联,则可针对那些设置指定与较高置信水平相关联的“校正后的”α值。这迫使系统在利用那些设置之前累积更多数据。
[0220]
图7是用于针对给定可控元件对一组程序实例进行聚类的示例性过程700的流程图。为了方便起见,过程700将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当编程的控制系统(例如,图1的控制系统100)可执行过程700。
[0221]
系统从可控元件的聚类参数中选择系统正在使用的聚类技术的当前超参数(步骤702)。特别地,可由系统改变的每个超参数由一组相异的内部参数限定。即,针对在操作期
间处于系统控制下的每个超参数,聚类参数包括一组单独的内部参数。
[0222]
系统可使用多种聚类技术中的任一种聚类技术来执行聚类。然而,由系统改变的超参数通常将包括通过聚类技术生成的集群的大小的超参数,并且在一些情况下,包括聚类技术在生成集群时所考虑的实例的环境特性。
[0223]
例如,系统可使用统计分析,例如因素方差分析(anova),来生成聚类分配。特别地,使用因素anova来找到解释集群之间的最大差异量的因素,即,环境特性。即,当针对每个可能控制设置计算d评分时,因素anova可监测这些处理效应和外部因素之间的交互作用项。随着数据累积和交互作用开始出现,因素anova跨空间和时间创建不同的实例集群,其中每个集群表示相异的外部因素状态或属性。
[0224]
又如,系统可使用机器学习技术来生成聚类分配。作为机器学习技术的特定示例,系统可使用决策树。决策树是用于分类和回归问题的经典机器学习算法。决策树通过相继识别最佳变量(即,最佳环境特性)以使用例如gini系数的信息理论函数进行分析来使用递归分割方案。作为机器学习技术的另一个特定示例,系统可使用条件推断树。与决策树类似,条件推断树是递归的二进制分割方案。该算法通过基于显著性检验程序选择要分析的一系列变量以基于最强环境特性因素进行分割来继续。作为另一个特定示例,系统可使用机器学习模型(例如,深度神经网络)来处理表征程序实例和它们相关联的环境特性中的每一者的数据,以生成嵌入,然后基于嵌入之间的相似性例如使用k均值聚类或另一种聚类技术将程序实例聚类到指定集群中。作为特定示例,嵌入可以是神经网络的中间层的输出,该神经网络已被训练来接收表征程序实例的数据并预测程序实例的性能度量的值。
[0225]
在一些情况下,随着系统操作的进展,即,随着更多数据变得可用,系统可切换聚类技术。例如,一旦超过阈值量的程序实例可用,系统就可从使用统计技术或决策树切换成使用深度神经网络。
[0226]
系统根据所选择超参数使用聚类技术对当前数据包含窗口中的实例进行聚类(步骤704)。
[0227]
系统针对每个集群计算因果模型(步骤706),即,如上文参考图6所述,但仅使用已分配给该集群的实例。
[0228]
然后,系统基于针对集群计算的因果模型,独立地在集群中的每个集群内针对可控元件分配控制设置(步骤708),即,如上文参考图5所述。特别地,系统使用聚类技术对每个当前实例进行聚类,然后基于当前实例被分配到的集群并且在给定当前实例未被指定为基线实例的情况下使用针对集群计算的因果模型,来针对给定当前实例分配控制设置。
[0229]
然后,系统可确定是否需要调整聚类参数(步骤710),即,确定聚类参数的当前值是否不是最优的,并且如果不是,则更新可控元件的聚类参数。特别地,在操作期间,系统更新聚类参数以平衡两个竞争目标:(1)将实例池化成集群,使得可控元件对性能度量的影响具有最大的集群内相似性并且可控元件对性能度量的影响具有最大的集群间差异,以及(2)使集群的大小最大化以便具有最大的可能集群内样本大小,以提高因果模型的精度。系统可通过使用启发法、使用随机采样或使用启发法和随机采样两者来调整这些值来实现这一点。
[0230]
系统可确定是否以多种方式中的任一种方式(即,基于多种启发法中的任一种启发法)改变集群的数量,即,改变可控元件的聚类参数的值。
[0231]
更一般地,如上所述,针对由系统改变的任一组给定内部参数,系统能够以三种方式中的一种方式调整该组内部参数:(i)使用基于启发法的方法来调整单个值,(ii)使用随机变化来调整分配给值的范围内的不同值的可能性,或(iii)使用基于启发法的方法来调整值的范围,同时使用随机变化来调整当前范围内的可能性。
[0232]
基于启发法的方法可包括基于当前因果模型的特性的启发法、基于先验统计分析的启发法、或两者。
[0233]
在随机变化方法中,系统保持因果模型,该因果模型测量当前范围内的不同值和该组内部参数的品质因数之间的因果效应。然后,系统将因果模型映射到不同值的概率,并且在需要时,基于概率选择内部参数的值。如将在下文更详细地描述的,任一组给定内部参数的品质因数通常与在对控制设置和性能度量之间的因果关系进行建模的因果模型中测量的性能度量不同。
[0234]
图8是用于使用随机变化更新一组内部参数的示例性过程800的流程图。为了方便起见,过程800将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当编程的控制系统(例如,图1的控制系统100)可执行过程800。
[0235]
可针对正在使用随机变化更新的任一组内部参数执行过程800。此类内部参数的示例可包括多组数据包含窗口参数、多组聚类参数、多组比率参数、多组空间范围参数、多组时间范围参数等中的任一者或全部。
[0236]
如上所述,在聚类阶段期间并且针对除聚类参数之外的任一组内部参数,系统可针对每个集群或者针对每个可控元件并针对每个集群独立地执行过程800。
[0237]
另外,在使用随机变化改变聚类参数的情况下,系统还可针对每个可控元件独立地执行过程800。
[0238]
系统保持针对该组内部参数的因果模型,该因果模型测量内部参数的不同可能值和该组内部参数的品质因数之间的因果关系(步骤802)。
[0239]
例如,该组内部参数的品质因数可以是混合实例的性能和基线实例的性能之间的差异。在这个示例中,品质因数度量混合实例相对于基线实例的相对性能,并且系统针对由内部参数限定的范围内的不同值计算对该品质因数的影响测量结果,即d评分。
[0240]
因此,在针对该组内部参数计算因果模型时,系统如上文参考图6所述继续进行,不同的是:(i)可能设置是内部参数的可能值,并且(ii)评分计算中的每个xi是以下两者之间的差异:(1)针对其分配控制设置的混合实例的性能度量,所述控制设置具有所选择内部参数的可能值,和(2)对应的基线实例的性能度量。
[0241]
又如,该组内部参数的品质因数可以是针对可控元件的因果模型的精度的量度,例如,可控元件的不同设置的置信区间的宽度的量度。
[0242]
该保持的因果模型可基于该组内部参数的数据包含窗口来确定。当该组内部参数实际上是数据包含窗口参数时,数据包含窗口对于当前范围中的不同可能值是不同的。当该组内部参数是一组不同的内部参数时,数据包含窗口可以是一组单独的内部参数,它是固定的或者基于如下所述的启发法或者还基于如这个图中所述的随机变化而变化的。
[0243]
系统例如使用概率匹配将因果模型映射到值范围内的可能值上的概率分布(步骤804)。即,系统使用概率匹配或另一种适当的技术将影响测量结果和置信区间映射到值范围内的每个可能值的概率。
[0244]
当需要从该范围对值进行采样时,系统根据概率分布从可能值的范围对值进行采样(步骤806)。即,当系统需要来自由内部参数限定的范围的值来操作(例如,将时间范围分配给程序实例、将数据包含窗口分配给给定可控元件、确定聚类技术的超参数、或者针对一组当前实例分配当前的混合与基线比率)时,系统根据概率分布从可能值的范围进行采样。通过以这种方式对值进行采样,系统确保更频繁地对最可能优化该组内部参数的品质因数(例如,使混合实例和基线实例之间的差量最大化)的值进行采样,同时仍然确保探索可能值的空间。
[0245]
系统计算对因果模型的更新(步骤808)。即,当接收到针对新程序实例的新环境响应时,系统通过计算总体影响测量结果(即,d评分的平均值)和总体影响测量结果周围的置信区间来重新计算因果模型。系统能够以与上文参考图6所述的因果模型更新相同的方式,即,通过选择成块群组、计算那些成块群组内的d评分(基于上述的一组参数的品质因数)、然后从那些d评分生成因果模型,来执行该计算。
[0246]
通过重复执行过程800,系统可重复调整分配给该范围内的值的概率以倾向于产生更优品质因数的值。
[0247]
例如,当该组内部参数是数据包含窗口参数时,保持对不同数据包含窗口值对混合与基线性能的影响进行建模的因果模型允许系统选择产生针对可控元件计算的更准确且更稳健的因果模型的数据包含窗口。
[0248]
又如,当该组内部参数是空间或时间范围参数时,保持对不同空间或时间范围值对混合与基线性能的影响进行建模的因果模型允许系统选择产生相对于基线实例性能使混合实例性能最大化的正交程序实例的空间或时间范围。
[0249]
又如,当该组内部参数限定聚类超参数时,保持对不同超参数值对混合与基线性能的影响进行建模的因果模型允许系统选择使系统的性能最大化的聚类分配,即,更有效地识别满足上文参考图7所述的目标的聚类分配。
[0250]
在一些具体实施中,系统确定是否调整内部参数的可能值的当前范围(步骤810)。如上所述,任何给定内部参数的可能值的范围可以是固定的或者可使用启发法调整的,以确保正在探索的可能值的空间在系统的整个操作过程中保持合理。
[0251]
可用于调整可能值的当前范围的启发法的一个示例是依赖于当前因果模型的形状的启发法。特别地,当因果模型中的影响测量结果的量值随着接近范围的当前上限而增长时,系统可增大范围的上限(或增大范围的上限和下限两者),并且当影响测量结果的量值随着接近范围的当前下限而增长时,系统可减小下限(或减小上限和下限两者)。
[0252]
可用于调整可能值的当前的启发法的另一个示例是依赖于统计功效分析的启发法。
[0253]
例如,当该组内部参数是限定由聚类技术使用的集群大小的一组聚类参数时,系统可计算统计功效曲线,该统计功效曲线表示样本大小(即,集群大小)的变化对当前因果模型针对可控元件反映的置信区间的宽度的影响。考虑到统计功效曲线的本质,置信区间在样本大小的小端快速变得更精确,但是随着样本大小的增大,样本大小的每次额外的增大导致置信区间的精度的不成比例地更小的增大(即,置信区间的宽度的不成比例地更小的减小)。因此,探索更大的集群大小可导致统计功效的非常小的增益,并且随之而来的是不准确地表示当前决策空间的高风险。为了考虑这一点,系统然后可将可能集群大小的范
围约束为落在统计功效曲线上的下限阈值和上限阈值之间的范围。通过以这种方式约束集群大小,系统不会探索小到导致统计功效太小而无法计算显著置信区间的集群。系统也不会用不必要的大的集群大小(即,以未能捕获实例之间所有可能变化的风险为交换条件来导致统计功效的小幅增益的集群大小)进行实验。
[0254]
又如,当该组内部参数是一组比率参数时,系统可执行统计功效分析,以计算在给定针对比率参数的当前因果模型的情况下以阈值统计功效确定混合实例优于基线实例所需的基线实例的最小数量。然后,系统可调整可能比率值的范围的下限,使得比率不会导致基线实例的数量低于该最小值。
[0255]
作为基于启发法调整范围的另一个示例,当基于启发法更新环境中的实体的时间范围参数的范围时,系统可针对每个实体保持因果模型,该因果模型度量以下两者之间的因果关系:(i)在给定控制迭代处选择的控制设置,和(ii)在后续控制迭代(即,在紧接在给定控制迭代之后的控制迭代)从实体获得的环境响应。由于系统试图针对实体选择确保程序实例正交的时间范围,因此如果已适当地选择时间范围,则该因果模型应指示当前控制设置和对后续控制设置的环境响应之间的因果效应很可能为零。因此,如果因果模型表明针对控制设置中的任一控制设置的影响测量结果的置信区间与零的重叠超过阈值,则系统可确定要增大可能时间范围的范围的下限。
[0256]
作为基于启发法调整范围的另一个示例,当基于启发法更新环境中的实体的空间范围参数的范围时,系统可针对每个给定实体保持因果模型,该因果模型度量以下两者之间的因果关系:(i)在给定控制迭代针对包括给定实体的程序实例选择的控制设置,和(ii)在当前控制迭代从与给定实体相邻的实体获得的环境响应。相邻实体可以是当前控制迭代的一组当前实例中所包括的实体中最靠近给定实体的实体。由于系统试图针对实体选择确保程序实例正交的空间范围,因此如果已适当地选择空间范围,则该因果模型应指示给定实体的当前控制设置和对相邻实体的环境响应之间的因果效应很可能为零。因此,如果因果模型表明针对控制设置中的任一控制设置的影响测量结果的置信区间与零的重叠超过阈值,则系统可确定要增大可能空间范围的范围的下限。
[0257]
下文参考图12更详细地描述可用于调整数据包含窗口和比率参数的可能值的范围的启发法的附加示例。
[0258]
图9是用于基于启发法更新给定可控元件的数据包含值的值的示例性过程900的流程图。为了方便起见,过程900将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当编程的控制系统(例如,图1的控制系统100)可执行过程900。
[0259]
一般来讲,当数据包含窗口是基于启发法而不使用随机变化而变化的参数时,系统针对数据包含窗口执行过程900。
[0260]
当系统针对给定可控元件保持多个集群时,系统可针对每个集群独立地执行过程900,即,使得一个集群内的给定可控元件的数据包含窗口能够以与另一个集群内的给定可控元件的该组内部参数不同的方式更新。
[0261]
系统访问针对给定可控元件的当前因果模型(步骤902)。
[0262]
系统分析当前因果模型的一个或多个特性(步骤904)。例如,系统可执行正态性检验以确定给定可控元件的各种可能控制设置的d评分是否是正态分布的(步骤904)。特别地,系统可对当前因果模型中的给定可控元件的d评分分布进行正态性检验,例如,
shapiro

wilk检验。一般来讲,系统对不同可能设置之间的d评分分布进行缩放并将其池化在一起以生成单个分布,然后对单个分布执行正态性检验。系统可针对不同数据包含窗口(例如,针对使用当前数据包含窗口计算的当前因果模型和使用一个或多个替代数据包含窗口计算的一个或多个替代因果模型)执行该检验,以找到以某个规定的p值满足正态性检验的最长数据包含窗口。
[0263]
作为另一个特定示例,系统可测量当前因果模型中的给定可控元件中的不同影响测量结果之间的置信区间的重叠。系统可针对不同数据包含窗口(例如,针对使用当前数据包含窗口计算的当前因果模型和使用一个或多个替代数据包含窗口计算的一个或多个替代因果模型)执行该检验,以找到最接近期望重叠程度的数据包含窗口。
[0264]
作为另一个特定示例,系统可计算统计功效分析,以识别将导致当前因果模型具有期望统计功效的样本大小。然后,系统可调整数据包含窗口,使得调整后的窗口中所包括的实例的数量等于所识别的样本大小。
[0265]
系统基于分析的结果确定是否调整数据包含窗口参数(步骤906)。例如,系统可调整数据包含窗口参数,以指定如上所述满足正态性检验的最长数据包含窗口,或者最接近期望重叠程度的数据包含窗口,或者所包括的实例的数量等于所识别的样本大小的数据包含窗口。
[0266]
图9的示例是基于启发法调整数据包含窗口的示例。然而,一般来讲,内部参数中的任一内部参数可基于启发法来调整(而不是保持固定或者使用随机变化来调整)。下面是基于启发法设定内部参数的几个示例。
[0267]
例如,系统可使用统计功效分析来设定比率参数的值。特别地,系统可执行统计功效分析,以计算以阈值统计功效确定混合实例优于基线实例所需的基线实例的最小数量。然后系统可将比率参数的值调整为等于该最小值。
[0268]
又如,为了设定集群大小超参数的值,系统可执行先验统计功效分析,以确定为了使因果模型具有期望统计功效所需的足够量的环境响应(即,而不是如上所述的范围),并且将集群大小的值设定到该范围。
[0269]
上文的描述描述了系统在系统的操作期间可如何修改内部参数。内部参数的这种调整可允许系统有效地考虑环境特性的变化,即,从控制设置到环境响应的映射不是静态的并且可在系统的操作期间的不同时间改变的环境。除非适当地考虑,否则对所有可控元件的所有可能控制设置没有同样影响的环境特性的变化可导致基于不再相关的陈旧数据的不准确的因果模型,并且因此可降低系统在控制环境方面的有效性。
[0270]
图10是用于对环境的一个或多个特性的变化作出响应的示例性过程1000的流程图。为了方便起见,过程1000将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,适当编程的控制系统(例如,图1的控制系统100)可执行过程1000。
[0271]
系统监测对系统所选择的控制设置的环境响应(步骤1002)。即,如上所述,系统重复选择控制设置并监测对那些所选择控制设置的响应。
[0272]
系统确定环境的一个或多个特性已改变的指示(步骤1004)。特别地,环境特性的变化是修改可控元件中的至少一个可控元件的不同设置对由系统监测的环境响应所具有的相对影响的变化。即,通过确定一个或多个特性已改变的指示,系统确定不同设置对环境响应的相对因果效应很可能已改变,即,不同于以不同的方式影响所有可能控制设置的全
局改变。虽然系统不能访问指定已发生改变的直接信息,但系统可基于监测到的环境响应来确定很可能已发生改变的指示。
[0273]
例如,在当前系统性能和基线系统性能之间的差异减小时,系统可确定已发生改变的指示。特别地,如下文更详细地描述的,系统可基于针对数据包含窗口的较小可能值而增大的性能度量(即,如针对上述数据包含窗口的因果模型所反映)来确定这一点。
[0274]
又如,如上所述,当正态性检验确定可控元件的可能设置的d评分不再是正态分布的时,系统可确定已发生改变的指示。
[0275]
响应于确定环境的一个或多个特性已改变的指示,系统调整系统的内部参数(步骤1006)。
[0276]
一般来讲,系统调整内部参数的值以指示关于系统所保持的因果模型是否准确地捕获控制设置和环境响应之间的因果关系的不确定性水平有所增大。
[0277]
例如,系统可调整数据包含窗口参数以缩小数据包含窗口,即,使得在确定因果模型时将仅包括更近期的历史环境响应。即,系统可调整数据包含窗口参数,使得可能数据包含窗口的范围倾向于更短的数据包含窗口。
[0278]
又如,系统可调整比率参数以减小混合与探索比率,即,使得相对于探索实例存在更少的混合实例。通过减小该比率,系统在选择控制设置时更少地依赖于当前因果模型,而是更频繁地探索可能控制设置的空间。即,系统可调整比率参数,使得可能比率的范围倾向于更小的比率。
[0279]
又如,系统可调整聚类参数以减小实例被聚类成的集群的数量。通过减小集群的数量,系统防止因果模型基于在解释集群之间的系统性能差异时可能不再相关的特性进行聚类。
[0280]
图11示出了当限定数据包含的一组内部参数随机变化时环境的给定可控元件的数据包含窗口的表示1100。如在图11的示例中可看出,虽然数据包含窗口可在零(即,不包括数据)至无穷大(即,包括所有程序实例)的范围内,但是从中对给定可控元件的数据包含窗口进行采样的当前随机变化范围110在下限a 1102和上限b 1104之间。在一些情况下,下限a 1102和上限b 1104是固定的,并且系统通过如上所述更新因果模型,来调整分配给下限a 1102和上限b 1104之间的不同值的概率。在其它情况下,系统可改变下限a 1102和上限b 1104,同时还更新因果模型。特别地,系统可基于可控元件的不同可能值的相对因果效应正在改变的可能性,来调整范围1110。
[0281]
特别地,如图11所示,系统保持数据包含窗口的可能值的范围。即,数据包含窗口参数包括范围的下限、范围的上限以及数据包含窗口可在范围内采用的可能值。数据包含窗口参数还包括在对值进行随机采样时使用的可能值的概率。如上文参考图8所述,这些概率由系统调整。
[0282]
在一些情况下,可能值的范围是固定的。然而,在其它情况下,系统基于一种或多种启发法改变范围的下限和上限,以调整系统所探索的可能数据包含窗口并防止系统探索过短或过长的数据包含窗口。
[0283]
例如,系统可计算统计功效曲线,该统计功效曲线表示样本大小的变化(通过数据包含窗口的变化)将对当前因果模型用于可控元件的置信区间的宽度产生的影响。考虑到统计功效曲线的本质,置信区间在样本大小的小端快速变得更精确,但是随着样本大小的
增大,样本大小的每次额外的增大导致置信区间的精度的不成比例地更小的增大(即,置信区间的宽度的不成比例地更小的减小)。因此,探索更长的数据包含窗口可导致统计功效的非常小的增益,并且随之而来的是不准确地表示当前决策空间的高风险。为了考虑这一点,系统然后可约束数据包含窗口的范围,以产生落在统计功效曲线上的下限阈值和上限阈值之间的样本的数量。通过以这种方式约束数据包含窗口,系统不会探索短到导致统计功效太小而无法计算显著的置信区间的数据包含窗口,即,不会探索导致数据不足以计算统计上显著的置信区间的数据包含窗口。系统也不会探索不必要的长的数据包含窗口,即,以未能考虑环境特性的最近变化的风险为交换条件来导致统计功效的小幅增益的数据包含窗口。
[0284]
又如,系统可计算时间和可控元件的可能控制设置的相对影响测量结果之间的交互作用的稳定性量度,例如因素分析。即,系统可确定因果关系随时间推移的稳定性。当稳定性量度指示因果关系稳定时,系统可增大数据包含窗口范围的上限或上限和下限两者,而当稳定性量度指示因果关系不稳定(即,动态变化)时,系统可减小上限或上限和下限两者。这允许系统在环境特性正在改变的概率较高时探索较小的数据包含窗口并忽略较旧的数据,而在环境特性稳定的概率较高时探索较大的数据包含窗口。
[0285]
又如,系统可如上所述基于因果模型的形状,来调整范围。特别地,系统可在影响测量结果的量值随着数据包含窗口变高而增大时探索较长数据包含窗口的范围,并且在影响测量结果的量值随着数据包含窗口变短而增大时探索较小数据包含窗口的范围。换句话讲,系统可在差值减小时将范围向下移动,而在差值增大时将范围向上移动。这允许系统在环境特性正在改变的概率较高时探索较小的数据包含窗口并忽略较旧的数据。
[0286]
在一些情况下,系统可应用这些启发法的某种组合,例如,通过允许上限基于后两个示例中的任一者或两者增大,只要上限不超过对应于统计功效曲线上的上限阈值的大小即可,并且允许下限基于后两个示例中的任一者或两者减小,只要下限不低于对应于统计功效曲线上的下限阈值的大小即可。
[0287]
虽然关于数据包含窗口描述了这些示例,但也可使用类似的启发法来调整混合实例与基线实例的比率,即,在环境特性正在改变或最近已改变的概率较高时增大基线实例的数量,并且在环境特性稳定的概率较高时减小基线实例的数量。
[0288]
图12示出了所述系统(在图12至图18中表示为“dcl”)在控制环境时的性能相对于使用现有控制方案控制相同环境的系统的性能。特别地,图12示出了所述系统相较于以下三种不同类型的现有控制方案的性能:(i)“无”方案,其中系统不选择任何设置并且仅接收基线环境响应;(ii)“随机”方案,其中系统随机分配控制设置而不进行替换;以及(iii)各种现有技术增强学习算法。
[0289]
在图12的示例中,正在控制的环境具有3个可控元件,每个可控元件具有5个可能控制设置,并且每次迭代的性能度量的值是从始终固定的高斯分布得出的。特定控制设置的应用改变从其得出性能度量的值的高斯分布的参数。这些特性类似于存在于简单的或高度受控的现实世界环境(例如某些生产线)中的那些特性,但并没有在更复杂的现实世界环境中可能遇到的额外复杂性。
[0290]
图12中的一组上部曲线图示出每个系统就平均累积fom(“meancumfom”)而言的性能。在任何给定迭代的平均累积fom是从第一次迭代开始直至给定迭代所接收的性能度量
(即,fom)的平均值,即,跨时间的累积平均性能度量值。
[0291]
图12中的一组下部曲线图用每实例的平均fom(“meanfom”)示出每个系统的性能。在任何给定迭代的每实例的平均fom是在给定迭代针对该实例接收的性能度量的平均值,即,不考虑先前的迭代。
[0292]
一般来讲,第一列(“dcl”)示出所述系统的结果,而其余列示出现有控制方案的结果。
[0293]
如上文所指示,图12中针对其示出结果的环境不如许多现实世界环境复杂,例如,由于因果效应是固定的,因此不存在影响性能量度的外部不可控特性,并且不存在关于空间或时间范围的不确定性。然而,即使在这种相对简单的环境中,所述系统的性能也满足或超过现有技术系统的性能,不论是否启用高级特征。
[0294]
用于对系统性能进行基准确定的现有技术系统的描述如下:
[0295]
·
bge

boltzmann

gumbel探索[cesa

bianchi等人,boltzmann exploration done right,conference on neural information processing systems(neurips),2017]是一种使用指数加权方法进行控制设置分配选择的多臂班迪特算法。它针对每个控制设置分配保持fom上的分布。在每个步骤中,从这些分布中的每个分布生成样本,并且算法选择对应于最大样本的控制设置分配。然后使用所接收的反馈来更新分布的内部参数。
[0296]
·
ep greedy

epsilon greedy是以概率ε选择随机控制设置分配并且以概率1

ε选择在过去给出了最高平均fom的控制设置分配的通用多臂班迪特算法。实际上,它在时间的ε%探索并在时间的1

ε%利用。
[0297]
·
ucb

上限置信度(ucb)[auer等人,finite

time analysis of the multiarmed bandit problem,machine learning,2002]多臂班迪特算法是解决多臂班迪特问题的两种基本方法之一。它通过从历史数据计算平均fom和置信区间来工作。它通过计算具有最高平均fom加上置信区间的控制设置分配,来选择控制设置分配。以这种方式,它关于控制设置分配的潜在fom表现乐观,并且随时间推移学习哪个控制设置分配具有最高fom。
[0298]
·
lin ucb

linucb[li等人,a contextual

bandit approach to personalized news article recommendation,international world wide web conference(www),2010]通过保持平均fom和置信区间来构建ucb,并且做出关键假设:预期fom是实验中程序实例的特性和控制设置分配的线性函数。然后,该算法能够选择对任何个体程序实例来说最好的控制设置分配。预期lin ucb在理想的控制设置分配对于不同程序实例组不同的情况下表现最好。
[0299]
·
监测的ucb

监测的ucb[cao等人,nearly optimal adaptive procedure with change detection for piecewise

stationary bandit,international conference on artificial intelligence and statistics(aistats),2019]通过计算平均fom和置信区间来构建ucb,但被设计用于可发生fom突然变化的环境。因此,它结合了改变点检测算法,该改变点检测算法识别fom何时改变并重置内部参数(有效地重置平均fom和置信区间)以开始学习新fom。预期监测的ucb在发生fom突然变化的环境中表现良好(优于ucb和变体)。
[0300]
·
odaaf

对延迟聚集匿名反馈的优化[pike

burke等人,bandits with delayed,aggregated anonymous feedback,international conference on machine learning(icml),2018]是一种被设计用于在反馈遭受随机限定延迟的设置中工作的多臂班迪特算
法。反馈在被发送到算法之前被相加地聚集和匿名化,这使得该设置明显更具挑战性。该算法分阶段进行,从而为可能的最优控制设置分配保持一组候选。在每个阶段中,它在这些候选中进行迭代循环策略,并且在它接收到反馈时更新这些候选的性能度量值估计。在每个阶段结束时,该算法消除估计性能度量值明显次优的候选。
[0301]
·
thompson采样

thompson采样[agrawal和goyal.analysis of thompson sampling for the multi

armed bandit problem,conference on learning theory(colt),2012]是一种概率匹配算法,并且是解决多臂班迪特问题的另一种基本方法(另一种方法是基于优化的方法,如ucb)。它通过以下方式工作:为每个控制设置分配选项保持估计fom上的分布,从每个分布采样,然后选择具有最高采样(估计)fom的控制设置分配选项。一旦观察到真fom,就使用贝叶斯方法更新(后验)分布。该算法与每个控制设置分配作为最优控制设置分配的概率成比例地选择控制设置分配。
[0302]
图13示出了所述系统的性能相对于多个其它系统在控制多个不同环境时的性能。
[0303]
特别地,其它系统中的每种系统使用上述现有控制方案中的相应一种控制方案来控制多个不同的环境。
[0304]
正在控制的环境各自具有3个可控元件,每个可控元件具有5个可能设置,并且在每次迭代被优化的性能度量的值是从高斯分布得出的。
[0305]
通过添加导致不同程序实例之间的可变性的各种因素,环境具有不同的复杂性。
[0306]
特别地,一组顶部图中所示的基础环境根据程序实例改变高斯分布的平均值和方差,即,使得不同程序实例也可接收到不同性能度量值,即使选择相同控制设置也是如此。
[0307]
其它环境还在针对可控元件应用不同可能设置的效应、性能度量中的基础正弦行为以及针对不同实例群组的不同设置效应(即,其表示环境特性和可控元件之间的交互作用)中引入基于时间的变化。
[0308]
如从图13可看出,许多现有控制方案通常在简单的基线情况下表现良好,并且给定控制方案可能在一个额外复杂性因素下表现良好,但没有现有控制方案在所有情况下都表现良好。另一方面,所述系统在所有环境中的表现相当于或优于最佳的现有控制方案。因此,图13的示例表明:所述系统能够针对不同环境中的每种环境在类似于或优于其它控制方案的可能设置下执行,这是由于系统自动适应变化的复杂环境而不需要手动模型选择(即,通过不断地改变系统的内部参数以考虑不同环境的不同特性)的能力,即使在没有环境特性的先验知识可用时也是如此。
[0309]
正在控制的环境中的每种环境的详细解释如下。
[0310]
·
00_base

100个程序实例;具有5个可能设置的3个可控元件,每个设置具有从高斯分布得出的性能度量值。选择不同的iv可能设置会改变分布的平均值和/或标准偏差。该环境相对简单,但确实具有如常见于现实世界环境中的可能控制设置的许多组合。
[0311]
·
01_add_subject_var

从00_base开始,将程序实例分成3个群组,这些群组针对它们的性能度量值分布具有不同的基本速率平均值和标准偏差。这引入了数据的额外差异,而不改变控制设置分配的影响。这种类型的程序实例/eu差异对于现实世界是非常典型的。例如,该特定配置模仿各种产品的销售行为,其中一小组产品占整体销售额的大部分(80/20规则),更大的一组产品具有中等销售额,并且大多数产品具有低销售额。
[0312]
·
02_add_dynamic

从00_base开始,iv可能设置的影响在预先确定的时间(算法
不知道这些时间)经历多次转变,使得iv可能设置的影响反转。这种变化行为对于现实世界是非常典型的。例如,不同广告宣传和技术的有效性经常随空间和时间推移而改变(以前起作用的现在可能不起作用)。类似地,生产线上的最优控制设置分配选择将由于如温度、湿度和特定设备的细微差别(例如,磨损和撕裂)的因素而变化。
[0313]
·
03_add_subject_var_dynamic

01_add_subject_var和02_add_dynamic的组合。(上述)这两种行为的组合使得该环境甚至更类似于许多动态现实世界环境。
[0314]
·
04_add_sine

从00_base开始,将总体正弦图案添加到性能度量值。这模拟了fom中与iv可能设置的效应无关的周期性趋势(例如,季节的、每周的)。一些算法难以处理额外的数据差异。这种类型的周期性行为对于现实世界是非常典型的。例如,零售额、供应链等常常遵循每周、每月和季节的循环,这些循环引入了性能度量的显著差异。又如,受天气的季节性变化影响的制造和其它过程也可经历类似的效应。在(所述系统解决的)这些情况下的关键挑战是能够将营销活动的影响(例如)与这些基础行为区分开。
[0315]
·
05_add_subject_var_sine

01_add_subject_var和04_add_sine的组合。(上述)这两种行为的组合使得该环境甚至更类似于复杂且动态的现实世界环境。
[0316]
·
06_add_ev_effect

iv可能设置的最优组合对于一些程序实例是不同的。控制设置分配的这种变化对于现实世界情况是非常典型的。例如,根据所涉及的产品、内容的接受者、空间、时间等,不同广告或促销方法将比其它广告或促销方法更好地起作用。
[0317]
·
10_complex

01_add_subject_var、02_add_dynamic、04_add_sine和06_add_ev_effects的组合。该环境为了捕获现实世界的行为做得最多,因为它采取所有上述现实世界行为并将它们组合到一个环境中。
[0318]
图14示出了所述系统的性能相对于多个其它系统在控制具有不同时间效应的多个不同环境时的性能。
[0319]
特别地,其它系统中的每种系统使用对应的现有控制方案来控制多个不同的环境。
[0320]
正在控制的环境具有4个可控元件,每个可控元件具有2个可能设置,并且在每次迭代的性能度量值是从高斯分布得出的。环境被强加不同的时间延迟和持续时间,这些影响相对于针对给定实例的控制设置的初始应用产生性能度量值的时间。例如,在顶部环境中,针对所有效应的环境响应延迟2个时间迭代并持续3个时间迭代。在以下环境中,4个可控元件全部具有不同的时间延迟和持续时间。第三和第四环境添加了额外的复杂性和可变性。
[0321]
如从图14示例可看出,所述系统能够针对不同环境中的每种环境在类似于或优于其它控制方案的可能设置下执行。这示出了所述系统动态地适应应用控制设置的效应的时间行为(即,通过在操作期间改变时间范围参数)的能力。
[0322]
此外,这些环境中的两个环境包括与iv控制设置分配效应无关的基础周期性行为。这种行为对于在现实世界中遇到的情况(例如广告、药品)是典型的,在这些情况下所采取的动作具有延迟的而非即时的效应。同时,此类场景通常具有在停止控制设置分配之后持续的残留效应。此外,很少单独地找到这些时间行为。相反,它们将最常与基础行为同时发生,类似于所示正弦图案。如从图14可看出,所述系统优于常规系统,即,由于能够通过调整时间范围参数和用于调整基础行为变化的其它内部参数来更好地考虑不同的时间行为。
[0323]
图14所示的环境的细节如下。
[0324]
·
00_temporal

500个程序实例;具有2个可能设置的4个可控元件,每个设置具有从高斯分布得出的性能度量值。选择不同的iv可能设置会改变分布的平均值和/或标准偏差。所有效应的性能度量值延迟2个时间迭代并持续3个迭代。
[0325]
·
01_temporal_multi

与00_temporal相同,不同的是:4个可控元件具有不同的时间延迟和持续时间。
[0326]
·
02_temporal_sine

从00_base开始,添加了正弦行为
[0327]
·
03_temporal_delay_only

与00_temporal相同,但是去除了持续时间行为
[0328]
·
04_temporal_multi_delay_only

与01_time_multi相同,但是去除了持续时间行为
[0329]
·
05_temporal_sine_delay_only

与02_temporal_sine相同,但是去除了持续时间行为
[0330]
图15示出了所述系统在聚类和不聚类情况下的性能。正在控制的环境具有3个可控元件,每个可控元件具有5个可能设置,并且在每次迭代的性能度量值是从在整个实验过程中固定的高斯分布得出的。正在控制的环境具根据由环境特性描述的程序实例/eu的特性而有不同的最优控制设置分配(可控元件)。一组控制设置分配将产生总体良好的结果,但这些结果实际上对于亚群体是负面的。如果亚群体被给予它特定的理想控制设置分配,则总体效用得到改善。这对于最优控制设置分配可基于外部特性有很大变化的现实世界情况是典型的。左图示出了所述系统在包括聚类部件情况下的性能。在这种情况下,所述系统针对程序实例/eu分配特定的控制设置分配,这导致总体更高的fom。右图示出了所述系统在不使用聚类部件的情况下(即,在不曾进入聚类阶段的情况下)的性能。在这种情况下,算法针对所有程序实例利用单种总体控制设置分配方法,这致使算法针对某个亚群体使用非最优控制设置分配。如从图15可看出,当使用聚类时,所述系统表现更好。
[0331]
图16示出了所述系统有能力改变数据包含的性能相对于所述系统在保持数据包含窗口参数固定的同时控制相同环境的性能。在图16的示例中,正在控制的环境在控制设置对性能量度的相对效应中表现出两个渐进变化。这对于现实世界是典型的,分两种方式:1)动作(例如,广告、制造参数)的影响很少,即使有,也是静止的;2)当发生此类变化时,它们本质上通常是渐进的,而不是突然的。左图示出了所述系统在包括diw部件情况下的性能。在这种情况下,所述系统能够例如通过混合基线比较来快速检测效应已改变,并且所述系统可通过缩小数据包含窗口来立即重新学习最佳的控制设置分配。右图示出了所述系统在不使用diw部件的情况下的性能。在这种情况下,算法非常逐渐地适应于处理效应的变化。到这样做时,效应已经再次改变。
[0332]
图17示出了所述系统在进行和不进行时间分析(即,有能力和没有能力改变时间范围)的情况下的性能。正在控制的环境具有4个可控元件,每个可控元件具有2个可能设置,并且在每次迭代的性能度量值是从在整个实验过程中固定的高斯分布得出的。环境被强加不同的时间延迟和残留行为,这些影响相对于iv可能设置的初始应用产生性能度量值的时间。此外,这些环境中的两个环境包括与效应无关的基础周期性行为。这种行为对于在现实世界中遇到的情况(例如广告、药品)是典型的,因为经常采取的动作不具有即时效应,并且即使在停止控制设置分配之后它们也经常具有残留效应。此外,这种时间变化通常存
在于其它基础行为的背景下。该图示出了所述系统内的时间优化的值。左列示出了所述系统使用时间部件的性能。右列示出了所述系统在不使用时间部件的情况下的性能。如从图17的示例可看出,当环境具有这些时间特性时,在使用时间分析时,所述系统表现得明显更好。
[0333]
图18示出了所述系统在控制环境时的性能相对于使用现有控制方案(“lin ucb”)控制相同环境的系统的性能。在图18的示例中,正在控制的环境具有与iv可能设置效应以及这些效应的变化无关的循环基础行为,使得最优控制设置分配随时间推移而改变。这些特性类似于存在于许多现实世界环境中的那些特性,在这些现实世界环境中存在规则的基础动态(例如,每周、每月或每季模式)以及控制设置分配/动作的影响随时间推移的变化。图18示出了时间的子集,在此期间,iv可能设置的影响在基础环境中(在迭代200至250期间)改变。如从图18可看出,现有控制方案的性能基于先前的控制设置分配效应保持在利用阶段,并且不能快速适应改变。另一方面,所述系统的性能快速适应变化的效应,并且在变化后的环境效应下找到增量改善(上部曲线图)。这导致来自所述系统的增大的增量益处(下部曲线图)。应注意,随着时间的延续,利用所述系统的累积益处将继续增大。
[0334]
虽然以上描述使用某些术语来指代所述系统的特征或由所述系统执行的动作,但应当理解,这些术语不是可用于描述系统的操作的唯一术语。另选的术语的一些示例如下。例如,可控元件可替代地被称为自变量(iv)。又如,环境特性可替代地被称为外部变量(ev)。又如,环境响应可替代地被称为因变量(dv)。又如,程序实例可替代地被称为实验单位或自组织实验单位(soeu)。又如,可控元件的可能设置可替代地被称为元件的(或iv的)水平。又如,控制设置可替代地被称为过程决策,并且针对程序实例分配控制设置可被称为处理分配。
[0335]
在本说明书中,术语“重复地”,即,在重复执行操作的背景下,通常用于意指操作在具有或不具有特定序列的情况下多次发生。例如,过程可恒定地或迭代地按指定顺序遵循一组步骤,或者可随机地或非相继地遵循这些步骤。另外,步骤可并非全部以相同的频率执行,例如,执行处理分配的频率可比更新因果学习的频率高,并且后者的频率可随时间推移而改变,例如,随着利用阶段变成主导和/或随着计算能力/速度要求随时间推移而改变。
[0336]
本说明书结合系统和计算机程序部件使用术语“配置为”。对于要被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统上已经安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中致使系统执行这些操作或动作。对于要被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括指令,这些指令在由数据处理设备执行时致使设备执行这些操作或动作。
[0337]
本说明书中所述的主题和功能操作的实施方案可在数字电子电路中、在有形地体现的计算机软件或固件中、在计算机硬件(包括本说明书中所公开的结构以及它们的结构等同物)中、或在它们中的一者或多者的组合中实施。本说明书中所述的主题的实施方案可被实施为一个或多个计算机程序。一个或多个计算机程序可包括计算机程序指令的一个或多个模块,其编码在有形的非暂态存储介质上以供数据处理设备执行或控制数据处理设备的操作。计算机存储介质可为机器可读存储装置、机器可读存储基板、随机或串行存取存储器装置、或者它们中的一者或多者的组合。另选地或除此之外,程序指令可编码在人工生成的传播信号(例如,机器生成的电信号、光信号、或电磁信号)上以便传输至合适接收器设备
以供数据处理设备执行,该传播信号被生成来对信息进行编码。
[0338]
术语“数据处理设备”是指数据处理硬件,并且涵盖用于处理数据的所有类型的设备、装置和机器,包括(以举例的方式)可编程处理器、计算机、或多个处理器或计算机。该设备也可以是或者还包括专用逻辑电路,例如fpga(场可编程门阵列)或asic(专用集成电路)。除硬件之外,该设备可任选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一者或多者的组合的代码。
[0339]
计算机程序(其也可被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、脚本或代码)可以任何形式的编程语言编写,包括编译或解译语言、或者声明性或过程性语言;并且其可以任何形式部署,包括作为独立程序或作为模块、部件、子例程、或适用于计算环境的其它单元。计算机程序可(但不必)对应于文件系统中的文件。程序可存储在保持其它程序或数据的文件(例如,存储在标记语言文档中的一个或多个脚本)的一部分中、专用于所考虑程序的单个文件中、或者多个协作文件(例如,存储一个或多个模块、子程序、或代码的部分的文件)中。计算机程序可被部署为在一个计算机上执行,或在位于一个站点处或分布在多个站点上并通过数据通信网络互连的多个计算机上执行。
[0340]
在本说明书中,术语“数据库”广义地用于指代任何数据集合:数据不需要以任何特定方式结构化,或者根本不需要结构化,并且其可存储在一个或多个位置中的存储装置上。因此,例如,索引数据库可包括多个数据集合,每个数据集合可以不同的方式组织和访问。
[0341]
类似地,在本说明书中,术语“引擎”广义地用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。一般来讲,引擎将被实施为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或部件。在一些情况下,一个或多个计算机将专用于特定引擎;在其它情况下,多个引擎可安装在相同的一个或多个计算机上并在其上运行。
[0342]
本说明书中所述的过程和逻辑流可由一个或多个可编程计算机执行,该一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流也可由专用逻辑电路(例如fpga或asic)或由专用逻辑电路和一个或多个编程计算机的组合执行。
[0343]
适用于执行计算机程序的计算机可基于通用或专用微处理器或两者、或任何其它类型的中央处理单元。一般来讲,中央处理单元将接收来自只读存储器或随机存取存储器或两者的指令和数据。计算机的基本元件是用于实行或执行指令的中央处理单元和用于存储指令和数据的一个或多个存储器装置。中央处理单元和存储器可由专用逻辑电路进行补充,或者可结合到专用逻辑电路中。一般来讲,计算机还将包括用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘),或者将可操作地联接以从大容量存储装置接收数据、或将数据传输至大容量存储装置、或上述两者。然而,计算机不必具有这些装置。此外,计算机可嵌入另一个装置中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器、或便携式存储装置(例如,通用串行总线(usb)闪存驱动器),仅举几例。
[0344]
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,包括(以举例的方式)半导体存储器装置(例如,eprom、eeprom、
和闪存装置);磁盘(如,内部硬盘或可移动磁盘);磁光盘;以及cd

rom和dvd

rom磁盘。
[0345]
为了提供与用户的交互,本说明书中所述的主题的实施方案可在具有显示装置(如,crt(阴极射线管)或lcd(液晶显示器),所述显示装置用于为用户显示信息)、键盘、和点击装置(如,鼠标或轨迹球,用户可通过所述点击装置为计算机提供输入)的计算机上实施。其它类型的装置同样可以用来提供与使用者的交互作用;例如,提供给使用者的反馈可以是任何形式的感观反馈,例如视觉反馈、声音反馈或触觉反馈;并且来自使用者的输入可以以任何形式被接收,包括声音、语音或触觉输入。此外,通过将文件发送到使用者使用的装置,或者从使用者使用的装置接收文件,计算机可以与使用者交互;例如,通过响应于从用户的装置上的web浏览器接收到的请求向该web浏览器发送网页。另外,计算机可通过向个人装置(例如,正在运行消息传送应用程序的智能电话)发送文本消息或其它形式的消息并且作为回报从用户接收响应消息来与用户交互。
[0346]
本说明书中所述的主题的实施方案可在下述计算系统中实施,该计算系统包括后端部件(例如,作为数据服务器)、或包括中间件部件(例如,应用服务器)、或包括前端部件(例如,具有图形用户界面、web浏览器或app(用户可通过其与本说明书中所述的主题的具体实施进行交互)的客户端计算机)、或者一个或多个此类后端、中间件、或前端部件的任何组合。系统的部件可通过数字数据通信的任何形式或介质(如,通信网络)进行互连。通信网络的示例包括局域网(lan)和广域网(wan),例如互联网。
[0347]
计算系统可包括客户和服务器。客户和服务器彼此通常相距较远并且一般通过通信网络进行交互。客户和服务器关系产生的原因在于运行在相应计算机上并且彼此具有客户

服务器关系的计算机程序。在一些实施方案中,服务器将数据(例如,html网页)传输至用户装置,例如,目的在于将数据显示给与用作客户端的装置进行交互的用户或从该用户接收用户输入。可在服务器处从用户装置接收在该装置处例如由于用户交互而生成的数据。
[0348]
尽管本说明书包括许多具体实施细节,但这些具体实施细节不应理解为对任何发明范围或对受权利要求书保护内容的范围的限制,而是应理解为可特定于具体发明的具体实施方案的特征的说明。本说明书中在单独实施方案背景下描述的某些特征也可在单个实施方案的组合中实施。反之,在单独实施方案背景下描述的各个特征也可在多个实施方案中单独地实施或者在任何合适的子组合中实施。此外,尽管上文中可将特征描述为以某些组合起作用并且由此甚至初始受权利要求书保护,但得自受权利要求书保护的组合的一个或多个特征可在一些情况下脱离该组合,并且受权利要求书保护的组合可涉及子组合或子组合的变型。
[0349]
类似地,尽管附图中所示和权利要求书中所述的操作具有特定顺序,但这不应理解为要求必须按所示的特定顺序或相继顺序来执行这些操作、或者必须执行全部所示操作以实现所需的结果。在某些情况下,多任务和并行处理可为有利的。此外,上述实施方案中的各个系统模块和部件的分离不应理解为在所有实施方案中都需要这种分离,并且应理解为所述程序部件和系统通常可在单个软件产品中集成在一起或者可封装到多个软件产品内。
[0350]
已经描述了本发明主题的具体实施方案。其它实施方案均在以下权利要求书的范围内。例如,权利要求书中所述的动作可按不同的顺序来执行并且仍可实现所需的结果。比
如,附图中所描绘的过程未必需要所示的特定顺序或相继顺序来实现期望结果。在一些情况下,多任务和并行处理可为有利的。
再多了解一些

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

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

相关文献