Engine.bend relies on unsafe/foreign
raw source on the hub · import 0x07516e23611e5287ce89bcff661be83f/Engine.bend as Engine
4 imports
import Base import ./Types.bend as T import ./Eval.bend as E import ./Genetics.bend as G
Definitions
def eval_individual source · line 7 · raw
@+tree:0x07516e23611e5287ce89bcff661be83f/Types.Expr -> @+points:List<&2, 0x07516e23611e5287ce89bcff661be83f/Types.Point> -> 0x07516e23611e5287ce89bcff661be83f/Types.Individual
Avalia um único indivíduo
def evaluate_population source · line 12 · raw
@pop:List<&2, 0x07516e23611e5287ce89bcff661be83f/Types.Expr> -> @+points:List<&2, 0x07516e23611e5287ce89bcff661be83f/Types.Point> -> List<&2, 0x07516e23611e5287ce89bcff661be83f/Types.Individual>
Avalia toda a população em paralelo
def get_at source · line 21 · raw
@+idx:U32 -> @pop:List<&2, 0x07516e23611e5287ce89bcff661be83f/Types.Individual> -> 0x07516e23611e5287ce89bcff661be83f/Types.Individual
Busca um elemento na lista pelo índice
def tournament_select source · line 32 · raw
@is_less:Bool -> @tree1:0x07516e23611e5287ce89bcff661be83f/Types.Expr -> @tree2:0x07516e23611e5287ce89bcff661be83f/Types.Expr -> 0x07516e23611e5287ce89bcff661be83f/Types.Expr
def tournament_step2 source · line 37 · raw
@ind2:0x07516e23611e5287ce89bcff661be83f/Types.Individual -> @t1:0x07516e23611e5287ce89bcff661be83f/Types.Expr -> @f1:F32 -> 0x07516e23611e5287ce89bcff661be83f/Types.Expr
def tournament_step source · line 42 · raw
@ind1:0x07516e23611e5287ce89bcff661be83f/Types.Individual -> @ind2:0x07516e23611e5287ce89bcff661be83f/Types.Individual -> 0x07516e23611e5287ce89bcff661be83f/Types.Expr
def tournament source · line 48 · raw
@+pop:List<&2, 0x07516e23611e5287ce89bcff661be83f/Types.Individual> -> @+pop_len:U32 -> @+rng:U32 -> 0x07516e23611e5287ce89bcff661be83f/Types.Expr
Seleção por torneio entre 2 indivíduos aleatórios
def breed_child source · line 54 · raw
@+pop:List<&2, 0x07516e23611e5287ce89bcff661be83f/Types.Individual> -> @+pop_len:U32 -> @+rng:U32 -> 0x07516e23611e5287ce89bcff661be83f/Types.Expr
Gera um descendente combinando torneio, crossover e mutação
def evolve source · line 71 · raw
@gen:Nat -> @pop:List<&2, 0x07516e23611e5287ce89bcff661be83f/Types.Expr> -> @+points:List<&2, 0x07516e23611e5287ce89bcff661be83f/Types.Point> -> @+pop_len:U32 -> @+seed:U32 -> List<&2, 0x07516e23611e5287ce89bcff661be83f/Types.Individual>
Loop recursivo de evolução
Unsafe
unsafe generate_next_pop source · line 62 · raw
@count:U32 -> @+pop:List<&2, 0x07516e23611e5287ce89bcff661be83f/Types.Individual> -> @+pop_len:U32 -> @+seed:U32 -> List<&2, 0x07516e23611e5287ce89bcff661be83f/Types.Expr>
Cria a nova geração em paralelo