[rules-users] Starting optaplanner with your own initialized solution

paavanm paavan.mathur at clairvoyantsoft.com
Wed Aug 20 17:42:56 EDT 2014


I have a relatively simple question. How do I have OptaPlanner use my own
initialized solution as a starting point instead of having a construction
heuristic create one? Does this have to be done with a custom SolverPhase?

A little more detail on what I'm trying to do: I am scheduling a series of
classes and related activities on a calendar. Let's say I have some class
BA101 that occurs several times a week (these classes are immovable
entities). There are homeworks, exams etc. associated with these classes
which I need to schedule. E.g. on Feb 1st, a homework might be due, or on
Mar 1st, there might be an exam. So I need to schedule time to do the
homework or time to study for the exam. My initial solution for this would
be very simple: I would schedule the homework/study time at the same time of
the class itself, and let optaplanner move it around till it meets my hard &
soft constraints.

However, when I tried to do that (i.e. give my homework/study tasks an
actual start time instead of just leaving the start time as null),
OptaPlanner fell right through without actually making any moves to find the
best score. How do I do this? This is my config at the moment, pretty basic
(tried this with & without the construction heuristic; same result):

<?xml version="1.0" encoding="UTF-8"?>
<solver>

    
   
<solutionClass>com.copilot.optaplanner.domain.ActivityScheduler</solutionClass>
   
<planningEntityClass>com.copilot.optaplanner.domain.Activity</planningEntityClass>

    
    <scoreDirectorFactory>
        <scoreDefinitionType>HARD_SOFT</scoreDefinitionType>
       
<simpleScoreCalculatorClass>com.copilot.optaplanner.solver.score.ActivitySchedulingSimpleScoreCalculator</simpleScoreCalculatorClass>
    </scoreDirectorFactory>

    
    <termination>
        <maximumSecondsSpend>10</maximumSecondsSpend>
    </termination>

    <constructionHeuristic>
        <constructionHeuristicType>FIRST_FIT</constructionHeuristicType>
    </constructionHeuristic>

    <localSearch>
        <acceptor>
            <entityTabuSize>7</entityTabuSize>
        </acceptor>
        <forager>
            <acceptedCountLimit>1000</acceptedCountLimit>
        </forager>
    </localSearch>

</solver>

Thanks for any assistance.



--
View this message in context: http://drools.46999.n3.nabble.com/Starting-optaplanner-with-your-own-initialized-solution-tp4030697.html
Sent from the Drools: User forum mailing list archive at Nabble.com.


More information about the rules-users mailing list