电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

2024年动态规划逆序

2024年动态规划逆序_第1页
1/4
2024年动态规划逆序_第2页
2/4
2024年动态规划逆序_第3页
3/4
精选 word 文档 下载可编辑 function [p_opt,fval]=dynprog(x,DecisFun,SubObjFun,TransFun,ObjFun) % [p_opt,fval]=dynprog(x,DecisFun,SubObjFun,TransFun) % 自由始端和终端的动态规划,求指标函数最小值的逆序算法递归 % 计算程序。x 是状态变量,一列代表一个阶段状态;M-函数 % DecisFun(k,x)由阶段 k 的状态变量 x 求出相应的允许决策变量; % M-函数 SubObjFun(k,x,u)是阶段指标函数,M-函数 TransFun(k,x,u) % 是状态转移函数,其中 x 是阶段 k 的某状态变量,u 是相应的决策变量; % 输出 p_opt 由 4 列构成,p_opt=[序号组;最优策略组;最优轨线组; % 指标函数值组];fval 是一个列向量,各元素分别表示 p_opt 各 % 最优策略组对应始端状态 x 的最优函数值; %例(参看胡良剑等编《数学实验--使用 MATLAB》P180 %先写 3 个函数 % eg13f1_2.m % function u=DecisF_1(k,x) % 在阶段 k 由状态变量 x 的值求出其相应的决策变量所有的取值 % c=[70,72,80,76];q=10*[6,7,12,6]; % if q(k)-x<0,u=0:100; %决策变量不能取为负值 % else,u=q(k)-x:100;end; %产量满足需求且不超过 100 % u=u(:); % eg13f2_2.m % function v=ObjF_1(k,x,u) % 阶段 k 的指标函数 % c=[70,72,80,76];v=c(k)*u+2*x; % eg13f3_2.m % function y=TransF_1(k,x,u)下载后可任意编辑 % 状态转移方程 % q=10*[6,7,12,6];y=x+u-q(k); %调用 DynProg.m 计算如下: % clear;x=nan*ones(14,4);% x 是 10 的倍数,最大范围 0≤x≤130, % %因此 x=0,1,...13,所以 x 初始化取 14 行,nan 表示无意义元素 % x(1:7,1)=10*(0:6)'; % 按月定义 x 的可能取值 % x(1:11,2)=10*(0:10)';x(1:12,3)=10*(2:13)'; % x(1:7,4)=10*(0:6)'; % [p,f]=dynprog(x,'eg13f1_2','eg13f2_2','eg13f3_2') % By X.D. Ding June 2000 k=length(x(1,:));f_opt=nan*ones(size(x));d_opt=f_opt; t_vubm=inf*ones(size(x));x_isnan=~isnan(x);t_vub=inf; % 计算终端相关值 tmp1=find(x_isnan(:,k));tmp2=length(tmp1); for i=1:tmp2 u=feval(DecisFun,k,x(i,k));tmp3=length(u); for j=1:tmp3 tmp=feval(SubObjFun,k,x(tmp1(i),k),u(j)); if tmp<=t_vub, f_opt(i,k)=tmp;d_opt(i,k)=u(j);t_vub=tmp; end;end;end % 逆推计算各阶段的递归调用程序 for ii=k-1...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

2024年动态规划逆序

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部