Uploaded image for project: 'OptaPlanner'
  1. OptaPlanner
  2. PLANNER-897

CompositeMoves should be doable if one of its children is doable and only do it's doable childmoves.

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Done
    • Icon: Major Major
    • 7.5.0.Final
    • 7.4.1.Final
    • optaplanner-core
    • None
    • NEW
    • NEW

      This would have 2 advantages:

      1) More different moves. More diversity is usually better.
      This might generate duplicate moves with other move selectors, for example a 2 child composite move of 2 change moves, might generate a move that duplicates a simple change move selector's move, but it's far easier to disable that change move selector than it is to figurate which move selector to add to a 3 child composite move to cover the 1 undoable and 2 doable child move cases.

      2) A composite move can be falsely declared doable if doing the first move makes the second undoable. See RideChangeMoveIteratorFactory experiment for mixed pickup and delivery vrp that has has to prevent those corrupting moves.

      3) A composite move can be falsely declared undoable if doing the first move makes the second doable. See RideChangeMoveIteratorFactory experiment for mixed pickup and delivery vrp that simply doesn't do those kind of moves (which is a diversity problem!)

              gdesmet@redhat.com Geoffrey De Smet (Inactive)
              gdesmet@redhat.com Geoffrey De Smet (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: