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