[rules-users] Planner: What is a good example/algo to chain entities?

Michiel Vermandel mvermand at yahoo.com
Fri Feb 8 03:20:28 EST 2013


Hi,

Any one got an idea?

Thanks


 
-----------------
http://www.codessentials.com - Your essential software, for free!
Follow us at http://twitter.com/#!/Codessentials


________________________________
 From: Michiel Vermandel <mvermand at yahoo.com>
To: Rules lists.jboss.org <rules-users at lists.jboss.org> 
Sent: Wednesday, February 6, 2013 8:44 AM
Subject: [rules-users] Planner: What is a good example/algo to chain entities?
 

Hi,

I need to keep some Planning entities (Tasks) together and I am looking for some insights/ideas/examples in how to tackle this.
Tasks are grouped by a groupId (Groups are problem facts).

The Tasks do not have to be grouped like a pillar but more like an accordion.
One of the planning variables is "Period", a Period typically is 3 weeks and we have 12 Periods to plan the tasks into.


The requirement is that all tasks within  a group need to be kept together in such a way that:
- the spread (nr of periods) of the tasks is minimal
- the spread is never more than the sum of the duration of the separate tasks in the group.

So given a group of 3 tasks:

1)This is good:

Period 12345789ABC

T1:      xxx
T2:         xx
T3:           x

2)This is better:

Period 12345789ABC

T1:      xxx
T2:       xx
T3:         x

3)This is (one of) the best:

Period 12345789ABC

T1:      xxx
T2:       xx
T3:        x

4)This is bad:

Period 12345789ABC

T1:      xxx
T2:       xx
T3:          x

Of course 3 is favorite, but maybe not possible due to other planning variables (-> availability of people to execute the tasks).
I need to plan a few hundred of such groups of tasks which all share the same Period space and list of available people.
(A person can only do one task per period)


I have got the DRL rule that keeps the tasks together (rule counts the gaps) , but giving penalty for making gaps (by shifting a single task) makes it hard to find a good solution.
What would be the best approach to solve this problem?

- A combination of custom mover and swapper which moves/swaps groups instead of single tasks?
- The above in combination with a group shuffle factory (swapping tasks in a single group)?


Other ideas?

Thanks a lot!

-----------------
http://www.codessentials.com - Your essential software, for free!
Follow us at http://twitter.com/#!/Codessentials
_______________________________________________
rules-users mailing list
rules-users at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20130208/bc441580/attachment-0002.html 


More information about the rules-users mailing list