数学建模中提升目标、变量和约束的紧凑度的几种技巧

在数学建模中,我们常常会更青睐于紧凑的形式,以下有一些常见的方法来提升目标、约束、变量的范围。

  1. 针对问题的特定信息来收紧边界:尽管求解器常常会有自己的预处理策略,其中包括推导约束的隐藏关系来对变量边界做收紧处理,但这些方法是从模型本身出发进行预处理;如果建模者能够针对问题,凭经验增加一些信息,来收紧模型边界,往往能够加快模型的优化过程;
  2. 选择合适的单位(量级)来表示变量和约束:前面的文章提到,同一个模型当中的量级相差过大,往往会导致求解出现数值问题,另一方面问题是,如果模型量级与问题的容忍误差的差距过大,那么问题收敛到容忍误差范围内的难度将更大,例如,模型的可行解容忍误差为1e-6,则模型当中出现 10e10 将会加大优化难度,可以通过改变变量、约束单位为更大的单位(吨、百万…),这种方法通常可以显著地改善模型的数值问题;
  3. 目标的分解:对于多目标问题,有一种常见的做法是将多个目标加权求和为单目标问题,在实际操作中,往往比较难确定合适的权重大小,且容易出现多个目标系数的范围差距非常大的问题。例如,假如有两个优化目标, 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 值能加快求解效率;第二个是采用分层优化的方式,来处理多个目标(或者将系数差距较大的目标拆分成多个目标),以此来消除系数范围不合理引起的求解问题。

简而言之,提升模型紧凑度有三个技巧:

  1. 增加针对性的信息收紧变量边界;
  2. 降低模型系数量级和容忍误差之间的差距;
  3. 目标系数差距较大项可以分解为多个目标求解。

你可能感兴趣的:(运筹优化决策,#,数学建模,数学建模,紧凑模型)