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

Support real-time problem modification during solving with utils for the single thread subsystem

    XMLWordPrintable

Details

    • Feature Request
    • Resolution: Done
    • Optional
    • 5.3.0.Final
    • None
    • optaplanner-core
    • None

    Description

      Rete/Drools is single threaded, and so is the current implementation of the localsearchsolver,
      but this single thread subsystem should be documented
      and utils should be provided to allow for real-time problem modification

      A simple way would be to use a producer-consumer pattern with a non blocking queue which holds "problem moves".
      Each step the problem moves could be used.

      Problems:

      • bestsolutionrecalled also needs it's score adjusted. so we'll need a 2th working memory:
        • EITHER temporary, just for the problem move (or set of problem moves)
        • EITHER all the time, but then we'd have to hold a chain of moves, some of which might not be doable at the end
      • cached selectors must be notified of refreshing their cache
      • solution cloning normally doesn't clone the problem facts, just the proposed solution references. Do we need a full clone now?

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: