Zahlenkolonnen in Grafiken verwandeln
Wenn man Zahlenkolonnen mit Hilfe einer Tabellenkalkulation erstellt, bietet sich die Verwendung der integrierten GrafikfÄhigkeiten an. Kommen die Daten jedoch aus anderen Quellen, gibt es bessere Alternativen. Im folgenden wird dazu die Programmiersprache Die im Text gezeigten Grafiken entstehen durch:
Ein Beispiel mit Subplot, d.h. zwei Grafiken nebeneinander. Berechnet werden die Fortschritt der Optimierung, das berechnete Ergebnis wird einmal über der Generation und daneben über der Zahl der Auswertungen der Fitnessfunktion dargestellt.
Vorhergehendes Kapitel ( NÄchstes Kapitel (Animation)
octave
verwendet.
Wahrscheinlichkeitsverteilung bei gegebenem
% Create a chart showing the probabililies for given n, ng, m, s
%
% n: total number of bits
% ng: number of "good" bits (maybe a vector!!)
% m: number of mutations per generation
% s: population size
% fname: filename where chart will be store
function chart_probabilities_m_s(n, ng, m, s, fname)
for i = 1 : length(ng)
[d, p(i, :)] = probabilities_multiple(n, ng(i), m, s);
endfor
clf;
for i = 1 : length(ng)
meshz(d, ng(i) / n, p(i, :),'LineWidth',2);
hold on;
endfor
title(sprintf("Mutations m = %d\nPopulation s = %d", m, s));
xlabel("\\Delta nG");
ylabel("n_G / n");
zlabel("Propability");
h= figure(1);
print(h,'-dpng','-color',fname);
endfunction
n = 5000 * 333* 24;
chart_probabilities_m_s(n, [.1 .25 .5 .75 .9] * n, 5, 1, 'chart_probabilites_m05_s1.png');
Geschwindigkeit und Kosten der Optimierung
1; % this is no function, only script
m = 1 : 5; % mutation
s = 10; % Population size
n = 500 * 333* 24; % number of bits
generations = (1 : 2000000)'; % generations
for i = 1 : length(m)
i
ng_temp = nGood(n, m(i), s, max(generations));
if (i == 1)
generation = generations;
evaluation = generations * m(i);
ng = ng_temp';
else
generation = [generation generations];
evaluation = [evaluation (generations * m(i))];
ng = [ng ng_temp'];
endif
endfor
vAxis = ng / n *100;
clf;
subplot(1, 2, 1);
hAxis = generation;
hold on;
for i = 1 : length(m)
plot(hAxis(:, i), vAxis(:, i), 'LineWidth', 2);
j = hAxis(length(hAxis) * .8);
text(hAxis(j, i), vAxis(j, i), sprintf("m=%d", m(i)));
endfor
grid on;
ylabel("Good Bits [%]");
xlabel("Generations");
ylimits = ylim();
ylimits(1) = 50;
ylim(ylimits);
title(sprintf("Speed @ s = %d", s));
subplot(1, 2, 2);
hAxis = evaluation;
hold on;
for i = 1 : length(m)
plot(hAxis(:, i), vAxis(:, i), 'LineWidth', 2);
j = hAxis(length(hAxis) * .8);
text(hAxis(j, i), vAxis(j, i), sprintf("m=%d", m(i)));
endfor
grid on;
ylabel("Good Bits [%]");
xlabel("Evalulations");
ylimits = ylim();
ylimits(1) = 50;
ylim(ylimits);
title(sprintf("Cost @ s = %d", s));
h= figure(1);
print(h,'-dpng','-color','chart_speed_cost.png');
Navigation
Extractor
)