关于线性规划问题是什么已经有很多人早就说明过了,我也小抄一波给大家预热预热,线性规划问题是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法。
在一定条件下,合理安排人力物力等资源,使经济效果达到最好.一般地,求线性目标函数在线性约束条件下的最大值或最小值的问题,统称为线性规划问题。
满足线性约束条件的解叫做可行解,由所有可行解组成的集合叫做可行域。决策变量、约束条件、目标函数是线性规划的三要素。
OK,进入正题,什么是单纯形算法:
单纯形算法的基本思想是从一个基本可行解出发,进行一系列的基本可行解的变换,其中基本可行解是指在任何约束标准型线性规划问题中,只要将所有非基本变量都置为0,从约束方程式中解出满足约束的基本变量的值,最后得到的解。
单纯形算法的基本步骤是:
- 选入基变量,即找到目标函数中的正系数。
- 选离基变量,找到约束方程中可以替换的负系数。
- 作转轴变换,即将入基变量和离基变量进行替换,然后重新构造单纯形表。
- 循环上面三个步骤直到目标函数中所有变量的系数为负值,此时就得到了最优结果。
举例说明:
求解下面这个线性规划模型
首先定义一组基本变量inx[k],和一组非基本变量ninx[v],基本变量就是在中间那三个约束条件里面找的变量,每个约束条件只找一个基本变量,这个基本变量要满足没有在目标函数里面出现并且系数为正,而且找的三个基本变量要不一样,在这个例子就是[x1,x4,x6]。非基本变量就是除了基本变量以外的变量,在这个例子里就是[x2,x3,x5]。
然后定义一个单纯形表Chart[n*m],它的每行基本变量,列是非基本变量,里面的值是目标函数或约束的各个变量的系数,按照本例,则结构如下所示:
/ | / | x2 | x3 | x5 |
/ | z=0 | -1 |