حل تشریحی سوال شماره 42 دروس مشترک (ساختمانهای گسسته، ساختمان دادهها، طراحی الگوریتم، مهندسی نرمافزار، شبکههای کامپیوتری)
کنکور ارشد مهندسی فناوری اطلاعات (IT) 1404
فرض کنید مسئله ای به نام تقسیم مجموعه با تفاوت کمینه (Minimum Difference Partitioning) داریم به شما یک مجموعه از n عدد صحیح مثبت داده شده است. هدف این است که مجموعه را به دو زیر مجموعه تقسیم کنید به طوری که تفاوت مجموع عناصر دو زیر مجموعه کمینه باشد. برای این مسئله میخواهیم از رویکرد شاخه و حد (Branch and Bound) استفاده کنیم. کدام یک از روشهای زیر بهینهترین راه برای محاسبه حد پایین (Lower Bound) در هر گره است تا شاخه های کم بازده به سرعت هرس شوند؟
استفاده از الگوریتم حریصانه برای تقسیم مجموعه به دو زیر مجموعه و استفاده از تفاوت حاصل به عنوان حد پایین در هر گره
استفاده از نیمی از مجموع کل اعداد و کمینه سازی تفاوت هر زیر مجموعه نسبت به این مقدار به عنوان حد پایین
استفاده از میانگین مجموع اعداد در هر گره و مقایسه تفاوت فعلی با این میانگین به عنوان حد پایین
استفاده از مجموع همه اعداد تقسیم نشده و افزودن آن به تفاوت فعلی به عنوان حد پایین