Журнал «Вокруг Света» №10 за 2007 год - страница 20
Пролог
Первые работы в области ИИ были связаны с решением формальных задач — игрой в шахматы и доказательством математических теорем. Это ли не квинтэссенция интеллекта, как его понимает большинство людей? Специалисты, однако, надеялись, что обучить машину справляться с такими строго формализованными задачами будет проще, чем с теми, где и человеку-то не вполне ясно отличие правильного решения от ошибочного.
В начале 1970-х годов на пике компьютерной моды было создание языков программирования. Они настолько облегчали труд программистов, что, казалось, любая проблема разрешится едва ли не сама собой, стоит только придумать подходящий язык. Обычные языки программирования называют императивными: программист пишет компьютеру предельно детализированную инструкцию, не подлежащий обсуждению приказ (императив). Никакого интеллекта от машины-исполнителя не требуется — вспомните советских «Отроков во Вселенной», которые детской загадкой про «А и Б» почем зря жгли мозги инопланетных роботов-исполнителей. А вот интеллектуальным «вершителям» из того же фильма загадки были нипочем — у них была хоть и извращенная, а все-таки свобода мысли.
Чтобы оставить компьютеру интеллектуальную свободу, были разработаны языки принципиально иного типа — декларативные. Самый известный из них назывался Пролог (от «программирование логическое»), само это название говорит о том, какие большие возлагались на него надежды. Вместо инструкций программист записывает на Прологе формализованные знания о предметной области и формулирует условия задачи, а компьютер пытается найти ее решение, опираясь на описания (декларации) и правила логики. Например, в качестве предметного мира можно задать набор геометрических аксиом, условием задачи взять теорему Пифагора, а компьютер построит ее доказательство. Калькуляторы отучили школьников считать, а с таким языком и умение рассуждать оказалось бы лишним.
Впрочем, ставка на декларативные языки, в частности на Пролог, была ошибкой. За оберткой Пролога все равно скрывается обычный компьютер, выполняющий команду за командой. А то, что снаружи выглядит как интеллектуальный поиск доказательства, внутри оказывается перебором всех возможных вариантов рассуждений, пока один из них не окажется нужным доказательством. С несложной теоремой компьютер справляется на удивление быстро. Но стоит немного усложнить задачу, и вот уже никакой, даже самой фантастической, производительности не хватит для полного перебора вариантов.
В 1997 году компьютер IBM Deep Blue, анализирующий 200 миллионов позиций в секунду, одержал победу во втором матче с чемпионом мира по шахматам Гарри Каспаровым
С такой же проблемой столкнулись и создатели шахматных компьютеров. Допустим, у белых и черных в каждый момент есть 32 различных хода. Чтобы изучить партию на два хода вперед, нужно перебрать миллион позиций — человеку понадобилась бы неделя, если тратить полсекунды на вариант. Компьютер, конечно, справляется с этим гораздо быстрее — вот почему машина легко обыгрывает начинающего игрока, который «видит» не дальше 2—3 ходов. Но при пяти ходах число вариантов превышает квадриллион, а такой перебор не под силу даже современным компьютерам.
Гроссмейстеры, между тем, заглядывают порой куда дальше. В отличие от компьютера они сразу отбрасывают бесперспективные пути, отсекают целые ветви рассуждений, объясняя это, например, потерей темпа или позиционного преимущества. Что-то подобное скажет вам и математик, если спросить, почему он выбрал именно такой первый шаг в доказательстве. Только концентрация на небольшом числе интересных вариантов позволяет заглянуть вперед. Правда, при неудачном подходе вы рискуете отсечь как раз ту ветвь, которая содержала самый перспективный ход, или, наоборот, не заметить скрытую угрозу. Но «борьба с экспонентой», с катастрофическим ростом числа вариантов заставляет нас выйти за рамки надежных формальных методов и рискнуть ставить оценки без полной уверенности в них.
Оценочная функция
Если в целом сформулировать, как работает любая система ИИ, то можно сказать, что в ее основе лежит сложная оценочная функция. Какой ход лучше, тратить ли время на изучение его последствий? На какую букву больше похоже вот это пятно на бумаге? Покупать или продавать акции? Идти в атаку или укреплять оборону? Такой взгляд демистифицирует понятие ИИ. Так что, если вам скажут, что ваша стиральная машина оснащена интеллектуальной системой гашения вибраций, вполне возможно, что так оно и есть.