با سلام ، شرح مسئله :
فردی در یک شرکت جابجایی توریست کار می کند و برای جابجایی گردشگران چند مسیر وچند شهر در هر مسیر و تعدادی گردشگر دارد و می خوهد طوری عمل جابجایی توریستها را انجام دهد که کمترین وقت و کمترین جابجایی را داشته باشد .به عنوان مثال اگر 99 نفر توریست را در مسیرهای 1و4و5و6و7 بخواهد جابجا کند به چند جابجایی نیاز خواهد داشت .
سوالتان واضح نیست لطفا دقیق تر توضیح دهید
اگه لازم شد سریع تر جواب خواستید با آدرس ایمیل بنده ارتباط داشته باشید .
raha_hakhamanesh@yahoo
ولی به الگوریتمهای
1- دیکسترا و 2- فلوید وارشال و 3- جانسون توجه داشته باشید .
دوست عزیر من منتظر جواب هستم ولی باور کنید از موقع تحویل این پروژه به صاحب آن چند روزی است که گذسته و هر روز وعده فردا را به او می دهم .اگر لطف کنید زودتر جواب را بفرستید بی نهایت ممنون می شوم .
شبه کد الگوریتم فلوید-وارشال به شرح زیر است . که توسط ماتریس مجاورت پیاده سازی می شه و کوتاهترین مسیر رو به عنوان مسیر بهینه بصورت یک دنباله از مسیر ها در یک گراف بر می گردونه یه کمی باید ابتکار به خرج بدی و برای حل مساله ات ازش درست استفاده کنی .
n= Rows[W]
D(0) = W
for k = 1 to n do
for i = 1 to n do
for j = 1 to n do
D(k)(i,j) = min { D(k-1)(i,j) , D (k-1)(i,k) + D(k-1)(k,j);
return D(n)
چون این ماتریس دوبعدی هست و در هر لحظه به N تا ماتریس قبلی نیاز داریم پس 3 بٌعدی به نظر می رسه امیدوارم منظور رو متوجه بشید
اگه با مشکلی مواجه شدید به کتاب
introduction to algorithm
نوشته Cormen مراجعه کنید .
ضمنا اگه دیر شد ببخشید می خواستم با word شبه کد رو به همراه یه کمی فوت و فن بنویسم ولی ظاهرا زیاد عجله داشتید .
به امید موفقیت