Крайне мощным инструментом для работы в этих областях является нечеткая логика — разновидность математической логики, в которой высказывания необязательно абсолютно истинны или абсолютно ложны. Если в классической математической логике о любом высказывании всегда можно сказать, истинно оно или ложно (к примеру, ложным будет высказывание «некий человек не смертен», а истинным — «все люди смертны»), то в нечеткой логике рассматриваются промежуточные состояния. Так, если раньше говорили, что Крез не беден, это автоматически означало, что он богат, а если говорили, что Диоген не богат, это означало, что он беден (в этом примере классическая логика явно дискриминирует представителей среднего класса!). Применив нечеткую логику, мы можем сказать, что Аристотель богат со степенью, например, 0,6.
* * *
ДЖОРДЖ БУЛЬ (1815–1864) И ЕГО ЛОГИКА
Если Алана Тьюринга называют одним из отцов современной информатики, то Джорджа Буля можно назвать ее дедом. Этот британский философ и математик создал булеву алгебру — основу современной компьютерной арифметики, которая, в свою очередь, является фундаментом всей цифровой электроники.
Буль разработал систему правил, которые посредством математических методов позволяют выражать и упрощать логические задачи, в которых допускается только два состояния — «истина» и «ложь». Три основные математические операции булевой алгебры — это отрицание, объединение («или») и пересечение («и»). Отрицание, обозначаемое символом заключается в смене значения переменной на противоположное. К примеру, если А = «Аристотель — человек», то ¬А = «Аристотель — не человек». Объединение, обозначаемое символом v — это бинарная операция, то есть операция, в которой для получения результата требуются два аргумента. Результатом объединения будет истина, если один из двух аргументов истинный.
К примеру: «Верно ли, что сейчас вы либо читаете, либо ведете машину?». Ответом на этот вопрос будет «Да, верно», поскольку сейчас вы читаете эту книгу. Но если бы вы вели машину и не читали книгу, то ответ также был бы утвердительным. Он был бы утвердительным и в том случае, если бы вы, пренебрегая всеми соображениями безопасности, вели машину и читали эту книгу одновременно.
Третья операция — пересечение, обозначаемая символом , также является бинарной. Если мы переформулируем предыдущий вопрос и скажем «Верно ли, что сейчас вы читаете и ведете машину?», то ответом будет «Да, верно» только в том случае, если вы будете читать за рулем.
На основе трех указанных операций можно определить другие, более сложные, например исключающее «или» (), результат которой в нашем случае будет истинным только тогда, когда мы либо читаем книгу, либо ведем машину, но не выполняем оба эти действия одновременно. Операция не принадлежит к основным операциям булевой алгебры, так как ее можно выразить через три основные операции А В = (А ¬ В) v (¬ А В).
В цифровой электронике «истина» и «ложь» обозначаются единицей и нулем. Этим значениям соответствует наличие электрического тока в цепи (1) либо его отсутствие (0). Логические операции выполняются с помощью сочетаний транзисторов. Именно благодаря применению транзисторов в интегральных схемах в последние 40 лет информатика развивается столь быстрыми темпами.
Микропроцессор вашего домашнего компьютера, который можно назвать его мозгом, содержит сотни миллионов транзисторов, расположенных на площади всего лишь в несколько квадратных сантиметров!
Понимание человеческого языка и использование его при коммуникации — одна из важнейших нерешенных задач этой области знаний. Если искусственная система сможет понимать как языки программирования, так и человеческий язык, это поможет сделать машины более «человечными». Обработка естественного языка означает не только преобразование звуков в фонемы и письменные знаки, но и понимание смысла сообщаемых понятий (как в письменной, так и в устной форме) и выполнение с ними каких-либо действий.
Первые важные открытия в сфере обработки естественного языка совершил инженер Джозеф Вейценбаум (1923–2008), который в 1964–1966 годах разработал программу «Элиза». Пользователи могли задавать вопросы этой компьютерной программе, моделировавшей работу психотерапевта, а «Элиза», казалось, понимала их смысл, так как выдавала более или менее осмысленные ответы. Ниже приведена запись реального разговора между автором этой книги и «Элизой»:
Игнаси Белда: Мне нужен отпуск.
Элиза: Что означает для тебя отпуск?
Игнаси Белда: Я мог бы проводить больше времени с женой.
Элиза: Расскажи мне подробнее о своей семье.
Игнаси Белда: У меня есть только жена.
Элиза: Ты говоришь, что у тебя только одна жена?
Игнаси Белда: Да, я не полигамен.
Элиза: Ты кажешься позитивным.
Игнаси Белда: Мою жену зовут Лайа.
Элиза: А кто еще принадлежит к твоей семье?
Игнаси Белда: Больше никто.
Элиза: На самом деле никто?
Игнаси Белда: Да.
Элиза: Ты уверен?
Игнаси Белда: Абсолютно.
Как видите, настоящие психологи могут спать спокойно — «Элиза» еще не скоро сможет лишить их работы. Тем не менее с 1960-х годов обработка естественного языка развивается быстрыми темпами, и сегодня существуют методы решения столь разных задач, как определение плагиата, автоматический перевод текстов или очеловечивание интерфейсов взаимодействия людей и машин. Заинтересованный читатель может поговорить с «Элизой» на сайте http://www.chayden.net/eliza/Eliza.html.
Грамотное структурирование знаний крайне важно. Например, представим, что нас спросили, кто занимает должность мэра в американском городе Остин в штате Техас. Если мы не живем в этом регионе США, то наверняка сразу же ответим: «Не знаю». А система, в которой знания структурированы недостаточно хорошо, например любой персональный компьютер, потратит несколько минут на анализ всех документов на жестком диске, чтобы определить, не содержится ли в них имя мэра этого американского города. Интеллектуальная или псевдоинтеллектуальная система должна отвечать на этот вопрос так же быстро и четко, как человек. Для этого знания, хранящиеся в системе, должны быть четко структурированы и легко доступны.
При решении практических задач требуется не только грамотное структурирование знаний, но и наличие адекватных инструментов, позволяющих просматривать сохраненные знания и поддерживать их в упорядоченном виде. Именно эту базу знаний система использует в качестве основы при автоматических рассуждениях, поиске, обучении и так далее. Следовательно, база знаний интеллектуальной системы изменяется, поэтому интеллектуальным системам необходимы средства контроля знаний, которые, к примеру, позволят разрешать возможные противоречия, устранять избыточность и даже обобщать понятия.
Чтобы четко контролировать знания, содержащиеся в базе, необходима метаинформация, описывающая их внутреннее представление. Знать, как представлены знания, очень важно, так как они могут быть структурированы множеством способов, и информация о структуре хранимых знаний может оказаться крайне полезной.