diff --git a/genetic.rb b/genetic.rb index 6cf60f1..603454f 100755 --- a/genetic.rb +++ b/genetic.rb @@ -26,6 +26,7 @@ def main generation = 0 begin last_best = nil + last_best_generation = 0 while true generation += 1 programs += programs.map do |grade, p| @@ -40,6 +41,7 @@ def main programs = programs.take(NUM_PROGRAMS) if last_best.nil? or programs.first.first < last_best last_best = programs.first.first + last_best_generation = generation $stdout.write("\rGrade: #{last_best}, output: #{programs.first.last.execute.inspect} ") end if programs.first.first == 0 @@ -52,7 +54,7 @@ def main rescue Interrupt puts puts "Canceled at #{generation} generations" - puts "The best program (grade #{programs.first.first}) is:" + puts "The best program (grade #{programs.first.first}, generation #{last_best_generation}) is:" puts programs.first.last end end