diff --git a/eo/tutorial/html/FirstRealGA.html b/eo/tutorial/html/FirstRealGA.html index 7bd1b168f..e14d5a7d4 100644 --- a/eo/tutorial/html/FirstRealGA.html +++ b/eo/tutorial/html/FirstRealGA.html @@ -272,7 +272,7 @@ The actual code is in boldface and the comment in normal face.
Note: Also,
a non-templatized fitness can be compiled
separately (not done here) into an object
file once and for all (remember
@@ -82,8 +82,8 @@ have to declare 3 template arguments: the type of EO object it will be
applied to, the return type and the type of argument the function actually
requires.
-
Note: In the
-previous files (Bit - Real)
+
Note: In
+the previous files (Bit - Real)
, the last 2 types were deduced from the first (2nd argument = fitness
type of EO object, third = first).
@@ -105,7 +105,7 @@ You can also use different initializers and call them in turn through the
call to pop.append() function
(see Exercise 2).
Note: Don't
+ Note: A third optional argument
-in method add is a boolean
-(defaulted to false). When true, the actual rates for all operators are
-displayed on the screen as percentages: you don't have to input rates that
-sum up to 1, all rates are scaled anyway.
+ Note: The operators have to be encapsulated
into an eoTransform object
(Bit - Real)
Note: Don't
forget to evaluate the population:
the eoPop has no idea of the eval function, so it has to be done from outside!!!
@@ -113,24 +113,67 @@ the eoPop has no idea of the eval function, so it has to be done from outside!!!
You can now use
different
crossover
-and mutation
-operatorsin the same algorithm
-(Bit - Real),
-choosing among them according to
-relative
-rates. The class eoPropCombinedxxxOp,
+and mutation
+operatorsin
+the same algorithm, choosing among them according to
+relative
+rates. The
+class eoPropCombinedxxxOp,
where
-xxx is either Mon (for mutation, of class eoMonOp)
+xxx is either Mon (for mutations, of class eoMonOp)
or Quad (for crossovers, of class eoQuadOp),
is derived from the corresponding eoxxxOp class. When applying the eoPropCombinedxxxOp,
one of the eoxxxOp it contains is chosen by a roulette
wheel, according to their respective rates, and is applied to the arguments.
-
+
+Note: A third optional argument in
+method add is a boolean (defaulted
+to false). When true, the actual rates for all operators are displayed
+on the screen as percentages: you don't have to input rates that sum up
+to 1, all rates are scaled anyway.
+Three crossover operators
+are available: the one-point
+crossover is still there (class ), but now you also have the N-point
+crossover eoBinNxOver
+(the number of points is 2 by default, but as always you can change
+that in the constructor), and the Uniform
+crossover eoBinUxOver
+(where you can eventually twidle the choice from one parent to the other
+by providing a probability in the constructore - defaulted to 0.5, which
+amounts to symmetrical choice).
+As for mutation operators,
+apart from the eoBinMutation
+(standard bitstring mutation flipping one bit with a given probability)
+you can also use the eoDetBitFlip
+that always filps the same number of bits (1 by default, but you can change
+that in the constructor), randomly chosen in the bitstring. Even though
+the average number of bits flipped is the same if the eoBinMutation
+is used with a rate of 1/N (N is the bitstring
+length) the behavior of these mutation can
+be very different on many problems.
+Two crossover operators
+are available: the eoSegmentCrossover
+chooses one point uniformly on the segment joining the parents, while the
+eoArithmeticCrossover
+performs a segment crossover on each coordinate independently, which amount
+to choosing the offspring uniformly in the hypercube whose diagonal is
+the segment joining the parents.
+As for mutation operators,
+apart from the eoBinMutation
+(standard bitstring mutation flipping one bit with a given probability)
+you can also use the eoDetBitFlip
+that always filps the same number of bits (1 by default, but you can change
+that in the constructor), randomly chosen in the bitstring. And last but
+not least, the normal mutation eoNormMutation modifies all coordinates
+with a Gaussian noise, with standard deviation passed in the constructor.
+