第6章 目标规划实验_第1页
第6章 目标规划实验_第2页
第6章 目标规划实验_第3页
第6章 目标规划实验_第4页
第6章 目标规划实验_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章目标规划实验6.1基础知识6.2使用LINDO/Lingo软件求解目标规划问题6.3使用WinQSB软件求解目标规划问题6.4使用MATLAB软件求解目标规划问题6.1基础知识

目标规划问题及模型在很多实际问题中,如在经济、管理、军事、科学和工程设计等领域的问题中,衡量一个方案的好坏往往难以用一个指标来判断,而需要用多个目标来比较,这些目标有时是不协调的,甚至是矛盾的,此类问题称为多目标决策问题。目标规划(GoalProgramming)是解决多目标决策问题的方法之一,它将多目标决策问题转化为线性规划来求解。目标规划的基本思想:分别给予众多的目标一个希望实现的目标值,然后按目标的重要程度依次进行考虑和计算,以求得最接近各预定目标值的方案。在目标规划模型中,如果每个目标函数都是决策变量的线性函数,则称该目标规划为线性目标规划(LinearGoalProgramming,LGP)。6.1基础知识

应用线性目标规划模型处理有优先级的多目标决策问题时,与一般线性规划模型相比,有以下区别:模型的决策变量除了问题所要求的决策变量,还要将各目标的偏差(包括正偏差和负偏差)均作为决策变量,以确定各实际值与各预定目标值的最佳差距。根据偏差的定义,目标规划模型应增加一个约束条件:

实际值+负偏差-正偏差=预定目标值在求解目标规划问题时,按照优先级的次序,从高层到低层逐层优化,在不加大高层偏差值的情况下,使该层加权偏差值达到最小。6.1基础知识

6.1基础知识

6.1基础知识

6.1基础知识

6.2使用LINDO/Lingo软件求解目标规划问题

目标规划问题的序贯式算法的基本思想是,依据达成函数中各目标的优先级别,将目标规划模型分解为一系列的单一的线性规划模型,然后逐一完成其求解过程。因此,我们也可以在

LINDO/Lingo软件中通过求解一系列的线性规划模型来求解目标规划问题。在LINDO软件中,由于“Solve”菜单中的“PreemptiveGoal”选项可用来处理具有不同优先权的多目标函数的线性规划,因此可利用该命令来求解目标规划问题。具体来说就是,将处于不同优先级的目标函数用不同的变量表示出来,再将这些变量按优先顺序依次相加作为新的目标函数,最后用上述命令求解即可。6.2使用LINDO/Lingo软件求解目标规划问题

实验目的掌握目标规划问题的数学模型及其建模方法。熟悉LINDO/Lingo软件求解目标规划问题的方法步骤,能够理解、分析求解结果。实验内容

例6.1某企业计划生产甲、乙两种产品,这些产品需要使用两种材料,要在两种不同设备上加工。产品和设备的相关数据如下表所示。6.2使用LINDO/Lingo软件求解目标规划问题

工厂在原材料供应受严格限制的基础上,考虑以下几个方面。

第一优先级:

力求使利润不低于12元。

第二优先级:

考虑到市场需求,甲、乙两种产品的生产量需保持1∶1的比例。

第三优先级:

设备B必要时可以加班,但加班时间要控制;设备A既要求充分利用,又尽可能不加班。设备A的重要性是设备B的3倍。

工厂应如何制订生产计划,才能尽可能好地满足上述目标?6.2使用LINDO/Lingo软件求解目标规划问题

6.2使用LINDO/Lingo软件求解目标规划问题

6.2使用LINDO/Lingo软件求解目标规划问题

打开Lingo软件后,在编辑窗口输入程序单击“Lingo”菜单中的“Solve”选项或按“Ctrl”+“U”键进行求解,弹出例6.1的求解报告窗口。6.2使用LINDO/Lingo软件求解目标规划问题

6.2使用LINDO/Lingo软件求解目标规划问题

6.2使用LINDO/Lingo软件求解目标规划问题

2.利用序贯式算法进行求解(1)对于第一优先级,求解线性规划问题:

6.2使用LINDO/Lingo软件求解目标规划问题

打开Lingo软件后,在编辑窗口输入该模型(第一优先级)

6.2使用LINDO/Lingo软件求解目标规划问题

6.2使用LINDO/Lingo软件求解目标规划问题

6.2使用LINDO/Lingo软件求解目标规划问题

打开Lingo软件后,在编辑窗口输入该模型(第二优先级)6.2使用LINDO/Lingo软件求解目标规划问题

6.2使用LINDO/Lingo软件求解目标规划问题

6.2使用LINDO/Lingo软件求解目标规划问题

打开Lingo软件后,在编辑窗口输入该模型(第三优先级)6.2使用LINDO/Lingo软件求解目标规划问题

6.2使用LINDO/Lingo软件求解目标规划问题

3.

用LINDO软件中的PreemptiveGoal选项求解(1)在LINDO软件中输入如下程序6.2使用LINDO/Lingo软件求解目标规划问题

(2)选择“Solve”→“PreemptiveGoal”菜单命令用“PreemptiveGoal”选项求解的结果如图,图中所示的是我们模型中三个优先级的目标函数的最优值和计算迭代次数6.2使用LINDO/Lingo软件求解目标规划问题

选择“Reports”→“Solution”菜单命令,可找到最优解,最优解窗口为6.2使用LINDO/Lingo软件求解目标规划问题

6.2使用LINDO/Lingo软件求解目标规划问题

6.3使用WinQSB软件求解目标规划问题

WinQSB软件中的“GoalProgramming”模块可用来求解目标规划问题。WinQSB软件提供了比较方便的运算方式,WinQSB软件求解多目标规划问题具有自己的特色,基于表格的建模方式。目标规划问题的数学模型与线性规划问题的数学模型没有本质区别,单纯形法仍然是求解目标规划问题的主要算法和工具,使用WinQSB软件求解小型目标规划问题还可以演示中间的计算过程。对于只有两个变量的目标规划问题,WinQSB软件还可以用图解法求解。

实验目的掌握目标规划问题的数学模型及其建模方法。熟悉WinQSB软件求解目标规划问题的方法步骤,能够理解、分析求解结果。进一步理解单纯形法求解目标规划问题的过程。实验内容例6.2用WinQSB软件求解例6.1的目标规划问题的数学模型。6.3使用WinQSB软件求解目标规划问题

选择“开始”

→“程序”→“WinQSB”→“GoalProgramming”菜单命令,运行后出现启动窗口6.3使用WinQSB软件求解目标规划问题

2.单击“File”菜单中的“NewProblem”菜单命令,打开创建新问题参数设置对话框。6.3使用WinQSB软件求解目标规划问题

3.单击“OK”按钮生成表格,出现数据编辑窗口,选择

“Edit”→“VariableNames”菜单命令,修改偏差变量名。6.3使用WinQSB软件求解目标规划问题

4.单击“OK”按钮,返回数据输入窗口并按数学模型输入数据。6.3使用WinQSB软件求解目标规划问题

5.选择“Solve

and

Analyze”→“Solve

the

Problem”菜单命令,得到运行结果,输出结果中给出了从最高优先级目标G1到最低优先级目标G3的优化结果(这里只截取了G3部分)6.3使用WinQSB软件求解目标规划问题

该目标规划问题的数学模型中只有两个决策变量,因此还可以用图解法求解。6.3使用WinQSB软件求解目标规划问题

问题输入完成后,选择“Solve

and

Analyze”→“GraphicMethod”菜单命令,出现参数设置对话框6.3使用WinQSB软件求解目标规划问题

默认水平坐标轴是“X1”,垂直坐标轴是“X2”,不需

要更改。其他变量(偏差变量)选择“Settozero”,

单击“OK”按钮,系统显示求解的综合报告表。6.3使用WinQSB软件求解目标规划问题

若偏差变量选择“Settooptimal”,则图中各目标约束均过最优解,系统显示最优解报告表。6.4使用MATLAB软件求解目标规划问题

MATLAB软件优化工具箱中提供了求解多目标规划问题的fgoalattain函数,fgoalattain函数求解多目标规划问题的基本算法是目标达到法。6.4使用MATLAB软件求解目标规划问题

设多目标规划问题的数学模型为如下的标准形式:

6.4使用MATLAB软件求解目标规划问题

6.4使用MATLAB软件求解目标规划问题

fgoalattain函数定义的多目标规划问题的标准形式:

6.4使用MATLAB软件求解目标规划问题

fgoalattain函数的调用格式为:6.4使用MATLAB软件求解目标规划问题

在fgoalattain函数的输入参数中,fun为目标函数,x0是求解的初始值,goal是目标函数的期望值,weight是目标权重向量,nonlcon是非线性约束函数。输入参数中的fun为需要最小化的目标函数,在fun函数中需要输入设计变量x,为一个列向量,结果返回x处的目标函数值。输入参数中的goal变量是指希望目标函数达到的向量值。输入参数中的weight变量为权重向量,可以控制低于或超过fgoalattain函数指定目标的相对程度。当goal的值都是非零值时,算法为了保证有效的目标值超过或低于的比例相当,将权重函数设置为abs(goal)。如果将weight向量中的任一元素设置为0,则算法将把对应的目标约束当作刚性约束来处理。当设置weight为不同的数值时,fgoalattain函数将对目标函数采取不同的处理方式:

当权重weight设置为正时,fgoalattain函数则试图使目标函数值小于期望值;当权重weight设置为负时,fgoalattain函数则试图使目标函数值大于期望值。6.4使用MATLAB软件求解目标规划问题

在输出参数中,x为最优点或者迭代结束点。fval为最优值或迭代结束点的函数值。输出参数attainfactor指明了目标达到的情况。当attainfactor为负时,说明目标函数值溢出期望值goal;当attainfactor为正时,说明目标函数还未达到期望值。

输出参数exitflag是优化终止状态指示结构变量。output为算法输出(算法的迭代信息等)。lambda为最优点或迭代结束点的拉格朗日乘子。

实验目的掌握使用MATLAB软件中的linprog函数求解目标规划问题的方法步骤,理解其输出结果。掌握使用MATLAB软件中的fgoalattain函数求解多目标规划问题的方法步骤,理解其输出结果。进一步熟悉目标规划问题的有关基本概念及数学模型。6.4使用MATLAB软件求解目标规划问题

实验内容例6.3用linprog函数求解例6.1中的目标规划问题的数学模型。

6.4使用MATLAB软件求解目标规划问题

我们记

6.4使用MATLAB软件求解目标规划问题

则原问题数学模型变为

6.4使用MATLAB软件求解目标规划问题

调用linprog函数,在命令窗口中输入如下代码:6.4使用MATLAB软件求解目标规划问题

命令窗中输出为:

6.4使用MATLAB软件求解目标规划问题

例6.4某工厂需要采购某种生产原料,该原料市场上有A和B两种,单价分别为2元/kg和1.5元/kg。现要求所花的总费用不超过300元,购得的原料总质量不少于120kg,其中A原料不得少于60kg,问如何确定最佳采购方案,可以实现花最少的钱采购最多数量的原料?

6.4使用MATLAB软件求解目标规划问题

用fgoalattain函数来求解该问题6.4使用M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论