多目标线性规划的若干解法及MATLAB实现
如何使用Matlab进行最优化和多目标优化问题求解

如何使用Matlab进行最优化和多目标优化问题求解Matlab是一种强大的数学计算工具,广泛应用于各个领域的科学研究和工程实践中。
其中,最优化和多目标优化问题的求解是Matlab的一项重要功能。
本文将介绍如何使用Matlab进行最优化和多目标优化问题的求解,并提供一些实际应用案例。
一、最优化问题求解最优化问题求解是指在给定的约束条件下,寻找一个使得目标函数取得最大(或最小)值的变量组合。
Matlab提供了多种最优化算法,如线性规划、二次规划、非线性规划等。
下面以非线性规划为例,介绍如何使用Matlab进行最优化问题的求解。
1. 准备工作在使用Matlab进行最优化问题求解之前,需要先定义目标函数和约束条件。
目标函数是最优化问题的核心,可以是线性的或非线性的。
约束条件可以是等式约束或不等式约束。
同时,还需要确定变量的取值范围和初值。
2. 选择合适的算法Matlab提供了多个最优化算法,根据问题的特点选择合适的算法是非常重要的。
常用的算法有fmincon、fminunc、fminsearch等。
例如,fmincon函数适用于求解具有约束条件的非线性规划问题,而fminunc函数适用于求解无约束或有约束的非线性规划问题。
3. 调用相应的函数根据选择的算法,调用相应的函数进行求解。
以fmincon函数为例,其调用方式为:```[x, fval] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)```其中,fun为目标函数,x0为变量的初值,A、b为不等式约束矩阵和向量,Aeq、beq为等式约束矩阵和向量,lb、ub为变量的下界和上界,nonlcon为非线性约束函数,options为求解选项。
4. 解析结果求解完成后,可以通过解析结果来评估求解器的性能。
Matlab提供了fval和exitflag两个输出参数,其中fval表示最优解的目标函数值,exitflag表示求解器的退出标志。
用MATLAB优化工具箱解线性规划

用MATLAB优化工具箱解线性规划线性规划是运筹学中的一个研究对象,它通常是以线性方程组的形式来描述数学模型,极大(或极小)化线性函数,同时满足一定的线性限制条件。
而MATLAB是一种十分流行的数学计算软件,其优化工具箱提供了一些功能强大的优化算法,可以用来解决一些复杂的优化问题,包括线性规划问题。
一、线性规划问题的定义线性规划问题的一般形式可以描述为:$min/max$ $c^Tx$$subject$ $to$:$Ax \le b$$x \ge 0$其中,$c^Tx$是一个线性函数,称为线性目标函数,$A$是一个$m\times n$的系数矩阵,$b$是一个$m\times1$的列向量,$x$是一个$n\times1$的列向量,是待求解的变量,我们称之为决策变量。
$x_j$表示变量$x$的第$j$个分量,$m$和$n$分别是限制条件数目和变量数目。
$Ax \le b$是一个线性等式系统,约束了$x$的取值范围,$x \ge0$要求$x$的分量非负,这被称为非负约束条件。
二、使用MATLAB函数求解线性规划问题MATLAB中的优化工具箱提供了一些函数,可以用来求解线性规划问题,其中最常用的函数是“linprog”。
linprog函数是求解线性规划问题的标准函数,在使用之前需要做一些准备工作:(1)确定目标函数和约束条件:目标函数和约束条件应该以线性方程组的形式表达。
(2)将方程组转换为标准形式:标准形式是指将约束条件转换为$Ax \le b$的形式,且决策变量的非负约束被包含在这个矩阵中。
(3)定义参数:包括目标函数和约束条件中的系数矩阵和向量。
(4)运行函数:使用linprog函数求解。
下面是linprog函数的语法格式:[x,fval,exitflag,output,lambda]=linprog(f,A,b,Aeq,beq,lb,ub,x 0,options)linprog函数的参数解释如下:(1)f:目标函数的系数向量。
如何在Matlab中进行多目标优化问题求解

如何在Matlab中进行多目标优化问题求解如何在Matlab中进行多目标优化问题求解?多目标优化问题是指存在多个目标函数,且这些目标函数之间相互矛盾或者无法完全同时满足的问题。
在实际应用中,多目标优化问题非常常见,例如在工程设计中寻求最佳平衡点、在金融投资中追求高收益低风险等。
而Matlab作为一种强大的数值计算工具,提供了丰富的优化算法和工具箱,可以帮助我们解决多目标优化问题。
一、多目标优化问题数学建模在解决多目标优化问题之前,首先需要将实际问题转化为数学模型。
假设我们需要优化一个n维的向量x,使得目标函数f(x)同时最小化或最大化。
其中,n为自变量的个数,f(x)可以表示为多个目标函数f1(x)、f2(x)、...、fm(x)的向量形式:f(x) = [f1(x), f2(x), ..., fm(x)]其中,fi(x)(i=1,2,...,m)即为待优化的目标函数。
在多目标优化问题中,一般没有单一的最优解,而是存在一个解集,称为"帕累托前沿(Pareto Frontier)"。
该解集中的每个解被称为"非支配解(Non-Dominated Solution)",即不能被其他解所优化。
因此,多目标优化问题的目标就是找到帕累托前沿中的最佳解。
二、Matlab中的多目标优化算法Matlab提供了多种多目标优化算法和工具箱,包括paretosearch、gamultiobj、NSGA-II等等。
这些算法基于不同的思想和原理,可以根据问题的特点选择合适的算法进行求解。
1. paretosearch算法paretosearch算法采用遗传算法的思想,通过迭代更新种群来寻找非支配解。
该算法适用于求解中小规模的多目标优化问题。
使用paretosearch算法求解多目标优化问题可以按照以下步骤进行:(1)定义目标函数编写目标函数fi(x)(i=1,2,...,m)的代码。
gurobi多目标问题matlab

Gurobi多目标问题在Matlab中的解决一、Gurobi简介Gurobi是一款强大的商业数学建模工具,广泛应用于优化领域。
它提供了多种优化算法,能够高效地解决线性规划、整数规划、二次规划等各种优化问题。
在实际工程和科学研究中,经常遇到多目标优化问题,即需要同时优化多个目标函数。
本文将介绍如何使用Gurobi在Matlab中解决多目标优化问题。
二、多目标优化问题的定义在多目标优化问题中,我们需要最小化或最大化多个目标函数,而且这些目标函数之间往往存在相互矛盾的关系。
在生产计划中,一个目标函数可能是最大化产量,另一个目标函数可能是最小化成本。
在实际应用中,我们需要找到一组可行的解,使得所有目标函数都达到一个较好的平衡。
三、Gurobi在Matlab中的调用在Matlab中调用Gurobi需要先安装Gurobi的Matlab接口。
安装完成后,我们可以在Matlab命令窗口中输入命令"gurobi"来验证是否成功安装。
接下来,我们需要在Matlab中编写代码,定义优化问题的目标函数、约束条件和变量类型。
在定义目标函数时,我们需要考虑多个目标函数之间的相关性,以及它们之间的权重关系。
在定义约束条件和变量类型时,我们需要考虑多目标函数之间可能存在的约束条件和变量之间的相互制约关系。
四、多目标优化问题的解决方法Gurobi提供了多种解决多目标优化问题的方法,包括加权法、约束法和Pareto最优解法等。
在加权法中,我们将多个目标函数进行线性组合,并引入权重因子来平衡各个目标函数之间的重要性。
在约束法中,我们将多个目标函数作为多个约束条件,通过逐步添加约束条件来找到最优解。
在Pareto最优解法中,我们寻找一组可行解,使得没有其他可行解能比它在所有目标函数上都更好。
五、案例分析以生产计划为例,假设我们需要同时考虑最大化产量和最小化成本两个目标。
我们可以先使用加权法,通过调整权重因子来平衡这两个目标的重要性,找到一个较好的解。
如何使用Matlab进行多目标优化

如何使用Matlab进行多目标优化使用Matlab进行多目标优化概述:多目标优化是在现实问题中常见的一种优化方法,即需要优化多个目标函数,而非只有一个目标函数。
这篇文章将介绍如何使用Matlab进行多目标优化,包括问题建模、求解方法和实例分析。
1. 问题建模在进行多目标优化之前,需要将实际问题建模为数学模型。
首先,明确问题的决策变量和目标函数。
决策变量是需要优化的参数或变量,而目标函数是需要最小化或最大化的指标。
例如,我们要优化一个生产系统的成本和产量,可以将成本设为一个目标函数,产量设为另一个目标函数。
2. 目标权重设定由于多目标优化存在矛盾或折衷的情况,需要设定目标函数的权重。
权重反映了各个目标函数的重要性,较高的权重意味着对应的目标更重要。
例如,在上述生产系统的例子中,如果成本比产量更重要,可以给成本赋予较高的权重。
3. 多目标优化求解方法Matlab提供了多种多目标优化求解方法,常用的有基于进化算法的优化方法,例如遗传算法、粒子群优化算法等。
这些方法通过不断迭代搜索解空间,逐步找到最优解。
以下是使用Matlab进行多目标优化的一般步骤:a) 定义优化问题的问题函数,包括目标函数和约束条件。
b) 设定优化问题的求解选项,例如优化算法、迭代次数和收敛准则等。
c) 运行优化求解器,获得最优解或近似最优解。
d) 对求解结果进行分析和评价。
4. 多目标优化实例分析为了更好地理解如何使用Matlab进行多目标优化,我们以一个简单的例子进行分析。
假设有一个三维空间内的旅行商问题,即找到一条路径,使得旅行距离最短、花费最少以及时间最短。
我们可以将问题建模为一个三目标优化问题:目标一:最小化旅行距离。
目标二:最小化旅行花费。
目标三:最小化旅行时间。
通过定义目标函数和约束条件,我们可以使用Matlab的多目标优化求解器,如gamultiobj函数,来获得近似最优解。
在求解过程中,可以通过设置收敛准则、种群大小等选项来调节求解参数。
多目标规划matlab程序实现——【2019数学建模+思路】

优化与决策——多目标线性规划的若干解法及MATLAB 实现摘要:求解多目标线性规划的基本思想大都是将多目标问题转化为单目标规划,本文介绍了理想点法、线性加权和法、最大最小法、目标规划法,然后给出多目标线性规划的模糊数学解法,最后举例进行说明,并用Matlab 软件加以实现。
关键词:多目标线性规划 Matlab 模糊数学。
注:本文仅供参考,如有疑问,还望指正。
一.引言多目标线性规划是多目标最优化理论的重要组成部分,由于多个目标之间的矛盾性和不可公度性,要求使所有目标均达到最优解是不可能的,因此多目标规划问题往往只是求其有效解(非劣解)。
目前求解多目标线性规划问题有效解的方法,有理想点法、线性加权和法、最大最小法、目标规划法。
本文也给出多目标线性规划的模糊数学解法。
二.多目标线性规划模型多目标线性规划有着两个和两个以上的目标函数,且目标函数和约束条件全是线性函数,其数学模型表示为:11111221221122221122max n n n nr r r rn nz c x c x c x z c x c x c x z c x c x c x =+++⎧⎪=+++⎪⎨ ⎪⎪=+++⎩ (1)约束条件为:1111221121122222112212,,,0n n n n m m mn n mn a x a x a x b a x a x a x b a x a x a x bx x x +++≤⎧⎪+++≤⎪⎪ ⎨⎪+++≤⎪≥⎪⎩ (2) 若(1)式中只有一个1122i i i in n z c x c x c x =+++ ,则该问题为典型的单目标线性规划。
我们记:()ij m n A a ⨯=,()ij r n C c ⨯=,12(,,,)T m b b b b = ,12(,,,)T n x x x x = ,12(,,,)T r Z Z Z Z = .则上述多目标线性规划可用矩阵形式表示为:max Z Cx =约束条件:0Ax bx ≤⎧⎨≥⎩(3)三.MATLAB 优化工具箱常用函数[3]在MA TLAB 软件中,有几个专门求解最优化问题的函数,如求线性规划问题的linprog 、求有约束非线性函数的fmincon 、求最大最小化问题的fminimax 、求多目标达到问题的fgoalattain 等,它们的调用形式分别为:①.[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub)f 为目标函数系数,A,b 为不等式约束的系数, Aeq,beq 为等式约束系数, lb,ub 为x 的下限和上限, fval 求解的x 所对应的值。
多目标线性规划MATLAB软件求解

( )=^∑[ z ], z / Z 一
然 后 极 小 化 [ )], 求 解 z( 即
r —_ — —— —— — —— — —— —— — —— —— —— 一
m …
i ̄ ) √ ) Z] n[ ] E _i2 qZ Z i *,
并 将 它 的最 优 解
1 多 目标 线性 规划模 型
多 目标 线 性 规 划 有 着 两 个 和 两 个 以 上 的 目标 函 数 , 目标 函 数 和 约 束 条 件 全 是 线 且
性 函数 , 数 学模 型表 示 为 : 其
Z1 = C l l + 1 C1 2X 2 + … + C1 n
m
aX
21 0 0年 1 O月 第2 7卷 第 5期
枣 庄 学 院 学 报
J OUR AL 0F Z 0Z AN I R 兀Y N A HU G UN VE S
Oc . Ol t2 O
V0 . 7 N0. 12 5
多 目标 线 性 规 划 MA L B软 件 求 解 TA
2 = C1 I+ c2 2 X 2 2+ …
+ Cn n 2  ̄
( 1)
Zr =
C, l + 1
CrX 2 + 2
…
+
C m n
约 束 条 件 为 :
( 2)
若 (1 )式 中 只 有 一 个 = C +c :+ … +c , 该 问 题 为 典 型 的 单 目 标 线 性 规 划 . i l 则
值 为 z,, Z = ( *, 称 ZI
想 点 法 , 造 评 价 函数 构
r— =—— —— ——— ——— ——— —— —一
, Zr)为 值 域 中 的 一 个 理 想 点 , 为 一 般 很 难 达 到 .于 是 , 期 … * 因 在
使用Matlab进行多目标遗传算法优化问题求解的方法

使用Matlab进行多目标遗传算法优化问题求解的方法引言多目标优化问题是在现实生活中经常遇到的一种复杂的决策问题,其目标是寻找一个最优解来同时优化多个冲突的目标。
在实际应用中,往往难以找到一个能够满足所有目标的最优解,因此需要采取一种合理的方法来寻找一个最优的解集,这就是多目标优化问题。
多目标遗传算法是一种常用的方法之一,本文将介绍如何使用Matlab进行多目标遗传算法优化问题求解。
1. 问题的定义首先,我们需要明确多目标优化问题的定义和目标函数的形式。
多目标优化问题可以写成如下形式:minimize F(X) = [f1(X), f2(X), ..., fn(X)]subject to constraints(X)其中,X表示问题的决策变量,fi(X)表示问题的第i个目标函数(i=1,2,...,n),constraints(X)为问题的约束条件。
2. 遗传算法的基本原理遗传算法是一种模拟自然进化过程的优化方法,它模拟了遗传、交叉和突变等自然进化的过程。
遗传算法的基本原理包括:种群初始化、适应度评估、选择、交叉、变异和新种群更新等步骤。
3. 多目标遗传算法的改进传统的遗传算法只能求解单目标优化问题,对于多目标优化问题需要进行改进。
常用的改进方法有非支配排序、拥挤度距离以及遗传算子的设计等。
非支配排序:对于多目标优化问题,需要定义支配关系。
如果一个解在优化问题的所有目标上都比另一个解好,则称这个解支配另一个解。
非支配排序根据支配关系将解分为多个非支配层级,层级越高的解越优。
拥挤度距离:拥挤度距离用于衡量解的分布情况,越分散的解拥挤度越大。
拥挤度距离可以有效地保持种群的多样性,避免收敛到局部最优解。
遗传算子的设计:选择、交叉和变异是遗传算法中的三个重要操作。
在多目标遗传算法中,需要设计合适的遗传算子来保持种群的多样性,并尽可能地寻找高质量的解。
4. Matlab实现多目标遗传算法Matlab是一种功能强大的数学软件,它提供了丰富的工具箱和函数来实现多目标遗传算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多目标线性规划的若干解法及MATLAB 实现一.多目标线性规划模型多目标线性规划有着两个和两个以上的目标函数,且目标函数和约束条件全是线性函数,其数学模型表示为:11111221221122221122max n n n nr r r rn nz c x c x c x z c x c x c x z c x c x c x =+++⎧⎪=+++⎪⎨ ⎪⎪=+++⎩ (1)约束条件为:1111221121122222112212,,,0n n n n m m mn n mn a x a x a x b a x a x a x b a x a x a x bx x x +++≤⎧⎪+++≤⎪⎪ ⎨⎪+++≤⎪≥⎪⎩ (2) 若(1)式中只有一个1122i i i in n z c x c x c x =+++ ,则该问题为典型的单目标线性规划。
我们记:()ij m n A a ⨯=,()ij r n C c ⨯=,12(,,,)T m b b b b = ,12(,,,)T n x x x x = ,12(,,,)T r Z Z Z Z = .则上述多目标线性规划可用矩阵形式表示为:max Z Cx =约束条件:0Ax bx ≤⎧⎨≥⎩ (3)二.MATLAB 优化工具箱常用函数[3]在MA TLAB 软件中,有几个专门求解最优化问题的函数,如求线性规划问题的linprog 、求有约束非线性函数的fmincon 、求最大最小化问题的fminimax 、求多目标达到问题的fgoalattain 等,它们的调用形式分别为:①.[x,fval]=linprog(f,A,b,Aeq,beq,lb,ub)f 为目标函数系数,A,b 为不等式约束的系数, Aeq,beq 为等式约束系数, lb,ub 为x 的下限和上限, fval 求解的x 所对应的值。
算法原理:单纯形法的改进方法投影法 ②.[x,fval ]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub )fun 为目标函数的M 函数, x0为初值,A,b 为不等式约束的系数, Aeq,beq 为等式约束系数, lb,ub 为x 的下限和上限, fval 求解的x 所对应的值。
算法原理:基于K-T (Kuhn-Tucker )方程解的方法。
③.[x,fval ]=fminimax(fun,x0,A,b,Aeq,beq,lb,ub)fun 为目标函数的M 函数, x0为初值,A,b 为不等式约束的系数, Aeq,beq 为等式约束系数, lb,ub 为x 的下限和上限, fval 求解的x 所对应的值。
算法原理:序列二次规划法。
④.[x,fval ]=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)fun 为目标函数的M 函数, x0为初值,goal 变量为目标函数希望达到的向量值, wight参数指定目标函数间的权重,A,b 为不等式约束的系数, Aeq,beq 为等式约束系数, lb,ub 为x 的下限和上限, fval 求解的x 所对应的值。
算法原理:目标达到法。
三.多目标线性规划的求解方法及MA TLAB 实现4.1理想点法在(3)中,先求解r 个单目标问题:min (),1,2,j x DZ x j r ∈= ,设其最优值为*j Z ,称****12(,,)r Z Z Z Z = 为值域中的一个理想点,因为一般很难达到。
于是,在期望的某种度量之下,寻求距离*Z 最近的Z 作为近似值。
一种最直接的方法是最短距离理想点法,构造评价函数()Z ϕ=然后极小化[()]Z x ϕ,即求解min [()]x DZ x ϕ∈=并将它的最优解*x 作为(3)在这种意义下的“最优解”。
例1:利用理想点法求解112212121212max ()32max ()43.2318210,0f x x x f x x x s t x x x x x x =-+=+ +≤ +≤ ≥解:先分别对单目标求解:①求解1()f x 最优解的MA TLAB 程序为 >> f=[3;-2]; A=[2,3;2,1]; b=[18;10]; lb=[0;0]; >> [x,fval]=linprog(f,A,b,[],[],lb) 结果输出为:x = 0.0000 6.0000fval = -12.0000即最优解为12.②求解2()f x 最优解的MA TLAB 程序为 >> f=[-4;-3]; A=[2,3;2,1]; b=[18;10]; lb=[0;0]; >> [x,fval]=linprog(f,A,b,[],[],lb) 结果输出为:x =3.0000 4.0000fval =-24.0000即最优解为24. 于是得到理想点:(12,24). 然后求如下模型的最优解121212min [()].2318210,0x Df x s t x x x x x x ϕ∈= +≤ +≤ ≥MATLAB 程序如下:>> A=[2,3;2,1]; b=[18;10]; x0=[1;1]; lb=[0;0];>> x=fmincon('((-3*x(1)+2*x(2)-12)^2+(4*x(1)+3*x(2)-24)^2)^(1/2)',x0,A,b,[],[],lb,[]) 结果输出为:x = 0.5268 5.6488则对应的目标值分别为1()9.7172f x =,2()19.0536f x =.4.2线性加权和法在具有多个指标的问题中,人们总希望对那些相对重要的指标给予较大的权系数,因而将多目标向量问题转化为所有目标的加权求和的标量问题,基于这个现实,构造如下评价函数,即1min ()()ri i x Di Z x Z x ω∈==∑将它的最优解*x 作为(3)在线性加权和意义下的“最优解”。
(i ω为加权因子,其选取的方法很多,有专家打分法、容限法和加权因子分解法等).例2:对例1进行线性加权和法求解。
(权系数分别取10.5ω=,20.5ω=) 解:构造如下评价函数,即求如下模型的最优解。
1212121212min{0.5(32)0.5(43)}.2318210,0x x x x s t x x x x x x ⨯-+⨯-- +≤ +≤ ≥MATLAB 程序如下:>> f=[-0.5;-2.5; A=[2,3;2,1]; b=[18;10]; lb=[0;0]; >> x=linprog(f,A,b,[],[],lb)结果输出为:x =0.0000 6.0000则对应的目标值分别为1()12f x =,2()18f x =.4.3最大最小法在决策的时候,采取保守策略是稳妥的,即在最坏的情况下,寻求最好的结果,按照此想法,可以构造如下评价函数,即1()max i i rZ Z ϕ≤≤=然后求解: 1[()]max ()i x Dx D i rmin Z x min Z x ϕ∈∈≤≤=并将它的最优解*x 作为(3)在最大最小意义下的“最优解”。
例3:对例1进行最大最小法求解:解:MATLAB 程序如下,首先编写目标函数的M 文件:function f=myfun12(x) f(1)=3*x(1)-2*x(2); f(2)=-4*x(1)-3*x(2);>> x0=[1;1];A=[2,3;2,1];b=[18;10];lb=zeros(2,1); >> [x,fval]=fminimax('myfun12',x0,A,b,[],[],lb,[]) 结果输出为:x =0.0000 6.0000fval = -12 -18 则对应的目标值分别为1()12f x =,2()18f x =.4.4目标规划法()x DAppr Z x Z ∈→ (4)并把原多目标线性规划(3)min ()x DZ x ∈称为和目标规划(4)相对应的多目标线性规划。
为了用数量来描述(4),我们在目标空间r E 中引进点0()Z x Z 与之间的某种“距离”*21/21[()][(())]ri i i i D Z x Z Z x Z λ==-∑,这样(4)便可以用单目标0min [()]x DD Z x Z ∈,来描述了。
例4:对例1对进行目标规划法求解:解:MATLAB 程序如下,首先编写目标函数的M 文件:function f=myfun3(x) f(1)=3*x(1)-2*x(2); f(2)=-4*x(1)-3*x(2);>> goal=[18,10]; weight=[18,10]; x0=[1,1]; A=[2,3;2,1]; b=[18,10]; lb=zeros(2,1); >> [x,fval]=fgoalattain('myfun3',x0,goal,weight,A,b,[],[],lb,[]) 结果输出为:x = 0.0000 6.0000fval = -12 -18 则对应的目标值分别为1()12f x =,2()18f x =.4.5模糊数学求解方法[4]由于多目标线性规划的目标函数不止一个,要想求得某一个点作*x ,使得所有的目标函数都达到各自的最大值,这样的绝对最优解通常是不存在的。
因此,在具体求解时,需要采取折衷的方案,使各目标函数都尽可能的大。
模糊数学规划方法可对其各目标函数进行模糊化处理,将多目标问题转化为单目标,从而求该问题的模糊最优解。
具体的方法为:先求在约束条件:0Ax bx ≤⎧⎨≥⎩ 下各个单目标,1,2,i Z i r = 的最大值*i Z 和最小值i Z -,伸缩因子为*,1,2,i i i d Z Z i r -=-=得到*1112max 1,2,,1,2,,0,,,,0nij j i i i j n kj j kj n Z c x d Z d i r a x b k mx x x λλλ===⎧⎪⎪-≥-,= ⎪⎪⎨⎪≤=⎪⎪≥≥⎪⎩∑∑ (5)式(5)是一个简单的单目标线性规划问题。
最后求得模糊最优解为:****1(,,)Tn ZC x x = .利用(5)式来求解的关键是对伸缩指标的i d 确定,i d 是我们选择的一些常数,由于在多目标线性规划中,各子目标难以同时达到最大值*i Z ,但是可以确定的是各子目标的取值范围,它满足:*i i i Z Z Z -≤≤,所以,伸缩因子为i d 可以按如下取值:*i i i d Z Z -=-.例5:对例1进行模糊数学方法求解:解:①分别求得1()f x ,2()f x 在约束条件下的最大值为:*(12,24)Z =.②分别求得1()f x ,2()f x 在约束条件下的最小值为:(15,0)Z -=-. 伸缩因子为(27,24)i d = 然后求如下模型的最优解:1212121212max .322715432402318210,,0Z s t x x x x x x x x x x λλλλ= -+-≥- +-≥ +≤ +≤ ≥MATLAB 程序如下:>>f=[0;0;-1]; A=[3,-2,27;-4,-3,24;2,3,0;2,1,0]; b=[15;0;18;10]; lb=[0;0;0] >> [x,fval]=linprog(f,A,b,[],[],lb)结果输出为:x = 1.0253 5.3165 0.8354fval =-0.8354 于是原多目标规划问题的模糊最优值为**(7.5571,20.0507)Z =.四.结论多目线性标规划是优化问题的一种,由于其存在多个目标,要求各目标同时取得较优的值,使得求解的方法与过程都相对复杂. 通过将目标函数进行模糊化处理,可将多目标问题转化为单目标,借助工具软件,从而达到较易求解的目标。