Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2981_MRCPSP/HeuristicLab.Problem.Scheduling.MRCPSP/3.3/Encoding/ResourceCapacity.cs @ 17370

Last change on this file since 17370 was 16598, checked in by ddorfmei, 5 years ago

#2981:

  • added problem definition
  • added improvers and crossover
  • added file importer
File size: 2.0 KB
Line 
1using HeuristicLab.Common;
2using HeuristicLab.Core;
3using HeuristicLab.Data;
4using HeuristicLab.Parameters;
5using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
6
7namespace HeuristicLab.Problems.Scheduling.MRCPSP {
8
9  [Item(nameof(ResourceCapacity), "")]
10  [StorableClass]
11  public sealed class ResourceCapacity : ParameterizedNamedItem {
12    //public ResourceCapacity()
13    //  : this() {
14    //}
15
16    [Storable]
17    private readonly IFixedValueParameter<IntValue> capacityParam;
18
19    [Storable]
20    private readonly IFixedValueParameter<BoolValue> isRenewableParam;
21
22    [Storable]
23    private readonly IFixedValueParameter<IntValue> numberParam;
24
25    public ResourceCapacity() {
26      Parameters.Add(numberParam = new FixedValueParameter<IntValue>(nameof(Number), new IntValue()));
27      Parameters.Add(capacityParam = new FixedValueParameter<IntValue>(nameof(Capacity), new IntValue()));
28      Parameters.Add(isRenewableParam = new FixedValueParameter<BoolValue>(nameof(IsRenewable), new BoolValue()));
29    }
30
31    [StorableConstructor]
32    private ResourceCapacity(bool deserializing)
33      : base(deserializing) { }
34
35    public override string ToString() => $"{Name} (Resource {Number})";
36
37    private ResourceCapacity(ResourceCapacity original, Cloner cloner)
38      : base(original, cloner) {
39      numberParam = cloner.Clone(original.numberParam);
40      capacityParam = cloner.Clone(original.capacityParam);
41      isRenewableParam = cloner.Clone(original.isRenewableParam);
42    }
43
44    public int Capacity {
45      get => capacityParam.Value.Value;
46      set => capacityParam.Value.Value = value;
47    }
48
49    public bool IsRenewable {
50      get => isRenewableParam.Value.Value;
51      set => isRenewableParam.Value.Value = value;
52    }
53
54    public int Number {
55      get => numberParam.Value.Value;
56      set => numberParam.Value.Value = value;
57    }
58
59    public override IDeepCloneable Clone(Cloner cloner) => new ResourceCapacity(this, cloner);
60  }
61}
Note: See TracBrowser for help on using the repository browser.