999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MATLAB在運籌學中的應用

2015-09-10 07:22:44張建勇于愷李友朋張翠艷
考試周刊 2015年68期

張建勇 于愷 李友朋 張翠艷

摘 ? ?要: 本文根據運籌學的學科特點及在教學中存在的不足,提出了在教學實踐中引入Matlab作為教學輔助手段,主要闡述MATLAB在線性規劃、目標規劃、二次規劃中的應用,實例驗證了Matlab在求解運籌學問題時的高效性和準確性。

關鍵詞: MATLAB ? ?運籌學 ? ?線性規劃 ? ?目標規劃 ? ?二次規劃

一、引言

運籌學是利用現代數學研究各種廣義資源的運用、籌劃與相關決策等問題的一門新興學科。該課程的主要特點是運用量化的分析方法,對有限的資源進行統籌安排,其研究成果為決策者提供科學依據。由于很多問題來源于實際的生產和管理活動,因此在建立數學模型時往往會涉及很多變量和約束條件,使得所建立的模型較復雜。如何求解這類模型成為解決問題的關鍵。

在運籌學的教學中,盡管目前的教學改革使得教學手段豐富多樣,但這些教學手段只是將教材內容搬運到多媒體課件上。加之多媒體的教學節奏較快,使得原本生動的教學內容,只側重于理論分析和公式推導,忽略計算過程和結果,導致課堂教學效果差。手工推演和計算運籌學中實例的可行性太低,成熟的商業軟件能夠為運籌學教學提供較好的輔助作用。

目前最好的方法是借助于計算機和商業軟件進行求解,常見的軟件主要有LINGO、LINDO和MATLAB等[1]。LINGO是美國LINDO系統公司研發的,常用于求解線性規劃及一些簡單的非線性規劃問題。該軟件在處理復雜的非線性規劃問題時存在一定的局限性。1984年美國MathWorks公司開發的MATLAB軟件,已經發展成國際上應用最廣泛的科學與工程計算軟件之一。其中包含與運籌學緊密相關的優化工具箱,該工具箱的基本功能有:求解線性規劃、非線性規劃、動態規劃、目標規劃及多目標規劃等問題,在求解各類優化問題時都有著無可替代的優勢[2]。

本文通過線性規劃、二次規劃和目標規劃三個方面,結合具體實例,說明MATLAB在求解運籌學問題時的易操作性與直觀性。

二、MATLAB在線性規劃方面的應用

線性規劃是最優化中的一個分支,是最優化理論的基礎性內容。有關線性規劃問題的建模、求解和應用性研究,構成了運籌學中線性規劃[3]分支。在MATLAB的優化工具箱中,線性規劃問題必須表示為如下[4]:

對于一般的線性規劃問題,可以根據線性規劃的標準化方法,將其轉換為模型(1)的形式。求解模型(1)的MATLAB命令函數為linprog(),完整的調用格式形式為:

[x,fval,exitflag,output,lambda]=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)

其中,f為目標函數中系數向量的轉置,是一維行向量,A、b滿足不等式Ax≤b,若沒有不等式約束,則A=[],b=[];Aeq、beq滿足等式約束Aeq=beq,若沒有,則取Aeq=[],beq=[];lb、ub滿足,若無界,可令lb=[],ub=[];x0為初始值;options為包含算法控制參數的結構變量,可以通過optimset命令對這些具體的控制參數進行設置。

輸出參數x為線性規劃問題的最優解,fval為線性規劃問題在最優解x處的函數值,exitflag返回的是優化函數計算終止時的狀態指示,說明算法終止的原因,當其值為1時說明已經收斂到x,當x取其他值時,其物理意義如表1。

表1 ? ?Exitflag的反饋值與對應的物理意義

output輸出優化信息,lambda為lagrange乘子,它體現某個約束的有效性。在使用linprog()命令時,必須嚴格遵循它的調用格式(1)。比如下面的線性規劃問題:

max z=x■+x■s.t. ? ?x■-2x■≤4 ? ? ? ? x■+2x■≤8 ? ? ? ? x■,x■≥0

程序如下:

clc;clear;

f=[-1;-1]; %目標函數,為轉化為極小,故取目標函數中設計變量的相反數

A=[1 ?-2;1 ?2];%線性不等式約束

b=[4;8];

lb=[0;0];

ub=[Inf;Inf];%邊界約束,由于無上界,故設置ub=[Inf;Inf]

[x,fval]=linprog(f,A,b,[],[],lb,ub)%x為最優解,fval為最優值

運算結果如下:

Optimization terminated.

x=[6.0000,1.0000]

fval=-7.0000

由結果可知,當x=6,x=1時,目標函數取得最優解7。

三、MATLAB在二次規劃中的應用

二次型規劃問題是一種簡單的有約束非線性規劃問題,它已成為運籌學、經濟數學及組合優化科學的基本方法。非線性規劃問題在計算上是困難的,理論上也不像線性規劃那樣有簡潔的結果和成熟的理論。通常情況下,采用迭代的思想計算非線性規劃問題,即從一個滿足約束條件的初始可行點出發,按照一定的搜索機制,找到下一個使目標函數更優的可行解,直到找到最優解其目標。在Matlab中,二次規劃函數是x的二次型形式,約束條件仍為線性的。一般的二次規劃問題的數學表示為[4]:

與線性規劃相比,二次型規劃多出一項XHX描述x和xx項。在MATLAB工具箱中,求解二次型規劃的是命令函數是quadprog()。函數調用形式如下所示:

[x,fval,exitflag,output,lambda]=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)

其輸入參數H為對角矩陣,表示x和xx項前面的系數,其他參數的輸入格式與linprog()完全相同,見表1。

例如求解下列二次型規劃問題

程序如下:

clc,clear;

H=diag([10 8 6 4 2]);

f=[-2,-1,-2,-5,-10];

A=[1,1,1,1,1;-5,4,-3,2,-1;1,1,0,0,-1;0,0,0,1,1;0,0,-1,0,0;0,0,0,-1,0];

b=[20;-5;8;10;-5;-3];

[x,fval,exitflag]=quadprog(H,f,A,b)

運算結果如下:

Optimization terminated.

x=[0.2000 ? 0.1250 ? 5.0000 ? 3.0000 ? 5.0000]

fval=42.7375

exitflag=1

所以當x=0.2,x=0.125,x=5,x=3,x=5時,目標函數取得最小值42.7375。exitflag=1說明函數取得最優解。

四、MATLAB在目標規劃中的應用

目標規劃在處理實際決策問題時,承認各項決策要求的存在有其合理性,即在最終決策時,不強調其絕對意義上的最優性,在一定程度上彌補了線性規劃存在的某些缺陷。因此,在運籌學中所有的規劃問題中,與實際聯系最大的當屬目標規劃。MATLAB所定義的目標函數的標準形式為

γs.t. ? f(x)-weight·γ≤goal ? ? ? ?c(x)≤0 ? ? ? ?ceq(x)=0 ? ? ? ?Ax≤b ? ? ? ?Aeqx=beq ? ? ? ?lb≤x≤ub

其中x、weight、goal、b、beq、lb、ub為相應維數的向量,A、Aeq為矩陣,c(x)、ceq(x)、f(x)為返回向量的函數,它們可以是線性函數,也可以是非線性函數。

在MATLAB的庫函數中,針對目標規劃的命令函數名為fgoalattain(),調用形式為:

[x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)

其中在輸入參數中,fun為目標函數,x■是求解的初始值,goal是目標函數的期望值,weight是目標權重,nonlcon是非線性約束函數。輸出參數中,attainfactor參數包含解處的γ值,γ取負值時表示結果溢出。

例如,某化工廠擬生產兩種新產品A和B,其生產設備費用分別為:2萬元/t和5萬元/t。這兩種產品均造成環境污染,假設由公害所造成的損失可折算為4萬元/t和1萬元/t。由于條件限制,該廠的兩種產品的最大生產能力分別為每月5t和6t,而市場需要這兩種產品的總量每月不少于7t。試問工廠如何安排生產計劃,在滿足市場需要的前提下,使設備投資和公害損失均達到最小?

該工廠決策認為,這兩個目標中環境污染應優先考慮,設備投資的目標值20萬元,公害損失的目標為12萬元。

相應的MATLAB程序如下:

clc,clear;

A=[1,0;0,1;-1;-1];

b=[5;6;7];

x0=[0,0];

goal=[20,12];%設置期望目標值

weight=abs(goal);%設置目標權重

[x,fval,attainfactor]=fgoalattain(@funa,x0,goal,weight,A,b)

function f=funa(x)

f(1)=2*x(1)+5*x(2);

f(2)=4*x(1)+x(2);

運算結果如下:

x=[2.9167 ? ?4.0833]

fval=26.2500 ? 15.7500

attainfactor=0.3125

由結果可知,每月生產A產品3t,B產品4t時,設備投資費用和公害損失與目標最為接近,設備投資費用為26.25萬元,公害損失為15.75萬元。Attaintfactor>0說明γ值未溢出,結果可信。

五、結語

以上實例說明,利用MATLAB可以方便地求出線性規劃等優化問題的解,不僅算法簡單,避免了手工的繁瑣計算,而且可以大大提高計算速度和計算的準確性。將MATLAB軟件用于運籌學教學,可以更直觀地理解運籌學中的基本概念理論,并可培養動手和科研實踐能力。

同時,運籌學還包含其他內容,如動態規劃、整數規劃、非線性規劃等內容,在Matlab中,也有與之對應的命令或工具箱,學習者可以結合網絡資源或者Matlab中的help命令進行學習。

參考文獻:

[1]王立欣,王愛維,趙美.運籌學常用軟件綜述[J].科技情報開發與經濟,2009,26:95-96.

[2]張明,王文文.Matlab在經管類運籌學教學中的探索與實踐[J].大學教育,2012,07:81-82.

[3]胡運權.運籌學教程(第三版)[M].北京:清華大學出版社,2007.

[4]楊云峰,胡金燕,宋國亮.數學建模與數學軟件[M].哈爾濱:哈爾濱工程大學出版社,2012.

[5]馬莉.MATLAB數學實驗與建模[M].北京:清華大學出版社,2010.

主站蜘蛛池模板: 久久久久无码精品国产免费| 亚洲伊人久久精品影院| 国产午夜一级淫片| 九九热视频精品在线| 在线色国产| 中文字幕无码制服中字| 亚洲无码37.| 免费a在线观看播放| 免费国产不卡午夜福在线观看| 亚洲成人高清在线观看| 成人国产免费| 亚洲最大综合网| 免费无码AV片在线观看国产| 国产在线视频福利资源站| 久久婷婷国产综合尤物精品| 一级在线毛片| 成人国产精品2021| 夜夜拍夜夜爽| 日韩二区三区无| 四虎成人免费毛片| 中国特黄美女一级视频| 久久精品亚洲专区| 日韩黄色精品| 精品福利一区二区免费视频| 午夜人性色福利无码视频在线观看| av尤物免费在线观看| 伊人久久大线影院首页| 国产手机在线小视频免费观看| 呦系列视频一区二区三区| 5555国产在线观看| 中文字幕1区2区| 欧美在线网| 呦系列视频一区二区三区| 国内老司机精品视频在线播出| 精品五夜婷香蕉国产线看观看| 91久久夜色精品国产网站 | 精品欧美日韩国产日漫一区不卡| 精品国产自在在线在线观看| 刘亦菲一区二区在线观看| 91美女视频在线| 成人国产小视频| 欧美a级在线| 免费又爽又刺激高潮网址| 国产网站免费观看| 国产成人做受免费视频| 久久天天躁夜夜躁狠狠| 在线观看国产黄色| 亚洲天堂日韩av电影| 国产精品亚欧美一区二区| 欧美一级一级做性视频| 国产一区二区丝袜高跟鞋| 99er这里只有精品| 欧美五月婷婷| 国产欧美一区二区三区视频在线观看| 国产人成在线视频| 亚洲黄网视频| 国产成人精品在线| 看你懂的巨臀中文字幕一区二区 | 五月婷婷丁香色| 国产精品污污在线观看网站| 国产成人三级在线观看视频| 亚洲成人网在线播放| 十八禁美女裸体网站| 91福利一区二区三区| 无遮挡国产高潮视频免费观看| 在线看免费无码av天堂的| 婷婷六月天激情| 日韩区欧美国产区在线观看| 亚洲欧美日韩中文字幕一区二区三区 | 丁香婷婷在线视频| 久久久亚洲国产美女国产盗摄| 欧美中文字幕在线播放| 亚洲黄色片免费看| 国产日本欧美在线观看| 全部免费特黄特色大片视频| 亚洲成人网在线观看| 欧美www在线观看| 亚洲福利片无码最新在线播放| 亚洲精品无码在线播放网站| 国产成在线观看免费视频| 欧美在线一二区| 国产精品久久久久久影院|