Programowanie liniowe
Programowanie liniowe to dziedzina programowania matematycznego, w której warunki ograniczające oraz funkcja celu są liniowe. W matematycznej postaci, warunki ograniczające można zapisać jako:
Celem jest zmaksymalizowanie lub zminimalizowanie funkcji celu, również w formie liniowej:
Zmienne mogą przyjmować wartości rzeczywiste. W niektórych przypadkach problem nie ma rozwiązania lub nie ma rozwiązania optymalnego.
Postać standardowa
W postaci standardowej funkcja celu jest minimalizowana, a ograniczenia mają postać:
- dla każdej zmiennej .
Można to zapisać w formie macierzowej jako:
przy ograniczeniach:
Sprowadzanie do postaci standardowej
Aby przekształcić problem do postaci standardowej, należy zamienić maksymalizację na minimalizację oraz nierówności na równości, co można osiągnąć poprzez dodanie zmiennych sztucznych.
Postać równościowa
Postać równościowa (kanoniczna) zakłada maksymalizację funkcji celu, wszystkie warunki są równościami, a zmienne muszą być nieujemne. W celu przekształcenia nierówności w równości, wprowadza się zmienne pomocnicze.
Rozwiązanie podstawowe polega na przypisaniu zmiennym wartości zero z wyjątkiem zmiennych lewostronnych, które przyjmują wartości odpowiadające stałym. Przykład:
Wartością funkcji celu w tym przypadku jest 2.
Rozwiązanie podstawowe nie zawsze spełnia wszystkie warunki nieujemności, co ilustruje algorytm sympleksu, który dąży do znalezienia optymalnego rozwiązania.