You are on page 1of 12

Zadanie programowania liniowego.

Źródło: T. Trzaskalik, Badania Operacyjne z komputerem, PWE

Problem wyboru najlepszego rozwiązania w danych warunkach. Należy zdefiniować, co


to znaczy najlepsze

Przykład 0:
Przedsiębiorstwo chce osiągnąć jak największe przychody dzienne. Może produkować
dwa rodzaje wyrobów: stoły i krzesła. Jednostkowa cena sprzedaży stołu i krzesła wynosi
6 tys. zł. Każde krzesło potrzebuje 2 m2 drewna i 4 roboczogodzin. Każdy stół
potrzebuje 3 m2 drewna i 2 roboczogodzin. Dziennie przedsiębiorstwo ma do dyspozycji
najwyżej 12 m2 drewna i 16 roboczogodzin. Znaleźć najlepsze dla przedsiębiorstwa pod
względem przychodów ze sprzedaży dzienny plan produkcji.

z = 6x1 + 6x2 → max


2x1 + 3x2 ≤ 12
4x1 + 2x2 ≤ 16
x1 ≥ 0, x2 ≥ 0

ALGORYTM

Rozwiązanie
x1= 3, x2= 2

1
Przykład 1: Zagadnienie rozkroju

Przypuśćmy, że tartak otrzymał zlecenie wykonania 100 kompletów zbrojeniowych..


Każdy z kompletów składa się z trzech belek, każda o innej długości: 1,5m, 2,1m oraz
2,9m. Średnica belek jest taka sama. Do wykonania belek potrzebne są kłody. Tartak
dysponuje kłodami o odpowiedniej średnicy, ale o długości 7,4m. Powstaje zatem
pytanie: jak wyprodukować 100 kompletów zbrojeniowych przy minimalnym zużyciu
drewna z kłód?

Liczba desek Sposoby rozkroju


1 2 3 4 5 6
krótkich (1,5m) 1 3 1 2 0 3
średnich (2,1m) 1 0 0 2 2 1
Długich (2,9m) 1 1 2 0 1 0

Sposób 1: odpad = 7,4 – (1*1,5 + 1*2,1 + 1*2,9) = 0,9


Sposób 3: odpad = 7,4 – (1*1,5 + 2*2,9) = 0,1
Sposób 4: odpad = 7,4 – (2*1,5 + 2*2,1) = 0,2
Sposób 5: odpad = 7,4 – (2*2,1 + 1*2,9) = 0,3
Sposób 6: odpad = 7,4 – (3*1,5 + 1*2,1) = 0,8

Zmienne decyzyjne:
x1- liczba kłód pociętych sposobem 1;
x2- liczba kłód pociętych sposobem 2;
x3- liczba kłód pociętych sposobem 3;
x4- liczba kłód pociętych sposobem 4;
x5- liczba kłód pociętych sposobem 5;
x6- liczba kłód pociętych sposobem 6.

f(x1, x2, x3, x4, x5, x6) = 0,9x1 + 0,1x3 + 0,2x4 + 0,3x5 + 0,8x6 → min

belki krótkie:
x1 + 3x2 + x3 + 2x4 + 3x6 =100;

belki średnie:
x1 + 2x4+ 2x5 + x6 = 100;

belki długie:
x1 + x2 + 2x3 + x5 =100;

warunek nieujemności:
x1, x2, x3, x4 ≥ 0.

Rozwiązanie:
x1 = 0, x2 = 30, x3 = 10, x4 = 0, x5 =50, x6 = 0.

2
rozwiązanie alternatywne:
x1 = 0, x2 = 0, x3 = 40, x4 = 30, x5 =20, x6 = 0.

Przykład 2: Zagadnienie diety

Do racjonalnego żywienia bydła, każdej sztuce należy dostarczyć trzech zasadniczych


składników odżywczych rocznie. Składniki nazywają się po prostu: A, B i C. Każda
sztuka bydła musi spożyć co najmniej 1000 jednostek składnika A, co najmniej 800
jednostek składnika B i co najmniej 1150 jednostek składnika C, z tym że nie więcej niż
1700 jednostek. Mamy do wyboru cztery pasze, które zawierają podane wyżej składniki.
Zawartość każdego z nich w 1q danej paszy oraz jej cenę ukazuje tabela

Rodzaj paszy Składniki Cena


A B C
Pasza 1 50 20 10 10
Pasza 2 20 0 30 30
Pasza 3 30 20 10 10
Pasza 4 0 10 20 20

Dodatkowo bydło powinno otrzymać rocznie nie mniej niż 20q paszy 2, a paszy 1 1,5
razy więcej niż paszy 3. Ponadto wiadomo, że nie będzie można otrzymać więcej niż 30q
paszy 3 na sztukę bydła. Biorąc pod uwagę powyższe ograniczenia, jakie ilości
poszczególnych pasz należy kupić, aby koszt łączny zakupu był jak najmniejszy?

Zmienne decyzyjne:
x1 – planowana ilość zakupienia paszy 1;
x2 – planowana ilość zakupienia paszy 2;
x3 – planowana ilość zakupienia paszy 3;
x4 – planowana ilość zakupienia paszy 4.

Funkcja celu:
f(x1, x2, x3, x4) = 1800x1 + 2200x2 + 1300x3 + 1500x4 → min

Warunki ograniczające wynikające z treści zadania:

ograniczenie dla składnika A:


50x1+ 20x2+ 30x3 ≥ 1000;

ograniczenie dla składnika B:


20x1+ 20x3+ 10x4 ≥ 800;

ograniczenie dla składnika C:


1150 ≤ 10x1+ 30x2+ 10x3 + 20x4 ≤ 1700;

3
Ograniczenie dla paszy 2:
x2 ≥ 20;

zależność między paszą 1, a paszą 3:


x1 = 1,5x3;

ograniczenie dla paszy 3:


x3 ≤ 30;

warunek nieujemności:
x1, x2, x3, x4 ≥ 0.

1 1 1
x1 = 20, x2 = 18 3 , x3 = 13
3 , x4 = 13
3

Optymalna wartość funkcji celu wynosi: 113 666,5.

Interpretacja: aby zachować warunki racjonalnego żywienia bydła opisanego przez


warunki podane w zadaniu, przy jednoczesnej minimalizacji kosztu zakupu, należy kupić
1 1 1
20q paszy 1, 18 3 q paszy 2, 13 3 q paszy 3 i 13 3 q paszy 4.

Przykład 3: Zagadnienie planowania produkcji

Pewien zakład jest w stanie wytworzyć 8 produktów: P1, P2, P3, P4, P5, P6, P7 i P8 przy
wykorzystaniu czterech środków potrzebnych do ich produkcji. W tabeli przedstawione
są nakłady poszczególnych środków na jednostkę danego produktu wraz z ich zasobami
oraz jednostkowy zysk.

Środki Produkty Zasoby


produkcji P1 P2 P3 P4 P5 P6 P7 P8
S1 3 2 5 4 3 5 2 3 500
S1 2 3 1 4 2 2 1 3 400
S3 2 1 1 4 3 0 2 4 350
S4 2 1 2 2 1 2 2 1 450
Zysk 1 2 1 3 4 5 3 2
jednostkow
y

Zadanie: wyznaczyć optymalny plan produkcji wraz z maksymalnym łącznym zyskiem


Celem będzie zatem wyznaczenie optymalnego planu produkcji maksymalizującego
łączny zysk.

Określenie zmiennych decyzyjnych:


x1 – planowana wielkość produkcji P1;

4
x2 – planowana wielkość produkcji P2;
x3 – planowana wielkość produkcji P3;
x4 – planowana wielkość produkcji P4;
x5 – planowana wielkość produkcji P5;
x6 – planowana wielkość produkcji P6;
x7 – planowana wielkość produkcji P7;
x8 – planowana wielkość produkcji P8.

Funkcja celu:
f(x1, x2, x3, x4, x5, x6, x7, x8) = x1 + 2x2 + x3 + 3x4 + 4x5+5x6 + 3x7 + 2x8 → max

Warunki ograniczające:

ograniczenie dla środka S1:


3x1 + 2 x2 + 5x3 + 4x4 + 3x5 + 5x6 + 2x7 + 3x8 ≤ 500;

ograniczenie dla środka S2:


2x1 + 3x2 + x3 + 4x4 + 2x5 + 2x6 + x7 + 3x8 ≤ 400;

ograniczenie dla środka S3:


2x1 + x2 + x3 + 4x4 + 3x5 + 2x7 + 4x8 ≤ 350;

ograniczenie dla środka S4:


2x1 + x2 + 2x3 + 2x4 + x5 + 2x6 + 2x7 + x8 ≤ 450;

warunek nieujemności:
x1, x2, x3, x4, x5, x6, x7, x8 ≥ 0.

Rozwiązanie, które jest zależne od parametru t przedstawione jest w tabeli


Produkty Wartość
funkcji celu
x1 x2 x3 x4 x5 x6 x7 x8
0 0 0 0 0 30 175 0 675

Przykłady zastosowania programowania liniowego całkowitoliczbowego

Programowanie liniowe całkowitoliczbowe jest zagadnieniem programowania liniowego


i wyróżnia się ono tym, że zmienne decyzyjne są objęte dodatkowym warunkiem- muszą
przyjmować wartości całkowite dodatnie.

Przykład 4: Zagadnienie produkcyjno- modernizacyjne

5
Pewne przedsiębiorstwo trudni się wykonywaniem 3 rodzajów produktów, do których
wytworzenia potrzebne są maszyny typu I i II. Maksymalne czasy pracy oraz
współczynniki technologiczne opisuje tabela

Czas pracy Produkt Maksymalny czas


P1 P2 P3 pracy
Maszyna I 1 3 2 30
Maszyna II 2 2 6 20
Zysk jednostkowy 1 2 3 x

Istnieje możliwość zmodernizowania maszyn w taki sposób, aby ich czas pracy był
dłuższy. Będzie to również skutkowało zwiększeniem produkcji i większym zyskiem.
Występują różne możliwości modernizacyjne. Modernizacja maszyny typu I może
skutkować zwiększeniem czasu jej pracy o 7 lub 16 jednostek czasu, przy czym koszt
modernizacji wynosi odpowiednio 45 i 70 jednostek. Modernizując maszynę typu II
można zwiększyć jej czas pracy o 10 lub 30 jednostek, gdzie koszt wynosi kolejno 28 lub
80 jednostek. Ograniczeniem jest fakt, że łączny koszt modernizacji nie może
przekroczyć 125 jednostek. Zadanie polega na dokonaniu takiej modernizacji, by zysk
był maksymalny przy nowych możliwościach produkcyjnych. Innymi słowy należy
dokonać takiej modernizacji maszyn, aby zysk otrzymany z produkcji wyrobów P1, P2
i P3 był jak największy.

Zmienne decyzyjne:
x1 – planowana wielkość produkcji P1;
x2 – planowana wielkość produkcji P2;
x3 – planowana wielkość produkcji P3.

Wprowadzamy nowe zmienne, które będą określały możliwości modernizacyjne dla


każdej z maszyn. Możliwości zostaną opisane przez zmienne binarne:

maszyna typu I:
x4 = 1, jeżeli czas pracy zostanie zwiększony o 7 jednostek;
x4 = 0 dla sytuacji przeciwnej;

x5 = 1, jeżeli czas pracy zostanie zwiększony o 16 jednostek;


x5 = 0 dla sytuacji przeciwnej;

maszyna typu II:


x6 = 1, jeżeli czas pracy zostanie zwiększony o 10 jednostek;
x6 = 0 dla sytuacji przeciwnej;

x7 = 1, jeżeli czas pracy zostanie zwiększony o 30 jednostek;


x7 = 0 dla sytuacji przeciwnej.

Funkcja celu wygląda następująco:


f(x1, x2, x3) = x1 + 2x2 + 3x3

6
Warunki ograniczające:

czas pracy maszyny typu I:


x1 + 2x2 + 3x3 ≤ 30 + 7x4 + 16x5.

Założenie to mówi, że dotychczasowe zdolności produkcyjne (lewa strona nierówności)


nie mogą być lepsze, niż nowe. Podobne założenie będzie występowało w przypadku
drugiej maszyny.

Czas pracy maszyny typu II:


2x1 + 2x2 + 6x3 ≤ 20 + 10x6 + 30x7;

warunek związany z ograniczonym budżetem:


45x4 + 70x5 + 28x6 + 80x7 ≤ 125.

Wprowadzenie każdej opcji modernizacyjnej wiąże się z kosztami, które muszą być nie
większe, niż 125 jednostek.

Warunki określające wybór wariantu:

Maszyna typu I:
x4 + x5 ≤ 1;

maszyna typu II:


x6 + x7 ≤ 1.

Określenie tego warunku wyklucza możliwość zastosowania dwóch opcji


modernizacyjnych dla jednej maszyny równocześnie, gdyż zmienne w tym przypadku
przyjmują wartości 0 lub 1.

Warunek nieujemności:
x1, x2, x3 ≥ 0;

dodatkowo:
x4, x5, x6, x7 є {0; 1}.

x1 = 0, x2 = 8,7, x3 = 5,43, x4 = 1, x5 = 0, x6 = 0, x7 = 1.

Wartość funkcji celu wynosi 33,71.


Program podał wartości zmiennych, z których to wartości wynika, że maszynę typu I
należy zmodernizować tak, by zwiększyć czas pracy o 7 jednostek, gdyż x4 = 1. Maszynę
typu II należy ulepszyć poprzez wydłużenie czasu jej pracy o 30 jednostek- zmienna
x7 = 1. Zysk będzie maksymalny gdy będzie produkowane 0 jednostek P1, 8,7 jednostek
P2 i 5,43 jednostek P3.

7
Przykład 5: Optymalizacja planu wydawniczego

. Wydawnictwo chce ustalić plan wydawniczy na następny okres czasu. Tabela zawiera
informacje o skryptach, których wydanie jest możliwe oraz przewidywane wielkości
sprzedaży.

Tytuł Rodzaj Prognoza sprzedaży [szt.]


Zarządzanie nowe wydanie 2500
Matematyka wznowienie 3000
Statystyka nowe wydanie 2000
Statystyka matematyczna nowe wydanie 1500
Statystyka opisowa wznowienie 1500
Finanse nowe wydanie 1800
Rachunkowość nowe wydanie 3000
Rachunkowość II wznowienie 3500
Angielski nowe wydanie 5000
Francuski nowe wydanie 3500

W kolumnie Rodzaj mamy do czynienia z dwiema opcjami: nowe wydanie i


wznowienie. Pierwsza opcja oznacza, że wydanie jest w fazie projektu, a co za tym idzie
umowa wydawnicza z autorem nie została jeszcze podpisana. Opcja wznowienie oznacza,
że umowa z autorem już jest podpisana, a wydawnictwo rozważa możliwość kontynuacji
wydawania.
Wiemy też, że wydawnictwo zatrudnia trzech redaktorów, którzy pracują nad
skryptami. Wykorzystanie każdego z nich związane jest z aktualnym obciążeniem pracą.
Na prace przy nowym planie wydawniczym redaktorzy mogą poświęcić:
Maria – 48 godzin;
Antoni – 320 godzin;
Klaudia – 350 godzin.
Tabela opisuje czas pracy, jaki każdy redaktor może poświęcić na dane
wydawnictwo. „-” oznacza, że dany redaktor nie może zajmować się danym
wydawnictwem. Dodatkowo do wydawnictwa może być przydzielonych nie mniej, niż
dwóch redaktorów, jednak w przypadku Rachunkowości i Rachunkowości II zajmować
się nimi może tylko i wyłącznie Klaudia.

Tytuł Maria Antoni Klaudia


Zarządzanie 220 300 -
Matematyka 130 190 -
Statystyka 190 150 210
Statystyka matematyczna 160 - 190
Statystyka opisowa 90 - 120
Finanse - 220 100
Rachunkowość - - 200
Rachunkowość II - - 180
Angielski 300 - 240

8
Francuski - 400 310

Wydawnictwo zakłada wydanie maksymalnie dwóch wydawnictw ze statystyki i


co najwyżej jedno z rachunkowości. Określono też, że w planie wydawniczym musi
znaleźć się Zarządzanie lub Matematyka.
Zadaniem jest znalezienie najlepszego planu wydawniczego przy założeniu, że
koszty stałe i dochody ze sprzedaży w przeliczeniu na jeden skrypt będą mniej więcej
takie same dla każdego skryptu. Wydawnictwo jest zainteresowane jak największą
wielkością sprzedaży.
Celem jest taki plan wydawniczy, który maksymalizuje łączna prognozowaną
sprzedaż, przy zachowaniu wyżej opisanych warunków.

Zmienne decyzyjne:
zmiennymi decyzyjnymi będzie 10 zmiennych binarnych, gdzie „1” oznacza, że skrypt
będzie wydany, a „0: sytuację odwrotną. Zmienne przedstawia tabela (TABELA NR).

Zmienna Opis zmiennej- wydanie Wartość zmiennej


skryptowe
x1 Zarządzanie {0;1}
x2 Matematyka {0;1}
x3 Statystyka {0;1}
x4 Statystyka matematyczna {0;1}
x5 Statystyka opisowa {0;1}
x6 Finanse {0;1}
x7 Rachunkowość {0;1}
x8 Rachunkowość II {0;1}
x9 Angielski {0;1}
x10 Francuski {0;1}

Funkcja celu:
25x1 + 30x2 + 20x3 + 15x4 + 15x5 + 18x6 + 30x7 + 35x8 + 50x9 + 35x10 → max

Wartości przy zmiennych są podane w setkach, czyli w rzeczywistości 25x1 wynosić


będzie 2500x1.

Warunki ograniczające:

ograniczenia związane z czasem Marii, która na redagowanie skryptów może poświęcić


480 godzin:
220x1 + 130x2 + 190x3 + 160x4 + 90x5 + 300x9 ≤ 480;
Antoni może poświęcić 320 godzin:
300x1 + 190x2 + 150x3 + 220x6 + 400x10 ≤ 320;

Maksymalny czas pracy, jaki może poświęcić Klaudia, to 350 godzin, więc:
210x1 + 190x4 + 120x5 + 100x6 + 200x7 + 180x8 + 240x9 + 310x10 ≤ 350;

9
w planie mogą być co najwyżej dwa skrypty ze statystyki:
x3 + x4 + x5 ≤ 2;

w planie nie może być więcej, niż jeden skrypt z rachunkowości:


x7 + x8 ≤ 1;

plan wydawniczy musi zawierać skrypt z zarządzania lub matematyki, więc:


x1 + x2 =1;

zmienne muszą przyjmować wartości binarne:


x1, x2, x3, x4, x5, x6, x7, x8, x9, x10 є {0;1}.

Dwa rozwiązania optymalne:


Rozwiązanie numer 1:
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
0 1 0 0 1 0 0 1 0 0

Rozwiązanie numer 2:
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10
0 1 0 0 0 0 0 0 1 0

Optymalna wartość funkcji celu wynosi 8000.

Przykład 6: Zagadnienie lokalizacji

Wyobraźmy sobie sytuację, kiedy Rada Miejska planuje zwiększyć


bezpieczeństwo w mieście poprzez nową lokalizację komisariatów policji. Rada stoi
przed wyborem spośród siedmiu nowych lokalizacji, w których każdy komisariat
obejmowałby pewne rejony, co przedstawia tabela

Proponowana lokalizacja Obejmowane rejony


A 1, 5, 7
B 1, 2, 5, 7
C 1, 3, 5
D 2, 4, 5
E 3, 4, 6
F 4, 5, 6
G 1, 5, 6, 7

Zadaniem jest znalezienie jak najmniejszej liczby nowych lokalizacji


komisariatów, gdzie każdy rejon będzie objęty nadzorem przynajmniej jednego z
komisariatów.

Określenie zmiennych decyzyjnych:

10
Przyjętych zostanie siedem zmiennych binarnych, które będą określały czy w danym
rejonie ma się znajdować komisariat („1”), czy nie („0”).
Zmienna Opis- lokalizacja komisariatu Wartość zmiennej
x1 A {0;1}
x2 B {0;1}
x3 C {0;1}
x4 D {0;1}
x5 E {0;1}
x6 F {0;1}
x7 G {0;1}

Funkcja celu
x1 + x2 + x3 + x4 + x5 + x6 + x7 → min

Warunki ograniczające:

rejon 1:
x1 + x2 + x3 + x7 ≥ 1;

rejon 2:
x2 + x4 ≥ 1;

rejon 3:
x3 + x5 ≥ 1;

rejon 4:
x4 + x5 + x6 ≥ 1;

rejon 5:
x1 + x2 + x3 + x4 + x6 + x7 ≥ 1;

rejon 6:
x5 + x6 + x7 ≥ 1;

rejon 7:
x1 + x2 + x7 ≥ 1;

ograniczenie dla zmiennych binarnych:


x1, x2, x3, x4, x5, x6, x7 є {0; 1}.

x1 x2 x3 x4 x5 x6 x7
0 1 0 0 1 0 0

Optymalna wartość funkcji celu wynosi 2.

11
12

You might also like