~/bend-docscommunity

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