مساله سیستم عامل

  • شروع کننده موضوع
  • #1

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
این مساله مربوط به NP هست که ایجا توضیح دادم
http://www.sampadia.com/forum/index.php/topic,97353.0.html
اما چون حلش صرفا ایده هست و تقریبا دانش خاصی نمی خواد اینجا مطرح کردم.

فرض کنید یه سیستم عامل دارید .ما به این سیستم عامل یه سری task میدیم.برای هر task سه تا مولفه تعریف شده
یکی اینکه از چه زمانی به بعد میتونه شروع بشه...قبل از چه زمانی باید تموم شده باشه....و اینکه چقدر طول میکشه
مثلا یه taski از 5 به بعد میتونه شروع بشه....قبل 20 هم باید تموم شده باشه.3 ثانیه هم طول میکشه
این کار رو هم میشه از 5 تا 8 انجام داد..هم از 6 تا 9 و حالت های دیگه.
n تا task به این سیستم عامل داده میشه.میخوایم بدونیم آیا میتونیم یه الگوریتمی طراحی کنیم که تو زمان چند جمله ای بگه آیا میشه تمامی این کار ها رو طبق شرایطی که گفته انجام بدیم یا نه. البته این جوابش نه هست و می خوایم NP بودنشو ثابت کنیم.
و از مساله subset sum هم استفاده کنید. ( توضیح این مساله تو همون تاپیکی که بالا دادم هست.) بعنی باید یه روشی ارائه بدین که اگر این مساله رو بتونیم حل کنیم subset sum هم میتونیم با همین راه حل کنیم
 
  • شروع کننده موضوع
  • #2

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
پاسخ : مساله سیستم عامل

فکر کنید یکم:D
یه ایده ای چیزی.... حتما که نباید درست باشه! هرچی به ذهنتون میاد بگید
 

Parham MLK

کاربر نیمه‌حرفه‌ای
ارسال‌ها
250
امتیاز
675
نام مرکز سمپاد
شهید سلطانی
شهر
کرج
پاسخ : مساله سیستم عامل

من خیلی دیر سر میزنم ببخشید! :-"
:D
مث دفه‌ی قبل، فرض میکنیم الگوریتم خفنی پیدا شده که این مسئله رو با اُردر چندجمله‌ای حل میکنه! :D
حالا subset sum رو در نظر بگیرید:
n تا عدد داریم. می خوایم بدونیم آیا میشه یه عده از اینا رو انتخاب کرد که جمعشون دقیقا بشه K یا نه.
این مسئله یه K داره و یه n.
ما میایم تو مسئله‌ی سیستم عامل، زمان شروع همه‌ی n تا taskمون رو میدیم 0 و زمان پایانشون رو میدیم K.
حالا به مدت زمان انجام هر کدوم از taskها یکی از n تا عدد مسئله‌ی subset sum رو میدیم!!

خب دیگه واضحه. نه!؟ :D

با تشکر از وقتی که در اختیار من قرار دادید! :D
 
  • شروع کننده موضوع
  • #4

tiberium

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,057
امتیاز
1,052
نام مرکز سمپاد
شهید بهشتی سمنان
شهر
سمنان
سال فارغ التحصیلی
1389
مدال المپیاد
المپیاد کامپیوتر
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی فن آوری اطلاعات
پاسخ : مساله سیستم عامل

به نقل از پرهام :
من خیلی دیر سر میزنم ببخشید! :-"
:D
مث دفه‌ی قبل، فرض میکنیم الگوریتم خفنی پیدا شده که این مسئله رو با اُردر چندجمله‌ای حل میکنه! :D
حالا subset sum رو در نظر بگیرید:این مسئله یه K داره و یه n.
ما میایم تو مسئله‌ی سیستم عامل، زمان شروع همه‌ی n تا taskمون رو میدیم 0 و زمان پایانشون رو میدیم K.
حالا به مدت زمان انجام هر کدوم از taskها یکی از n تا عدد مسئله‌ی subset sum رو میدیم!!

خب دیگه واضحه. نه!؟ :D

با تشکر از وقتی که در اختیار من قرار دادید! :D
مشکل اینجاست که برنامه ای که داریم میگه آیا می تونه همه ی این task هارو طبق شرایط انجام بده یا نه.
الان طبق چیزی که میگی اگر همه ی task ها رو بگیم از 0 تا k قطعا یه سری از task ها رو نمیتونه انجام بده. چون جمع وقت این کارها میتونه از k بیشتر باشه

ممنون از این که وقت گذاشته:D حدود راه حل رو گرفتی.باید بازم روش ایده بزنی
 
بالا