2002-05-28 18:40:58 UTC

Вступление

Когда-то, не очень давно, но точно когда, не помню, мне понравилась статья Дональда Нормана, про алгоритмы туалетной бумаги, и я решил ее перевести на русский.

Алгоритмы туалетной бумаги: Я не знал, что нужно быть компьютерным ученым, для того чтобы пользоваться туалетной бумагой

При проведении реконструкции нашего дома, мы решили поставить двойной держатель для туалетной бумаги. Большинство домашних туалетов имеют держатель для одного рулона. Один рулон, однако, это банальность, ну я бы даже сказал неловкость. Рулон заканчивается, и что тогда? В результате, увидев что рулон близок к концу, мы помещали новый рулон либо на полу рядом с унитазом либо на туалетном бачке. В любом случае, последствия этого интересного эпизода мы ликвидировали. Однако не было бы намного лучше иметь какое-либо место для размещения этого рулона?

В то время как большинство домов имеют только одиночные держатели рулонов, — коммерческие организации уже давно перешли на устройства имеющие держатели для нескольких рулонов. Мы решили установить один из них и поэтому приобрели держатель для двух рулонов, расположенных бок о бок.

Мы обнаружили, что хотя у нас и два рулона вместо одного, эта проблема так и не решена. Оба рулона заканчивались одновременно. Конечно, это занимало в два раза больше времени, прежде чем рулоны заканчивались, однако мы все ещё сталкивались с той же самой проблемой: больше нет бумаги. Мы обнаружили, — переход на два рулона означает необходимость использования более сложного поведения: алгоритма отрывания бумаги.

После некоторого самостоятельного размышления и обсуждения, мы обнаружили, что использовались три различных алгоритма: Большой, Маленький, и Произвольный.

  • Большой: Всегда брать бумагу с самого большого рулона.
  • Маленький: Всегда брать бумагу с маленького рулона.
  • Произвольный: Не думать – выбирать рулон произвольно.

Мы пришли к выводу, что алгоритм Произвольный наиболее естественен. В конце концов, мы купили держатель двух рулонов специально для того чтобы не думать. Однако если бы наш выбор был бы истинно произвольным, мы бы выбирали каждый рулон приблизительно с одинаковой вероятностью, поэтому они бы опустошались одновременно – ну или почти одновременно. Произвольный алгоритм не единственный пригодный для использования. Для того чтобы пользоваться туалетной бумагой, необходимо подумать.

Наши самостоятельные размышления показали, что мы в действительности не используем Произвольный алгоритм – люди редко бывают произвольными. И очень естественно, это то что, мы вскоре посчитали, что нужно брать бумагу с самого большого рулона. Но, увы, это не так, — обсудим это. Предположим, что мы начинаем с двух рулонов, A и B. где A больше чем B. По алгоритму Большой, бумага берется с A, большего из двух рулонов до тех пор, пока его размер не станет значительно меньше, чем у другого рулона, B. Затем бумага берется с B до тех пор, пока он не станет меньше чем A, с этого момента предпочтительным становится A. Другими словами, два этих рулона уменьшаются приблизительно с одной скоростью, и это означает что когда на А закончится бумага, на B она вскоре тоже закончится, оставив пользователя (человека на горшке) с двумя пустыми рулонами.

Алгоритм Маленький оказывается подходящим выбором. С алгоритмом Маленький, бумага всегда берется с A, поэтому он становится все меньше и меньше до тех пор, пока не закончится. Затем бумага берется с рулона B, который полон в момент перехода не него.

Ура. Мы никогда не осознавали, что нужно быть компьютерным ученым, для того чтобы пользоваться туалетной бумагой. Хуже того, мы не осознавали, что при выборе рулона нужно думать.

Реальная проблема, конечно, заключается в дизайне держателей для туалетной бумаги. Вместо двухроликового держателя, где одновременно доступны оба ролика, держатель должен делать последовательное ограничение: второй рулон не должен быть доступен до тех пор, пока не закончится первый.

Это то, что я назвал “функцией принуждения” в книге “Design of Everyday Things”. В коммерческом держателе, показанном на фотографии, когда заканчивается нижний рулон, нажатие на пустой держатель освобождает верхний рулон.

Двухроликовый держатель рулонов туалетной бумаги

Поиск держателей для дома показывает, — такие решения редкость. Изучение коммерческих и промышленных образцов показывает, что такие решения — правило. Дизайнеры домашних держателей для туалетной бумаги должно быть никогда не разговаривают с теми, кто занимается дизайном для коммерческих образцов. Жаль.

Оригинал: http://www.jnd.org/dn.mss/toilet_paper_algorit.html

2002-05-28 18:40:58 UTC noweb usability