Логика и компьютеры

Владимир Лидовский

Волновые процессы и логика являются естественно параллельными. Цифровые компьютеры ориентированы на последовательные вычисления. Волновой процессор для программ на Прологе мог бы иметь возможность для ограниченно параллельных вычислений.

Logics and computers
Vladimir Lidovski
The wave processes and logics are naturally parallel. The digital computers are oriented to the sequential computations. The wave CPU for the Prolog programs would have possibility for limited parallel computations.

Со времен Аристотеля не раз предпринимались попытки "механизировать" процесс рационального мышления. С появлением мощных цифровых компьютеров эти попытки нашли свое естественное завершение в проекте по созданию языка программирования Пролог. Однако, этот проект был ориентирован на организацию вычислений друг за другом, т. е. последовательно. Весь проект оказался жестко привязанным к существующей аппаратуре.

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

Архитектура однопрцессорного цифрового компьютера идеально приспособлена для организации последовательных вычислений, но превращается в громоздкую и весьма неэффективную систему при организации на нем вычислений параллельных. Многопроцессорные системы, конечно, способны эффективно решать широкие классы задач, требующие одновременных расчетов, но они представляют собой лишь совокупность не более десятков тысяч согласованных процессоров...

Проблема эффективной организации параллельных вычислений не является только технической — она обусловлена и теоретической сложностью организации распараллеливания.

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

С другой стороны, при описании задачи, при решении которой могут возникать неопределенные заранее альтернативы, естественно использовать знания в декларативной форме. Совокупность таких знаний, в общем случае, образует граф-сеть со сколь угодно сложной структурой. Граф-дерево поиска решений возникает при работе с графом-сетью описания задачи и является формальным логическим выводом из базы знаний, представленной в сетевой форме.

Логика — это многозначное слово. Есть логика формальная, математическая, а есть логика неформальная (иногда называемая "внутренней логикой событий"). Последнюю отличает от первой отсутствие известной трассы логического вывода от исходных данных до результата. А если учесть, что получение результата может быть основано частично на спонтанных решениях, то неформальная логика возможно имеет к собственно логике только косвенное отношение.

Математическая логика делится в свою очередь на теоретическую и практическую. Книги по математике описывают, как правило, первую, а книги по программированию — вторую. Фундаментальные логические связки "и", "или" и "не" в этих логиках используются по-разному. В практической логике нет никакой возможности в полном объеме использовать связку "не" — нужно использовать ряд серьезных ограничений, например, "гипотезу" о замкнутости мира. Это связано с тем, что в практической логике ответ "нет" можно получить лишь полным перебором всех альтернатив решения, а количество этих альтернатив даже для совсем небольших баз знаний бесконечно — хорошо известно, что практически невозможно доказать не ограниченное рамками искусственной теории негативное утверждение. Связки "и" и "или" в практической логике некоммутативны. Последнее связано с привязкой практических расчетов к возможностям типовых цифровых компьютеров.

Способ построения дерева поиска решения определяется структурой базы знаний. Содержание базы знаний может формироваться из множества информационных ресурсов.

Задача сбора, хранения и постоянного пополнения информационных ресурсов сама по себе сложной не является и можно даже утверждать, что она является на сегодняшний день практически решенной. Проблемы возникают при попытке анализа значительных по объему данных. Все что могут предложить современные информационные технологии в этой области сводится по сути к быстрому логарифмическому поиску строки текста. Работа со структурами, выходящими за рамки регулярных грамматик, практически никак не поддерживается. Сами информационные базы представляются, как правило, в виде простейших структур — таблиц. Совокупности таблиц образуют реляционные базы данных. Хранимую информацию, структура которой выходит за рамки таблиц и называют обычно базой знаний.

В идеале база знаний должна иметь сетевую структуру, напоминая тугой клубок перепутанных ниток или сеть нейронов. Создание базы знаний такой структуры позволяет наиболее естественным образом накапливать знания и технически не является проблемным. Такую базу можно, в частности, описать на языке математической логики. Однако эффективное использование такой базы предполагает наличие активных связей между ее узлами, что требует совершенно отличной от стандартных компьютеров архитектуры. Устройства моделирующие небольшую нейронную сеть показали свою полезность и достаточно широко используются. Однако нейросетевой компьютер с достаточно большой памятью пока не выглядит как нечто возможное. Недостатком сетевого подхода является также отсутствие его математического обоснования.

Выйти за рамки таблиц можно, используя язык логики предикатов 1-го порядка, который на 99% соответствует возможностям естественных языков и для которого есть апробированный математический аппарат получения логических выводов. Эффективность работы с базами знаний на языке логики предикатов 1-го порядка имеющимися техническими средствами является недопустимо низкой, поэтому используются, как правило, базы знаний на языке предложений Хорна, части полного языка логики предикатов. Такие базы являются программами на языке Пролог.

Логический вывод в базах знаний, в общем случае, представляет собой экспоненциальный процесс, перебор. Его эффективность можно повысить ограничением количества вариантов для выбора и удачными эвристиками. Язык Пролог является предельным, наиболее проверенным средством для организации баз знаний, процесс вывода в которых еще можно признать не выходящим за границу нижнего предела эффективности. В отличие от реляционных БД вывод в пролог-программах не является полностью исчерпывающим: возможны пропуски решений и бесконечный беспродуктивный поиск. Часть средств Пролога, введенные в язык для возможности повышения эффективности вывода, не являются логическими, что затрудняет процесс создания баз знаний и делает базы похожими на программы на алгоритмических языках, имеющие многие характерные минусы: трудность расширения и модификации, очень высокие требования к точности детализации описания всех операции, ...

Поиск ответа на запрос к базе знаний на Прологе весьма точно описывается простой моделью поиска выхода из лабиринта:

Виртуальный лабиринт поиска решения, как правило, содержит множество бесконечных ветвей, при попадании на одну из которых применение приведенной модели поиска выхода не даст результата.

Суть проблемы в том, что традиционный компьютер, как дискретное устройство, может лишь последовательно перебирать варианты.

Альтернативой дискретному подходу является непрерывный, аналоговый или волновой. Волново-корпускулярный дуализм, являющийся одним из главнейших естествообразующих факторов, дает теоретическое основание для возможности замены любых дискретных процессов волновыми. Волновые процессы являются естественно параллельными.

В случае поиска поворота на развилке в лабиринте при использовании волнового подхода нужно задействовать генератор волн, а затем анализировать получаемое из каждого поворота эхо. Одновременно с этим можно менять характеристики излучаемых генератором волн. Такой подход позволит сразу "увидеть" часть лабиринта на некоторую глубину.

В общем случае, такой подход не даст никаких преимуществ по сравнению с дискретным, последовательным поиском. Однако, в случае использования баз знаний на языке предложений Хорна, типов развилок в лабиринте (дереве) поиска решений будет столько же, сколько и самих предложений, т.е. конечное число, что позволяет за конечное число раз использование "излучателя" обойти весь бесконечный лабиринт. Это число зависит (возможно экспоненциально) от уровня самого удаленного от начала поиска (корня дерева) варианта искомого решения.

Технически волновой процессор для маленькой базы знаний сделать вполне реально и сейчас — нужны лишь широкополосной высокоточный излучатель, активный фильтр, соответствующий базе знаний, и согласующий компьютер. Речь о том, что операции на каждой развилке лабиринта чрезвычайно просты и могут быть реализованы микроскопическим устройством, число которых в фильтре может быть на много порядков большим, чем число процессоров в суперЭВМ. Технические проблемы будут возрастать с ростом размера базы знаний. Отдельная сложность будет в создании процессора, настраиваемого на любую базу. Последняя проблема не является критической, т.к. наличие "негибкого" процессора для конкретной достаточно большой базы знаний будет достаточным для решения широкого круга задач.

Параллельный Пролог можно будет избавить от нелогических, ориентированных на последовательные вычисления средств. Кроме того, в составе предложения Хорна возможно допустимы будут предикаты высокого порядка.

К сожалению, неясным является вопрос востребованности логического компьютера или, точнее сказать, специализированной пролог-машины. Опыт развития цивилизации показывает, что ряд инновационных изобретений, востребованность которых оказалась недостаточной, попали в рудиментную ветвь развития. В качестве примера можно привести изобретение в Японии 1970-х цифрового магнитофона.

Можно предположить, что в сферах, где требуется получать логические выводы на основе анализа больших баз данных нетабличной структуры, специализированный логический компьютер мог бы оказаться весьма полезным. Поскольку цифровые компьютеры даже в своей многопроцессорной высокопараллельной модификации в лабиринте пространства состояний поиска решения способны "пройти в бесконечность" мимо совсем рядом расположенного решения.


Вариант статьи опубликован в журнале "Открытое образование" N3, 2007.