Is there a scheduling algorithm that optimizes for “maker's schedules”?

前端 未结 4 471
猫巷女王i
猫巷女王i 2021-01-30 23:26

You may be familiar with Paul Graham\'s essay, \"Maker\'s Schedule, Manager\'s Schedule\". The crux of the essay is that for creative and technical professional

4条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-31 00:11

    A good approximation for this can be had by the use of a Genetic algorithm.

    Write a function to create 1000 sample random schedules assigning makers and managers randomly.

    Write another function (fitness function) that assigns demerits to schedules with problems (people working at the same time, not enough makers, not enough managers, someone not worked enough, someone worked too much).

    foreach schedule assign calculate fitness keeping a reference to the lowest scoring (best) schedule.
    
    while (best schedule > minimum fitness value)
        foreach schedule s in population of schedules
            foreach time slot
               if (random < .5)
                   choose value from best schedule
               else
                   choose value from schedule s
               end if
           end foreach
           score schedule s with fitness function
        end foreach
    end while
    

    While this method will not produce an optimal schedule and has the possibility of finding local minimums. It will always produce a schedule and you can always add more constraints to the fitness function for any conditions you don't want to see. This type of algorithm can handle many different types of constraint satisifaction problems.

    I have personally used a similar algorithm to schedule my Wifes Co-Op preschool for the entire year in about two hours on my laptop.

提交回复
热议问题