Programowanie liniowe w teorii gier
description
Transcript of Programowanie liniowe w teorii gier
![Page 1: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/1.jpg)
Programowanie liniowe w
teorii gier
![Page 2: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/2.jpg)
George Dantzig, Tjalling Koopmans, Leonid Kantorowicz
![Page 3: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/3.jpg)
Właściciel ciężarówki może przewieźć z miejscowości A do B cukier, mąkę i chipsy.
W ciężarówce mieści się towar o objętości co najwyżej 7000 litrów i wadze co najwyżej 5 ton.
•1 kg cukru zajmuje objętość 1,5 litra,•1 kg mąki 2 litry, •1 kg chipsów zajmuje objętość 4 litrów.
![Page 4: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/4.jpg)
Zysk od przewozu poszczególnych towarów jest następujący:
•za 100 kg cukru 8 zł,•za 100 kg mąki 10 zł,•za 100 kg chipsów 25 zł.
Ile cukru, mąki i chipsów powinien załadować właściciel ciężarówki aby zmaksymalizować swój zysk?
![Page 5: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/5.jpg)
Matematyczny model tak postawionego zadania jest następujący:
Oznaczmy przez:
• x1- ilość cukru,• x2- ilość mąki,• x3- ilość chipsów.
![Page 6: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/6.jpg)
Skoro ciężarówka może zabrać co najwyżej 5 ton towarów, musi zachodzić nierówność:
100x1+100x2+100x3≤5000
Z kolei ograniczenie objętości wyraża się wzorem :
150x1+200x2+400x3≤7000
Zysk właściciela wynosi:
Z=8x1+10x2+25x3
![Page 7: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/7.jpg)
x1, x2, x3 muszą być oczywiście nieujemne.
Po uproszczeniach otrzymamy więc problem programowania matematycznego:
f(x1,x2,x3)=8x1+10x2+25x3 → max
w zbiorze:
![Page 8: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/8.jpg)
Definicja Problemem programowania liniowego będziemy nazywać problem programowania matematycznego sformułowany następująco:
Niech cj oraz aij dla i=1,…,m i j=1,…,n będą liczbami rzeczywistymi.
znaleźć maksimum funkcji:
przy ograniczeniach:
![Page 9: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/9.jpg)
Często wygodnie będzie nam pisać:
Funkcjęnazywamy funkcją celu, zaś nierówności
ograniczeniami
![Page 10: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/10.jpg)
Zmienne x1,…,xn nazywamy zmiennymi decyzyjnymi.
Zauważmy, że zarówno funkcja celujak i lewe strony nierówności w ograniczeniach
są funkcjami liniowymi.
![Page 11: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/11.jpg)
• Możemy wyprodukować n wyrobów.• Do ich produkcji zużywane są różne środki
produkcji, których część (powiedzmy r) jest dostępna w ograniczonych ilościach.
• Dane są:– normy zużycia środków produkcji na jednostkę
każdego wyrobu,– zasoby środków produkcji,– ceny lub zyski jednostkowe ze sprzedaży wyrobów.
![Page 12: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/12.jpg)
• Mogą być też podane dodatkowe informacje o popycie na wyprodukowane produkty (lub niektóre z nich):– minimalna ilość, jaką trzeba wyprodukować, aby
zrealizować zamówienie odbiorców,– lub maksymalna ilość, jaką można sprzedać.
![Page 13: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/13.jpg)
A zatem parametrami są:• aij - zużycie i-tego środka produkcji na
wytworzenie jednostki j-ego wyrobu (i=1,…,r; j=1,..,n);
• bi-posiadany zasób i-tego środka produkcji;
• cj-cena lub zysk jednostkowy ze sprzedaży
j-ego wyrobu;• dj-min. ilość j-ego wyrobu, jaką trzeba
wyprodukować;• gj-max. ilość j-ego wyrobu, jaką można sprzedać.
![Page 14: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/14.jpg)
Rozwiązanie dopuszczalne a
rozwiązanie optymalne
![Page 15: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/15.jpg)
Przykład
Przedsiębiorstwo produkuje dwa wyroby: W1 i W2.
W procesie produkcji zużywa się wiele środków, spośród których dwa są limitowane.
Limity te wynoszą: środek I – 96000 jedn., środek II – 80000 jedn.
Nakłady limitowane na jednostkę wyrobów W1 i W2 są w tabeli (tablica).
![Page 16: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/16.jpg)
Wiemy, że zdolności produkcyjne nie pozwalają wyprodukować więcej niż 3000 szt. wyrobów W1 oraz 4000 szt. wyrobów W2.
Analiza rynku ustaliła optymalne proporcje produkcji, które są 3:2.
Cena sprzedaży (w zł) jednostki wyrobu W1 wynosi 30 zł, a wyrobu W2 – 40 zł.
![Page 17: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/17.jpg)
Problem?
Ustalić optymalne rozmiary produkcji wyrobów gwarantujące
maksymalizację przychodu ze sprzedaży przy istniejących
ograniczeniach.
![Page 18: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/18.jpg)
Program pierwotny a program dualny
![Page 19: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/19.jpg)
Kolejny przykładPrzedsiębiorstwo produkuje cztery wyroby W1, W2, W3 i W4, dwa spośród wielu środków
używanych w procesie produkcji są limitowane.
Limity te wynoszą: • Środek I- 90 000 jedn.,• Środek II-120 000 jedn.Nakłady limitowanych środków na jednostkę są
w tabeli (tablica)
![Page 20: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/20.jpg)
Zysk osiągany na jednostce produkcji kształtuje się odpowiednio: 4, 6, 3, 12 zł.
PROBLEM?
Ustalić optymalne rozmiary produkcji poszczególnych wyrobów. Podać
łączny zysk zrealizowany przy optymalnym asortymencie
produkcji.
![Page 21: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/21.jpg)
Możemy napisać model matematyczny powyższego problemu.
Będzie to program pierwotny. Funkcja celu jest funkcją czterech
zmiennych, trudno więc będzie rozwiązać ten problem metodą graficzną.
Możemy zbudować program dualny względem tego programu pierwotnego.
![Page 22: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/22.jpg)
Program dualny jest odrębnym programem, z nowymi nie występującymi w programie pierwotnym zmiennymi –
oznaczymy je yi (i = 1,2,…,r).
Jednak pomiędzy programem pierwotnym i dualnym możemy znaleźć związki.
![Page 23: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/23.jpg)
Związki:• W PD jest tyle zmiennych, ile
warunków ograniczających w programie pierwotnym (i odwrotnie).
• Współczynniki funkcji celu PP są wyrazami wolnymi układu nierówności PD (i odwrotnie).
![Page 24: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/24.jpg)
• Macierz współczynników układu nierówności [aji] w PD jest transpozycją macierzy współczynników układu nierówności w PP [aij] (i odwrotnie).
• Programem dualnym względem programu dualnego jest program pierwotny.
![Page 25: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/25.jpg)
Zauważmy, że:• jeżeli w PP funkcja celu jest
maksymalizowana, to w PD jest minimalizowana (i odwrotnie),
• Konstruując PD, należy zmienić kierunki nierówności na przeciwne w porównaniu z PP.
(dotyczy to programów symetrycznych)
![Page 26: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/26.jpg)
Twierdzenia o dualności
• W rozwiązaniach optymalnych obu programów x*=(x*
1,…,x*n) i
y*=(y*1,…,y*
r) wartości funkcji celu są sobie równe, czyli F(x*
1,…,x*
n) =G(y*1,…,y*
r).
![Page 27: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/27.jpg)
Twierdzenie o równowadze• Jeżeli i-ty warunek PP jest (chociaż w jednym)
optymalnym rozwiązaniu tego programu spełniony z nierównością (ostro), to odpowiadająca mu i-ta zmienna - yi w (dowolnym) optymalnym rozwiązaniu PD przyjmuje wartość 0.
• Jeżeli j-y warunek PD jest (chociaż w jednym) optymalnym rozwiązaniu tego programu spełniony z nierównością (ostro), to odpowiadająca mu j-a zmienna – xj w (dowolnym) optymalnym rozwiązaniu PP przyjmuje wartość 0.
![Page 28: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/28.jpg)
• Jeżeli PD ma jedno rozwiązanie optymalne, to optymalna wartość i-tej zmiennej dualnej (y*
1) informuje jak wielki przyrost (spadek) wartości funkcji celu PP przypada na zwiększenie (zmniejszenie) wyrazu wolnego w i-tym ograniczeniu (bi) o jednostkę, przy niezmienionych pozostałych b.
![Page 29: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/29.jpg)
W końcu Teoria Gier
![Page 30: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/30.jpg)
•Gra macierzowa-gra dwuosobowa o sumie zerowej (i o skończonej liczbie strategii każdego gracza).
•Gra dwumacierzowa-niezerowa.
![Page 31: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/31.jpg)
Twierdzenie von Neumanna (twierdzenie minimaksowe)
W każdej grze macierzowej – z dowolną ilością strategii i
dowolnymi wypłatami – istnieją strategie optymalne obu graczy
(być może mieszane) oraz dokładnie jedna wartość.
![Page 32: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/32.jpg)
Strategia mieszana, co to?Przypuśćmy, że gracz 1 przed wybraniem
strategii przeprowadza losowanie, od wyniku którego uzależni swój wybór.
Takie postępowanie nazywa się randomizacją, a otrzymana „losowa” strategia – strategią mieszaną.
Gra czysta – taka, która nie jest mieszana
![Page 33: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/33.jpg)
Weźmy pod uwagę grę dwuosobową o sumie zerowej.
Niech to będzie gra najprostsza, w której każdy gracz ma tylko dwie strategie (tabelka).
Z tw. von Neumanna wiemy, że taka gra ma jakąś, na razie nieznaną, wartość (minimaks) w.
Jest ona z definicji największą taką liczbą v, że przy każdej strategii przeciwnika gracz 1 może sobie zapewnić wygraną w wysokości co najmniej v.
![Page 34: Programowanie liniowe w teorii gier](https://reader033.fdocuments.net/reader033/viewer/2022061518/56815796550346895dc52b1b/html5/thumbnails/34.jpg)
Dokończenie na tablicy.
Dziękuję