Added optional file log out
This commit is contained in:
parent
89eb557a2d
commit
f1d616576c
@ -2,6 +2,7 @@
|
|||||||
A small script to help you analyze the output logs from GA algorithm.
|
A small script to help you analyze the output logs from GA algorithm.
|
||||||
It shows you best and worst population with all values.
|
It shows you best and worst population with all values.
|
||||||
Specify the input file as an exec parameter.
|
Specify the input file as an exec parameter.
|
||||||
|
Optional: Speficy output file.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
@ -27,26 +28,27 @@ def fitnessPlot(pop):
|
|||||||
print("Figure saved to file.")
|
print("Figure saved to file.")
|
||||||
|
|
||||||
|
|
||||||
def printBestWorstGenes(pop):
|
def printBestWorstGenes(pop, logOut=sys.stdout):
|
||||||
"""
|
"""
|
||||||
Print info about best and worst specimen.
|
Print info about best and worst specimen.
|
||||||
|
|
||||||
:param pop: Population array with fitness
|
:param pop: Population array with fitness
|
||||||
|
:param logOut: If specified, print messages to a file.
|
||||||
"""
|
"""
|
||||||
fitnesses = [i[4] for i in pop]
|
fitnesses = [i[4] for i in pop]
|
||||||
bestIdxs = (numpy.where(fitnesses == numpy.max(fitnesses)))[0]
|
bestIdxs = (numpy.where(fitnesses == numpy.max(fitnesses)))[0]
|
||||||
|
|
||||||
print("Best Fitness:", max(fitnesses))
|
print("Best Fitness:", max(fitnesses), file=logOut)
|
||||||
for idx in bestIdxs:
|
for idx in bestIdxs:
|
||||||
print("Affinities: food={}, water={}, rest={}, walking={}".format(pop[idx][0], pop[idx][1],
|
print("Affinities: food={}, water={}, rest={}, walking={}".format(pop[idx][0], pop[idx][1],
|
||||||
pop[idx][2], pop[idx][3]))
|
pop[idx][2], pop[idx][3]), file=logOut)
|
||||||
|
|
||||||
worstIdxs = (numpy.where(fitnesses == numpy.min(fitnesses)))[0]
|
worstIdxs = (numpy.where(fitnesses == numpy.min(fitnesses)))[0]
|
||||||
|
|
||||||
print("Worst Fitness:", min(fitnesses))
|
print("Worst Fitness:", min(fitnesses), file=logOut)
|
||||||
for idx in worstIdxs:
|
for idx in worstIdxs:
|
||||||
print("Affinities: food={}, water={}, rest={}, walking={}".format(pop[idx][0], pop[idx][1],
|
print("Affinities: food={}, water={}, rest={}, walking={}".format(pop[idx][0], pop[idx][1],
|
||||||
pop[idx][2], pop[idx][3]))
|
pop[idx][2], pop[idx][3]), file=logOut)
|
||||||
|
|
||||||
|
|
||||||
if len(sys.argv) < 2:
|
if len(sys.argv) < 2:
|
||||||
@ -62,4 +64,9 @@ else:
|
|||||||
pop.append(literal_eval(line))
|
pop.append(literal_eval(line))
|
||||||
|
|
||||||
fitnessPlot(pop)
|
fitnessPlot(pop)
|
||||||
|
if len(sys.argv) >= 3:
|
||||||
|
with open(sys.argv[2], "w+") as f:
|
||||||
|
printBestWorstGenes(pop, f)
|
||||||
|
print("Best/worst species saved to file.")
|
||||||
|
else:
|
||||||
printBestWorstGenes(pop)
|
printBestWorstGenes(pop)
|
||||||
|
Loading…
Reference in New Issue
Block a user