from neat import NodeType, Node, seed from NeatTests.neat_test import setup, test, run if __name__ == '__main__': @setup def setup(genome, node_inno, con_inno): seed(1337) input1 = Node(node_inno.inc, 0, NodeType.INPUT) input2 = Node(node_inno.inc, 0, NodeType.INPUT) output = Node(node_inno.inc, 1, NodeType.OUTPUT) genome.add_node(input1) genome.add_node(input2) genome.add_node(output) @test def test(genome, node_inno, con_inno): genome.connection_mutation(con_inno, 10) run(__file__)
genome[0].add_connection(Connection(0, 0, 3, 1.0, True)) genome[0].add_connection(Connection(1, 1, 3, 1.0, False)) genome[0].add_connection(Connection(2, 2, 3, 1.0, True)) genome[0].add_connection(Connection(3, 1, 4, 1.0, True)) genome[0].add_connection(Connection(4, 4, 3, 1.0, True)) genome[0].add_connection(Connection(8, 0, 4, 1.0, True)) for _ in range(3): genome[1].add_node(Node(node_inno[1].inc, 0, NodeType.INPUT)) genome[1].add_node(Node(node_inno[1].inc, 3, NodeType.OUTPUT)) genome[1].add_node(Node(node_inno[1].inc, 1, NodeType.HIDDEN)) genome[1].add_node(Node(node_inno[1].inc, 2, NodeType.HIDDEN)) genome[1].add_connection(Connection(0, 0, 3, 0.5, True)) genome[1].add_connection(Connection(1, 1, 3, 0.5, False)) genome[1].add_connection(Connection(2, 2, 3, 0.5, True)) genome[1].add_connection(Connection(3, 1, 4, 0.5, True)) genome[1].add_connection(Connection(4, 4, 3, 0.5, False)) genome[1].add_connection(Connection(5, 4, 5, 0.5, True)) genome[1].add_connection(Connection(6, 5, 3, 0.5, True)) genome[1].add_connection(Connection(8, 2, 4, 0.5, True)) genome[1].add_connection(Connection(10, 0, 5, 0.5, True)) @test def test(genome, node_inno, con_inno): genome[2] = Genome.crossover(genome[0], genome[1], 0.10) print(genome[2]) pass run(__file__, 3, spacing=50)
for _ in range(3): output = net.calculate(input) print(f'Output len={len(output)}, output[0]={output[0]}=0.9924') print() print('========== Test 5 ==========') genome = Genome() genome.add_node(Node(0, 0, NodeType.INPUT)) genome.add_node(Node(1, 0, NodeType.INPUT)) genome.add_node(Node(2, 0, NodeType.INPUT)) genome.add_node(Node(3, 2, NodeType.OUTPUT)) genome.add_node(Node(4, 1, NodeType.HIDDEN)) genome.add_node(Node(5, 1, NodeType.HIDDEN)) genome.add_connection(Connection(0, 0, 4, 0.4, True)) genome.add_connection(Connection(1, 1, 4, 0.7, True)) genome.add_connection(Connection(2, 2, 4, 0.1, True)) genome.add_connection(Connection(3, 4, 3, 1.0, True)) genome.add_connection(Connection(4, 2, 5, 0.2, True)) genome.add_connection(Connection(5, 5, 4, 0.75, True)) genome.add_connection(Connection(6, 5, 3, 0.55, True)) net = Network(genome) input = [1., 2., 3.] for _ in range(3): output = net.calculate(input) print(f'Output len={len(output)}, output[0]={output[0]}=0.99895') print() run(__file__, output=False)
from neat import NodeType, Node, Connection, seed from NeatTests.neat_test import setup, test, run if __name__ == '__main__': @setup def setup(genome, node_inno, con_inno): seed(1337) genome.add_node(Node(node_inno.inc, 0, NodeType.INPUT)) genome.add_node(Node(node_inno.inc, 0, NodeType.INPUT)) genome.add_node(Node(node_inno.inc, 1, NodeType.OUTPUT)) genome.add_connection(Connection(con_inno.inc, 0, 2, 0.5, True)) genome.add_connection(Connection(con_inno.inc, 1, 2, 1.0, True)) @test def test(genome, node_inno, con_inno): n = 100000 for _ in range(n): genome.mutate(0.7) run(__file__, 1)