- Timestamp:
- 05/06/19 14:20:06 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2988_ModelsOfModels2/HeuristicLab.Algorithms.EMM/EMMBaseAlgorithm.cs
r16760 r16899 26 26 using HeuristicLab.Core; 27 27 using HeuristicLab.Data; 28 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 28 29 using HeuristicLab.Optimization; 29 30 using HeuristicLab.Parameters; … … 55 56 [Storable] 56 57 protected ExecutionState previousExecutionState; 58 59 [Storable] 60 protected ExecutionState currentExecutionState; 57 61 #endregion 58 62 … … 72 76 private const string InputFileParameterName = "InputFile"; 73 77 private const string ClusterNumbersParameterName = "ClusterNumbers"; 78 private const string ClusterNumbersShowParameterName = "ClusterNumbersShow"; 74 79 private const string AlgorithmImplementationTypeParameterName = "AlgorithmImplemetationType"; 75 private const string Map CreationTypeParameterName = "MapCreationType";80 private const string MapParameterName = "Map"; 76 81 private const string NegbourTypeParameterName = "NegbourType"; 77 82 private const string NegbourNumberParameterName = "NegbourNumber"; … … 85 90 get { return (IValueParameter<IntValue>)Parameters[ClusterNumbersParameterName]; } 86 91 } 87 public IFixedValueParameter<StringValue> AlgorithmImplementationTypeParameter { 88 get { return (IFixedValueParameter<StringValue>)Parameters[AlgorithmImplementationTypeParameterName]; } 89 } 90 public IFixedValueParameter<StringValue> MapCreationTypeParameter { 91 get { return (IFixedValueParameter<StringValue>)Parameters[MapCreationTypeParameterName]; } 92 public IValueParameter<IntValue> ClusterNumbersShowParameter { 93 get { return (IValueParameter<IntValue>)Parameters[ClusterNumbersShowParameterName]; } 94 } 95 public IConstrainedValueParameter<StringValue> AlgorithmImplementationTypeParameter { 96 get { return (IConstrainedValueParameter<StringValue>)Parameters[AlgorithmImplementationTypeParameterName]; } 97 } 98 public IConstrainedValueParameter<EMMMapBase<ISymbolicExpressionTree>> MapParameter { 99 get { return (IConstrainedValueParameter<EMMMapBase<ISymbolicExpressionTree>>)Parameters[MapParameterName]; } 92 100 } 93 101 public IFixedValueParameter<StringValue> NegbourTypeParameter { … … 144 152 set { ClusterNumbersParameter.Value = value; } 145 153 } 154 public IntValue ClusterNumbersShow { 155 get { return ClusterNumbersShowParameter.Value; } 156 set { ClusterNumbersShowParameter.Value = value; } 157 } 146 158 public StringValue AlgorithmImplemetationType { 147 159 get { return AlgorithmImplementationTypeParameter.Value; } 148 160 set { AlgorithmImplementationTypeParameter.Value.Value = value.Value; } 149 161 } 150 public StringValue MapCreationType{151 get { return Map CreationTypeParameter.Value; }152 set { Map CreationTypeParameter.Value.Value = value.Value; }162 public EMMMapBase<ISymbolicExpressionTree> Map { 163 get { return MapParameter.Value; } 164 set { MapParameter.Value = value; } 153 165 } 154 166 public StringValue NegbourType { … … 214 226 Parameters.Add(new FixedValueParameter<IntValue>(SeedParameterName, "The random seed used to initialize the new pseudo random number generator.", new IntValue(0))); 215 227 Parameters.Add(new FixedValueParameter<StringValue>(InputFileParameterName, "The file with set of models that will be.", new StringValue("input.txt"))); 216 Parameters.Add(new FixedValueParameter<StringValue>(AlgorithmImplementationTypeParameterName, "The Type of possible algorith, implemetation, choose one: OnlyMapCreation, CreateMapAndGo, ReadMapAndGo.", new StringValue("CreateMapAndGo")));217 Parameters.Add(new FixedValueParameter<StringValue>(MapCreationTypeParameterName, "The type of map crearion algorithm. Use one from: IslandMap, FullMap.", new StringValue("IslandMap")));228 Parameters.Add(new ConstrainedValueParameter<StringValue>(AlgorithmImplementationTypeParameterName, "The Type of possible algorith, implemetation, choose one: OnlyMap, Full, Read.")); 229 Parameters.Add(new ConstrainedValueParameter<EMMMapBase<ISymbolicExpressionTree>>(MapParameterName, "The type of map crearion algorithm. Use one from: IslandMap, NetworkMap.")); 218 230 Parameters.Add(new FixedValueParameter<IntValue>(NegbourNumberParameterName, "The parametr for FullMap type of map crearion algorithm. Use one from: 10, 20.", new IntValue(10))); 219 231 Parameters.Add(new FixedValueParameter<StringValue>(NegbourTypeParameterName, "The parametr for FullMap type of map crearion algorithm. Use one from: Percent, Number.", new StringValue("Number"))); … … 230 242 Parameters.Add(new ValueParameter<IRandom>(RandomParameterName, new MersenneTwister())); 231 243 Parameters.Add(new ValueParameter<IntValue>("Elites", "The numer of elite Solutions which are kept in each generation.", new IntValue(1))); 232 Parameters.Add(new ValueParameter<IntValue>(ClusterNumbersParameterName, "The number of clusters for model Map.", new IntValue(100))); 244 Parameters.Add(new ValueParameter<IntValue>(ClusterNumbersParameterName, "The number of clusters for model Map.", new IntValue(10))); 245 Parameters.Add(new ValueParameter<IntValue>(ClusterNumbersShowParameterName, "The number of clusters for model Map.", new IntValue(10))); 233 246 foreach (ISelector selector in ApplicationManager.Manager.GetInstances<ISelector>().Where(x => !(x is IMultiObjectiveSelector)).OrderBy(x => x.Name)) 234 247 SelectorParameter.ValidValues.Add(selector); … … 238 251 239 252 ProblemChanged += EvolvmentModelsOfModelsAlgorithmBase_ProblemChanged; 240 253 MapParameterUpdate(); 241 254 } 242 255 … … 245 258 Problem.SymbolicExpressionTreeInterpreter = new SymbolicDataAnalysisExpressionTreeBatchInterpreter(); 246 259 //Problem.SymbolicExpressionTreeGrammar = new EMMGrammar(); 260 } 261 } 262 protected void MapParameterUpdate() { 263 int neghboorNumber = 10; 264 265 switch (NegbourType.Value) { 266 case "Percent": neghboorNumber = Convert.ToInt32((Convert.ToDouble(ClusterNumbersParameter.Value.Value)) * (Convert.ToDouble(NegbourNumber.Value)) / 100.0); break; 267 case "Number": neghboorNumber = NegbourNumber.Value; break; 268 default: neghboorNumber = NegbourNumber.Value; break; 269 } 270 var mapTypes = new EMMMapBase<ISymbolicExpressionTree>[] 271 { 272 new EMMIslandMap(), 273 new EMMNetworkMap(neghboorNumber) 274 }; 275 foreach (var t in mapTypes) { 276 MapParameter.ValidValues.Add(t); 277 } 278 var algorithmType = new StringValue[] 279 { 280 new StringValue("Full"), 281 new StringValue("Read"), 282 new StringValue ("OnlyMap") 283 }; 284 foreach (var t in algorithmType) { 285 AlgorithmImplementationTypeParameter.ValidValues.Add(t); 247 286 } 248 287 } … … 410 449 411 450 protected override void OnExecutionStateChanged() { 412 previousExecutionState = ExecutionState; 451 previousExecutionState = currentExecutionState; 452 currentExecutionState = ExecutionState; 413 453 base.OnExecutionStateChanged(); 414 454 }
Note: See TracChangeset
for help on using the changeset viewer.