public class RuleSetConstraints extends java.lang.Object implements Clique
First the initialization parameters. You need to specify a distribution from which the system will pick random integer values X. When a ruleset is to be initialized, a random value X is picked from this distribution, and the ruleset will be created with X initial rules. You can specify the distribution in one of two ways. First, you can specify a minimum and maximum number of rules; the system will then pick an X uniformly from between the min and the max. Second, you can specify a full distribution of size probabilities for more control. For example, to specify that the system should make individuals with 0 rules 0.1 of the time, 1 rule 0.2 of the time, and 2 rules 0.7 of the time, you set reset-num-sizes to 3 (for rule sizes up to but not including 3), and then set reset-size.0 to 0.1, reset-size.1 to 0.2, and reset-size.2 to 0.7.
Next the mutation parameters. The default mutation procedure works as follows. First, every rule in the ruleset is mutated. It is up to the rule to determine by how much or whether it will be mutated (perhaps by flipping a coin) when its mutate function is called. Second, the system repeatedly flips a coin with "p-del" probability of being true, until it comes up false. The number of times it came up true is the number of rules to remove from the ruleset; rules to be removed are chosen at random. Third, the system repeatedly flips a coin with "p-add" probability of being true, until it comes up false. The number of times it came up true is the number of new randomly-generated rules to add to the ruleset; rules are added to the end of the array. Fourth, with "p-rand-order" probability, the order of rules in the ruleset array is randomized; this last item might or might not matter to you depending on whether or not your rule interpreter differs depending on rule order.
Modifier and Type | Field and Description |
---|---|
byte |
constraintNumber
The byte value of the constraints -- we can only have 256 of them
|
int |
maxSize |
int |
minSize |
java.lang.String |
name
The name of the RuleSetConstraints object
|
double |
p_add |
static java.lang.String |
P_ADD_PROB |
double |
p_del |
static java.lang.String |
P_DEL_PROB |
static java.lang.String |
P_MAXSIZE |
static java.lang.String |
P_MINSIZE |
static java.lang.String |
P_NAME
The size of a byte
|
static java.lang.String |
P_NUMSIZES |
static java.lang.String |
P_RAND_ORDER_PROB |
double |
p_randorder |
static java.lang.String |
P_RESETMAXSIZE |
static java.lang.String |
P_RESETMINSIZE |
static java.lang.String |
P_RESETSIZE |
static java.lang.String |
P_RULE
num rulesets
|
int |
resetMaxSize |
int |
resetMinSize |
Rule |
rulePrototype
The prototype of the Rule that will be used in the RuleSet
(the RuleSet contains only rules with the specified prototype).
|
double[] |
sizeDistribution |
Constructor and Description |
---|
RuleSetConstraints() |
Modifier and Type | Method and Description |
---|---|
static RuleSetConstraints |
constraintsFor(java.lang.String constraintsName,
EvolutionState state)
You must guarantee that after calling constraintsFor(...) one or
several times, you call state.output.exitIfErrors() once.
|
int |
numRulesForReset(RuleSet ruleset,
EvolutionState state,
int thread)
Returns a stochastic value picked to specify the number of rules
to generate when calling reset() on this kind of Rule.
|
int |
pickSize(EvolutionState state,
int thread)
Assuming that either resetMinSize and resetMaxSize, or sizeDistribution, is defined,
picks a random size from resetMinSize...resetMaxSize inclusive, or randomly
from sizeDistribution.
|
void |
setup(EvolutionState state,
Parameter base)
Sets up the object by reading it from the parameters stored
in state, built off of the parameter base base.
|
java.lang.String |
toString()
Converting the rule to a string ( the name )
|
public static final java.lang.String P_NAME
public static final java.lang.String P_RULE
public static final java.lang.String P_RESETMINSIZE
public static final java.lang.String P_RESETMAXSIZE
public static final java.lang.String P_NUMSIZES
public static final java.lang.String P_RESETSIZE
public static final java.lang.String P_MINSIZE
public static final java.lang.String P_MAXSIZE
public int minSize
public int maxSize
public int resetMinSize
public int resetMaxSize
public double[] sizeDistribution
public static final java.lang.String P_ADD_PROB
public double p_add
public static final java.lang.String P_DEL_PROB
public double p_del
public static final java.lang.String P_RAND_ORDER_PROB
public double p_randorder
public Rule rulePrototype
public byte constraintNumber
public java.lang.String name
public int pickSize(EvolutionState state, int thread)
public int numRulesForReset(RuleSet ruleset, EvolutionState state, int thread)
public java.lang.String toString()
toString
in class java.lang.Object
public static RuleSetConstraints constraintsFor(java.lang.String constraintsName, EvolutionState state)
public void setup(EvolutionState state, Parameter base)
Setup