W dotychczas rozpatrywanych zadaniach zajmowaliśmy się maksymalizacją lub minimalizacją jednego celu. Stopień osiągnięcia lego celu mierzony byl przez funkcję celu, nazywaną również funkcją kryterium. Ze względu na liczbę rozpatrywanych kryteriów zadania takie noszą nazwę zadań jednokryterialnych. Często jednak zdarza się, że decydenta interesuje jednoczesne osiągnięcie wielu celów, czyli jednoczesna optymalizacja więcej niż jednego kryterium. Prowadzi to do formułowania zadań wielokryterialnych. Przykładem takiego zadania może być dwukryterialne zadanie transportowe, w którym jednocześnie chcemy minimalizować całkowite koszty transportu oraz czas realizacji rozpatrywanego planu dostaw. Innym przykładem jest problem rozwiązywany przez dział marketingowy firmy, który chce zmaksymalizować liczbę nowych kontaktów z klientami i jednocześnie utrzymać maksymalną liczbę kontaktów z klientami dotychczasowymi, uwzględniając przy tym możliwości realizacji tych zadań przy ustalonym poziomie zatrudnienia w dziale oraz wysokości budżetu.
Często występującymi w praktyce zadaniami są zadania wielokryterialnego programowania liniowego. W zadaniach tych mamy dwie lub więcej liniowe funkcje celu, natomiast zbiór warunków ograniczających utworzony jest (tak samo jak w zadaniach rozpatrywanych w rozdziale I) przez układ równań i nierówności liniowych. Zadania tc będą głównym przedmiotem rozważań w niniejszym rozdziale.
Mając dane dwa rozwiązania dopuszczalne zadania jednokryterialnego (w szczególności zadania programowania liniowego z kryterium maksymalizacji), możemy porównać je ze sobą. lepszym rozwiązaniem jest to, dla którego wartość funkcji celu jest większa. W przypadku gdy te wartości są dla obydwu rozwiązań takie same, powiemy, że rozpatrywane rozwiązania są równie dobre.
Rozpatrzymy teraz zadanie wielokryterialne, w którym chcemy jednocześnie zmaksymalizować wartości dwóch lub większej liczby rozpatrywanych funkcji kryteriów. Zadanie takie nazwiemy zadaniem wektorowej maksymalizacji. Przy ponownym porównaniu dwóch rozwiązań może się zdarzyć, że pierwsze z nich jest lepsze od drugiego. Będzie tak wówczas, gdy wszystkie wartości kryteriów dla pierwszego rozwiązania będą większe lub równe wartości kryteriów dla drugiego z nich (przy czym przynajmniej jedna z tych nierówności musi być ostra). Może się okazać, że obydwa rozwiązania są równie dobre, o ile wszystkie odpowiadające im wartości kryteriów są takie same dla obydwu rozwiązań. Może również zaistnieć nie występujący w zadaniach jednokryterialnych przypadek nieporównywalności — wówczas, gdy pewne wartości kryteriów dla pierwszego rozwiązania są lepsze niż dla drugiego, a jednocześnie istnieje przynajmniej jedno kryterium, dla którego wartość drugiego z rozpatrywanych rozwiązań jest lepsza niż pierwszego.
Rozpatrując wcześniej zadania programowania liniowego, posługiwaliśmy się pojęciem zbioru decyzji dopuszczalnych, będącego podzbiorem przestrzeni decyzyjnej. W zadaniach wiclokryterialnych będziemy porównywać wektory, których składowymi są wartości poszczególnych kryteriów. Są one elementami przestrzeni kryterialnej nazywanej również przestrzenią ocen. Zbiór wszystkich wyników, jakie możemy osiągnąć, rozpatrując wszystkie możliwe rozwiązania dopuszczalne w przestrzeni decyzyjnej z uwzględnieniem zadanego zestawu kryteriów, nazwiemy zbiorem rozwiązań dopuszczalnych w przestrzeni kryterialnej. Oczywiście, przestrzeń kryterialna występuje również w zadaniach jednokryterialnych, przy czym ze względu na możliwość porównania ze sobą każdych dwóch rozwiązań nie trzeba było tego faktu eksponować.
Zazwyczaj cele, które chcemy osiągnąć budując model wielokryterialny, są konfliktowe. Oznacza to, że polepszenie wartości jednego kryterium następuje kosztem obniżenia wartości innego. Rzadko więc zdarza się, aby istniało rozwiązanie dominujące, czyli lepsze od wszystkich pozostałych rozwiązań (ze względu na wszystkie cele rozpatrywane jednocześnie). O ile takie rozwiązanie istnieje, przyjmujemy, że jest to rozwiązanie optymalne wektorowo w rozpatrywanym zadaniu wektorowej maksymalizacji.
Jeżeli rozwiązanie dominujące nie istnieje, to wówczas — rezygnując z wymagania jednoczesnego zmaksymalizowania wszystkich funkcji kryterium występujących w zadaniu — uznajemy za wystarczające znalezienie rozwiązań niezdomino-wanych. Są to takie rozwiązania, dla których nie istnieją rozwiązanie lepsze, czyli nie jest możliwa poprawa wartości żadnego z kryterium bez konieczności obniżenia wartości przynajmniej jednego innego kryterium. Przyjmujemy jc jako rozwiązania optymalne wektorowo w przestrzeni kryterialnej. Odpowiadające im rozwiązania w przestrzeni decyzyjnej nazywamy rozwiązaniami sprawnymi.
Rozwiązanie zadania programowania wielokryterialnego polega na znalezieniu zbioru rozwiązań optymalnych wektorowo w przestrzeni kryterialnej oraz odpowiadającego mu zbioru rozwiązań optymalnych w przestrzeni decyzyjnej. Nie jest to zadanie proste. O ile w zadaniach jednokryterialnych (np. w zadaniu programowania liniowego) bardzo często okazuje się, że istnieje tylko jedno rozwiązanie optymalne, to w zadaniach wiclokryterialnych zbiór bazowych rozwiązań sprawnych jest zazwyczaj bardzo liczny. Do rozwiązywania zadań wielokryterialnego programowania liniowego opracowana została m.in. metoda ADB ASE będąca uogólnieniem opisanej uprzednio metody simpleks. Pozwalają one wyznaczyć zbiór wszystkich bazowych rozwiązań sprawnych. Jednakże pełny zbiór rozwiązań