Java Genetic algorithms

Slutfört Publicerat 3 år sedan Betalades vid leverans
Slutfört Betalades vid leverans

Projekt nr 1: Prosty algorytm genetyczny

Prosty AG maksymalizujący funkcję kwadratową

?(?) = 〖ax〗^2 + ?? + ?

dla ? ∈ {0, 1, 2,⋯, 255}.

Wejście:

Parametry:

a, b, c – współczynniki równania kwadratowego

liczba populacji,

liczność populacji

(150 - osobników = lb.pop. x [login to view URL])

liczba uruchomień programu

prawdopodobieństwo krzyżowania

prawdopodobieństwo mutacji

Wyjście:

Wypisanie wartości funkcji przystosowania najlepszego osobnika w ostatniej populacji.

Wypisanie osobnika (odkodowany)

- do pliku.

1. Kodowanie:

osobnik ciąg długości mogący zapisać 256 informacji 256 = 2^8 - ciąg długości 8; np.

0 --> 00000000

56 --> 00111000

255 --> 11111111

2. krzyżowanie: 2 + 2 (dwoje rodziców, dwóch potomków)

a) losujemy osobniki w pary

b) losujemy czy krzyżują (zgodnie z prawdopodobieństwem krzyżowania)

(zwykle duże np. 0,8)

wyl.lb.psl. > [login to view URL]ż – nie krzyżują, przechodzą bez zmian

wyl.lb.psl. <= [login to view URL]ż –krzyżują:

c) losuje punk cięcia (punk cięcia – ?? ? {1,2,⋯,7})

Załóżmy, że pc = 3

?1, ?2 ⟶ ?1, ?2

?1 = [?11, ?12, ?13, ?24, ?25, ?26, ?27, ?28]

?2 = [?21, ?22, ?23, ?24, ?15, ?16, ?17, ?18]

3. mutacja (jednoosobnicza 1 - 1)

prawdopodobieństwo mutacji (zwykle małe 0,1)

Dla każdego osobnika

dla każdego genu

wyl.lb.psl. > pr.mut. – gen nie mutuje

wyl.lb.psl. <= pr.mut. – gen mutuje (0-1 lub 1-0)

4. selekcja

metoda selekcji - koło ruletki

a) Liczymy sum wartości funkcji celu: fsuma = f(x1) +...+ f(xN).

b) Liczymy wkład każdego osobnika w sumę : p(xi) = f(xi) / fsuma.

c) Dokonujemy N–krotnego losowania (ze zwracaniem) osobników zgodnie z rozkładem p(xi).

Co robić gdy f(x)<0?

Rozwiązanie: dodać stałą do f(x) tak aby f(x)>0 dla każdego osobnika w populacji.

Java Algoritm JavaScript

Projekt-id: #25786906

About the project

1 offert Distansprojekt Aktivt 3 år sedan

Tilldelades:

computerroman

Ogólnie wszystko jest jasne, będzie się jedno lub dwa pytania. Proponuję wyjaśnić wszystko na czacie, jeśli projekt jest nadal aktualny. Dziękuję za uwagę.

$30 USD inom 3 dagar
(1 omdöme)
1.1