Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<blockquote> <p>I've tried implementing this with a Genetic Algorithm, but can't seem to get it tuned quite right, so although the basic principle seems to work on single shifts, it can't solve even easy cases with a few shifts and a few workers.</p> </blockquote> <p><strong>In short, don't! Unless you have lots of experience with genetic algorithms, you won't get this right.</strong></p> <ul> <li>They are approximate methods that do not guarantee converging to a workable solution. </li> <li>They work only if you can reasonably well establish the quality of your current solution (i.e. number of criteria not met). </li> <li>Their quality critically depends on the quality of operators you use to combine/mutate previous solutions into new ones.</li> </ul> <p>It is a tough thing to get right in small python program if you have close to zero experience with GA. If you have a small group of people exhaustive search is not that bad option. The problem is that it may work right for <code>n</code> people, will be slow for <code>n+1</code> people and will be unbearably slow for <code>n+2</code> and it may very well be that your <code>n</code> will end up as low as 10.</p> <p>You are working on an NP-complete problem and there are no easy win solutions. If the fancy timetable scheduling problem of your choice does not work good enough, it is very unlikely you will have something better with your python script.</p> <p>If you insist on doing this via your own code, it is <em>much</em> easier to get some results with min-max or simulated annealing.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload