gianlucatruda / evocomp

Assignments for VU Masters course in Evolutionary Computing
GNU General Public License v3.0
0 stars 0 forks source link

Find, quantify, export best genome #43

Closed gianlucatruda closed 4 years ago

gianlucatruda commented 4 years ago

On applied task that still needs doing is going through all of the final genomes from these 4 different EAs and finding the single best one in terms of player and enemy energy scores. We then have to:

Attached is a zipped directory containing 4x JSON files with the best genomes from our evolutionary runs.

best genomes from 4 EAs.zip

gianlucatruda commented 4 years ago

Add a table containing the average (of 5 repetitions) energy points of player and enemy (for each of all enemies) for your VERY best solution (only one of the [10+10]*2). This is the solution you will submit to the competition.

alfjesus3 commented 4 years ago

Here are the 5 runs of the best individual. finalres.zip

Here is the python script that I used to get the best individual 5 runs over the 8 enemies.

Python 3.7.7 (default, May  7 2020, 21:25:33) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>> _pd1 = pd.read_csv('results/finalres/10-12-13_10_38_competition_results.csv')
>>> _pd2 = pd.read_csv('results/finalres/10-12-13_11_02_competition_results.csv')
>>> _pd3 = pd.read_csv('results/finalres/10-12-13_11_20_competition_results.csv')
>>> _pd3 = pd.read_csv('results/finalres/10-12-13_11_20_competition_results.csv')
>>> _pd4 = pd.read_csv('results/finalres/10-12-13_11_28_competition_results.csv')
>>> _pd5 = pd.read_csv('results/finalres/10-12-13_11_38_competition_results.csv')
>>> concat = pd.concat((_pd1, _pd2, _pd3, _pd4, _pd5))
>>> byRow = concat.groupby(concat.index)
>>> print(byRow[['enemy', 'pl_life', 'en_life']].mean())
   enemy  pl_life  en_life
0      1     0.00    100.0
1      2    84.00      0.0
2      3     0.00     70.0
3      4     0.00     60.0
4      5    56.08      0.0
5      6     0.00     50.0
6      7    63.40      0.0
7      8    17.80      0.0
>>> print(byRow[['pl_life', 'en_life']].std())
    pl_life  en_life
0  0.000000      0.0
1  0.000000      0.0
2  0.000000      0.0
3  0.000000      0.0
4  3.508846      0.0
5  0.000000      0.0
6  0.000000      0.0
7  0.000000      0.0
>>> 

Here is the latex for the table

\begin{tabular}{lrrr}
\toprule
{} &  enemy &  pl\_life &  en\_life \\
\midrule
0 &      1 &     0.00 &    100.0 \\
1 &      2 &    84.00 &      0.0 \\
2 &      3 &     0.00 &     70.0 \\
3 &      4 &     0.00 &     60.0 \\
4 &      5 &    56.08 &      0.0 \\
5 &      6 &     0.00 &     50.0 \\
6 &      7 &    63.40 &      0.0 \\
7 &      8 &    17.80 &      0.0 \\
\bottomrule
\end{tabular}

Here is the best enemy best_10-10-15_30_03.txt