Вокруг Света 2007 № 10 (2805) | страница 30



За последние десятилетия попытки создать «разумную» машину постепенно вылились во множество самостоятельных направлений: распознавание образов, машинный перевод, восприятие устной речи, многофакторная оптимизация, принятие решений в условиях недостаточности информации, поиск пути к цели (в частности, поиск логических доказательств) и, конечно, задача задач — создание самообучающихся систем, способных справляться с проблемами, к которым их не готовили. У всех этих задач есть нечто общее, что их объединяет, — невозможность сформулировать алгоритм (четкую пошаговую инструкцию) для их решения. Компьютер с искусственным интеллектом справляется с задачами, когда сам программист может не знать способа решения. Но расплачиваться за интеллект приходится тем, что машина утрачивает свойственную ей механическую безошибочность. Подобно человеку, который полагается на привычки и интуицию, интеллектуальная программа находит нужное решение быстро, но не гарантированно. Именно за уменьшение вероятности ошибок при сохранении скорости принятия решений идет основная борьба в исследованиях по искусственному интеллекту (ИИ).

Пролог

Первые работы в области ИИ были связаны с решением формальных задач — игрой в шахматы и доказательством математических теорем. Это ли не квинтэссенция интеллекта, как его понимает большинство людей? Специалисты, однако, надеялись, что обучить машину справляться с такими строго формализованными задачами будет проще, чем с теми, где и человеку-то не вполне ясно отличие правильного решения от ошибочного.

В начале 1970-х годов на пике компьютерной моды было создание языков программирования. Они настолько облегчали труд программистов, что, казалось, любая проблема разрешится едва ли не сама собой, стоит только придумать подходящий язык. Обычные языки программирования называют императивными: программист пишет компьютеру предельно детализированную инструкцию, не подлежащий обсуждению приказ (императив). Никакого интеллекта от машины-исполнителя не требуется — вспомните советских «Отроков во Вселенной», которые детской загадкой про «А и Б» почем зря жгли мозги инопланетных роботов-исполнителей. А вот интеллектуальным «вершителям» из того же фильма загадки были нипочем — у них была хоть и извращенная, а все-таки свобода мысли.

Чтобы оставить компьютеру интеллектуальную свободу, были разработаны языки принципиально иного типа — декларативные. Самый известный из них назывался Пролог (от «программирование логическое»), само это название говорит о том, какие большие возлагались на него надежды. Вместо инструкций программист записывает на Прологе формализованные знания о предметной области и формулирует условия задачи, а компьютер пытается найти ее решение, опираясь на описания (декларации) и правила логики. Например, в качестве предметного мира можно задать набор геометрических аксиом, условием задачи взять теорему Пифагора, а компьютер построит ее доказательство. Калькуляторы отучили школьников считать, а с таким языком и умение рассуждать оказалось бы лишним.