This repository has been archived on 2025-05-08. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
NEAT/evaluator.py

20 lines
672 B
Python

from typing import List, Tuple
from genome import Genome
TestCase = Tuple[List[float], List[float]]
class Evaluator:
def __init__(self, test_cases: List[TestCase]):
self.test_cases: List[TestCase] = test_cases
def evaluate(self, genome: Genome) -> float:
fitness: float = 0
for network_input, expected_output in self.test_cases:
network_output: List[float] = genome.evaluate_network(network_input)
error: float = 0
for expected, actual in zip(expected_output, network_output):
error += abs(expected - actual)
fitness += genome.output_nodes - error
return fitness