Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/11/20 14:22:45 (4 years ago)
Author:
dpiringe
Message:

#3073

  • added regions in IntervalConstraint
  • modified IntervalConstraintsParser to detect regions
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3073_IA_constraint_splitting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Interval/IntervalConstraint.cs

    r17607 r17723  
    2222#endregion
    2323using System;
     24using System.Collections.Generic;
    2425using HEAL.Attic;
    2526using HeuristicLab.Common;
     
    113114    }
    114115
     116    [Storable]
     117    private IDictionary<string, Interval> regions = new Dictionary<string, Interval>();
     118    public IDictionary<string, Interval> Regions
     119    {
     120      get => regions;
     121      set
     122      {
     123        if (regions != value)
     124        {
     125          regions = value;
     126          UpdateExpression();
     127          OnChanged();
     128        }
     129      }
     130    }
     131
    115132    [StorableConstructor]
    116133    private IntervalConstraint(StorableConstructorFlag _) : base(_) { }
    117134
    118135    public IntervalConstraint(string   expression, string variable, string target, int numberOfDerivations,
    119                               Interval interval,   bool   enabled) {
    120       this.expression          = expression;
    121       this.variable            = variable;
    122       this.target              = target;
     136                              Interval interval,   bool   enabled)
     137      : this(expression, variable, target, numberOfDerivations,
     138             interval, new Dictionary<string, Interval>(), enabled) { }
     139
     140    public IntervalConstraint(string expression, string variable, string target, int numberOfDerivations,
     141                              Interval interval, IDictionary<string, Interval> regions, bool enabled)
     142    {
     143      this.expression = expression;
     144      this.variable = variable;
     145      this.target = target;
    123146      this.numberOfDerivations = numberOfDerivations;
    124       this.interval            = interval;
    125       this.enabled             = enabled;
     147      this.interval = interval;
     148      this.regions = regions;
     149      this.enabled = enabled;
    126150    }
    127151
     
    137161      NumberOfDerivations = original.NumberOfDerivations;
    138162      Interval            = original.Interval;
     163      Regions             = original.Regions;
    139164      Enabled             = original.Enabled;
    140165    }
     
    171196                                   Interval?.UpperBound,
    172197                                   "]");
     198        foreach(var kvp in Regions)
     199          expression += $", {kvp.Key}=({kvp.Value.LowerBound} .. {kvp.Value.UpperBound})";
    173200        Expression = expression;
    174201        return;
     
    183210                                 "]",
    184211                                 GetDerivationString(numberOfDerivations));
     212      foreach (var kvp in Regions)
     213        expression += $", {kvp.Key}=({kvp.Value.LowerBound} .. {kvp.Value.UpperBound})";
    185214      Expression = expression;
    186215    }
Note: See TracChangeset for help on using the changeset viewer.