PDA

View Full Version : سود بیشینه در زمانبندی با مهلت



Developer Programmer
شنبه 26 بهمن 1387, 19:11 عصر
مثال 4-4 کتاب طراحی الگوریتم جعفرنژاد قمی، صفحه 150

چرا ترتیب 1و2و4 رو انتخاب میکنه ؟! (کار شماره یک بیشترین سود رو داره پس انتخاب میشه، در زمان دو، باید کار 7 انتخاب بشه، پس چرا کار 2 که مهلتش تمام شده، انتخاب میشه ؟)

xxxxx_xxxxx
شنبه 26 بهمن 1387, 19:39 عصر
سلام
دوست عزيز اگه امكانش هست سوال رو هم بنويسيد. اين طوري بهتره

pesar irooni
شنبه 03 اسفند 1387, 00:37 صبح
تورو خدا دیگه طراحی الگوریتم رو از کتاب جعفر نژاد نخونید.
روش حل باید برنامه نویسی حریصانه باشه. اول کاری رو انتخاب می کنیم که بیشترین سود رو داره و سپس اون رو تا آخرین لحظه ممکن عقب میندازیم. سودی که بدست بیاد بیشترینه. فقط باید توجه کرد که جواب یکتا نیست

Developer Programmer
یک شنبه 04 اسفند 1387, 22:43 عصر
عذر میخوام ولی اصلا متوجه نشدم! ممکنه بیشتر توضیح بدید؟

Kensington
دوشنبه 05 اسفند 1387, 00:53 صبح
کتابی که مرجع داده اید رو ندارم. پس صورت سوال رو هم ندارم! ای کاش فرصت میکردید و تایپش میکردید.

اما همین جوری از روی صورت سوال به نظرم رسید که باید چنین چیزی باشه:
فرصت محدودی داریم تا یک سری اجناس رو انتخاب کنیم و میخواهیم گرون ترین اجناس در این فرصت انتخاب شده باشه.

برای این سوال، اینطوری به فکرم میرسه:
اول اجناس رو مرتب کنیم بر حسب ارزششون از گرون ترین به ارزون ترین.
حالا ابتدا گرون ترین جنس رو انتخاب کنیم. در فرصت باقیمانده دوباره گرونترین جنس رو انتخاب میکنیم ( در واقع میشه دومین گرون ترین. ولی چون اولین گرون ترین رو دفعه اول انتخاب کرده ایم و دیگه وجود نداره . پس دوباره داریم همون اولین گرون ترین رو انتخاب میکنیم ) و ... ادامه ... تا وقتی وقت تمام شود.

طرز فکر greedy

Developer Programmer
سه شنبه 06 اسفند 1387, 09:22 صبح
بفرمایین این هم خود مساله

xxxxx_xxxxx
سه شنبه 06 اسفند 1387, 11:20 صبح
:متفکر::متفکر::متفکر:

Developer Programmer
سه شنبه 06 اسفند 1387, 13:18 عصر
جسارتا یک بار دیگه می پرسم:
چرا ترتیب 1و2و4 رو انتخاب میکنه ؟! (کار شماره یک بیشترین سود رو داره پس انتخاب میشه، در زمان دو، باید کار 7 انتخاب بشه، پس چرا کار 2 که مهلتش تمام شده، انتخاب میشه ؟)

pesar irooni
پنج شنبه 08 اسفند 1387, 01:30 صبح
من حل میکنم جوابتون رو میدم.

pesar irooni
پنج شنبه 08 اسفند 1387, 14:37 عصر
ببین دوست عزیز. شما اول کار 1 رو که بیشترین سود رو داره انتخاب می کنی و زمان 3 رو براش کنار میذاری (یعنی آخرین مهلتی که میتونه انجام بشه). بعد میری سراغ دومی که بیشترین سود رو داره یعنی کار 2 و آخرین مهلتی که میتونه انجام بشه یعنی زمان 1 رو به اون اختصاص میدی. بعد میری سراغ کار 3، میبینی که دیگه نمیتونی زمانی بهش اختصاص بدی چون مهلتش تموم شده و زمان 1 رو قبلا به کار با ارزش دیگه ای دادی. در آخر هم کار شماره 4 که بیشترین سود رو بین بقیه داره انتخاب میکنی و در زمان خالی 2 انجام میدی.

amin noruzi
سه شنبه 05 اردیبهشت 1396, 19:06 عصر
اما کار شماره 4 زمانش 3 هست.قبلش نمیشه کار 7 رو انجام بده بعد کار شماره 4 رو؟
از طرفی کار شماره 1 زمانش 3 هست.مگه ممکنه کار 1 و 4 تو زمان 3 (یک زمان )انجام بشه؟