Programowanie celu
Programowanie celowe jest gałęzią optymalizacji wielokryterialnej , która z kolei jest gałęzią wielokryterialnej analizy decyzji (MCDA). Można to traktować jako rozszerzenie lub uogólnienie programowania liniowego w celu obsługi wielu, zwykle sprzecznych obiektywnych miar. Każdemu z tych mierników przypisany jest cel lub wartość docelowa do osiągnięcia. Odchylenia od tych celów są mierzone zarówno powyżej, jak i poniżej celu. Niepożądane odchylenia od tego zestawu wartości docelowych są następnie minimalizowane w funkcji osiągnięć. Może to być wektor lub suma ważona w zależności od zastosowanego wariantu programowania celów. Ponieważ zadowolenie z celu jest uważane za satysfakcjonujące decydenta (decydentów), zakłada się leżącą u jego podstaw filozofię zadowolenia . Programowanie celowe służy do przeprowadzania trzech typów analiz:
- Określ wymagane zasoby do osiągnięcia pożądanego zestawu celów.
- Określ stopień osiągnięcia celów przy dostępnych zasobach.
- Zapewnienie najbardziej satysfakcjonującego rozwiązania przy różnej ilości zasobów i priorytetów celów.
Historia
Programowanie celowe zostało po raz pierwszy użyte przez Charnesa, Coopera i Fergusona w 1955 roku, chociaż właściwa nazwa pojawiła się po raz pierwszy w tekście Charnesa i Coopera z 1961 roku. Potem nastąpiły przełomowe prace Lee, Ignizio, Ignizio i Cavalier oraz Romero . Schniederjans podaje w bibliografii dużą liczbę artykułów sprzed 1995 roku odnoszących się do programowania celów, a Jones i Tamiz podają bibliografię z adnotacjami z okresu 1990-2000. Niedawny podręcznik autorstwa Jonesa i Tamiz. zawiera kompleksowy przegląd najnowszych osiągnięć w programowaniu celów.
sprawą Ignizio w 1962 roku, było zaprojektowanie i rozmieszczenie anten zastosowanych w drugim stopniu Saturna V. Zostało to wykorzystane do wystrzelenia kapsuły kosmicznej Apollo, która wylądowała na Księżycu jako pierwsi ludzie.
Warianty
Początkowe sformułowania programowania celów uporządkowały niepożądane odchylenia na kilka poziomów priorytetów, przy czym minimalizacja odchylenia na wyższym poziomie priorytetu była nieskończenie ważniejsza niż jakiekolwiek odchylenia na niższych poziomach priorytetu. Jest to znane jako leksykograficzne lub wyprzedzające programowanie celów. Ignizio podaje algorytm pokazujący, jak leksykograficzny program celu można rozwiązać jako serię programów liniowych. Leksykograficzne programowanie celów jest stosowane, gdy istnieje wyraźna kolejność priorytetów wśród celów do osiągnięcia.
Jeśli decydent jest bardziej zainteresowany bezpośrednim porównaniem celów, wówczas należy zastosować programowanie celów ważonych lub bez uprzedzenia. W tym przypadku wszystkie niepożądane odchylenia są mnożone przez wagi odzwierciedlające ich względne znaczenie i sumowane jako pojedyncza suma w celu utworzenia funkcji osiągnięcia. Odchyłek mierzonych w różnych jednostkach nie można bezpośrednio zsumować ze względu na zjawisko niewspółmierności .
Dlatego każde niepożądane odchylenie jest mnożone przez stałą normalizacji, aby umożliwić bezpośrednie porównanie. Popularne wybory stałych normalizacyjnych to docelowa wartość docelowa odpowiedniego celu (stąd zamiana wszystkich odchyleń na procenty) lub zakres odpowiedniego celu (między najlepszą a najgorszą możliwą wartością, stąd odwzorowanie wszystkich odchyleń na zakres zero-jedynkowy) . Dla decydentów bardziej zainteresowanych uzyskaniem równowagi między konkurującymi celami Czebyszew stosuje się programowanie celów. Wariant ten, wprowadzony przez Flavella w 1976 roku, ma na celu zminimalizowanie maksymalnego niepożądanego odchylenia, a nie sumy odchyleń. Wykorzystuje to odległości Czebyszewa .
Mocne i słabe strony
Główną zaletą programowania celów jest jego prostota i łatwość użycia. To odpowiada za dużą liczbę aplikacji do programowania celów w wielu różnych dziedzinach. Liniowe programy celu można rozwiązać za pomocą oprogramowania do programowania liniowego jako pojedynczego programu liniowego lub, w przypadku wariantu leksykograficznego, serii połączonych programów liniowych.
Programowanie celowe może zatem obsługiwać stosunkowo dużą liczbę zmiennych, ograniczeń i celów. Dyskutowaną słabością jest zdolność programowania celów do tworzenia rozwiązań, które nie są efektywne w sensie Pareto . Narusza to fundamentalną koncepcję teorii decyzji , zgodnie z którą żaden racjonalny decydent nie wybierze świadomie rozwiązania, które nie jest efektywne w sensie Pareto. Dostępne są jednak techniki wykrywania, kiedy to nastąpi, i projektowania rozwiązania na rozwiązanie efektywne w sensie Pareto w odpowiedni sposób.
Ustalenie odpowiednich wag w modelu programowania celów to kolejny obszar, który wywołał debatę, a niektórzy autorzy sugerują wykorzystanie do tego celu procesu hierarchii analitycznej lub metod interaktywnych. Wagi funkcji celu można również obliczyć na podstawie ich preferencji, stosując podejście porządkowego priorytetu .