最短路及动态规划、网络流模型的决策变量被建模为离散变量,我们仍可以优雅解决这些问题。但现实中还有很多场景无法建模为这种特殊的离散模型。绝大多数的整数及组合优化模型实际上更有挑战性。今天这一篇我们对离散模型做个整体介绍,一共七种场景。
1
块状/批量线性规划及固定成本
一大类离散优化问题是在线性规划基础上加上非此即彼的边际约束或目标函数。我们把这类问题叫做块状/批量线性规划(lumpy linear program)
以瑞典钢材生产案例来说明,重新展示一下该线性规划问题:
案例传送门:线性规划的对偶理论
实际应用中,钢铁冶炼更加复杂。在混合物中一些金属原料成分可能是大块的回收材料,这些材料无法被分割成更小的碎块。因此,要么整块被使用,要么整块不被使用。
对于这种生产要素,解决方法是引入新的离散变量:
假设对于瑞典钢材生产案例,原料1和原料2的量只能使用0或75千克和0或250千克,那么线性规划模型将变为:
约束条件随之改变。这里的y被定义为:
进一步,若目标函数存在固定成本(fixed charge),也可以让线性规划问题转变为块状/批量线性规划问题。比如一个非负决策变量x可能具有成本:
f是初始生产启动成本,需要在生产前支付。而后生产过程中,线性规划单位可变成本为c.
解决这样的问题,可以固定成本作为新的变量来建立一个混合整数线性规划模型,转换后的模型形成了开关约束,即连续变量x只有在对应的二元变量y=1时才成立:
依然考虑瑞典钢材生产案例,现在假设考虑四种材料的生产启动成本,均为每次350克朗,那么新的线性规划问题变为:
2
背包模型与资本预算模型
背包模型(knapsack model)是只有一个主约束的纯整数线性规划模型。大多数情况下,所有背包决策变量都是0-1变量。我们有举个电子选票背包问题,利用动态规划思想可以解决——最短路与动态规划(三)
这里我们再举一个案例加以展示模型——印地赛车背包问题
印地赛车队可以给今年的赛车添加6种特性中的几种来提高其最高时速。下表列出了预估引入这些特性的花销及对速度的提高。
赛车队想在不超过35000预算的情况下最大化赛车的表现。使用决策变量:
将原问题化为如下背包模型:
背包问题有一个主约束表示预算约束,当在不同时间段都有预算约束时,或有多种受限资源时,我们得到了更普遍的资产预算模型(capital budgeting model),也称多维背包问题(multidimensional knapsack)
还是用案例加以说明——NASA资产预算问题。
美国宇航局必须持续应对在需多互相竞争的航天任务中分配预算的问题。下表展示了一些航天任务。
我们必须在长达25年的时间内的5个阶段中,对上表的项目进行选择。因此,容易看出决策变量为:
对于这类问题,有三个要考虑的场景:预算约束、互斥选择和依赖关系。
首先,预算约束(budget constraint)在每个时间段限制了选定的项目、投资品等的总资金或消费的资源,使其不超过可以得到的资金或资源。
对于NASA案例,其预算约束为:
互斥条件决定了我们最多可以从选择集合中选出一个选项,这种约束条件可以用每个选择集合中的变量求和形式来表示。
对于NASA案例,其互斥选择为: