Najlepsze pytania
Chronologia
Czat
Perspektywa

Programowanie liniowe

rozwiązywanie układów równań i nierówności liniowych Z Wikipedii, wolnej encyklopedii

Remove ads

Programowanie liniowe (optymalizacja liniowa) – klasa problemów programowania matematycznego, w której funkcja celu oraz wszystkie warunki ograniczające mają postać liniową[1]. Celem optymalizacji jest znalezienie maksimum lub minimum funkcji celu. Programowanie liniowe znalazło szerokie zastosowanie w teorii decyzji, np. do optymalizacji planu produkcyjnego. Wiele problemów optymalizacyjnych znajduje rozwiązanie poprzez ich sprowadzenie do postaci problemu programowania liniowego.

Remove ads

Definicja problemu optymalizacji liniowej

Podsumowanie
Perspektywa
Thumb
Optymalizacja liniowa w przestrzeni dwuwymiarowej . Funkcja kosztu jest przedstawiona po lewej za pomocą niebieskich linii poziomic, a po prawej jako niebieska płaszczyzna. Zbiór rozwiązań dopuszczalnych tworzy zielony pięciokąt.
Thumb
Zamknięty obszar dopuszczalny zagadnienia optymalizacyjnego z trzema zmiennymi ma postać wypukłego wielościanu. Powierzchnie odpowiadające stałym wartościom funkcji celu płaszczyznami (nie pokazano). Zadanie programowania liniowego polega na znalezieniu punktu na wielościanie, który leży na płaszczyźnie o możliwie największej wartości funkcji celu.

Funkcja celu ma postać liniową:

gdzie - zmienne, które są liczbami rzeczywistymi, oraz - stałe parametry określające funkcję.

Warunki ograniczające występują w postaci nierówności lub równości liniowych, tj.:

lub
lub

Celem optymalizacji jest znalezienie punktu dla którego lub


Remove ads

Warunki wykluczające istnienie rozwiązania optymalnego

Nie zawsze problem ma jakiekolwiek rozwiązanie:

(1) gdy warunki ograniczające wzajemnie się wykluczają:

(2) gdy żadne rozwiązanie nie jest optymalne, ponieważ można uzyskać dowolnie dużą wartość funkcji celu, np. zadanie:

Zmaksymalizuj przy warunku
Remove ads

Postać standardowa

Podsumowanie
Perspektywa

Postać standardowa to taka, w której funkcja celu ma być maksymalizowana. Występują tylko warunki postaci:

oraz na każdą zmienną nałożony jest warunek:

Można więc zapisać:

czyli ograniczenia w postaci standardowej można w sposób ogólny zapisać bardziej zwięźle:

Jeszcze zwięźlej ujmuje się to zagadnienie w postaci macierzowej:

Zmaksymalizować funkcję celu

przy ograniczeniach

gdzie:

Remove ads

Sprowadzanie do postaci standardowej

Podsumowanie
Perspektywa

Żeby przekształcić problem do postaci standardowej, zamiany minimalizacji na maksymalizację oraz warunków mniejsze-równe na większe-równe, dokonuje się przez zamianę znaków przy współczynnikach. Jeśli mamy warunek:

to jest on równoważny parze warunków:

czyli:

Jeśli na zmienną nie ma ograniczenia, że musi przyjmować tylko wartości dodatnie, wprowadzamy 2 nowe zmienne i i zamieniamy wszystkie wystąpienia tej zmiennej na Na obie nowe zmienne możemy już nałożyć ograniczenie, że są one nieujemne.

Remove ads

Postać równościowa

Podsumowanie
Perspektywa

Postać równościowa (kanoniczna) to taka, w której funkcja celu ma być zmaksymalizowana, wszystkie warunki są równościami, a na wszystkie zmienne nakłada się warunek, że są nieujemne.

Żeby pozbyć się nierówności:

wprowadzamy nową zmienną która może przyjmować tylko wartości nieujemne i przekształcamy równanie do postaci:

i analogicznie dla mniejsze-równe, z odwróconym znakiem.

Zwykle chcemy przepisać te równania do postaci:

tak, że zmienne występujące po lewej stronie równań nie występują nigdzie indziej (ani po prawej stronie równań, ani w funkcji celu).

Z układem takim wiąże się rozwiązanie podstawowe – takie, w którym wszystkie zmienne oprócz lewostronnych mają przypisaną wartość zero, natomiast wszystkie lewostronne oraz funkcja celu mają wartość równą wartości odpowiednich stałych.

Rozwiązaniem podstawowym tego układu jest (0, 0, 0, 5, −2), i wartością funkcji celu jest 2.

Rozwiązanie podstawowe nie zawsze musi spełniać wszystkie warunki nieujemności (w tym przypadku niespełniony jest warunek na ). Przekształcenie równania, które zachowuje zbiór prawidłowych rozwiązań może zmieniać nam rozwiązanie podstawowe – taka jest zresztą idea podstawowego algorytmu programowania liniowego, algorytmu sympleksu.

Remove ads

Zobacz też

Przypisy

Linki zewnętrzne

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads