Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all
- clc
- disp('Już liczę poczekaj chwileczkę')
- %% Definicja granic zmiennych
- dg=-5.12; , gg=5.12;, krok=0.01;
- %% Definicja zbioru niewadomych
- x1 = dg:krok:gg;
- x2 = dg:krok:gg;
- %% Definicje potrzebne do obsługi
- max = 10000; % maxymalna ilośc pokoleń
- sigma = 0.03^2; % prawdopodobieństwo początkowe
- s = length(x1); % granice losowania osobnika poczatkowego
- v = 0; %zmiennne do debugowania
- z = 0; %zmienne do debugowania
- licznikudanych = 0; % counter do metody 1/5
- %% losownie osbników poczatkowych
- a1 = randi(s,1);
- a2 = randi(s,1);
- %% operacje ewolucyjne
- for i=1:max
- p1 = randn();
- p2 = randn();
- e1 = p1*sigmap; %parametrt do mutacji
- e2 = p2*sigmap; %parametrt do mutacji
- if i == 1
- Yos1(i+1,:) = x1(:,a1); % wpisanie osobników poczatkowych do procesu
- Yos2(i+1,:) = x2(:,a2); % wpisanie osobników poczatkowych do procesu
- end
- if i>=2 % Proces mutacji
- Yos1(i,:) = Yos1(i-1,:)+e1;
- Yos2(i,:) = Yos2(i-1,:)+e2;
- end
- O(i,:) = licz(Yos1(i,:),Yos2(i,:)); %wartość funkcji
- if i > 2
- if O(i-1,:) > O(i,:) %funkcja oceny
- licznikudanych=licznikudanych+1; % inkrementacja countera
- else
- Yos1(i,:) = Yos1(i-1,:); % pominięcie procesu mutacji
- Yos2(i,:) = Yos2(i-1,:); % gdy ocena nie spełnia założeń
- end
- end
- w = (i/licznikudanych);
- if licznikudanych > 0 %funkcja aktualizacji sigmy
- if w < 0.2
- sigmap = (1/0.82)*sigmap; % aktualizacja prawdopodobnieństwa
- v = v+1; % debug ilości użytego warunku
- end
- if w > 0.2
- sigmap = 0.82*sigmap; % aktualizacja prawdopodobnieństwa
- z=z+1; % debug ilości użytego warunku
- end
- end
- pkt1 = Yos1(i,:); % wynik pkt1
- pkt2 = Yos2(i,:); % wynik pk2
- oooo(i,:) = i; % wynik ilośc generacji
- end
- %% Opracowywanie wyników
- rysuj;
- %% Wyświetlenie wyników
- disp('minimum funkcji można spodziewać sie w okolicach:')
- disp(pkt1)
- disp(pkt2)
- disp('Gdzie wartośc funkcji wynosi')
- disp(O(max,:))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement