Пример #1
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.randomizer = Randomizer(Random())

        selector_configuration = [
            EvolutionRandomSelectorConfiguration.create(),
            EvolutionRouletteSelectorConfiguration.create()
        ]
        self.configuration = EvolutionConfiguration.create(
            selector_configuration, inversion_chance=0, mutation_chance=0, crossover_chance=0)
        self.create_rule_population()
        self.create_grammar_statistics()
        self.create_rule_adding()

        self.sut = EvolutionService(self.randomizer)

        self.rules = [
            Rule(Symbol('S'), Symbol('NP'), Symbol('VP')),
            Rule(Symbol('VP'), Symbol('VP'), Symbol('PP')),
            Rule(Symbol('VP'), Symbol('V'), Symbol('NP')),
            TerminalRule(Symbol('VP'), Symbol('eats')),
            Rule(Symbol('PP'), Symbol('P'), Symbol('NP')),
            Rule(Symbol('NP'), Symbol('Det'), Symbol('N')),
            TerminalRule(Symbol('NP'), Symbol('she')), TerminalRule(Symbol('V'), Symbol('eats')),
            TerminalRule(Symbol('P'), Symbol('with')), TerminalRule(Symbol('N'), Symbol('fish')),
            TerminalRule(Symbol('N'), Symbol('fork')), TerminalRule(Symbol('Det'), Symbol('a'))
        ]
Пример #2
0
    def common_configuration(statistics_configuration, algorithm_variant):
        ga_selectors_configuration = []
        evolution_configuration = EvolutionConfiguration.create(
            selectors=ga_selectors_configuration,
            inversion_chance=0,
            mutation_chance=0,
            crossover_chance=0
        )

        induction_configuration = CykConfiguration.create(
            should_correct_grammar=False,
            terminal_chance=0,
            universal_chance=0,
            aggressive_chance=0,
            starting_chance=0,
            full_chance=0
        )

        rule_configuration = RuleConfiguration.create(
            crowding_factor=0,
            crowding_size=0,
            elitism_size=0,
            starting_symbol=1,
            universal_symbol=None,
            max_non_terminal_symbols=32,
            random_starting_population_size=20,
            max_non_terminal_rules=40
        )

        configuration = AlgorithmConfiguration.create(
            induction_configuration, evolution_configuration, rule_configuration,
            max_algorithm_steps=1,
            should_run_evolution=True,
            max_execution_time=900,
            satisfying_fitness=1,
            statistics=statistics_configuration,
            max_algorithm_runs=50,
            algorithm_variant=algorithm_variant
        )

        return configuration