PDA

View Full Version : نوشتن برنامه الگوریتم فروشنده دورگرد به روش پویا



akbar_online
دوشنبه 18 اردیبهشت 1391, 13:07 عصر
الگوریتم زیر الگوریتم فروشنده دورگرد

void travel (int n,
const number W [] [],
index P [] [],
number & minlength)
{
index i, j, k;
number D [1 .. n] [subset of V - {v1}];

for (i = 2; i <= n; i++)
D [⊘] = W[i] [1];
for (k = 1; k <= n - 2; k++)
for (all subsets A ⊆ V - {v1} containing k vertices)
for (i such that i ≠ 1 and vi is not in A){
D [i] [A] = minimum (W [i] [j] + D [j [A - {vj}]);
j: [vj ∊ A
P[i] [A] = value of j that gave the minimum;
}
D [1] [V - {v1}] = minimum (W[1] [j] + D[j] [V - {v1, vj}]);
2 ≤ j ≤ n
P[1] [V - {v1}] = value of j that gave the minimum;
minlength = D[1] [V - {v1}];
}


سوال اینه که تو برنامه نویسی زیرمجموعه ها را باید چجوری ذخیره کنم بعد اینکه بخوام برای فرمول زیر کد بنویسم باید چیکار کنم

[I]D [i] [A] = minimum (W [i] [j] + D [j [A - {vj}]);

vistacali
دوشنبه 18 اردیبهشت 1391, 14:27 عصر
دوست گرامی قبلا داخل چند پست قبل در این باره بحث شده اونجا میتونی جواب رو پیدا کنی فیلم های امورزشی هم در همون پست زده شده است

NIMA_1981
دوشنبه 18 اردیبهشت 1391, 14:43 عصر
این الگوریتم به این سادگی فابل پیاده سازی نیست - با برنامه نویسی معمولی و این الگوریتم نمیتونی محاسبه کنی مثلا اگه 50 شهر داشته باشی کامپیوتر نمیوتنه حساب کنه - بهترا از الگوریتم ژنتیک استفاده برای حل این مسله

akbar_online
دوشنبه 18 اردیبهشت 1391, 15:28 عصر
این الگوریتم به این سادگی فابل پیاده سازی نیست - با برنامه نویسی معمولی و این الگوریتم نمیتونی محاسبه کنی مثلا اگه 50 شهر داشته باشی کامپیوتر نمیوتنه حساب کنه - بهترا از الگوریتم ژنتیک استفاده برای حل این مسله
میدونم فقط برای 10 نود میخوام با روش پویا پیاده سازی کنم