多目標線性規劃求解方法及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模型
粒子群優化算法PSO及matlab實現
參數 min 功能 結果 ide 過程 mil .html none 算法學習自:MATLAB與機器學習教學視頻 1、粒子群優化算法概述 粒子群優化(PSO, particle swarm optimization)算法是計算智能領域,除了蟻群算法,魚群算法
Voronoi圖及matlab實現
定義 dst color center bsp cdb size target tps [題外話:想一想真是...美賽時我預測求愛爾蘭的充電站位置分布,畫Voronoi圖,程序跑了一個小時...] Voronoi圖,又叫泰森多邊形或Dirichlet圖,它是由一組由
剪下波的一些知識(附python及matlab實現剪下波變換的程式碼)
【時間】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