Кіріспе
Бірыңғай машинаны жоспарлау немесе бірыңғай ресурсты жоспарлау – компьютерлік ғылым мен операциялық зерттеудегі оптимизация мәселесі. Бізге n жұмыс беріледі: J1, J2, ..., Jn, олардың өңдеу уақыттары әртүрлі, және оларды бір машинада белгілі бір мақсатты оңтайландыру үшін жоспарлау қажет, мысалы, өнімділік. Бір машинаны жоспарлау – бірдей машиналарды жоспарлаудың ерекше жағдайы, ал ол – оңтайлы жұмыс кестесін құрудың ерекше жағдайы. Көптеген мәселелер, жалпы жағдайда NP қиындықтарын тудырса, бір машина жағдайында полиномиалдық уақытта шешіле алады. Оңтайлы жұмыс кестесін жоспарлау мәселелерін стандартты үш өрістік нотациямен белгілеуде, бір машиналық нұсқасы бірінші өрісте "1" символымен көрсетіледі. Мысалы, "1||" – шектеулерсіз бір машиналық жоспарлау мәселесі, мұнда мақсат – аяқталу уақыттарының қосындысын азайту. Көп машиналық жағдайда кең таралған мақсат – 1|| мәселесі, бір машинада тривиальды, өйткені аяқталу уақыты әрқашан бірдей болады. Сондықтан, басқа мақсаттар зерттелді.
Аяқтау уақытының жиынтығын азайту
1|| мәселесі аяқталу уақыттарының қосындысын азайтуға бағытталған. Оны Ең қысқа өңдеу уақыты бірінші ережесімен (SPT) оңтайлы түрде шешуге болады: жұмыстар өңдеу уақыттарының өсу ретімен жоспарланады. 1|| мәселесі аяқталу уақыттарының салмақталған қосындысын азайтуға бағытталған. Оны Салмақталған Ең қысқа өңдеу уақыты бірінші ережесімен (WSPT) оңтайлы түрде шешуге болады: жұмыстар қатынастың өсу ретімен жоспарланады. Бұл мәселе нақты экспоненциалды уақыт алгоритмдерін де, полиномиалды уақытпен жуықтау алгоритмін де ұсынады.
The problem 1|| aims to minimize the weighted sum of completion times. It can be solved optimally by the Weighted Shortest Processing Time First rule (WSPT): the jobs are scheduled by ascending order of the ratio presents both exact exponential time algorithms and a polynomial time approximation algorithm.
Өнімділікті арттыру
1|| проблемасы, кешіктіру мөлшеріне қарамастан, кешіккен жұмыстар санын азайтуға бағытталған. Оны Ходжсон-Мур алгоритмі арқылы оңтайлы шешуге болады. Уақытында аяқталатын жұмыстар санын барынша арттыратын, салмақталмаған оңтайландыру түрі, 1|| деп белгіленеді, және барлық басталу уақыттары мен мерзімдері бүтін сандар болған жағдайда, динамикалық бағдарламалау арқылы шешіледі. Барлық берілген жұмыстарды уақытында аяқтау мүмкін бе, жоқ па, деген шешімді табу мәселесін бірнеше алгоритмдер шеше алады, олардың ең жылдамдары белгілі бір уақытта жұмыс істейді. Әрбір j жұмысы үшін tj өңдеу уақыты және sj басталу уақыты болады, сондықтан оны [sj, sj+tj] аралығында орындау қажет. Кейбір аралықтар бір-бірімен тоғысқандықтан, барлық жұмыстарды аяқтау мүмкін емес. Мақсат – аяқталған жұмыстар санын, яғни өнімділікті барынша арттыру. Әдетте, әрбір жұмыстың бірнеше мүмкін аралықтары болуы мүмкін, және әрбір аралық әртүрлі пайдамен байланысты болуы мүмкін. Мақсат – әрбір жұмыс үшін ең көп дегенде бір аралықты таңдап алу, осылайша жалпы пайданы барынша арттыру. Толығырақ ақпарат алу үшін интервалдық жоспарлау бетіне қараңыз. Әдетте, жұмыстардың басталу уақыты мен соңғы мерзімі бар уақыт терезелері болуы мүмкін, олар жұмыстың ұзақтығынан ұзын болуы мүмкін. Әрбір жұмысты уақыт терезесінің ішінде кез келген уақытта жоспарлауға болады. Бар Ной, Бар Йехуда, Фрейнд, Наор және Шибер (1 ε)/2 жуықтауын ұсынады.
Jobs can have execution intervals. For each job j, there is a processing time tj and a start time sj, so it must be executed in the interval [sj, sj+tj]. Since some of the intervals overlap, not all jobs can be completed. The goal is to maximize the number of completed jobs, that is, the throughput. More generally, each job may have several possible intervals, and each interval may be associated with a different profit. The goal is to choose at most one interval for each job, such that the total profit is maximized. For more details, see the page on interval scheduling. More generally, jobs can have time windows, with both start times and deadlines, which may be larger than the job length. Each job can be scheduled anywhere within its time window. Bar Noy, Bar Yehuda, Freund, Naor and Schieber present a (1 ε)/2 approximation.
Ұзындығы тұрақты емес жұмыс орындары
Жұмысшылар мен машиналар белгілі бір уақыт жұмыс істегеннен кейін көбінесе шаршайды, бұл оларды келесі тапсырмаларды өңдеуде баяулатады. Алайда, жұмысшылар мен машиналар жақсырақ жұмыс істеуге үйренуі мүмкін, бұл оларды келесі тапсырмаларды өңдеу кезінде жылдамдатады. Екі жағдайда да тапсырманың ұзақтығы (өңдеу уақыты) тұрақты емес, ал бұрын өңделген тапсырмаларға байланысты өзгереді. Осы жағдайда, ең көп аяқталу уақытын азайту да қиындық тудырады. Тапсырма уақытының өзгеруін модельдеудің екі кең таралған тәсілі бар. Тапсырманың ұзақтығы оның басталу уақытына байланысты болуы мүмкін. Егер ұзақтығы басталу уақытымен бірге әлсіз өссе, онда бұл нашарлау эффектісі деп аталады; ал әлсіз кемісе, оқыту эффектісі деп аталады. Тапсырманың ұзақтығы бұрын өңделген тапсырмалардың қалыпты өңдеу уақытының жиынтығына байланысты болуы мүмкін. Егер ұзақтығы осы жиынтықпен бірге әлсіз өссе, онда бұл көбінесе қартаю эффектісі деп аталады.