توجه : این پروژه به صورت فایل power point (پاور پوینت) ارائه میگردد
دانلود پاورپوینت برنامه نویسی پویا (Dynamic Programming) با word دارای 52 اسلاید می باشد و دارای تنظیمات کامل در Power Point می باشد و آماده پرینت یا چاپ است
فایل پاور پوینت دانلود پاورپوینت برنامه نویسی پویا (Dynamic Programming) با word کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
دانلوددانلود پاورپوینت برنامه نویسی پویا (Dynamic Programming) با word
توجه فرمایید.1-در این مطلب، متن اسلاید های اولیه
دانلوددانلود پاورپوینت برنامه نویسی پویا (Dynamic Programming) با word
قرار داده شده است2-به علت اینکه امکان درج تصاویر استفاده شده در پاورپوینت وجود ندارد،در صورتی که مایل به دریافت تصاویری از ان قبل از خرید هستید، می توانید با پشتیبانی تماس حاصل فرمایید
3-پس از پرداخت هزینه ، حداکثر طی 12 ساعت پاورپوینت خرید شده ، به ادرس ایمیل شما ارسال خواهد شد
4-در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل اسلاید ها میباشد ودر فایل اصلی این پاورپوینت،به هیچ وجه بهم ریختگی وجود ندارد
5-در صورتی که اسلاید ها داری جدول و یا عکس باشند در متون زیر قرار داده نشده است
اسلاید 1 :
برنامه نویسی پویا (Dynamic Programming)
nمشابه روش تقسیم و حل, مسأله را به نمونه های کوچکتر تقسیم می کند.
nابتدا نمونه های کوچکتر را حل کرده و نتایج را ذخیره می کند. در صورت نیاز به جای محاسبه مجدد آن را بازیابی می کند.
nیک روش پایین به بالا است.
nبرخلاف روش تقسیم و حل, نمونه های کوچکتر به هم مرتبطند.
nزمانی که مسأله ها, زیرمسائل مشترکی داشته باشند الگوریتم تقسیم و حل بیشتر از حد نیاز کار می کند و زیر مسائل مشترک را چندین بار حل می کند.
اسلاید 2 :
ویژگیها
nبهینه سازی: در اغلب الگوریتمهای برنامه سازی پویا, تنها به دست آوردن جواب مهم نیست و باید جواب بهینه نیز باشد. مسأله بهینه سازی در حل مسائل کلیه سطوح باید اعمال گردد.
nبرخلاف مسائل تقسیم و حل که برای حل هر مسأله سطح L تنها از مسائل سطح L-1 استفاده می کند, در روش برنامه سازی پویا می توان از کلیه مسائل سطوح پایین تر استفاده کرد.
nدر هر سطح, کلیه مسائل آن سطح حل می گردند و نگهداری می شوند.
اسلاید 3 :
اصل بهینگی principle of optimality
n اصل بهینگی در صورتی برقرار است که در هر رشته از تصمیمات بهینه, هرزیر رشته از این تصمیمات نیز بهینه باشند.
مثال: مسأله کوتاهترین مسیر در گراف
n مراحل تولید الگوریتم برنامه نویسی پویا
1- مشخص کردن ساختار جواب بهینه
2- ارائه یک رابطه بازگشتی برای حل مسأله
3- حل یک نمونه مسأله به روش پایین به بالا و با شروع از حل نمونه های کوچکتر
4- ساختن یک جواب بهینه از روی اطلاعات محاسبه شده
اسلاید 4 :
الگوریتم محاسبه ضریب دوجمله ای با روش برنامه سازی پویا
int bin ( int n , int k)
{ int i,k,B[0..n][0..k];
for (j=0; j<=minimum(i,k); j++)
if B(j==0) || j==i)
B[i][j]=1;
else
B[i][j]=B[i-1][j-1]+B[i-1][j];
return B[n][k];
}
اسلاید 5 :
مسأله زنجیره ضرب ماتریسها
هدف: یافتن روش بهینه ضرب n ماتریس:
M=M1*M2*… * Mn
1- ضرب ماتریسها شرکت پذیر است.
2- دو ماتریس در صورتی قابل ضرب هستند که تعداد ستونهای ماتریس اول برابر با تعداد سطرهای ماتریس دوم باشد.
M=M1*M2* M3
M=(M1*M2)* M3
M=M1*(M2* M3)
اسلاید 6 :
nفرض: ماتریس Mi i=1,2,…,n ,دارای ابعاد ri-1×ri است.
mij حداقل تعداد اعمال ضرب عددی برای محاسبه Mi× Mi+1× …× Mj
mii=0
mij=min ik<j (mik+mk+1,j+ri-1×rk×rj)
mik حداقل تعداد اعمال ضرب عددی برای محاسبه Mi× Mi+1× …× Mj
mk+1,j حداقل تعداد اعمال ضرب عددی برای محاسبه Mk+1× Mk+2× …× Mj
ri-1×rk×rj حداقل تعداد اعمال ضرب عددی لازم برای ضرب دو ماتریس حاصل از عملیات فوق
اسلاید 7 :
حل مسأله:
nهمه مسائل را از کوچکترین به بزرگترین حل می کنیم.
nجواب زیرمسائل برای مراجعات بعدی در جدولی نگهداری می شود.
nمراحل:
مرحله صفر: عمل ضربی انجام نمی شود. i=0,1,…,n mii=0,
مرحله یک: یک عمل ضرب ماتریسی انجام می شود. همه i=0,1,…,n-1 mi,i+1, محاسبه و در جدولی نگهداری می شود.
مرحله دو: دو عمل ماتریسی انجام می شود. همه i=0,1,…,n-2 mi,i+2, محاسبه و در جدولی نگهداری می شود.
مرحلهn-1: n-1 عمل ماتریسی انجام می شود. در این مرحله m1n محاسبه می شود. که تعداد حداقل اعمل لازم برای ضرب ماتریسهاست.
اسلاید 8 :
برای ضرب چهار ماتریس:
M1[10][20],M2[20][50],M3[50][1],M4[1][100]
m11=m22=m33=m44=0
m12=min(m11+m22+10×20×50)=10000
m23=min(m22+m33+20×50×1)=1000
m34=min(m33+m44+50×1×100)=5000
m13=min(m11+m23+10×20×1, m12+m33+10×50×1)=1200
m24=min(m22+m34+20×50×100, m23+m44+20×1×100)=3000
m14=min(m11+m24+10×20×100, m12+m34+10×50×100, m13+m44+10×1×100)=2200
اسلاید 9 :
الگوریتم تعیین تعداد حداقل ضربهای مورد نیاز
int optimum(int m[][n+1],int A[][n+1], int n)
{ int i,j,L;
for(i=1;i<=n;i++) m[i][i]=0;
for(L=0;L<n;L++)
for(i=1;i<=n;i++)
{ j=i+L;
m[i][j]= min ik<j {m[i][k]+m[k+1][j]+ri-1×rk×rj)
A[i][j]=the value of k that gives the minimum;
}
return m[1][n];
}
پیچیدگی زمانی: (n3)
اسلاید 10 :
الگوریتم ایجاد مسیر بهینه (در x ذخیره خواهد شد)
void order (int i, int j, int x)
{ static int k=0;
if ( A[i][j]==0)
return;
order(i, A[i][j], x);
order(A[i][j]+1,j,x);
x[k]=A[i][j];
k++;
}