Opened 5 years ago

Closed 5 years ago

#1775 closed enhancement (done)

IntegerVector Encoding should have more flexible bounds

Reported by: abeham Owned by: abeham
Priority: medium Milestone: HeuristicLab 3.3.7
Component: Encodings.IntegerVectorEncoding Version: 3.3.7
Keywords: Cc:

Description (last modified by abeham)

Exactly as in the RealVectorEncoding, but with an additional column specifying a step size.

Change History (17)

comment:1 Changed 5 years ago by abeham

  • Description modified (diff)
  • Owner changed from svonolfe to abeham
  • Status changed from new to accepted

comment:2 Changed 5 years ago by abeham

r7680:7681: added branch of IntegerVectorEncoding plugin and new operators

comment:3 Changed 5 years ago by abeham

r7686: Updated integer vector encoding

  • Added advanced bounds to all operators
  • Added new operators
  • Changed DiscreteCrossover to work with >= 2 parents

comment:4 Changed 5 years ago by abeham

r7699: Added UniformSomePositionsManipulator and minor changes

comment:5 Changed 5 years ago by abeham

r7715: fixed operator to respect bounds

comment:6 Changed 5 years ago by abeham

r8017:

  • Renamed some crossovers
  • Ported some additional crossovers from the real-vector plugin
  • Introduced BoundedIntegerVector* base classes

comment:7 Changed 5 years ago by abeham

r8018: synced with trunk

comment:8 Changed 5 years ago by abeham

r8019: reintegrated branch

comment:9 Changed 5 years ago by abeham

r8020: removed branch

comment:10 Changed 5 years ago by abeham

  • Owner changed from abeham to ascheibe
  • Status changed from accepted to reviewing

comment:11 Changed 5 years ago by abeham

r8021: fixed references

comment:12 Changed 5 years ago by abeham

r8023: fixed unit tests

comment:13 Changed 5 years ago by abeham

r8025: updated scheduling branch

r8027: updated metaopt branch

comment:14 Changed 5 years ago by ascheibe

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

I have looked over the changes and have some minor comments:

  • I think in the IntegerVectorCreator the AfterDeserialization method should throw an exception if min and max are null (though this will probably be never the case?)
  • The documentation comments for the Apply method in UniformRandomIntegerVectorCreator should be updated.
  • StdDevStrategyVectorCrossover.cs as well as StdDevStrategyVectorCreator.cs are in the Manipulators source folder. Shouldn't they be located in the Creators and Crossovers folders?
  • Round/Floor/CeilingFeasible is contained in the Crossover and the Manipulator base classes. Maybe we should move them to an own source file so that the code doesn't get duplicated.
  • BoundedIntegerVectorManipulator: The exception thrown by the Manipulate method says UniformSomePositionsManipulator.

comment:15 Changed 5 years ago by abeham

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

Thank you for the review and the comments!

r8184:8185

  • Updated documentation and error messages
  • Added an extra base class to unify the implementation of the round methods
  • Moved strategy parameter vectors to separate folder (as in RealVectorEncoding)

Regarding the other comment:

  • Throwing an exception in IntegerVectorCreator.AfterDeserialization would break backwards compatibility. Because they're ValueLookupParameters it is feasible to assume that their value can be null.

If you have no further comments, please set the ticket as readytorelease.

comment:16 Changed 5 years ago by ascheibe

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

Thank you!

comment:17 Changed 5 years ago by mkommend

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