1. 程式人生 > >多目標線性規劃求解方法及matlab實現

多目標線性規劃求解方法及matlab實現

求解多目標線性規劃的基本思想是將多目標轉化為單目標,常見的方法有理想點法線性加權法最大最小法目標規劃法模糊數學解法等。這裡就這幾種方法進行舉例說明,並用matlab實現。

一、多目標線性規劃模型

多目標線性規劃模型是有兩個或兩個以上的目標函式,且所有的目標函式和約束條件都是線性的,數學模型表示為:


我們記


則上述目標規劃可簡化為:


二、MATLAB優化工具箱常用函式

常用的求解最優化問題的函式,有線性規劃問題的linprog,非線性規劃問題的fmincon,最大最小問題的fminimax,求解多目標的fgoalattain等。呼叫形式分別為:


三、多目標線性規劃的求解方法及MATLAB實現

1.理想解法:



解:先對單目標進行求解

對第一個目標求解的matlab程式為:

f=[3;-2];
a=[2  3;2 1];
b=[18;10];
lb=[0;0];
ub=[];
[x,favl]=linprog(f,a,b,[],[],lb,ub);

輸出結果為:x=0.0000 6.0000,favl=-12.0000,所以最大值為12.0000

對第二個目標求解的matlab程式為:

f=[-4;-3];
a=[2  3;2 1];
b=[18;10];
lb=[0;0];
ub=[];
[x,favl]=linprog(f,a,b,[],[],lb,ub);

輸出結果為:x=3.0000 4.0000,favl=-24.0000,所以最大值為24.0000

於是得到理想點:(12,24)


Matlab程式為:

x0=[1;1];
a=[2 3;2 1];
b=[18;10];
lb=[0;0];
ub=[];
x=fmincon('((-3*x(1)+2*x(2)-12)^2+(4*x(1)+3*x(2)-24)^2)^(1/2)',x0,a,b,[],[],lb,ub);
f1=-3*x(1)+2*x(2);
f2=4*x(1)+3*x(2);

2.線性加權法:


求解的matlab程式為:

f=[-0.5;-2.5];
a=[2 3;2 1];
b=[18;10];
lb=[0;0];
ub=[];
x=linprog(f,a,b,[],[],lb,ub);

輸出結果為:x1=0.0000,x2=6.0000,對應的目標值為f1=12.0000,f2=18.0000

3.最大最小法


首先編寫M函式檔案:

function f=mutiplesubjiect(x)
f(1)=3*x(1)-2*x(2);
f(2)=-4*x(1)-3*x(2);

然後輸入

>> x0=[0;0];
a=[2 3;2 1];
b=[18;10];
lb=[0;0];
[x,favl]=fminimax('mutiplesubjiect',x0,a,b,[],[],lb,[])

4.目標規劃法

首先編寫M函式檔案,和上述M函式相同。然後輸入:

goal=[12,24];
weight=[12,24];
x0=[0;0];
a=[2 3;2 1];
b=[18;10];
lb=[0;0];
[x,fval]=fgoalattain('mutiplesubjiect',goal,weight,x0,a,b,[],[],lb,[])

輸出結果為:x1=0.0000,x2=6.0000,對應的目標值為f1=12.0000,f2=18.0000

5.模糊數學解法




求解的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];
ub=[];
[x,favl]=linprog(f,a,b,[],[],lb,ub);
f1=-3*x(1)+2*x(2);
f2=4*x(1)+3*x(2);

輸出結果為:x1=1.0253,x2=5.3165,x3=0.8354,對應的目標值為f1=7.5570,f2=20.0506



相關推薦

目標線性規劃求解方法matlab實現

求解多目標線性規劃的基本思想是將多目標轉化為單目標,常見的方法有理想點法、線性加權法、最大最小法、目標規劃法、模糊數學解法等。這裡就這幾種方法進行舉例說明,並用matlab實現。 一、多目標線性規劃模型 多目標線性規劃模型是有兩個或兩個以上的目標函式,且所有的目標函式和約

降維和特徵選擇的關鍵方法介紹MATLAB實現

目錄 概念理解 降維: 特徵選擇: 降維的方法 搜尋法 隨機搜尋 啟發式搜尋 正則化方法 概念理解 降維: 比如現在有100維的變數來表徵一個東西,我們覺得太冗餘複雜了,想降低到10維。但是我們沒有確定的篩選依據,直接

包含啟用函式的層神經元網路matlab實現

1.     兩層神經網路結構 雙輸入單輸出的兩層神經網路結果如下圖所示。其中括號中表示實際的權值、輸出值、閾值等神經網路的引數,括號外的變量表示估計的權值、輸出值、閾值等值。 具體的公式推導可參考周志華的《機器學習》清華大學出版社第5.3節的內容。 對於最後的代價函式的顯

短波通道模型--徑瑞利通道原理詳解matlab實現

        瑞利衰落是一種小尺度衰落效應,它總是疊加於大尺度衰落效應上如衰減、陰影等。發射端和接收端相對運動速度的大小決定了通道衰落的快慢。相對運對導致接收訊號存在多普勒頻移,即通道衰落的快慢與多普勒頻移的大小有關。        基於頻率單調衰落的基帶等效Jakes模型

粒子群優化算法PSOmatlab實現

參數 min 功能 結果 ide 過程 mil .html none 算法學習自:MATLAB與機器學習教學視頻 1、粒子群優化算法概述 粒子群優化(PSO, particle swarm optimization)算法是計算智能領域,除了蟻群算法,魚群算法

Voronoi圖matlab實現

定義 dst color center bsp cdb size target tps [題外話:想一想真是...美賽時我預測求愛爾蘭的充電站位置分布,畫Voronoi圖,程序跑了一個小時...] Voronoi圖,又叫泰森多邊形或Dirichlet圖,它是由一組由

剪下波的一些知識(附pythonmatlab實現剪下波變換的程式碼)

【時間】2018.10.18 【題目】剪下波的一些知識(附python及matlab實現剪下波變換的程式碼)   概述     本文是閱讀論文《基於剪下波變換的人臉表情識別》後,對於其中有關剪下波內容的一些筆記。     剪下波是

Java常用的九種排序方法程式碼實現

  package com.algorithm.Demo; import java.util.ArrayList; import java.util.Arrays; import j

聚類外部評價指標(F-Measure、Entropy、Purity)matlab實現

本文參考: 1.https://www.cnblogs.com/zhangduo/p/4504879.html 2.https://blog.csdn.net/vernice/article/details/46467449?utm_source=blogxgwz8 一、簡介介紹 聚類中的外

正態分佈matlab實現

正態分佈(Normal distribution)又名高斯分佈(Gaussian distribution),是一個在數學、物理及工程等領域都非常重要的概率分佈,在統計學的許多方面有著重大的影響力。 若隨機變數X服從一個數學期望為μ、標準方差為σ2的高斯分佈,記為:

演算法導論—插入排序Matlab實現

插入排序是《演算法導論》中的第一個演算法, 插入排序:Insertion-sort 輸入:待排序陣列A[1,···,n],長度為n 輸出:按從小到大順序排序好的陣列 演算法思想:插入排序是最簡單直觀的排序方法,原理就是通過構建有序序列,隨後將待排序元素插

粒子群優化演算法(PSO)簡介MATLAB實現

目錄 粒子群優化演算法概述 • 粒子群優化(PSO, particle swarm optimization)演算法是計算智慧領域,除了蟻群演算法,魚群演算法之外的一種群體智慧的優化演算法,該演算法最早由Kennedy和Eberhart在1995年提出的,

Viola–Jones object detection framework--Rapid Object Detection using a Boosted Cascade of Simple Features中文翻譯 matlab實現(見文末連結)

ACCEPTED CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION 2001 Rapid Object Detection using a Boosted Cascade of Simple Features  簡單特徵的優化級聯

資料降維方法Python實現

一、資料降維瞭解 1.1、資料降維原理:機器學習領域中所謂的降維就是指採用某種對映方法,將原高維空間中的資料點對映到低維度的空間中。降維的本質是學習一個對映函式 f : x->y,其中x是原始資料點的表達,目前最多使用向量表達形式。 y是資料點對映後的低維向量表達

區域生長演算法原理MATLAB實現

% Segment based on area, Region Growing; clear all; close all; clc [fileName,pathName] = uigetfile('*.*','Please select an image');%檔案筐,選擇檔案 if(fileName)

直方圖均衡原理Matlab實現

直方圖均衡(Histogram Equalization) 預備知識(PMF、CDF) 概述 實現 Matlab程式碼 預備知識(PMF、CDF) 1.PMF 概率質量函式(Probability Mass Function)是離散隨機變數在各特

高斯分佈中均值,方差,協方差的計算matlab實現

今天看論文的時候又看到了協方差矩陣這個破東西,以前看模式分類的時候就特困擾,沒想到現在還是搞不清楚,索性開始查協方差矩陣的資料,惡補之後決定馬上記錄下來,嘿嘿~本文我將用自認為循序漸進的方式談談協方差矩陣。 統計學的基本概念 學過概率統計的孩子都知道,統計裡最

K-means原理Matlab實現

前言 作為勵志在機器學習界闖出一片天地的小女子,在此整理學習到的機器學習方法,並使用Matlab及Python實現。希望可以和大家互相交流和探討。 聯絡方式:[email protected] K-means原理 k-means應該是入

數字影象去噪典型演算法MATLAB實現

影象去噪是數字影象處理中的重要環節和步驟。去噪效果的好壞直接影響到後續的影象處理工作如影象分割、邊緣檢測等。影象訊號在產生、傳輸過程中都可能受到噪聲的汙染,一般數字影象系統中的常見噪聲主要有:高斯噪聲(主要由阻性元器件內部產生)、椒鹽噪聲(只要是影象切割引起的黑影象上的白點噪

最優化方法Matlab實現

優化引數選項。可以通過optimset函式設定或改變這些引數。其中有的引數適用於所有的優化演算法,有的則只適用於大型優化問題,另外一些則只適用於中型問題。 首先描述適用於大型問題的選項。這僅僅是一個參考,因為使用大型問題演算法有一些條件。對於fminunc函式來說,必須提供梯度資訊。 l LargeS