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