目录

·目标规划问题及其数学模型

1.目标规划问题的提出

二、目标规划的数学模型

·Matlab中的目标规划函数——fgoalattain、gamultiobj

1.fgoalattain

2.gamultiobj


·目标规划问题及其数学模型

1.目标规划问题的提出

例:某一工厂生产两种产品,受到原材料供应和设备工时的限制。在单件利润等有关数据已知的条件下,要求生产制定一个获利最大的生产计划。具体数据见表1-1。

表1-1

产品 1 2 限量/件
原材料/(Kg/件) 5 10 60
设备工时(h/件) 4 4 40
利润/(元/件) 6 8

设产品1和产品2的产量分别为,当用线性规划来描述解决这个问题时,其数学模型为:

max          

其最优解,即最优生产计划

从线性规划的角度来看,问题似乎解决了,但是实际的要求中又与此有很大出入,财务部希望利润高,物资部希望材料消耗少,销售部门希望产品品种多样,适销对路;计划部门希望尽可能地大批量生产等等。也就是说,一个计划问题实际上是一个多目标决策的问题。

倘若一些限制条件是有弹性的,在一定条件下可以不用满足限制也可以,限制条件同时也有着优先级的区别等等。

由此分析,刚性约束或许并不符合实际,在计划实施的过程约束可以有一定的弹性。现代决策强调定量分析同定性分析相结合,强调硬技术同软技术相结合,强调矛盾与冲突的合理性;强调妥协与让步的必要性。

1961年,查恩斯(A.Charnes)和库伯(W.W.Cooper)提出目标规划(goal programming),得到广泛的重视和较快发展。目标规划在处理实际问题时,承认各项决策要求(可以时冲突的)的存在有其合理性;在做最终决策时,不强调其绝对意义的最优性。因此,目标函数被认为是一种更接近实际决策的决策工具。

二、目标规划的数学模型

假设在例1中,计划人员被要求考虑如下意见:

(1)由于产品2销售疲软,故希望产品2的产量不超过产品1的一半

(2)原材料严重短缺,生产中应避免过度消耗

(3)最好能节约4h设备工时

(4)计划利润不少于48元

面对这些意见,计划人员根据实际情况来对这些意见的优先级进行考虑,类似于这样的多目标决策问题就是典型的目标规划问题。

目标规划数学模型涉及下述基本概念:

1.偏差变量

对每一个决策目标,引入正负偏差变量,分别表示决策值超过或不足目标值的部分。按定义应有

2.绝对约束和目标约束

绝对约束是指必须严格满足的约束条件,如线性规划中的约束条件都是绝对约束,即硬性约束。目标约束是目标规划特有的概念,是一种软约束,目标约束中决策值和目标值之间的差异用偏差变量表示。

3.优先因子于权系数

不同目标的主次轻重有两种差别。一种差别是绝对的,可以用优先因子来表示。只有高级优先级满足的基础上才能满足低级优先级。t值越大,优先级越小。

4.目标规划的目标函数

目标规划的目标函数(又称为准则函数或达成函数)由各目标约束的偏差变量及相应的优先因子和权系数构成。由于目标规划追求的是尽可能地接近目标值,也就是使各个有关偏差变量尽可能小,所以其目标函数只能是极小化。应用时,有三种基本表达式:

(1)要求恰好达到目标值。这时,决策值超过或不足目标值都是不希望的,因此有

(2)要求不超过目标值,但允许不足目标值。这时,不希望决策值超过目标值,因此有

(3)要求不低于目标值,但允许超过目标值,但不希望决策值低于目标值,因此有

建立数学模型:

假设原材料不得超过(绝对约束);产品2的产量要求优先考虑(目标约束);设备工时其次考虑(目标约束);最后考虑计划利润的要求(目标约束)。

则可以建立如下目标规划模型:

根据题意,应有

·Matlab中的目标规划函数——fgoalattain、gamultiobj

1.fgoalattain

使用方法

x = fgoalattain(fun,x0,goal,weight)
    x = fgoalattain(fun,x0,goal,weight,A,b)
    x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq)
    x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)
    x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
    x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)

[x,fval,attainfactor,exitflag,output] = fgoalattain(problem)

fgoalattain可以用来形式如下的目标规划问题

PS:由于fgoalattain解的是极小化问题,因此当第i个目标fun(i)为最大时,fun(i)和goal(i)的系数需变为负

以例1来说,Matlab的代码如下:

fun函数

function f = fun(x)
f(1) = abs(x(1)-2*x(2));  %对产品2的目标
f(2) = abs(4*x(1)+4*x(2)-36);%对设备工时的目标
f(3) = -6*x(1)-8*x(2);%利润目标
end

main函数

goal = [0,0,-48];
weight = [10,2,1];       %权重,权重会对结果造成影响
A = [5,10];
b = 60;
Aeq = [];
beq = [];
lb = [0,0];
ub = [12,6];
x0 = [6,3];
[x,fval] = fgoalattain(@fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)

运行结果

x =6.0000    3.0000fval =0.0000    0.0000  -60.0000

,时,可以保证在权重goal=[10,2,1]情况下的最优解。此时可以保证所有目标。

对结果造成影响的变量是goal,不同的goal所计算的结果也会不同。具体情况具体分析。

2.gamultiobj

gamultiobj是Optimization Toolbox中使用遗传算法来解多目标问题的一个函数,其使用方法同fgoalattain类似

x = gamultiobj(fun,nvars)
    x = gamultiobj(fun,nvars,A,b)
    x = gamultiobj(fun,nvars,A,b,Aeq,beq)
    x = gamultiobj(fun,nvars,A,b,Aeq,beq,lb,ub)
    x = gamultiobj(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon)
    x = gamultiobj(fun,nvars,A,b,Aeq,beq,lb,ub,options)
    x = gamultiobj(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options)
    x = gamultiobj(problem)
    [x,fval] = gamultiobj(___)
    [x,fval,exitflag,output] = gamultiobj(___)
    [x,fval,exitflag,output,population,scores] = gamultiobj(___)

其中,nvars为变量个数

[x,fx] = gamultiobj(@fun,2,A,b,Aeq,beq,lb,ub)

运行结果

x =0         07.2148    1.78510.0010    0.00053.2038    1.601912.0000    0.00015.4767    1.77654.1632    1.763310.7448    0.18669.5508    0.74116.1941    1.75060         03.6907    1.653112.0000         011.1880    0.24585.0110    1.76408.3720    1.54858.3708    1.284610.8537    0.4111fx =0   36.0000         03.6447    0.0004  -57.56960.0000   35.9941   -0.00980.0000   16.7770  -32.038411.9998   12.0003  -72.00061.9236    6.9872  -47.07220.6365   12.2940  -39.085610.3716    7.7259  -65.96218.0687    5.1673  -63.23312.6928    4.2212  -51.16950   36.0000         00.3846   14.6247  -35.369112.0000   12.0000  -72.000010.6964    9.7348  -69.09371.4831    8.9000  -44.17805.2750    3.6820  -62.62005.8016    2.6214  -60.501310.0314    9.0591  -68.4109

gamultiobj直接返回多个满足条件的解,如何选择看实际要求。

参考书籍:

胡运权,郭耀煌.运筹学教程[M].北京:清华大学出版社,2018:105-108

第四天:目标规划(goal programming)相关推荐

  1. 运筹说 第47期 | 算法介绍之目标规划

    在上一期的学习中,我们对目标规划的相关概念和模型进行了讲解,本期我们进行运筹学之目标规划算法的讲解.我们将对目标规划的基础知识进行一个简单的回顾,并介绍求解目标规划的Excel方法.LINGO.MAT ...

  2. gurobi求解目标规划问题案例

    学习笔记 熟悉目标规划的基本概念及数据模型 使用商用求解器gurobi求解案例 目标规划 目标规划法是为了同时实现多个目标,为每一个目标分配一个偏离各目标严重程度的罚数权重,通过平衡各标准目标的实现程 ...

  3. 目标规划模型:求解思路、序贯式算法

    目录 1.线性规划的局限性 2.实际决策中,衡量方案优劣考虑多个目标 3.目标规划(Goal Programming) 4.求解思路      (1)加权系数法          (2)优先等级法  ...

  4. matlab目标规划设置偏差变量,目标值和偏差变量.PPT

    目标值和偏差变量 精品课程<运筹学> 2.用图解法求解下列目标规划问题: 精品课程<运筹学> 3.用图解法解下列目标规划模型. 精品课程<运筹学> 第三节 目标规划 ...

  5. A002-185-2521-李子泓

    课程名称 软件建模与分析 班级 18软工5班 专题名称 个人的需求分析与建模读书心得与对你组项目的发展建议 教导教师 董瑞生 姓名 李子泓 学号 1814080902521 日期 2020年12月19 ...

  6. 【GP】多目标规划建模方法

    Navigator Goal programming 处理多目标规划问题的方法 评价函数法 线性加权法 平方和加权法 极小-极大法 乘除法 理想点法 MSEP算法 差分进化计算 Memetic算法 G ...

  7. matlab中的 complete,Complete-collection-of-algorithm

    Complete-collection-of-algorithm 所属分类:matlab例程 开发工具:matlab 文件大小:7504KB 下载次数:2446 上传日期:2010-11-08 16: ...

  8. 转载 Assert断言知识

    Assertion是用于在开发期间测试自己的些假设,当部属程序时则会被清除.这能够快速和有效地检测与修正程序中的错误.该特性从Java 1.4开始被支持. 一.Assertion语句的两种形式: 1, ...

  9. 基于 GL Pipeline 与光线追踪技术的融合实现的台球模拟器【100010712】

    基于 GL Pipeline 与光线追踪技术的融合实现的台球模拟器 一.Project Title 基于 GL Pipeline 与光线追踪技术的融合实现的台球模拟 二.Abstract 本项目实现了 ...

最新文章

  1. 微软:Windows 7 SP1将于本月正式发布
  2. 「AI初识境」近20年深度学习在图像领域的重要进展节点
  3. VC++如何判断当前操作系统是32位还是64位?
  4. 什么是算法,为什么需要学算法,以及算法学到什么程度
  5. 如何使用Elixir和Phoenix快速入门构建CRUD REST API
  6. 【JavaScript】apply和call的区别在哪?
  7. uniapp小程序的getsysteminfo_Typecho小程序:Pisces-Mini-Program
  8. gtk_widget_add_events为某个构件添加一个事件
  9. 有一些无声话语,只有寻梦的人彼此听得见
  10. 《Spring微服务实战》读书笔记——通过配置服务器来管理配置
  11. mysql ageval 1 30_通过sqoop eval传递mysql属性
  12. opencv convertTo函数
  13. Android11不如,1200万像素的iPhone11真的不如4800万像素的安卓?
  14. Linux下用火焰图进行性能分析
  15. Java基础学习生疏知识点总结(4)——面向对象、单一职责原则、this关键字、构造方法
  16. 微信、支付宝付款码规则
  17. 2131数据结构实验之栈与队列一:进制转换
  18. 数据库系统概论——数据库安全性控制
  19. Python爬虫笔记——存储数据的基础知识(Csv、Excel)
  20. VS 2005 SP1简体中文版下载地址

热门文章

  1. Python使用阿里API进行情感分析
  2. 易企秀H5 json配置文件解密分析
  3. 卖二手书的多抓鱼是如何逆袭上位的!
  4. PMU配置(RK808)
  5. 我把淘宝当副业,一年全款买了房:你看不起的行业,真的很赚钱
  6. 无线通信中存在的远近效应、多普勒效应、多径效应以及其应对策略
  7. 电动门窗防夹发展新趋势-基于电机纹波的防夹
  8. 网页自动加拼音html,javascript实现输入中文自动生成拼音
  9. 读书笔记5.4——《让数字说话:审计,就这么简单》:孙含晖
  10. zoj 1239 Hanoi Tower Troubles Again! 题解Orz