matlab算法
-
线性回归
有限的条件下,最大的收益
[s.t. 约束条件的意思] [参数是决策变量] [xy的函数是目标函数] [每个变量是一次方 ]
典型的赛题:生产安排,投资收益,销售运输,车辆安排 -
利用matlab自带函数,求解线性问题
- 模型化为matlab标准型:目标函数最小值,约束条件小于等于或等于
- 如果求y的最大值,可以变成求-y的最小值,约束条件同理,也可以通过加负号化解
-
f 目标函数的系数列向量 A,b 不等式约束条件的变量系数矩阵和常数项矩阵 Aeq beq 等式约束条件的系数矩阵和常数项矩阵 lb ub 决策变量的最小取值和最大取值 - matlab 函数
- x返回最优解的变量取值,fval返回目标函数的最优值
- 若不存在不等式约束,用”[]“代替A和b,同理也可以代替Aeq beq
- 若题目求最大值,求解完成后,记得再将结果再取负
-
非线性规划
-
至少一个变量不是一次方
-
fun 单独函数文件里定义的目标函数 x0 决策变量的初始值。不知道的话随便写个数 A, b 线性约束的不等式变量系数矩阵和常数项矩阵(都是小于等于≦) Aeq, beq 线性约束的等式变量系数矩阵和常数项矩阵 Ib, ub 决策变量的最小取值和最大取值 nonlcon 非线性约束,包括不等式和等式 -
[x, fval ]= fmincon (fun, x0, A, b, Aeq, beq, lb, ub, nonlcon)
-
其中目标函数用fun1写出来,nonlcon用fun2写出来,写时要使等式右边全为0,如果是大于等于,就和线性一样变成负号,不等式和等式用两个参数写
-
典型赛题:投资规划(最佳投资方案)角度调整 生产安排
-
-
多目标规划
- 正负偏差变量
- 绝对约束和目标约束
- 优先因子
- 需要衡量每个目标的完成情况,并主观上区分多个目标的重要性,使得整体的完成情况尽量好
- 把所有的目标约束都加上变成等式
- 按照需要,主观确定优先因子P
- 求解方法 matlab中的fgoalattain函数,或序贯算法,或用Lingo求解
- 典型赛题:使XXX最多/少利润,同时尽量xxx
-
最短路径 Dijkstra算法 或matlab的graphshortestpath函数
-
最小生成树 Kruskal算法 或matlab的minspantree函数