Esempio n. 1
0
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__)
Esempio n. 2
0
        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)
Esempio n. 3
0
        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)
Esempio n. 4
0
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)