X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fga-0.10.0%2F__ga_problem_private_state__.m;fp=octave_packages%2Fga-0.10.0%2F__ga_problem_private_state__.m;h=28fffc270a32cc08ff20f208d5d28a1cdd836a4a;hp=0000000000000000000000000000000000000000;hb=c880e8788dfc484bf23ce13fa2787f2c6bca4863;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/ga-0.10.0/__ga_problem_private_state__.m b/octave_packages/ga-0.10.0/__ga_problem_private_state__.m new file mode 100644 index 0000000..28fffc2 --- /dev/null +++ b/octave_packages/ga-0.10.0/__ga_problem_private_state__.m @@ -0,0 +1,49 @@ +## Copyright (C) 2008 Luca Favatella +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; If not, see . + +## Author: Luca Favatella +## Version: 1.1.1 + +function private_state = __ga_problem_private_state__ (options) + private_state.ReproductionCount.elite = options.EliteCount; + private_state.ReproductionCount.crossover = \ + fix (options.CrossoverFraction * + (options.PopulationSize - options.EliteCount)); + private_state.ReproductionCount.mutation = \ + options.PopulationSize - \ + (private_state.ReproductionCount.elite + + private_state.ReproductionCount.crossover); + assert (private_state.ReproductionCount.elite + + private_state.ReproductionCount.crossover + + private_state.ReproductionCount.mutation, + options.PopulationSize); ## DEBUG + + private_state.parentsCount.crossover = \ + 2 * private_state.ReproductionCount.crossover; + private_state.parentsCount.mutation = \ + 1 * private_state.ReproductionCount.mutation; + private_state.nParents = \ + private_state.parentsCount.crossover + \ + private_state.parentsCount.mutation; + + private_state.parentsSelection.crossover = \ + 1:private_state.parentsCount.crossover; + private_state.parentsSelection.mutation = \ + private_state.parentsCount.crossover + \ + (1:private_state.parentsCount.mutation); + assert (length (private_state.parentsSelection.crossover) + + length (private_state.parentsSelection.mutation), + private_state.nParents); ## DEBUG +endfunction \ No newline at end of file