31 lines
885 B
Python
31 lines
885 B
Python
from typing import Sequence
|
|
|
|
from .chromosome import Chromosome
|
|
from .primitive import Primitive
|
|
|
|
type Population = list[Chromosome]
|
|
|
|
|
|
def ramped_initialization(
|
|
chromosomes_per_variation: int,
|
|
depths: list[int],
|
|
terminals: Sequence[Primitive],
|
|
operations: Sequence[Primitive],
|
|
) -> Population:
|
|
"""Комбинация методов grow и full инициализации хромосом для инициализации начальной
|
|
популяции.
|
|
"""
|
|
population: Population = []
|
|
|
|
for depth in depths:
|
|
population.extend(
|
|
Chromosome.full_init(terminals, operations, depth)
|
|
for _ in range(chromosomes_per_variation)
|
|
)
|
|
population.extend(
|
|
Chromosome.grow_init(terminals, operations, depth)
|
|
for _ in range(chromosomes_per_variation)
|
|
)
|
|
|
|
return population
|