Laboratorium: sprawdzian MATLAB

Podobne dokumenty
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Spis treści. Koszalin 2006 [BADANIA OPERACYJNE PROGRAMOWANIE LINIOWE]

Laboratorium Metod Optymalizacji

d) Definiowanie macierzy z wykorzystaniem funkcji systemu Matlak

Optymalizacja systemów

ZASTOSOWANIE PROGRAMOWANIA LINIOWEGO W ZAGADNIENIACH WSPOMAGANIA PROCESU PODEJMOWANIA DECYZJI

Ekonometria - ćwiczenia 10

Metody systemowe i decyzyjne w informatyce

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

Metody systemowe i decyzyjne w informatyce

ZAGADNIENIE TRANSPORTOWE

Aproksymacja funkcji a regresja symboliczna

maj 2014 Politechnika Gdańska Wydział Oceanotechniki i Okrętownictwa St. II stop., sem. I

Definicja problemu programowania matematycznego

Rozdział 9 PROGRAMOWANIE DYNAMICZNE

Autostopem przez galaiktykę: Intuicyjne omówienie zagadnień. Tom I: Optymalizacja. Nie panikuj!

Excel - użycie dodatku Solver

Document: Exercise*02*-*manual /11/ :31---page1of8 INSTRUKCJA DO ĆWICZENIA NR 2

OBLICZENIA OPTYMALIZACYJNE W MATLABIE. WEiTI PW

Z-ZIP2-303z Zagadnienia optymalizacji Problems of optimization

ZAGADNIENIE TRANSPORTOWE

Optymalizacja konstrukcji

Programowanie celowe #1

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Politechnika Gdańska Wydział Oceanotechniki i Okrętownictwa. Marzec Podstawy teorii optymalizacji Oceanotechnika, II stop., sem.

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

Rozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi


ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

Ćwiczenia laboratoryjne - Dobór optymalnego asortymentu produkcji programowanie liniowe. Logistyka w Hutnictwie Ćw. L.

Wykład z modelowania matematycznego. Zagadnienie transportowe.

METODY WIELOKRYTERIALNE

Schemat programowania dynamicznego (ang. dynamic programming)

Elementy Modelowania Matematycznego

Wielokryteriowa optymalizacja liniowa

Metody systemowe i decyzyjne w informatyce

Optymalizacja systemów

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

Zad. 3: Układ równań liniowych

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

Zagadnienia optymalizacji Problems of optimization

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Optymalizacja. Przeszukiwanie lokalne

Dodatek Solver Teoria Dodatek Solver jest częścią zestawu poleceń czasami zwaną narzędziami analizy typu co-jśli (analiza typu co, jeśli?

INSTRUKCJA DO ĆWICZENIA NR 1

Metody Ilościowe w Socjologii

Zadania z rysowania i dopasowania funkcji

Konspekt. Piotr Chołda 2 marca Podstawowe informacje nt. przedmiotu. Prowadzący przedmiot (wykład, egzamin, projekt, laboratorium):

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Ćwiczenia laboratoryjne - 7. Zagadnienie transportowoprodukcyjne. programowanie liniowe

Funkcja pierwotna, całka oznaczona na podstawie funkcji pierwotnej

Programowanie liniowe

Elementy modelowania matematycznego

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Algorytm grupowania danych typu kwantyzacji wektorów

8. Neuron z ciągłą funkcją aktywacji.

Elementy Modelowania Matematycznego Wykład 7 Programowanie nieliniowe i całkowitoliczbowe

Programowanie liniowe

Uczenie sieci typu MLP

Wielokryteriowa optymalizacja liniowa cz.2

Egzamin / zaliczenie na ocenę*

Pliki. Operacje na plikach w Pascalu

Optymalizacja systemów

Metody systemowe i decyzyjne w informatyce

Ekonometria - ćwiczenia 11

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: Badania operacyjne. Temat ćwiczenia:

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Rozdział 1 PROGRAMOWANIE LINIOWE

Klasyczne zagadnienie przydziału

Program na zaliczenie: Odejmowanie widm

Układ równań liniowych

PRZEWODNIK PO PRZEDMIOCIE

Klasy abstrakcyjne i interfejsy

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Środowisko R wprowadzenie. Wykład R1; Pakiety statystyczne

Iwona Konarzewska Programowanie celowe - wprowadzenie. Katedra Badań Operacyjnych UŁ

Co to jest grupowanie

OPTYMALIZACJA W LOGISTYCE

Wyszukiwanie binarne

PROGRAMOWANIE NIELINIOWE

doc. dr Beata Pułska-Turyna Zarządzanie B506 mail: mgr Piotr J. Gadecki Zakład Badań Operacyjnych Zarządzania B 505.

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Metody systemowe i decyzyjne w informatyce

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

Dodawanie i modyfikacja atrybutów zbioru

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Badania Operacyjne Ćwiczenia nr 5 (Materiały)

Optymalizacja ciągła

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Ćwiczenie 4. Matlab - funkcje, wielomiany, obliczenia symboliczne

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Równania nieliniowe. LABORKA Piotr Ciskowski

Programowanie liniowe

Elementy Modelowania Matematycznego

III TUTORIAL Z METOD OBLICZENIOWYCH

Jacek Skorupski pok. 251 tel konsultacje: poniedziałek , sobota zjazdowa

Rozpoznawanie obrazu. Teraz opiszemy jak działa robot.

Transkrypt:

Metody optymalizacji Laboratorium: sprawdzian MATLAB 13 czerwca 2016 r. godz. 16.15-17.45 PROSZĘ UWAŻNIE PRZECZYTAĆ PONIŻSZE ZASADY! Proszę się podpisać na tej stronie. Czas pracy: studentowi przysługuje nie więcej niż 90 minut. Można używać dowolnych materiałów pomocniczych przyniesionych ze sobą, zaglądać do Internetu itd. Jednakże: nie wolno zachowywać się głośno, porozumiewać się z innymi piszącymi, nie wolno używać telefonu komórkowego czy tp. Porozumiewać można się tylko z prowadzącymi. Przed przystąpieniem do wykonania pracy warto skonsultować z prowadzącymi, czy dobrze zrozumiało się oczekiwania odnośnie do wykonywanego zadania. Jeśli nie wie się, jak zrealizować zadanie w 100%, warto mimo wszystko próbować zrealizować przynajmniej wybrane elementy zadania Uzyskane wyniki należy przed wyjściem przesłać e-mailem (w postaci spakowanego katalogu o nazwie według wzorca: imie-nazwisko.zip) do prowadzących na adresy: piotr.cholda@agh.edu.pl, rzym@kt.agh.edu.pl oraz kamisinski@kt.agh.edu.pl. E-maila należy zatytułować według następującego wzorca: [MetOpt-laboratorium] <Imię Nazwisko>: sprawdzian nr 2. Przed opuszczeniem sali należy prowadzącemu oddać niniejszą kartkę. Na odwrocie kartki (ew. na dołączonych kartkach) należy umieścić sformułowanie matematyczne modelu optymalizacyjnego. Imię i nazwisko:............................................ E-mail:............................................ Zadanie (17 pkt.) Należy przedstawić sformułowanie zadania programowania matematycznego, które posłuży do rozwiązania problemu optymalizacyjnego opisanego za pomocą poniższych warunków. Sformułowanie ma mieć charakter możliwie ogólny, tj. należy je przygotować w taki sposób, żeby łatwo można było zmienić dane. Następnie sformułowanie to należy zaimplementować z użyciem funkcji oraz skryptu/skryptów programu MATLAB (implementować można równocześnie z przygotowywaniem sformułowania). Poza znalezieniem rozwiązania optymalnego skrypt powinien również w eleganckiej formie podać rozwiązanie. Projektujemy sieć dostępową, w której odbiorcy końcowi są stacjonarni. Interesuje nas umiejscowienie koncentratora, który łączy się z centralą z użyciem światłowodu (koszt zaciągnięcia kilometra to 15 jednostek pieniężnych), a z odbiorcami końcowymi łączy się z użyciem kabli miedzianych (koszt kilometra kabla miedzianego to 50 jednostek pieniężnych). Znamy lokalizacje odbiorców końcowych oraz centrali. Ze względów technicznych zakładamy, że odległość koncentratora od pojedynczego odbiorcy nie może przekraczać 350 m. W jaki sposób najtaniej umiejscowić koncentrator? Współrzędne odbiorców końcowych: 1. odbiorca nr 1: (0,7386; 0,7690), 2. odbiorca nr 2: (0,5860; 0,5814), 3. odbiorca nr 3: (0,2467; 0,9283), 4. odbiorca nr 4: (0,6664; 0,5801), 5. odbiorca nr 5: (0,0835; 0,0170), 6. odbiorca nr 6: (0,6260; 0,1209), 7. odbiorca nr 7: (0,6609; 0,8627), 8. odbiorca nr 8: (0,7298; 0,4843), 9. odbiorca nr 9: (0,8908; 0,8449), 10. odbiorca nr 10: (0,9823; 0,2094). Współrzędne podano w km względem centrali traktowanej jako położona w punkcie (0, 0). - Strona 1

Metody optymalizacji Laboratorium: sprawdzian MATLAB 13 czerwca 2016 r. godz. 16.15-17.45 Model matematyczny zagadnienia: Strona 2

Sposób rozwiązywania przykładowego zadania ze sprawdzianu z użycia oprogramowania MATLAB Kroki postępowania 1. Podpisanie się na kartce. 2. Analiza zadania polegająca na wyodrębnieniu treści ważnych z punktu widzenia modelowania optymalizacyjnego. 3. Zapisanie modelu matematycznego i naniesienie go na kartkę z zadaniem. 4. Utworzenie skryptu odpowiadającego za zapisanie danych, wywołanie funkcji służącej do optymalizacji oraz za prezentację wyników. 5. Utworzenie plików z funkcją celu i funkcjami ograniczeń. 6. Wysłanie e-maila z rozwiązaniem do prowadzących oraz oddanie kartki. Analiza zadania Najpierw należy zwrócić uwagę na istotne informacje, które posłużą do wypracowania modelu matematycznego zadania optymalizacji tj. na elementy, które należy wyabstrahować z historyjki : Projektujemy sieć dostępową, w której odbiorcy końcowi są stacjonarni. Interesuje nas umiejscowienie koncentratora, który łączy się z centralą z użyciem światłowodu (koszt zaciągnięcia kilometra to 50 jednostek pieniężnych), a z odbiorcami końcowymi łączy się z użyciem kabli miedzianych (koszt kilometra kabla miedzianego to 5 jednostek pieniężnych). Znamy lokalizacje odbiorców końcowych oraz centrali. Ze względów technicznych zakładamy, że odległość koncentratora od pojedynczego odbiorcy nie może przekraczać 350 m. W jaki sposób najtaniej umiejscowić koncentrator? Oczywiście interesują nas konkretne wartości liczbowe związane z lokalizacją odbiorców (podane współrzędne) oraz informacja, że: Współrzędne podano w km względem centrali traktowanej jako położona w punkcie (0, 0). Interpretacja wyróżnionych fragmentów: stacjonarni... umiejscowienie... Znamy lokalizacje: można domyśleć się, że chodzi o pewien problem lokalizacji nowego punktu, wiemy też że znane lokalizacje się nie zmieniają; łączy się z centralą... koszt... kilometra... 50 jednostek: należy uwzględnić współrzędne punktu (nazywanego centralą, ale to jest tylko część historyjki ), ponadto odległość będzie przemnażana przez koszt 50 km 1 ; z odbiorcami końcowymi łączy się... koszt kilometra... 5 jednostek: należy uwzględnić drugi typ punktów (nazywanych odbiorcami końcowymi też tylko element historyjki ), odległość od których ma być przemnażana przez koszt 5 km 1 ; zakładamy, że odległość koncentratora od pojedynczego klienta nie może przekraczać 350 m: jeśli przyjęliśmy km jako podstawową jednostkę (por. wyżej), to musimy wprowadzić ograniczenie górne na pojedynczą odległość nowego punktu od każdego punktu drugiego typu ( odbiorców ) o wartości 0,35; współrzędne podano w km względem... w punkcie (0, 0): podstawowa jednostka dla współrzędnych to wcześniej założony km, ponadto znamy również położenie punktu zwanego centralą. Zapis matematyczny problemu Wiadomo, że należy użyć programowania matematycznego. W tym przypadku posłużymy się programowaniem nieliniowym. Państwo znają sformułowanie problemu najlepszej lokalizacji (problem Fermata-Webera), który służy do znalezienia punktu położonego średnio najbliżej ze względu na zadaną grupę punktów. Odległość jest mierzona z użyciem metryki euklidesowej. Zapis problemu zależy od następujących stałych:

lokalizacje odbiorców indeksujemy jako k = 1, 2,..., K; współrzędne lokalizacji odbiorcy k oznaczymy jako (x k, y k ); koszt związany z odległościami od odbiorców to c k ; koszt związany z odległością od centrali to c e ; ograniczenie górne na odległość od pojedynczego odbiorcy będziemy reprezentować jako d. Jako zmienne oznaczające współrzędne poszukiwanego punktu lokalizacji koncentratora przyjmiemy (x, y). Podstawowy problem Fermata-Webera zapisuje się matematycznie w postaci: min k=1,2,...,k (x xk ) 2 + (y y k ) 2 s.t.: x, y R Podane wyżej sformułowanie należy poszerzyć o następujące elementy: modyfikacja funkcji celu uwzględniająca odległość od punktu zwanego centralą o współrzędnych (0, 0) oraz o koszty odległości: min c e x2 + y 2 + c k k=1,2,...,k (x xk ) 2 + (y y k ) 2 ; ograniczenia górne na odległości od punktów zwanych odbiorcami : (x xk ) 2 + (y y k ) 2 d dla k = 1, 2,..., K. W związku z tym całość sformułowania (należy je zapisać na drugiej stronie kartki z zadaniem) wygląda następująco: min c e x2 + y 2 + c k k=1,2,...,k (x xk ) 2 + (y y k ) { 2 (x xk ) s.t.: 2 + (y y k ) 2 d k = 1, 2,..., K x, y R Implementacja z użyciem MATLAB Najpierw tworzymy plik ze skryptem, w którym podamy dane. Następnie, w związku z tym, że z danych będą korzystały funkcje zdefiniowane na zewnątrz skryptu, dane zostaną zapisane na dysku. Skrypt będzie odpowiedzialny za wywołanie funkcję służącej do optymalizacji oraz za graficzną prezentację wyniku. Listingi poszczególnych część rozwiązania uzupełniono o objaśniania w komentarzach (bez użycia polskich znaków). Plik zawierający skrypt: 1 close all 2 clear all 3 clc 4 5 number_ points = 10; 6 % mamy 10 odbiorcow, K =10 7 8 cost_ fiber = 50; 9 % koszt zaciagniecia kilometra swiatlowodu, c_e 10 11 cost_ copper = 5; 12 % koszt kilometra kabla miedzianego, c_k 13 14 max_ distance_ copper = 0. 35; 15 % maksymalna odleglosc koncentratora od odbiorcy, d 16 17 xcoord = [ 0. 7386 0. 5860 0. 2467 0. 6664 0. 0835 0. 6260 0. 6609 0.7298 0.8908 0.9823]; 18 % wspolrzedne odbiorcow, x_k 19 20 ycoord = [ 0. 7690 0. 5814 0. 9283 0. 5801 0. 0170 0. 1209 0. 8627 0.4843 0.8449 0.2094]; 21 % wspolrzedne odbiorcow, y_k 22 23 save ( dane, xcoord, ycoord, cost_fiber, cost_copper, max_distance_copper ); 24 25 scatter ( xcoord, ycoord ) 26 % rysujemy lokalizacje odbiorcow 27 2

28 hold on 29 scatter (0,0, h, filled, blue ) 30 % rysujemy lokalizacje centrali 31 32 fun = @ obj_ fermat_ weber ; 33 % funkcja celu zdefiniowana w odrebnym pliku 34 35 x0 = [0.5 0.5]; 36 % w zwiazku z tym, ze wszystkie wspolrzedne mieszcza sie w przedziale 37 % [0,1], warto zaczac szukac od,, srodka, bo przy duzej liczbie punktow i 38 % braku wag zwiazanych z odleglosciami wiadomo, ze to byloby rozwiazanie 39 % optymalne 40 41 A = []; 42 b = []; 43 Aeq = []; 44 beq = []; 45 % nie uzywamy w ogole ograniczen liniowych 46 47 lb = [ min ( xcoord ) min ( ycoord )]; 48 % z natury problemu wynika, ze najmniejsza wartosc zmiennej x nie bedzie 49 % nizsza od minimum po wszystkich x_k, analogicznie dla y 50 51 ub = [ max ( xcoord ) max ( ycoord )]; 52 % z natury problemu wynika, ze najwieksza wartosc zmiennej x nie bedzie 53 % nizsza od maksimum po wszystkich x_k, analogicznie dla y 54 55 nonlcon = @ constr_ fermat_ weber ; 56 % funkcje ograniczen zdefiniowane w odrebnym pliku 57 58 options. Algorithm = interior - point ; 59 % w przypadku uzywania ograniczen warto zmienic domyslny algorytm 60 % rozwiazywania 61 62 options. MaxFunEvals = 5000; 63 % maksymalna dopuszczalna liczba iteracji algorytmu minimalizacji 64 65 [x,fval, exitflag, output, lambda,grad, hessian ] = fmincon (fun,x0,a,b,aeq,beq,lb,ub, nonlcon, options ); 66 % warto pamietac, ze funkcja fmincon sluzy do minimalizacji, czyli gdybysmy 67 % potrzebowali maksymalizowac funkcje celu, nalezy ja przemnozyc przez ( -1) 68 69 optimal_ variables = x 70 % optymalne wartosci funkcji celu, uwaga : x to jest caly wektor wartosci 71 % zmiennych, a nie tylko " x" z naszego opisu matematycznego 72 % ( w ktorym " x" oznacza tylko pierwsza wspolrzedna lokalizacji koncentratora ) 73 74 optimal_ goal = fval 75 % optymalna wartosc funkcji celu, gdyby problem mial charakter 76 % maksymalizacji, nalezaloby ja przemnozyc przez ( -1) 77 78 scatter (x (1),x (2), d, filled, red ) 79 % rysujemy lokalizacje koncentratora Plik zawierający funkcję celu: 1 function [ total_weighted_euclidean_distance ] = obj_fermat_weber ( position ) 2 % wektor position to z punktu widzenia naszego opisu ( x, y) 3 4 load ( dane, xcoord ); 5 load ( dane, ycoord ); 6 load ( dane, cost_fiber ); 3

7 load ( dane, cost_copper ); 8 9 weig_center = cost_fiber * sqrt ( position (1) ^2+ position (2) ^2) ; 10 % wazona wartosc odleglosci centrali od koncentratora 11 12 distx = ( position (1) - xcoord ).^2; 13 % wektor wartosci ( x- x_k ) ^2 14 15 disty = ( position (2) - ycoord ).^2; 16 % wektor wartosci ( y- y_k ) ^2 17 18 distxy = sqrt ( distx + disty ); 19 % wektor odleglosci koncentratora od poszczegolnych odbiorcow 20 21 weig_distxy = cost_copper * sum ( distxy ); 22 % wazona wartosc odleglosci odbiorcow od koncentratora 23 24 total_weighted_euclidean_distance = weig_center + weig_distxy ; 25 % wartosc funkcji celu : bedzie minimalizowana 26 27 end Plik zawierający funkcje opisujące lewą stronę ograniczeń (używamy tylko ograniczeń nierównościowych): 1 function [ c, ceq ] = constr_ fermat_ weber ( position ) 2 3 load ( dane, xcoord ); 4 load ( dane, ycoord ); 5 load ( dane, max_distance_copper ); 6 7 c = []; 8 9 for i =1: length ( xcoord ) 10 % dodajemy po ograniczeniu na kazdego odbiorce 11 distx = ( position (1) - xcoord (i)) ^2; 12 disty = ( position (2) - ycoord (i)) ^2; 13 distxy = sqrt ( distx + disty ); 14 lhs_ constraint = distxy - max_ distance_ copper ; 15 c = [ c lhs_ constraint ]; 16 end 17 18 ceq = []; 19 % brak ograniczen rownosciowych 20 21 end Oddawanie rozwiązania Na koniec należy: wysłać paczkę z projektem do prowadzących (projekt ma być spakowany, a e-mail powinien mieć nadany odpowiedni tytuł); oddać kartę z zadaniem. 4