?? example1.m
字號:
%***************************************************************%
%問題描述:例1 現有4種不同的車床1,2,3,4同時加工500件相同的零件,
% 各車床加工一個零件的時間分別為0.5,0.1,0.2和0.05h.問如何給4個
% 車床分配加工零件數目,使完工時間最短?
%算法設計:將問題按車床編號分為4個階段,再外加1個階段,共5個階段.設狀態變
%量x表示可分配給第k號車床的零件數,決策變量u(k-1)表示分配給第k一1號車床的
%零件數,狀態轉移方程為x(k-1)=x(k)+u(k-1),階段目標函數L(x(k-l),u(k-1))
%表示u(k-1)個零件分配給第k一1號車床加工所需的最短時間L(x(k-l),u(k-1))=u(k-1)*
%t(k-1),t(k-1)是第是k-1號車床的加工時間.fk(x(k))表示狀態變量為xk時所需的最短
%時間,則基本方程為.....見文獻。設想x(0)=500,若x(0)=500,則 f0(x0)=0,否則,
%f0(x0)=infinity.根據上面所述的階段目標函數、狀態轉移方程和基本方程,寫出包括
%主文件example1.m在內的5個M-函數。
%參數說明:p由四列構成,p=[ 階段號; 狀態; 決策; 階段目標函數值];
%f是一個列向量,各元素分別表示各最優策略對應的最優目標函數值.
%p和f分別對應MinForeDynprog程序的兩個輸出參數OptPol和OptObjval
%詳情參見MinForeDynprog代碼說明
%***************************************************************%
clear;
n=500;x1=[n;nan*ones(n-1,1)];%除第一行為500外,其余皆為nan
x2=1:n;%x2為1到500的行向量
x2=x2';%把x2為變為1到500的列向量
x5=[0;nan*ones(n-1,1)];
x=[x1,x2,x2,x2,x5];
[p,f]=MinForeDynprog(x,'DecisF1','SubObjF1','TransF1','ObjF1')
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -