۰
subtitle
ارسال: #۱
  
کوله پشتی صفر و یک
من با راه حل کوله پشتی ۰/۱ مشکل دارم
میشه این سؤال رو حل کنید:
۵ شی داریم با وزنها و ارزش های زیر:
p1=35
w1=7
p2=30
w2=5
p3=20
w3=2
p4=12
w4=3
p5=3
w5=1
ظرفیت کوله پشتی ۱۳ است. مقدار سود ماکزیمم چقدر است؟
۶۵
۶۸
۷۰
۸۰
سوال IT85
تو کتابا با نگرش مجموعه ای حل کرده راه حلی طولانی و بدفهم
لطفا یه جور بگین که بفهمم چی شد ساده و خلاصه (به قول معروف کنکوری)
مرسی
میشه این سؤال رو حل کنید:
۵ شی داریم با وزنها و ارزش های زیر:
p1=35
w1=7
p2=30
w2=5
p3=20
w3=2
p4=12
w4=3
p5=3
w5=1
ظرفیت کوله پشتی ۱۳ است. مقدار سود ماکزیمم چقدر است؟
۶۵
۶۸
۷۰
۸۰
سوال IT85
تو کتابا با نگرش مجموعه ای حل کرده راه حلی طولانی و بدفهم
لطفا یه جور بگین که بفهمم چی شد ساده و خلاصه (به قول معروف کنکوری)
مرسی
۰
ارسال: #۲
  
کوله پشتی صفر و یک
خوب کوله پشتی صفر و یک به روشهای مختلفی حل میشه که من فقط حریصانه رو بلدم که همیشه هم جواب بهینه نمیده!
شما اول باید سود واحد هر شی رو بدست بیارید.( تا بفهمید ارزش بر گرم یا کیلوگرم یک شی چقدره)
بعد اونها رو برحسب سود واحد به صورت نزولی مرتب کنید بعد یکی یکی انتخاب کنید و ارزش و وزنش رو جمع بزنید هرکدوم که باعث شد وزن از حد مجاز بیشتر بشه بیخیال بشین و برید سراغ بعدی.
مثلا p1 سود واحد (که من با Ci نشون میدم) برابر ۵ داره.
c1=5
c2=6
c3=10
c4=4
c5=3
مرتب میکنیم بعد اول c3 انتخاب میشه وزن میشه ۲ بعد C2 وزن میشه ۲+۵ و بعد C1 وزن میشه ۱۴ پس C1 رو بیخیال میریم بعدی C4 وزن میشه ۱۰ و بعد c5 و وزن میشه ۱۱ و چون کوله پشتی پر نشد پس این جواب الزاما بهینه نیست!
پس ارزشها رو جمع میزنیم (Pها ):۲۰+۳۰+۱۲+۳ =۶۵
چون روش کوله پشتی صفر و یک چون حریصانه است الزاما جواب بهینه رو نمیده!!!
اینبار هم همینطوره چون جواب حل بهینه میشه برداشتن اشیا اول و دوم و پنجم که جمع ارزش میشه ۶۸!
شما اول باید سود واحد هر شی رو بدست بیارید.( تا بفهمید ارزش بر گرم یا کیلوگرم یک شی چقدره)
بعد اونها رو برحسب سود واحد به صورت نزولی مرتب کنید بعد یکی یکی انتخاب کنید و ارزش و وزنش رو جمع بزنید هرکدوم که باعث شد وزن از حد مجاز بیشتر بشه بیخیال بشین و برید سراغ بعدی.
مثلا p1 سود واحد (که من با Ci نشون میدم) برابر ۵ داره.
c1=5
c2=6
c3=10
c4=4
c5=3
مرتب میکنیم بعد اول c3 انتخاب میشه وزن میشه ۲ بعد C2 وزن میشه ۲+۵ و بعد C1 وزن میشه ۱۴ پس C1 رو بیخیال میریم بعدی C4 وزن میشه ۱۰ و بعد c5 و وزن میشه ۱۱ و چون کوله پشتی پر نشد پس این جواب الزاما بهینه نیست!
پس ارزشها رو جمع میزنیم (Pها ):۲۰+۳۰+۱۲+۳ =۶۵
چون روش کوله پشتی صفر و یک چون حریصانه است الزاما جواب بهینه رو نمیده!!!
اینبار هم همینطوره چون جواب حل بهینه میشه برداشتن اشیا اول و دوم و پنجم که جمع ارزش میشه ۶۸!
ارسال: #۳
  
RE: کوله پشتی صفر و یک
(۱۶ دى ۱۳۸۹ ۰۹:۳۲ ب.ظ)afagh1389 نوشته شده توسط: خوب کوله پشتی صفر و یک به روشهای مختلفی حل میشه که من فقط حریصانه رو بلدم که همیشه هم جواب بهینه نمیده!آفاق عزیز معلومه که روش حریصانه درست نیست چونکه حریصانه فقط برای بهینه سازی محلیه ونمی تواند جواب بهینه نهایی رو بده، اما اگه کوله پشتی کسری بود روش حل بهینه محلی و سراسری یکی بود . اما در کوله پشتی صفر و یک باید مسئله رو به زیر مسائل بهینه تقسیم کنیم به نحوی که ترکیب این زیر پاسخها به جواب بهینه برسه( خصیصه الگوریتم های پویا)
اما جواب مقدار ۷۰ هست چراکه
گزینه ۴ با مقدار ۸۰: باید برای سود ۸۰ اشیا با وزنهای ۳۵ و ۳۰ و۱۲ و ۳
انتخاب بشه (هیچ راهی دیگه نداریم که مجموع ۸۰ بشه، اما اگه وزن قطعات متناظر با سود داده شده بررسی کنیم میشه ۱۶ پس توی کوله جا نمیشه
بریم روی گزینه ۳ با مقدار ۷۰: همه اشیا غیر ۲ انتخاب میشه با ارزش ۷۰ و وزن ۱۳ و از آنجا که ۷۰ از مقدار گزینه ۱و ۲ بیشتره پس جواب همینه
اینم راه حل تستی
امیدوارم جواب گرفته باشید.
۰
ارسال: #۴
  
کوله پشتی صفر و یک
من خودم این روش را بلدم ولی این برای کوله پشتی ۰/۱ راه حل خوبی نیست
باید از پرنامه نویسی پویا استفاده کنیم
جواب هم نه ۶۵ نه ۶۸
کلید جواب ۷۰ است!!!
کسی راه حلشو بلده؟؟؟؟؟؟؟
باید از پرنامه نویسی پویا استفاده کنیم
جواب هم نه ۶۵ نه ۶۸
کلید جواب ۷۰ است!!!
کسی راه حلشو بلده؟؟؟؟؟؟؟
۰
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close