Katedra Algorytmów i Modelowania Systemów
Wydział Elektroniki, Telekomunikacji i Informatyki
Politechniki Gdańskiej
BADANIA OPERACYJNE
Część IC Zastosowania programowania liniowego
Materiały pomocnicze do wykładu z przedmiotu "Badania operacyjne"
Opracował: dr Tadeusz Ratajczak
Gdańsk, 2005
Literatura:
1. Jacek Błażewicz, Wojciech Celary, Roman Słowiński, Jan Węglarz: Badania operacyjne dla informatyków. WNT, Warszawa 1983.
2. Saul I. Gass: Programowanie liniowe - Zastosowania. PWN, Warszawa 1976.
3. Stanisław Krawczyk: Programowanie matematyczne. PWE, Warszawa 1980.
4. Zbigniew Jędrzejczyk, Karol Kukuła, Jerzy Skrzypek, Anna Walkosz: Badania operacyjne w przykładach i zadaniach. PWN, Warszawa 1997.
1. Zagadnienie transportowe
dostawców posiada jednorodny towar odpowiednio w ilościach
jednostek. Całą masę towarową należy przetransportować do
odbiorców, których zapotrzebowanie odpowiednio wynosi
jednostek. Znana jest macierz
,
której element
oznacza koszt transportu jednostki towaru od i-tego dostawcy do j-tego odbiorcy. Należy wyznaczyć taką macierz
,
gdzie
oznacza liczbę jednostek towaru, którą należy przetransportować od i-tego dostawcy do j-tego odbiorcy, aby sumaryczny koszt transportu był najmniejszy.
Gdy
zagadnienie nazywamy zagadnieniem transportowym zamkniętym. W przypadku, gdy
problem nazywamy zagadnieniem transportowym otwartym. Zagadnienie transportowe otwarte sprowadzamy do zamkniętego w następujący sposób.
Jeśli
<
, to wprowadzamy fikcyjnego dostawcę
przyjmując
oraz
.
Jeśli
>
, to wprowadzamy fikcyjnego odbiorcę
przyjmując
oraz
.
Zad. 1.1. Trzech dostawców
posiada jednorodny towar w ilości
,
,
jednostek. Całą masę towarową należy przetransportować do pięciu odbiorców
, których zapotrzebowanie odpowiednio wynosi
,
,
,
,
. Koszty transportu jednostki towaru od poszczególnych dostawców do poszczególnych odbiorców są zestawione w poniższej macierzy
Wyznaczyć minimalny koszt transportu.
Zad. 1.2. Dwie bazy PKS:
,
wysyłają autobusy na cztery dworce:
,
,
,
położone na terenie miasta. Przejazdy między bazami i dworcami są traktowane jako puste przebiegi. Zaproponować rozdział autobusów pomiędzy dworce minimalizujący puste przebiegi.
W poniższej tablicy podano odległości pomiędzy bazami a dworcami, licznę autobusów, jakimi bazy dysponują oraz zapotrzebowanie dworców.
|
Dworce |
|
|||
Bazy |
|
|
|
|
Liczba autobusów |
|
15 |
12 |
10 |
17 |
100 |
|
5 |
18 |
24 |
7 |
150 |
Zapotrzebowanie |
40 |
65 |
45 |
60 |
|
2. Problemy przydziału
2.1. Problem przydziału I
wyrobów (czynności) można wykonywać na
miejscach produkcji (stanowiskach pracy, maszynach). Zakładamy, że każdy rodzaj wyrobu może być wykonany na każdym miejscu produkcji. Znane są ograniczenia na moce produkcyjne poszczególnych miejsc produkcji
(np. maksymalny dopuszczalny czas pracy) oraz plan wykonania poszczególnych wyrobów
. Ponadto dana jest macierz
,
której element
oznacza koszt (czas) i-tego miejsca produkcji przy wykonywaniu jednostki j-tego wyrobu (wydajność i-tego miejsca produkcji przy wykonywaniu j-tego wyrobu).
Należy zaproponować optymalny przydział zadań produkcyjnych do poszczególnych miejsc produkcji z punktu widzenia jednego z poniższych kryteriów:
minimalizacja kosztów (czasu wykonania) zadań planowych,
maksymalizacja ilości wykonanych wyrobów.
2.2. Problem przydziału II (zagadnienie doboru)
Niech danych będzie
stanowisk i
kandydatów na te stanowiska. Każdy kandydat może być zatrudniony tylko na jednym stanowisku a każde stanowisko może być zajęte tylko przez jednego kandydata. Przydzielenie kandydata
na stanowisko
związane jest z kosztem
. Należy znaleźć takie przyporządkowanie poszczególnych kandydatów do poszczególnych stanowisk, aby łączny koszt był najmniejszy.
Zad. 2.1. W pewnej instytucji 4 sekretarkom należy przydzielić 4 różne prace biurowe. Znane są czasy (w minutach) zajmujące sekretarkom wykonanie poszczególnych rodzajów prac:
Kandydatki |
|
|
|
|
|
210 |
450 |
390 |
330 |
|
270 |
390 |
450 |
330 |
|
270 |
510 |
390 |
390 |
|
330 |
450 |
330 |
450 |
Określić przydział prac sekretarkom minimalizujący łączny czas wykonania wszystkich prac. Zakładamy, że każda sekretarka będzie wykonywała tylko jedną pracę, oraz że każda praca będzie wykonywana przez jedną sekretarkę.
Algorytm węgierski
Krok 1. Wykorzystując dwie operacje:
od każdego wiersza macierzy
odejmujemy minimalny element tego wiersza,
od każdej kolumny macierzy
odejmujemy minimalny element tej kolumny
przekształcić macierz kosztów
tak, aby w każdym wierszu i w każdej kolumnie występowało co najmniej jedno zero.
Krok 2. W przekształconej macierzy należy skreślić wiersze i kolumny zawierające zera najmniejszą liczbą linii. Jeżeli liczba linii niezbędnych do pokrycia zer macierzy jest równa
, to otrzymaliśmy rozwiązanie optymalne i przechodzimy do kroku 4. W przeciwnym przypadku przechodzimy do kroku 3.
Krok 3. W przypadku, gdy liczba linii skreśleń jest mniejsza od
w macierzy
należy znaleźć najmniejszy nie skreślony element i ten element:
odjąć od elementów nie skreślonych,
dodać do elementów podwójnie skreślonych.
(elementy skreślone jedną linią pozostawiamy bez zmian). Następnie powracamy do kroku 2.
Krok 4. Konstruujemy macierz rozwiązania
biorąc pod uwagę, że
jedynki w macierzy
mogą znaleźć się tylko na tych pozycjach, na których występują zera w macierzy
,
w każdym wierszu macierzy
powinna wystąpić dokładnie jedna jedynka,
w każdej kolumnie macierzy
powinna wystąpić dokładnie jedna jedynka.
Trzeba pamiętać, że
Metoda węgierska w opisanej postaci ma zastosowanie wyłącznie do rozwiązywania problemów minimalizacji.
Metoda węgierska w opisanej postaci zakłada, że macierz
jest macierzą kwadratową, tzn. liczba kandydatów jest równa liczbie stanowisk.
W praktyce może się zdarzyć, że pewne przydziały są niedopuszczalne, tzn. trzeba założyć, że pewne
muszą być równe zeru.
Zad. 2.2. Pewna instytucja zamierza zatrudnić trzech tłumaczy celem przetłumaczenia tekstów zapisanych w językach: angielskim, niemieckim i włoskim. W konkursie na te stanowiska wzięło udział czterech kandydatów. W poniższej tabeli podane są czasy potrzebne poszczególnym kandydatom na przetłumaczenie odpowiednich tekstów.
|
Czas [w godzinach] potrzebny na przetłumaczenie tekstu |
|||
Tekst w języku: |
Kandydat 1 |
Kandydat 2 |
Kandydat 3 |
Kandydat 4 |
angielskim |
5 |
2 |
10 |
12 |
niemieckim |
10 |
8 |
2 |
5 |
włoskim |
15 |
1 |
5 |
5 |
Wybrać trzechn kandydatów do tłumaczenia tekstów w taki sposób, aby sumaryczny czas tłumaczenia był najmniejszy. Zakładamy, że każdy z trzech tekstów będzie tłumaczony tylko przez jednego tłumacza oraz że każdy tłumacz może pracować tylko nad jednym tekstem.
3. GRY MACIERZOWE
3.1. Podstawowe definicje
Podstawowym zagadnieniem teorii gier (sformułowanym przez Johna von Neumanna) jest badanie następującego problemu: Jeśli n graczy rozgrywa zadaną grę , to jak musi grać i-ty gracz , aby uzyskać najpomyślniejszy wynik ?
Zakładamy, że na końcu rozgrywki każdy gracz otrzymuje pewną ilość pieniędzy . Ilość może być liczbą dodatnią (oznacza wówczas wygraną gracza ), ujemną (oznacza wówczas przegraną gracza ) lub równe zero (oznacza wówczas wynik remisowy). W najbardziej znanych grach, jak na przykład poker, dla wszystkich rozgrywek zachodzi
.
Takie gry nazywamy grami o sumie zero. W grach o sumie zero gracze nie tworzą ani nie rozbierają puli bankowej. Przykładem gry o sumie niezerowej mógłby być poker, w którym pewien procent puli stanowi wynagrodzenie dla właściciela lokalu.
Gra macierzowa
Gra macierzowa jest grą dwuosobową, zdefiniowaną przez macierz
o elementach rzeczywistych, zwaną macierzą wypłat. W najprostszym przypadku (w przypadku wyboru przez graczy strategii czystych) zasady gry są następujące.
Najpierw gracz
wybiera numer wiersza i macierzy wypłat, a następnie gracz
wybiera numer kolumny j. Element
oznacza sumę, którą gracz
płaci graczowi
na zakończenie rozgrywki. Dopuszczamy oczywiście, że elementy
mogą być ujemne i wówczas oznaczają, że
płaci graczowi
kwotę -
.
Dyskusja na temat wyboru strategii czystych przez graczy
Zgodnie ze sformułowanym we wstępie podstawowym zagadnieniem teorii gier, jedynym celem graczy jest maksymalizacja ich wygranych. Jeśli nie będziemy uwzględniali pomyłek graczy w trakcie rozgrywki, to przyjmiemy za naturalny następujący wybór strategii przez graczy
i
. Jeśli gracz
wybierze wiersz i, to wygra co najmniej
Ponieważ gracz
wybiera numer wiersza, więc może wybrać takie i, które maksymalizuje jego wygraną:
Stosując powyższą strategię gracz
może wygrać co najmniej
Jeśli gracz wybierze strategię j, to w najgorszym przypadku może przegrać Ale gracz
może wybrać taką strategię j, która minimalizuje jego przegraną:
Stosując taką strategię, gracz
może nie dopuścić, aby gracz
wygrał więcej niż
w grach macierzowych mówimy, że gracz
jest graczem maksymalizującym (wygraną) a gracz
graczem minimalizującym (przegraną). Można wykazać, że zawsze zachodzi nierówność
.
Zad. 3.1. Wyznaczyć optymalne strategie czyste graczy dla gry macierzowej o następującej macierzy wypłat
3.2. Strategie mieszane
Przez strategię mieszaną gracza
rozumiemy wektor
,
taki, że .
Przez strategię mieszaną gracza
rozumiemy wektor
taki, że .
Elementy oraz można interpretować jako częstości z jakimi gracz
wybiera i-ty wiersz a gracz
j-tą kolumnę w serii rozgrywek gry macierzowej.
Wielkość wygranej gracza
określa funkcja wypłaty (nadzieja matematyczna)
.
Rozwiązaniem gry macierzowej nazywamy parę strategii mieszanych
, ,
i taką liczbę rzeczywistą v, że
dla wszystkich strategii czystych j=1,2,...,n ,
dla wszystkich strategii czystych i=1,2,...,m .
Strategie nazywamy strategiami optymalnymi a v wartością gry.
Zasadnicze twierdzenie gier macierzowych
Dla każdej gry macierzowej istnieją i są sobie równe. Innymi słowy każda gra macierzowa ma rozwiązanie.
Uwaga. Za pomocą modelu programowania liniowego można wyznaczyć rozwiązanie gry macierzowej.
Zad. 3.2. Znaleźć rozwiązanie gry macierzowej o następującej macierzy wypłat
.
Zad. 3.3. Znaleźć rozwiązanie gry macierzowej o następującej macierzy wypłat
.
Zad. 3.4. Znaleźć rozwiązanie gry macierzowej o następującej macierzy wypłat
.
3.3. Gry z naturą
Gry z naturą są grami dwuosobowymi o sumie zero, w których przeciwnik (natura) nie podejmuje decyzji w trakcie gry.
Przykład 3.1. Rolnik ma wybrać jeden z trzech możliwych terminów t1, t2, t3 zasiewu zbóż. Wielkość plonów z hektara zależy od terminu zasiewu i stanu pogody. Zostały one zestawione w poniższej tabeli (w której wyróżniono 4 stany pogody S1, S2, S3, S4).
Terminy |
Stany pogody |
|||
zasiewów |
S1 |
S2 |
S3 |
S4 |
t1 |
21 |
15 |
32 |
16 |
t2 |
28 |
20 |
10 |
20 |
t3 |
13 |
27 |
25 |
15 |
Należy wspomóc rolnika w podjęciu decyzji o wyborze terminu zasiewu zbóż.
Wyboru można dokonać w oparciu o jedno z poniższych kryteriów.
Kryterium Walda
Zakładamy, że zajdą warunki najbardziej niekorzystne dla podejmującego decyzję. Dlatego optymalna decyzja i jest wybierana według reguły minmax. Odnośnie przykładu 1:
Następnie wybieramy
.
Ostatecznie wybieramy termin pierwszy (t1) gwarantując sobie wydajność z hektara co najmniej 15 kwintali.
Kryterium Hurwicza
Określa się arbitralnie współczynnik ostrożności a następnie wybiera się strategię i, dla której największa jest wartość
Przyjmując w przykładzie 1 kolejno mamy:
Następnie wybieramy
.
Ostatecznie wybieramy termin pierwszy (t1) spodziewając się osiągnięcia wydajności 18.4 kwintali z hektara..
Kryterium Bayesa
Zakładamy, że wszystkie stany z natury są jednakowo prawdopodobne. Zatem najlepszą strategią jest ta strategia i, która daje największą średnią arytmetyczną wygranych, tzn.
.
Dla przykładu 1 mamy
Następnie wybieramy
.
Ostatecznie wybieramy termin pierwszy (t1) oczekując wydajności 21.0 kwintali z hektara.
Zad. 3.5. Trzy typy hamulców
,
,
podawano próbom w czterech rodzajach warunków drogowych
,
,
,
. Procent zadowalających prób podano w poniższej tabeli
|
Rodzaj warunków drogowych |
|||
Rodzaj hamulców |
|
|
|
|
|
85 |
77 |
85 |
74 |
|
88 |
70 |
90 |
78 |
|
81 |
65 |
92 |
80 |
Wybrać do produkcji jeden z trzech rodzajów hamulców
przyjmując, że w trakcie eksploatacji będą występowały warunki zbliżone do najbardziej niekorzystnych,
przyjmując, że w trakcie eksploatacji wystąpienie każdego rodzaju warunków drogowych jest jednakowo prawdopodobne.
Skomentować podane rozwiązania.
13