线性规划的定义
- 一个优化问题,如果其所有表达式(条件,目标,约束)都是线性的,那么它就是线性规划。
例题
- 游戏每天提供 100 点体力,可通过通关 A、B、C 三张地图获取经验升级。
- 通关奖励与消耗:
- A 地图:20 点经验 / 次,消耗 4 点体力 / 次
- B 地图:30 点经验 / 次,消耗 8 点体力 / 次
- C 地图:45 点经验 / 次,消耗 15 点体力 / 次
- 约束条件:A、B、C 三张地图每天通关总次数最多 20 次。
解答:
我的思路
- 刷A图的体力转换经验是1:5,B图1:3.75,C图1:3
- 所以A图最值得刷
- 但是如果全刷A图会浪费20体力
- 只能去掉几张A,用B来补
- 少1A多1B的差价是4体力,正好可以整除20
- 最终确定15次A图,5次B图
几何意义
可行域
- 由于我们的约束条件都是线性的,我们可以在一个平面直角坐标系中画出所有的条件,最终围成的区域内一定有我们的解。
- 可行域一定是一个凸多边形
- 有关几何意义的内容,大致理解就可以,不要丝扣,我们还是应该致力于解决问题。
决策变量
- 问题中要确定的未知量
目标函数
- 即最终想求解最值的函数
约束条件
- 一般约束条件:各种实际条件限制,时间,资金等
- 隐藏约束条件:函数、自变量的定义域限制、
解题思路
- 数学建模的过程,就是把题目翻译成数学语言的过程
- 一组公式,加上对这组公式的含义的解释,就是一个数学模型
- 模型求解可以用单纯形法
- 建议用python 或matlab求解
- 如果出现多个目标函数,即多目标规划问题,应保留其中一个目标函数,将剩余的函数转换为约束条件,变成单目标规划问题求解
和多元函数求极值的关系
拉格朗日数乘法(只能用于等式)
套公式(代码)
- 让kimi写了个求解线性规划的代码,以后只需要把数据整理好写到三个表中就可以了,整理数据的活也可以给AI。
- 有一个小技巧,改表格的时候,把csv改成txt,直接粘贴AI给的表格的文本文档形式,然后保存之后再改回csv,非常的方便。