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

复杂问题自动建模与求解的通用方法及系统与流程

2022-02-19 00:50:10 来源:中国专利 TAG:


1.本技术涉及算法优化领域,特别涉及一种复杂问题自动建模与求解的通用方法及系统。


背景技术:

2.最优化问题广泛存在于各类复杂优化、学习、设计任务中,在数据驱动的科学范式下,建模与求解是解决上述问题的两大步骤。对问题进行建模,通常会采用统计回归的方法,具体为:预设问题的模型结构,例如线性模型、二次模型等,接着采用回归分析估计变量系数,需要用户具有完备的问题领域理论基础,如果用户不具有完备的问题领域理论基础,则很难选取合适的模型结构,影响问题建模的准确率,进一步影响求解问题的准确率。对问题进行求解,通常会采用问题松弛方法,具体为:对本源问题数学表达式进行近似放松,例如采用泰勒展开(taylor expansion)、拉格朗日松弛(lagrange relaxation)等,接着利用传统数学规划方法求解近似问题,但是采用问题松弛方法求解问题,需要用户具备模型近似的专业知识,如果用户不具备模型近似的专业知识,则导致对问题求解的准确率不高。


技术实现要素:

3.本技术旨在至少解决现有技术中存在的技术问题之一。为此,本技术提出一种复杂问题自动建模与求解的通用方法及系统,能够自动实现对问题的建模与求解过程,避免人为求解导致的误差,提高问题求解的准确率。
4.根据本技术的第一方面实施例的复杂问题自动建模与求解的通用方法,包括:
5.获取原始问题数据;
6.根据所述原始问题数据构建问题模型;其中,所述问题模型包括目标函数和约束条件;
7.检测所述原始问题数据的问题类型;
8.根据所述问题类型和所述问题模型构建求解算法;
9.根据所述求解算法对所述目标函数进行求解计算,得到求解数据。
10.根据本技术实施例的复杂问题自动建模与求解的通用方法,至少具有如下有益效果:
11.获取原始问题数据,根据获取到的原始问题数据构建问题模型,其中问题模型包括适用于求解目标问题的目标函数和约束条件,接着检测原始问题数据的问题类型,根据问题类型和问题模型确定求解目标问题的求解算法,根据确定出的求解算法,对问题模型的目标函数进行求解计算,得到求解数据,本技术能够在不具备充分的问题领域理论基础和专家经验的复杂条件下,同时实现问题自动建模和针对所构建的模型自动设计求解算法,进而实现应对复杂问题全过程的自动化,避免人为求解导致的误差,提高问题求解的准确率。
12.根据本技术的一些实施例,所述原始问题数据包括问题信息和对应的约束条件,
所述目标函数为第一目标函数;
13.对应的,所述根据所述原始问题数据构建问题模型,包括:
14.根据所述问题信息和所述约束条件,生成第一初始函数;
15.根据所述第一初始函数和预设的函数数据结构,得到所述第一初始函数的第一表征方式;
16.根据所述第一表征方式和预设的模型决策空间,得到所述第一初始函数的第一取值范围;
17.根据所述第一初始函数、所述第一表征方式和所述第一取值范围,得到第一目标函数;
18.根据所述第一目标函数,构建所述问题模型。
19.根据本技术的一些实施例,所述模型决策空间包括多个预设变量、多个预设常量和多个预设运算规则;
20.对应的,所述根据所述第一表征方式和预设的模型决策空间,得到所述第一初始函数的第一取值范围,包括:
21.根据所述第一表征方式,从所述多个预设变量中选取目标变量,从所述多个预设常量中选取目标常量,并从所述多个预设运算规则中选取目标运算规则;
22.根据所述目标变量、所述目标常量和所述目标运算规则,得到所述第一初始函数的第一取值范围。
23.根据本技术的一些实施例,所述目标函数为第二目标函数;
24.对应的,所述根据所述第一目标函数,构建所述问题模型,包括:
25.获取所述第一初始函数对应的目标模型性能;
26.获取符合所述目标模型性能的所述第一目标函数,作为第二目标函数;
27.根据所述第二目标函数,构建所述问题模型。
28.根据本技术的一些实施例,所述原始问题数据的问题类型为np类型;
29.对应的,所述根据所述问题类型和所述问题模型确定求解算法,包括:
30.根据所述原始问题数据和所述问题模型,生成第二初始函数;
31.根据所述第二初始函数和预设的算法数据结构,得到所述第二初始函数的第二表征方式;
32.根据所述第二初始函数和所述第二表征方式,从预设的算法决策空间中获取用于求解所述问题模型的求解算法。
33.根据本技术的一些实施例,所述算法决策空间包括多个预设或随机算法组件和对应的参数取值范围;
34.对应的,所述根据所述第二初始函数和所述第二表征方式,从预设或随机的算法决策空间中获取用于求解所述问题模型的求解算法,包括:
35.根据所述第二初始函数和所述第二表征方式,从所述多个预设或随机算法组件中选取目标算法组件;
36.从所述目标算法组件对应的参数取值范围中选取目标参数;
37.根据所述目标算法组件和对应的所述目标参数,得到所述求解算法。
38.根据本技术的一些实施例,所述根据所述第二初始函数和所述第二表征方式,从
预设的或随机的算法决策空间中获取用于求解所述问题模型的求解算法,包括:
39.获取所述第二初始函数对应的目标算法性能;
40.根据所述第二表征方式和启发式搜索方法,从所述算法决策空间中获取符合所述目标算法性能的所述求解算法。
41.根据本技术的第二方面实施例的复杂问题自动建模与求解的通用系统,包括:
42.获取模块:用于获取原始问题数据;
43.构建模块:用于根据所述原始问题数据构建问题模型;其中,所述问题模型包括目标函数和约束条件;
44.检测模块:用于检测所述原始问题数据的问题类型;
45.算法确定模块:用于根据所述问题类型和所述问题模型确定求解算法;
46.求解计算模块:根据所述求解算法对所述目标函数进行求解计算,得到求解数据。
47.根据本技术实施例的复杂问题自动建模与求解的通用系统,至少具有如下有益效果:
48.本技术实施例的复杂问题自动建模与求解的通用系统,包括获取模块、构建模块、检测模块、算法确定模块和求解计算模块,获取模块获取原始问题数据,构建模块根据获取到的原始问题数据构建问题模型,其中问题模型包括适用于求解目标问题的目标函数和约束条件,检测模块检测原始问题数据的问题类型,算法确定模块根据问题类型和问题模型构建求解目标问题的求解算法,求解计算模块根据确定出的求解算法,对问题模型的目标函数进行求解计算,得到求解数据,本技术能够在不具备充分的问题领域理论基础和专家经验的复杂条件下,同时实现问题自动建模和针对所构建的模型自动设计求解算法,进而实现应对复杂问题全过程的自动化,避免人为求解导致的误差,提高问题求解的准确率。
49.根据本技术的第三方面实施例的复杂问题自动建模与求解的通用系统,包括:存储器和处理器,其中,所述存储器中存储有程序,所述程序被所述处理器执行时所述处理器用于执行本技术第一方面实施例任一项所述的方法。
50.根据本技术的第四方面实施例的复杂问题自动建模与求解的通用系统,包括计算机可读存储介质,计算机可读存储介质存储有计算机程序,在所述计算机程序被计算机执行时,所述计算机用于执行本技术第一方面实施例任一项所述的方法。
51.本技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
52.下面结合附图和实施例对本技术做进一步的说明,其中:
53.图1是本技术一些实施例提供的复杂问题自动建模与求解的通用方法的流程图;
54.图2是图1中的步骤s200的流程图;
55.图3是本技术一些实施例提供的复杂问题自动建模的流程图;
56.图4是本技术一些实施例提供的问题模型表征示例图;
57.图5是图2中的步骤s230的流程图;
58.图6是图2中的步骤s250的流程图;
59.图7是图1中的步骤s400的流程图;
60.图8是本技术一些实施例提供的求解算法自动设计的流程图;
61.图9是图7中的步骤s430的第一流程图;
62.图10是本技术一些实施例提供的算法的表征方式的示例图;
63.图11是本技术一些实施例提供的算法表征方式的具体应用示例图;
64.图12是图7中的步骤s430的第二流程图;
65.图13是本技术一些实施例提供的复杂问题自动建模与求解的通用方法及系统的基本流程图;
66.图14是本技术一些实施例提供的启发式搜索示例图;
67.图15是本技术一些实施例提供的复杂问题自动建模与求解的通用方法的模块结构框图。
具体实施方式
68.下面详细描述本技术的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能理解为对本技术的限制。
69.本技术的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
70.最优化问题广泛存在于各类复杂优化、学习、设计任务中。在数据驱动的科学范式下,建模与求解是解决上述问题的两大步骤。
71.在问题建模方面,统计回归和机器学习是常用的方法。此二类方法需要预设模型结构,例如模型基本形式、神经网络结构等,然后通过回归分析/优化来估计参数,即变量系数。在复杂任务场景中,往往不具备充分的预设模型结构的理论基础或专家经验,导致无法准确建模。
72.目前的建模方案主要包括统计回归、机器学习和符号回归(symbolic regression)三种。
73.统计回归方法:预设问题模型结构,例如线性模型、二次模型等;然后采用回归分析估计变量系数,但是预设合理的模型结构要求具有完备的问题领域理论基础或充分的专家经验。
74.机器学习方法:例如神经网络、决策树等,无需问题领域理论基础,通过挖掘问题数据的特征或规律建模,但是机器学习方法同样需要预设模型结构,例如神经网络结构,且神经网络等构建的为黑箱模型,难以解释与分析。
75.符号回归方法:通过搜索由变量和运算规则构成的问题模型空间来寻找适于问题数据的函数表达式。其中,遗传编程(genetic programming)是常用的符号回归方法,主要是将问题模型表征为树状结构,采用遗传交叉genetic crossover)或“遗传交叉和变异”(genetic crossover and mutation)迭代搜索问题模型的函数表达式,但是当问题模型空间较大,例如变量较多时,采用遗传交叉变异搜索树状表征的效率较低。
76.在问题求解方面,复杂任务场景中的最优化问题往往是高维、大规模、非凸、多极值的,可能导致其是np难的。求解np难问题主要有两种思路,第一,是松弛本源问题,然后利用现有数学规划方法,例如线性规划和二次规划等求解;第二,是选择或设计启发式/元启发式算法直接求解本源问题,但是问题松弛或算法选择、设计多以人工完成,需耗费大量人力和时间成本,受专家经验和主观偏见影响,且决策者可能不具备足够的问题松弛或算法选择、设计知识,而影响求解的效果。
77.目前的问题求解方案主要包括问题松弛求解和启发式/元启发式算法直接求解两种。
78.问题松弛求解:首先对本源问题数学表达式进行近似放松,例如采用泰勒展开(taylor expansion)、拉格朗日松弛(lagrange relaxation)等,然后利用传统数学规划方法求解近似问题,但是问题松弛求解方法要求具备模型近似的专业知识,且模型近似带来误差。
79.启发式/元启发式方法:算法选择或设计主要由人工完成,即基于专家经验选择或设计适于具体问题的算法,需耗费人力和时间成本,且受专家知识水平和主观偏见影响。算法选择或设计也可通过算法自动选择、自动参数配置或自动设计完成。其中算法自动选择,即构建由多个算法组成的候选库,根据一定规则从中选择适于具体问题的算法。算法参数自动配置,即定义若干种不同的参数值,然后根据性能表现选择某个参数值或根据一定规则调整参数值。算法自动设计主要指生成超启发式(generation hyper

heuristics),挑选多个启发式算法和/或启发式算法的组件(component)组成候选库,然后采用遗传编程对候选库中的启发式算法和/或其组件进行选择和组合,生成适于具体问题的算法。
80.建模与求解是解决各种复杂最优化问题的两大步骤。尚未有完整、统一的技术方案同时考虑建模与求解两大步骤、同时实现建模与求解的自动化。在建模方面,基于统计回归和机器学习的建模方法需预设模型结构,建模准确性受限于问题理论基础的完备性或专家知识的专业性。符号回归虽不受上述限制,但以遗传编程为代表的符号回归方法在问题变量较多的大规模模型空间中的搜索效率低、计算成本高。在求解方面,问题松弛求解要求具备模型近似的专业知识,且带有模型近似误差,人工选择或设计启发式/元启发式算法直接求解受专家知识水平、经验和主观偏见影响,且需大量人力和时间成本。自动选择、自动配置启发式/元启发式算法仅从现有若干算法中选择一个算法或生成现有算法的某种参数配置版本,其求解性能仍受限于现有算法。超启发式虽可实现新算法自动设计,但其通常面向特定组合优化问题,不具备普适性。
81.基于此,本技术提出一种复杂问题自动建模与求解的通用方法及系统,能够自动实现对问题的建模与求解过程,避免人为求解导致的误差,提高问题求解的准确率,并且具备普适性。
82.第一方面,本技术实施例提供了一种复杂问题自动建模与求解的通用方法。
83.在一些实施例中,参照图1,本技术的复杂问题自动建模与求解的通用方法具体包括步骤:
84.s100,获取原始问题数据;
85.s200,根据原始问题数据构建问题模型;
86.s300,检测原始问题数据的问题类型;
87.s400,根据问题类型和问题模型构建求解算法;
88.s500,根据求解算法对目标函数进行求解计算,得到求解数据。
89.在步骤s100中,获取待求解问题的原始问题数据,原始问题数据包括具体问题的问题类型,具体问题的解释变量和被解释变量等,用于构建面对具体问题的函数表达式。
90.在步骤s200中,根据原始问题数据构建问题模型,首先需要根据原始问题数据找到面对具体问题的函数表达式,即目标函数,通过求解目标函数得到需要构建的问题模型。
91.本技术实施例采用符号回归的思路,将问题建模的过程表示为公式(1)所示的优化问题,通过求解该优化问题找到适用于具体问题的函数表达式,本技术实施例与传统的符号回归方法采用遗传编程搜索模型函数表达式不同,本技术采用启发式搜索方法,较遗传编程中的交叉变异搜索具有更高搜索效率和更好搜索效果。
92.在一些实施例中,原始问题数据包括问题信息和对应的约束条件,目标函数为第一目标函数,如图2所示,步骤s200具体包括步骤:
93.s210,根据问题信息和约束条件,生成第一初始函数;
94.s220,根据第一初始函数和预设的函数数据结构,得到第一初始函数的第一表征方式;
95.s230,根据第一表征方式和预设的模型决策空间,得到第一初始函数的第一取值范围;
96.s240,根据第一初始函数、第一表征方式和第一取值范围,得到第一目标函数;
97.s250,根据第一目标函数,构建问题模型。
98.在一些实施例中,如图3所示,对本技术实施例的自动建模流程进行举例,需要理解的是,下面描述仅是示例性说明,而不是对本技术的具体限制。
99.本技术实施例采用启发式搜索方法来对复杂问题进行自动建模,首先,获取待求解的具体问题的原始问题数据,例如问题信息和约束条件,主要包括具体问题的解释变量,例如取值范围等,接着根据具体问题的原始问题数据和约束条件确定建模的目标函数,确定目标函数后确定模型的表征方式,确定模型的表征方式后构造模型的决策空间,最终输出所建的模型,从而实现自动建模的过程。
100.在步骤s210中,根据问题信息和约束条件,生成第一初始函数,其中第一初始函数为根据问题信息和约束条件所搜索到的面对具体问题的函数表达式,在实际应用中,建模的目标函数由公式(1)、公式(2)和公式(3)得到:
101.min
f
(error(f),complexity(f))(1)
[0102][0103]
complexity(f)=multiplication#(f(x1,x2,

,x
n
))(3)
[0104]
其中,min
f
(error(f),complexity(f))表示计算(近似逼近)同时满足error(f)和complexity(f)最小化的f,f是搜索到的所面对具体问题的函数表达式,x1,x2,

,x
n
是所面对具体问题的解释变量,f(x1,x2,

,x
n
)包括问题函数表达式及其约束条件,y是所面对具体问题的被解释变量;error(f)衡量f对该问题数据的拟合准确度,由f在该问题上的均方误差表示,均方误差基于问题数据的交叉验证得出,m为实验次数;complexity(f)衡量f的复杂度,由f中的乘法次数表示,multiplication#(
·
)表示统计并输出括号(
·
)内计算过
程中的乘法次数。基于公式(2)和公式(3)的两个目标构建问题模型,兼顾了所构建模型的拟合准确度和计算复杂度。
[0105]
在步骤s220中,根据第一初始函数和预设的函数数据结构,得到第一初始函数的第一表征方式,构建了第一初始函数f后,将问题模型表征成某个函数数据结构,例如树状结构,其中树状结构的根节点为解释变量和常量,其余的节点为运算规则,树状的表征实例如图4所示,该表征对应的函数表达式如公式(4)所示:
[0106][0107]
在步骤s230中,根据第一表征方式和预设的模型决策空间,得到第一初始函数的第一取值范围,根据步骤s220得到了第一表征方式,预设的模型决策空间,由待求解的具体问题的解释变量、常量和运算规则构成。其中,解释变量由提出问题的拥有者,即决策者预设,常量的取值范围以及运算规则也均由决策者预设或者随机预设,其中公式(2)和公式(3)中模型f包含的解释变量为{x1,x2,

,x
n
},运算规则可包括但不限于{ ,

,*,\}等,常量在预设范围内连续取值。本技术实施例通过搜索解释变量、常量和运算规则的组合方式,得出适于该具体问题的函数表达式,即f的范围。
[0108]
在一些实施例中,模型决策空间包括多个预设变量、多个预设常量和多个预设运算规则,如图5所示,步骤s230具体包括步骤:
[0109]
s231,根据第一表征方式,从多个预设变量中选取目标变量,从多个预设常量中选取目标常量,并从多个预设运算规则中选取目标运算规则;
[0110]
s232,根据目标变量、目标常量和目标运算规则,得到第一初始函数的第一取值范围。
[0111]
在步骤s231中,根据第一表征方式,从多个预设变量中选取目标变量,从多个预设常量中选取目标常量,并从多个预设运算规则中选取目标运算规则,例如,多个预设变量可以为{x1,x2,

,x
n
},从这里选取x1作为目标变量,多个预设常量可以为{1,2,3,

,99},从这里选取2和3作为目标常量,多个预设运算规则可以为{ ,

,*,\},从这里选取 作为目标运算规则。
[0112]
在步骤s232中,根据步骤s231中选取的目标变量、目标常量和目标运算规则,得到第一初始函数的第一取值范围,例如x1作为目标变量、2和3作为目标常量和 作为目标运算规则,将目标变量、目标常量和目标运算规则进行组合,得到适用于该具体问题的第一初始函数的第一取值范围。
[0113]
在步骤s240中,根据第一初始函数、第一表征方式和第一取值范围,得到第一目标函数。
[0114]
在步骤s250中,根据第一目标函数,构建问题模型。以公式(1)为目标函数,采用图4示例的模型表征方式以及利用启发式搜索方法,搜索步骤s230提到的问题模型决策空间,找到适用于具体问题数据的模型函数表达式,需要说明的是,基于公式(2)和公式(3)所示的两个目标函数,搜索到的是多个对拟合准确度和模型复杂度具有不同偏好的问题模型,可根据决策者预设的偏好或采用多目标优化最终解选择方法从中选择最终模型。
[0115]
需要说明的是,图3所示的问题自动建模流程是通用、普适的,问题建模的目标包括但不仅限于公式(1)至公式(3)所示的均方误差和乘法次数,目标个数包括但不仅限于公式(1)至公式(3)所示的两目标。任何建模过程中需要考虑的因素均可作为建模目标,可根
据实际问题背景和要求选择不同的建模目标。模型的表征方式包括但不仅限于图4所示的树状结构,任何可用于表征函数表达式的数据结构均可作为模型表征方式,自动建模的搜索方法包括但不仅限于步骤s250所介绍的方法,任何适于离散优化的搜索方法均可用于模型搜索,在此不再赘述。
[0116]
在一些实施例中,目标函数为第二目标函数,如图6所示,步骤s250具体包括步骤:
[0117]
s251,获取第一初始函数对应的目标模型性能;
[0118]
s252,获取符合目标模型性能的第一目标函数,作为第二目标函数;
[0119]
s253,根据第二目标函数,构建问题模型。
[0120]
在步骤s251中,获取第一初始函数对应的目标模型性能,即针对第一初始函数和实际问题的背景和要求,选择不同的建模目标。
[0121]
在步骤s252和步骤s253中,由于得出适用于该具体问题的第一目标函数可以为多个,所以用户可以获取符合目标模型性能的第一目标函数,作为第二目标函数,即最能满足特定的性能需求,例如求解效率最高的函数,根据第二目标函数,构建用于求解具体问题的问题模型。
[0122]
在步骤s300中,检测原始问题数据的问题类型,例如是否为np难问题,np问题是指可以在多项式时间内被非确定机解决的问题,通常它们的时间复杂度都是指数变量,这表明对np问题寻找多项式时间表示的算法很困难。
[0123]
在步骤s400中,根据问题类型和问题模型确定求解算法,在非复杂任务场景中,例如具备预设模型结构的理论基础/专家经验或所建模型的问题类型不是np难时,可采用传统的统计回归建模、利用数学规划,例如线性规划、二次规划等求解,如果所建模型是np难时,可采用本技术通过求解算法组件和参数空间来自动设计求解算法。
[0124]
在一些实施例中,原始问题数据的问题类型为np类型,如图7所示,步骤s400具体包括步骤:
[0125]
s410,根据原始问题数据和问题模型,生成第二初始函数;
[0126]
s420,根据第二初始函数和预设的算法数据结构,得到第二初始函数的第二表征方式;
[0127]
s430,根据第二初始函数和第二表征方式,从预设的算法决策空间中获取用于构建问题模型的求解算法。
[0128]
在步骤s410中,根据原始问题数据和问题模型,生成第二初始函数,原始问题数据包括具体问题的问题类型,根据原始问题数据和问题模型,生成第二初始函数,即公式(5)

(7),在实际应用中,算法设计的目标函由公式(5)、公式(6)和公式(7)得到:
[0129]
min
a
(1/quality(a),complexity(a))(5)
[0130]
quality(a)=fitness(s
*
),s
*
=argmin
s
f(a(s))(6)
[0131]
complexity(a)=run_time(a)(7)
[0132]
其中,min
a
(1/quality(a),complexity(a))表示计算(近似逼近)同时满足1/quality(a)和complexity(a)最小化的a,a表示所设计的求解算法,s
*
为采用算法a求解步骤s210所构建模型f获得的满意解;quality(a)衡量了算法的收敛能力,由满意解s
*
的适应度fitness(s
*
)表示,适应度值越大表示收敛能力越强;complexity(a)衡量了算法的计算成本,由算法a的运行时间表示,本技术实施例基于公式(5)

(7)的两个目标设计算法,能够
同时兼顾所设计算法的收敛能力和计算成本。
[0133]
在步骤s420中,根据第二初始函数和预设的算法数据结构,得到第二初始函数的第二表征方式,即得到a的表征方式,其中表征方式可以由树状和图等表征,本技术实施例不做具体的限制,例如以图的形式进行表征,包括宏观层面的搜索策略、微观层面的搜索算子(学习、模仿、探寻)、选择算子三部分以及各策略/算子可能存在的内部参数。
[0134]
在步骤s430中,根据第二初始函数和第二表征方式,从预设的或随机的算法决策空间中获取用于构建问题模型的求解算法,其中,预设的或随机的算法决策空间包括算法组件和组件参数。
[0135]
在一些实施例中,如图8所示,对本技术实施例的求解算法自动设计流程进行举例,需要理解的是,下面描述仅是示例性说明,而不是对本技术的具体限制。
[0136]
本技术实施例采用启发式搜索方法来对复杂问题进行求解,首先,获取待求解的具体问题的原始问题数据和所构建的问题模型,接着根据待求解的具体问题的原始问题数据和所构建的问题模型确定算法设计的目标函数,确定目标函数后确定算法的表征方式,确定算法的表征方式之后构造算法设计的决策空间,最终输出所设计的算法,从而实现自动求解的过程。
[0137]
在一些实施例中,算法决策空间包括多个预设或随机算法组件和对应的参数取值范围,如图9所示,步骤s430具体包括步骤:
[0138]
s431,根据第二初始函数和第二表征方式,从多个预设或随机算法组件中选取目标算法组件;
[0139]
s432,从目标算法组件对应的参数取值范围中选取目标参数;
[0140]
s433,根据目标算法组件和对应的目标参数,得到求解算法。
[0141]
在一些实施例中,将所设计的启发式算法表征为图(graph),如图10所示,其中,圆形节点为算法组件,方形节点为算法组件对应的参数,圆形节点间的箭头表示算法组件的运行顺序。图10表征的启发式算法包括宏观层面的搜索策略、微观层面的搜索算子(学习、模仿、探寻)、选择算子三部分以及各策略/算子可能存在的内部参数。宏观层面的搜索策略根据算法在待求解问题上的搜索状态(当前解的适应度、分布性等)自适应地调整搜索区域,将搜索集中于可能拥有更好解的区域,提高搜索效率。代表性的搜索策略包括遗传算法的交配选择(mating selection)、头脑风暴优化的观点收敛(idea convergence)等。微观层面的搜索算子执行具体的搜索操作,包括学习(learning)、模仿(imitating)和探寻(exploring)三类算子。学习算子,例如粒子群优化的粒子飞行,学习当前解中隐含的收敛趋势,沿趋势方向搜索;模仿算子,例如遗传算法的交叉、变异,模仿、继承当前解的优势信息,在此基础上施以扰动,以期提高收敛性;探寻算子,例如头脑风暴优化的观点探索(idea exploration),跳出当前搜索区域,探寻更大的搜索范围,为收敛提供更多可能性。
[0142]
需要说明的是,图10所示的由宏观搜索策略和微观学习、模仿、探寻搜索算子组成的算法框架高度概括了包括演化算法和群体智能算法在内的启发式/元启发式算法内涵,是统一、普适的启发式/元启发式算法框架。需要说明的是,图10所示的算法表征是可变结构的,即所表征的算法实例可同时带有学习、模仿、探寻算子,也可仅带有学习、模仿、探寻算子中的任意一个或多个。
[0143]
在一些实施例中,如图11所示,为图10算法表征的一个示例,其表征的算法包含搜
索策略——轮盘赌选择(roulette wheel selection)、模仿算子——单点交叉(single point crossover)、模仿算子——均匀变异(uniform mutation)及其参数变异率、学习算子——惯性粒子群飞行(inertial particle swarm fly)及其参数惯性权重以及选择算子——锦标赛选择(tournament selection)及其参数比赛规模。
[0144]
在步骤s431至步骤s433中,在得到了第二初始函数和第二表征方式之后,根据第二初始函数和第二表征方式,可在算法设计决策空间中,从多个预设或随机算法组件中选取目标算法组件,其中算法设计决策空间包括算法组件(图10所示的圆形节点)空间和参数(图10所示的方形节点)空间两部分,用户可随机选取其中一个或多个算法组件作为目标算法组件,由于不同的目标算法组件对应有不同的参数取值范围,所以在选定目标算法组件后,需要从目标算法组件对应的参数范围中选取目标参数,根据目标算法组件和对应的目标参数,得到求解算法。
[0145]
需要说明的是,大多数模仿生物进化或群体行为的元启发式算法中包含的算法组件及其参数,以及面向特定问题的启发式搜索算子、局部搜索算子及其参数均可被包含到决策空间中。可根据所构建的模型类型(例如连续/离散优化、单目标/多目标优化等)和问题领域知识,选择预期可行的算法组件及其参数构成决策空间;也可随机选择算法组件及其参数构成决策空间。以求解单目标连续优化问题为例,给出由代表性算法组件及其参数构成的算法设计决策空间,如表1所示。需要说明的是,表1所示为通用、普适的单目标连续优化算法设计决策空间,实践中可在表1所示内容的基础上根据具体问题特点融入特定策略/方法。例如,求解大规模问题时,可在搜索策略中融入解空间分解方法,以提高大规模解空间中的搜索效率;求解多目标问题时,可在搜索策略中融入目标空间分解方法,以保持解在目标空间的多样性,同时应使用适于多目标优化的选择算子,例如帕累托非支配排序等;求解约束问题时,可在搜索算子或选择算子中融入约束处理方法;求解不确定问题时,可在选择算子中融入抽样取平均的适应度估计方法等,以应对不确定性。
[0146]
表1算法设计的决策空间
[0147]
[0148]
[0149]
[0150]
[0151][0152]
需要说明的是,表1中的{x,y,z,u}∈p
g
为第g代种群p
g
中的四个解;x

和y

分别是x和y的子代解/更新后的解;x
d
,y
d
,z
d
,u
d
,x
d

,y
d

,d={1,2,

,d}分别是x,y,z,u,x

,y

的第d维元素;x
dmin
和x
dmax
分别为x
d
的取值下界和上界;n为解集规模;在“类别”一栏中,l1/i1/e1分别表示基于一个当前解进行学习(learning)/模仿(imitating)/探寻(exploring),l2/i2/e2分别表示基于两个当前解进行学习/模仿/探寻,以此类推。
[0153]
在一些实施例中,如图12所示,步骤s430具体还包括步骤:
[0154]
s434,获取第二初始函数对应的目标算法性能;
[0155]
s435,根据第二表征方式和启发式搜索方法,从算法决策空间中获取符合目标算法性能的求解算法。
[0156]
在步骤s434和步骤s435中,由于上述步骤得到的第二初始函数可能为多个,目标算法性能,例如算法的收敛能力和计算成本等不同,导致后续选择的求解算法也不同,所以可以由用户指定该问题的目标算法性能,根据第二表征方式和启发式搜索方法,从算法决策空间中搜索符合目标算法性能的求解算法。例如,以公式(5)

(7)为目标函数,采用图10示例的算法表征方式和启发式搜索方法搜索算法设计决策空间,找到适于所构建模型的求解算法。需要说明的是,基于公式(5)

(7)所示的两个目标函数搜索到的是多个对收敛能力和计算成本具有不同偏好的求解算法,可根据决策者预设偏好或采用多目标优化最终解选择方法从中选择最终算法。
[0157]
需要说明的是,图8所示的求解算法自动设计流程是通用、普适的,算法设计目标包括但不仅限于公式(5)

(7)所示的收敛能力和计算成本。算法设计时考虑的任何因素均可作为设计目标,例如收敛能力、计算成本、适用范围、鲁棒性等。图10所示的算法表征方式包括但不限于基于图的表征,任何能够表征算法流程的数据结构均可作为算法表征方式。算法设计的决策空间包括但不仅限于表1所示内容。面向特定问题的特定策略或方法均可被包含到算法设计决策空间。例如,求解大规模问题时,可在搜索策略中融入解空间分解方法,以提高大规模解空间中的搜索效率;求解多目标问题时,可在搜索策略中融入目标空间分解方法,以保持解在目标空间的多样性,同时应使用适于多目标优化的选择算子,例如帕累托非支配排序等;求解约束问题时,应在搜索算子或选择算子中融入约束处理方法;求解不确定问题时,可在选择算子中融入抽样取平均的适应度估计方法等,以应对不确定性。任何演化算法,例如人工免疫系统(artificial immune system)、细菌觅食算法(bacterial foraging algorithm)、蚁群算法(ant colony algorithm)、猴群算法(monkey algorithm)、果蝇算法(fruit fly algorithm)、人工鱼群算法(artificial fish swarms algorithm)、花朵授粉算法(flower pollination algorithm)等以及面向特定问题的启发式搜索算子、局部搜索算子及其参数均可被包含到决策空间参与算法自动设计。
[0158]
在步骤s500中,根据求解算法对目标函数进行求解计算,得到求解数据。
[0159]
在一些实施例中,如图13所示,对本技术实施例的杂问题自动建模与求解的基本流程进行举例,需要理解的是,下面描述仅是示例性说明,而不是对本技术的具体限制。
[0160]
首先,获取具体问题的数据和约束条件,根据具体问题的数据和约束条件判断是否具备预设模型结构的基础理论或者专家经验,如果具备预设模型结构的基础理论或专家经验,则可以采用统计回归建模的方式,得到问题模型;如果不具备预设模型结构的基础理论或专家经验,则通过启发式搜索方法对问题进行自动建模,具体为:搜索问题模型空间,自动生成问题模型。在得到问题模型之后,还需要进一步判断所建的模型是否为np难的,若所建的模型不是np难的,则可以根据数学规划求解该问题,得到求解结果;若所建的模型是np难的,则通过启发式搜索方法自动设计求解算法,具体为:搜索求解算法组件及参数空间,自动设计求解算法,采用所设计的求解算法求解所构建的模型,即目标函数,得到求解结果,最后输出求解结果,以完成对问题的自动建模。
[0161]
需要说明的是,本技术实施例采用嵌套分割(nested partitions)方法分别作为
上述建模的搜索方法和算法设计的搜索方法,进而分别得出适于具体问题的模型函数表达式和面向所构建模型的求解算法。本技术实施例与符号回归和生成超启发式等相关技术方案中采用的遗传编程方法不同,本技术实施例采用的嵌套分割方法通过分割、缩小决策空间实现快速搜索,较遗传编程在整体决策空间内交叉变异搜索效率更高,且能够保证全局收敛。其具体的方法步骤如下,作为建模的搜索方法时,下列步骤中涉及的决策空间ω、搜索的解x和适应度函数fitness()分别为上述ω
model
、模型f和公式(1)至(3);作为算法设计的搜索方法时,下列步骤中涉及的决策空间ω、搜索的解x和适应度函数fitness()分别为上述ω
algorithm
、算法a和公式(5)

(7)。
[0162]
在一些实施例中,介绍了用于复杂问题自动建模与求解算法自动设计的启发式搜索方法。需要理解的是,下面描述仅是示例性说明,而不是对本技术的具体限制。
[0163]
步骤一:初始化,将决策空间ω随机分为m个子空间(sub

region)ω1,ω2,


m
,满足且对于任意i,j∈{1,2,

,m},i≠j,子空间与整体决策空间的维度相同,但取值范围缩小。分别在子空间ω
i
,i={1,2,

,m}中随机抽样l个解根据适应度函数fitness()分别计算各个抽样解的适应度,并记录适应度最高的最优解。上述m和l根据决策空间规模和计算资源预设。
[0164]
定义1:最大适应度,公式(1)或公式(2)的适应度函数分别含有两个目标,适应度由以下帕累托支配关系决定:对于两个解x
i
,x
j
∈ω,若同时满足以下两个条件
[0165][0166][0167]
则称x
i
支配x
j
若则x
i
为帕累托非支配解。最大适应度为帕累托非支配解的适应度,不论最大化问题或最小化问题,适应度越大表示解的质量越高。若存在多个帕累托非支配解,则从中随机选取一个解,将该解的适应度作为最大适应度。
[0168]
定义2:子空间适应度,子空间ω
i
的适应度为其l个抽样解的最大适应度,即
[0169]
定义3:最有潜力空间,适应度最大的子空间为最有潜力空间(the most promising region)ω
*
,即
[0170]
步骤二:分割,将最有潜力空间ω
*
随机分为m个子空间ω1,ω2,


m
,满足且对于任意i,j∈{1,2,

,m},i≠j,将除ω
*
外的其余决策空间合并为周围空间(surrounding region)ω
m 1
,即ω
m 1
=ω\ω
*
。至此,决策空间ω被分割为m 1份{ω1,ω2,


m

m 1
}。
[0171]
步骤三,搜索,分别在ω
i
,i={1,2,

,m 1}中随机抽样l个解更新最优解。根据定义1和定义2计算ω
i
,i={1,2,

,m 1}的适应度fitness(ω
i
)。
[0172]
步骤四:回溯,如果ω
i
,i={1,2,

,m 1}中适应度最高的是最有潜力空间ω
*
的m
个子空间之一,即则适应度最高的子空间作为新的最有潜力空间ω
*
,即跳转步骤2;如果ω
i
,i={1,2,

,m 1}中适应度最高的是步骤2的周围空间,即ω
*
=ω
m 1
,则执行回溯——返回最有潜力空间ω
*
的上一轮分割时的任意一个子空间或周围空间,并将其作为新的最有潜力空间,跳转步骤二。
[0173]
循环步骤二、三、四,直至满足停止条件时输出所记录的最优解,停止条件可根据计算资源预设为固定抽样次数或循环次数。
[0174]
在一些实施例中,如图14所示,介绍了用于复杂问题自动建模与求解算法自动设计的启发式搜索方法的具体示例。在图14中,ω=η0={1,2,3,4,5,6,7,8}为包含8个候选解的一维离散决策空间,分割子空间个数m=2。需要理解的是,下面描述仅是示例性说明,而不是对本技术的具体限制。
[0175]
步骤一:初始化,将决策空间ω=η0={1,2,3,4,5,6,7,8}随机分为m=2个子空间,η1={1,2,3,4}和η2={5,6,7,8},分别对η1和η2抽样,记录最优解,根据定义1、定义2和定义3找到最有潜力空间ω
*
=η1;
[0176]
步骤二:分割,将最有潜力空间ω
*
=η1随机分为m=2个子空间,η3={1,2}和η4={3,4},除ω
*
外的其余决策空间为周围空间η2={5,6,7,8};
[0177]
步骤三:搜索,分别对η3、η4和η2随机抽样,更新最优解,根据定义1和定义2计算η3、η4和η2的适应度;
[0178]
步骤四:回溯,在η3、η4和η2中,η3的适应度最高,将η3作为新的最有潜力空间ω
*
=η3,跳转步骤2;
[0179]
步骤五:进行第二次分割,将最有潜力空间ω
*
=η3随机分为m=2个子空间,η5={1}和η6={2},除ω
*
外的决策空间为周围空间η0\{η5,η6}={3,4,5,6,7,8};
[0180]
步骤六:进行第二次搜索,分别对η5、η6和η0\{η5,η6}随机抽样,更新最优解,根据定义1和定义2分别计算η5、η6和η0\{η5,η6}的适应度;
[0181]
步骤七:进行第二次回溯,在η5、η6和η0\{η5,η6}中,η0\{η5,η6}的适应度最高,执行回溯——返回当前最有潜力空间ω
*
=η3的上一轮分割时的任意一个子空间或周围空间,即η1或η2,并将η1或η2作为新的最有潜力空间,跳转步骤2。
[0182]
需要说明的是,采用步骤一识别决策空间中可能拥有更好解的区域,即最有潜力空间,然后循环迭代分割、搜索和回溯,不断缩小最有潜力空间的范围,直至找到最优解或满意解。若搜索过程中陷入局部最优,即当前最有潜力空间的所有子空间适应度均低于周围空间,则通过步骤四执行回溯跳出局部最优。
[0183]
需要说明的是,上述步骤所述的抽样方法包括但不仅限于随机抽样,任何抽样方法,包括融入先验知识的规则式或启发式抽样方法等,均可用于抽样。用于建模的搜索方法和用于算法设计的搜索方法包括但不仅限于上述步骤所述方法。任何适用于离散优化的启发式/元启发式搜索方法均可用于建模的搜索或算法设计中算法组件的搜索;任何适用于连续优化的启发式/元启发式搜索方法均可用于算法设计中算法组件对应内部参数的搜索。
[0184]
在本技术实施例中,通过获取原始问题数据,根据获取到的原始问题数据构建问
题模型,其中问题模型包括适用于求解目标问题的目标函数和约束条件,接着检测原始问题数据的问题类型,根据问题类型和问题模型确定求解目标问题的求解算法,根据确定出的求解算法,对问题模型的目标函数进行求解计算,得到求解数据,本技术能够在不具备充分的问题领域理论基础和专家经验的复杂条件下,同时实现问题自动建模和针对所构建的模型自动设计求解算法,进而实现应对复杂问题全过程的自动化,避免人为求解导致的误差,提高问题求解的准确率。
[0185]
第二方面,如图15所示,本技术实施例还提供了一种复杂问题自动建模与求解的通用系统,包括获取模块100、构建模块200、检测模块300、算法确定模块400和求解计算模块500,其中获取模块100获取原始问题数据,构建模块200根据获取到的原始问题数据构建问题模型,其中问题模型包括适用于求解目标问题的目标函数和约束条件,检测模块300检测原始问题数据的问题类型,算法确定模块400根据问题类型和问题模型确定求解目标问题的求解算法,求解计算模块500根据确定出的求解算法,对问题模型的目标函数进行求解计算,得到求解数据,本技术能够在不具备充分的问题领域理论基础和专家经验的复杂条件下,同时实现问题自动建模和针对所构建的模型自动设计求解算法,进而实现应对复杂问题全过程的自动化,避免人为求解导致的误差,提高问题求解的准确率。
[0186]
第三方面,本技术实施例还提供了一种复杂问题自动建模与求解的通用系统。
[0187]
在一些实施例中,复杂问题自动建模与求解的通用系统包括:电子设备,至少一个处理器,以及与至少一个处理器通信连接的存储器;其中,存储器存储有指令,指令被至少一个处理器执行,以使至少一个处理器执行指令时实现本技术实施例中任一项复杂问题自动建模与求解的通用方法。
[0188]
处理器和存储器可以通过总线或者其他方式连接。
[0189]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本技术实施例描述的复杂问题自动建模与求解的通用方法。处理器通过运行存储在存储器中的非暂态软件程序以及指令,从而实现上述的复杂问题自动建模与求解的通用方法。
[0190]
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行上述复杂问题自动建模与求解的通用方法。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,比如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0191]
实现上述的复杂问题自动建模与求解的通用方法所需的非暂态软件程序以及指令存储在存储器中,当被一个或者多个处理器执行时,执行上述第一方面实施例中提到的复杂问题自动建模与求解的通用方法。
[0192]
第四方面,本技术实施例还提供了复杂问题自动建模与求解的通用系统。
[0193]
在一些实施例中,复杂问题自动建模与求解的通用系统包括计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于执行第一方面实施例中提到的复杂问题自动建模与求解的通用方法。
[0194]
在一些实施例中,该存储介质存储有计算机可执行指令,该计算机可执行指令被
一个或多个控制处理器执行,比如,被上述电子设备中的一个处理器执行,可使得上述一个或多个处理器执行上述复杂问题自动建模与求解的通用方法。
[0195]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
[0196]
本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0197]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0198]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0199]
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0200]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd

rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0201]
上面结合附图对本技术实施例作了详细说明,但是本技术不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本技术宗旨的前提下作出各种变化。此外,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
再多了解一些

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

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

相关文献