Кіріспе

Бірыңғай машинаны жоспарлау немесе бірыңғай ресурсты жоспарлау – компьютерлік ғылым мен операциялық зерттеудегі оптимизация мәселесі. Бізге n жұмыс беріледі: J1, J2, ..., Jn, олардың өңдеу уақыттары әртүрлі, және оларды бір машинада белгілі бір мақсатты оңтайландыру үшін жоспарлау қажет, мысалы, өнімділік. Бір машинаны жоспарлау – бірдей машиналарды жоспарлаудың ерекше жағдайы, ал ол – оңтайлы жұмыс кестесін құрудың ерекше жағдайы. Көптеген мәселелер, жалпы жағдайда NP қиындықтарын тудырса, бір машина жағдайында полиномиалдық уақытта шешіле алады. Оңтайлы жұмыс кестесін жоспарлау мәселелерін стандартты үш өрістік нотациямен белгілеуде, бір машиналық нұсқасы бірінші өрісте "1" символымен көрсетіледі. Мысалы, "1||" – шектеулерсіз бір машиналық жоспарлау мәселесі, мұнда мақсат – аяқталу уақыттарының қосындысын азайту. Көп машиналық жағдайда кең таралған мақсат – 1|| мәселесі, бір машинада тривиальды, өйткені аяқталу уақыты әрқашан бірдей болады. Сондықтан, басқа мақсаттар зерттелді.

Аяқтау уақытының жиынтығын азайту

1|| мәселесі аяқталу уақыттарының қосындысын азайтуға бағытталған. Оны Ең қысқа өңдеу уақыты бірінші ережесімен (SPT) оңтайлы түрде шешуге болады: жұмыстар өңдеу уақыттарының өсу ретімен жоспарланады. 1|| мәселесі аяқталу уақыттарының салмақталған қосындысын азайтуға бағытталған. Оны Салмақталған Ең қысқа өңдеу уақыты бірінші ережесімен (WSPT) оңтайлы түрде шешуге болады: жұмыстар қатынастың өсу ретімен жоспарланады. Бұл мәселе нақты экспоненциалды уақыт алгоритмдерін де, полиномиалды уақытпен жуықтау алгоритмін де ұсынады.

Өнімділікті арттыру

1|| проблемасы, кешіктіру мөлшеріне қарамастан, кешіккен жұмыстар санын азайтуға бағытталған. Оны Ходжсон-Мур алгоритмі арқылы оңтайлы шешуге болады. Уақытында аяқталатын жұмыстар санын барынша арттыратын, салмақталмаған оңтайландыру түрі, 1|| деп белгіленеді, және барлық басталу уақыттары мен мерзімдері бүтін сандар болған жағдайда, динамикалық бағдарламалау арқылы шешіледі. Барлық берілген жұмыстарды уақытында аяқтау мүмкін бе, жоқ па, деген шешімді табу мәселесін бірнеше алгоритмдер шеше алады, олардың ең жылдамдары белгілі бір уақытта жұмыс істейді. Әрбір j жұмысы үшін tj өңдеу уақыты және sj басталу уақыты болады, сондықтан оны [sj, sj+tj] аралығында орындау қажет. Кейбір аралықтар бір-бірімен тоғысқандықтан, барлық жұмыстарды аяқтау мүмкін емес. Мақсат – аяқталған жұмыстар санын, яғни өнімділікті барынша арттыру. Әдетте, әрбір жұмыстың бірнеше мүмкін аралықтары болуы мүмкін, және әрбір аралық әртүрлі пайдамен байланысты болуы мүмкін. Мақсат – әрбір жұмыс үшін ең көп дегенде бір аралықты таңдап алу, осылайша жалпы пайданы барынша арттыру. Толығырақ ақпарат алу үшін интервалдық жоспарлау бетіне қараңыз. Әдетте, жұмыстардың басталу уақыты мен соңғы мерзімі бар уақыт терезелері болуы мүмкін, олар жұмыстың ұзақтығынан ұзын болуы мүмкін. Әрбір жұмысты уақыт терезесінің ішінде кез келген уақытта жоспарлауға болады. Бар Ной, Бар Йехуда, Фрейнд, Наор және Шибер (1 ε)/2 жуықтауын ұсынады.

Ұзындығы тұрақты емес жұмыс орындары

Жұмысшылар мен машиналар белгілі бір уақыт жұмыс істегеннен кейін көбінесе шаршайды, бұл оларды келесі тапсырмаларды өңдеуде баяулатады. Алайда, жұмысшылар мен машиналар жақсырақ жұмыс істеуге үйренуі мүмкін, бұл оларды келесі тапсырмаларды өңдеу кезінде жылдамдатады. Екі жағдайда да тапсырманың ұзақтығы (өңдеу уақыты) тұрақты емес, ал бұрын өңделген тапсырмаларға байланысты өзгереді. Осы жағдайда, ең көп аяқталу уақытын азайту да қиындық тудырады. Тапсырма уақытының өзгеруін модельдеудің екі кең таралған тәсілі бар. Тапсырманың ұзақтығы оның басталу уақытына байланысты болуы мүмкін. Егер ұзақтығы басталу уақытымен бірге әлсіз өссе, онда бұл нашарлау эффектісі деп аталады; ал әлсіз кемісе, оқыту эффектісі деп аталады. Тапсырманың ұзақтығы бұрын өңделген тапсырмалардың қалыпты өңдеу уақытының жиынтығына байланысты болуы мүмкін. Егер ұзақтығы осы жиынтықпен бірге әлсіз өссе, онда бұл көбінесе қартаю эффектісі деп аталады.