数学建模中提升目标、变量和约束的紧凑度的几种技巧
2023-12-25 22:22:03
在数学建模中,我们常常会更青睐于紧凑的形式,以下有一些常见的方法来提升目标、约束、变量的范围。
- 针对问题的特定信息来收紧边界:尽管求解器常常会有自己的预处理策略,其中包括推导约束的隐藏关系来对变量边界做收紧处理,但这些方法是从模型本身出发进行预处理;如果建模者能够针对问题,凭经验增加一些信息,来收紧模型边界,往往能够加快模型的优化过程;
- 选择合适的单位(量级)来表示变量和约束:前面的文章提到,同一个模型当中的量级相差过大,往往会导致求解出现数值问题,另一方面问题是,如果模型量级与问题的容忍误差的差距过大,那么问题收敛到容忍误差范围内的难度将更大,例如,模型的可行解容忍误差为1e-6,则模型当中出现 10e10 将会加大优化难度,可以通过改变变量、约束单位为更大的单位(吨、百万…),这种方法通常可以显著地改善模型的数值问题;
- 目标的分解:对于多目标问题,有一种常见的做法是将多个目标加权求和为单目标问题,在实际操作中,往往比较难确定合适的权重大小,且容易出现多个目标系数的范围差距非常大的问题。例如,假如有两个优化目标, f 1 , f 2 f1, f2 f1,f2,前者目标优于后者目标,通过加权求和后转化为单目标问题 f = M f 1 + f 2 f=Mf1+f2 f=Mf1+f2,其中的 M M M 是个极大值,在对偶问题当中,这个 M M M 值将会转化到对偶问题的约束右端,当对偶可行解误差较小时,就会回到第2点,这个 M M M 值会导致求解器很难找到对偶可行解,因此有两个策略:用尽可能小的 M M M 值,也就是比较紧凑的 M M M 值能加快求解效率;第二个是采用分层优化的方式,来处理多个目标(或者将系数差距较大的目标拆分成多个目标),以此来消除系数范围不合理引起的求解问题。
简而言之,提升模型紧凑度有三个技巧:
- 增加针对性的信息收紧变量边界;
- 降低模型系数量级和容忍误差之间的差距;
- 目标系数差距较大项可以分解为多个目标求解。
文章来源:https://blog.csdn.net/Linshaodan520/article/details/135142162
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!