Free cookie consent management tool by TermsFeed Policy Generator

Changeset 3601


Ignore:
Timestamp:
05/04/10 01:26:04 (14 years ago)
Author:
abeham
Message:

Added replacement operators and IReplacer interface #998

Location:
trunk/sources
Files:
5 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithm.cs

    r3429 r3601  
    7676      get { return (ConstrainedValueParameter<ISelector>)Parameters["EmigrantsSelector"]; }
    7777    }
    78     private ConstrainedValueParameter<ISelector> ImmigrationSelectorParameter {
    79       get { return (ConstrainedValueParameter<ISelector>)Parameters["ImmigrationSelector"]; }
     78    private ConstrainedValueParameter<IReplacer> ImmigrationReplacerParameter {
     79      get { return (ConstrainedValueParameter<IReplacer>)Parameters["ImmigrationReplacer"]; }
    8080    }
    8181    private ValueParameter<IntValue> PopulationSizeParameter {
     
    134134      set { EmigrantsSelectorParameter.Value = value; }
    135135    }
    136     public ISelector ImmigrationSelector {
    137       get { return ImmigrationSelectorParameter.Value; }
    138       set { ImmigrationSelectorParameter.Value = value; }
     136    public IReplacer ImmigrationReplacer {
     137      get { return ImmigrationReplacerParameter.Value; }
     138      set { ImmigrationReplacerParameter.Value = value; }
    139139    }
    140140    public IntValue PopulationSize {
     
    175175    }
    176176    private List<ISelector> emigrantsSelectors;
    177     private List<ISelector> immigrationSelectors;
     177    private List<IReplacer> immigrationReplacers;
    178178    private List<IMigrator> migrators;
    179179    private RandomCreator RandomCreator {
     
    202202      Parameters.Add(new ConstrainedValueParameter<IMigrator>("Migrator", "The migration strategy."));
    203203      Parameters.Add(new ConstrainedValueParameter<ISelector>("EmigrantsSelector", "Selects the individuals that will be migrated."));
    204       Parameters.Add(new ConstrainedValueParameter<ISelector>("ImmigrationSelector", "Selects the population from the unification of the original population and the immigrants."));
     204      Parameters.Add(new ConstrainedValueParameter<IReplacer>("ImmigrationReplacer", "Selects the population from the unification of the original population and the immigrants."));
    205205      Parameters.Add(new ValueParameter<IntValue>("PopulationSize", "The size of the population of solutions.", new IntValue(100)));
    206206      Parameters.Add(new ValueParameter<IntValue>("MaximumMigrations", "The maximum number of migrations that should occur.", new IntValue(100)));
     
    238238
    239239      mainLoop.EmigrantsSelectorParameter.ActualName = EmigrantsSelectorParameter.Name;
    240       mainLoop.ImmigrationSelectorParameter.ActualName = ImmigrationSelectorParameter.Name;
     240      mainLoop.ImmigrationReplacerParameter.ActualName = ImmigrationReplacerParameter.Name;
    241241      mainLoop.MaximumMigrationsParameter.ActualName = MaximumMigrationsParameter.Name;
    242242      mainLoop.MigrationIntervalParameter.ActualName = MigrationIntervalParameter.Name;
     
    380380      emigrantsSelectors = new List<ISelector>();
    381381      emigrantsSelectors.AddRange(ApplicationManager.Manager.GetInstances<ISelector>().Where(x => !(x is IMultiObjectiveSelector)).OrderBy(x => x.Name));
    382       immigrationSelectors = new List<ISelector>();
    383       immigrationSelectors.AddRange(ApplicationManager.Manager.GetInstances<ISelector>().Where(x => !(x is IMultiObjectiveSelector)).OrderBy(x => x.Name));
     382      immigrationReplacers = new List<IReplacer>();
     383      immigrationReplacers.AddRange(ApplicationManager.Manager.GetInstances<IReplacer>().OrderBy(x => x.Name));
    384384      ParameterizeSelectors();
    385385    }
     
    400400        ParameterizeStochasticOperator(selector);
    401401      }
    402       foreach (ISelector selector in immigrationSelectors) {
    403         selector.CopySelected = new BoolValue(false);
    404         selector.NumberOfSelectedSubScopesParameter.Value = PopulationSize;
    405         ParameterizeStochasticOperator(selector);
     402      foreach (IReplacer replacer in immigrationReplacers) {
     403        ParameterizeStochasticOperator(replacer);
    406404      }
    407405      if (Problem != null) {
     
    414412          selector.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName;
    415413        }
    416         foreach (ISingleObjectiveSelector selector in immigrationSelectors.OfType<ISingleObjectiveSelector>()) {
     414        foreach (ISingleObjectiveReplacer selector in immigrationReplacers.OfType<ISingleObjectiveReplacer>()) {
    417415          selector.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name;
    418416          selector.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName;
     
    443441      }
    444442
    445       oldSelector = ImmigrationSelectorParameter.Value;
    446       ImmigrationSelectorParameter.ValidValues.Clear();
    447       foreach (ISelector selector in immigrationSelectors)
    448         ImmigrationSelectorParameter.ValidValues.Add(selector);
    449       if (oldSelector != null) {
    450         ISelector selector = ImmigrationSelectorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldSelector.GetType());
    451         if (selector != null) ImmigrationSelectorParameter.Value = selector;
     443      IReplacer oldReplacer = ImmigrationReplacerParameter.Value;
     444      ImmigrationReplacerParameter.ValidValues.Clear();
     445      foreach (IReplacer replacer in immigrationReplacers)
     446        ImmigrationReplacerParameter.ValidValues.Add(replacer);
     447      if (oldReplacer != null) {
     448        IReplacer replacer = ImmigrationReplacerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldSelector.GetType());
     449        if (replacer != null) ImmigrationReplacerParameter.Value = replacer;
    452450      }
    453451    }
  • trunk/sources/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/IslandGeneticAlgorithmMainLoop.cs

    r3376 r3601  
    7070      get { return (ValueLookupParameter<IOperator>)Parameters["EmigrantsSelector"]; }
    7171    }
    72     public ValueLookupParameter<IOperator> ImmigrationSelectorParameter {
    73       get { return (ValueLookupParameter<IOperator>)Parameters["ImmigrationSelector"]; }
     72    public ValueLookupParameter<IOperator> ImmigrationReplacerParameter {
     73      get { return (ValueLookupParameter<IOperator>)Parameters["ImmigrationReplacer"]; }
    7474    }
    7575    public ValueLookupParameter<IntValue> PopulationSizeParameter {
     
    107107    }
    108108    #endregion
    109 
    110     /*#region Properties
    111     private GeneticAlgorithmMainLoop GeneticAlgorithmMainLoop {
    112       get { return (GeneticAlgorithmMainLoop)((UniformSubScopesProcessor)OperatorGraph.InitialOperator).Operator; }
    113     }
    114     #endregion*/
    115109
    116110    [StorableConstructor]
     
    128122      Parameters.Add(new ValueLookupParameter<IOperator>("Migrator", "The migration strategy."));
    129123      Parameters.Add(new ValueLookupParameter<IOperator>("EmigrantsSelector", "Selects the individuals that will be migrated."));
    130       Parameters.Add(new ValueLookupParameter<IOperator>("ImmigrationSelector", "Selects the population from the unification of the original population and the immigrants."));
     124      Parameters.Add(new ValueLookupParameter<IOperator>("ImmigrationReplacer", "Replaces some of the original population with the immigrants."));
    131125      Parameters.Add(new ValueLookupParameter<IntValue>("PopulationSize", "The size of the population of solutions."));
    132126      Parameters.Add(new ValueLookupParameter<IntValue>("MaximumMigrations", "The maximum number of migrations after which the operator should terminate."));
     
    158152      Placeholder migrator = new Placeholder();
    159153      UniformSubScopesProcessor ussp2 = new UniformSubScopesProcessor();
    160       MergingReducer mergingReducer = new MergingReducer();
    161       Placeholder immigrationSelector = new Placeholder();
    162       RightReducer rightReducer = new RightReducer();
     154      Placeholder immigrationReplacer = new Placeholder();
    163155      IntCounter migrationsCounter = new IntCounter();
    164156      Comparator maxMigrationsComparator = new Comparator();
     
    238230      migrator.OperatorParameter.ActualName = MigratorParameter.Name;
    239231
    240       immigrationSelector.Name = "Immigration Selector (placeholder)";
    241       immigrationSelector.OperatorParameter.ActualName = ImmigrationSelectorParameter.Name;
     232      immigrationReplacer.Name = "Immigration Replacer (placeholder)";
     233      immigrationReplacer.OperatorParameter.ActualName = ImmigrationReplacerParameter.Name;
    242234
    243235      migrationsCounter.Name = "Migrations + 1";
     
    293285      emigrantsSelector.Successor = null;
    294286      migrator.Successor = ussp2;
    295       ussp2.Operator = mergingReducer;
     287      ussp2.Operator = immigrationReplacer;
    296288      ussp2.Successor = migrationsCounter;
    297       mergingReducer.Successor = immigrationSelector;
    298       immigrationSelector.Successor = rightReducer;
    299       rightReducer.Successor = null;
     289      immigrationReplacer.Successor = null;
    300290      migrationsCounter.Successor = maxMigrationsComparator;
    301291      maxMigrationsComparator.Successor = bestQualityMemorizer3;
  • trunk/sources/HeuristicLab.Optimization/3.3/HeuristicLab.Optimization-3.3.csproj

    r3450 r3601  
    8787    <Compile Include="Algorithm.cs" />
    8888    <Compile Include="BatchRun.cs" />
     89    <Compile Include="Interfaces\ISingleObjectiveReplacer.cs" />
    8990    <Compile Include="Interfaces\IMigrator.cs" />
     91    <Compile Include="Interfaces\IReplacer.cs" />
    9092    <Compile Include="Interfaces\ISubScopesQualityComparator.cs" />
    9193    <Compile Include="Interfaces\IQualityComparator.cs" />
  • trunk/sources/HeuristicLab.Selection/3.3/HeuristicLab.Selection-3.3.csproj

    r3413 r3601  
    8484    <Compile Include="BestSelector.cs" />
    8585    <Compile Include="ConditionalSelector.cs" />
     86    <Compile Include="RandomReplacer.cs" />
    8687    <Compile Include="GenderSpecificSelector.cs" />
    8788    <Compile Include="OffspringSelector.cs" />
     89    <Compile Include="Replacer.cs" />
    8890    <Compile Include="RightChildReducer.cs" />
    8991    <Compile Include="SingleObjectiveSelector.cs" />
     
    101103    <Compile Include="Selector.cs" />
    102104    <Compile Include="TournamentSelector.cs" />
     105    <Compile Include="WorstReplacer.cs" />
    103106    <Compile Include="WorstSelector.cs" />
    104107  </ItemGroup>
Note: See TracChangeset for help on using the changeset viewer.