Алексей Чачко - Искусственный разум
Летом 1977 года в Бостоне проходила международная конференция по Искинту. Из рассказов ее американских участников выяснилось явное стремление капиталистических монополий финансировать только прикладные, дающие быструю прибыль работы, пренебрегая фундаментальными исследованиями. Обозначилась также тенденция милитаризировать эти работы, подчинив их интересам и вкусам Пентагона.
Все это проявления коренного противоречия, свойственного капитализму, противоречия между общественным характером духовного производства и частнособственническим характером присвоения результатов интеллектуального труда. Ученые работают в коллективах, стремятся к добросовестному и широкому обмену мнениями, наука возникает сообща. Цель ученых истина и благо людей, наука бескорыстна и гуманна. А капитализм стремится к частному, рваческому присвоению плодов науки, к наживе на передовых ее достижениях, капитализм корыстен и антигуманен.
Но вернемся к УЧЕНИКу. Запись решения, только что просмотренная нами, - это подлинная распечатка, которую сделала программа Боброва. Точнее, почти подлинная. Ибо подлинник основан на языке ЛИСП, особом языке для программирования задач Искинта. А ЛИСП присвоил себе ряд английских слов, которые мы воспроизвели по-русски. И способы записи уравнения в ЛИСПе чуточку иные, чем у нас, мы кое-где погрешили против свойственной ЛИСПу манеры сначала называть действия (функции), а потом предметы, с которыми производятся эти действия (аргументы функций). Зато изобилие скобок вполне в духе ЛИСПа. И расположение текста тоже.
Слово ЛИСП образовано из двух английских слов: LISt и Processing; оно означает "переработка списков".
Список! В нашем разговоре о программе Боброва это слово уже употреблялось восемь раз. В программу, кстати, кроме знакомых нам списков, входят еще два: список шаблонов и список синонимов, то есть слов и выражений, разных внешне, но одинаковых по существу. Посредством списка синонимов машина выполнила замены вида "Мэри 24 года" на (РАВЕН 24((МЭРИ/ЧЕЛОВЕК) ВОЗРАСТ), замены, интуитивно ясные человеку, но потребовавшие от ЭВМ переработки списка синонимов.
Можно гарантировать, что слово "список" будет самым частым гостем в нашей книге. Потому что многие специалисты считают: Искинт - это переработка списков и ничего, кроме переработки списков.
Найти в списке слово, ничем не отличающееся от проверяемого, переставить слова в списке, слить два списка вместе, выделить из списка подсписок - вот привычная работа ЭВМ в программах Искинта. Или еще: найти в списке слово, обладающее заданными свойствами, положим, из шести букв, кончается на "а"; и машина нашла - "ворона"; поменять во всех словах списка определенные буквы и выбрать те из них, которые после этой замены останутся русскими словами, например, поменять первую букву слова на "к", а предпоследнюю на "в"; наша "ворона" тогда станет "корова", вернуть слову его родную предпоследнюю букву (у нас в результате засияет "кокона"), образовать из новых слов отдельный список ("ворона, корова, корона").
Приводил я случайные примеры переработки списков, изготовил, казалось бы, лишенный всякого смысла новый список и вспомнил историю про коронацию Николая И, последнего и наиболее бездарного российского самодержца. Многие русские газеты поместили отчет о церемонии; среди них была одна (столичная или провинциальная - мнения современников расходятся), в которой официально излагалась вся последовательность коронации, а про кульминационный момент говорилось: "на голову царя возложили ворону". Многочисленные читатели газеты прочли и поразились знаменательной опечатке.
Царская цензура потребовала от газеты немедленного опровержения. Газета подчинилась. В следующем ее номере на первой полосе появилось: "Поправка. Во вчерашнее наше сообщение о торжествах в Москве вкралась опечатка. Вместо слов "на голову царя возложили ворону" следует читать "на голову царя возложили корову". Редакция почтительнейше извиняется перед читателями".
И тут читающая публика рассмеялась. Стало понятно, что это никакая не опечатка, а остроумное издевательство над самодержавием, над помпезностью "священного коронования".
Случай с короной вошел в историю отечественной сатиры. Хлестко и озорно умеет перерабатывать списки естественный интеллект. Что до Искинта, то переработка списков его хлеб насущный, его повседневная работа.
Перерабатывая списки, программа Боброва осиливает разнообразные задачки. Вот еще одна распечатка:
(РЕШАЕТСЯ ЗАДАЧА)
(ВЕС КОРАБЛЯ БРУТТО СОСТАВЛЯЕТ 20 000 ТОНН. ЕСЛИ ЕГО ВЕС НЕТТО РАВЕН 15 000 ТОНН, ТО КАКОВ ВЕС КОРАБЛЯ КАРГО ВОПР)
Когда автор впервые прочел условия задачи, у него возник дополнительный вопрос. Если изъясняться на машинном языке,
(ЧТО ЗНАЧИТ ВЫРАЖЕНИЕ "ВЕС КОРАБЛЯ КАРГО" ВОПР).
Видимо, читатель тоже не знает этого "карго". И машина не знала. Она отпечатала:
ДАННЫХ НЕДОСТАТОЧНО ДЛЯ РЕШЕНИЯ-ПЫТАЮСЬ РАЗОБРАТЬСЯ. (ИЗВЕСТНЫ ЛИ ВАМ ДОПОЛНИТЕЛЬНЫЕ СВЯЗИ МЕЖДУ ТАКИМИ ПЕРЕМЕННЫМИ:) (ВЕС КОРАБЛЯ БРУТТО) (ЕГО ВЕС НЕТТО) (ВЕС КОРАБЛЯ КАРГО)
Внимание, читатель! Вы свидетель знаменательного события. Машина, прервав свою работу, обратилась к человеку за помощью, за разъяснениями. И человек ответил (его ответы печатаются строчными буквами): да
СООБЩИТЕ ИХ МНЕ
(вес корабля карго представляет собой разность между его весом брутто и весом нетто) ДАННЫХ НЕДОСТАТОЧНО ДЛЯ РЕШЕНИЯ Еще раз: внимание! Между ЭВМ и человеком состоялся обмен репликами, возник разговор, диалог. Диалог, правда, недлинный. Далее машина справляется сама:
(ПРЕДПОЛАГАЮ, ЧТО)
((ВЕС НЕТТО) СООТВЕТСТВУЕТ (ЕГО ВЕС НЕТТО))
(ПРЕДПОЛАГАЮ, ЧТО) ((ВЕС БРУТТО) СООТВЕТСТВУЕТ (ВЕСУ КОРАБЛЯ БРУТТО)) (РЕЗУЛЬТАТ)
(ВЕС КОРАБЛЯ КАРГО 5000 ТОНН)
ЭВМ нашла вес корабля карго, попросив и получив в нужный момент содействие человека. С УЧЕНИКа (так окрестил Д. Бобров свою программу) было, вероятно, впервые снято табу вычислительной техники, требовавшее: не вмешиваться! не мешать работающей машине! УЧЕНИК был одной из первых диалоговых программ. Возьмем это себе на заметку потому, что нам еще предстоит обстоятельный разговор о диалоге человека с вычислительной машиной, о слиянии усилий естественного и искусственного интеллектов в решении трудных проблем.
Задача с кораблем
У американской программы есть советский брат. Чтобы различить этих школьников, будем называть американца УЧЕНИК - А, а нашего соотечественника - УЧЕНИК - С Программа УЧЕНИК - С особенно сильна в задачах на движение, в задачах про поезда, самолеты, велосипедистов и пешеходов. УЧЕНИК - С решил такую, например, задачу.
"От Москвы, в которой живет 7 миллионов человек, до Плешкина с населением в 500 человек современный комфортабельный поезд движется 2 часа. Но, к сожалению, из Плешкина идут только старые тесные электрички, переполненные народом, скорость которых примерно на 30 км/ч меньше, чем скорость современного поезда. Житель Плешкина хочет попасть в МГУ на семинар, который должен состояться в 14 часов. Железнодорожное расписание устроено так, что старая электричка отправляется из Плешкина через 3 часа после того, как туда прибывает комфортабельный поезд. Когда выехал из Москвы современный поезд, если известно, что тесная электричка, на которой наш любитель науки проехал все 100 км, прибывает в Москву в 13 часов?"
Программа УЧЕНИК - С так же, как и программа Д. Боброва, работает с шаблонами, ее хлебом не корми, а дай выискать в тексте задачи "расстояние от ▫ до ▫▫", "из ▫ в ▫▫", "между ▫ и ▫▫". Так она устанавливает, что Плешкино и Москва - исходный и конечный пункты движения. Подобным же образом выискивает объекты движения - электричку и поезд, а также характеристики движения.
Что касается жалоб на тесноту и старость электрички, похвал поезду и сравнительных сведений о населении Москвы и Плешкина, то программа оставляет их безо всякого внимания. Она их просто не понимает, не в коня корм. Программа безжалостно отбрасывает всякие тонкости, не входящие в жесткую схему движения. И потому быстро разбирается в условиях задачи.
Мы с вами, читатель, не таковы. Мы, знакомясь а задачной историей, о чем только не подумали. И о том, что Плешкино небольшой поселок с забавным названием. И о том, что герой у задачи необычный - любитель науки, посещающий семинары в МГУ (интересно, какой наукой он там занимается, уж не вычислительной ли?). И о том, что герой не столь уж сладко живет, а старые тесные электрички ему просто надоели.
Мы подумали и об авторе задачи. Не одно ли он лицо с автором программы? Тогда этот программист - молодой человек с хорошо поставленным чувством юмора...
Мысли наши разошлись кругами от центра - уело-вий задачи. Потом мы, конечно, стряхнули с себя рассеянность. И поступили машиноподобно. Где пункты? Где объекты движения? Когда выехали? Когда прибыли? Составим уравнение, решим его; ответ - 20 километров в час. И скова сорвались.