Если бы программисты строили лифты…
Wednesday, 15 Apr 2015
В узких кругах общеизвестно, что я неравнодушен к проектированию лифтов. Нет, механика тросов, блоков и аварийных удержателей меня не волнует. Я не боюсь застрять в лифте (кажется, и не застревал за свою жизнь ни разу), не опасаюсь полета в бездну ввиду оторвавшегося крепления, меня не впечатляют фрагменты американских триллеров, в которых каждый специальный агент хоть раз, да вылезает на крышу лифта через удачно проломившийся кусок потолка.
Меня интереует задача оптимальной подачи одного из лифтов в офисном здании заждавшимся терпилам с двенадцатого этажа. Насколько могу судить, эта архиважнейшая проблема так и не была сколько-нибудь успешно решена ни в одной из стран, где мне доводилось работать.
Традиционная практика — ленивый алгоритм — привез пассажиров и уснул — очевидно, неоптимальна. Утром все едут наверх, вечером — вниз. Это легко угадать. В обеденный перерыв потоки тоже предсказуемы. Если лифтов много, то, наверное, один можно отправить туда, где образовалась временная лифтовая дыра. И так далее.
На всех собеседованиях понравившимся кандидатам я задаю эту задачу. Просто, чтобы посмотреть, как кандидат будет рассуждать.
И вот высшие силы мне отомстили. Я работаю в здании, где контроллер лифтов пректировал такой же мудак, как я. Лифты скоростные. Но, сука, мыслящие. Существующие по Декарту. Они пытаются сделать хорошо. И это, как обычно в случаях, когда кто-то слишком усердствует в стремлении сделать хорошо, превращается в ад.
Ступил ты, скажем, в чрево этого подъемного механизма, после перекура. Нажал кнопку своего десятого этажа. Двери закрылись. Ты один, тебе комфортно, ты давишь прыщ у себя на носу, приникнув к громадному зеркалу. У тебя есть примерно пять секунд. Точнее, было бы пять секунд, если бы не этот Нострадамус, программировавший контроллер.
Плавное торможение вжимает тебя в пол через секунду. Четвертый. Пауза. Загорается табло и приятный женский голос сообщает: “Serviendo la cabina superior”. Что в переводе с бусурманского означает: «Более расторопная кабина увезет этих четыреэтажников». Потом разгон и… тормоз на восьмом. В зависимости от гороскопа таких остановок может быть до пяти, на разных этажах. В результате ты приезжаешь с перекура с таким опозданием, словно сходил искупался и посидел в кафе на пляже.
Я это к чему. К тому, что у людей, которые что-то пытаются улучшать, должен быть неимоверно развит орган, отвечающий за бдительность и скептицизм. Со скоростями, на которых ездят эти лифты, оптимальная стратегия выглядит так: взял пассажиров, отвез, куда им надо, поехал на следующий вызов. Сиречь, самый простой, ленивый алгоритм тут работал бы лучше всего.
Но нет, обязательно найдется кто-то умный и положит свой камень в дорогу благих намерений.