文章概览
线性规划问题
线性规划问题都可以建立如下方程
其中第一行的 x1、x2、x3 称为决策变量。
通过 python 求解,使用 scipy 的 optimize.linprog 函数,代码如下
1 | from scipy import optimize as op |
注意 optimize 函数判定约束条件统一是大于号。
投资的收益与风险
- 问题:每种股票有收益率 r 和风险 q,合理分配资金,使收益尽可能大而风险尽可能小
- 模型:定义股票购买量 $x_i$
整数规划
背包问题
- 问题:每件物品有重量 a 和价值 c,限定重量 b 内任取物品,使价值总和最大
- 模型:定义某物品是否被选取 $x_i \in {0,1}$
指派问题
- 问题:某人完成某项任务的费用为 c,分配人员完成与人数同等的任务,使费用总和最小
- 模型:定义某人是否分配到某任务 $x_{ij} \in {0,1}$
旅行商问题
问题:从某城市到零一城市的费用为 c,安排旅行顺序,使费用总和最小
模型
c 变量表示费用,$x_{ij} \in {0,1}$ 变量表示路径是否被选择
$u_i \in {1,2,…,n}$ 变量保证只有 $i<j$ 的 $x_{ij}$ 才可能为1,防止回路
比赛项目的排序问题
问题:每名运动员报名了比赛项目若干,安排比赛顺序,尽可能使运动员不连续参加两场比赛
模型:定义 $w_{ij}$ 同时参加两项目的人数和 $x_{ij} \in {0,1}$ 变量表示路径是否被选择(用类似于旅行商的模型)
多想多做,发篇一作