Class: NEAT::Controller::NeatSettings

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

Overview

Various parameters affecting evolution. Based somewhat on the 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

#log, log, #to_s

Constructor Details

- (NeatSettings) initialize

Set up defaults for mandatory entries.



318
319
320
321
322
323
324
325
326
327
328
# File 'lib/rubyneat/rubyneat.rb', line 318

def initialize
  super
  @start_sequence_at = 0
  @end_sequence_at = 100
  @max_generations = 1000

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

Instance Attribute Details

- (Object) age_significance

based on the C version of NEAT



217
218
219
# File 'lib/rubyneat/rubyneat.rb', line 217

def age_significance
  @age_significance
end

- (Object) babies_stolen

Returns the value of attribute babies_stolen



218
219
220
# File 'lib/rubyneat/rubyneat.rb', line 218

def babies_stolen
  @babies_stolen
end

- (Object) compatibility_threshold

Species compatability threshold



221
222
223
# File 'lib/rubyneat/rubyneat.rb', line 221

def compatibility_threshold
  @compatibility_threshold
end

- (Object) disjoint_coefficient

Speciation coffficient



224
225
226
# File 'lib/rubyneat/rubyneat.rb', line 224

def disjoint_coefficient
  @disjoint_coefficient
end

- (Object) dropoff_age

Species Peality age for not making progress



231
232
233
# File 'lib/rubyneat/rubyneat.rb', line 231

def dropoff_age
  @dropoff_age
end

- (Object) end_sequence_at

Returns the value of attribute end_sequence_at



283
284
285
# File 'lib/rubyneat/rubyneat.rb', line 283

def end_sequence_at
  @end_sequence_at
end

- (Object) evolved_substrate_switch

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



308
309
310
# File 'lib/rubyneat/rubyneat.rb', line 308

def evolved_substrate_switch
  @evolved_substrate_switch
end

- (Object) excess_coefficient

Speciation coffficient



224
225
226
# File 'lib/rubyneat/rubyneat.rb', line 224

def excess_coefficient
  @excess_coefficient
end

- (Object) feature_selection_switch

Enable FS-NEAT



299
300
301
# File 'lib/rubyneat/rubyneat.rb', line 299

def feature_selection_switch
  @feature_selection_switch
end

- (Object) fitness_cost_per_gene

Returns the value of attribute fitness_cost_per_gene



277
278
279
# File 'lib/rubyneat/rubyneat.rb', line 277

def fitness_cost_per_gene
  @fitness_cost_per_gene
end

- (Object) fitness_cost_per_neuron

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



276
277
278
# File 'lib/rubyneat/rubyneat.rb', line 276

def fitness_cost_per_neuron
  @fitness_cost_per_neuron
end

- (Object) hash_on_fitness

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



214
215
216
# File 'lib/rubyneat/rubyneat.rb', line 214

def hash_on_fitness
  @hash_on_fitness
end

- (Object) hyper_switch

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



304
305
306
# File 'lib/rubyneat/rubyneat.rb', line 304

def hyper_switch
  @hyper_switch
end

- (Object) interspecies_mate_rate

Ratio of mating are actually interspecies



237
238
239
# File 'lib/rubyneat/rubyneat.rb', line 237

def interspecies_mate_rate
  @interspecies_mate_rate
end

- (Object) linktrait_mutation_sig

Returns the value of attribute linktrait_mutation_sig



239
240
241
# File 'lib/rubyneat/rubyneat.rb', line 239

def linktrait_mutation_sig
  @linktrait_mutation_sig
end

- (Object) mate_multipoint_avg_prob

Returns the value of attribute mate_multipoint_avg_prob



240
241
242
# File 'lib/rubyneat/rubyneat.rb', line 240

def mate_multipoint_avg_prob
  @mate_multipoint_avg_prob
end

- (Object) mate_multipoint_prob

Returns the value of attribute mate_multipoint_prob



241
242
243
# File 'lib/rubyneat/rubyneat.rb', line 241

def mate_multipoint_prob
  @mate_multipoint_prob
end

- (Object) mate_only_prob

Returns the value of attribute mate_only_prob



242
243
244
# File 'lib/rubyneat/rubyneat.rb', line 242

def mate_only_prob
  @mate_only_prob
end

- (Object) mate_singlepoint_prob

Returns the value of attribute mate_singlepoint_prob



243
244
245
# File 'lib/rubyneat/rubyneat.rb', line 243

def mate_singlepoint_prob
  @mate_singlepoint_prob
end

- (Object) max_generations

Maximum number of generations to run, if given.



246
247
248
# File 'lib/rubyneat/rubyneat.rb', line 246

def max_generations
  @max_generations
end

- (Object) max_population_history

Maximun number of populations to maintain in the history buffer.



249
250
251
# File 'lib/rubyneat/rubyneat.rb', line 249

def max_population_history
  @max_population_history
end

- (Object) max_species

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



228
229
230
# File 'lib/rubyneat/rubyneat.rb', line 228

def max_species
  @max_species
end

- (Object) mutate_add_gene_prob

Returns the value of attribute mutate_add_gene_prob



251
252
253
# File 'lib/rubyneat/rubyneat.rb', line 251

def mutate_add_gene_prob
  @mutate_add_gene_prob
end

- (Object) mutate_add_neuron_prob

Returns the value of attribute mutate_add_neuron_prob



252
253
254
# File 'lib/rubyneat/rubyneat.rb', line 252

def mutate_add_neuron_prob
  @mutate_add_neuron_prob
end

- (Object) mutate_change_gene_weights_prob

For gene weights perturbations and changes (complete overwrites)



260
261
262
# File 'lib/rubyneat/rubyneat.rb', line 260

def mutate_change_gene_weights_prob
  @mutate_change_gene_weights_prob
end

- (Object) mutate_change_gene_weights_sd

For gene weights perturbations and changes (complete overwrites)



260
261
262
# File 'lib/rubyneat/rubyneat.rb', line 260

def mutate_change_gene_weights_sd
  @mutate_change_gene_weights_sd
end

- (Object) mutate_gene_disable_prob

Returns the value of attribute mutate_gene_disable_prob



254
255
256
# File 'lib/rubyneat/rubyneat.rb', line 254

def mutate_gene_disable_prob
  @mutate_gene_disable_prob
end

- (Object) mutate_gene_reenable_prob

Returns the value of attribute mutate_gene_reenable_prob



255
256
257
# File 'lib/rubyneat/rubyneat.rb', line 255

def mutate_gene_reenable_prob
  @mutate_gene_reenable_prob
end

- (Object) mutate_gene_trait_prob

Returns the value of attribute mutate_gene_trait_prob



257
258
259
# File 'lib/rubyneat/rubyneat.rb', line 257

def mutate_gene_trait_prob
  @mutate_gene_trait_prob
end

- (Object) mutate_neuron_trait_prob

Returns the value of attribute mutate_neuron_trait_prob



265
266
267
# File 'lib/rubyneat/rubyneat.rb', line 265

def mutate_neuron_trait_prob
  @mutate_neuron_trait_prob
end

- (Object) mutate_only_prob

Returns the value of attribute mutate_only_prob



266
267
268
# File 'lib/rubyneat/rubyneat.rb', line 266

def mutate_only_prob
  @mutate_only_prob
end

- (Object) mutate_perturb_gene_weights_prob

For gene weights perturbations and changes (complete overwrites)



260
261
262
# File 'lib/rubyneat/rubyneat.rb', line 260

def mutate_perturb_gene_weights_prob
  @mutate_perturb_gene_weights_prob
end

- (Object) mutate_perturb_gene_weights_sd

For gene weights perturbations and changes (complete overwrites)



260
261
262
# File 'lib/rubyneat/rubyneat.rb', line 260

def mutate_perturb_gene_weights_sd
  @mutate_perturb_gene_weights_sd
end

- (Object) mutate_random_trait_prob

Returns the value of attribute mutate_random_trait_prob



267
268
269
# File 'lib/rubyneat/rubyneat.rb', line 267

def mutate_random_trait_prob
  @mutate_random_trait_prob
end

- (Object) mutate_toggle_enable_prob

Returns the value of attribute mutate_toggle_enable_prob



268
269
270
# File 'lib/rubyneat/rubyneat.rb', line 268

def mutate_toggle_enable_prob
  @mutate_toggle_enable_prob
end

- (Object) mutdiff_coefficient

Returns the value of attribute mutdiff_coefficient



269
270
271
# File 'lib/rubyneat/rubyneat.rb', line 269

def mutdiff_coefficient
  @mutdiff_coefficient
end

- (Object) neuron_trait_mut_sig

Returns the value of attribute neuron_trait_mut_sig



271
272
273
# File 'lib/rubyneat/rubyneat.rb', line 271

def neuron_trait_mut_sig
  @neuron_trait_mut_sig
end

Returns the value of attribute newlink_tries



270
271
272
# File 'lib/rubyneat/rubyneat.rb', line 270

def newlink_tries
  @newlink_tries
end

- (Object) population_size

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



281
282
283
# File 'lib/rubyneat/rubyneat.rb', line 281

def population_size
  @population_size
end

Returns the value of attribute print_every



285
286
287
# File 'lib/rubyneat/rubyneat.rb', line 285

def print_every
  @print_every
end

- (Object) real_time_switch

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



312
313
314
# File 'lib/rubyneat/rubyneat.rb', line 312

def real_time_switch
  @real_time_switch
end

- (Object) recur_only_prob

Returns the value of attribute recur_only_prob



286
287
288
# File 'lib/rubyneat/rubyneat.rb', line 286

def recur_only_prob
  @recur_only_prob
end

- (Object) recur_prob

Returns the value of attribute recur_prob



287
288
289
# File 'lib/rubyneat/rubyneat.rb', line 287

def recur_prob
  @recur_prob
end

- (Object) recurrency_switch

If true, allow for recurrent networks.



315
316
317
# File 'lib/rubyneat/rubyneat.rb', line 315

def recurrency_switch
  @recurrency_switch
end

- (Object) smallest_species

Species smallest population allowed (coalse smaller species into one)



234
235
236
# File 'lib/rubyneat/rubyneat.rb', line 234

def smallest_species
  @smallest_species
end

- (Object) start_population_size

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



281
282
283
# File 'lib/rubyneat/rubyneat.rb', line 281

def start_population_size
  @start_population_size
end

- (Object) start_sequence_at

Returns the value of attribute start_sequence_at



283
284
285
# File 'lib/rubyneat/rubyneat.rb', line 283

def start_sequence_at
  @start_sequence_at
end

- (Object) survival_mininum_per_species

Returns the value of attribute survival_mininum_per_species



292
293
294
# File 'lib/rubyneat/rubyneat.rb', line 292

def survival_mininum_per_species
  @survival_mininum_per_species
end

- (Object) survival_threshold

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



291
292
293
# File 'lib/rubyneat/rubyneat.rb', line 291

def survival_threshold
  @survival_threshold
end

- (Object) trait_mutation_power

Returns the value of attribute trait_mutation_power



294
295
296
# File 'lib/rubyneat/rubyneat.rb', line 294

def trait_mutation_power
  @trait_mutation_power
end

- (Object) trait_param_mut_prob

Returns the value of attribute trait_param_mut_prob



295
296
297
# File 'lib/rubyneat/rubyneat.rb', line 295

def trait_param_mut_prob
  @trait_param_mut_prob
end

- (Object) weigh_mut_power

Returns the value of attribute weigh_mut_power



296
297
298
# File 'lib/rubyneat/rubyneat.rb', line 296

def weigh_mut_power
  @weigh_mut_power
end

- (Object) weight_coefficient

Speciation coffficient



224
225
226
# File 'lib/rubyneat/rubyneat.rb', line 224

def weight_coefficient
  @weight_coefficient
end