예제 #1
0
import matplotlib.pyplot as plt
from easygui import fileopenbox
from matplotlib.lines import Line2D
from matplotlib.patches import Patch

from definitions import ROOT_PATH
from nagi.constants import FLIP_POINT_2D, NUM_TIME_STEPS, RED, BLUE, GREEN
from nagi.simulation_2d import TwoDimensionalEnvironment, TwoDimensionalAgent
from nagi.visualization import visualize_genome

with open(f'{fileopenbox(default=f"{ROOT_PATH}/data/*genome*.pkl")}',
          'rb') as file:
    test_genome = pickle.load(file)

agent = TwoDimensionalAgent.create_agent(test_genome)
visualize_genome(test_genome, show_learning_rules=False, with_legend=False)
environment = TwoDimensionalEnvironment(50, 5, testing=True)
(_, fitness, weights, membrane_potentials, time_step, intervals, actuators,
 accuracy, end_of_sample_accuracy, samples,
 logic_gates) = environment.simulate_with_visualization(agent)

number_of_neurons = len(membrane_potentials.keys())
number_of_weights = len(weights.keys())
t_values = range(time_step + 1)
alpha = 0.85


def add_vertical_lines_and_background(height: int):
    flip_points = [
        flip_point for flip_point in range(len(t_values))
        if flip_point >= FLIP_POINT_2D * NUM_TIME_STEPS and flip_point %
예제 #2
0
import matplotlib.pyplot as plt
from easygui import fileopenbox
from matplotlib.lines import Line2D
from matplotlib.patches import Patch

from definitions import ROOT_PATH
from nagi.constants import FLIP_POINT_1D, NUM_TIME_STEPS, RED, BLUE, GREEN
from nagi.simulation_1d import OneDimensionalEnvironment, OneDimensionalAgent
from nagi.visualization import visualize_genome

with open(f'{fileopenbox(default=f"{ROOT_PATH}/data/*genome*.pkl")}',
          'rb') as file:
    test_genome = pickle.load(file)

agent = OneDimensionalAgent.create_agent(test_genome)
visualize_genome(test_genome, False, False)
environment = OneDimensionalEnvironment(50, 5)
(_, fitness, weights, membrane_potentials, time_step, intervals, actuators,
 accuracy, end_of_sample_accuracy, samples,
 beneficial_food) = environment.simulate_with_visualization(agent)

number_of_neurons = len(membrane_potentials.keys())
number_of_weights = len(weights.keys())
t_values = range(time_step + 1)
alpha = 0.85


def add_vertical_lines_and_background(height: int):
    flip_points = [
        flip_point for flip_point in range(len(t_values))
        if flip_point >= FLIP_POINT_1D * NUM_TIME_STEPS and flip_point %
예제 #3
0
import random

from nagi.neat import Population
from nagi.visualization import visualize_genome

pop = Population(100, 4, 2)

for i in range(50):
    print(f'--Generation {i}:')
    for species in pop.species.values():
        print(f'ID: {species.key}, number of individuals: {len(species)}')

    pop.next_generation({key: random.random() for key in pop.genomes.keys()})
visualize_genome(random.choice(list(pop.genomes.values())))
예제 #4
0
import pickle
from itertools import count

from definitions import ROOT_PATH
from nagi.neat import Genome
from nagi.visualization import visualize_genome

input_size, output_size = 6, 2
test_genome = Genome(0, input_size, output_size, count(input_size + output_size + 1), is_initial_genome=True)
for _ in range(20):
    test_genome.mutate()
visualize_genome(test_genome)

with open(f'{ROOT_PATH}/data/test_genome_2d.pkl', 'wb') as file:
    pickle.dump(test_genome, file)