Ivan Rodin

Ramaximization 2021 · online optimization hackathon by RAMAX Group

A year of vacations for a large company

1st place · team Branch and Win

JanFebMarAprMayJunJulAugSepOctNovDecE01E02E03E04E05E06E07E08
A year of vacations for eight employees; one granted request in red · synthetic data

Task

Plan a year of vacations for a large company. Every month each qualification needs a given number of working hours; an employee works only in their own qualifications, within a monthly limit and a yearly limit of ten monthly limits.

Vacations follow house rules: at most four a year, a minimum size in hours, a yearly total, at least two months between vacations, caps on the number and the hours of vacations in popular months, and a vacation may cross into the next month only if the smaller part is at least three hours. Employees ask for vacations in particular months, with priorities.

Approach

  1. 01Four goals, in strict order

    First cover all the work hours for every qualification. Then give out as many vacation hours as possible. Then grant as many requests as possible, counted as a vacation placed in the requested month. Finally, maximize the total rating of the granted requests. Each goal is optimized while keeping the ones before it at their best values.

  2. 02A rating for every request

    A request’s rating combines its priority for the month with the employee’s personal level, so that a higher rating wins when two requests compete for the same hours.

  3. 03Results a business user can read

    The submission came with a dashboard: the four target shares, the distribution of vacation hours across employees, and example schedules for individual people.

Result

1st place at Ramaximization, RAMAX Group’s first online optimization hackathon: 152 applications, 32 teams admitted, a jury from RAMAX Group, IBM Russia and R-Labs.

The submitted plan covered all work hours. Employees received 89% of their vacation hours on average; 35% of requests were granted in the requested month, and 32% when weighted by rating.

Stack

MILP · Lexicographic objectives