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

前端 未结 4 483
猫巷女王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:05

    Try taking a look at Simulated Annealing. It's similar to Genetic Algorithms as Jeremy E describes, but instead of randomly generating your starting set of schedules you start with some valid but non optimal schedule. The idea is to generate some "neighbor" of the original schedule by randomly shuffling around some meeting times, then testing fitness before iterating.

    S' = Starting Schedule
    S = S'    
    while( Fitness( S ) < Minimum Fitness ) 
    {
        NS = Neighbor( S )
        if( Fitness( NS ) > Fitness( F ) )
        {
             S = NS
        }
    }
    Return( S )
    

    Instead of testing against some minimum fitness level, you could also specify a set number of iterations so you could deterministically tell when the program would finish executing.

    The thing about this algorithm is the final result tends to look like the starting state, so if you wanted to weight say a large meeting (in terms of size of makers) early in the day, you could do so.

提交回复
热议问题