tbixler1 / COSC-481W-Project-Scheduling-

Scheduling software being developed for the Eastern Michigan Math Lab
0 stars 1 forks source link

What to do after cutting hours down? (Heuristic) #30

Open andrewsbryanc opened 8 years ago

andrewsbryanc commented 8 years ago

We need to figure out what to do after cutting down hours and whether or not we're ready for the schedule to go through our simulated annealing. Feel free to comment here and we'll see if we can figure out what to do next. Be sure to include any errors you can imagine when suggesting an idea, as that will help us move on and catch end statements.

tgautz commented 8 years ago

I didn't follow the issues individually, but I want EVERYONES opinions on this as the heuristic. Point values will need adjusting, but I want your opinions on the attached file. Written in notepad, turn OFF word wrap. heuristic prototype.txt

andrewsbryanc commented 8 years ago
  Note that we can always make the check to see if we scheduled someone during unavailability to multiply the total score by 0 if fail, and by 1 if true, and with that we can keep our score from making problems from that check.  It looks like we're counting points by each tutor and GA, which makes me think that the boolean check could work to make the score zero.  Do we plan on getting scores below zero?  I think that the heuristic can work either way with that first check. 
   One hour block scheduling should be negative UNLESS the availability of the employee dictates that they can only work that one hour, say I could only work 3pm to 4pm, it wouldn't be bad to schedule me for that one hour.  I think a resolution to that would be just to check to see if whether or not we can check the hour before and after to see if the schedule just put them for one hour by itself, or if the employee actually only has that one hour listed as available/preferred.  
   So looking at the preference of preferred hours, it looks like we have only 1 added point for the shift being preferred? If so I'd maybe suggest bumping it up to 20 for preferred versus available.  I talked with Tyler and he said that 6 hours should be bad, but he said that if he could change the preferences of point values, that'd be nice.  I think that should be after we figure out a heuristic to begin with, then we can make the options to ship to the user.  I think the point values are nice where they are, with 4 hour shifts being the prime running.  He also said that any point he will most likely move a couple hours here and there just for completeness, such as Friday being open 6 hours, so if someone wants to work that whole day, they can.  
  I like the lead tutor point count, 200 seems like a nice thing, I think we could eventually count number of classes tutored each hour as point values as well and have that count towards our overall score eventually, but I'm unsure of what the points should be, I think that starting with the employees first will help the most.
 As for the nested loop, that seems like a great place to start for the search space!  Overall, I think this will work great with the fact that we chiselled down the schedule so all we have to do is swap hours, it's much more efficient than my build-up idea!  
As always, let me know what you guys think of the response and ideas.  I think all we have to do after getting this coded is testing it out and seeing how it runs!   
tgautz commented 8 years ago

For the preference thing, when I said "sum(x,x+n)+1 for each line above where available=0 and preferred=1 ---- current points _= sum" I meant this: example: say 4 hours = 60pts, where hour 1, 2, and 3 are preferred, and hour 4 is available sum = (1+1+1+0)+1 = 4 current points += sum_60;