Возникла на работе очередная задача: распределить отпуска. Начальник по-дружески объяснил ситуацию и спросил мнение. Пораскинул мозгами — и подумал: задача справделивого распределения отпусков вообще довольно сложная, и на многих предприятиях, в каждом отделе ее решают по-своему. А ведь это вполне математическая проблема. Но вот как формализовать…
Требуется: справедливость в распределении месяцев отпуска. Считаем, что справедливая система — это та, которая учитывает взгляды большинства, работает объективно, и способна учесть форс-мажорные ситуации (ну нужно человеку срочно подготовить к зиме неожиданно купленный дом).
Поскольку мы живем в России, то мы очень зависим от смены времен года. И, как правило, самые желанные месяца для отпуска — с мая по сентябрь. Следовательно, максимальная конкуренция развивается именно за эти месяцы, а особый накал — за июнь-август.
Правда, теперь многие стали ездить в теплые страны, и ранее непривлекательные ноябри-марты стали вполне интересными. Вобщем, составить таблицу весомостей месяцев оказалось очень непросто. Неплохо бы опросить людей… Но выборка нужна довольно объе��истая. На примере 11 человек на участке выяснилось, что далеко не все считают самым лучшим месяцем июль, и далеко не все считают самым худшим для отпуска месяцем декабрь.
Подумав еще, я понял, что не столько важен вес месяца, сколько количество конкурирующих за каждый конкретный месяц. Грубо говоря, вот конкретно в этот год, допустим, так вышло, что в июне никто в отпуск не собирается. У всех планы — кому в Египет, кому в Турцию, кому зимой на горнолыжку, кому к родственникам… А вот, допустим, за сентябрь разгорелась нешуточная борьба. И тут-то уже учитывается пусть некий рейтинг человека: допустим, в прошлом году ты выбрал совсем неконкурентный месяц (состязаться ни с кем не пришлось) — твои изначальные баллы не менялись, теперь их у тебя четыре. А сейчас ты конкурируешь с тремя человеками, у которых баллы от 2 до 3. То есть ты побеждаешь в состязании, но баллов у тебя становится не 4 а 1.
Неплохо бы учесть, что за ноябрь конкурируют реже, чем за август, и баллов снимать нужно также разное количество — в зависимости от веса месяца и в зависимости от отсеянных конкурентов.
Поскольку кокуренты отсеялись, их нужно также распределять: один хочет допустим в мае, но там состязаются только два человека, значит, один бал товарищу прибавляем (ушел с позиции для трех конкурентов на позицию с двумя конкурентами). Уф… Есть ли предел этого ряда? Что-то уж больно сложная конструкция получилась…
Ваши предложения?