Class: NEAT::Controller::NeatSettings

Inherits:
NeatOb
  • Object
show all
Defined in:
lib/rubyneat/rubyneat.rb

Overview

Various parameters affecting evolution. Based somewhat on the Ken Stanley C version of NEAT. TODO not all of these parameters are implemented yet!!!

Instance Attribute Summary collapse

Attributes inherited from NeatOb

#controller, #name

Instance Method Summary collapse

Methods inherited from NeatOb

attr_neat, log, #log, #to_s

Constructor Details

#initializeNeatSettings

Set up defaults for mandatory entries.



484
485
486
487
488
489
490
# File 'lib/rubyneat/rubyneat.rb', line 484

def initialize
  super
  # Default operators
  @evaluator = Evaluator.new self
  @expressor = Expressor.new self
  @evolver = Evolver.new self
end

Instance Attribute Details

#age_significanceObject

based on the C version of NEAT



382
383
384
# File 'lib/rubyneat/rubyneat.rb', line 382

def age_significance
  @age_significance
end

#babies_stolenObject

Returns the value of attribute babies_stolen.



383
384
385
# File 'lib/rubyneat/rubyneat.rb', line 383

def babies_stolen
  @babies_stolen
end

#compatibility_thresholdObject

Species compatability threshold



386
387
388
# File 'lib/rubyneat/rubyneat.rb', line 386

def compatibility_threshold
  @compatibility_threshold
end

#disjoint_coefficientObject

Speciation coffficient



389
390
391
# File 'lib/rubyneat/rubyneat.rb', line 389

def disjoint_coefficient
  @disjoint_coefficient
end

#dropoff_ageObject

Species Peality age for not making progress



396
397
398
# File 'lib/rubyneat/rubyneat.rb', line 396

def dropoff_age
  @dropoff_age
end

#evolved_substrate_switchObject

Enable Evolved Substrate HyperNEAT. Meaningless unless hyper_switch is also enabled.



474
475
476
# File 'lib/rubyneat/rubyneat.rb', line 474

def evolved_substrate_switch
  @evolved_substrate_switch
end

#excess_coefficientObject

Speciation coffficient



389
390
391
# File 'lib/rubyneat/rubyneat.rb', line 389

def excess_coefficient
  @excess_coefficient
end

#feature_selection_switchObject

Enable FS-NEAT



465
466
467
# File 'lib/rubyneat/rubyneat.rb', line 465

def feature_selection_switch
  @feature_selection_switch
end

#fitness_cost_per_geneObject

Returns the value of attribute fitness_cost_per_gene.



442
443
444
# File 'lib/rubyneat/rubyneat.rb', line 442

def fitness_cost_per_gene
  @fitness_cost_per_gene
end

#fitness_cost_per_neuronObject

fitness costs, if given, use in the computation of fitness AFTER the overall fitness for the applied stimuli have been calculated.



441
442
443
# File 'lib/rubyneat/rubyneat.rb', line 441

def fitness_cost_per_neuron
  @fitness_cost_per_neuron
end

#hash_on_fitnessObject

Set to true to returned named parameters as hashes to the fitness function (the default is to do ordered arrays)



379
380
381
# File 'lib/rubyneat/rubyneat.rb', line 379

def hash_on_fitness
  @hash_on_fitness
end

#hyper_switchObject

Enable HyperNEAT. This will result in the critters being interpreted as CPPNs for substrate weights. Additional setup will be necessary.



470
471
472
# File 'lib/rubyneat/rubyneat.rb', line 470

def hyper_switch
  @hyper_switch
end

#interspecies_mate_rateObject

Ratio of mating are actually interspecies



402
403
404
# File 'lib/rubyneat/rubyneat.rb', line 402

def interspecies_mate_rate
  @interspecies_mate_rate
end

#linktrait_mutation_sigObject

Returns the value of attribute linktrait_mutation_sig.



404
405
406
# File 'lib/rubyneat/rubyneat.rb', line 404

def linktrait_mutation_sig
  @linktrait_mutation_sig
end

#mate_multipoint_avg_probObject

Returns the value of attribute mate_multipoint_avg_prob.



405
406
407
# File 'lib/rubyneat/rubyneat.rb', line 405

def mate_multipoint_avg_prob
  @mate_multipoint_avg_prob
end

#mate_multipoint_probObject

Returns the value of attribute mate_multipoint_prob.



406
407
408
# File 'lib/rubyneat/rubyneat.rb', line 406

def mate_multipoint_prob
  @mate_multipoint_prob
end

#mate_only_probObject

Returns the value of attribute mate_only_prob.



407
408
409
# File 'lib/rubyneat/rubyneat.rb', line 407

def mate_only_prob
  @mate_only_prob
end

#mate_singlepoint_probObject

Returns the value of attribute mate_singlepoint_prob.



408
409
410
# File 'lib/rubyneat/rubyneat.rb', line 408

def mate_singlepoint_prob
  @mate_singlepoint_prob
end

#max_speciesObject

Max target number of species (will result in the compatability_coeifficient being adjusted automatically



393
394
395
# File 'lib/rubyneat/rubyneat.rb', line 393

def max_species
  @max_species
end

#mutate_add_gene_probObject

Returns the value of attribute mutate_add_gene_prob.



416
417
418
# File 'lib/rubyneat/rubyneat.rb', line 416

def mutate_add_gene_prob
  @mutate_add_gene_prob
end

#mutate_add_neuron_probObject

Returns the value of attribute mutate_add_neuron_prob.



417
418
419
# File 'lib/rubyneat/rubyneat.rb', line 417

def mutate_add_neuron_prob
  @mutate_add_neuron_prob
end

#mutate_change_gene_weights_probObject

For gene weights perturbations and changes (complete overwrites)



425
426
427
# File 'lib/rubyneat/rubyneat.rb', line 425

def mutate_change_gene_weights_prob
  @mutate_change_gene_weights_prob
end

#mutate_change_gene_weights_sdObject

For gene weights perturbations and changes (complete overwrites)



425
426
427
# File 'lib/rubyneat/rubyneat.rb', line 425

def mutate_change_gene_weights_sd
  @mutate_change_gene_weights_sd
end

#mutate_gene_disable_probObject

Returns the value of attribute mutate_gene_disable_prob.



419
420
421
# File 'lib/rubyneat/rubyneat.rb', line 419

def mutate_gene_disable_prob
  @mutate_gene_disable_prob
end

#mutate_gene_reenable_probObject

Returns the value of attribute mutate_gene_reenable_prob.



420
421
422
# File 'lib/rubyneat/rubyneat.rb', line 420

def mutate_gene_reenable_prob
  @mutate_gene_reenable_prob
end

#mutate_gene_trait_probObject

Returns the value of attribute mutate_gene_trait_prob.



422
423
424
# File 'lib/rubyneat/rubyneat.rb', line 422

def mutate_gene_trait_prob
  @mutate_gene_trait_prob
end

#mutate_neuron_trait_probObject

Returns the value of attribute mutate_neuron_trait_prob.



430
431
432
# File 'lib/rubyneat/rubyneat.rb', line 430

def mutate_neuron_trait_prob
  @mutate_neuron_trait_prob
end

#mutate_only_probObject

Returns the value of attribute mutate_only_prob.



431
432
433
# File 'lib/rubyneat/rubyneat.rb', line 431

def mutate_only_prob
  @mutate_only_prob
end

#mutate_perturb_gene_weights_probObject

For gene weights perturbations and changes (complete overwrites)



425
426
427
# File 'lib/rubyneat/rubyneat.rb', line 425

def mutate_perturb_gene_weights_prob
  @mutate_perturb_gene_weights_prob
end

#mutate_perturb_gene_weights_sdObject

For gene weights perturbations and changes (complete overwrites)



425
426
427
# File 'lib/rubyneat/rubyneat.rb', line 425

def mutate_perturb_gene_weights_sd
  @mutate_perturb_gene_weights_sd
end

#mutate_random_trait_probObject

Returns the value of attribute mutate_random_trait_prob.



432
433
434
# File 'lib/rubyneat/rubyneat.rb', line 432

def mutate_random_trait_prob
  @mutate_random_trait_prob
end

#mutate_toggle_enable_probObject

Returns the value of attribute mutate_toggle_enable_prob.



433
434
435
# File 'lib/rubyneat/rubyneat.rb', line 433

def mutate_toggle_enable_prob
  @mutate_toggle_enable_prob
end

#mutdiff_coefficientObject

Returns the value of attribute mutdiff_coefficient.



434
435
436
# File 'lib/rubyneat/rubyneat.rb', line 434

def mutdiff_coefficient
  @mutdiff_coefficient
end

#neuron_trait_mut_sigObject

Returns the value of attribute neuron_trait_mut_sig.



436
437
438
# File 'lib/rubyneat/rubyneat.rb', line 436

def neuron_trait_mut_sig
  @neuron_trait_mut_sig
end

Returns the value of attribute newlink_tries.



435
436
437
# File 'lib/rubyneat/rubyneat.rb', line 435

def newlink_tries
  @newlink_tries
end

#population_sizeObject

If set, will start off at the specified size and grow to the bigger population size



446
447
448
# File 'lib/rubyneat/rubyneat.rb', line 446

def population_size
  @population_size
end

Returns the value of attribute print_every.



451
452
453
# File 'lib/rubyneat/rubyneat.rb', line 451

def print_every
  @print_every
end

#real_time_switchObject

Enable RT-NEAT, for gradual evolution suitable for games and other human-interactive systems.



478
479
480
# File 'lib/rubyneat/rubyneat.rb', line 478

def real_time_switch
  @real_time_switch
end

#recur_only_probObject

Returns the value of attribute recur_only_prob.



452
453
454
# File 'lib/rubyneat/rubyneat.rb', line 452

def recur_only_prob
  @recur_only_prob
end

#recur_probObject

Returns the value of attribute recur_prob.



453
454
455
# File 'lib/rubyneat/rubyneat.rb', line 453

def recur_prob
  @recur_prob
end

#recurrency_switchObject

If true, allow for recurrent networks.



481
482
483
# File 'lib/rubyneat/rubyneat.rb', line 481

def recurrency_switch
  @recurrency_switch
end

#smallest_speciesObject

Species smallest population allowed (coalse smaller species into one)



399
400
401
# File 'lib/rubyneat/rubyneat.rb', line 399

def smallest_species
  @smallest_species
end

#start_population_sizeObject

If set, will start off at the specified size and grow to the bigger population size



446
447
448
# File 'lib/rubyneat/rubyneat.rb', line 446

def start_population_size
  @start_population_size
end

#survival_mininum_per_speciesObject

Returns the value of attribute survival_mininum_per_species.



458
459
460
# File 'lib/rubyneat/rubyneat.rb', line 458

def survival_mininum_per_species
  @survival_mininum_per_species
end

#survival_thresholdObject

factor (0 to 1) of the top percentage of the species that’s allowed to mate.



457
458
459
# File 'lib/rubyneat/rubyneat.rb', line 457

def survival_threshold
  @survival_threshold
end

#trait_mutation_powerObject

Returns the value of attribute trait_mutation_power.



460
461
462
# File 'lib/rubyneat/rubyneat.rb', line 460

def trait_mutation_power
  @trait_mutation_power
end

#trait_param_mut_probObject

Returns the value of attribute trait_param_mut_prob.



461
462
463
# File 'lib/rubyneat/rubyneat.rb', line 461

def trait_param_mut_prob
  @trait_param_mut_prob
end

#weigh_mut_powerObject

Returns the value of attribute weigh_mut_power.



462
463
464
# File 'lib/rubyneat/rubyneat.rb', line 462

def weigh_mut_power
  @weigh_mut_power
end

#weight_coefficientObject

Speciation coffficient



389
390
391
# File 'lib/rubyneat/rubyneat.rb', line 389

def weight_coefficient
  @weight_coefficient
end