《2022年动态规划matlab仿真实例.docx》由会员分享,可在线阅读,更多相关《2022年动态规划matlab仿真实例.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源动态规划在火力安排中地应用.1. 问题描述设有 m 个目标,目标价值(重要性和危害性)各不相同,用数值AK( K=1,2,.m )表示,方案用 n 枚导弹突袭,导弹击毁目标地概率PK=,其中 是常数,取决于导弹地特性与目标地性质;为向目标发射地导弹数,问题:做出方案使预期地突击成效最大 .2. 问题建模上述问题可以表述为约束条件为(为非负整数)3. 算法描述下面通过一个实例说明:设目标数目为4(m=4),导弹为5( n=5),和 aK取值情形如下表所示:表 1:Ak取值情形目标 K123487630.20.30.50.9将火力安排可分为 4 个阶段,每个阶段指标函数为:欢迎下载精品
2、学习资源可能取值为 0,1,2,3,4,5,将函数值带人如下表:表 2 函数值u0000011.451.812.361.7922.643.163.792.5133.614.154.662.8144.414.895.192.9355.065.445.512.97动态规划问题基本方程为:c=0逐次向前推一级K=4K=3K=2K=1()只需要求解地最大值然后反推回去就可以获得最优地安排方案4. Matlab 仿真求解由于 与 取值为整数,可以采纳动态规划地方法,获得地最大值,对应欢迎下载精品学习资源地最优方案functionp_opt,fval=dynprogx,DecisFun,SubObjFun
3、,TransFun,ObjFun% 求解动态规划问题最小值函数k=lengthx1,:%判定决策级数x_isnan=isnanx;%非空状态矩阵t_vubm=inf*onessizex; %性能指标中间矩阵f_opt=nan*onessizex; %总性能指标矩阵d_opt=f_opt; %每步决策矩阵tmp1=findx_isnan:,k; %最终一步状态向量tmp2=lengthtmp1;%最终一步状态个数for i=1:tmp2u=fevalDecisFun,k,xtmp1i,k;tmp3=lengthu;%决策变量for j=1:tmp3 %求出当前状态下全部决策地最小性能指标tmp=
4、fevalSubObjFun,k,xtmp1i,k,uj;if tmp = t_vubmi,k %t_vubf_opti,k=tmp;d_opti,k=uj;t_vubmi,k=tmp;end;end;endfor ii=k-1:-1:1tmp10=findx_isnan:,ii;tmp20=lengthtmp10;for i=1:tmp20 %求出当前状态下全部可能地决策u=fevalDecisFun,ii,xtmp10i,ii;tmp30=lengthu;for j=1:tmp30 %求出当前状态下全部决策地最小性能指标tmp00=fevalSubObjFun,ii,xtmp10i,ii,
5、uj; %单步性能指标tmp40=fevalTransFun,ii,xtmp10i,ii,uj; %下一状态tmp50=x:,ii+1-tmp40; %找出下一状态在 x矩阵位置置tmp60=findtmp50=0;ifisemptytmp60if nargin6%矩阵不同需要修改 nargin地值,很重要tmp00=tmp00+f_opttmp601,ii+1; % set the default object value elsetmp00=fevalObjFun,tmp00,f_opttmp601,ii+1;end %当前状态地性能指标if tmp00=t_vubmi,iif_opti,
6、ii=tmp00;d_opti,ii=ujt_vubmi,ii=tmp00;欢迎下载精品学习资源end;end;end;end;endfval=f_opt:,1;tmp0 = findisnanfval;fval=fvaltmp0,1;p_opt=;tmpx=;tmpd=;tmpf=;tmp01=lengthtmp0;for i=1:tmp01tmpdi=d_opttmp0i,1;tmpxi=xtmp0i,1;tmpfi=fevalSubObjFun,1,tmpxi,tmpdi;p_optk*i-1+1,1,2,3,4=1,tmpxi,tmpdi,tmpfi;for ii=2:ktmpxi=f
7、evalTransFun,ii,tmpxi,tmpdi;tmp1=x:,ii-tmpxi;tmp2=findtmp1=0;if isemptytmp2tmpdi=d_opttmp21,ii;endtmpfi=fevalSubObjFun,ii,tmpxi,tmpdi;p_optk*i-1+ii,1,2,3,4=ii,tmpxi,tmpdi,tmpfi;end;end ;下面编写四个函数:function u = DecisF1 k,x %决策函数if k=4u=x;elseu=0:x;endfunction y = TransF1 k,x,u %状态转移方程y=x-u;function v =
8、 SubObjF1 k,x,u %a=0.2,0.3,0.5,0.9;阶段k 地指标函数A=8,7,6,3;v=Ak*1-exp-ak*uv=-v; %max变为 min;function y = ObjF1 v,f %基本方程中地函数y=v+f;y=-y;%max变为 min测试代码:clear;欢迎下载精品学习资源n=5 ;x1=n;nan*onesn,1;x2=0:n;x2=x2;x=x1,x2,x2,x2;p,f=dynprogx,DecisF1,SubObjF1,TransF1,ObjF1%p为安排方案, f 为结果5. Matlab 仿真结果分析运行结果显示:P 为方案:即对目标 1 发射 1 枚导弹,对目标 2 发射 1 枚,对目标 3 发射 2 枚,对目标 4发生 1 枚导弹,能获得最大效能 . f 为最大地效能:即在这种安排下地最大效能为 8.8374欢迎下载