本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
运筹方法
线性规划
一种数学模型
在一组约束条件下来寻找目标函数的极值(极大值和极小值)问题。
线性规划问题的数学模型通常由线性目标函数、线性约束条件、变量非负条件组成(实际问题中的变量一般都是非负的)。
线性规划问题就是面向实际应用,求解一组非负变量,使其满是给定的一组线性约束条件,并使某个线性目标函数达到极值。满是这些约束条件的非负变量组的集合称为可行解域。可行解域中使目标函数达到极值的解称为最优解。
线性规划问题的最优解要么是0个(没有),要么是唯一的(1个),要么有无穷个(只要有2个,就会有无穷个)。 在实际应用中,可以直接求约束条件方程组的解,即是交叉点,将这些解代入到目标函数中判断是否极值即可。
- 试题
-
通过画图我们可知,X1,X2的最优解为2,6,目标值为26。
-
我们如何时候这个scipy的公式来计算这个值呢:
动态规划
-
求解给定多种方案求出最佳方案的问题。
-
直接运用动态规划法的原理来解题非常复杂,因此一般采用穷举法解题:
-
依据真题规则,将题目给出的所有投资方案全部穷举出来,所有方案获得的收益一目了然,然后取最佳投资方案,简单明了,不容易错。 试题:
-
如果从A0添加一个元素,得到A1的变化过程。即A0->A1; 进而有A1->A2; A2->A3; …… ; Ai->Ai+1. 这就是严格的归纳推理,也就是我们经常使用的数学归纳法; 然而,Ai与Ai+1往往不是互为充要条件,随着i的增加,有价值的前提信息越来越少,我们无法仅仅通过上一个状态得到下一个状态,因此可以采用如下方案:
-
{A1->A2}; {A1, A2->A3}; {A1,A2,A3->A4};……; {A1,A2,...,Ai}->Ai+1. 这种方式就是第二数学归纳法。 上述两种状态转移图如下图所示:
伏格尔法
针对多种解决方法问题,如多个煤场供给多个工厂的运输成本。
从正常思维来思考,在没有任何约束条件的情况下,我们会优先考虑运输成本最低的方案,这就是最小元素法,但是当有多个制约因素时,最小元素法的缺点是,为了节约一处的费用,有时造成在其他处要多花几倍的运费。
因此,多个因素互相制约时,普遍采用伏格尔法又称差值法,该方法考虑到,某产地的产品如不能按最小运费就近供应,就考虑次小运费,这就有一个差额。差额越大,说明不能按最小运费调运时,运费增加越多。因而对差额最大处,就应当采用最小运费调运。
由上述原理,可得出其解题步骤为:
- 计算出每行每列的最小运费和次小运费的差值(绝对值)。
- 从这些差值里选出最大的的行(列),定位到该行(列),从该行(列)中找出最小的那一个,就是优先供应的方案。
- 供应后,更新供应量和需求量,如果某行(列)的供应量和需求量为o,则删除该行列。4、形成一个人新的表格,重复上述步骤。 详细例题解析见文老师视频课程讲解。
博弈论
研究具有竞争和对抗性质的行为的数学理论和方法。参加竞争的各方都有各自的目标和利益,各方为了达到自己的目标,必须要研究对手的资料,博弈论就是研究如何在多方中寻找出一个最合理的方案。
参与博弈的双方处于竞争状态,双方都不能信任对方,因此都只会采用对自己有用的方案,而这种方法对双方来说并不是最优的,但因为双方都不信任,要只能这样。
说一个故事
在一条笔直的公路上,甲乙两个人各自开一辆车相向而行,眼看就要撞到一起的。游戏的规则就是谁先打方向盘谁就输了。赢得人可以获得10万人民币。如果相撞,则参赛者都会死亡。
如果你是其中一个参赛者,你会怎么做,从而更大程度上获得胜利?
博弈论建议:你可以当着对手的面,把自己这辆车的方向盘给卸了。