Class ImmutableNeatChromosomeSpec
- All Implemented Interfaces:
ChromosomeSpec
NeatChromosomeSpec
.
Use the builder to create immutable instances:
new NeatChromosomeSpec.Builder()
.
Use the static factory method to create immutable instances:
ImmutableNeatChromosomeSpec.of()
.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Builds instances of typeImmutableNeatChromosomeSpec
. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final float
private final float
private final int
private final int
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
ImmutableNeatChromosomeSpec
(int numInputs, int numOutputs, float minWeightValue, float maxWeightValue) -
Method Summary
Modifier and TypeMethodDescriptionstatic ImmutableNeatChromosomeSpec
copyOf
(NeatChromosomeSpec instance) Creates an immutable copy of aNeatChromosomeSpec
value.boolean
This instance is equal to all instances ofImmutableNeatChromosomeSpec
that have equal attribute values.private boolean
equalTo
(int synthetic, ImmutableNeatChromosomeSpec another) int
hashCode()
Computes a hash code from attributes:numInputs
,numOutputs
,minWeightValue
,maxWeightValue
.float
Returns the maximum allowed connection weight value.float
Returns the minimum allowed connection weight value.int
Returns the number of input nodes for the neural network.int
Returns the number of output nodes for the neural network.static ImmutableNeatChromosomeSpec
of
(int numInputs, int numOutputs, float minWeightValue, float maxWeightValue) Construct a new immutableNeatChromosomeSpec
instance.toString()
Prints the immutable valueNeatChromosomeSpec
with attribute values.private static ImmutableNeatChromosomeSpec
validate
(ImmutableNeatChromosomeSpec instance) withMaxWeightValue
(float value) Copy the current immutable object by setting a value for themaxWeightValue
attribute.withMinWeightValue
(float value) Copy the current immutable object by setting a value for theminWeightValue
attribute.withNumInputs
(int value) Copy the current immutable object by setting a value for thenumInputs
attribute.withNumOutputs
(int value) Copy the current immutable object by setting a value for thenumOutputs
attribute.Methods inherited from class net.bmahe.genetics4j.neat.spec.NeatChromosomeSpec
check
-
Field Details
-
numInputs
private final int numInputs -
numOutputs
private final int numOutputs -
minWeightValue
private final float minWeightValue -
maxWeightValue
private final float maxWeightValue
-
-
Constructor Details
-
ImmutableNeatChromosomeSpec
private ImmutableNeatChromosomeSpec(int numInputs, int numOutputs, float minWeightValue, float maxWeightValue)
-
-
Method Details
-
numInputs
public int numInputs()Returns the number of input nodes for the neural network.Input nodes receive external data and form the first layer of the network. They are assigned indices 0 through numInputs-1 and do not apply activation functions to their values.
- Specified by:
numInputs
in classNeatChromosomeSpec
- Returns:
- the number of input nodes (must be positive)
-
numOutputs
public int numOutputs()Returns the number of output nodes for the neural network.Output nodes produce the final results of network computation and form the last layer of the network. They are assigned indices numInputs through numInputs+numOutputs-1 and apply activation functions to their weighted sums.
- Specified by:
numOutputs
in classNeatChromosomeSpec
- Returns:
- the number of output nodes (must be positive)
-
minWeightValue
public float minWeightValue()Returns the minimum allowed connection weight value.This constraint is used by genetic operators to bound weight mutations and ensure network stability. New connections and weight perturbations should respect this lower bound.
- Specified by:
minWeightValue
in classNeatChromosomeSpec
- Returns:
- the minimum connection weight value
-
maxWeightValue
public float maxWeightValue()Returns the maximum allowed connection weight value.This constraint is used by genetic operators to bound weight mutations and ensure network stability. New connections and weight perturbations should respect this upper bound.
- Specified by:
maxWeightValue
in classNeatChromosomeSpec
- Returns:
- the maximum connection weight value
-
withNumInputs
Copy the current immutable object by setting a value for thenumInputs
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for numInputs- Returns:
- A modified copy of the
this
object
-
withNumOutputs
Copy the current immutable object by setting a value for thenumOutputs
attribute. A value equality check is used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for numOutputs- Returns:
- A modified copy of the
this
object
-
withMinWeightValue
Copy the current immutable object by setting a value for theminWeightValue
attribute. A value strict bits equality used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for minWeightValue- Returns:
- A modified copy of the
this
object
-
withMaxWeightValue
Copy the current immutable object by setting a value for themaxWeightValue
attribute. A value strict bits equality used to prevent copying of the same value by returningthis
.- Parameters:
value
- A new value for maxWeightValue- Returns:
- A modified copy of the
this
object
-
equals
This instance is equal to all instances ofImmutableNeatChromosomeSpec
that have equal attribute values. -
equalTo
-
hashCode
public int hashCode()Computes a hash code from attributes:numInputs
,numOutputs
,minWeightValue
,maxWeightValue
. -
toString
Prints the immutable valueNeatChromosomeSpec
with attribute values. -
of
public static ImmutableNeatChromosomeSpec of(int numInputs, int numOutputs, float minWeightValue, float maxWeightValue) Construct a new immutableNeatChromosomeSpec
instance.- Parameters:
numInputs
- The value for thenumInputs
attributenumOutputs
- The value for thenumOutputs
attributeminWeightValue
- The value for theminWeightValue
attributemaxWeightValue
- The value for themaxWeightValue
attribute- Returns:
- An immutable NeatChromosomeSpec instance
-
validate
-
copyOf
Creates an immutable copy of aNeatChromosomeSpec
value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.- Parameters:
instance
- The instance to copy- Returns:
- A copied immutable NeatChromosomeSpec instance
-