Хакни рутину. Как алгоритмы помогают справляться с беспорядком, не тупить в супермаркете и жить проще - Али Альмоссави
Шрифт:
Интервал:
Закладка:
Наше воспоминание о скетче в исполнении двух Ронни тоже здесь к месту. Оно позволяет владельцу магазина построить воображаемый стек, возможно, по одному для каждого ряда полок, чтобы не лазать вверх и вниз по лестнице много раз. Если бы клиент прочитал весь список нужных товаров, владелец построил бы свои стеки, исходя из расположения полок, создавая позиции для стека каждого ряда.
В 1946 году Алан Тюринг опубликовал научную статью, где представил концепцию стека, используя термин «закапывание». Как отмечает Эндрю Ходжес, автор биографии Тюринга, идея оказалась новостью для фон Неймана. Вот небольшая выдержка из работы Тюринга:
«Как производится закапывание и откапывание? Есть много способов. Один – вести список таких заметок в одной или нескольких стандартных линиях задержки (1024), где самая недавняя запись становится последней. Положение самой недавней записи хранится в фиксированном временном хранилище, и эта ссылка изменяется каждый раз, когда зависимая позиция начинается или заканчивается».
Этот поразительный текст рассказывает о том, как концепции, которые мы сегодня считаем интуитивными, вообще появились на свет. Они стали очевидными, только когда кто-то изучил различные проблемы, пытаясь найти их решение. Возможно, вам захочется прочитать об эффекте Флинна – он назван по имени Джима Флинна, предположившего, что человек становится умнее отчасти благодаря тому, что его интуитивное мышление зреет и становится более изощренным и сложным. У людей, рождающихся сегодня, в мозг уже встроена способность к интуиции, более совершенная, чем та, что была у их предков.
Поэтому бывает смешно читать старые тексты и трактаты – они показывают нам, как далеко мы продвинулись. Помню, я открыл однажды «Руководство по хорошим манерам для детей» авторства Дезидериуса Эразмуса, изданную в 1530 году, и нашел такой совет: «Не давайте соплям скапливаться в носу, так поступают только неряхи. Еще Сократа критиковали за этот порок». Для человека из XXI столетия это правило выглядит само собой разумеющимся, но в контексте того времени оно блистало новизной.
Разговор Тюринга о вспомогательных операциях напоминает еще одну жизненную ситуацию, где стеки были бы полезны. Представьте, что на следующее утро к дому Яна подъезжает почтальон и не смотрит ему в глаза. По щекам почтальона катятся слезы, а губы дрожат от обиды.
«Простите, не сделал ли я чего-то такого, что обидело вас?» – спрашивает Ян.
«Ну, вообще-то сделали. Так и есть», – сказал почтальон, отводя взгляд.
Как же Яну вспомнить, каким образом он обидел почтальона? Ему нужно изучить верхние пункты из нужного стека воспоминаний – стека под названием «почтальон». Причина наверняка кроется в их последнем общении.
Есть ли в нашей повседневной жизни вещи, которые работают как стеки? Как насчет Всемирной паутины? Каждый раз, когда вы кликаете по ссылке, вы помещаете данный сайт в стек. Заходя на эту ссылку еще раз, вы берете веб-адрес из стека. Вам все равно, сколько сайтов вы посетили, пока вы можете вернуться к последнему и от него к другому, стоящему раньше, и так далее.
Можно надеяться, что Ян сумеет разобраться в своем стеке, чтобы внести поправки в манеру общения с почтальоном, и научится лучше определять, когда ему идти за продуктами.
4
Выход из лабиринта
Как-то раз один портной, грек по имени Иоаннис, заблудился в собственной мастерской. Мастерская пользовалась большой популярностью среди афинян, а сам Иоаннис имел репутацию скряги и скопидома. Ситуация осложнялась тем, что помещение располагалось на обширном участке земли, постепенно занимая его, по мере того как Иоаннис в течение 30 лет строил новые проходы и ставил стеллажи для удовлетворения своей страсти к накопительству. И вот он попался: сидит в созданном им же самим лабиринте, заваленном хламом, а вокруг выстроились полки с бесконечными рядами ниток, одежды и разломанных швейных машин. Как же Иоаннису найти путь обратно? Или ему суждено погибнуть здесь?
Есть еще одна греческая история. Когда родился Минотавр, полубык-получеловек, великий архитектор Дедал построил лабиринт, куда было заточено это злое и коварное существо.
«Оказавшись внутри, он бродил по извилистым тропинкам, но так никогда и не нашел выхода. В это место периодически отправлялись молодые афиняне, которых отдавали на съедение Минотавру. И не было у них никакой возможности спастись».
К счастью для Тесея, который тоже должен был стать жертвой Минотавра, дочь царя Ариадна влюбилась в него и разработала план его побега.
Она послала за Дедалом и велела ему показать выход из лабиринта. Тесею она обещала спасение, если он возьмет ее в Афины и там женится на ней. Ариадна дала ему ключ, полученный от Дедала, и клубок пряжи, который Тесей должен был прикрепить к двери и разматывать нить по мере продвижения. Так он и сделал и, конечно же, когда понадобилось, смог проделать путь в обратном направлении. Он смело прошел по лабиринту, нашел Минотавра спящим, убил его и вышел наружу».
Запомните эту историю. Мы скоро вернемся к ней снова. А пока давайте опишем три метода, которые Иоаннис мог бы использовать, чтобы найти выход из мастерской.
ЦЕЛЬ: ВЕРНУТЬСЯ К ВЫХОДУ
МЕТОД 1: ИДТИ ПО ПРОХОДАМ. СВОРАЧИВАТЬ НАУГАД, ПОКА НЕ НАЙДЕШЬ ВЫХОД.
МЕТОД 2: ДЕРЖАСЬ ПРАВОЙ РУКОЙ ЗА СТЕНУ, ИДТИ ВДОЛЬ НЕЕ, СВОРАЧИВАЯ КАЖДЫЙ РАЗ ТОЛЬКО НАПРАВО.
МЕТОД 3: ВЗЯТЬ С ПОЛКИ КАТУШКУ С НИТКАМИ И РАЗМАТЫВАТЬ ЕЕ ПО МЕРЕ ДВИЖЕНИЯ ПО ПРОХОДУ. ЕСЛИ ПОПАДЕШЬ В ТУПИК ИЛИ НАТКНЕШЬСЯ НА СВОЮ ЖЕ НИТКУ, ТО ПОВЕРНУТЬ НАЗАД И ПОЙТИ ПО ДРУГОМУ ПРОХОДУ.
Метод 1 имитирует путь мыши в лабиринте. Никаких продвинутых умственных способностей для него не требуется – просто беспорядочное хождение от одной точки до другой, пока по случайности не наткнешься на кусок сыра. Иногда его так и называют – метод беспорядочной мыши. Как вы можете догадаться, результат достигается крайне медленно.
Конец ознакомительного фрагмента.
Примечания
1
Ричард Фейнманн (1918–1988) – американский физик-теоретик; Джон фон Нейман (1903–1957) – венгерский и американский математик; Чарльз Дарвин (1809–1888) – автор теории эволюции (прим. ред.).
2
Все линии изображены на графике двойного логарифмического масштаба, поэтому они имеют такой вид (прим. автора).
3
Важно в самом начале отметить, что эти характеристики не всегда применимы к другим сферам жизни, например к учебе, где скорость – не главное. По моему опыту та обучающая среда, которая требует от студентов работать быстро, настраивает их на неудачу (прим. автора).
4
В этой книге есть смешной отрывок об Оливере Хивсайде, остром на язык отшельнике, чей подход к математике проектирования отличался особой прагматичностью. Инженеры хвалили метод Хивсайда, но математики смеялись над ним из-за недостатка точности. У Хивсайда же не было времени проявлять дотошность («Стоит ли мне отказываться от ужина, если я не понимаю, как происходит пищеварение?»). (Прим. автора.)
5
Фрэнсис Бэкон (1561–1626) – один из крупнейших философов Нового времени, основоположник эмпиризма и английского материализма (прим. ред.).
6
«Помни» («Memento») – фильм Джонатана Нолана (2000). Главный герой, переживший тяжелую травму головы, не может ничего удержать в памяти больше 15 минут.
7
Факт, который часто описывают фразой «торговать памятью за деньги» (прим. автора).
8
Этот подход был впервые применен в Университете Торонто десять лет назад, и сейчас его называют глубоким обучением (прим. автора).
9
Заметьте, что, применяя оба метода, мы не занимаемся отделением носков от не-носков, поскольку наше задание – разобраться только с носками (прим. автора).
10
Есть более сложные методы изучения скорости роста. Один из них – узнать, не растет ли определенный метод быстрее, чем показанная скорость (известная под названием большое-о), или медленнее, чем показанная скорость (известная как большое-Ώ, т. е. «большая омега»). Другой метод – посмотреть, описывают ли скорости роста лучшие, худшие или средние случаи. Мы поговорим обо всех этих случаях позже (прим. автора).