matlab算法

2022-04-06 Views691字3 min read
  1. 线性回归
    有限的条件下,最大的收益

    [s.t. 约束条件的意思] [参数是决策变量] [xy的函数是目标函数] [每个变量是一次方 ]
    典型的赛题:生产安排,投资收益,销售运输,车辆安排

  2. 利用matlab自带函数,求解线性问题

    1. 模型化为matlab标准型:目标函数最小值,约束条件小于等于或等于
    2. 如果求y的最大值,可以变成求-y的最小值,约束条件同理,也可以通过加负号化解
    3. f 目标函数的系数列向量
      A,b 不等式约束条件的变量系数矩阵和常数项矩阵
      Aeq beq 等式约束条件的系数矩阵和常数项矩阵
      lb ub 决策变量的最小取值和最大取值
    4. matlab 函数
      • [x,fval]=linprog(f,A,b,Aeq,beq,lb,ub)[x, fval ]=linprog (f, A, b, A e q, beq , l b, u b)
      • x返回最优解的变量取值,fval返回目标函数的最优值
      • 若不存在不等式约束,用”[]“代替A和b,同理也可以代替Aeq beq
      • 若题目求最大值,求解完成后,记得再将结果再取负
  3. 非线性规划

    1. 至少一个变量不是一次方

    2. fun 单独函数文件里定义的目标函数
      x0 决策变量的初始值。不知道的话随便写个数
      A, b 线性约束的不等式变量系数矩阵和常数项矩阵(都是小于等于≦)
      Aeq, beq 线性约束的等式变量系数矩阵和常数项矩阵
      Ib, ub 决策变量的最小取值和最大取值
      nonlcon 非线性约束,包括不等式和等式
    3. [x, fval ]= fmincon (fun, x0, A, b, Aeq, beq, lb, ub, nonlcon)

    4. 其中目标函数用fun1写出来,nonlcon用fun2写出来,写时要使等式右边全为0,如果是大于等于,就和线性一样变成负号,不等式和等式用两个参数写

    5. 典型赛题:投资规划(最佳投资方案)角度调整 生产安排

  4. 多目标规划

    • 正负偏差变量
    • 绝对约束和目标约束
    • 优先因子
    • 需要衡量每个目标的完成情况,并主观上区分多个目标的重要性,使得整体的完成情况尽量好
      • 把所有的目标约束都加上didi+d_{i}^{-}-d_{i}^{+}变成等式
      • 按照需要,主观确定优先因子P
    • 求解方法 matlab中的fgoalattain函数,或序贯算法,或用Lingo求解
    • 典型赛题:使XXX最多/少利润,同时尽量xxx
  5. 最短路径 Dijkstra算法 或matlab的graphshortestpath函数

  6. 最小生成树 Kruskal算法 或matlab的minspantree函数

EOF