一种基于控制反转思想的优化问题通用求解框架

文档序号:37187001发布日期:2024-03-01 12:52阅读:19来源:国知局
一种基于控制反转思想的优化问题通用求解框架

本发明涉及求解框架领域,尤其涉及一种基于控制反转思想的优化问题通用求解框架。


背景技术:

1、数学规划是运筹学的一个分支,其用来研究在给定条件下(约束条件),如何按照某一衡量指标(目标函数)来寻求工作中的最优方案;它是优化问题建模的第一步也是最重要的一步,界定了问题的类型和解决问题的难度;我们在现实中遇到的各类优化问题,大到快递路线选择、门店选址,大到工厂生产调度、物流路径规划、财务风险控制,都可以抽象为一个数学规划问题;根据问题的性质和处理方法的差异,数学规划又可分成许多不同的分支,如线性规划、非线性规划、整数规划、混合整数规划、动态规划等等;采用数学定义的方式,定义出优化问题三要素:决策变量、优化目标和约束条件,进而建立不同的数学模型;建立数学模型后,再通过求解器帮助解决这个问题,找到问题的最优解;求解器是用来求解数学规划问题的一类软件,在现实生产生活中具有重要价值和意义;在世界一流的企业供应链管理(scm)软件,包括结合了运筹优化技术的生产计划与排程系统(aps)、运输管理系统(tms)等企业决策软件中,都能见到求解器的身影;目前,主流求解器市场主要分为两类:商业解决方案和开源解决方案;世界知名的商业求解器主要包括gurobi、ibmcplex和ficoxpress等,而开源求解器主要包括scip等;这两种类型的求解器之间,商用求解器在求解效率方面具有明显的优势;以制造业生产调度为例,在保证数据准确性的前提下,商业求解器计算的调度指标可缩短到分钟级;目前众多求解器在不同优化问题方面各有侧重点及优势,现有优化问题的求解过程大多基于以求解方法(或求解器)为主体,输入待求解问题的数学模型从而求解;因此在使用其他算法时,可能因为数学模型的微小差异就需要重新构建并输入数学模型,增加了不必要的工作量,不利于科研人员专注于科研问题的优化求解。


技术实现思路

1、为了克服现有优化问题的求解过程大多基于以求解方法(或求解器)为主体,输入待求解问题的数学模型从而求解;因此在使用其他算法时,可能因为数学模型的微小差异就需要重新构建并输入数学模型,增加了不必要的工作量,不利于科研人员专注于科研问题的优化求解的问题。

2、本发明的技术方案为:一种基于控制反转思想的优化问题通用求解框架,包括有:

3、用户侧,用于用户将所需要求解的问题输入至应用程序中,同时输入问题求解所需要的数学模型及对现有数学模型的自定义修改;

4、通用平台框架,用于管理和配置应用程序中的各个组件;

5、优化问题模块,用于对实际的优化问题进行分析,并根据分析的结果建立相应的数学模型;

6、数学模型模块,用于以便于求解方法模块调用现有解法为目的对数学模型进行处理;

7、求解方法模块,以求得最优解决方案为目的对数学模型进行求解。

8、优选的,本发明在用户侧和求解过程之间建立了一个ioc容器属性的通用框架平台,可忽略模型操作语言的不同实现求解器插件化,各种求解器中多样化的算法将可在平台中调用化;相比于大多数将模型注入求解器从而求解的过程,本发明基于di(依赖注入)设计模式将数学模型和求解过程解耦,利于模型调整及复用,同时方便各种求解方法的测试;本发明利用了控制反转(ioc)思想,求解过程在框架中分为优化问题、数学模型和求解方法三个模块组件,直接由通用平台框架创建管理,便于使用者调整模块之间的动态关系,灵活了整个优化问题的求解体系。

9、作为优选,通用平台框架在实现不同的操作时,采用依赖注入机制,其中通用平台框架在进行工作时,包括以下步骤:

10、s11:判断是否有求解方法类需要注入,如果有,先创建求解方法类,然后将其注入到数学模型类;

11、s12:判断是否有数学模型类需要注入,如果有,先创建数学模型类,然后将其注入到优化问题类;

12、s13:查找数学模型类是否有依赖需要注入;

13、s14:创建优化问题类;

14、s15:查找优化问题类是否有依赖需要注入;

15、s16:由容器管理这些对象的生命周期。

16、优选的,当用户侧需要产生求解过程中各部分的求解行为时,基于三大模块的各种行为将不会被用户侧直接创建,而是向通用平台框架请求,在通用平台框架内部维护了一个行为之间的依赖关系图,根据依赖关系将这些模块类及其行为创建出来并进行组合,因此,由通用平台框架管理求解过程行为,再由用户侧配置平台框架从而获取结果,提供了一种统一的配置方式,可以更加方便地管理和配置应用程序中的各个组件;通过依赖注入机制,若要实现不同的操作,只需对平台框架输入配置文件,其中配置文件的格式为xml等格式,显著节省了以控制行为为目的的编程成本;同时,通过平台框架可以调取各种打包在由不同语言支持的求解器中的算法,打破了程序语言壁垒,大大丰富了求解器的选择且便捷易操作。

17、作为优选,在优化问题模块进行工作时,包括以下步骤:

18、s21:以建立数学模型为目的对实际的优化问题进行分析;

19、s22:确定数学模型所需要的三个核心要素;其中,三个核心要素包括有:目标函数、决策变量和约束条件;

20、s23:根据s22中确定的数学模型所需要的三个核心要素,建立相应的数学模型。

21、作为优选,在优化问题模块确定数学模型所需要的三个核心要素时,包括以下步骤:

22、s221:找到目标函数,即评估最优解决方案的标准,包括单目标函数和多目标函数以及线性函数和非线性函数;

23、s222:寻找决策变量,即控制并使得目标函数更优的变量,决策变量的分类包括:整数、0、1和离散类型;

24、s223:确定约束条件,其中,约束条件包括有线性约束调节和非线性约束条件。

25、优选的,在分析过程中比较难把握的就是约束条件,约束条件需要全面准确,否则会导致后续的模型求解产生无穷多最优解或者没有最优解,另外约束条件往往是对现实条件的科学刻画,对约束条件的合理简化也是解决问题需要重点关注的地方

26、作为优选,在优化问题模块建立相应的数学模型时,优化数学模型的分类包括有连续优化和整数规划,连续优化包括有连续线性规划、连续二次规划和连续非线性规划,整数规划包括有整数线性规划、整数二次规划和整数非线性规划。

27、作为优选,在优化问题模块建立优化数学模型时,当面对复杂实际问题时,首先建立复杂难解的数学模型,如混合整数非线性数学模型,再对数学模型进行转换、分解子问题等操作,将数学模型转换成容易求解的数学模型,如线性规划数学模型和线性整数规划数学模型。

28、优选的,由于优化问题的分析和数学模型的建立是紧密关联的,分析的改动和模型的变化也相互影响,所以在优化问题模块中,预留模型调整功能接口,在数学模型获取求解方法无法得到期望解决方案时,也可以返回至此模块重新修改调整。

29、作为优选的,优化问题模块中设置有预留模型调整功能接口,当求解方法模块对数学模型获取求解方法无法得到期望解决方案时,返回至优化问题模块进行重新修改调整。

30、作为优选,在数学模型模块进行工作时,包括以下步骤:

31、s31:判断s21-s23中所建立的数学模型是否需要进行预处理;

32、s32:调用处理方法对数学模型进行预处理,其中处理方法包括有:分解子问题、等价转换、松弛问题、转换对偶问题和整数化等;

33、s33:对求解方法模块进行反复尝试调用,使得数学模型趋于完善。

34、优选的,优化问题模块得到的数学模型往往只是实际问题的描述,从数学角度而言其并不是一个“规范的”模型,这样的数学模型往往无法直接使用现有解决方案求解;换言之,我们还需要对模型进行预处理,甚至在处理后还需要对求解方法模块的反复尝试调用才可能使模型趋于完善,对于更贴合实际需求而复杂的工程问题,这些方法在寻求最优解决方案的过程中是不可或缺的。

35、作为优选,在求解方法模块进行工作时,包括以下步骤:

36、s41:获取用户的自定义数据,其中用户的自定义数据包括有自定义算法和对现有算法的自定义修改;

37、s42:根据用户的自定义数据对算法进行修改调节和选取;

38、s43:利用s42中选取的算法对s31-s33中所调节参数后的数学模型进行计算;

39、s44:输出解决方案至通用框架模块。

40、作为优选,在问题求解模块根据用户的自定义数据对算法进行选取时,所选取的算法包括有:线性规划法、动态规划法、混合整数规划法、遗传算法、模拟退火算法、粒子群算法、蚁群算法、人工神经网络算法、免疫算法中的一种或者多种。

41、优选的,求解方法模块整合了现有求解方法,包含但不局限于自定义算法以及上述算法;且由于弱化了模型与求解方法的耦合关系,将模型独立于求解方法之外,所以用户可以通过平台框架自由选择调用多种求解器的各种算法,实现了求解过程中求解器插件化;若是求解失败,求解流程将从头再来,由用户侧再次控制流程,于代码中进行修改调整;而本文中的通用求解框架将各组件的生命周期管理交于通用平台框架,因此可以在优化问题、数学模型、求解方法这些组件中任意修改动态关系。

42、本发明的有益效果:

43、1、相对于现有优化问题的求解过程大多基于以求解方法(或求解器)为主体,输入待求解问题的数学模型从而求解;因此在使用其他算法时,可能因为数学模型的微小差异就需要重新构建并输入数学模型,增加了不必要的工作量,不利于科研人员专注于科研问题的优化求解;本发明通过在当用户侧需要产生求解过程中各部分的求解行为时,基于三大模块的各种行为将不会被用户侧直接创建,而是向通用平台框架请求,在通用平台框架内部维护了一个行为之间的依赖关系图,根据依赖关系将这些模块类及其行为创建出来并进行组合,因此,由通用平台框架管理求解过程行为,再由用户侧配置平台框架从而获取结果,提供了一种统一的配置方式,可以更加方便地管理和配置应用程序中的各个组件;

44、2、通过依赖注入机制,若要实现不同的操作,只需对平台框架输入配置文件,其中配置文件的格式为xml等格式,显著节省了以控制行为为目的的编程成本;同时,通过平台框架可以调取各种打包在由不同语言支持的求解器中的算法,打破了程序语言壁垒,大大丰富了求解器的选择且便捷易操作;

45、3、本发明在用户侧和求解过程之间建立了一个ioc容器属性的通用框架平台,可忽略模型操作语言的不同实现求解器插件化,各种求解器中多样化的算法将可在平台中调用化;相比于大多数将模型注入求解器从而求解的过程,本发明基于di(依赖注入)设计模式将数学模型和求解过程解耦,利于模型调整及复用,同时方便各种求解方法的测试;本发明利用了控制反转(ioc)思想,求解过程在框架中分为优化问题、数学模型和求解方法三个模块组件,直接由通用平台框架创建管理,便于使用者调整模块之间的动态关系,灵活了整个优化问题的求解体系。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1