建模算法(十一)——目标规划

求解多目标规划的思路

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));
时间: 2024-09-30 16:20:31

建模算法(十一)——目标规划的相关文章

建模算法(十一)&mdash;&mdash;层次分析法

(一)层次分析法的基本原理与步骤 一.步骤 1.建立递阶层次结构模型 2.构造出各层次中的所有判断矩阵 3.层次单排序及一致性检验 4.层次总排序及一致性检验 二.递阶层次的建立与特点 1.分层: (1)最高层:这一层次中只有一个元素,一般它是分析问题的预定目标和理想结果. (2)中间层:这一层次中包含为了实现目标所涉及的中间环节,主要是一些考虑指标和一些准则. (3)最底层:这一层次中包含为了实现目标可供选择的各种方案. 2.注意点: 一般不要1层不要超过9个因素 3.一个demo 是三个旅游

数学建模算法概括

目录 数学模型按数学方法分类 数学建模十大算法 建模思想 预测与预报 评价与决策 分类与判别 关联与因果 优化与控制 数学模型按数学方法分类 几何模型(球面积分,曲面积分) 分形理论(常用) 图论模型(优化类,规划类,决策类问题) 有一类线性规划类问题可用图论模型解决,最短路径 → 时间最短 or 路径最短 微分方程模型(预测人口增长,传热导热问题) 概率问题(彩票) 最优控制模型(药物疗效) 规划论模型(投资问题) 马氏链模型(概率模型) 前后不关联的概率模型 数学建模十大算法 蒙特卡罗算法

数学建模算法理论+程序

数学建模的各类算法汇总,带书签!文字可复制. 01 线性规划 02 整数规划 03 非线性规划 04 动态规划 05 图与网络 06 排队论 07 对策论 08 层次分析法 09 插值与拟合 10 数据的统计描述和分析 11 方差分析 12 回归分析 13 微分方程建模 14 稳定状态模型 15 常微分方程的解法 16 差分方程模型 17 马氏链模型 18 变分法模型 19 神经网络模型 20 偏微分方程模型 21 目标规划 22 模糊数学模型 23 现代优化算法 24 时间序列模型 25 贮存

建模算法(一)&mdash;&mdash;线性规划

一.解决问题 主要是安排现有资源(一定),取得最好的效益的问题解决,而且约束条件都是线性的. 二.数学模型 1.一般数学模型 2.MATLAB数学模型 其中c,x都是列向量,A,Aeq是一个合适的矩阵,b,beq是合适的列向量.然后lb和ub是下限和上线(但是请注意= =,lb是一个变量的名字) 三.相关方程解法 1.图解法,画出可行域,这个可以进行编程进行实现. 2.直接使用MATLAB的相关方法进行解题. [x,fval]=linprog(c,A,b,Aeq,beq,LB,UB,Xo,OPT

python 版 mldivide matlab 反除(左除)《数学建模算法与程序》Python笔记

今天在阅读数学建模的时候看到了差分那章 其中有一个用matlab求线性的代码,这里我贴出来 这里我送上 Python代码 In [39]: import numpy as np ...: from scipy.optimize import nnls ...: x = np.array([[1,2,3,4,5],[1,1,1,1,1]]) ...: x = x.T ...: y = np.array([11,12,13,15,16]) ...: nnls(x,y) ...: Out[39]: (

建模算法(十)&mdash;&mdash;灰色理论之关联度分析

一.数据变换技术 为了保证建模的质量和系统分析结果的准确性,对原始的数据要进行去量纲处理. 1.定义 设有序列,则成映射为序列x到序列y的数据变换. (1) f 是初值化变换. (2) f 是均值化变换. (3) f 是百分比变换 (4) f 是倍数变换 (5) f 是归一化变换其中x0>0的一个数值 (6) f 是极差最大值变换 (6) f 是区间值变换 二.关联分析 1.定义 参考数列是被比较(主体),比较数列是比较值(不是主体) 但是由于各个时刻都有一个分辨系数,太过分散,所以再定义一个指

建模算法(三)&mdash;&mdash;非线性规划

一.非线性规划和线性规划不同之处 1.含有非线性的目标函数或者约束条件 2.如果最优解存在,线性规划只能存在可行域的边界上找到(一般还是在顶点处),而非线性规划的最优解可能存在于可行域的任意一点达到. 二.非线性规划的Matlab解法 1.Matlab中非线性规划的数学模型为: 其中f(x)是标量函数,A,B,Aeq,Beq是相应维数的矩阵和向量,C(x),Ceq(X)是非线性向量函数. 然后我们通过一个例子来加深印象 MATLAB实现: function f=fun1(x) %定义目标函数 f

建模算法(六)&mdash;&mdash;神经网络模型

(一)神经网络简介 主要是利用计算机的计算能力,对大量的样本进行拟合,最终得到一个我们想要的结果,结果通过0-1编码,这样就OK啦 (二)人工神经网络模型 一.基本单元的三个基本要素 1.一组连接(输入),上面含有连接强度(权值). 2.一个求和单元 3.一个非线性激活函数,起到将非线性映射作用,并将神经元输出幅度限制在一定范围内(在(0,1)或者(-1,1)) 4.还有一个阀值(偏置) 归结如下: PS:也可以选择将偏置(阀值)加入到线性求和里面 5.激活函数的选择 二.网络结构及工作方式 1

建模算法(二)&mdash;&mdash;整数规划

一.概述 1.定义:规划中变量部分或全部定义成整数是,称为整数规划. 2.分诶:纯整数规划和混合整数规划. 3.特点: (1)原线性规划有最优解,当自变量限制为整数后: a.原最优解全是整数,那最优解仍成立 b.整数规划没有可行解 c.有可行解,但是不是原最优解 4.求解方法分类 (1)分支定界法 (2)割平面法 (3)隐枚举法 (4)匈牙利法 (5)蒙特卡洛法 二.分支定界法 1.算法如下(求解整数规划最大化问题) MATLAB实现 function r=checkint(x) %判断x(i)