Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/27/11 23:56:35 (14 years ago)
Author:
cneumuel
Message:

#1215

  • fixed issue with multiple problems (by introducing valuesReadOnly to IOptimizable)
  • fixed error message when removing last problem instance
  • made quality measure name configurable
Location:
branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/ParameterCombinationsEnumerator.cs

    r5653 r6489  
    2222      get {
    2323        if (!initialized)
    24           throw new SystemException("Enumeration not started. Call MoveNext!");
     24          throw new InvalidOperationException("Enumeration not started. Call MoveNext!");
    2525        return Current;
    2626      }
  • branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/ParameterConfigurationTree.cs

    r6421 r6489  
    161161      this.parameterConfigurations.Add(new SingleValuedParameterConfiguration("Algorithm", algproblemitem.AlgorithmParameter));
    162162      this.parameterConfigurations.Add(new SingleValuedParameterConfiguration("Problem", algproblemitem.ProblemParameter));
     163
     164      // problems can be modified in the list of problem instances, so the parameters which are not Optimize=true,
     165      // must not be modifiable in the parameter configuration tree. otherwise the parameter values would be ambiguous
     166      ProblemConfiguration.ValuesReadOnly = true;
    163167    }
    164168    public ParameterConfigurationTree() { }
     
    190194    [StorableHook(HookType.AfterDeserialization)]
    191195    private void AfterDeserialization() {
     196      if(ProblemConfiguration != null) ProblemConfiguration.ValuesReadOnly = true;
    192197    }
    193198    #endregion
  • branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/ParameterConfigurations/ParameterConfiguration.cs

    r6486 r6489  
    146146    }
    147147
     148    [Storable]
     149    protected bool valuesReadOnly = false;
     150    public virtual bool ValuesReadOnly {
     151      get { return valuesReadOnly; }
     152      set {
     153        if (value != this.valuesReadOnly) {
     154          this.valuesReadOnly = value;
     155          foreach (var vc in this.valueConfigurations) {
     156            vc.ValuesReadOnly = value;
     157          }
     158        }
     159      }
     160    }
    148161
    149162    #region Constructors and Cloning
     
    220233      this.discoverValidValues = original.discoverValidValues;
    221234      this.AutoPopulateValueConfigurations = original.AutoPopulateValueConfigurations;
     235      this.valuesReadOnly = original.valuesReadOnly;
    222236    }
    223237
     
    485499
    486500    public void Parameterize(IValueParameter parameter) {
     501      if (!Optimize && ValuesReadOnly)
     502        return;
     503
    487504      if (Optimize) {
    488505        if (this.ActualValue.Value is IParameterizedItem) {
  • branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/ValueConfigurations/ParameterizedValueConfiguration.cs

    r5927 r6489  
    4646      get { return discoverValidValues; }
    4747      set { discoverValidValues = value; }
     48    }
     49
     50    public override bool ValuesReadOnly {
     51      set {
     52        if (value != this.valuesReadOnly) {
     53          this.valuesReadOnly = value;
     54          foreach (var pc in this.parameterConfigurations) {
     55            pc.ValuesReadOnly = value;
     56          }
     57        }
     58      }
    4859    }
    4960
  • branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Encoding/ValueConfigurations/ValueConfiguration.cs

    r5927 r6489  
    7373    }
    7474
     75    [Storable]
     76    protected bool valuesReadOnly = false;
     77    public virtual bool ValuesReadOnly {
     78      get { return valuesReadOnly; }
     79      set {
     80        if (value != this.valuesReadOnly) {
     81          this.valuesReadOnly = value;
     82        }
     83      }
     84    }
     85
    7586    #region Constructors and Cloning
    7687    public ValueConfiguration(IItem value, Type valueDataType) {
     
    8899      this.optimize = original.optimize;
    89100      this.number = original.number;
     101      this.valuesReadOnly = original.valuesReadOnly;
    90102      RegisterActualValueEvents();
    91103    }
Note: See TracChangeset for help on using the changeset viewer.