Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/04/13 17:51:14 (11 years ago)
Author:
jhelm
Message:

#1966: Implemented new encoding (MultiComponentVector/MCV); Implemented move-operators for MCV and GV encodings; Implemented new decoding-methods for PS, GV and MCV encodings (ExtremePoint-based packing);

Location:
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Dimensions
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Dimensions/PackingDimensions.cs

    r9348 r9440  
    3737    /// </summary>
    3838    public Int32 AssignedBin { get; set; }
     39    /// <summary>
     40    /// Determins if the positioned item is to be rotate by 90 degrees or not.
     41    /// </summary>
     42    public Boolean Rotated { get; set; }
    3943
    4044    [StorableConstructor]
     
    4347      : base(original, cloner) {
    4448        AssignedBin = original.AssignedBin;
     49        Rotated = original.Rotated;
    4550    }
    4651
    47     public PackingDimensions(Int32 assignedBin) {
     52    public PackingDimensions(Int32 assignedBin, Boolean rotated) {
    4853      this.AssignedBin = assignedBin;
     54      this.Rotated = rotated;
    4955    }
    5056
     
    5258      StringBuilder sb = new StringBuilder();
    5359      sb.Append("[");
    54       sb.Append("AssignedBin: ");
    55       sb.Append(AssignedBin);
     60      sb.Append(AssignedBin + "-");
     61      sb.Append(Rotated);
    5662      sb.Append("]");
    5763      return sb.ToString();
    5864    }
     65
     66    public override bool Equals(object obj) {
     67      var pd = obj as PackingDimensions;
     68      if (pd != null)
     69        return (pd.AssignedBin == this.AssignedBin && pd.Rotated == this.Rotated);
     70      else return false;
     71    }
     72
     73    public override int GetHashCode() {
     74      return 31 * AssignedBin * (Rotated ? 3 : 7);
     75    }
    5976  }
    6077}
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Dimensions/ThreeDimensionalPacking.cs

    r9348 r9440  
    4949    }
    5050
    51     public ThreeDimensionalPacking(int assignedBin, int x, int y, int z) : base(assignedBin) {
     51    public ThreeDimensionalPacking(int assignedBin, int x, int y, int z) : this(assignedBin, x, y, z, false) {}
     52    public ThreeDimensionalPacking(int assignedBin, int x, int y, int z, bool rotated)
     53      : base(assignedBin, rotated) {
    5254      this.X = x;
    5355      this.Y = y;
     
    6769      return sb.ToString();
    6870    }
     71
     72
     73    public override bool Equals(object obj) {
     74      var tdp = obj as ThreeDimensionalPacking;
     75      if (tdp != null)
     76        return (tdp.X == this.X && tdp.Y == this.Y && tdp.Z == this.Z);
     77      else return false;
     78    }
     79
     80    public override int GetHashCode() {
     81      return base.GetHashCode() + 13 * X + 17 * Y + 23 * Z;
     82    }
    6983  }
    7084}
  • branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Dimensions/TwoDimensionalPacking.cs

    r9348 r9440  
    4545    public override IDeepCloneable Clone(Cloner cloner) {
    4646      return new TwoDimensionalPacking(this, cloner);
    47     }   
     47    }
    4848
    49     public TwoDimensionalPacking(int assignedBin, int x, int y) : base(assignedBin) {
     49    public TwoDimensionalPacking(int assignedBin, int x, int y) : this(assignedBin, x, y, false) { }
     50    public TwoDimensionalPacking(int assignedBin, int x, int y, bool rotated)
     51      : base(assignedBin, rotated) {
    5052      this.X = x;
    5153      this.Y = y;
     
    6365      return sb.ToString();
    6466    }
     67
     68
     69    public override bool Equals(object obj) {
     70      var tdp = obj as TwoDimensionalPacking;
     71      if (tdp != null)
     72        return (tdp.X == this.X && tdp.Y == this.Y);
     73      else return false;
     74    }
     75
     76    public override int GetHashCode() {
     77      return base.GetHashCode() + 13 * X + 17 * Y;
     78    }
    6579  }
    6680}
Note: See TracChangeset for help on using the changeset viewer.