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.


486
487
488
489
490
491
492
# File 'lib/rubyneat/rubyneat.rb', line 486

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


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

def age_significance
  @age_significance
end

#babies_stolenObject

Returns the value of attribute babies_stolen.


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

def babies_stolen
  @babies_stolen
end

#compatibility_thresholdObject

Species compatability threshold


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

def compatibility_threshold
  @compatibility_threshold
end

#disjoint_coefficientObject

Speciation coffficient


391
392
393
# File 'lib/rubyneat/rubyneat.rb', line 391

def disjoint_coefficient
  @disjoint_coefficient
end

#dropoff_ageObject

Species Peality age for not making progress


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

def dropoff_age
  @dropoff_age
end

#evolved_substrate_switchObject

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


476
477
478
# File 'lib/rubyneat/rubyneat.rb', line 476

def evolved_substrate_switch
  @evolved_substrate_switch
end

#excess_coefficientObject

Speciation coffficient


391
392
393
# File 'lib/rubyneat/rubyneat.rb', line 391

def excess_coefficient
  @excess_coefficient
end

#feature_selection_switchObject

Enable FS-NEAT


467
468
469
# File 'lib/rubyneat/rubyneat.rb', line 467

def feature_selection_switch
  @feature_selection_switch
end

#fitness_cost_per_geneObject

Returns the value of attribute fitness_cost_per_gene.


444
445
446
# File 'lib/rubyneat/rubyneat.rb', line 444

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.


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

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)


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

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.


472
473
474
# File 'lib/rubyneat/rubyneat.rb', line 472

def hyper_switch
  @hyper_switch
end

#interspecies_mate_rateObject

Ratio of mating are actually interspecies


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

def interspecies_mate_rate
  @interspecies_mate_rate
end

#linktrait_mutation_sigObject

Returns the value of attribute linktrait_mutation_sig.


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

def linktrait_mutation_sig
  @linktrait_mutation_sig
end

#mate_multipoint_avg_probObject

Returns the value of attribute mate_multipoint_avg_prob.


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

def mate_multipoint_avg_prob
  @mate_multipoint_avg_prob
end

#mate_multipoint_probObject

Returns the value of attribute mate_multipoint_prob.


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

def mate_multipoint_prob
  @mate_multipoint_prob
end

#mate_only_probObject

Returns the value of attribute mate_only_prob.


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

def mate_only_prob
  @mate_only_prob
end

#mate_singlepoint_probObject

Returns the value of attribute mate_singlepoint_prob.


410
411
412
# File 'lib/rubyneat/rubyneat.rb', line 410

def mate_singlepoint_prob
  @mate_singlepoint_prob
end

#max_speciesObject

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


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

def max_species
  @max_species
end

#mutate_add_gene_probObject

Returns the value of attribute mutate_add_gene_prob.


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

def mutate_add_gene_prob
  @mutate_add_gene_prob
end

#mutate_add_neuron_probObject

Returns the value of attribute mutate_add_neuron_prob.


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

def mutate_add_neuron_prob
  @mutate_add_neuron_prob
end

#mutate_change_gene_weights_probObject

For gene weights perturbations and changes (complete overwrites)


427
428
429
# File 'lib/rubyneat/rubyneat.rb', line 427

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)


427
428
429
# File 'lib/rubyneat/rubyneat.rb', line 427

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.


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

def mutate_gene_disable_prob
  @mutate_gene_disable_prob
end

#mutate_gene_reenable_probObject

Returns the value of attribute mutate_gene_reenable_prob.


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

def mutate_gene_reenable_prob
  @mutate_gene_reenable_prob
end

#mutate_gene_trait_probObject

Returns the value of attribute mutate_gene_trait_prob.


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

def mutate_gene_trait_prob
  @mutate_gene_trait_prob
end

#mutate_neuron_trait_probObject

Returns the value of attribute mutate_neuron_trait_prob.


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

def mutate_neuron_trait_prob
  @mutate_neuron_trait_prob
end

#mutate_only_probObject

Returns the value of attribute mutate_only_prob.


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

def mutate_only_prob
  @mutate_only_prob
end

#mutate_perturb_gene_weights_probObject

For gene weights perturbations and changes (complete overwrites)


427
428
429
# File 'lib/rubyneat/rubyneat.rb', line 427

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)


427
428
429
# File 'lib/rubyneat/rubyneat.rb', line 427

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.


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

def mutate_random_trait_prob
  @mutate_random_trait_prob
end

#mutate_toggle_enable_probObject

Returns the value of attribute mutate_toggle_enable_prob.


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

def mutate_toggle_enable_prob
  @mutate_toggle_enable_prob
end

#mutdiff_coefficientObject

Returns the value of attribute mutdiff_coefficient.


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

def mutdiff_coefficient
  @mutdiff_coefficient
end

#neuron_trait_mut_sigObject

Returns the value of attribute neuron_trait_mut_sig.


438
439
440
# File 'lib/rubyneat/rubyneat.rb', line 438

def neuron_trait_mut_sig
  @neuron_trait_mut_sig
end

Returns the value of attribute newlink_tries.


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

def newlink_tries
  @newlink_tries
end

#population_sizeObject

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


448
449
450
# File 'lib/rubyneat/rubyneat.rb', line 448

def population_size
  @population_size
end

Returns the value of attribute print_every.


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

def print_every
  @print_every
end

#real_time_switchObject

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


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

def real_time_switch
  @real_time_switch
end

#recur_only_probObject

Returns the value of attribute recur_only_prob.


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

def recur_only_prob
  @recur_only_prob
end

#recur_probObject

Returns the value of attribute recur_prob.


455
456
457
# File 'lib/rubyneat/rubyneat.rb', line 455

def recur_prob
  @recur_prob
end

#recurrency_switchObject

If true, allow for recurrent networks.


483
484
485
# File 'lib/rubyneat/rubyneat.rb', line 483

def recurrency_switch
  @recurrency_switch
end

#smallest_speciesObject

Species smallest population allowed (coalse smaller species into one)


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

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


448
449
450
# File 'lib/rubyneat/rubyneat.rb', line 448

def start_population_size
  @start_population_size
end

#survival_mininum_per_speciesObject

Returns the value of attribute survival_mininum_per_species.


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

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.


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

def survival_threshold
  @survival_threshold
end

#trait_mutation_powerObject

Returns the value of attribute trait_mutation_power.


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

def trait_mutation_power
  @trait_mutation_power
end

#trait_param_mut_probObject

Returns the value of attribute trait_param_mut_prob.


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

def trait_param_mut_prob
  @trait_param_mut_prob
end

#weigh_mut_powerObject

Returns the value of attribute weigh_mut_power.


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

def weigh_mut_power
  @weigh_mut_power
end

#weight_coefficientObject

Speciation coffficient


391
392
393
# File 'lib/rubyneat/rubyneat.rb', line 391

def weight_coefficient
  @weight_coefficient
end