Кіріспе
Көп мақсатты оңтайландыру саласы Мақсатты бағдарламалау - бұл көп мақсатты оңтайландыру саласы, ол өз кезегінде көп критерийлі шешімді талдаудың (MCDA) саласы. Оны сызықтық бағдарламалаудың кеңейтілуі немесе жалпылауы ретінде қарастыруға болады, ол бірнеше, әдетте қарама-қайшылықты объективті шараларды қамтиды. Осы шаралардың әрқайсысына мақсат немесе мақсатты мән беріледі. Осы мақсаттардан ауытқулар мақсаттан жоғары және төмен өлшенеді. Осы мақсатты мәндер жиынтығынан жағымсыз ауытқулар кейін жетістік функциясында барынша азайтылады. Бұл вектор немесе салмақталған сома болуы мүмкін, ол мақсатты бағдарламалаудың қолданылған нұсқасына байланысты. Мақсатты қанағаттандыру шешім қабылдаушыны қанағаттандырады деп есептелетіндіктен, қанағаттандыратын философия негіз болып табылады. Мақсатты бағдарламалау үш түрлі талдауды орындау үшін қолданылады: Қажетті мақсаттарға жету үшін қажетті ресурстарды анықтау. Қолда бар ресурстармен мақсаттарға қол жеткізу дәрежесін анықтау. Қаражаттың әртүрлі мөлшері мен мақсаттардың басымдықтары бойынша ең қолайлы шешімді ұсыну.
Goal programming is a branch of multiobjective optimization, which in turn is a branch of multi criteria decision analysis (MCDA). It can be thought of as an extension or generalisation of linear programming to handle multiple, normally conflicting objective measures. Each of these measures is given a goal or target value to be achieved. Deviations are measured from these goals both above and below the target. Unwanted deviations from this set of target values are then minimised in an achievement function. This can be a vector or a weighted sum dependent on the goal programming variant used. As satisfaction of the target is deemed to satisfy the decision maker(s), an underlying satisficing philosophy is assumed. Goal programming is used to perform three types of analysis:
Determine the required resources to achieve a desired set of objectives. Determine the degree of attainment of the goals with the available resources. Providing the best satisfying solution under a varying amount of resources and priorities of the goals.
Тарих
Мақсатты бағдарламалауды алғаш рет 1955 жылы Чарнс, Купер және Фергюсон қолданған, бірақ нақты атау алғаш рет 1961 жылы Чарнс және Купердің мәтінінде пайда болды. Ли, Игницио, Игницио және Кавалье, Ромероның еңбектері. Шнидержанс 1995 жылға дейінгі мақсатты бағдарламалауға қатысты көптеген мақалалардың библиографиясын береді, ал Джонс пен Тамиз 1990-2000 жылдар аралығындағы түсіндірмелі библиографияны береді. Жонс пен Тамиздің соңғы оқулықтарында мақсатты бағдарламалаудағы өнердің жай-күйі туралы толық мәлімет берілген. Мақсатты бағдарламалаудың алғашқы инженерлік қолданылуы, 1962 жылы Игниционың арқасында, Сатурн V-дің екінші сатысында қолданылатын антенналардың дизайны мен орналасуы болды. Бұл Аполлон ғарыш кемесін ұшыру үшін пайдаланылды, ол алғашқы адамдарды Айға түсірді.
Нұсқалар
Бастапқы мақсатты бағдарламалау формулалары қажетсіз ауытқуларды бірнеше басымдық деңгейлеріне бөлді, жоғары басымдық деңгейіндегі ауытқуларды азайту төменгі басымдық деңгейіндегі кез келген ауытқуларға қарағанда әлдеқайда маңызды. Бұл лексикографиялық немесе алдын ала мақсатты бағдарламалау деп аталады. Ignizio бұл нұсқа ауытқулардың қосындысынан гөрі, ең үлкен жағымсыз ауытқуды азайтуға тырысады. Бұл Чебышев қашықтығы метрикасын пайдаланады.
Мықты және әлсіз жақтары
Мақсатты бағдарламалаудың басты күш-қуаты - оның қарапайымдылығы мен пайдаланудың оңайлығы. Бұл көптеген және әртүрлі салалардағы мақсатты бағдарламалаудың көптеген қолданбаларын түсіндіреді. Сызықтық мақсатты бағдарламаларды сызықтық бағдарламалау бағдарламаларын қолдану арқылы бір сызықтық бағдарлама ретінде немесе лексикографиялық нұсқасы жағдайында, байланысты сызықтық бағдарламалардың сериясы ретінде шешуге болады. Осылайша мақсатты бағдарламалау салыстырмалы түрде көп сандағы айнымалыларды, шектеулерді және мақсаттарды шеше алады. Талқыланған әлсіздік - бұл мақсатты бағдарламалаудың Парето тиімді емес шешімдерді шығару қабілеті. Бұл шешім теориясының негізгі тұжырымдамасын бұзады, ешқандай рационалды шешім қабылдайтын адам Парето тиімді емес шешімді әдейі таңдамайды. Алайда, мұндай жағдайдың пайда болуын анықтап, ерітіндісін тиісті түрде Парето тиімді ерітіндісіне жобалау үшін әдістер бар. Мақсатты бағдарламалау моделінде тиісті салмақтарды белгілеу де пікірталасқа себеп болған тағы бір сала болып табылады, кейбір авторлар осы мақсатта аналитикалық иерархиялық процесті немесе интерактивті әдістерді қолдануды ұсынады. Сонымен қатар, мақсатты функциялардың салмақтарын олардың артықшылығын пайдалану арқылы реттік басымдық әдісін қолдану арқылы есептеуге болады.