我正在使用以下库: https ://github.com/vishnugh/evo-NEAT
这似乎是一个非常简单的 NEAT 实现。因此我使用以下配置:
package com.evo.NEAT.com.evo.NEAT.config;
/**
* Created by vishnughosh on 01/03/17.
*/
public class NEAT_Config {
public static final int INPUTS = 11;
public static final int OUTPUTS = 2;
public static final int HIDDEN_NODES = 100;
public static final int POPULATION =300;
public static final float COMPATIBILITY_THRESHOLD = Float.MAX_VALUE;
public static final float EXCESS_COEFFICENT = 1;
public static final float DISJOINT_COEFFICENT = 1;
public static final float WEIGHT_COEFFICENT = 5;
public static final float STALE_SPECIES = 2;
public static final float STEPS = 0.1f;
public static final float PERTURB_CHANCE = 0.9f;
public static final float WEIGHT_CHANCE = 0.5f;
public static final float WEIGHT_MUTATION_CHANCE = 0.5f;
public static final float NODE_MUTATION_CHANCE = 0.1f;
public static final float CONNECTION_MUTATION_CHANCE = 0.1f;
public static final float BIAS_CONNECTION_MUTATION_CHANCE = 0.1f;
public static final float DISABLE_MUTATION_CHANCE = 0.1f;
public static final float ENABLE_MUTATION_CHANCE = 0.2f ;
public static final float CROSSOVER_CHANCE = 0.1f;
public static final int STALE_POOL = 10;
}
但是,种类太多了(大约 60 种)。我不知道如何减少这个数字,因为 COMPATIBILITY_THRESHOLD 已经最大化。
那我的错是什么?
注意:我没有使用:http ://nn.cs.utexas.edu/keyword?stanley:ec02 ,因为这个算法似乎在不断变化的环境中不起作用(健身几乎没有变化)