Obliczenia w Matlabie Optymalizacja

Slides:



Advertisements
Podobne prezentacje
OBLICZENIA NUMERYCZNE
Advertisements

C++ wykład 13,14,15 (16/23/ ) STL.
GOOL – GLOBAL OPTIMIZATION OBJECT-ORIENTED LIBRARY
IV Tutorial z Metod Obliczeniowych
Metody poszukiwania minimów lokalnych funkcji
Przykłady zadań programowania liniowego
Badania operacyjne. Wykład 2
Programowanie liniowe całkowitoliczbowe
ZŁOŻONOŚĆ OBLICZENIOWA
Wprowadzenie do Mathcada
Metody Sztucznej Inteligencji w Sterowaniu 2009/2010Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz,
dr inż. Iwona Staniec p. 334 Lodex
Sieci neuronowe jednokierunkowe wielowarstwowe
Dane do obliczeń.
ETO w Inżynierii Chemicznej MathCAD wykład 4.. Analiza danych Aproksymacja danych.
Algorytmy i struktury danych
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
ALGORYTMY OPTYMALIZACJI
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
Zakładamy a priori istnienie rozwiązania α układu równań.
METODY NUMERYCZNE I OPTYMALIZACJA
Technika optymalizacji
Modelowanie i identyfikacja 2010/2011Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz, Katedra.
Dana jest sieć dystrybucji wody w postaci: Ø      m- węzłów,
EXCEL Wykład 4.
Podstawy informatyki 2013/2014
MOiPP Wykład 3 Matlab Przykłady prostych metod obliczeniowych.
MS Excel - wspomaganie decyzji
IV EKSPLORACJA DANYCH Zadania eksploracji danych: klasyfikacja
Ekonometryczne modele nieliniowe
EXCEL Wstęp do lab. 4. Szukaj wyniku Prosta procedura iteracyjnego znajdowania niewiadomej spełniającej warunek będący jej funkcją Metoda: –Wstążka Dane:
WYKŁAD 06 Programowanie dynamiczne Grażyna Mirkowska.
Analiza numeryczna i symulacja systemów
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Pakiety numeryczne Wprowadzenie Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Pakiety numeryczne Optymalizacja
Podstawy informatyki Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Pakiety numeryczne Graphical User Interface Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Pakiety numeryczne Tablice: tworzenie, indeksowanie, wymiary Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Pakiety numeryczne Interpolacja i aproksymacja
Pakiety numeryczne Wykresy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Pakiety numeryczne Wielomiany Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Podstawy informatyki Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki Funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Pakiety numeryczne Skrypty, funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Podstawy informatyki Struktury Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki Szablony funkcji Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty.
Podstawy informatyki Operatory rzutowania Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały.
Podstawy informatyki Mechanizm obsługi sytuacji wyjątkowych Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu.
Pakiety numeryczne Operatory, instrukcje sterujące, operacje bitowe Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
FUNKCJA KWADRATOWA o Definicja o Posta ć funkcji kwadratowej Posta ć ogólna Posta ć kanoniczna Posta ć iloczynowa o Wykres funkcji kwadratowej o Własno.
Pakiety numeryczne Równania różniczkowe Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Pakiety numeryczne Optymalizacja Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Fundamentals of Data Analysis Lecture 12 Approximation, interpolation and extrapolation.
Funkcja kwadratowa Jeżeli a ≠0, to funkcję f określoną wzorem a, b, c - współczynniki liczbowe funkcji kwadratowej nazywamy funkcją kwadratową określoną.
Metody optymalizacji Wykład /2016
Metody optymalizacji – metody badań operacyjnych
Wykład 4 (cz. 1) Pierwsze zastosowania modelowania molekularnego: lokalna i globalna minimalizacja energii potencjalnej.
Wytrzymałość materiałów
Obliczenia w Matlabie Tablice
Obliczenia inżynierskie w Matlabie
Obliczenia w Matlabie Interpolacja i aproksymacja
Hiperpowierzchnia energii potencjalnej cząsteczki
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Programowanie sieciowe Laboratorium 3
Język C++ Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Programowanie sieciowe Laboratorium 3
Obliczenia w Matlabie Analiza statystyczna
Obliczenia w Matlabie Obliczenia symboliczne
Zapis prezentacji:

Obliczenia w Matlabie Optymalizacja Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania

Optymalizacja „Dążenie człowieka do perfekcji znajduje swój wyraz w optymalizacji. Zajmuje się ona tym, jak opisać i osiągnąć Najlepsze, gdy wiemy już jak mierzyć i zmieniać Dobre i Złe […].” Beightler C. S., Phillips D. T., Wilde D. J., Foundations of optimization, Englewood Cliffs, N.J., Prentice-Hall, 1979.

Zadanie optymalizacji

Zbiór rozwiązań dopuszczalnych

Funkcja celu

Minimum globalne

Metody optymalizacji Programowanie liniowe, Metody bezgradientowe (bezpośredniego szukania), Metody gradientowe, Metody niedeterministyczne.

[x_opt y_opt] = bintprog(f,A,b,Aeq,beq) Problem binarny Wektor x może przyjmować jedynie wartości 0 lub 1. Szukamy maksimum funkcji celu: przy ograniczeniach: [x_opt y_opt] = bintprog(f,A,b,Aeq,beq) Funkcja bintprog szuka minimum funkcji celu przy ograniczeniach nierównościowych (zmienne A i b) oraz równościowych (zmienne Aeq i beq). Wartości zwracane to wektor zmiennych decyzyjnych x_opt oraz wartość funkcji celu y_opt.

Dyskretny problem plecakowy Przy podanym zbiorze elementów o podanej wadze i wartości, należy wybrać taki podzbiór by suma wartości była możliwie jak największa, a suma wag była nie większa od danej pojemności plecaka. Lp. Wartości Waga 1 75 7 2 270 8 3 250 6 4 35 5 10 100 9

Dyskretny problem plecakowy Znak minus jest konieczny ponieważ szukamy maksymalnej wartości plecaka a funkcja bintprog szuka wartości minimalnej f=-[75 270 250 35 10 100]; A=[7 8 6 4 3 9]; b=10; [x_opt y_opt]=bintprog(f,A,b) Optimization terminated. x_opt = 1 y_opt = -285 Lp Wartości Waga 1 75 7 2 270 8 3 250 6 4 35 5 10 100 9

Dyskretny problem plecakowy Dodatkowe ograniczenie: zabierając przedmiot nr 3 musimy zabrać przedmiot nr 5 i odwrotnie. f=-[75 270 250 35 10 100]; A=[7 8 6 4 3 9]; b=10; Aeq=[0 0 1 0 -1 0]; beq=0; [x_opt y_opt]=bintprog(f,A,b,Aeq,beq) Optimization terminated. x_opt = 0 1 y_opt = -270 Lp Wartości Waga 1 75 7 2 270 8 3 250 6 4 35 5 10 100 9

Szukamy maksimum funkcji celu: przy ograniczeniach: Problem linowy Szukamy maksimum funkcji celu: przy ograniczeniach: [x_opt y_opt] = linprog(f,A,b,Aeq,beq,lb,ub) Funkcja linprog szuka minimum funkcji celu przy ograniczeniach nierównościowych (zmienne A i b), równościowych (zmienne Aeq i beq) oraz kostkowych (zmienne lb i ub). Wartości zwracane to wektor zmiennych decyzyjnych x_opt oraz wartość funkcji celu y_opt.

Ciągły problem plecakowy f=-[75 270 250 35 10 100]; A=[7 8 6 4 3 9]; b=10; [x_opt y_opt]=linprog(f,A,b) Exiting: One or more of the residuals, duality gap, or total relative error has grown 100000 times greater than its minimum value so far: the dual appears to be infeasible (and the primal unbounded). (The primal residual < TolFun=1.00e-008.) x_opt = 1.0e+014 * -0.0000 0.0000 1.1715 -0.7810 y_opt = -2.1478e+016

Ciągły problem plecakowy f=-[75 270 250 35 10 100]; A=[7 8 6 4 3 9]; b=10; lb=[0 0 0 0 0 0]; [x_opt y_opt]=linprog(f,A,b,[],[],lb) Optimization terminated. x_opt = 0.0000 1.6667 y_opt = -416.6667

Poszukiwanie minimum funkcji jednej zmiennej z ograniczeniami f=@(x)(x-2).^2; lb=-2; ub=5; [x_opt y_opt]=fminbnd(f,lb,ub) x_opt = 2 y_opt = 0 Funkcja fminbnd wykorzystuje metodę złotego podziału oraz aproksymacji kwadratowej Uchwyt do funkcji celu Dolne ograniczenie Górne ograniczenie

Poszukiwanie minimum funkcji wielu zmiennych bez ograniczeń function y=fun_celu(x) y=(x(1)-5).^2+(x(2)-5).^2; [x_opt y_opt]=fminsearch(@fun_celu,[2;2]) x_opt = 5.0000 y_opt = 1.4622e-009 Funkcja celu jest zdefiniowana w osobnym pliku o nazwie fun_celu Uchwyt do funkcji celu Punkt startowy Funkcja fminsearch wykorzystuje metodę sympleks Neldera-Meada

Poszukiwanie minimum funkcji wielu zmiennych bez ograniczeń f=@(x)x(1).^2+x(2).^2; [x_opt y_opt]=fminunc(f,[2;2]) Warning: Gradient must be provided for trust-region algorithm; using line-search algorithm instead. > In fminunc at 365 Local minimum found. Optimization completed because the size of the gradient is less than the default value of the function tolerance. <stopping criteria details> x_opt = 0 y_opt = Funkcja fminunc wykorzystuje metodę gradientową

Poszukiwanie minimum funkcji wielu zmiennych bez ograniczeń f=@(x)x(1).^2+x(2).^2; g=@(x)[2*x(1); 2*x(2)]; opcje=optimset('GradObj','on'); [x_opt y_opt]=fminunc({f;g},[2;2],opcje) Local minimum found. Optimization completed because the size of the gradient is less than the default value of the function tolerance. <stopping criteria details> x_opt = 0 y_opt =

Poszukiwanie minimum funkcji wielu zmiennych bez ograniczeń function [y dy]=fun_celu(x) syms X Y f=X.^2+Y.^2; g=gradient(f); X=x(1); Y=x(2); y=eval(f); dy=eval(g); Utworzenie dwóch zmiennych symbolicznych opcje=optimset('GradObj','on'); [x_opt y_opt]=fminunc(@fun_celu,[2;2],opcje) Local minimum found. Optimization completed because the size of the gradient is less than the default value of the function tolerance. <stopping criteria details> x_opt = y_opt = Zdefiniowanie funkcji celu (również zmienna symboliczna) Zdefiniowanie gradientu funkcji f Zmiennym X oraz Y przypisujemy konkretne wartości liczbowe Obliczamy wartość funkcji i jej gradientu w punkcie o współrzędnych X oraz Y

Poszukiwanie minimum funkcji wielu zmiennych z ograniczeniami [x_opt y_opt]=fmincon(@fun_celu,x0,A,b,Aeq,beq,lb,ub,@ograniczenia) Uchwyt do funkcji celu Ograniczenia nierównościowe Ograniczenia kostkowe Punkt startowy Ograniczenia równościowe Ograniczenia nieliniowe function [c ceq]=ograniczenia(x) c=…; ceq=…;

Poszukiwanie minimum funkcji wielu zmiennych z ograniczeniami Funkcja celu function y=fun_celu(x) y=(x(1)-5).^2+(x(2)-5).^2; A=[1,1]; b=5; [x_opt y_opt]=fmincon(@fun_celu,[10;10],A,b,[],[],[-5;-5],[15;15]) x_opt = 2.5000 y_opt = 12.5000

Poszukiwanie minimum funkcji wielu zmiennych z ograniczeniami Funkcja celu function y=fun_celu(x) y=(x(1)-5).^2+(x(2)-5).^2; A=[1,1]; b=5; Aeq=[0,1]; beq=5; [x_opt y_opt]=fmincon(@fun_celu,[0;0],A,b,Aeq,beq,[-5;-5],[15;15]) x_opt = 0 5 y_opt = 25

Poszukiwanie minimum funkcji wielu zmiennych z ograniczeniami Funkcja celu function y=fun_celu(x) y=(x(1)-5).^2+(x(2)-5).^2; function [c ceq]=ograniczenia(x) c=x(1).^2+x(2).^2-4; ceq=[]; [x_opt y_opt]=fmincon(@fun_celu,[10;10],[],[],[],[],[-5;-5],[15;15],@ograniczenia) x_opt = 1.4142 y_opt = 25.7157 Funkcja z ograniczeniami nieliniowymi

Poszukiwanie minimum funkcji wielu zmiennych z ograniczeniami Algorytm genetyczny [x_opt y_opt]=ga(@fun_celu,N,A,b,Aeq,beq,lb,ub,@ograniczenia) Rozmiar przestrzeni poszukiwań function [c ceq]=ograniczenia(x) c=…; ceq=…;

Poszukiwanie minimum wielu funkcji wielu zmiennych z ograniczeniami [x_opt y_opt]=fminimax(@fun_celu,x0,A,b,Aeq,beq,lb,ub,@ograniczenia) Argumenty jak przy funkcji fmincon. Minimalizowana funkcja celu zwraca wektor (wiele funkcji celu). Funkcja fminimax poszukuje rozwiązania minimalizującego wszystkie funkcje celu. function y=fun_celu(x) y(1)=(x-1).^2; y(2)=(x+1).^2; [x_opt y_opt]=fminimax(@fun_celu,5) x_opt = 4.8750e-016 y_opt = 1.0000 1.0000

Dwukryterialna optymalizacja belki Belka o długości l i przekroju kołowym o średnicy d jest obciążona siłą P. Ugięcie belki pod wpływem działania siły wynosi: występujące naprężenie wynosi:

Dwukryterialna optymalizacja belki Zadanie polega na wyznaczeniu wymiarów belki: aby zapewnić minimalną masę belki oraz minimalne ugięcie. Dodatkowymi ograniczeniami są maksymalne ugięcie belki oraz maksymalne naprężenie wynoszące odpowiednio:

Dwukryterialna optymalizacja belki ro=7800; P=1e3; E=207e9; u_max=5e-3; sigma_max=300e6; l_lim=[200,1000]*1e-3; d_lim=[10,50]*1e-3; m=@(x)0.25*ro*x(1)*pi*x(2)^2; u=@(x)(64*P*x(1)^3)/(3*E*pi*x(2)^4); sigma=@(x)(32*P*x(1))/(pi*x(2)^3);

Dwukryterialna optymalizacja belki l=linspace(l_lim(1),l_lim(2),100); d=linspace(d_lim(1),d_lim(2),100); D=[]; P=[]; for i=1:length(l) for j=1:length(d) if u([l(i);d(j)])<u_max && sigma([l(i);d(j)])<sigma_max D(:,end+1)=[l(i);d(j)]; P(:,end+1)=[m([l(i);d(j)]);u([l(i);d(j)])]; end

Dwukryterialna optymalizacja belki figure('Color',[1 1 1]); plot(D(1,:),D(2,:),'.'); set(gca,'FontSize',28); xlabel('l[m]'); ylabel('d[m]'); plot(P(1,:),P(2,:),'.') xlabel('m[kg]'); ylabel('u[m]');

Normalizacja max_m=m([l_lim(2);d_lim(2)]); min_m=m([l_lim(1);d_lim(1)]); max_u=u([l_lim(2);d_lim(1)]); min_u=u([l_lim(1);d_lim(2)]); m_norm=@(x)(m(x)-min_m)/(max_m-min_m); u_norm=@(x)(u(x)-min_u)/(max_u-min_u);

Optymalizacja dwukryterialna f=@(x)[m_norm(x);u_norm(x)]; x_opt=fminimax(f,… [range(l_lim)*rand+l_lim(1);range(d_lim)*rand+d_lim(1)],... [],[],[],[],[l_lim(1);d_lim(1)],[l_lim(2);d_lim(2)],... @(x)limits(x,u,sigma,u_max,sigma_max)); function [c ceq]=limits(x,u,sigma,u_max,sigma_max) ceq=[]; c=[u(x)-u_max;sigma(x)-sigma_max]; x_opt=[200mm; 18.9mm] m(x_opt)= 0.4394kg u(x_opt)= 2.0409mm

Metoda sumy ważonej w=0:0.01:1;n=length(w); M=zeros(1,n); U=zeros(1,n); for i=1:n f=@(x)w(i)*m_norm(x)+(1-w(i))*u_norm(x); x_opt=fmincon(f,… [range(l_lim)*rand+l_lim(1);range(d_lim)*rand+d_lim(1)],... [],[],[],[],[l_lim(1);d_lim(1)],[l_lim(2);d_lim(2)],... @(x)limits(x,u,sigma,u_max,sigma_max)); M(i)=m(x_opt); U(i)=u(x_opt); end

Metoda sumy ważonej figure('Color',[1 1 1]); plot(M,U,'*','MarkerSize',20,'LineWidth',3) set(gca,'FontSize',28); xlabel('m[kg]'); ylabel('u[m]');

Problem pokrycia Zadanie polega na rozmieszczeniu n kół o promieniu r w taki sposób, aby maksymalnie pokryć obszar prostokątny. Koła nie mogą wychodzić poza obszar. Dane: a=0 b=1 n=10 r=0.15

Rysowanie kół r=0.15; a=0; b=1; n=10; X=a+r+(b-a-2*r)*rand(n,2); t=0:0.01:2*pi; for i=1:n x=r*sin(t)+X(i,1); y=r*cos(t)+X(i,2); fill(x,y,'g','FaceAlpha',0.5) hold on end axis equal set(gca,'XLim',[a b]); set(gca,'YLim',[a b]); set(gcf,'Color',[1,1,1]);

Uruchomienie optymalizacji X=reshape(X,2*n,1); [X_opt Y_opt]=fmincon(@(x)fun(x,r,n),X,... [],[],[],[],(a+r)*ones(2*n,1),(b-r)*ones(2*n,1)); X_opt=reshape(X_opt,n,2);

Funkcja celu Minimalizacja części wspólnych każdej pary okręgów

Funkcja celu function y=fun(x,r,n) x=reshape(x,n,2); y=0; for i=1:n-1 for j=i+1:n y=y+max(0,2*r-norm(x(i,:)-x(j,:))); end

Dodatkowo środki kół muszą leżeć pod krzywą x2=x12.

function [c,ceq]=ogr(x,n) x=reshape(x,n,2); c=x(:,2)-x(:,1) function [c,ceq]=ogr(x,n) x=reshape(x,n,2); c=x(:,2)-x(:,1).^2; ceq=[]; X=reshape(X,2*n,1); [X_opt Y_opt]=fmincon(@(x)fun(x,r,n),X,... [],[],[],[],(a+r)*ones(2*n,1),(b-r)*ones(2*n,1),... @(x)ogr(x,n)); X_opt=reshape(X_opt,n,2);

Prezentacja udostępniona na licencji Creative Commons: Uznanie autorstwa, Na tych samych warunkach 3.0. Pewne prawa zastrzeżone na rzecz autorów. Zezwala się na dowolne wykorzystywanie treści pod warunkiem wskazania autorów jako właścicieli praw do prezentacji oraz zachowania niniejszej informacji licencyjnej tak długo, jak tylko na utwory zależne będzie udzielana taka sama licencja. Tekst licencji dostępny jest na stronie: http://creativecommons.org/licenses/by-sa/3.0/deed.pl