www.pudn.com > plan.rar > plan.cpp
#include#define pc(j) 20+5*j #define e(j) j void dp_plan(){ int i,j,k,sum,limit,n,io,max_stock,max_production,d[10],x[10][100],z,z_maxlimit,z_minlimit,xstar[10]; float f[10][100],temp; printf("WELCOME TO THE DYNIMIC SYSTEM! periods of the inventory =? "); scanf("%d",&n); printf(" the maximum stocks of each period=? "); scanf("%d",&max_stock); printf(" the maximum production of each period=? "); scanf("%d",&max_production); printf(" The stocks of the first period=? "); scanf("%d",&io); for(i=0;i =0;i--) {sum=0; for(j=i;j 0) {z_minlimit=d[i]-k; f[i][k]=pc(z_minlimit)+e(0)+f[i+1][0]; x[i][k]=z_minlimit; } else {z_minlimit=0; f[i][k]=e(k-d[i])+f[i+1][k-d[i]]; x[i][k]=0; } if(sum-k>max_stock+d[i]-k) if(max_stock+d[i]-k>max_production) z_maxlimit=max_production; else z_maxlimit=max_stock+d[i]-k; else if(sum-k>max_production) z_maxlimit=max_production; else z_maxlimit=sum-k; for(z=z_minlimit;z<=z_maxlimit;z++) {temp=pc(z)+e(k+z-d[i])+f[i+1][k+z-d[i]]; if(f[i][k]>temp) {f[i][k]=temp; x[i][k]=z; } } } } /* for(i=0;i %d ",f[i][j],x[i][j]); getch(); }*/ printf(" The minimum policy cost for the %d periods is %f",n,f[0][io]); xstar[0]=x[0][io]; j=io; printf(" The optimal amount to produce in period 1 is %d",xstar[0]); for(i=1;i