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

Improvement of LS Step debug output information

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: Minor Minor
    • Future
    • None
    • optaplanner-core
    • NEW
    • NEW

      The current information that is outputted from the "stepEnded" method from "org.optaplanner.core.impl.localsearch.DefaultLocalSearchPhase" is not all the information that can be collected from the stuff that happened during the step.
      For example currently the only thing that is outputted is "accepted/selected" where the selected count is the number of moves which passed the "isMoveDoable" check (the filter which checks for a built-in violation) and the accepted count is the amount from the selected moves that passed the "isAccepted" check from the acceptor that is used.

      There are basically two issues here:

      1. To get the number of rejected moves by the acceptor the accepted count has to be subtracted from the selected count.
      2. Another issue is that there is no information about the number of rejected moves by the "isMoveDoable" check (the filter) , and with that also the total amount of generated moves for the current step (generated because in my case i use move iterator factories) is not presented to the user.

      So an ideal output for me is something like this:
      accepted / rejected by acceptor / rejected by "isMoveDoable" (filter) check / total number of generated moves

      "total number of generated moves" is the sum of all the moves that were tried out at the current step and it is basically SUM ("accepted","rejected by acceptor", "rejected by "isMoveDoable" (filter) check").

      I edited the core and applied this logic and it is really useful for me to gain some fast intuition about the solver behavior.

      Also another thing that would be useful is to have the above proposed output structure separated by move selector (iterator factory, move list factory, default, etc.) which is part from the union. So after every step there also should be the option to display the move count information for every selector used. I guess it can be on level TRACE.

            Unassigned Unassigned
            jordanovskijordan Jordan Jordanovski (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: