MO - laboratoria 3

21 Pages • 1,540 Words • PDF • 298.2 KB
Uploaded at 2021-09-24 17:07

This document was submitted by our user and they confirm that they have the consent to share it. Assuming that you are writer or own the copyright of this document, report to us by using this DMCA report button.


16 marzec 2013

Optymalizacja

Slajd 1

Optymalizacja

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

Optymalizacja

16 marzec 2013

Slajd 2

Funkcje dostępne w SciLab • linpro()

- funkcja do rozwiązywania zadań programowania liniowego

• quapro()

- funkcja do rozwiązywania zadań programowania liniowego kwadratowego

• karmarker()

- funkcja do rozwiązywania zadań programowania liniowego z wykorzystaniem algorytmu Karmarker’a

• optim()

- funkcja do rozwiązywania nieliniowych zadań optymalizacji

• leastsq()

- funkcja do rozwiązywania nieliniowych zagadnień metodą najmniejszych kwadratów

• lsqrsolve()

- funkcja do minimalizacji sumy kwadratów zagadnień nieliniowych z wykorzystaniem algorytmu Levenberg’a-Marquardt’a

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

16 marzec 2013

Optymalizacja

Slajd 3

Plan zajęć • programowanie liniowe i kwadratowe • programowanie liniowe: przykład wyboru asortymentu produkcji • zagadnienie transportowe z wykorzystaniem funkcji linpro() • nieliniowe zadanie optymalizacji z wykorzystaniem funkcji optim() • przykład zagadnienia odwrotnego w oparci o funkcje: leastsq() lub lsqrsolve()

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

16 marzec 2013

Optymalizacja

Slajd 4

Ćwiczenie 1

Znajdź minimum funkcji f(x1,x2,x3) = 3x1+5x2-2x3+1, przy następujących ograniczeniach: x1 + 3*x2 funkcja linpro(p,C,b,xL,xU,me): x1 + x2 - x3 minimum dla: 2*x1 - x2 T f(X)= p *X x1 + x2 + x3

= 5 = 2 ≤ 3 ≤ 25

0 ≤ x1 ≤ 5 0 ≤ x2 ≤ 10 0 ≤ x3 ≤ 3

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

16 marzec 2013

Optymalizacja

Slajd 5

Ćwiczenie 1-cd

Znajdź minimum funkcji f(x1,x2,x3) = 3x1+5x2-2x3+1, przy następujących ograniczeniach: x1 + 3*x2 funkcja linpro(p,C,b,xL,xU,me): x1 + x2 - x3 minimum dla: 2*x1 - x2 T f(X)= p *X x1 + x2 + x3

= 5 = 2 ≤ 3 ≤ 25

0 ≤ x1 ≤ 5 xL = [0;0;0]; 0 ≤ x2 ≤ 10 xU = [5;10;3]; 0 ≤ x3 ≤ 3 p = [3;5;-2]; b = [5;2;3;25]; C = [1,3,0; 1,1,-1; 2,-1,0; 1,1,1 ]; [xopt,lagr,fopt] = linpro(p,C,b,xL,xU,2) fopt = fopt +1 // xopt = [0.5, 1.5, 0], fopt = 10 Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

16 marzec 2013

Optymalizacja

Slajd 6

Ćwiczenie 2 Znajdź minimum funkcji f(x1,x2,x3) = x12+x1x2+3x1+5x2-2x3+1, przy następujących ograniczeniach: x1 + 3*x2 = 5 funkcja quapro(Q,p,C,b,xL,xU,me): x1 + x2 - x3 = 2 minimum dla: 2*x1 - x2 ≤ 3 T T f(X)= 0.5*X *Q*X + p *X x1 + x2 + x3 ≤ 25 0 ≤ x1 ≤ 5 0 ≤ x2 ≤ 10 0 ≤ x3 ≤ 3

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

16 marzec 2013

Optymalizacja

Slajd 7

Ćwiczenie 2-cd Znajdź minimum funkcji f(x1,x2,x3) = x12+x1x2+3x1+5x2-2x3+1, przy następujących ograniczeniach: x1 + 3*x2 = 5 funkcja quapro(Q,p,C,b,xL,xU,me): x1 + x2 - x3 = 2 minimum dla: 2*x1 - x2 ≤ 3 T T f(X)= 0.5*X *Q*X + p *X x1 + x2 + x3 ≤ 25 xL = [0;0;0]; 0 ≤ x1 ≤ 5 xU = [5;10;3]; 0 ≤ x2 ≤ 10 Q = [2,1,0; 1,0,0; 0,0,0] 0 ≤ x3 ≤ 3 p = [3;5;-2]; C = [1,3,0; 1,1,-1; 2,-1,0; 1,1,1 ]; b = [5;2;3;25]; [xopt,lagr,fopt] = quapro(Q,p,C,b,xL,xU,2) fopt = fopt +1 // xopt = [0.5, 1.5, 0], fopt = 10.25 Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

16 marzec 2013

Optymalizacja

Slajd 8

Ćwiczenie 3 Znajdź najmniejszą wartość funkcji (punkt startowy: (1,1)): f(x,y) = sin(x*y) + cos(x) na obszarze ograniczonym poprzez nierówności: 0 ≤ x ≤ 10, 0 ≤ y ≤ 10

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

16 marzec 2013

Optymalizacja

Slajd 9

Ćwiczenie 3-cd Znajdź najmniejszą wartość funkcji (punkt startowy: (1,1)): f(x1,x2) = sin(x1*x2) + cos(x1) na obszarze ograniczonym poprzez nierówności: 0 ≤ x1 ≤ 10, 0 ≤ x2 ≤ 10 function [f,g,ind] = fst(x,ind) // f – minimalizowana funkcja // g – gradient funkcji f endfunction

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

Optymalizacja

16 marzec 2013

Slajd 10

Ćwiczenie 3-cd Znajdź najmniejszą wartość funkcji (punkt startowy: (1,1)): f(x1,x2) = sin(x1*x2) + cos(x1) na obszarze ograniczonym poprzez nierówności: 0 ≤ x1 ≤ 10, 0 ≤ x2 ≤ 10 function [f,g,ind] = fst(x,ind) f = sin(x(1)*x(2))+cos(x(1)) g = [0;0] g(1)= x(2)*cos(x(1)*x(2)) - sin(x(1)) g(2)= x(1)*cos(x(1)*x(2)) endfunction [wart,xp] = optim(fst,'b',[0;0],[10;10],[1;1]) // xp=(π,0), wart= -1

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

Optymalizacja

16 marzec 2013

Slajd 11

Ćwiczenie 4 Zadanie optymalnego wyboru asortymentu produkcji Niech m=2, (w fabryce wytwarzane są 2 produkty), n=2 (do wytworzenia jednego produktu potrzebne są 2 surowce). – –

do wytworzenia produktu I – 8 jednostek surowca A, 2 jednostki surowca B, do wytworzenia produktu II – 5 jednostek surowca A, 5 jednostek surowca B.

Zysk ze sprzedaży – –

jednostki produktu I - 9 tys. złotych jednostki produktu II -8 tys. złotych

Wielkość dziennej dostawy – –

surowca A – 40 jednostek surowca B – 25 jednostek

Zadanie (X – zbiór rozwiązań dopuszczalnych, warstwicami funkcji f(x) są linie proste 9x1 + 8x2 = const.)

f ( x) = 9 x1 + 8 x2 → x1 ≥ 0,

max

x2 ≥ 0

A : 8 x1 + 5 x2 ≤ 40 B : 2 x1 + 5 x2 ≤ 25 Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

Optymalizacja

16 marzec 2013

Slajd 12

Ćwiczenie 4-cd // definicje macierzy c=[-9;-8]; xL=[0;0]; xU=[1e10;1e10]; C=[8,5;2,5]; d=[40;25]; [xopt,lagr,fopt] = linpro(c,C,d,xL,xU,0);

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

Optymalizacja

16 marzec 2013

Slajd 13

Ćwiczenie 4-cd // prezentacja graficzna deff('[w]=f(x,y)','w=c(1)*x+c(2)*y') xx = [0:0.5:6]; yy = [0:0.5:6]; zz = feval(xx,yy,f); contour2d(xx,yy,zz,10); deff('[y1]=f1(x)','y1=-8*x/5+40/5') deff('[y2]=f2(x)','y2=(25-2*x)/5') xxx = [0:0.5:6]; yy1 = f1(xxx); yy2 = f2(xxx); plot2d([xxx',xxx'],[yy1',yy2']) //,[-1,-1],'011',' ',[0 0 6 6]) xstring(xopt(1)+0.5,xopt(2)+0.05,'Rozwiazanie') xtitle('Fabryka') Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

16 marzec 2013

Optymalizacja

Slajd 14

Ćwiczenie 5 Firma X ma wytwórnie mas bitumicznych w Skwierzynie oraz Gorzowie Wlkp., w których produkuje MMA na budowę drogi S3 odpowiednio 800 ton na dobę oraz 1200 ton na dobę. Firma ma również pięć mniejszych budów w miejscowościach: a, b, c, d, e. 60% dziennej produkcji pozostaję na budowie S3 (Skwierzyna, Gorzów Wlkp.), a pozostałą cześć produkcji MMA (800 ton) przeznacza w proporcjach 30%, 10%, 16%, 28,5%, 15,5% na budowy w miejscowościach a, b, c, d, e. Znając koszt przewozu 1 tony mieszanki (samochód samowyładowczy 4 osiowy) z wytwórni na poszczególne budowy, należy wyznaczyć plan przewozów MMA minimalizując globalne koszty transportu MMA.

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

16 marzec 2013

Optymalizacja

Slajd 15

Ćwiczenie 5-cd [x,fval]=linpro(f,A,b,lb,ub) 36x11+37x21+60x12+48x22+75x13+72x23+… 84x14+85x24+54x15+56x25 --> min

x11 x12 x13 x14 x15

∑x1i = 320 ∑x2i = 480

+ + + + +

x21 x22 x23 x24 x25

= = = = =

240 80 128 228 124

xi ≥ 0

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

Optymalizacja

16 marzec 2013

Slajd 16

Ćwiczenie 5-cd f = [36;37;60;48;75;72;84;85;54;56]; A = [ 1, 0, 0, 0, 0, 1, 0,

1, 0, 0, 0, 0, 0, 1,

0, 1, 0, 0, 0, 1, 0,

0, 1, 0, 0, 0, 0, 1,

0, 0, 1, 0, 0, 1, 0,

0, 0, 1, 0, 0, 0, 1,

0, 0, 0, 1, 0, 1, 0,

0, 0, 0, 1, 0, 0, 1,

0, 0, 0, 0, 1, 1, 0,

0; 0; 0; 0; 1; 0; 1];

b = [240;80;128;228;124;320;480]; lb = zeros(10,1); ub = ones(10,1)*%inf; [x,fval] = linpro(f,A,b,lb,ub,7) Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

Optymalizacja

16 marzec 2013

Slajd 17

Ćwiczenie 6 // Wyznacz parametr x(1) i x(2) w modelu: function y = yth(t,x) y = x(1)*exp(-x(2)*t) endfunction // dla danych pomiarowych: tm = [0.25;0.50;0.75;1.00;1.25;1.50;1.75;2.00;2.25;2.50]; ym = [0.79;0.59;0.47;0.36;0.29;0.23;0.17;0.15;0.12;0.08]; // tak aby wyniki uzyskane z modelu były dopasowane // do wyników pomiarów, // wykorzystując metodę najmniejszych kwadratów:

Instytut Konstrukcji Budowlanych

� 𝐲𝐲𝐲 𝐭𝐭 𝐢 𝑖

Zakład Komputerowego Wspomagania Projektowania

− 𝐲(𝐢)

𝟐 Metody Obliczeniowe Semestr 2

16 marzec 2013

Optymalizacja

Slajd 18

Ćwiczenie 6-cd // wartości początkowe parametrów x0 = [1.5 ; 0.8]; // definicja funkcji fun oraz dfun function e = myfun(x, tm, ym) e = yth(tm, x) - ym endfunction function g = mydfun(x, tm, ym) v = exp(-x(2)*tm) g = [v , -x(1)*tm.*v] endfunction

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

16 marzec 2013

Optymalizacja

Slajd 19

Ćwiczenie 6-cd // kilka możliwości wywołania funkcji leastsq // 1-rozwiązanie [f,xopt,gopt] = leastsq(list(myfun,tm,ym),x0) // 2-rozwiązanie [f,xopt,gopt] = leastsq(list(myfun,tm,ym),mydfun,x0) // grafika tt = linspace(0,1.1*max(tm),100)’; yy = yth(tt, xopt); plot2d(tm, ym, style =-2) plot2d(tt, yy, style = 2) legend(["punkty z pomiaru", "punkty dopasowane"]); xtitle("dopasowanie metodą najmniejszych kwadratów") Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

16 marzec 2013

Optymalizacja

Slajd 20

Ćwiczenie 6-cd // 3-rozwiązanie [f,xopt,gopt] = leastsq(1,list(myfun,tm,ym),mydfun,x0) // 4-rozwiązanie (algorytm sprzężonych gradientów) [f,xopt,gopt] = leastsq(1,list(myfun,tm,ym),mydfun,x0,"gc") // 5-rozwiązanie (z ograniczeniami) xinf = [-%inf,-%inf]; xsup = [%inf, %inf]; // bez Jakobiana: [f,xopt,gopt] = leastsq(list(myfun,tm,ym),"b",xinf,xsup,x0)

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2

16 marzec 2013

Optymalizacja

Slajd 21

Ćwiczenie 6-cd // z Jakobianem: [f,xopt,gopt] = leastsq(list(myfun,tm,ym),mydfun,"b",xinf,xsup,x0) // 6-rozwiązanie (niestandardowe opcje) // 40 wywołań funkcji, // 8 iteracji oraz // min zmiana długości gradientu: epsg=0.01, // min zmiana funkcji: epsf=0.1 [f,xopt,gopt] = leastsq(1,list(myfun,tm,ym),mydfun,x0,"ar",40,8,0.01, 0.1)

Instytut Konstrukcji Budowlanych

Zakład Komputerowego Wspomagania Projektowania

Metody Obliczeniowe Semestr 2
MO - laboratoria 3

Related documents

21 Pages • 1,540 Words • PDF • 298.2 KB

372 Pages • 112,074 Words • PDF • 1.2 MB

1 Pages • 140 Words • PDF • 52.6 KB

4 Pages • 501 Words • PDF • 34 KB

5 Pages • 900 Words • PDF • 117.2 KB

2 Pages • 217 Words • PDF • 361.8 KB

4 Pages • 1,634 Words • PDF • 290.1 KB

22 Pages • 1,323 Words • PDF • 1.7 MB

4 Pages • 1,343 Words • PDF • 354 KB

6 Pages • 1,859 Words • PDF • 164.9 KB

2 Pages • 725 Words • PDF • 35.7 KB