线性规划线性规划是一个优化问题,其中目标函数和约束是线性的。它是运筹学的一个重要分支,研究早,发展快,应用广,方法成熟。它是一种辅助人们进行科学管理的数学方法。它的英文缩写是LP。
一、业务问题描述:这是一个简单的线性规划问题。具体要求如下:
一家公司生产氨(NH3)和氯化铵(NH4CI)。该公司的日处理能力为50单位氮、180单位氨和40单位氯。氨的利润是30美元/单位,氯化铵的利润是40美元/单位。如何确定氨和氯化铵的产量使利润最大化?
二、从数学角度理解并定义问题:
将上述生产问题转化为数学问题,建立数学模型一般有三个步骤:
1.根据影响要达到的目的的因素,找到决策变量;
2.目标函数由决策变量和目标之间的函数关系决定;
3.决策变量必须满足的约束条件是由决策变量所服从的约束条件决定的。
三、OPL模型建立的操作步骤
下面的OPL语言用于理解和定义这个问题。OPL模型是寻找决策变量的过程,使决策变量满足约束条件,获得目标函数的最大值。以下是解决这个问题的几个步骤:
1.定义问题的数据变量,
为了方便起见,下面定义的数据变量都是数组变量。数组是有序数据的集合,数组中的每个元素都属于相同的数据类型。
(1)产品代表气体的名称,
{ string }产品=.
即一个名为产品被定义为一维数组。
(2)成分代表所包含的成分,
{string}组件=.
即一个名为组件被定义为一维数组。
(3)需求代表每种气体中包含的成分,
浮动需求[产品][组件]=.
即一个名为需求和二维数组。
(4)利润代表相应气体的利润,
浮动利润[产品]=.
即一个名为利润和一维数组。
(5)库存代表该配料的日加工能力,
浮存股票[组件]=.
即一个名为股票它是一个一维数组。
2.数据的初始化;
定义数据变量后,应该初始化数据。所谓初始化,就是给数据变量赋值。上面定义的下列数据变量依次被赋值:
产品={ NH3 'NH4CI };
Components={ N 'H 'CI };
demand=[[1 3 0][1 4 1]];
利润=[30 40];
stock=[50 180 40];
3.定义决策变量。数据变量和决策变量是有区别的。数据变量是特定数据的名称,例如先前定义的数据变量产品,代表公司生产的气体的名称,而决策变量用于数学模型。这个问题要做的决定是每种气体的产量。
dvar彩车生产[产品];
Dvar(决策变量)是定义决策变量最常用的关键字之一,
这里,一个名为生产它代表两种气体的输出。它实际上是一个浮点数组。
4.目标函数的定义,即利润最大化。目标函数是决策变量的线性函数,
达到最大值
总和(产品中的p)
利润[p] *产量[p];
5.约束条件的设置,有三个组件具有日处理能力的限制,以非常简洁的方式实现:
服从于{
forall(组件中的c)
联系类型:
总和(产品中的p)
需求[p][c] *产量[p]=库存[c];
}
四、使用IBM ilog CPL ex optimization studio 12.8解决此问题。
IBM ILOG CPL exo optimization STUDIO 12.8解决了这个问题,具体操作过程如下:
打开软件界面,有四个常用窗口,分别是OPL项目导航窗口、编辑窗口、问题浏览器窗口和输出窗口;
创建一个新的OPL项目,项目名称为gaseous。检查添加默认运行配置,创建模型和贷方(即credit)
编辑模型文件的内容,即气态。文件。
模型文件包含四个部分:
(1)定义数据变量;
(2)定义决策变量;
(3)设定目标函数;
(4)设定约束条件;
编辑数据文件的内容,即气态. 文件。
然后在配置(默认):
运行配置以获得以下输出:
五、业务解释
根据IBM ilog CPL ex optimization studio 12.8的运行结果,当氨气产量为6.6667台,氯化铵产量为40台时,公司可以获得最大利润,满足当天各组件的加工能力限制。
标签:问题变量产品