线性规划模型的LINGO软件求解

2016-10-21 06:13姜远彦
新教育时代·学生版 2016年6期

姜远彦

摘 要:本文通过实例介绍运用LINGO软件求解线性规划问题。

关键词:线性规划问题 LINGO软件 求解

线性规划是运筹学中形成最早、最成熟的一个分支,是优化理论最基础的部分,也是运筹学最核心的内容之一。线性规划主要是用来确定具有多个变量的线性函数,在变量满足线性约束条件下的最优解。目前广泛应用于工农业、军事、交通运输、决策管理、物流管理等领域,线性规划的方法已经成为求解各种优化问题的主要方法。

1947 年丹捷格(G.B.Dantzig)提出的单纯形方法是求解一般线性规划问题的通用方法,对于数据简单的线性规划问题用这种方法手工求解还是可行的,但对于数据较复杂的规划问题手工求解就变得比较困难,计算量太大,容易出错,因此运用计算机相关软件求解线性

规划问题便成为首选的方式。目前,已有多种软件可提供线性规划问题的计算机求解,其中包括专业优化软件LINDO/LINGO、WINQSB,具备强大计算功能的MATLAB、MATHEMATICA,以及具有规划求解功能的EXCEL软件。本文介绍运用LINGO软件来求解具体的线性规划问题。

一、线性规划基本概念

1.线性规划的定义

线性规划是指如何最有效或最佳地谋划经济活动。它所研究的问题有两类:一类是指一定资源的条件下,达到最高产量、最高产值、最大利润;一类是,任务量一定,如何统筹安排,以最小的消耗去完成这项任务。如最低成本问题、最小投资、最短时间、最短距离等问题。前者是求最大值问题,后者是求最小值问题。总之,线性规划是在一定限制条件下,求目标函数最值的问题。

2.线性规划三要素

(1)目标函数最优化——单一目标、多重目标问题如何处理?

(2)实现目标的多种方法——若实现目标只有一种方法不存在规划问题。

(3)生产条件的约束——资源是有限的、资源无限不存在规划问题。

3.线性规划模型的基本结构

(1)决策变量——未知数。它是通过模型计算来确定的决策因素。又分为实际变量——求解的变量和计算变量,计算变量又分松弛变量(上限)和人工变量(下限)。

(2)目标函数——经济目标的数学表达式。目标函数是求变量的线性函数的极大值和极小值这样一个极值问题。

(3)约束条件——实现经济目标的制约因素。它包括:生产资源的限制(客观约束条件)、生产数量、质量要求的限制(主观约束条件)、特定技术要求和非负限制。

二、线性规划问题的数学模型

1.模型建立的步骤

从实际问题中建立数学模型一般有以下三个步骤:

(1)根据影响所要达到目的的因素找到决策变量;

(2)由决策变量和所在达到目的之间的函数关系确定目标函数;

(3)由决策变量所受的限制条件确定决策变量所要满足的约束条件。

2.线性规划问题数学模型的基本形式

(1)线性规划问题数学模型的一般形式是:

三、线性规划问题的具体实例以及模型的建立

1.具体实例

某奶制品加工厂用牛奶生产,两种奶制品,1桶牛奶可以在设备甲上用12小时加工成3 公斤,或者在设备乙上用8小时加工成4 公斤,且12每公斤获利24元,每公斤获利16元。现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的工作时间为480小时,并且设备甲每天至多能加工100公斤,设备乙的加工能力没有限制。试为该厂制定一个生产计划,使每天获利最大。

2.模型建立

每天50 桶牛奶,工人总工作时间共480小时,至多加工100公斤.设用桶牛奶生产,用桶牛奶生产,下面给出该问题的目标函数和约束条件:

四、利用LINGO软件求解

1. LINGO软件简介

LINGO是美国LINDO系统公司开发的一套专门用于求解最优化问题的软件包。LINGO用于求解求解线性规划、二次规划、非线性规划,以及一些线性和非线性方程组的求解、代数方程求根等。

一般地,使用LINGO求解运筹学问题可以分为以下两个步骤来完成:

(1)根据实际问题,建立数学模型,即使用数学建模的方法建立优化模型;

(2)根据优化模型,利用LINGO 来求解模型。主要是根据LINGO 软件,把数学模型转译成计算机语言,借助于计算机来求解。

2. LINGO软件求解

以下应用LINGO9.0软件求解。点开软件,首先在LINGO 界面输入以下程序 :

MODEL:

max=72*x1+64*x2;

x1+x2<=50;

12*x1+8*x2<=480;

3*x1<=100;

END

然后点击计算 ,可得出下列结果 :

Global optimal solution found.

Objective value: 3360.000

Total solver iterations: 2

Variable Value Reduced Cost

X1 20.00000 0.000000

X2 30.00000 0.000000

Row Slack or Surplus Dual Price

1 3360.000 1.000000

2 0.000000 48.00000

3 0.000000 2.000000

4 40.00000 0.000000

從上面结果中不仅可以得到20桶牛奶生产,30桶牛奶生产,总利润为3360元,还可以得到灵敏度分析的结果。分析结果:当两个变量,增加一个单位时,目标函数的减少为零(即目标函数不变)。对于三种资源:原料无剩余,时间无剩余,加工能力剩余40小时,其中“资源”剩余为零的约束为紧约束(有效约束),即原料和时间为紧约束;原料增加1单位, 利润增加48,时间增加1单位, 利润增加2 ,加工能力增减不影响利润。

结语

线性规划是辅助人们进行科学管理的一种数学方法,在工农业生产、经济管理、交通运输等方面都有极其广泛的应用。但其建立数学模型的正确与否,手算的繁琐复杂程度给线性规划广泛的推广与应用带来了许多不便。但是通过使用LINGO软件,只需编写很简单的几行程序,就可以轻松求解,同时也提高了精确度。因此,利用LINGO软件求解线性规划问题逐渐成为科学界的共识。

参考文献

[1]昊祈宗.运筹学[M].北京:机械工业出版社,2002.

[2]谢金星,薛毅.优化建模LINDO/LINGO软件[M].北京:清华大学出版社,2005.