打开《运筹学》的课本,初始的章节即教导我们最有效的算法——单纯形法,它专门用于求解线性规划问题。
当面临复杂的难题时,若能将其转化为线性规划问题,便能高效求解,进而有望发表优质的学术成果。
在实际的科研建模过程中,目标函数或约束条件有很大可能性呈现出非线性的形式。
若此时选择采用启发式算法求解,便相当于放弃了追求精确解,也失去了发表高水平期刊的可能。
了解并掌握何种形式可以转化为线性和如何进行转化显得尤为重要。
以下形式的函数可实现线性化:
分段函数形式、绝对值函数形式、最小/大值函数形式、逻辑或形式、含有0-1变量的乘积形式以及混合整数形式,以及分式目标函数。
线性化的主要手段,简而言之,就是引入0-1变量和引入很大的整数M。
灵活运用这两点,会展现出极为巧妙且神奇的线性化技巧,希望你能感受到这其中的数学之美。
鉴于内容较多,我们将分两期进行详细阐述,本期先介绍较为简单的几种线性化方法。
第一类:分段函数
对于具有固定成本的采购问题,其采购成本可被分为不采购和采购两段。其线性化方法简单而巧妙。
这里涉及到的辅助变量是0-1变量和一个大整数M。
第二类:绝对值函数
绝对值函数的线性化需要以下两种方法之一进行转换:
方法一:使用yi来替代绝对值部分;
方法二:引入ui和vi来进行替代。
基于相关数学定理,我们可以将之前的数学模型转化为线性模型。
第三类:MaxMin/MinMax函数
对于具有良好数学感觉的同学来说,可能会联想到夹逼定理这一高数课上的概念。而MaxMax和MinMin函数的线性化则相对复杂一些。
第四类:逻辑或的线性化
这一部分主要针对约束条件中含逻辑或的线性化操作。逻辑或的约束条件通常存在三种情形。
情形一的线性化方法涉及到0-1变量和大整数M的引入。
其他情形的方法同理,都是通过分类讨论和取0或1的几种情形来理解。
后记
受限于篇幅,Max/Min函数、含有0-1变量的乘积形式、混合整数形式以及分式目标函数的线性化操作将在下一期进行讲解。
面对非线性问题时,建议大家多尝试引入0-1变量和大M的方法。
至于具体是采用≥还是≤的形式,是加还是减的形式(指± M(1 ± y),是需要根据具体情况自行判断的。
祝大家能够通过掌握线性化技巧从而在学术上取得更多成果,并祝愿早日结束。
听闻不如亲见,亲见不如知之;知之不如行之。我是科研小飞,期待与您共同进步。