46486

46486



Naszym zadaniem podczas tych laboratoriów było znalezienie ekstremum funkcji:

f(x) = x*sln(10*n*x)+l na przedziale [-1, 2] za pomocą metod heurystycznych. Na początku posługujemy się algorytmem losowego przeszukiwania na reprezentacji binarnej. Piszemy program, do którego z początku wprowadzamy długość łańcucha bitów, który decyduje o długości tablicy. Następnie tablica losowa jest wypełniana wartością 0 lub 1, natomiast te są konwertowane na liczby rzeczywiste. Następnie wyliczamy wartość funkcji f(x) za argumenty przyjmując przekonwertowane liczby. Szukamy maksimum. Gdy jest większe od poprzedniego, program go zapamiętuje. Dochodzi do mutacji losowej liczby (bez względy na to czy maksimum było większe od poprzedniego czy nie).

Algorytm pełnego przeglądu wartości na liczbach rzeczywistych. Program sprawdza z dokładnością 0,001 kolejne liczby rzeczywiste z danego przedziału. Następnie oblicza wartość funkcji i porównuje ją z wartością funkcji liczby poprzedniej. Jeśli nowa wartość funkcji jest wyższa od poprzedniej zostaje ona zapamiętana. Tym sposobem algorytm poszukuje maksimum, które pod koniec programu zostaje wypisane na ekran. Algorytm ten jest łatwy w implementacji, jednak jest on nieefektywny. Pełny przegląd wartości jest czasochłonny (w naszym przypadku czas znalezienia maksimum jest krótki, jednak przedział przeszukiwań jest stosunkowo wąski).

Następnie posługujemy się algorytmem Tabu Search. Algorytm na każdym stopniu Iteracji przeszukuje sąsiedztwo w celu wyboru najlepszego rozwiązania, które staje się bazowym w następnym kroku. Ostatni wykonany ruch trafia na listę zabronionych ruchów i nie może być wykonany przez określoną liczbę iteracji. Algorytm ten umożliwia wyjście z lokalnego minimum i zapobiega przed cyklicznością ruchów. Wykonanie ruchu zabronionego jest możliwe w przypadku określenia przez funkcję aspiracji zyskowności tego ruchu. Koniec obliczeń następuje po wykonaniu maksymalnej liczby iteracji.

for (i = 1; i <= iter; i++)

{

while (ltab.czyjest(fx) = true)

{

ile = ile + 1; pozycja = bitl.Next(dlug); rozw.flip(pozycja); x = rozw.konwerter(); fx = rozw.wartosc(x);

}

1_ tabu. ws taw(fx);

if (fx > fmax)

{



Wyszukiwarka

Podobne podstrony:
Podczas tych laboratoriów wykorzystujemy symulowane wyżarzanie dla znalezienia optymalnej zależności
Podczas tych laboratoriów tworzymy użyteczny model aby wyznać zapas minimalny w przykładowej aptece
Zadanie 2. Podczas fazy fotosyntezy zależnej od św iatła ATP powstaje na drodze fosforylacji. Na sch
246 IV. Badanie funkcji za pomocą pochodnych 3) Znaleźć ekstrema funkcji f (x)=x2l3—(x1 — l)113. Tym
MN LAB2 Metody numeryczne - laboratoria - zajęcia 2 Interpolacja i aproksymacja funkcji dyskretnych
mat3 ZESTAW III 1.    Zbadaj ekstremum funkcji f{x) = ln1 2 x - 3 ln x. 2.  &nbs
matematyka egzamin zestawy1 ZESTAW III 1.    Zbadaj ekstremum funkcji f(x) = ln1 2 x
1. Opia zadania1.1. Cel ćwiczenia Celem zajęć laboratoryjnych było wykorzystanie oprogramowania Matl
Scan0187 SHY Boy wobec wyzwania. Moim zadaniem było znalezienie łagodnego sposobu przekazania mu moi
DSC03659a : 11 Znaleźć ekstrema lokalne Funkcji zadani wzorem: Ffay) 0Ę +y+6jr-xify+a(c*y 2) Znaleźć
4.4 Rachunek wariacyjny. Zadania Znaleźć ekstremale podanych funkcjonałów odpowiadające danym warunk
12030 P7270363 Zadanie 2. Naładowane kulki [21 pkt] Podczas ćwiczeń laboratoryjnych studenci obserwo

więcej podobnych podstron