Книга: Вычислительное мышление: Метод решения сложных задач

Думаем как компьютер?

Думаем как компьютер?

Люди в роли компьютеров

У человеческого мозга и компьютера есть много общего. Наша способность думать, интеллект и самоощущения возможны благодаря тому, что мозг производит массу вычислений. С помощью сложной сети он обрабатывает информацию, поступающую от органов чувств, принимает решение, что с ней делать, и в результате мы действуем в окружающем мире.

Ученые до сих пор не имеют полного представления о том, как работает мозг, но это неудивительно. В конце концов, в нем приблизительно столько нейронов, сколько капель воды в олимпийском плавательном бассейне. А это очень много!

Сформулируем вопрос следующим образом: думают ли люди как компьютеры, чтобы облегчить себе повседневную жизнь? Похожи ли особенности нашего мышления на вычисления компьютеров? Если мы собираемся заняться жизни, то, чтобы создать роботов, которые бы выживали столь же успешно, как мы, сначала нужно понять, как мы воспринимаем и понимаем мир. Но начнем с другого, хотя и связанного с этой темой, вопроса: естественно ли для нас вычислительное мышление?

Повседневное вычислительное мышление

Как мы знаем, мозг склонен проводить , применяя нечто вроде порождающих правил, — компьютеры часто программируют на это. Мы автоматически реагируем на стимул, следуя заданным правилам. Например, если звонит телефон, я, особенно не задумываясь, подниму трубку. Если в дверь постучат, то я ее открою.

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

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

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

Вычислительное мышление компьютера

Как мы уже отмечали, сейчас пишется все больше программ, которые позволяют компьютерам не просто заниматься вычислениями, но и мыслить вычислительно. В компьютерных программах тоже используется декомпозиция. Чтобы их было легче писать, разработчики раскладывают инструкции на отдельные шаги или процедуры, так же, как мы разделяем цели на подцели. Это значит, что, продвигаясь к желаемому результату в процессе выполнения инструкций, программа проходит через различные этапы плана, примерно так же, как это делаем мы. Они используют применительно к , и системы машинного обучения позволяют им увидеть даже более сложные шаблоны. В программах для зрительного распознавания используются которые прячут лишние детали, прибегают к своего рода Чем больше мы стремимся усовершенствовать тем больше копируем навыки нашего мозга. Как мы видели, знание сводится к вычислению, по крайней мере на уровне нейронов. Так думаем ли мы как компьютеры?

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

Головоломное планирование

Предлагаем вам попробовать вариацию на тему старой головоломки. Она покажет, как люди задумывают и выполняют свои неформальные планы.

Фермерша отправляется в ближнюю деревню с овчаркой по имени Дымка, которую всегда берет с собой. Чтобы попасть в деревню, нужно переплыть реку с быстрым течением. На другом берегу живет изобретательница, которая сделала приспособление, позволяющее быстро перебраться через поток. Оно состоит из веревки, блоков и сиденья для одного человека. Местные жители условились всегда оставлять сиденье со стороны деревни, где живет изобретательница, чтобы она могла каждый вечер убирать его. В конце концов, она ничего не берет за переправу. Добравшись до реки, фермерша перетягивает сиденье с другой стороны. Она садится, прижимает к себе Дымку, перебирается через реку и продолжает путь в деревню.

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

Запишите последовательность шагов (конечно, это будет алгоритм!), которую нужно пройти фермерше, чтобы переправить всех и вся в целости и сохранности и продолжить путь. Помните, что собака и курица, а также курица и зерно не должны оставаться без присмотра.

Сначала решите головоломку, а потом читайте дальше.

Автоматические ошибки

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

Как это применимо к нашей головоломке? Дело в том, что многие находят ответ и у них получается переправить фермершу, собаку и зерно через реку. Однако они упускают последний шаг — не возвращают сиденье на другой берег. Правильное решение представлено на рис. 74.


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

Так что, по крайней мере в этом отношении, мы не похожи на компьютеры. Они четко следуют плану. Нашему мозгу трудно это сделать без помощи.

Машина протягивает руку помощи

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

Решение для этой конкретной «ошибки после завершения» оказалось простым. Программист написал для банкомата код, в соответствии с которым он не выдает наличность (ваша цель), пока вы не заберете карту (не выполните завершающую подцель). Таким образом, вы вынуждены кое-что доделать (подцель), прежде чем достичь цели. Так сейчас работают банкоматы в Великобритании. И это не единственное решение. Например, на бензоколонках карту просто прокатывают — то есть вам вообще не нужно ее куда-то вставлять. Хорошая проработка помогает преодолеть недостатки в обработке информации, свойственные нашему мозгу, но без посторонней помощи мы делаем ошибки. В этом случаи машины должны помогать. К сожалению, урок не был усвоен в более общем плане! Когда магазины начали вводить кассы самообслуживания, вдруг обнаружилось, что многие, оплатив покупки, забывают карты. решение было проигнорировано.

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

Качественное вычислительное мышление означает проектирование компьютеров, которые помогают преодолеть «недостатки», мешающие нам думать как компьютер.

Оглавление книги


Генерация: 0.910. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз