Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I agree with Jiri...you want a heuristic algorithm that gets reasonably close with an acceptable solution quickly and then refines from there.</p> <p>I've worked at companies before that had delivery routing software and the approach they took was to use a genetic algorithm to solve very similar, though much larger scale, problem. Take a <a href="http://www.obitko.com/tutorials/genetic-algorithms/" rel="nofollow noreferrer">look here</a> if you're not familiar with the approach. From that site:</p> <ol> <li>[Start] Generate random population of n chromosomes (suitable solutions for the problem)</li> <li>[Fitness] Evaluate the fitness f(x) of each chromosome x in the population</li> <li><p>[New population] Create a new population by repeating following steps until the new population is complete</p> <p>[Selection] Select two parent chromosomes from a population according to their fitness (the better fitness, the bigger chance to be selected)</p> <p>[Crossover] With a crossover probability cross over the parents to form a new offspring (children). If no crossover was performed, offspring is an exact copy of parents.</p> <p>[Mutation] With a mutation probability mutate new offspring at each locus (position in chromosome).</p> <p>[Accepting] Place new offspring in a new population</p></li> <li>[Replace] Use new generated population for a further run of algorithm</li> <li>[Test] If the end condition is satisfied, stop, and return the best solution in current population</li> <li>[Loop] Go to step 2</li> </ol> <p>The trick to this is encoding your constraints into a "chromosome" and writing the "fitness" function. The fitness function has to take inputs of the results of a potential solution and spit out a score of how good a solution that is or throw it out if it violates any of the constraints.</p> <p>As mentioned by Jiri, the advantage of this solution is that it comes up with a workable, though maybe not the best, answer very quickly and the longer you let it run, the better the solution gets.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

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