Planning

See also

Module tutorplanner.planning

The tutor planner uses two types of planning: initial planning and rolling wave planning (short: rolling planning). Each planner consists of multiple phases, so called levels. The main difference between initial and rolling wave planning is that the rolling wave uses an existing plan as input.

After each planning level, the resulting plans are written to a new folder as described in Generated plans.

Initial planning

The initial planning starts from scratch. It uses the project data, including the target plan, and tries to find suitable tasks for each tutor.

You can call initial planning by:

tutor-planner planning initial

The initial planner uses the following seven planning levels:

  1. minimize deviation from plan
  2. minimize work spread
  3. maximize min happiness
  4. maximize cube happiness
  5. minimize hoppings between buildings
  6. select best rooms
  7. maximize tutor–room stability

Rolling wave planning

The rolling wave planning starts from an existing plan. It uses the project data, including the target plan, and tries to find suitable tasks for each tutor. It also tries to minimize the number of changes in comparison to the existing input plan.

You can call rolling wave planning by:

tutor-planner planning rolling NEXT_DAY

where NEXT_DAY is the date of the next day to plan (YYYY-MM-DD or MM-DD).

The rolling wave planner uses the following nine planning levels:

  1. minimize deviation from plan
  2. maximize task contingency
  3. minimize work spread
  4. maximize min happiness
  5. maximize cube happiness
  6. minimize hoppings between buildings
  7. select best rooms
  8. maximize tutor–room stability
  9. maximize task–room contingency