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