[rules-users] SimpleScoreCalculator

André Fróes arfmoraes at gmail.com
Thu Feb 21 13:00:51 EST 2013


in that case, i just want to leave it unassigned or (and) add it to a list
of unassigned workorders, so I can get it and resort to another set of
engineers.


2013/2/21 Geoffrey De Smet <ge0ffrey.spam at gmail.com>

>
> Op 21-02-13 12:54, André Fróes schreef:
>
> Sure. My sorting by worktime and skills is partially working, if I do my
> planning with a certain number of engineers/workorders that fits in each
> other, it works perfectly, If i overcome that, it breaks the planning, it
> keeps showing the data that shouldn't be displayed and, in consequence,
> breaks the optimal solution.
>
>  Example:
> Engineer Andre, WT(8 hours), Skills ABC1, ABC2
>
>  Workorder 1, required WT(2), required Skills ABC2
> Workorder 2, required WT(3), required Skills ABC2
>  Workorder 3, required WT(1), required Skills ABC1
>
>  with these 3 WO it should work perfectly, results:
>  ID: 104[Skills: ABC 2,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------
> Feasible(0)
> ID: 105[Skills: ABC 2,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------
> Feasible(0)
> ID: 106[Skills: ABC 1,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------
> Feasible(0)
>
>  Adding this workorder that exceed in time and skill
>
>  Workorder 1, required WT(5), required Skills ABC2, ABC3
>
>  this is the outcome:
>
>  ID: 104[Skills: ABC 2,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------
> Feasible(0)
> ID: 105[Skills: ABC 2,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------
> Feasible(0)
> ID: 107[Skills: ABC 1,ABC 3,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------
> Broken(1)
> ID: 106[Skills: ABC 1,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------
> Feasible(0)
>
> What do you want to happen with that extra workorder ID: 107[Skills: ABC
> 1,ABC 3,]?
> - Assign it to different engineer - because there's another engineer
> available which has time (or it doesn't matter that engineers are
> overloaded)
> - Leave it "unassigned" because you are doing "over-constrained planning."
> For 6.0, planner will support "nullable planner variables", but in 5.5, you
> need to emulate this behavior by creating special Engineer called
> Unassigned and adjusting your score constraints to not trigger when that
> UnassignedEngineer is involved. There's been some previous mails about this
> topic in this mail archive.
>
>
>  it shows all not excluding the workorder that is not to be assigned to
> engineer. I did it by simplescorecalculator:
>
>   public HardAndSoftScore calculateScore(Distributor distributor) {
>  int hardScore = 0;
>  int softScore = 0;
>
>  for (Engineer e : distributor.getEngineerList()) {
>  int requiredWorktime = 0;
>  List<Skill> requiredSkillList = new ArrayList<Skill>();
>
>  for (WorkOrder o : distributor.getWorkOrderList()) {
>  if (e.equals(o.getEngineer())) {
>  requiredWorktime += o.getRequiredWorktime();
>  for (SkillWorkOrder swo : o.getRequiredSkills()) {
>  requiredSkillList.add(swo.getSkill());
>  }
>  }
>  }
>
>  int engineerAvailableTime = e.getWorktime() - requiredWorktime;
>  if (engineerAvailableTime < 0) {
>  hardScore += engineerAvailableTime;
>  }
>
>  List<Skill> tempEngSkillList = new ArrayList<Skill>();
>  for (SkillEngineer se : e.getSkillEngineerList()){
>  tempEngSkillList.add(se.getSkill());
>  }
>   if (tempEngSkillList.containsAll(requiredSkillList)){
>  hardScore += 1;
>  }
>  }
>
>  return DefaultHardAndSoftScore.valueOf(hardScore, softScore);
>  }
>
>  that's the problem happening, after that i'll start working on priority
> by the tip you provided in the previous post, but i'll try by
> simplescorecalculator to, i'm not getting along (yet) with drools rules
> system (drl), it's a bit harder to use it with planner.
>
>  thanks for the help Geoffrey!
>
>
>
> _______________________________________________
> 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/20130221/3ee9544f/attachment.html 


More information about the rules-users mailing list