建模算法(十一)——目标规划
求解多目标规划的思路
1、加权系数法
为每一个目标加一个权系数,把多目标模型转化成单一目标模型。但是困难时确定合理的权系数,以反映不同目标之间的重要程度。
2、优先等级法
将各目标按其重要程度分为不同的优先等级,转化为单目标模型。
3、有效解法
寻求能够照顾到各个目标,并使决策者感到满意的解。由决策者来确定选取哪一个解,即得到满意的解。但是有效解太多,无法挑选
一、目标规划的数学模型
1、正、负偏差变量

2、绝对约束和目标约束
(1)绝对约束:一定要达到的要求,线性规划的约束条件都是
(2)软约束(目标约束):就是在这个目标值允许有一定的正负偏差存在。
3、优先因子(优先等级)与权系数
一个规划问题如果有多个目标,可以按照重要性来规定一个优先因子P,越重要的越优先。
4、目标规划的目标函数
每一个目标值确定后,要求是尽可能小的缩小偏差。因此目标函数只能是
,有三种形式
(1)要求恰好达到目标值,即正负偏差都要小

(2)要求不超过目标值,正偏差小

(3)要求超过目标值,负偏差小

5、目标规划的一般数学模型

二、求解目标规划的序贯式模型
解题思路:
按照优先级的先后次序,将目标规划问题分解成一系列的单项目标规划问题。然后再依次求解。(由于使用LINGO求解,暂时忽略)
三、多目标规划的MATLAB解法
1、一般模型

2、MATLAB封装的函数
[x,fval]=fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
(1)fun是用M文件定义的目标向量函数
(2)x0是初值,一般弄个随机列向量
(3)weight为权重,一般为goal的绝对值
(4)A,b定义不等式约束A*x<=b,Aeq,beq定义等式约束
(5)nonlcon是用M文件定义的非线性约束条件c(x)<=0,ceq(x)=0
(6)返回值,x是最优解,fval是最优值
3、例子

function F=Fun(x)
F(1)=-100*x(1)-90*x(2)-80*x(3)-70*x(4);
F(2)=3*x(2)+2*x(4);
a=[-1 -1 0 0
0 0 -1 -1
3 0 2 0
0 3 0 2];
b=[-30 -30 120 48]';
c1=[-100 -90 -80 -70];
c2=[0 3 0 2 ]; [x1,g1]=linprog(c1,a,b,[],[],zeros(4,1))
[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1)) g3=[g1;g2];
[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4,1));
建模算法(十一)——目标规划的更多相关文章
- 建模算法(一)——线性规划
一.解决问题 主要是安排现有资源(一定),取得最好的效益的问题解决,而且约束条件都是线性的. 二.数学模型 1.一般数学模型 2.MATLAB数学模型 其中c,x都是列向量,A,Aeq是一个合适的矩阵 ...
- python 版 mldivide matlab 反除(左除)《数学建模算法与程序》Python笔记
今天在阅读数学建模的时候看到了差分那章 其中有一个用matlab求线性的代码,这里我贴出来 这里我送上 Python代码 In [39]: import numpy as np ...: from s ...
- 建模算法(十)——灰色理论之关联度分析
一.数据变换技术 为了保证建模的质量和系统分析结果的准确性,对原始的数据要进行去量纲处理. 1.定义 设有序列,则成映射为序列x到序列y的数据变换. (1) f 是初值化变换. (2) f 是均值化变 ...
- 建模算法(六)——神经网络模型
(一)神经网络简介 主要是利用计算机的计算能力,对大量的样本进行拟合,最终得到一个我们想要的结果,结果通过0-1编码,这样就OK啦 (二)人工神经网络模型 一.基本单元的三个基本要素 1.一组连接(输 ...
- 建模算法(五)——图与网络
(一)图与网络的基本概念 一.无向图 含有的元素为顶点,弧和权重,但是没有方向 二.有向图 含有的元素为顶点,弧和权重,弧具有方向. 三.有限图.无限图 顶点和边有限就是有限图,否则就是无限图. 四. ...
- 建模算法(三)——非线性规划
一.非线性规划和线性规划不同之处 1.含有非线性的目标函数或者约束条件 2.如果最优解存在,线性规划只能存在可行域的边界上找到(一般还是在顶点处),而非线性规划的最优解可能存在于可行域的任意一点达到. ...
- 建模算法(二)——整数规划
一.概述 1.定义:规划中变量部分或全部定义成整数是,称为整数规划. 2.分类:纯整数规划和混合整数规划. 3.特点: (1)原线性规划有最优解,当自变量限制为整数后: a.原最优解全是整数,那最优解 ...
- 建模算法(七)——排队论模型
(一)基本概念 一.排队过程的一般表示 凡是要求服务的对象称为顾客,凡是为顾客服务的称为服务员 二.排队系统的组成和特征 主要由输入过程.排队规则.服务过程三部分组成 三.排队模型的符号表示 1.X: ...
- 建模算法(九)——拟合
一.线性最小二乘法 1.基本思路 令,其r(x)是事先选定的一组线性无关的函数.ak是待定系数.然后拟合的准则就是使得yi与f(xi)的距离的平方和最小,称之为最小二乘准则 2.系数的确定 ,要使距离 ...
随机推荐
- CSS创建一个遮罩层
.layer{ width: 100%; position: absolute; left:; right:; top:; bottom:; -moz-opacity:; filter: alpha( ...
- js Float 精度
1.加法 //加法 function add(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString().split(".")[1].lengt ...
- metinfo首页内容简介
http://www.hlbaozhuangji.cn/manage/content/other_info.php?anyid=31&lang=cn 首页内容简介: select * from ...
- iOS多线程GCD(转)
转自:http://www.cnblogs.com/pure/archive/2013/03/31/2977420.html Grand Central Dispatch (GCD)是Apple开发的 ...
- cocos基础教程(2)Window环境下搭建(补充)
一.环境搭建 1.JDK.Eclipse与SDK 我用的JDK是1.7 Eclipse用的是Luna版的 这些之前都已经设好了,相关下载自己网上找吧 2. 下载最新的Cocos2d-x,我下的是3.5 ...
- Spring各个jar包的简介
spring.jar是包含有完整发布的单个jar 包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到 spring-m ...
- 交叉编译php5,、nginx、squid方法
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 交叉编译php5 软件版本:php-5.4.27 依赖库:zlib,libxml2 交叉编译器:arm-hisi ...
- Linux / UNIX create soft link with ln command
How to: Linux / UNIX create soft link with ln command by NIXCRAFT on SEPTEMBER 25, 2007 · 42 COMMENT ...
- C++中的vector使用范例
原文链接 http://blog.csdn.net/tjh666/article/details/1604119 1.vector 的数据的存入和输出: #include<stdio.h> ...
- C# params关键字
params数组的要点 C#开发语言中 params 是关键字,可以指定在参数数目可变处采用参数的方法参数.在函数的参数数目可变而执行的代码差异很小的时候很有用! class Program { st ...