Введение
Компонент систем искусственного интеллекта
В области искусственного интеллекта, механизм вывода — это программный компонент интеллектуальной системы, который применяет логические правила к базе знаний для получения новой информации. Первые механизмы вывода были компонентами экспертных систем. Типичная экспертная система состояла из базы знаний и механизма вывода. База знаний хранила факты о мире. Механизм вывода применял логические правила к базе знаний и выводил новые знания. Этот процесс повторялся, поскольку каждый новый факт в базе знаний мог активировать дополнительные правила в механизме вывода. Механизмы вывода работают преимущественно в одном из двух режимов, основанных либо на правилах, либо на фактах: прямой вывод и обратный вывод. Прямой вывод начинается с известных фактов и устанавливает новые факты. Обратный вывод начинается с целей и работает в обратном направлении, чтобы определить, какие факты необходимо установить для достижения этих целей. Кроме того, понятие «вывод» расширилось и теперь включает процесс, посредством которого обученные нейронные сети генерируют прогнозы или принимают решения. В этом контексте «механизм вывода» может относиться к конкретной части системы или даже к аппаратному обеспечению, выполняющему эти операции. Этот тип вывода играет решающую роль в различных приложениях, включая (но не ограничиваясь) распознавание изображений, обработку естественного языка и автономные транспортные средства. Фаза вывода в этих приложениях обычно характеризуется большим объемом входных данных и требованиями к обработке в реальном времени.
Реализация
Ранние системы логического вывода были сосредоточены главным образом на прямом распространении (forward chaining). Эти системы обычно реализовывались на языке программирования Lisp. Lisp часто использовался в качестве платформы для ранних исследований в области ИИ благодаря своим мощным возможностям символьных манипуляций. Кроме того, будучи интерпретируемым языком, он предоставлял продуктивные среды разработки, подходящие для отладки сложных программ. Неизбежным следствием этих преимуществ было то, что программы на Lisp, как правило, работали медленнее и были менее надежными, чем компилируемые языки того времени, такие как C. Распространенным подходом в те ранние годы было взять приложение экспертной системы и переработать используемый в ней механизм логического вывода в повторно используемый инструмент, который другие исследователи могли бы использовать для разработки других экспертных систем. Например, MYCIN была ранней экспертной системой для медицинской диагностики, а EMYCIN – механизмом логического вывода, полученным из MYCIN и предоставленным другим исследователям. Поскольку экспертные системы вызвали значительный интерес со стороны бизнеса, различные компании, многие из которых были основаны или направлялись известными исследователями в области ИИ, создали коммерческие версии систем логического вывода. Например, Intellicorp изначально находилась под руководством Эдварда Файгенбаума. Эти продукты систем логического вывода также часто разрабатывались на Lisp на первых этапах. Однако потребность в более доступных и коммерчески выгодных платформах в конечном итоге сделала платформы персональных компьютеров очень популярными.
Реализации с открытым исходным кодом
ClipsRules и RefPerSys (вдохновлены CAIA и работами Жака Питра). Статический анализатор исходного кода Frama C также использует некоторые методы логического вывода.