Почему так легко «убить» робота?
Вы, наверное, видели в телепередачах битвы роботов. Люди конструируют таких роботов, единственная цель которых – разрушать, «убивать» других роботов. Потом несколько этих роботов выпускают на арену и смотрят, что произойдет. Такие состязания убедительно демонстрируют по крайней мере одну вещь: «убить» робота просто.
Это легко, потому что у роботов очень жесткое, предсказуемое поведение. Они не видят всей ситуации и никогда не принимают неожиданных решений. Предположим, у вас есть робот, который защищается при помощи огнемета. Если только другой робот приближается к нему ближе, чем на три метра, – БАЦ!!! – он его сжигает.
Все, что нужно другому парню, – сконструировать робота, который может обрызгать вашего робота бензином с расстояния 3,5 метра и быстро отъехать от него. Очень скоро ваш робот попытается использовать свой огнемет – и подожжет сам себя. А вот человек окажется достаточно сообразительным, чтобы сказать: «Ага, меня обрызгали горючей жидкостью – значит, мне пока нельзя пользоваться огнеметом». Роботы на это неспособны.
Это пример того, что исследователи ИИ называют проблемой формулировки. Проблема формулировки – это понимание того, в чем именно заключается проблема. Каким образом робот или любое другое мыслящее существо может понять, что относится к делу в данной ситуации? И как он может понять, на что можно спокойно не обращать внимания?
Это одна из самых трудных проблем ИИ. Некоторые люди даже скажут, что это и есть проблема ИИ.
Очевидных решений для нее нет. Когда ваш робот-призер только что стал грудой металлолома, первая реакция – поклясться построить нового и лучшего робота, который будет учитывать больше параметров внешней среды и будет рассматривать больше возможных последствий своих действий или бездействия. Это замечательная цель. Но в мире силиконовых чипов и компьютерных программ потребуется уйма усилий, чтобы ее реализовать. Расширение «сферы внимания» робота потребует экспоненциального увеличения объема вычислений, который должен будет производить «мозг» робота. Чем больше последствий будет учитывать робот, тем медленнее он будет реагировать – а нет ничего более уязвимого, чем медлительный робот.
Сегодня люди гораздо лучше формулируют проблемы, чем системы ИИ. Мы хорошо понимаем на инстинктивном уровне, что важно и что неважно в проблемных ситуациях, с которыми мы сталкиваемся. Хотя, конечно, этот инстинкт не безошибочен. Многие логические головоломки это как раз и используют. Вы начинаете решение проблемы, делая ряд естественных предположений о том, что имеет отношение к данной проблеме, а что нет. Во многих случаях головоломка сформулирована так, что некоторые из «естественных» предположений оказываются неверными.
Для того чтобы успешно решать головоломки (и более серьезные проблемы, моделями которых могут служить головоломки), вам нужно рассуждать одновременно на двух или более уровнях. Одна часть вашего сознания занята решением проблемы, в то время как другая отслеживает прогресс этого процесса. Вам нужно постоянно спрашивать себя: «Этот подход работает? Сколько времени я потратил на этот подход и какова вероятность того, что он скоро поможет найти ответ? Может быть, стоит попробовать что-то другое?»
Такой высокий уровень самосознания характерен для людей, успешно решающих задачи. Вы также обнаружите эту черту у людей, которые успешно проходят интервью любого типа при приеме на работу, поскольку в этой ситуации важно не только отвечать на вопросы, но и понимать, что означает поза и мимика интервьюера, и, кстати, обратить внимание на то, в порядке ли ваша собственная прическа. Если какой-то подход не работает, вам нужно вернуться назад к общей постановке проблемы и проверить, верны ли предположения, которые вы ранее сделали.
Может быть несколько стадий подобного возврата к исходным предположениям. В каждой ситуации нужно учитывать несколько предположений. Редко бывает так (если такое бывает вообще), что все они оказываются неверны. Прием, который используют некоторые люди, когда заходят в тупик при решении задачи, – подготовить список своих предположений и попытаться представить, что изменилось бы, если бы каждое из этих предположений оказалось неверным.
Возьмем, например, задачу об испорченных таблетках. Есть пять баночек с таблетками, в одной из которых таблетки испорчены. Вам нужно ее определить за одно взвешивание. Вы озадачены и не знаете, в какую сторону двигаться. Какие вы используете предположения?
Большинство людей предполагают следующее:
1) вам не разрешается открывать баночку;
2) таблетки, которые вы взвешиваете, нужно брать из одной и той же баночки;
3) взвешивание может сообщить вам только одну из двух вещей: у таблеток, которые вы тестируете, нормальный вес, или они легче, чем таблетки с нормальным весом.
Все эти три предположения уводят вас от правильного решения. Вам нужно их отвергнуть, чтобы найти его. В общем, как вам нужно решать, какое предположение(я) нужно отбросить? Это сложный вопрос, потому что перечисленные выше предположения не единственные, которые делают люди, когда обдумывают эту головоломку. Вот еще некоторые:
1) вам не разрешается разламывать таблетки и взвешивать не целую таблетку, а ее часть;
2) вам не разрешается пытаться прикидывать, взяв баночки в руки и сравнивая их вес, какая из них кажется подозрительно легкой;
3) вам не разрешается проводить химический анализ таблеток, чтобы определить, какие из них испорчены (иначе зачем вам понадобилось бы их взвешивать?);
4) вам нельзя спрашивать других людей о том, в какой из баночек таблетки испорчены (или давать кому-нибудь взятку, чтобы он вам об этом сообщил).
Все четыре предположения вполне разумны для этой конкретной головоломки. Они помогают вам не сбиться с пути, раздумывая о вариантах, которые не помогут вам решить эту задачу.
К несчастью, приступая к решению задачи, вы об этом еще не знаете. Есть головоломки, загадки, каверзные вопросы и реальные проблемы, для решения которых вам нужно будет как раз использовать предположения из первого списка, отвергнутые нами. Все это более или менее разумные предположения, но вы должны быть готовы к тому, чтобы отвергнуть какие-то из них, если того потребуют обстоятельства.
Ключ к решению любой сложной задачи – быть внимательным к различным признакам, которые могут подсказать, какого типа эта задача. Есть много типов таких признаков. Это может быть все, что угодно, от особенностей формулировки условий и тона, которым задает вопрос интервьюер, до ваших собственных рассуждений относительно различных предположений.
Если вы очутились на тонущем корабле, то в первую очередь за борт летит груз, который весит много, а стоит недорого. Аналогично обычный способ работы с потенциально неверными предположениями – начинать с отказа от не очень существенных, а потом переходить к более важным. Самое первое из упомянутых выше предположений (о том, что нельзя открывать баночку) обычно останавливает немногих. В условии задачи нет ничего, что в явном виде разрешало бы вам открывать баночку, но, с другой стороны, там нет и запрета делать это. Задается вопрос о том, какая из баночек дефектна, а не какие таблетки. Робкие люди, так же как и те, кто во всем стремится к совершенству и ищет самый элегантный ответ, могут начать с поиска решения, в ходе которого баночки взвешиваются целиком и не открываются. Это неплохой первый ход для поиска решения.
Но подумайте об этом немного и вы поймете, что это неверное предположение. Предположим, что вы взвесили баночку номер три и весы показали 1027 граммов. Какая часть этого веса приходится на саму баночку? Вы этого не знаете. Вам ведь это не сообщалось. Сколько таблеток в баночке? И этого вы не знаете. Вполне вероятно, что их можно пересчитать, но это будет похоже на попытку мальчишки угадать номер выигрышного лотерейного билета по тем числам, которые были на последнем купленном им трамвайном билете: вы ведь даже не знаете, одинаково ли количество таблеток в разных баночках.
Следовательно, это предположение следует сразу поставить под сомнение. Оно прямо не вытекает из формулировки условия задачи. Если вы его примете, то обнаружите, что вам не хватает информации для решения задачи. Очевидно, вы должны взвешивать таблетки, а не баночки.
Примерно то же самое относится и ко второму предположению о том, что нужно взвешивать таблетки только из одной баночки. Иногда возникает опасная тенденция упрощать проблемы. Проще обдумывать ситуацию, когда все таблетки из одной баночки. Но если вы примете подобное предположение (которое опять-таки не вытекает из условия), то не сможете решить головоломку.
Вы можете быстро прийти к выводу, что использовали неверное предположение. Когда вы взвешиваете таблетки только из одной баночки, есть только два возможных исхода – это могут быть или нормальные, или испорченные таблетки. Допустим, вы решили взвесить десять таблеток из баночки номер три, и весы показали 90 граммов – вам повезло. Очевидно, что таблетки в этой баночке испорчены, и вам достался счастливый билет. Проблема в том, что вам могла попасться и любая из оставшихся четырех баночек. Тогда, взвесив десять таблеток, вы узнаете, что у них нормальный вес – 100 граммов. И у вас не будет ни малейшего представления о том, в какой из остальных четырех баночек испорченные таблетки. И так произойдет в любом случае, если вы будете взвешивать таблетки только из одной баночки. Это сильный довод в пользу того, что для правильного ответа на задачу нужно взвешивать таблетки из нескольких баночек.
Третье предположение – это основная трудность для многих кандидатов на работу в Microsoft (хотя, как ни странно, люди, не занимающиеся программированием, редко попадаются в эту ловушку). Каждый, кто привык размышлять в терминах программирования, приходит к заключению, что результатом единственного взвешивания – неважно, одной таблетки или нескольких – может быть только ответ «да» или «нет». Вес может быть или «нормальным» или «ненормальным».
Это всего один бит информации, а каждый программист знает, что невозможно идентифицировать один из пяти объектов при помощи единственного бита информации. Для этого нужно три бита.
Этот анализ, конечно, бесполезен. Он основан на втором предположении. Вы в реальности получаете ответ «да» или «нет» только если все таблетки идентичны, то есть взяты из одной и той же баночки.
Предварительное обдумывание головоломки часто приводит к выводу, что ее невозможно решить. Неудивительно: хорошая головоломка должна заставлять вас биться головой о стену. Но если посмотреть с другой стороны, невозможность решения может вам помочь. Если данное предположение приводит к заключению, что головоломку невозможно решить, то что-то неверно или в самом предположении, или в логике ваших рассуждений.
Один из лучших способов найти решение – принять предположение номер три, обдумать его и понять, каким образом оно ведет к невозможности решения задачи. Это приведет вас к заключению, что третье предположение необходимо отвергнуть. Каким-то образом вы должны получить в результате единственного взвешивания более информативный ответ, чем просто «да» или «нет». Теперь задачу следует переформулировать так: «Каким образом можно провести взвешивание так, чтобы получить достаточно информации о каждой из пяти баночек и найти испорченную?» В зависимости от вашей подготовки и опыта подобная задача может оказаться для вас и простой, и сложной. Но для каждого из нас основной трудностью будет суметь так переформулировать проблему, как это сделано выше.
Логические головоломки – это не единственный способ протестировать навыки переформулирования проблем. Сколько бензозаправочных станций в Лос-Анджелесе? Столкнувшись с подобным вопросом во время интервью, вы должны в первую очередь решить, какой на него ожидается ответ. Некоторые из возможных реакций:
• Боже мой! Я должен был это знать, но не знаю…
• Это шутка. Этого не может знать ни один кандидат. Мне нужно просто рассмеяться в ответ.
• Это тест. Они хотят проверить, как я реагирую, если я чего-то не знаю. Я должен откровенно ответить, что я не знаю, а не делать вид, будто знаю ответ.
• Это такой тип теста. Они хотят, чтобы я оценил каким-то образом это количество. Им не требуется абсолютно точный ответ.
Только после того, как вы отвергли первые три предположения и остановились на четвертом, вы сможете начать поиск того ответа, на который рассчитывает интервьюер. «Не слишком сообразительные кандидаты начинают волноваться и расстраиваться, – говорит Джон Сполски. – Они просто уставятся на вас так, будто вы с Луны свалились. Вам нужно помочь им и подсказать. “Ну если бы вам нужно было построить новый город размером с Лос-Анджелес, сколько бензозаправок вам бы тогда понадобилось?” Вы можете дать небольшие подсказки. “Сколько времени уходит на то, чтобы заправить полный бак бензином?” И все же если кандидат не очень умен, вам придется подталкивать его к правильному ходу рассуждений, пока он сидит и тупо смотрит на вас, рассчитывая на вашу помощь. Такие люди не умеют решать проблемы, и мы не хотим, чтобы они у нас работали».
В некотором отношении вопросы без правильного ответа – самые опасные. Если бы можно было упразднить любой из пятидесяти штатов США – какой бы вы выбрали? Конечно, это глупый вопрос, но это не значит, что все ответы на него одинаково хороши. Отвечая на такой вопрос, вы можете несколько раз его переформулировать. Стоит ли понимать этот вопрос так: «Без какого штата можно “обойтись” по политическим соображениям?» или «Какой штат вам лично не нравится?» или «Какой штат кажется лишним, если посмотреть на географическую карту?» Единственный критерий для выбора – насколько хорошим может быть ваш ответ. Если у вас есть убедительная история о том, почему вы не любите штат Делавэр, и вы может ее рассказать и при этом не произвести впечатления самовлюбленного, зацикленного на своей ненависти к этому штату неудачника, может быть, нужно выбрать именно эту трактовку вопроса. В противном случае лучше попробовать что-то другое.
Одно важное отличие между этим типом вопросов и логической головоломкой – когда вы предлагаете ответ, у вас нет уверенности, что он правильный. Напротив, если вы находите правильный ответ при решении головоломки – вам сразу становится очевидным, что задача решена, и вы можете остановиться. Нечетко структурированные вопросы похожи на неудачно спроектированную клавиатуру. У вас нет обратной связи и совершенно невозможно понять, достаточно ли сильно вы нажимаете на клавиши. Нечетко структурированные вопросы предполагают рассмотрение нескольких разных парадигм при подготовке ответа, пока вы не остановитесь на одной из них.