Вспомним идею Эдисона о том, что прогресс требует сменяющих друг друга фаз «вдохновения» и «работы в поте лица», а также то, что благодаря компьютерам и другим технологиям появляется все больше возможностей автоматизации для второй фазы. Этот приятный результат ввел в заблуждение тех, кто слишком уверен в достижении искусственной эволюции (и искусственного интеллекта). Допустим, например, что вы аспирант со специализацией в области робототехники и хотите сконструировать робота, который будет ходить на двух ногах лучше предыдущих. Первая стадия решения этой задачи должна включать в себя вдохновение, другими словами, творческое мышление, направленное на улучшение попыток предыдущих исследователей. Вы будете отталкиваться от них, от известных решений
Программа должна будет распознавать такие ситуации, когда, например, робот вот-вот потеряет равновесие или наталкивается на препятствие, вычислять соответствующее действие и выполнять его. Это самая сложная часть исследовательского проекта. Как узнать, когда лучше обойти препятствие слева, а когда – справа, когда перепрыгнуть через него, а когда отпихнуть его в сторону, или пройти прямо по нему, или шагнуть шире, чтобы не наступить на него, или решить, что его преодолеть нельзя и повернуть назад? И как именно в каждом из таких случаев нужно осуществить все эти действия по отсылке бесчисленного количества сигналов в моторы и механизмы в соответствии с обратной связью, полученной от органов чувств?
Разумеется, вы разобьете задачу на подзадачи. Поворот на один заданный угол похож на поворот на любой другой. Поэтому можно написать подпрограмму для поворота, которая возьмет на себя весь континуум возможных случаев. Готовую подпрограмму можно будет просто вызывать из остальных частей программы при необходимости поворота, и в этих частях знания о том, что именно требуется для поворота, будут излишними. Задав и решив столько таких подзадач, сколько возможно, вы создадите код или
До этого момента большая часть того, что вы сделали, относится к «вдохновению»: она требовала творческого мышления. Настало время попотеть. Автоматизировав все, что вы знаете, как автоматизировать, вы столкнетесь с единственной возможностью для достижения дополнительной функциональности: обратиться к методу проб и ошибок. Однако теперь у вас есть преимущество в виде языка, который был вами адаптирован для передачи роботу инструкций по ходьбе. Поэтому можно начать с программы, простой на этом языке, но очень сложной в плане элементарных команд компьютера и означающей, например, «Идти вперед; при столкновении с препятствием остановиться». Затем можно запустить эту программу и посмотреть, что будет делать робот. (Или проверить ее на компьютерной модели робота.) Если робот споткнется и упадет или произойдет еще что-то нежелательное, программу можно модифицировать – все на том же уже созданном вами языке высокого уровня, – устраняя недостатки по мере их выявления. Вдохновения для такого метода нужно меньше, а вот попотеть придется.
Но есть и альтернативный подход: можно переложить вторую фазу на компьютер, но с использованием так называемого