Ⅰ函数极值与规划模型

国赛的A题,美赛的ABD题。

以寻找最优的策略为背景

一,线性规划模型

求一个线性目标函数在线性可行域的:最值问题

具体来说:约束(边界)为 线性的(直线),问题 为 线性的(直线)

什么是线性呢?

(线性代数)                

向量(数的集合):        1,向量的基本运算

矩阵(向量的集合):     1,矩阵的运算(行列式怎么算,矩阵乘法,矩阵求逆)

用python进行矩阵运算

import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[1,2],[3,4],[5,6]])
c = np.array([[1,2,3]])
d = np.array([[9,8,7],[3,2,1]])
#矩阵加法
sum =a+d
#放缩
e=3*a
#数乘、矩阵乘
e = np.dot(a,b)#元素乘
e=a*d
#转置
e = c.T
e = np.array([[1,2],[3,4]])
#逆矩阵
result = np.linalg.inv(e)
#行列式
result = np.linalg.det(e)
#矩阵的秩
e = np.linalg.matrix_rank(d)

运用python求一次方程组的解

import numpy as np


A = np.array([[10,-1,-2],[-1,10,-2],[-1,-1,5]])#A为系数矩阵
b = np.array([72,83,42])#b为常数列
inv_A = np.linalg.inv(A)# A的逆矩阵
x = inv_A.dot(b) # A的逆矩阵与b做点积运算
x = np.linalg.solve(A,b) # 5,6两行也可以用本行替代

print(x)


from sympy import symbols, Eq, solve
x,y,z = symbols('x y z')
eqs = [Eq(10 * x - y - 2 * z, 72),
       Eq(-x + 10 * y - 2 * z, 83),
       Eq(-x -y + 5 * z, 42)]
print(solve(eqs,[x,y, z]))

标准形式                                       规范式

3b15bf4f28b14873a120b01b2408db33.png            ee5c20490e2444739d25c574ddc1327a.png

 指令求解

 a2aafcc450c349328d089ed54d74210f.png代码略

 

005222cb75ed46b193280dc4506c9670.pngbf6591abd7854a73ba45f39110f4ede0.png

二,非线性规划

0a7e63ab34534cdcbdcd05286fe2b5f4.png7569c970ffff4258a6465d371aa7bcef.png

什么是非线性?

 (高数)

多元函数,多元函数的微分,多元函数求极值,拉格朗日乘子法和KKT(python实现)

例题代码

31574e5044ca433d9c31d198b14dacd9.png

代码略

三,整数规划模型

26fed91c9cea4b4daa798a13b78fa78c.png0-1规划

指派问题

c8db66032d6d4eb69dd84037b119e8ba.png

例题

9732d54874274ca38bc59275fd03cc9c.png

 代码略

四,动态规划

13bbccdc39244f739c6206bd558b8c8d.png

8a834c8e9b8d42d7bbe0bbaf23071081.png

 代码略

贪心策略

        贪心算法总是作出在当前看来是最好的选择。也就是说贪心算法并不从整体最优上加以考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,我们希望贪心算法得到的最终结果也是整体最优的。
        贪心算法通过一系列的选择来得到一个问题的解。它所作的每一个选择都是当前状态下某种意义的最好选择,即贪心选择。希望通过每次所作的贪心选择导致最终结果是问题的一个最优解。这种启发式的策略并不总能奏效,然而在许多情况下确能达到预期的目的。解活动安排问题的贪心算法就是一个例子。下面我们着重讨论可以用贪心算法求解的问题的一般特征。
        对于一个具体的问题,我们怎么知道是否可用贪心算法来解此问题,以及能否得到问题的一个最优解呢?这个问题很难给予肯定的回答。但是,从许多可以用贪心算法求解的问题中我们看到它们般具有两个重要的性质:贪心选择性质和最优子结构性质。

8a834c8e9b8d42d7bbe0bbaf23071081.png

代码略

方法总结

b3eee14e81f646da93cfafb16aeb17f2.png

单纯形法

思想: 固定变量,不断变换基向量求方程组的解带入,看是不是最优解,不是就更新迭代现阶段的解

 

蒙特卡洛法

蒙特卡洛方法就是在可行域范围内生成大批量随机数据点观测这些数据点在什么位置取得近似最优。但是生成点因为是随机的所以肯定是要生成大批量数据去做计算的,然后求出来的也只是数值的近似最优解,更多的适用于解非线性问题,线性问题是能得到准确解的。

e48a7f0f42d34afb9a5e4a85ee3db9c1.png

 33c0880f32f647e59a5f3b9d636e29d9.png

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值