Add simple script for generating plots.
authorRafał Długołęcki <rafal@dlugolecki.net.pl>
Sun, 3 May 2015 20:35:50 +0000 (22:35 +0200)
committerRafał Długołęcki <rafal@dlugolecki.net.pl>
Sun, 3 May 2015 20:35:50 +0000 (22:35 +0200)
bin/generate-plots [new file with mode: 0755]

diff --git a/bin/generate-plots b/bin/generate-plots
new file mode 100755 (executable)
index 0000000..e7d9099
--- /dev/null
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+limit=100
+
+test -d ./auto || mkdir auto
+test -d ./auto/data || mkdir auto/data
+test -d ./auto/plots || mkdir auto/plots
+
+i=1
+size=648    # 6*6*6*3 = 216
+
+echo "[+] Generating data"
+for m in 0 0.01 0.05 0.1 0.5 1; do          #6
+#      echo " * Mutation chance: $m"
+       for c in 0.01 0.05 0.1 0.5 0.75 1; do   #6
+#              echo " ** Crossover chance: $c"
+               for g in 10 20 50 100 200 500; do   #6
+#                      echo "    > Generations: $g"
+                       for ch in 10 20 30; do          #3
+                               FILENAME="$limit-$g-$ch-$c-$m"
+                               FILE="./auto/data/$FILENAME"
+#                              echo "        > Chromosomes: $ch"
+#                              echo "./genetic --chromosome-size=$ch --generation-size=$g --generation-limit=$limit --crossover=$c --mutation=$m > ./../../genetic-materialy/auto/$limit.$g.$ch.$c.$m"
+                               ./genetic --chromosome-size=$ch --generation-size=$g --generation-limit=$limit --crossover=$c --mutation=$m > $FILE
+
+                               gnuplot <<- EOF
+                               set xlabel "Pokolenia"
+                               set ylabel "Dostosowanie"
+                               set term png
+                               set samples 50
+                               set ticslevel 0
+                               set title "Wykres średniego dostosowania populacji i najlepszego osobnika \n Genów:$ch, Osobników:$g, Krzyżowanie:$c, Mutacja:$m"
+                               set key autotitle columnheader
+                               set output "./auto/plots/${FILENAME}.png"
+                               plot "${FILE}" using 1:2 with lines, "" using 1:3 with lines
+                               EOF
+
+                               echo -n " > (" $i/$size ")\r"
+                i=$((i+1))
+                       done
+               done
+       done
+done
+
+echo "[+] Generating comparison charts"
+
+test -d ./auto/comparisons || mkdir auto/comparisons
+test -d ./auto/comparisons/genes || mkdir auto/comparisons/genes
+
+i=1
+size=216    # 6*6*6 = 216
+for m in 0 0.01 0.05 0.1 0.5 1; do          #6
+       for c in 0.01 0.05 0.1 0.5 0.75 1; do   #6
+               for g in 10 20 50 100 200 500; do   #6
+            FILENAME="$limit-$g-$c-$m"
+
+                       gnuplot <<- EOF
+                       set xlabel "Pokolenia"
+                       set ylabel "Dostosowanie"
+                       set term png
+                       set samples 50
+                       set ticslevel 0
+                       set title "Wykres wpływu ilości genów na szybkość dostosowania populacji \n Osobników:$g, Krzyżowanie:$c, Mutacja:$m"
+                       set key autotitle columnheader
+                       set output "./auto/comparisons/genes/${FILENAME}.png"
+                       plot "./auto/data/$limit-$g-10-$c-$m" using 1:2 with lines title "10 Genów", \
+                            "./auto/data/$limit-$g-20-$c-$m" using 1:2 with lines title "20 Genów", \
+                            "./auto/data/$limit-$g-30-$c-$m" using 1:2 with lines title "30 Genów"
+                       EOF
+
+                       echo -n " * Genes (" $i/$size ")\r"
+            i=$((i+1))
+               done
+       done
+done
+
+echo "[+] Done!              \n"
+echo "Check: ./auto/ directory for generated data and plots"