├── LICENSE
├── README.md
├── classes.py
├── config_file.txt
├── fonts
└── agency_fb.ttf
├── icyAI.py
├── media
├── 6.png
├── NN.png
├── TRAINING_PROCESS_avg_fitness50.png
├── TRAINING_PROCESS_speciation50.png
├── cover2.png
├── menu2.png
├── sim_speed.png
├── thumb6.png
└── training.gif
├── music
└── theme.mp3
├── sprites
├── arrow.png
├── background.jpg
├── exp1.png
├── exp2.png
├── exp3.png
├── exp4.png
├── exp5.png
├── icy2.png
├── icyMan.png
├── icyMan2.png
├── icyMan3.png
├── icyMan4.png
├── icyMan5.png
├── icyMan_antagonist.png
├── pygame.png
├── wall.png
└── wall2.png
├── trained_models
├── TRAINING_PROCESS
│ ├── TRAINING_PROCESS10
│ ├── TRAINING_PROCESS10.pkl
│ ├── TRAINING_PROCESS10.svg
│ ├── TRAINING_PROCESS100
│ ├── TRAINING_PROCESS100.pkl
│ ├── TRAINING_PROCESS100.svg
│ ├── TRAINING_PROCESS105
│ ├── TRAINING_PROCESS105.pkl
│ ├── TRAINING_PROCESS105.svg
│ ├── TRAINING_PROCESS11
│ ├── TRAINING_PROCESS110
│ ├── TRAINING_PROCESS110.pkl
│ ├── TRAINING_PROCESS110.svg
│ ├── TRAINING_PROCESS115
│ ├── TRAINING_PROCESS115.pkl
│ ├── TRAINING_PROCESS115.svg
│ ├── TRAINING_PROCESS120
│ ├── TRAINING_PROCESS120.pkl
│ ├── TRAINING_PROCESS120.svg
│ ├── TRAINING_PROCESS125
│ ├── TRAINING_PROCESS125.pkl
│ ├── TRAINING_PROCESS125.svg
│ ├── TRAINING_PROCESS14
│ ├── TRAINING_PROCESS15
│ ├── TRAINING_PROCESS15.pkl
│ ├── TRAINING_PROCESS15.svg
│ ├── TRAINING_PROCESS17
│ ├── TRAINING_PROCESS20
│ ├── TRAINING_PROCESS20.pkl
│ ├── TRAINING_PROCESS20.svg
│ ├── TRAINING_PROCESS25
│ ├── TRAINING_PROCESS25.pkl
│ ├── TRAINING_PROCESS25.svg
│ ├── TRAINING_PROCESS30
│ ├── TRAINING_PROCESS30.pkl
│ ├── TRAINING_PROCESS30.svg
│ ├── TRAINING_PROCESS35
│ ├── TRAINING_PROCESS35.pkl
│ ├── TRAINING_PROCESS35.svg
│ ├── TRAINING_PROCESS40
│ ├── TRAINING_PROCESS40.pkl
│ ├── TRAINING_PROCESS45
│ ├── TRAINING_PROCESS45.pkl
│ ├── TRAINING_PROCESS45.svg
│ ├── TRAINING_PROCESS5
│ ├── TRAINING_PROCESS5.pkl
│ ├── TRAINING_PROCESS5.svg
│ ├── TRAINING_PROCESS50
│ ├── TRAINING_PROCESS50.pkl
│ ├── TRAINING_PROCESS50.svg
│ ├── TRAINING_PROCESS55
│ ├── TRAINING_PROCESS55.pkl
│ ├── TRAINING_PROCESS55.svg
│ ├── TRAINING_PROCESS6
│ ├── TRAINING_PROCESS60
│ ├── TRAINING_PROCESS60.pkl
│ ├── TRAINING_PROCESS60.svg
│ ├── TRAINING_PROCESS65
│ ├── TRAINING_PROCESS65.pkl
│ ├── TRAINING_PROCESS65.svg
│ ├── TRAINING_PROCESS70
│ ├── TRAINING_PROCESS70.pkl
│ ├── TRAINING_PROCESS70.svg
│ ├── TRAINING_PROCESS75
│ ├── TRAINING_PROCESS75.pkl
│ ├── TRAINING_PROCESS75.svg
│ ├── TRAINING_PROCESS80
│ ├── TRAINING_PROCESS80.pkl
│ ├── TRAINING_PROCESS80.svg
│ ├── TRAINING_PROCESS85
│ ├── TRAINING_PROCESS85.pkl
│ ├── TRAINING_PROCESS85.svg
│ ├── TRAINING_PROCESS90
│ ├── TRAINING_PROCESS90.pkl
│ ├── TRAINING_PROCESS90.svg
│ ├── TRAINING_PROCESS95
│ ├── TRAINING_PROCESS95.pkl
│ ├── TRAINING_PROCESS95.svg
│ ├── TRAINING_PROCESS_avg_fitness10.png
│ ├── TRAINING_PROCESS_avg_fitness100.png
│ ├── TRAINING_PROCESS_avg_fitness105.png
│ ├── TRAINING_PROCESS_avg_fitness110.png
│ ├── TRAINING_PROCESS_avg_fitness115.png
│ ├── TRAINING_PROCESS_avg_fitness120.png
│ ├── TRAINING_PROCESS_avg_fitness125.png
│ ├── TRAINING_PROCESS_avg_fitness15.png
│ ├── TRAINING_PROCESS_avg_fitness20.png
│ ├── TRAINING_PROCESS_avg_fitness25.png
│ ├── TRAINING_PROCESS_avg_fitness30.png
│ ├── TRAINING_PROCESS_avg_fitness35.png
│ ├── TRAINING_PROCESS_avg_fitness40.png
│ ├── TRAINING_PROCESS_avg_fitness45.png
│ ├── TRAINING_PROCESS_avg_fitness5.png
│ ├── TRAINING_PROCESS_avg_fitness50.png
│ ├── TRAINING_PROCESS_avg_fitness55.png
│ ├── TRAINING_PROCESS_avg_fitness60.png
│ ├── TRAINING_PROCESS_avg_fitness65.png
│ ├── TRAINING_PROCESS_avg_fitness70.png
│ ├── TRAINING_PROCESS_avg_fitness75.png
│ ├── TRAINING_PROCESS_avg_fitness80.png
│ ├── TRAINING_PROCESS_avg_fitness85.png
│ ├── TRAINING_PROCESS_avg_fitness90.png
│ ├── TRAINING_PROCESS_avg_fitness95.png
│ ├── TRAINING_PROCESS_speciation10.png
│ ├── TRAINING_PROCESS_speciation100.png
│ ├── TRAINING_PROCESS_speciation105.png
│ ├── TRAINING_PROCESS_speciation110.png
│ ├── TRAINING_PROCESS_speciation115.png
│ ├── TRAINING_PROCESS_speciation120.png
│ ├── TRAINING_PROCESS_speciation125.png
│ ├── TRAINING_PROCESS_speciation15.png
│ ├── TRAINING_PROCESS_speciation20.png
│ ├── TRAINING_PROCESS_speciation25.png
│ ├── TRAINING_PROCESS_speciation30.png
│ ├── TRAINING_PROCESS_speciation35.png
│ ├── TRAINING_PROCESS_speciation40.png
│ ├── TRAINING_PROCESS_speciation45.png
│ ├── TRAINING_PROCESS_speciation50.png
│ ├── TRAINING_PROCESS_speciation55.png
│ ├── TRAINING_PROCESS_speciation60.png
│ ├── TRAINING_PROCESS_speciation65.png
│ ├── TRAINING_PROCESS_speciation70.png
│ ├── TRAINING_PROCESS_speciation75.png
│ ├── TRAINING_PROCESS_speciation80.png
│ ├── TRAINING_PROCESS_speciation85.png
│ ├── TRAINING_PROCESS_speciation90.png
│ └── TRAINING_PROCESS_speciation95.png
└── model1
│ ├── model1_4
│ ├── model1_5
│ ├── model1_5.pkl
│ ├── model1_5.svg
│ ├── model1_avg_fitness5.png
│ ├── model1_config.txt
│ └── model1_speciation5.png
└── visualize.py
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 nikp06
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## About IcyAI
2 |
3 | Hello Internet! Welcome to *icyAI* - a project for which I recreated the game Icy Tower in Python with Pygame and built an AI that learns how to play it - here you can do so to.
4 |
5 | [](https://youtu.be/W6qyRbmr_aA)
6 |
7 | Click [here](https://youtu.be/W6qyRbmr_aA), to see what I did in this project on YouTube.
8 |
9 | Download the full project on [itch.io](https://nikp06.itch.io/icyai-icy-tower-ai-vs-human) (only Windows for now/I would appreciate someone making a mac or linux build and sending it to me :P -> I used pyinstaller on my windows machine).
10 |
11 | I made use of a genetic algorithm called NEAT. NEAT evolves neural network topologies through neuroevolution.
12 | It is a known method from the domain of reinforcement learning. The concept is further explained in the video. You can also read the initial [NEAT paper](http://nn.cs.utexas.edu/downloads/papers/stanley.cec02.pdf) or browse through the [NEAT documentation](https://neat-python.readthedocs.io/en/latest/neat_overview.html).
13 | This repository contains all files needed to train the AI for yourself.
14 |
15 | 
16 |
17 | ## Description
18 |
19 | This repository contains everything you need to play the game for yourself or to train your own Icy Tower AI.
20 | Feel free to play around with the configuration file. Maybe you'll find a way to make the AI learn even more complex behavior. I'd be curious to know about it in case you do.
21 |
22 | ## How to use
23 |
24 | 1. For starting the game:
25 | ```
26 | py icyAI.py
27 | ```
28 | 2. Choose a screen-size (large is recommended, others might change physics of the game)
29 |
30 | 3. Simply navigate through the menu:
31 | * PLAY - play for yourself
32 | * TRAIN AI - train a new AI and specify how many generations
33 | * LET AI PLAY - choose a trained model and let the AI play and specify how many runs
34 | * HUMAN VS. AI - choose a trained model and play against this trained AI
35 | 
36 |
37 | 4. Enjoy the game and music, play around with the configuration file, experiment with parameters, analyze the statistics, speed up the simulation
38 |
39 | Fitness Stats | Speciation Stats | Neural Network
40 | :-------------------------:|:-------------------------:|:-------------------------:
41 |  |  | 
42 |
43 | ## Requirements and modules
44 |
45 | - python 3
46 | - pygame
47 | - pickle
48 | - neat
49 | - sys
50 | - os
51 | - numpy
52 | - tkinter
53 | - random
54 | - glob
55 | - visualize
56 | - re
57 | - shutil
58 | - time
59 |
--------------------------------------------------------------------------------
/config_file.txt:
--------------------------------------------------------------------------------
1 | [NEAT]
2 | fitness_criterion = mean
3 | fitness_threshold = 1000000
4 | pop_size = 500
5 | reset_on_extinction = True
6 |
7 | [DefaultGenome]
8 | # node activation options
9 | activation_default = tanh
10 | activation_mutate_rate = 0.0
11 | activation_options = tanh
12 |
13 | # node aggregation options
14 | aggregation_default = sum
15 | aggregation_mutate_rate = 0.0
16 | aggregation_options = sum
17 |
18 | # node bias options
19 | bias_init_mean = 0.0
20 | bias_init_stdev = 1.0
21 | bias_max_value = 30.0
22 | bias_min_value = -30.0
23 | bias_mutate_power = 0.5
24 | bias_mutate_rate = 0.7
25 | bias_replace_rate = 0.1
26 |
27 | # genome compatibility options
28 | compatibility_disjoint_coefficient = 1.0
29 | compatibility_weight_coefficient = 0.5
30 |
31 | # connection add/remove rates
32 | conn_add_prob = 0.5
33 | conn_delete_prob = 0.3
34 |
35 | # connection enable options
36 | enabled_default = True
37 | enabled_mutate_rate = 0.01
38 |
39 | feed_forward = False
40 | initial_connection = unconnected
41 |
42 | # node add/remove rates
43 | node_add_prob = 0.03
44 | node_delete_prob = 0.025
45 |
46 | # network parameters
47 | num_hidden = 0
48 | num_inputs = 38
49 | num_outputs = 3
50 |
51 | # node response options
52 | response_init_mean = 1.0
53 | response_init_stdev = 0.0
54 | response_max_value = 30.0
55 | response_min_value = -30.0
56 | response_mutate_power = 0.1
57 | response_mutate_rate = 0.1
58 | response_replace_rate = 0.1
59 |
60 | # connection weight options
61 | weight_init_mean = 0.0
62 | weight_init_stdev = 1.0
63 | weight_max_value = 30
64 | weight_min_value = -30
65 | weight_mutate_power = 0.5
66 | weight_mutate_rate = 0.8
67 | weight_replace_rate = 0.1
68 |
69 | [DefaultSpeciesSet]
70 | compatibility_threshold = 3.0
71 |
72 | [DefaultStagnation]
73 | species_fitness_func = max
74 | max_stagnation = 20
75 | species_elitism = 2
76 |
77 | [DefaultReproduction]
78 | elitism = 2
79 | survival_threshold = 0.2
80 | min_species_size = 2
--------------------------------------------------------------------------------
/fonts/agency_fb.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/fonts/agency_fb.ttf
--------------------------------------------------------------------------------
/icyAI.py:
--------------------------------------------------------------------------------
1 | import pickle
2 | import neat
3 | import os
4 | import glob
5 | # import visualize
6 | import re
7 | import shutil
8 | import time
9 | from classes import IcyTowerGame, menu, screen_options, update_variables, specify_amount
10 |
11 | GENERATION = 0
12 | CLOCK_SPEED = 60
13 | DRAW = True
14 | RECORDING = False
15 | RECORDING_COUNTER = 0
16 | PLAY = False
17 | PLAY_AI = False
18 | TRAIN_AI = False
19 | VERSUS = False
20 |
21 |
22 | def main(genomes, config):
23 | global GENERATION
24 | global P
25 | global CLOCK_SPEED
26 | global DRAW
27 | global RECORDING_COUNTER
28 | global PLAY
29 | global PLAY_AI
30 | global TRAIN_AI
31 | global VERSUS
32 |
33 | game = IcyTowerGame(genomes, config, train=TRAIN_AI, ai=True if TRAIN_AI or PLAY_AI or VERSUS else False, versus=VERSUS)
34 |
35 | game.generation = GENERATION
36 | if not DRAW:
37 | game.draw = False
38 |
39 | # if len(sys.argv) > 1:
40 | if TRAIN_AI:
41 | i = None
42 | for _, g in game.genomes:
43 | if i != P.species.get_species_id(g.key):
44 | i = P.species.get_species_id(g.key)
45 | g.species_id = i
46 | game.color_species()
47 | game.clock_speed = CLOCK_SPEED
48 |
49 | while True:
50 | game.play_step()
51 | # if not RECORDING and GENERATION <= 20:
52 | # if not game.draw:
53 | # game.clock_speed = 60
54 | # game.draw = True
55 | # # start_stop_capture()
56 | # # RECORDING_COUNTER += 1
57 | # elif not RECORDING and GENERATION % 10 == 0:
58 | # if not game.draw:
59 | # game.clock_speed = 60
60 | # game.draw = True
61 | # # start_stop_capture()
62 | # # RECORDING_COUNTER += 1
63 | # if not RECORDING:
64 | # if game.highest_fitness > 6800:
65 | # if not game.draw:
66 | # game.clock_speed = 60
67 | # game.draw = True
68 | # # start_stop_capture()
69 | # # RECORDING_COUNTER += 1
70 |
71 | # if len(game.players) == 1:
72 | # last_player = game.players[0]
73 | # last_genome = game.genomes[0]
74 | if len(game.players) == 0: # or game.ai_players[0].rect.y > 900 or game.human_players[0].rect.y > 900:
75 | GENERATION += 1
76 | if RECORDING:
77 | # start_stop_capture()
78 | game.clock_speed = CLOCK_SPEED
79 | game.draw_window_pause()
80 | else:
81 | DRAW = game.draw
82 | CLOCK_SPEED = game.clock_speed
83 | break
84 |
85 | if game.versus:
86 | if game.human_players[0].rect.y > screen_size - game.human_players[0].rect.height or game.ai_players[0].rect.y > screen_size - game.ai_players[0].rect.height:
87 | break
88 |
89 | if genomes is None:
90 | if game.human_players[0].rect.y > screen_size - game.human_players[0].rect.height:
91 | break
92 |
93 | if PLAY_AI:
94 | if game.ai_players[0].rect.y > screen_size - game.ai_players[0].rect.height:
95 | break
96 |
97 |
98 | def extract_number(f):
99 | s = re.findall("\d+$", f)
100 | return int(s[0]) if s else -1, f
101 |
102 |
103 | # def start_stop_capture():
104 | # # for automated screen capturing on windows
105 | # global RECORDING
106 | # keyboard = Controller()
107 | # keyboard.press(Key.cmd)
108 | # keyboard.press(Key.alt)
109 | # keyboard.press('r')
110 | # time.sleep(2)
111 | # keyboard.release('r')
112 | # keyboard.release(Key.alt)
113 | # keyboard.release(Key.cmd)
114 | # time.sleep(2)
115 | # RECORDING = not RECORDING
116 |
117 |
118 | def run(config_path, open_file, play_ai, train_ai, versus, runs):
119 | global GENERATION
120 | global P
121 | config = neat.config.Config(neat.DefaultGenome, neat.DefaultReproduction, neat.DefaultSpeciesSet,
122 | neat.DefaultStagnation, config_path)
123 | if train_ai or play_ai or versus:
124 | if train_ai:
125 | # checkpointer = neat.Checkpointer(int(sys.argv[3]))
126 | checkpointer = neat.Checkpointer(5)
127 | model_list = [x[0] for x in os.walk('trained_models')]
128 | if len(model_list) == 1:
129 | os.mkdir(os.path.join('trained_models', 'model1'))
130 | model_name = os.path.join('trained_models', 'model1')
131 | # model_path = os.path.join('trained_models', 'model1')
132 | else:
133 | model_nr = int(max(model_list, key=extract_number)[20:]) + 1
134 | model_name = max(model_list, key=extract_number)[:20]+str(model_nr)
135 | os.mkdir(model_name)
136 | print(f"\nCreating new model '{model_name}'...")
137 | P = neat.Population(config)
138 | checkpointer.filename_prefix = os.path.join(model_name, model_name[15:] + '_')
139 |
140 | if play_ai or versus:
141 | # Load specified model
142 | # path = os.path.join('trained_models', sys.argv[1])
143 | # if os.path.isdir(path):
144 |
145 | if len(glob.glob(os.path.join(open_file, open_file.split('/')[-1] + '_*.pkl'))) != 0:
146 | print("jo")
147 | # if os.path.isfile(os.path.join(sys.argv[1], sys.argv[1]+'*'+'.pkl')):
148 | filenames_list = []
149 | for item in glob.glob(os.path.join(open_file, open_file.split('/')[-1] + '_*')):
150 | print(item)
151 | if '.' not in item:
152 | filenames_list.append(item)
153 | try:
154 | P = neat.Checkpointer.restore_checkpoint(max(filenames_list, key=extract_number))
155 | except:
156 | filenames_list.remove(max(filenames_list, key=extract_number))
157 | P = neat.Checkpointer.restore_checkpoint(max(filenames_list, key=extract_number))
158 |
159 | print(f"\nLoading existing model '{max(filenames_list, key=extract_number)}'...")
160 | filenames_list = [_[:-4] for _ in os.listdir(open_file) if _.endswith('.pkl')]
161 | # print(max(filenames_list, key=extract_number))
162 | with open(os.path.join(open_file, max(filenames_list, key=extract_number) + '.pkl'), "rb") as f:
163 | genome = pickle.load(f)
164 |
165 | P.add_reporter(neat.StdOutReporter(True))
166 | stats = neat.StatisticsReporter()
167 | # print(P.best_genome)
168 | # print(stats.best_genome().fitness)
169 | # print(P.)
170 | P.add_reporter(stats)
171 | if train_ai:
172 | P.add_reporter(checkpointer)
173 | # print(P.species)
174 | # print(P.population)
175 | GENERATION = P.generation
176 | # print(genome.key)
177 | # print(P.species.get_species(genome.key).members)
178 | n = runs
179 | # print(P.species)
180 | if train_ai:
181 |
182 | node_names = {-1: 'A', -2: 'B', 0: 'A XOR B'}
183 | shutil.copyfile('config_file.txt', os.path.join(model_name, model_name[15:] + '_config.txt'))
184 |
185 | # run the algorithm the specified amount of times x 25 -> after each iteration the best genome is saved
186 | for i in range(round(n/5)):
187 | print(f"\nTraining in process for given model '{model_name}' for {n} runs...")
188 | winner = P.run(main, 5)
189 |
190 | # visualize.draw_net(config, winner, False, filename=os.path.join(model_name, model_name[15:] + '_' + str(GENERATION)),
191 | # node_names=node_names)
192 | # visualize.plot_stats(stats, ylog=False, view=False,
193 | # filename=os.path.join(model_name, model_name[15:] + '_avg_fitness' + str(GENERATION)))
194 | # visualize.plot_species(stats, view=False,
195 | # filename=os.path.join(model_name, model_name[15:] + '_speciation' + str(GENERATION)))
196 | # checkpointer.save_checkpoint(config, P.population, P.species, P.generation)
197 | with open(os.path.join(model_name, model_name[15:] + '_' + str(GENERATION) + '.pkl'), "wb") as f:
198 | pickle.dump(winner, f)
199 | f.close()
200 |
201 | elif play_ai or versus:
202 | # Convert loaded genome into required data structure
203 | genomes = [(1, genome)] # genome.key instead of 1?
204 |
205 | print(f"\nPlaying in process for given model '{open_file}' for {n} runs...")
206 | for i in range(n):
207 | main(genomes, config)
208 | GENERATION -= 1
209 |
210 | else:
211 | # for i in range(runs):
212 | main(genomes=None, config=None)
213 | # print("\nNo/Invalid Arguments given... Please specify {name of model}, {train/play}, {n_runs}")
214 | start_new()
215 |
216 |
217 | def start_new():
218 | open_file, PLAY, PLAY_AI, TRAIN_AI, VERSUS = menu()
219 | runs = 0
220 | if not PLAY:
221 | runs = specify_amount()
222 | run(config_path, open_file, PLAY_AI, TRAIN_AI, VERSUS, runs)
223 |
224 |
225 | if __name__ == '__main__':
226 | screen_size = screen_options()
227 | update_variables(screen_size)
228 | start_time = time.time()
229 | local_dir = os.path.dirname(__name__)
230 | config_path = os.path.join(local_dir, "config_file.txt")
231 | open_file, PLAY, PLAY_AI, TRAIN_AI, VERSUS = menu()
232 | runs = 0
233 | if not PLAY:
234 | runs = specify_amount()
235 | run(config_path, open_file, PLAY_AI, TRAIN_AI, VERSUS, runs)
236 | print("--- %s minutes ---" % (round(time.time() - start_time)/60), 2)
237 |
--------------------------------------------------------------------------------
/media/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/media/6.png
--------------------------------------------------------------------------------
/media/NN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/media/NN.png
--------------------------------------------------------------------------------
/media/TRAINING_PROCESS_avg_fitness50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/media/TRAINING_PROCESS_avg_fitness50.png
--------------------------------------------------------------------------------
/media/TRAINING_PROCESS_speciation50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/media/TRAINING_PROCESS_speciation50.png
--------------------------------------------------------------------------------
/media/cover2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/media/cover2.png
--------------------------------------------------------------------------------
/media/menu2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/media/menu2.png
--------------------------------------------------------------------------------
/media/sim_speed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/media/sim_speed.png
--------------------------------------------------------------------------------
/media/thumb6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/media/thumb6.png
--------------------------------------------------------------------------------
/media/training.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/media/training.gif
--------------------------------------------------------------------------------
/music/theme.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/music/theme.mp3
--------------------------------------------------------------------------------
/sprites/arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/arrow.png
--------------------------------------------------------------------------------
/sprites/background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/background.jpg
--------------------------------------------------------------------------------
/sprites/exp1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/exp1.png
--------------------------------------------------------------------------------
/sprites/exp2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/exp2.png
--------------------------------------------------------------------------------
/sprites/exp3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/exp3.png
--------------------------------------------------------------------------------
/sprites/exp4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/exp4.png
--------------------------------------------------------------------------------
/sprites/exp5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/exp5.png
--------------------------------------------------------------------------------
/sprites/icy2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/icy2.png
--------------------------------------------------------------------------------
/sprites/icyMan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/icyMan.png
--------------------------------------------------------------------------------
/sprites/icyMan2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/icyMan2.png
--------------------------------------------------------------------------------
/sprites/icyMan3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/icyMan3.png
--------------------------------------------------------------------------------
/sprites/icyMan4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/icyMan4.png
--------------------------------------------------------------------------------
/sprites/icyMan5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/icyMan5.png
--------------------------------------------------------------------------------
/sprites/icyMan_antagonist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/icyMan_antagonist.png
--------------------------------------------------------------------------------
/sprites/pygame.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/pygame.png
--------------------------------------------------------------------------------
/sprites/wall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/wall.png
--------------------------------------------------------------------------------
/sprites/wall2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/sprites/wall2.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS10:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS10
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS10.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS10.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS10.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
271 |
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS100:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS100
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS100.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS100.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS105:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS105
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS105.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS105.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS11:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS11
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS110:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS110
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS110.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS110.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS115:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS115
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS115.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS115.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS120:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS120
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS120.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS120.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS125:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS125
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS125.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS125.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS14:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS14
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS15:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS15
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS15.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS15.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS15.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
271 |
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS17:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS17
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS20:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS20
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS20.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS20.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS20.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
271 |
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS25:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS25
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS25.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS25.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS25.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
295 |
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS30:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS30
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS30.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS30.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS30.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
271 |
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS35:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS35
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS35.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS35.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS35.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
307 |
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS40:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS40
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS40.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS40.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS45:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS45
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS45.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS45.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS45.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
277 |
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS5:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS5
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS5.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS5.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS5.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
271 |
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS50:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS50
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS50.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS50.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS55:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS55
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS55.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS55.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS55.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
301 |
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS6:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS6
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS60:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS60
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS60.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS60.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS65:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS65
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS65.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS65.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS70:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS70
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS70.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS70.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS75:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS75
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS75.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS75.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS80:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS80
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS80.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS80.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS85:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS85
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS85.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS85.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS90:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS90
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS90.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS90.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS95:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS95
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS95.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS95.pkl
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness10.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness100.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness105.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness105.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness110.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness110.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness115.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness115.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness120.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness125.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness15.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness20.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness25.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness25.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness30.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness35.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness35.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness40.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness45.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness45.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness5.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness50.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness55.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness55.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness60.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness65.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness65.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness70.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness75.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness75.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness80.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness85.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness85.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness90.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness90.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness95.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_avg_fitness95.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation10.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation100.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation105.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation105.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation110.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation110.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation115.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation115.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation120.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation125.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation15.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation20.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation25.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation25.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation30.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation35.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation35.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation40.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation45.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation45.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation50.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation55.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation55.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation60.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation65.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation65.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation70.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation75.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation75.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation80.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation85.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation85.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation90.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation90.png
--------------------------------------------------------------------------------
/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation95.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/TRAINING_PROCESS/TRAINING_PROCESS_speciation95.png
--------------------------------------------------------------------------------
/trained_models/model1/model1_4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/model1/model1_4
--------------------------------------------------------------------------------
/trained_models/model1/model1_5:
--------------------------------------------------------------------------------
1 | digraph {
2 | node [fontsize=7 height=0.15 shape=circle width=0.15]
3 | A [fillcolor=lightgray shape=box style=filled]
4 | B [fillcolor=lightgray shape=box style=filled]
5 | -3 [fillcolor=lightgray shape=box style=filled]
6 | -4 [fillcolor=lightgray shape=box style=filled]
7 | -5 [fillcolor=lightgray shape=box style=filled]
8 | -6 [fillcolor=lightgray shape=box style=filled]
9 | -7 [fillcolor=lightgray shape=box style=filled]
10 | -8 [fillcolor=lightgray shape=box style=filled]
11 | -9 [fillcolor=lightgray shape=box style=filled]
12 | -10 [fillcolor=lightgray shape=box style=filled]
13 | -11 [fillcolor=lightgray shape=box style=filled]
14 | -12 [fillcolor=lightgray shape=box style=filled]
15 | -13 [fillcolor=lightgray shape=box style=filled]
16 | -14 [fillcolor=lightgray shape=box style=filled]
17 | -15 [fillcolor=lightgray shape=box style=filled]
18 | -16 [fillcolor=lightgray shape=box style=filled]
19 | -17 [fillcolor=lightgray shape=box style=filled]
20 | -18 [fillcolor=lightgray shape=box style=filled]
21 | -19 [fillcolor=lightgray shape=box style=filled]
22 | -20 [fillcolor=lightgray shape=box style=filled]
23 | -21 [fillcolor=lightgray shape=box style=filled]
24 | -22 [fillcolor=lightgray shape=box style=filled]
25 | -23 [fillcolor=lightgray shape=box style=filled]
26 | -24 [fillcolor=lightgray shape=box style=filled]
27 | -25 [fillcolor=lightgray shape=box style=filled]
28 | -26 [fillcolor=lightgray shape=box style=filled]
29 | -27 [fillcolor=lightgray shape=box style=filled]
30 | -28 [fillcolor=lightgray shape=box style=filled]
31 | -29 [fillcolor=lightgray shape=box style=filled]
32 | -30 [fillcolor=lightgray shape=box style=filled]
33 | -31 [fillcolor=lightgray shape=box style=filled]
34 | -32 [fillcolor=lightgray shape=box style=filled]
35 | -33 [fillcolor=lightgray shape=box style=filled]
36 | -34 [fillcolor=lightgray shape=box style=filled]
37 | -35 [fillcolor=lightgray shape=box style=filled]
38 | -36 [fillcolor=lightgray shape=box style=filled]
39 | -37 [fillcolor=lightgray shape=box style=filled]
40 | -38 [fillcolor=lightgray shape=box style=filled]
41 | "A XOR B" [fillcolor=lightblue style=filled]
42 | 1 [fillcolor=lightblue style=filled]
43 | 2 [fillcolor=lightblue style=filled]
44 | -3 -> "A XOR B" [color=red penwidth=0.2205202267234771 style=solid]
45 | }
46 |
--------------------------------------------------------------------------------
/trained_models/model1/model1_5.pkl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/model1/model1_5.pkl
--------------------------------------------------------------------------------
/trained_models/model1/model1_5.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
265 |
--------------------------------------------------------------------------------
/trained_models/model1/model1_avg_fitness5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/model1/model1_avg_fitness5.png
--------------------------------------------------------------------------------
/trained_models/model1/model1_config.txt:
--------------------------------------------------------------------------------
1 | [NEAT]
2 | fitness_criterion = mean
3 | fitness_threshold = 1000000
4 | pop_size = 500
5 | reset_on_extinction = True
6 |
7 | [DefaultGenome]
8 | # node activation options
9 | activation_default = tanh
10 | activation_mutate_rate = 0.0
11 | activation_options = tanh
12 |
13 | # node aggregation options
14 | aggregation_default = sum
15 | aggregation_mutate_rate = 0.0
16 | aggregation_options = sum
17 |
18 | # node bias options
19 | bias_init_mean = 0.0
20 | bias_init_stdev = 1.0
21 | bias_max_value = 30.0
22 | bias_min_value = -30.0
23 | bias_mutate_power = 0.5
24 | bias_mutate_rate = 0.7
25 | bias_replace_rate = 0.1
26 |
27 | # genome compatibility options
28 | compatibility_disjoint_coefficient = 1.0
29 | compatibility_weight_coefficient = 0.5
30 |
31 | # connection add/remove rates
32 | conn_add_prob = 0.5
33 | conn_delete_prob = 0.3
34 |
35 | # connection enable options
36 | enabled_default = True
37 | enabled_mutate_rate = 0.01
38 |
39 | feed_forward = False
40 | initial_connection = unconnected
41 |
42 | # node add/remove rates
43 | node_add_prob = 0.03
44 | node_delete_prob = 0.025
45 |
46 | # network parameters
47 | num_hidden = 0
48 | num_inputs = 38
49 | num_outputs = 3
50 |
51 | # node response options
52 | response_init_mean = 1.0
53 | response_init_stdev = 0.0
54 | response_max_value = 30.0
55 | response_min_value = -30.0
56 | response_mutate_power = 0.1
57 | response_mutate_rate = 0.1
58 | response_replace_rate = 0.1
59 |
60 | # connection weight options
61 | weight_init_mean = 0.0
62 | weight_init_stdev = 1.0
63 | weight_max_value = 30
64 | weight_min_value = -30
65 | weight_mutate_power = 0.5
66 | weight_mutate_rate = 0.8
67 | weight_replace_rate = 0.1
68 |
69 | [DefaultSpeciesSet]
70 | compatibility_threshold = 3.0
71 |
72 | [DefaultStagnation]
73 | species_fitness_func = max
74 | max_stagnation = 20
75 | species_elitism = 2
76 |
77 | [DefaultReproduction]
78 | elitism = 2
79 | survival_threshold = 0.2
80 | min_species_size = 2
--------------------------------------------------------------------------------
/trained_models/model1/model1_speciation5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nikp06/icyAI/20a445aef645def2908b36895521340c4031902f/trained_models/model1/model1_speciation5.png
--------------------------------------------------------------------------------
/visualize.py:
--------------------------------------------------------------------------------
1 | from __future__ import print_function
2 |
3 | import copy
4 | import warnings
5 |
6 | import graphviz
7 | import matplotlib.pyplot as plt
8 | import numpy as np
9 |
10 |
11 | def plot_stats(statistics, ylog=False, view=False, filename='avg_fitness.svg'):
12 | """ Plots the population's average and best fitness. """
13 | if plt is None:
14 | warnings.warn("This display is not available due to a missing optional dependency (matplotlib)")
15 | return
16 |
17 | generation = range(len(statistics.most_fit_genomes))
18 | best_fitness = [c.fitness for c in statistics.most_fit_genomes]
19 | avg_fitness = np.array(statistics.get_fitness_mean())
20 | stdev_fitness = np.array(statistics.get_fitness_stdev())
21 |
22 | plt.plot(generation, avg_fitness, 'b-', label="average")
23 | plt.plot(generation, avg_fitness - stdev_fitness, 'g-.', label="-1 sd")
24 | plt.plot(generation, avg_fitness + stdev_fitness, 'g-.', label="+1 sd")
25 | plt.plot(generation, best_fitness, 'r-', label="best")
26 |
27 | plt.title("Population's average and best fitness")
28 | plt.xlabel("Generations")
29 | plt.ylabel("Fitness")
30 | plt.grid()
31 | plt.legend(loc="best")
32 | if ylog:
33 | plt.gca().set_yscale('symlog')
34 |
35 | plt.savefig(filename)
36 | if view:
37 | plt.show()
38 |
39 | plt.close()
40 |
41 |
42 | def plot_spikes(spikes, view=False, filename=None, title=None):
43 | """ Plots the trains for a single spiking neuron. """
44 | t_values = [t for t, I, v, u, f in spikes]
45 | v_values = [v for t, I, v, u, f in spikes]
46 | u_values = [u for t, I, v, u, f in spikes]
47 | I_values = [I for t, I, v, u, f in spikes]
48 | f_values = [f for t, I, v, u, f in spikes]
49 |
50 | fig = plt.figure()
51 | plt.subplot(4, 1, 1)
52 | plt.ylabel("Potential (mv)")
53 | plt.xlabel("Time (in ms)")
54 | plt.grid()
55 | plt.plot(t_values, v_values, "g-")
56 |
57 | if title is None:
58 | plt.title("Izhikevich's spiking neuron model")
59 | else:
60 | plt.title("Izhikevich's spiking neuron model ({0!s})".format(title))
61 |
62 | plt.subplot(4, 1, 2)
63 | plt.ylabel("Fired")
64 | plt.xlabel("Time (in ms)")
65 | plt.grid()
66 | plt.plot(t_values, f_values, "r-")
67 |
68 | plt.subplot(4, 1, 3)
69 | plt.ylabel("Recovery (u)")
70 | plt.xlabel("Time (in ms)")
71 | plt.grid()
72 | plt.plot(t_values, u_values, "r-")
73 |
74 | plt.subplot(4, 1, 4)
75 | plt.ylabel("Current (I)")
76 | plt.xlabel("Time (in ms)")
77 | plt.grid()
78 | plt.plot(t_values, I_values, "r-o")
79 |
80 | if filename is not None:
81 | plt.savefig(filename)
82 |
83 | if view:
84 | plt.show()
85 | plt.close()
86 | fig = None
87 |
88 | return fig
89 |
90 |
91 | def plot_species(statistics, view=False, filename='speciation.svg'):
92 | """ Visualizes speciation throughout evolution. """
93 | if plt is None:
94 | warnings.warn("This display is not available due to a missing optional dependency (matplotlib)")
95 | return
96 |
97 | species_sizes = statistics.get_species_sizes()
98 | num_generations = len(species_sizes)
99 | curves = np.array(species_sizes).T
100 |
101 | fig, ax = plt.subplots()
102 | ax.stackplot(range(num_generations), *curves)
103 |
104 | plt.title("Speciation")
105 | plt.ylabel("Size per Species")
106 | plt.xlabel("Generations")
107 |
108 | plt.savefig(filename)
109 |
110 | if view:
111 | plt.show()
112 |
113 | plt.close()
114 |
115 |
116 | def draw_net(config, genome, view=False, filename=None, node_names=None, show_disabled=True, prune_unused=False,
117 | node_colors=None, fmt='svg'):
118 | """ Receives a genome and draws a neural network with arbitrary topology. """
119 | # Attributes for network nodes.
120 | if graphviz is None:
121 | warnings.warn("This display is not available due to a missing optional dependency (graphviz)")
122 | return
123 |
124 | if node_names is None:
125 | node_names = {}
126 |
127 | assert type(node_names) is dict
128 |
129 | if node_colors is None:
130 | node_colors = {}
131 |
132 | assert type(node_colors) is dict
133 |
134 | node_attrs = {
135 | 'shape': 'circle',
136 | 'fontsize': '7',
137 | 'height': '0.15',
138 | 'width': '0.15'}
139 |
140 | dot = graphviz.Digraph(format=fmt, node_attr=node_attrs)
141 |
142 | inputs = set()
143 | for k in config.genome_config.input_keys:
144 | inputs.add(k)
145 | name = node_names.get(k, str(k))
146 | input_attrs = {'style': 'filled', 'shape': 'box', 'fillcolor': node_colors.get(k, 'lightgray')}
147 | dot.node(name, _attributes=input_attrs)
148 |
149 | outputs = set()
150 | for k in config.genome_config.output_keys:
151 | outputs.add(k)
152 | name = node_names.get(k, str(k))
153 | node_attrs = {'style': 'filled', 'fillcolor': node_colors.get(k, 'lightblue')}
154 |
155 | dot.node(name, _attributes=node_attrs)
156 |
157 | if prune_unused:
158 | connections = set()
159 | for cg in genome.connections.values():
160 | if cg.enabled or show_disabled:
161 | connections.add((cg.in_node_id, cg.out_node_id))
162 |
163 | used_nodes = copy.copy(outputs)
164 | pending = copy.copy(outputs)
165 | while pending:
166 | new_pending = set()
167 | for a, b in connections:
168 | if b in pending and a not in used_nodes:
169 | new_pending.add(a)
170 | used_nodes.add(a)
171 | pending = new_pending
172 | else:
173 | used_nodes = set(genome.nodes.keys())
174 |
175 | for n in used_nodes:
176 | if n in inputs or n in outputs:
177 | continue
178 |
179 | attrs = {'style': 'filled',
180 | 'fillcolor': node_colors.get(n, 'white')}
181 | dot.node(str(n), _attributes=attrs)
182 |
183 | for cg in genome.connections.values():
184 | if cg.enabled or show_disabled:
185 | #if cg.input not in used_nodes or cg.output not in used_nodes:
186 | # continue
187 | input, output = cg.key
188 | a = node_names.get(input, str(input))
189 | b = node_names.get(output, str(output))
190 | style = 'solid' if cg.enabled else 'dotted'
191 | color = 'green' if cg.weight > 0 else 'red'
192 | width = str(0.1 + abs(cg.weight / 5.0))
193 | dot.edge(a, b, _attributes={'style': style, 'color': color, 'penwidth': width})
194 |
195 | dot.render(filename, view=view)
196 | return dot
197 |
--------------------------------------------------------------------------------