Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/24/11 17:51:06 (13 years ago)
Author:
gkronber
Message:

#1553: added remaining unit tests to create and run optimizer samples.

File:
1 edited

Legend:

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

    r5941 r6476  
    3939  [StorableClass]
    4040  public sealed class ParticleSwarmOptimization : HeuristicOptimizationEngineAlgorithm, IStorableContent {
    41 
    42     #region Problem Properties
     41    #region Parameter Properties
     42    public IValueParameter<IntValue> SeedParameter {
     43      get { return (IValueParameter<IntValue>)Parameters["Seed"]; }
     44    }
     45    public IValueParameter<BoolValue> SetSeedRandomlyParameter {
     46      get { return (IValueParameter<BoolValue>)Parameters["SetSeedRandomly"]; }
     47    }
     48    public IValueParameter<IntValue> SwarmSizeParameter {
     49      get { return (IValueParameter<IntValue>)Parameters["SwarmSize"]; }
     50    }
     51    public IValueParameter<IntValue> MaxIterationsParameter {
     52      get { return (IValueParameter<IntValue>)Parameters["MaxIterations"]; }
     53    }
     54    public IValueParameter<DoubleValue> InertiaParameter {
     55      get { return (IValueParameter<DoubleValue>)Parameters["Inertia"]; }
     56    }
     57    public IValueParameter<DoubleValue> PersonalBestAttractionParameter {
     58      get { return (IValueParameter<DoubleValue>)Parameters["PersonalBestAttraction"]; }
     59    }
     60    public IValueParameter<DoubleValue> NeighborBestAttractionParameter {
     61      get { return (IValueParameter<DoubleValue>)Parameters["NeighborBestAttraction"]; }
     62    }
     63    public IValueParameter<MultiAnalyzer> AnalyzerParameter {
     64      get { return (IValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
     65    }
     66    public ConstrainedValueParameter<IParticleCreator> ParticleCreatorParameter {
     67      get { return (ConstrainedValueParameter<IParticleCreator>)Parameters["ParticleCreator"]; }
     68    }
     69    public ConstrainedValueParameter<IParticleUpdater> ParticleUpdaterParameter {
     70      get { return (ConstrainedValueParameter<IParticleUpdater>)Parameters["ParticleUpdater"]; }
     71    }
     72    public OptionalConstrainedValueParameter<ITopologyInitializer> TopologyInitializerParameter {
     73      get { return (OptionalConstrainedValueParameter<ITopologyInitializer>)Parameters["TopologyInitializer"]; }
     74    }
     75    public OptionalConstrainedValueParameter<ITopologyUpdater> TopologyUpdaterParameter {
     76      get { return (OptionalConstrainedValueParameter<ITopologyUpdater>)Parameters["TopologyUpdater"]; }
     77    }
     78    public OptionalConstrainedValueParameter<IDiscreteDoubleValueModifier> InertiaUpdaterParameter {
     79      get { return (OptionalConstrainedValueParameter<IDiscreteDoubleValueModifier>)Parameters["InertiaUpdater"]; }
     80    }
     81    public ConstrainedValueParameter<ISwarmUpdater> SwarmUpdaterParameter {
     82      get { return (ConstrainedValueParameter<ISwarmUpdater>)Parameters["SwarmUpdater"]; }
     83
     84    }
     85    #endregion
     86
     87    #region Properties
     88
     89    public string Filename { get; set; }
     90
     91    [Storable]
     92    private BestAverageWorstQualityAnalyzer qualityAnalyzer;
     93
     94    [Storable]
     95    private SolutionsCreator solutionsCreator;
     96
     97    [Storable]
     98    private ParticleSwarmOptimizationMainLoop mainLoop;
     99   
    43100    public override Type ProblemType {
    44101      get { return typeof(ISingleObjectiveHeuristicOptimizationProblem); }
     
    48105      set { base.Problem = value; }
    49106    }
     107    public IntValue Seed {
     108      get { return SeedParameter.Value; }
     109      set { SeedParameter.Value = value; }
     110    }
     111    public BoolValue SetSeedRandomly {
     112      get { return SetSeedRandomlyParameter.Value; }
     113      set { SetSeedRandomlyParameter.Value = value; }
     114    }
     115    public IntValue SwarmSize {
     116      get { return SwarmSizeParameter.Value; }
     117      set { SwarmSizeParameter.Value = value; }
     118    }
     119    public IntValue MaxIterations {
     120      get { return MaxIterationsParameter.Value; }
     121      set { MaxIterationsParameter.Value = value; }
     122    }
     123    public DoubleValue Inertia {
     124      get { return InertiaParameter.Value; }
     125      set { InertiaParameter.Value = value; }
     126    }
     127    public DoubleValue PersonalBestAttraction {
     128      get { return PersonalBestAttractionParameter.Value; }
     129      set { PersonalBestAttractionParameter.Value = value; }
     130    }
     131    public DoubleValue NeighborBestAttraction {
     132      get { return NeighborBestAttractionParameter.Value; }
     133      set { NeighborBestAttractionParameter.Value = value; }
     134    }
    50135    public MultiAnalyzer Analyzer {
    51136      get { return AnalyzerParameter.Value; }
    52137      set { AnalyzerParameter.Value = value; }
    53138    }
     139    public IParticleCreator ParticleCreator {
     140      get { return ParticleCreatorParameter.Value; }
     141      set { ParticleCreatorParameter.Value = value; }
     142    }
     143    public IParticleUpdater ParticleUpdater {
     144      get { return ParticleUpdaterParameter.Value; }
     145      set { ParticleUpdaterParameter.Value = value; }
     146    }
     147    public ITopologyInitializer TopologyInitializer {
     148      get { return TopologyInitializerParameter.Value; }
     149      set { TopologyInitializerParameter.Value = value; }
     150    }
     151    public ITopologyUpdater TopologyUpdater {
     152      get { return TopologyUpdaterParameter.Value; }
     153      set { TopologyUpdaterParameter.Value = value; }
     154    }
    54155    public IDiscreteDoubleValueModifier InertiaUpdater {
    55156      get { return InertiaUpdaterParameter.Value; }
    56157      set { InertiaUpdaterParameter.Value = value; }
    57158    }
    58     #endregion
    59 
    60     #region Parameter Properties
    61     public IValueParameter<IntValue> SeedParameter {
    62       get { return (IValueParameter<IntValue>)Parameters["Seed"]; }
    63     }
    64     public IValueParameter<BoolValue> SetSeedRandomlyParameter {
    65       get { return (IValueParameter<BoolValue>)Parameters["SetSeedRandomly"]; }
    66     }
    67     public IValueParameter<IntValue> SwarmSizeParameter {
    68       get { return (IValueParameter<IntValue>)Parameters["SwarmSize"]; }
    69     }
    70     public IValueParameter<IntValue> MaxIterationsParameter {
    71       get { return (IValueParameter<IntValue>)Parameters["MaxIterations"]; }
    72     }
    73     public IValueParameter<DoubleValue> InertiaParameter {
    74       get { return (IValueParameter<DoubleValue>)Parameters["Inertia"]; }
    75     }
    76     public IValueParameter<DoubleValue> PersonalBestAttractionParameter {
    77       get { return (IValueParameter<DoubleValue>)Parameters["PersonalBestAttraction"]; }
    78     }
    79     public IValueParameter<DoubleValue> NeighborBestAttractionParameter {
    80       get { return (IValueParameter<DoubleValue>)Parameters["NeighborBestAttraction"]; }
    81     }
    82     public IValueParameter<MultiAnalyzer> AnalyzerParameter {
    83       get { return (IValueParameter<MultiAnalyzer>)Parameters["Analyzer"]; }
    84     }
    85     public ConstrainedValueParameter<IParticleCreator> ParticleCreatorParameter {
    86       get { return (ConstrainedValueParameter<IParticleCreator>)Parameters["ParticleCreator"]; }
    87     }
    88     public ConstrainedValueParameter<IParticleUpdater> ParticleUpdaterParameter {
    89       get { return (ConstrainedValueParameter<IParticleUpdater>)Parameters["ParticleUpdater"]; }
    90     }
    91     public OptionalConstrainedValueParameter<ITopologyInitializer> TopologyInitializerParameter {
    92       get { return (OptionalConstrainedValueParameter<ITopologyInitializer>)Parameters["TopologyInitializer"]; }
    93     }
    94     public OptionalConstrainedValueParameter<ITopologyUpdater> TopologyUpdaterParameter {
    95       get { return (OptionalConstrainedValueParameter<ITopologyUpdater>)Parameters["TopologyUpdater"]; }
    96     }
    97     public OptionalConstrainedValueParameter<IDiscreteDoubleValueModifier> InertiaUpdaterParameter {
    98       get { return (OptionalConstrainedValueParameter<IDiscreteDoubleValueModifier>)Parameters["InertiaUpdater"]; }
    99     }
    100     public ConstrainedValueParameter<ISwarmUpdater> SwarmUpdaterParameter {
    101       get { return (ConstrainedValueParameter<ISwarmUpdater>)Parameters["SwarmUpdater"]; }
    102 
    103     }
    104     #endregion
    105 
    106     #region Properties
    107 
    108     public string Filename { get; set; }
    109 
    110     [Storable]
    111     private BestAverageWorstQualityAnalyzer qualityAnalyzer;
    112 
    113     [Storable]
    114     private SolutionsCreator solutionsCreator;
    115 
    116     [Storable]
    117     private ParticleSwarmOptimizationMainLoop mainLoop;
    118 
    119     public ITopologyInitializer TopologyInitializer {
    120       get { return TopologyInitializerParameter.Value; }
    121       set { TopologyInitializerParameter.Value = value; }
    122     }
    123 
    124     public ITopologyUpdater TopologyUpdater {
    125       get { return TopologyUpdaterParameter.Value; }
    126       set { TopologyUpdaterParameter.Value = value; }
    127     }
    128 
    129     public IParticleCreator ParticleCreator {
    130       get { return ParticleCreatorParameter.Value; }
    131       set { ParticleCreatorParameter.Value = value; }
    132     }
    133 
    134     public IParticleUpdater ParticleUpdater {
    135       get { return ParticleUpdaterParameter.Value; }
    136       set { ParticleUpdaterParameter.Value = value; }
     159    public ISwarmUpdater SwarmUpdater {
     160      get { return SwarmUpdaterParameter.Value; }
     161      set { SwarmUpdaterParameter.Value = value; }
    137162    }
    138163    #endregion
     
    333358    }
    334359
     360    private void ParameterizeTopologyUpdaters() {
     361      foreach (var updater in TopologyUpdaterParameter.ValidValues) {
     362        var multiPsoUpdater = updater as MultiPSOTopologyUpdater;
     363        if (multiPsoUpdater != null) {
     364          multiPsoUpdater.CurrentIterationParameter.ActualName = "Iterations";
     365        }
     366      }
     367    }
     368
    335369    private void UpdateTopologyParameters() {
    336370      ITopologyUpdater oldTopologyUpdater = TopologyUpdater;
     
    355389          if (newParticleUpdater != null) ParticleUpdater = newParticleUpdater;
    356390        }
     391
     392        ParameterizeTopologyUpdaters();
    357393      }
    358394    }
Note: See TracChangeset for help on using the changeset viewer.