Слабо понимаемое словосочетание «здравый смысл» на самом деле обозначает явление, куда более сложное, чем значительная часть «технического» опыта, которым мы восхищаемся. Ни «экспертная» программа по логике, ни аналогичная программа по алгебре не содержат больше сотни «фактов», причем эти факты во многом подобны друг другу. Но этого оказалось достаточно, чтобы решать университетские математические задачи. А теперь вообразите, сколько всего должен знать ребенок, чтобы построить дом из кубиков! Этот процесс включает в себя знание цветов и форм, представление о пространстве и времени, систему сдержек и противовесов, а также способность отслеживать собственные действия.
Чтобы считаться «экспертом», нужно обладать изрядными познаниями относительно сравнительно немногочисленных фактов. По контрасту, «здравый смысл» обычного человека подразумевает гораздо большее разнообразие познаний, которые требую более сложной системы управления.
Существует простая причина, почему приобретать специализированные знания легче, нежели пополнять запасы здравомыслия. Каждый тип знаний нуждается в определенной форме репрезентации и в совокупности навыков, адаптированных к использованию этой формы. После первоначальных усилий по накоплению знаний и навыков специалисту довольно просто пополнять свои знания – при условии, что дополнительный опыт достаточно единообразен и соответствует конкретной форме представления. Адвокат, доктор, архитектор или композитор, которые приобрели некоторый опыт в определенной сфере деятельности, без труда будут накапливать больше знаний подобного же характера. Но подумайте, насколько дольше один человек будет учиться эффективно лечить ряд заболеваний, вести судебные процессы нескольких разновидностей, чертить архитектурные чертежи и сочинять оркестровые сюиты! Большее разнообразие представлений затрудняет обретение «одинакового» объема знаний во всех перечисленных областях. Для каждой новой области нашему образцу придется изучать иную форму репрезентации и новые навыки ее использования. Это отчасти похоже на изучение множества иностранных языков, у каждого из которых своя грамматика, своя лексика и свои идиомы. С этой точки зрения действия детей выглядят еще восхитительнее, так как многие их поступки вызваны собственными изобретениями и открытиями.
7.3. Принцип головоломки
Многие люди считают, что машины способны выполнять только действия, на которые их запрограммировали, то есть напрочь лишены способности к творчеству и оригинальности. Проблема в том, что данный аргумент содержит в себе посылку, которую призван доказать: мол, нельзя запрограммировать машину на творчество! На самом же деле поразительно просто запрограммировать компьютер так, чтобы он начал выполнять операции, вообразить которые заранее не в состоянии ни один программист. Возможно, это следствие того, что мы будем называть «принципом головоломки».
Принцип головоломки: Возможно запрограммировать компьютер для решения любых задач методом проб и ошибок без готовых вариантов решений, при условии, что мы располагаем способом установить факт решения задачи.
Под методом «проб и ошибок» подразумевается систематическое программирование для генерации всех возможных структур в пределах некоторой вселенной возможностей. Например, предположим, что нам требуется робот, способный построить мост через реку. Наиболее эффективная программа для такого робота означает выполнение определенной процедуры, описанной заранее, для надлежащего размещения досок и забивания гвоздей. Конечно, написать такую программу невозможно, не обладая сведениями о строительствах мостов. Но рассмотрим альтернативу ниже – иногда ее называют методом генерации и тестирования. Нужно составить двухчастную программу.
Генерация: Первый этап просто формирует, одну за другой, все возможные комбинации досок и гвоздей. На первый взгляд может показаться, что написание такой программы вызовет затруднения. Однако выясняется, что это удивительно легко, стоит лишь сообразить, что комбинации досок и гвоздей не обязаны быть «здравыми» с человеческой точки зрения!
Тестирование: Второй этап процесса сводится к проверке каждого варианта комбинаций для выяснения того, была ли решена задача. Если цель заключалась в постройке плотины, успешным результатом тестирования будет перекрытие водного потока. Если же цель состояла в том, чтобы построить мост, тестирование покажет, можно ли перейти реку.