Эвристики - дочери Архимеда - самые остроумные приемы решения задач. Не зря все программы для Искинта долгое время именовалась эвристическими. Не зря программисты изобрели многие десятки эвристик и сами называли их то наивными, то осторожными, то свирепыми, то умными. Есть даже фагозвристики, которые, словно белые кровяные тельца - фагоциты, безжалостно пожирающие микробов, очищают память машины от второстепенных фактов, фактиков, излишней дребедени.
Эвристики - непостоянные красавицы, талантливые и беспечные, полная противоположность унылому работяге алгоритму.
Автору пришлось прочесть не одну статью о коренном различии между эвристиками и алгоритмами. Их настойчиво противопоставляли друг другу, разгоняя по разным углам. А после в угол, где находились эвристики, приводили человека, а в глухой алгоритмический угол затаскивали машину. Образ мысли человека, дескать, в высшей степени эвристичен, а образ мысли машины глубоко алгоритмичен. И отсюда делался вывод: не тягаться машине с человеком, Искинт принципиально невозможен.
Принципиально невозможен! Как часто иным людям кажется принципиально невозможным то, что им непонятно или что грозит нарушением их научных привычек. Но из своих противоположных углов эвристики и алгоритмы кричат: "Мы - братья и сестры, мы - близнецы, не разлучайте нас!"
И эвристики и алгоритмы - это приемы решения задач, четкие, определенные приемы, прилагаемые ко многим задачам. Здесь, в детерминированности и массовости, если пользоваться более строгим языком, нет никаких различий между эвристиками и алгоритмами. Нет различий и в остроумии, изяществе, внутренней силе: встречаются ослепительные по красоте алгоритмы, встречаются и занудные эвристики. Различие между ними проявляется только в одном - в успешности решения задач; алгоритм успешен всегда, эвристика - часто, но не всегда.
Выходит, что эвристика в определенном смысле хуже алгоритма? Но наше "хуже" носит схоластический характер, потому что эвристики работают с теми задачами, для которых нет строгого алгоритма. Вот он, гвоздь вопроса!
Программу САИНТ, написанную Д. Слейглом, удалось через шесть лет усовершенствовать другому ученому - Л. Мозесу; ее оценки стали многочисленнее и тоньше, в результате чего почти исчезли лишние ветви дерева целей. Программа берет интегралы без колебаний, но при этом еще остается эвристической.
Через два года Р. Риш, третий исследователь, напрочь отказался от эвристик. Он придумал алгоритм интегрирования многих видов выражений.
Ну что тут скажешь?! Интегрирование с момента его изобретения и по сию пору считалось серьезной умственной работой. На голову, не умеющую интегрировать, не надевали фуражку инженера. Алгоритма интегрирования не было; откуда взяться простым и однозначным правилам там, где нужна изобретательность?
И все же алгоритм интегрирования оказался возможным. И красивым. И эффективным не на 96, как эвристическая программа Д. Слейгла, а на все 100 процентов.
История с интегралами - поучительный пример, но не доказательство того, что эвристики лишь временные работники в программах Искинта, что в будущем их вытеснят жесткие и жестокие алгоритмы.
Думаю, произойдет совсем другое: они сольются, эвристики и алгоритмы. Понятие "алгоритм" сегодня живет, дышит, развивается, растет. Мы видели - оно вобрало в себя неопределенность и размытость. Оно охватит и эвристичность - умение просто и красиво решать задачи. "Эвристический алгоритм" - непривычное словосочетание, но мы быстро привыкнем к нему.
Мне кажется, что "теория противоположных углов" возникла из-за недооценки гибкости и мощности понятия "алгоритм". При слове "алгоритм" в головах у сторонников этой теории возникает нечто раз навсегда затверженное, неизменное, тупое, нудное, машинное; при слове "эвристика" им грезится что-то изящное, непринужденное, меняющееся, остроумное, неназойливое, человеческое. Но эта греза и есть алгоритмы, проницательные, элегантные, дерзкие алгоритмы.
Впрочем, чему здесь удивляться? Алгоритмы, в том числе эвристические алгоритмы, - порождение человеческого ума. Мы отрываем их от себя и дарим машинам. Если хотите, происходит "переселение душ" из людей в машины. Коль у программиста душа тупая и нудная, то и машинный алгоритм не блещет. Если же программист - человек с нестандартными идеями, с глубокой любовью к делу, тогда и на программы ложится яркий отсвет его личности.
Подлинное различие между Искинтом и человеком находится не на линии "алгоритмическое - эвристическое", оно находится на меже "частное - общее".
Программы, о которых шла речь в данной главе, делают что-нибудь одно. УЧЕНИКи решают арифметические задачки. САИНТ интегрирует. Попробуйте заставить УЧЕНИКов заняться "Ханойской башней" - не справятся, даже о чем идет речь, не поймут. Введите в САИНТ задачу про Мэри и Энн - программа просто остановится. И "Ханойская башня" непостижима для САИНТа.
Нетрудно построить эвристическую программу, которая вмиг разбросает кольца "Ханойской башни". Но в шашки она играть не сможет, хотя мы и сообщим ей шашечные правила. В шашки играет другая программа, играет, между прочим, в силу мастера. Только не предлагайте ей на этом основании головоломки или арифметические задачи.
Однодумы! Все эти программы - однодумы, одно понимают, в одном сильны, в одном результативны, а в другом нет.
Нет, они совсем неплохие, эти программы, но уж больно подогнаны по мерке задачи. Программист и рад бы иначе, но машина иначе не может, иначе задача не решается. А человек ведет себя совсем по-иному. Когда он приступает к новому для себя виду задач, у него заведомо нет узких эвристик; он их изобретает в процессе решения и совершенствует, если приходится всерьез заниматься такими задачами.
Видный советский ученый, академик П. Анохин, считал фундаментальным свойством живого способность к "опережающему отражению действительности". Эта способность в высшей степени свойственна человеку. Основываясь на своих потребностях, желаниях и мотивах, человек самостоятельно и гибко выбирает себе цели, а уж цели ведут его к постановке конкретных задач и к изобретению способов их решения.
Член-корреспондент АН СССР Гермоген Сергеевич Поспелов и профессор Дмитрий Александрович Поспелов в совместной работе пишут: "Основная разница между человеком и ЭВМ связана с наличием у человека потребностей, желаний, мотивации своего поведения, а отсюда и способности формулировать цели, ставить задачи как желаемые, предвосхищенные результаты своей деятельности... Основываясь на этой точке зрения, мы должны отказать вычислительной машине в каком-либо человекоподобном мышлении и интеллекте и рассматривать ее как инструмент, позволяющий "эффективизировать" интеллектуальную деятельность человека".
Итак, ЭВМ - инструмент, повышающий интеллектуальную производительность человека, и не более того. Суровое ограничение; отчего понадобилось высказать его ученым, активно работающим в области Искинта?
Оттого, что основа серьезной научной работы - строгость к себе, взыскательность, желание меньше обещать и больше дать обществу. Председатель Совета по искусственному интеллекту при АН СССР Г. Поспелов, может быть, острее других исследователей понимает, что разработка программ Искинта всегда связана с упрощениями, а упрощения - с неотвратимыми и невосполнимыми потерями. Мы воспроизводим в машине только ход рассуждений человека при решении задач, воспроизводим его сознательное логическое мышление, да и то со многими издержками. А невскрытым остается подсознание человека - могучий, но глубинный пласт интеллекта. А невскрытым оказывается образное мышление - драгоценные, золотоносные жилы. А не тронута вся эмоциональная сфера личности. Негоже в этих условиях утверждать близость Искинта к человеку.
Вместо наивной антропоморфности нужно добиваться серьезной практической пользы в областях, где другие методы бессильны, а Искинт работоспособен. Одна из таких областей ~- управление большими системами, например, крупным морским портом. Д. Поспелов развил для подобных систем теорию гироматов.
Само слово "гиромат" придумано польским писателем-фантастом С. Лемом. По Лему, гиромат - это интеллектуальная машина, способная обнаруживать вокруг себя изменения и быстро откликаться на новизну, обучаться, меняя свое строение, приспосабливаясь к миру. Гиромат Д. Поспелова основан на особой, знаковой, модели внешнего мира, которую строит и перестраивает ЭВМ. О гиромате у нас еще будет случай поговорить подробно, а пока согласимся с Г. Поспеловым и Д. Поспеловым: между человеческим мышлением и программами Искинта огромное расстояние.
Человек удивляет нас прежде всего своей способностью решать разнообразные, очень далекие друг от друга задачи, умением войти в мир задачи, как в свой дом, любовью к необычным задачам.