コード例 #1
0
ファイル: ga.py プロジェクト: dror1212/Neat-Python-Library
class ga:
    def __init__(self, inputs, hidden, outputs, mutation_rate, mutation_power):
        self.nn = NeuralNetwork(inputs, hidden, outputs)
        self.fitness = 0
        self.mutation_rate = mutation_rate
        self.mutation_power = mutation_power

    def predict(self, inputs_array):
        return self.nn.predict(inputs_array)

    def mutate(self, func = basic_mutate):
        self.nn.weights_inputs_hidden.BigMap(func, self.mutation_rate, self.mutation_power)
        self.nn.weights_hidden_outputs.BigMap(func, self.mutation_rate, self.mutation_power)
        self.nn.bias_hidden.BigMap(func, self.mutation_rate, self.mutation_power)
        self.nn.bias_output.BigMap(func, self.mutation_rate, self.mutation_power)

    def copy(self):
        cop = self.nn.copy()
        g = ga(self.nn.input_nodes, self.nn.hidden_nodes, self.nn.output_nodes, self.mutation_rate, self.mutation_power)
        g.nn = cop

        return g

    def crossOver(self, partner):
        child = self.copy()
        child.nn.weights_inputs_hidden.VariableMap(myCrossOver, partner.nn.weights_inputs_hidden)
        child.nn.weights_hidden_outputs.VariableMap(myCrossOver, partner.nn.weights_hidden_outputs)
        child.nn.bias_hidden.VariableMap(myCrossOver, partner.nn.bias_hidden)
        child.nn.bias_output.VariableMap(myCrossOver, partner.nn.bias_output)

        return child