• Nie Znaleziono Wyników

1Zadania Optymalizacja

N/A
N/A
Protected

Academic year: 2021

Share "1Zadania Optymalizacja"

Copied!
4
0
0

Pełen tekst

(1)

Optymalizacja

Marcin Orchel

1 Zadania

1.1 Zadania na 3.0

Napisać skrypt w R. W skrypcie:

• Podać i znaleźć rozwiązania przykładowych problemów optymalizacyjnych dwoma wybranymi metodami:

1. z jedną zmienną

2. znaleźć modę dla wybranego rozkładu prawdopodobieństwa 3. podać gradient funkcji celu do metody optymalizacji

4. przetestować problem optymalizacji z ograniczeniami pudełkowymi

takich, że problemy optymalizacyjne z jednym rozwiązaniem mają niezerowe roz- wiązania

• rozważyć modyfikacje powyższych problemów, gdzie jedno rozwiązanie zastępuje- my dwoma i trzema rozwiązaniami

• rozważyć modyfikacje powyższych problemów, gdzie w zdefiniowanych warunkach występuje jedna zmienna, dwie zmienne, itp.

• dla dwóch zmiennych wyświetlić na wykresie funkcję celu, a także rozwiązanie

• zastanowić się jak może wyglądać wykres konturowy dla funkcji celu

• rozwiązać problemy z dwoma zmiennymi na wolframalpha.com

• wyświetlać na konsoli szybkość oraz jakość znalezionego rozwiązania

• Dodać komentarz do skryptu opisujący krótko na czym polegają użyte metody oraz wnioski z badań.

Wskazówki

• przykładowe definiowanie problemów optymalizacyjnych na wolframalpha.com https:

//www.wolframalpha.com/examples/Optimization.html

1

(2)

• w jaki sposób zamienić problem optymalizacji jednowymiarowy, w którym za- kres jest od −∞ do ∞ na skończony zakres? Możemy min

x

f (x) przekształcić na min

x

f (h(x)) dla h(x) = log(x/(1 − x)) i h : [0, 1] → [−∞, ∞].

• minimalizacja funkcji f (x

1

, x

2

) = x

21

+x

22

+3 sin(x

1

(2+x

2

)). Rozwiązanie na wolfra- malpha.com http://www.wolframalpha.com/input/?i=minimize+x1%5E2+%2B+

x2%5E2+%2B+3sin(x1(2%2Bx2)).

• funkcje do optymalizacji https://en.wikipedia.org/w/index.php?title=Test_

functions_for_optimization

• funkcje do optymalizacji z kodem w R https://www.sfu.ca/~ssurjano/optimization.

html

Wskazówki do R:

• lista metod https://cran.r-project.org/web/views/Optimization.html

• dla problemów jednowymiarowych https://stat.ethz.ch/R-manual/R-devel/

library/stats/html/optimize.html

• dla problemów wielowymiarowych https://stat.ethz.ch/R-manual/R-devel/

library/stats/html/optim.html

• https://www.rdocumentation.org/packages/quadprog/topics/solve.QP

• https://www.rdocumentation.org/packages/kernlab/topics/ipop

• https://stat.ethz.ch/R-manual/R-devel/library/stats/html/nlm.html

• algorytm ewolucyjny dla trudnych problemów https://www.rdocumentation.org/

packages/cmaes/topics/cma_es Wskazówki do Matlaba:

• można również znaleźć rozwiązania w optimtool

• do problemów bez warunków można użyć fminsearch http://www.mathworks.

com/help/optim/ug/fminsearch.html lub fminunc http://www.mathworks.com/

help/optim/ug/fminunc.html Przykłady w R

• h<- function(x) -log(1-x)

solution<-optimize(function(x) -abs(pnorm(h(x)) - pt(h(x), 30)), c(0,1), tol=1e-16

print(solution$objective)

\item inna funkcja

f<- function(x) x[1]^2 + x[2]^2 + 3*sin(x[1]*(2+x[2])) str(optim(c(-5, -5), f))

str(optim(c(5, 5), f))

2

(3)

• znalezienie mody

h<- function(x) log(x/(1-x))

solution<-optimize(function(x) -exp(-h(x)*h(x)),c(0, 1), tol=1e-16) print(solution$objective)

• porównanie metod n <- 2500

x <- matrix(runif(2*n, -30, 50), ncol=2)

results <- data.frame(NM=numeric(n), BFGS=numeric(n), CG=numeric(n))

for(i in seq_len(n))

results[i, 1] <- optim(x[i, ], f)$value

results[i, 2] <- optim(x[i, ], f, method="BFGS")$value results[i, 3] <- optim(x[i, ], f, method="CG")$value sapply(results, summary)

• z lower i upper

f <- function(x) x[1]^2 + x[2]^2 n <- 2500

x <- matrix(runif(2*n, -30, 50), ncol=2)

results <- data.frame(NM=numeric(n), BFGS=numeric(n), CG=numeric(n), LBFGSB=numeric(n))

for(i in seq_len(n))

results[i, 1] <- optim(x[i, ], f)$value

results[i, 2] <- optim(x[i, ], f, method="BFGS")$value results[i, 3] <- optim(x[i, ], f, method="CG")$value

results[i, 4] <- optim(x[i, ], f, method="L-BFGS-B", lower=c(-1, -1), upper=c(1, 1))$value

sapply(results, summary)

1.2 Zadania na 4.0

• Dodać komentarz do skryptu opisujący krótko na czym polegają użyte metody oraz wnioski z badań.

Wskazówki:

• do algorytmów genetycznych można użyć ga, http://www.mathworks.com/help/

gads/ga.html

3

(4)

1.3 Zadania na 5.0

• rozwiązać przykładowy problem minmax

• Dodać komentarz do skryptu opisujący krótko na czym polegają użyte metody oraz wnioski z badań.

Wskazówki:

• do problemów minmax można użyć fminimax http://www.mathworks.com/help/

optim/ug/fminimax.html

4

Cytaty

Powiązane dokumenty

• zadania te same co dla interpolacji, z tą różnicą, że zamiast dwóch metod interpo- lacji wybieramy dwie metody aproksymacji oraz testujemy metody na 2 rzeczywi- stych

• Dodać komentarz do skryptu opisujący krótko na czym polegają użyte metody oraz wnioski z

Uwaga: funkcja ta aktu- alnie nie jest dostępna w Matlabie uczelnianym, ponieważ nie jest dostępny Global Optimization

• dokonać klasyfikacji trzema wybranymi metodami w tym drzewami decyzyjnymi losowych zbiorów wygenerowanych z dwóch normalnych rozkładów prawdopodo- bieństwa dla

• Proszę o zdefiniowanie minimum jednego problemu oraz odpowiedź na minimum 3 wybrane problemy innych. • Proszę o napisanie postępów prac od

Należy wykonać dwie wersje programu: jedna z konstruktorami zwykłym (z parametrami domyślnymi) i kopiującym dla klasy kolo bez listy argumentów oraz druga z

Wykonać wybrany z dwuargumentowych operatorów przeciążonych z punktu 2 (np.+) jako funkcje zaprzyjaźnioną. W metodzie odleglosc przekazać obiekt typu punkt przez wartość i

Głównym celem naukowym może być rozwinięcie dydaktyki matematyki jako uznanej dziedziny badań