Metody optymalizacji i programowanie liniowe dr in˙z. Magdalena

Transkrypt

Metody optymalizacji i programowanie liniowe dr in˙z. Magdalena
Metody optymalizacji i programowanie liniowe
dr inż. Magdalena Topczewska
semestr zimowy 2013-2014
Pracownia specjalistyczna nr 5-8
Programowanie liniowe
Zadanie 1.
Zaimplementować dwufazowa, metode, sympleksowa, zgodnie z opisem podanym
na wykladzie.
Program powinien wypisać informacje, czy istnieje jednoznaczne rozwiazanie,
,
nieskończenie wiele rozwiazań
czy brak rozwiazań.
,
,
Dane wejściowe (wektor wspólczynników funkcji celu, macierz wspólczynników
ograniczeń, wektor prawych stron ograniczeń, itd.) maja, być podawane w pliku
tekstowym o ustalonej strukturze.
Dodatkowe punkty można uzyskać za wyświetlanie tabeli sympleksowej.
Zadanie 2.
Dla przykladów podanych poniżej przetestować wlasna, implementacje, oraz porównać
wyniki uzyskane za pomoca, wbudowanej funkcji Matlaba linprog.
options = optimset(0 LargeScale0 ,0 of f 0 ,0 Simplex0 ,0 on0 ,0 Display 0 ,0 iter0 );
[x, f val, exitf lag] = linprog(c, A, b, [], [], lb, [], [], options)
Zbadaj wartość exitflag.
Zadanie a.
Podać rozwiazania
zadania pierwotnego i dualnego dla zadania:
,
3x1 + x2 + 7x3 = min!
przy warunkach

x1 + 2x3 > 5



x1 + x2 + 3x3 6 6
6x1 + 2x2 + 15x3 > 40



x1 > 0, x2 > 0, x3 > 0
Zadanie b.
Podać rozwiazania
zadania pierwotnego i dualnego dla zadania:
,
x1 + 2x2 + 3x3 + 4x4 + 5 = max!
1
przy warunkach

4x1 + 3x2 + 2x3 + x4 6 10



x1 − x3 + 2x4 = 2
x1 + x2 + x3 + x4 > 1



x1 > 0, x3 > 0, x4 > 0
Zadanie c.
Podać rozwiazania
zadania pierwotnego i dualnego dla zadania:
,
3x1 − 5x2 + x3 − 2x4 = max!
przy warunkach

x1 − 2x2 − x3 + 2x4 6 0



2x1 − 3x2 − x3 + x4 6 0
x3 6 1



x1 , x2 , x3 , x4 > 0
Zadanie d.
Podać rozwiazania
zadania pierwotnego i dualnego dla zadania:
,
6x1 + 5x2 = max!
przy warunkach

 x1 + x2 > 8
3x1 + 2x2 6 6

x1 , x2 > 0
Zadanie e.
Jednym z testów na dokladność i odporność algorytmów programowania liniowego jest nastepuj
ace
zagadnienie:
,
,
cT x = min!
przy warunkach
Ax = b,
x > 0,
gdzie
aij =
1
i+j−1 ,
n
P
ci = bi =
j=1
i, j = 1, 2, . . . , n
1
i+j−1 ,
i = 1, 2, . . . , n
Rozwiazaniem
tego zagadnienia jest xi = 1, i = 1, . . . , n. Macierz A wystepuj
aca
,
,
,
w tym teście, zwana macierza, Hilberta, powoduje zle uwarunkowanie zagadnienia nawet dla niezbyt dużych wartości n.
Napisać skrypt w Matlabie o nazwie ”SysDeoKow–NazwiskaAutorow.m”, by
można bylo dla zadanych wartości n wygenerować parametry modelu i ograniczeń oraz rozwiazać
zadanie wykorzystujac
,
, wbudowana, funkcje, linprog.
Przetestować do jakich wartości n uzyskuje sie, jeszcze rozwiazanie.
W ta,
beli z wynikami, jako dodatkowa, kolumne, dolaczyć
wartość bledu
wzgl
ednego
,
,
,
2
kx−x̃k2
kxk2
dla danego n, gdzie x̃ jest rozwiazaniem
obliczonym a x dokladnym.
,
Porównać wyniki z uzyskanymi za pomoca, wlasnej implementacji Sympleksa.
Zadanie f.
Wykonać analogicznie jak zadanie e.
cT x = max!
przy ograniczeniach
Ax 6 b
x>0
gdzie
n – wymiar wektora rozwiazań
,
cT = [10n−1 , 10n−2 , . . . , 101 , 1]

1
 2 × 101

2

A =  2 × 10

..

.
b = [1, 102 , 104 , . . . , 102(n−1) ]

0
0
...
0
1
0
...
0 

2 × 102
1
...
0 

.. 
..
..
..
.
.
. 
.
n−2
1
2 × 10
. . . 2 × 10 1
2 × 10n−1
Zadanie g.
Ola postanowila odżywiać sie, najtaniej jak to możliwe, dostarczajac
, jednak swojemu organizmowi odpowiednich ilości bialka, witamin A i C, wapnia oraz energii. Postanowila odżywiać sie, mlekiem, serem, chlebem, cielecin
a, i marchewka.
,
,
Zawartości odpowiednich skladników w tych produktach (na 100 g produktu)
podane sa, w tabeli
bialko
wit. A
wit. C
wapń
energia
(g)
(jedn.)
(mg)
(mg)
(kcal)
mleko
3
140
1
120
53
ser
38
120
0
1450
200
chleb
0
0
0
90
240
cielecina
,
20
0
0
8
82
marchew
1
5760
8
19
31
Zapotrzebowania dobowe Oli na poszczególne skladniki podane sa, w poniższej
tabeli
bialko
wit. A
wit. C
wapń
energia
3
70
5000
75
70
2700
Ceny produktów
mleko
ser
chleb
cielecina
,
marchew
1.5 zl/l
5 zl/kg
1.5 zl/kg
12 zl/kg
0.8 zl/kg
Sformulować zadanie programowania liniowego, po którego rozwiazaniu
Ola
,
bedzie
wiedzia
la
jak
za
możliwie
najniższ
a
cen
e
zaspokoić
potrzeby
swojego
,
,
,
organizmu. Waga dziennego pożywienia nie może przekroczyć 2 kg. Nastepnie
,
przeksztalcić podany problem do postaci dualnej i podać rozwiazanie.
,
Zadanie h.
Wytwórca mebli chce określić ile stolów, krzesel, biurek lub szaf bibliotecznych
winien produkować, by optymalnie wykorzystać dostepne
środki. Do produkcji
,
wykorzystuje sie, dwa typy desek. Wytwórca posiada 1500m pierwszego typu desek i 1000m drugiego. Dysponuje kapitalem 860 godzin roboczych na wykonanie
calej pracy. Przewidywane zapotrzebowanie plus potwierdzone zamówienia wymagaja, wykonania co najmniej 40 stolów, 130 krzesel, 30 biurek i nie wiecej
niż
,
10 szaf bibliotecznych. Każdy stól, krzeslo, biurko i szafa biblioteczna wymaga
odpowiednio 5, 1, 9, 12m desek pierwszego typu i 2, 3, 4, 1m desek drugiego
typu. Na wykonanie stolu potrzebne sa, 3 godziny pracy, krzesla 2 godziny,
biurka 5 godzin i szafy bibliotecznej 10 godzin. Wytwórca osiaga
zysk przy
,
sprzedaży jednego stolu, krzesla, biurka, szafy bibliotecznej odpowiednio 12 dolarów, 5 dolarów, 15 dolarów i 10 dolarów. Sformulować zagadnienie programowania liniowego maksymalizacji zysku. Nastepnie
sformulować problem dualny
,
i również go rozwiazać.
Podać
interpretacj
e
ekonomiczn
a, sformulowanego pro,
,
blemu dualnego.
Uwagi
• Sprawozdanie przygotować w formie raportu z wykonania zadań.
• Dolaczyć
krótki opis wlasnej implementacji (format pliku wejściowego,
,
itp.).
• Dla każdego zadania należy podać rozwiazania
uzyskane za pomoca, wlasnej
,
implementacji oraz Matlaba (w przypadku sformulowań pierwotnych i dualnych bed
, a, 4 wyniki).
• Opisać rozwiazania,
dolaczyć
wydruki końcowe z Matlaba czy zrzuty ekranu
,
,
z dzialania wlasnego programu.
• Do sprawozdania (doc, docx lub pdf) dolaczyć
źródla z wlasna, implemen,
tacja.
Spakowan
a
paczk
e
przes
lać
do
systemu
CEZ.
,
,
,
4

Podobne dokumenty