دانلود پاورپوینت حل مسأله با استفاده از درخت فضای حالت - دانلود فایل
دانلود فایل دانلود حل مسأله با استفاده از درخت فضای حالت,پاورپوینت حل مسأله با استفاده از درخت فضای حالت,دانلود پاورپوینت حل مسأله با استفاده از درخت فض
دانلود فایل دانلود پاورپوینت حل مسأله با استفاده از درخت فضای حالت لینک دانلود و خرید پایین توضیحات
دسته بندی : پاورپوینت
نوع فایل : .PPT ( قابل ويرايش و آماده پرينت )
قسمتی از متن .PPT :
تعداد اسلاید : 7 اسلاید
تا پایان جستجو امکان فهمیدن این که آیا یک گره جواب است یا خیر وجود ندارد.
باید بهینه سازی را درنظر داشت. اگر مجموع ارزش گره ها بیشتر از بهترین جوابی باشد که تا کنون به دست آورده ایم, مقدار بهترین جواب را به مقدار جدید تغییر می دهیم.
فرض: weight: مجموع وزن کالاهایی که تاکنون به گره ای اضافه شده اند.
profit : مجموع ارزش کالاهایی که تا گرعه جاری به حساب آمده اند.
bound: یک حد بالا برای ارزشی که می توانیم با بسط گره به آن برسیم.
totweight: حداکثر وزن کالاهای قابل انتخاب
maxprofit: مقدار ارزش بهترین جوابی که تا کنون پیدا شده. Backtracking 2 کالاها را به صورت غیرنزولی بر اساس مقادیر pi / wi مرتب می کنیم.
گره سطح k : گرهی که موجب تجاوز مجموع وزن از مرز M می شود.
در سطح i پیش بینی از حداکثر ارزش قابل دستیابی, برابر با مجموع ارزش به دست آمده به علاوه ارزش کالاهای باقی مانده تا سطح k-1 به علاوه مقدار قابل انتخاب از کالای k ام (با فرض این که بتوان بخشی از آن را انتخاب کرد) می باشد.
bound ≤ maxprofit : گره غیر وعده گاه است.
totweight = weight+ wj
bound = (profit+ pj )+(M-totweight)(pk / wk)
j=i+1 k-1 j=i+1 k-1 ارزش اولین k-1
کالای انتخاب شده ظرفیت باقی مانده
برای کالای k ام ارزش واحد وزن
کالای k ام Backtracking 3 مثال profit
weight
bound هر گره M=16 Backtracking 4 0
0
115 0 40
2
115 1 40,2 Backtracking 5 0
0
115 0 40
2
115 1 70
7
115 2 120
17
0 3 70
7
80 4 40,2 30,5 50,10 تعداد گره= 2n+1-1 Backtracking 6 void knapsack(int i, int profit, int weight)
{ if weight <= M && profit > maxprofit)
{ maxprofit=profit;
numbest=i;
bestset=include;
}
if (promising (i))
{ include[i+1]=“yes ;
knapsack(i+1, profit+p[i+1],weight+w[i+1]);
include[i+1]=“no ;
knapsack(i+1, profit,weight);
}
}
الگوریتم مسأله کوله پشتی با روش backtracking Backtracking 7 int promising(int i)
{ int j,k,totweight; float bound;
if(weight>=M)
return 0;
else
{ j=i+1;
bound=profit;
totweight=weight;
while (j<=n && totweight+w[j] <=M)
{ totweight= totweight+w[j];
bound=bound+p[j];
j++;
}
k=j;
if (k<=n)
bound=bound+(M- totweight)*p[k]/w[k];
return bound>maxprofit;
}
}