Free cookie consent management tool by TermsFeed Policy Generator

Opened 13 years ago

Closed 13 years ago

#1494 closed enhancement (done)

Implement ULX crossover

Reported by: abeham Owned by: abeham
Priority: high Milestone: HeuristicLab 3.3.5
Component: Encodings.PermutationEncoding Version: 3.3.5
Keywords: Cc:

Description

This crossover is described in Tate, D. M. & Smith, A. E. A genetic approach to the quadratic assignment problem Computers & Operations Research, 1995, 22, 73-83.

Change History (10)

comment:1 Changed 13 years ago by abeham

  • Status changed from new to accepted

comment:2 Changed 13 years ago by abeham

r6056

  • Added the ULX crossover for permutation encodings
  • Added an IEqualityComparer<Permutation> that will check whether two permutations are equal

comment:3 Changed 13 years ago by abeham

  • Priority changed from medium to high

comment:4 Changed 13 years ago by abeham

  • Owner changed from abeham to gkronber
  • Status changed from accepted to reviewing
  • Version changed from branch to 3.3.4

r6342

  • merged to trunk

comment:5 Changed 13 years ago by abeham

  • Owner changed from gkronber to mkommend

comment:6 Changed 13 years ago by mkommend

  • Owner changed from mkommend to abeham
  • Status changed from reviewing to assigned

PermutationEqualityComparer

  • GetHashCode(Permutation obj) should follow the same logic as the comparison for equality
  • should derive from EqualityComparer<Permutation> instead of implementing IEqualityComparer<Permutation>
  • EqualsAbsolute(Permutation x, Permutation y) could be written as return x.SequenceEquals(y);

UniformLikeCrossOver

  • I would write the overriden Cross method before the static implementation to have a more natural reading flow.
  • IMHO it is reasonable to seal the class as subclassing makes no sense. What do you think of this?

The remaining source code looks very good.

Last edited 13 years ago by mkommend (previous) (diff)

comment:7 Changed 13 years ago by abeham

  • Owner changed from abeham to mkommend
  • Status changed from assigned to reviewing

r6507

  • Made ULX crossover sealed
  • PermutationEqualityComparer
    • Now derives from EqualityComparer<Permutation>
    • Fixed the GetHashCode function to return the same hash value when the objects are equal according to the equals function. The function is probably not that efficient using string's GetHashCode, but I couldn't come up with an easier solution in time.
    • Created a unit test to test this comparer

Thanks for reviewing, the Cross method is below the static implementation in most other crossovers and manipulation operators as well.

comment:8 Changed 13 years ago by mkommend

r6512: Corrected access modifiers of the cloning and storable ctor.

comment:9 Changed 13 years ago by mkommend

  • Owner changed from mkommend to abeham
  • Status changed from reviewing to readytorelease

comment:10 Changed 13 years ago by swagner

  • Resolution set to done
  • Status changed from readytorelease to closed
  • Version changed from 3.3.4 to 3.3.5
Note: See TracTickets for help on using tickets.