Witam!
Robie prezentacje graficzna do algorytmu genetycznego. Kazdy czlonek populacji to osobna funkcja na wspolnym wykresie. Populacja jest dosc duza, wiec taka mnogosc funkcji bylaby nieczytelna, dlatego pomyslalem, ze osobniki, ktore dominuja beda mialy grubsze linie. Oto fragment kodu
[code]
for i=1:size(Rodzice,1)
poprzednik = 1;
x = Rodzice(i);
B(1,1) = 1;
B(1,2) = 1;
licznik = 2;
for j=1:size(Siec,1)
potega = power(2,size(Siec,1)-j);
if x - potega >= 0
B(licznik,2) = poprzednik;
B(licznik,1) = j;
licznik = licznik+1;
hold on;
poprzednik = j;
x = x - potega;
end;
end;
grubosc = 0;
for j=1:size(Rodzice,1)
if Rodzice(i) == Rodzice(j)
grubosc = grubosc + 1;
end;
end;
grubosc = floor(grubosc/(size(Rodzice,1)/5));
if grubosc < 1
grubosc = 1;
end;
plot(B(:,1),B(:,2),Kolor,'LineWidth',grubosc);
plot(B(:,1),B(:,2),'ko','LineWidth',2);
end;
[/code]
gdzie Rodzice, to wektor z danymi o populacji, a B sluzy do przechowywania ich binarnej reprezentacji
Niestety cos nie dziala jak nalezy, poniewaz linie w srodku funkcji przechodza nagle z cienkich w grube, co wg kodu nie powinno sie zdarzac.
Te neiszczesna sytuacje zamiescilem na rysunku ponizej.
Czy matlab po prostu nie wyrabia z rysowaniem? Jesli ktos ma pojecie co powoduje ten nieciekawy efekt i wie jak mu zapobiec, niech koniecznie sie ta wiedza podzieli :)