الگوریتم تپهنوردی: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جز ربات: مرتبسازی ردهها؛ زیباسازی |
Maryam neko (بحث | مشارکتها) |
||
خط ۱۹:
بدیهی است که بیشینهٔ نسبی به دست آمده لزوماً پاسخ خواسته شده نیست. ولی اگر الگوریتم گفته شده چندین بار تکرار شود می توان به یافتن پاسخی مطلوب امیدوار بود. (در هر بار اجرای الگوریتم نخستین عضو به صورت تصادفی انتخاب می شود.)
بدی این الگوریتم این است که در یک تابع که مینیمم ویا ماگزیمم محلی زیادی دارد(مانند تابع Ackley)به راحتی در ان گیر میفتد و قدرت خروج از انجا را ندارد چون این الگوریتم فقط نقاط اطراف خود را میبیند که در لحظه حضور در یک ماگزیمم محلی این احساس را دارد که از همه نقاط بالاتر است در حالی که چنین نیست و ان در یک ماگزیمم محلی اسیر شده است.
سورس برنامه تپه نوردی در محیط دو بعدی (که با f سه بعدی می شود)
Hill Climbing Algorithm
bestEval = -INF;
currentNode = startNode;
bestNode = NULL;
for MAX times
if (EVAL(currentNode) > bestEval)
bestEval = EVAL(currentNode);
bestNode = currentNode;
L = NEIGHBORS(currentNode);
nextEval = -INF;
for all x in L
if (EVAL(x) > nextEval)
currentNode = x;
nextEval = EVAL(x);
return currentNode
== چند مثال ==
|