В информационных технологиях система рассуждения — это программная система, которая генерирует выводы из имеющихся знаний, используя логические методы, такие как дедукция и индукция. Системы рассуждения играют важную роль в реализации искусственного интеллекта и систем, основанных на знаниях .
Согласно определению фразы в повседневном использовании, все компьютерные системы являются системами рассуждений, поскольку все они автоматизируют некоторый тип логики или решения. Однако в типичном использовании в области информационных технологий эта фраза обычно зарезервирована для систем, которые выполняют более сложные типы рассуждений. Например, не для систем, которые выполняют довольно простые типы рассуждений, такие как расчет налога с продаж или скидки для клиентов, а делают логические выводы о медицинском диагнозе или математической теореме. Системы рассуждений существуют в двух режимах: интерактивная и пакетная обработка. Интерактивные системы взаимодействуют с пользователем, чтобы задавать уточняющие вопросы или иным образом позволять пользователю руководить процессом рассуждений. Пакетные системы принимают всю доступную информацию сразу и генерируют наилучший возможный ответ без обратной связи или руководства пользователя.
Системы рассуждений имеют широкую область применения, которая включает планирование, обработку бизнес-правил, решение проблем, обработку сложных событий, обнаружение вторжений, прогностическую аналитику, робототехнику, компьютерное зрение и обработку естественного языка.
История Первыми системами рассуждений были доказатели теорем, системы, которые представляют аксиомы и утверждения в логике первого порядка, а затем используют правила логики, такие как modus ponens, для вывода новых утверждений. Другим ранним типом систем рассуждений были решатели общих проблем. Это были такие системы, как решатель общих проблем, разработанный Ньюэллом и Саймоном. Решатели общих проблем пытались предоставить универсальную машину планирования, которая могла бы представлять и решать структурированные проблемы. Они работали, разбивая проблемы на более мелкие, более управляемые подзадачи, решая каждую подзадачу и собирая частичные ответы в один окончательный ответ. Другим примером решателя общих проблем было семейство систем SOAR.
На практике эти доказыватели теорем и решатели общих проблем редко были полезны для практических приложений и требовали специализированных пользователей со знанием логики для использования. Первым практическим применением автоматизированных рассуждений были экспертные системы . Экспертные системы были сосредоточены на гораздо более четко определенных областях, чем общее решение проблем, такое как медицинская диагностика или анализ неисправностей в самолете. Экспертные системы также были сосредоточены на более ограниченных реализациях логики. Вместо того, чтобы пытаться реализовать полный спектр логических выражений, они обычно фокусировались на modus-ponens, реализованных с помощью правил IF-THEN. Сосредоточение на определенной области и разрешение только ограниченного подмножества логики улучшало производительность таких систем, так что они были практичны для использования в реальном мире, а не просто как исследовательские демонстрации, как большинство предыдущих автоматизированных систем рассуждений. Движок, используемый для автоматизированных рассуждений в экспертных системах, обычно назывался машинами вывода. Те, которые использовались для более общего логического вывода, обычно называются доказывателями теорем.
С ростом популярности экспертных систем многие новые типы автоматизированных рассуждений стали применяться к различным проблемам в правительстве и промышленности. Некоторые из них, такие как рассуждения на основе прецедентов, были ответвлениями исследований экспертных систем. Другие, такие как алгоритмы удовлетворения ограничений, также находились под влиянием таких областей, как технология принятия решений и линейное программирование. Кроме того, совершенно другой подход, основанный не на символических рассуждениях, а на коннекционистской модели, также оказался чрезвычайно продуктивным. Этот последний тип автоматизированных рассуждений особенно хорошо подходит для задач сопоставления с образцом и обнаружения сигнала, таких как поиск текста и сопоставление лиц.
Использование логики Термин «система рассуждений» может быть использован для применения практически к любому виду сложной системы поддержки принятия решений , как показано в конкретных областях, описанных ниже. Однако наиболее распространенное использование термина «система рассуждений» подразумевает компьютерное представление логики. Различные реализации демонстрируют значительные различия в терминах систем логики и формальности. Большинство систем рассуждений реализуют вариации пропозициональной и символической (предикатной) логики. Эти вариации могут быть математически точными представлениями формальных логических систем (например, FOL) или расширенными и гибридными версиями этих систем (например, вежливая логика )). Системы рассуждений могут явно реализовывать дополнительные типы логики (например, модальную, деонтическую, временную логику). Однако многие системы рассуждений реализуют неточные и полуформальные приближения к признанным логическим системам. Эти системы обычно поддерживают различные процедурные и полудекларативные методы для моделирования различных стратегий рассуждений. Они подчеркивают прагматизм над формальностью и могут зависеть от пользовательских расширений и вложений для решения реальных проблем.
Многие системы рассуждений используют дедуктивное рассуждение для вывода выводов из имеющихся знаний. Эти механизмы вывода поддерживают прямое рассуждение или обратное рассуждение для вывода выводов с помощью modus ponens. Рекурсивные методы рассуждений, которые они используют, называются « прямой цепочкой» и «обратной цепочкой » соответственно. Хотя системы рассуждений широко поддерживают дедуктивный вывод, некоторые системы используют абдуктивное, индуктивное, отменяемое и другие типы рассуждений. Эвристики также могут использоваться для определения приемлемых решений трудноразрешимых проблем.
Системы рассуждений могут использовать предположение о закрытом мире (CWA) или предположение об открытом мире (OWA). OWA часто ассоциируется с онтологическим представлением знаний и семантической паутиной. Различные системы демонстрируют различные подходы к отрицанию. Помимо логического или побитового дополнения, системы могут поддерживать экзистенциальные формы сильного и слабого отрицания, включая отрицание как неудачу и «инфляционное» отрицание (отрицание неосновных атомов ). Различные системы рассуждений могут поддерживать монотонное или немонотонное рассуждение, стратификацию и другие логические методы.
Рассуждение в условиях неопределенности Многие системы рассуждений предоставляют возможности для рассуждений в условиях неопределенности . Это важно при построении агентов рассуждений , которые должны иметь дело с неопределенными представлениями мира. Существует несколько общих подходов к работе с неопределенностью. Они включают использование факторов определенности, вероятностных методов, таких как байесовский вывод или теория Демпстера-Шейфера, многозначную (« нечеткую ») логику и различные коннекционистские подходы.
Типы систем рассуждений В этом разделе представлена неисчерпывающая и неформальная классификация общих типов систем рассуждений. Эти категории не являются абсолютными. Они в значительной степени пересекаются и разделяют ряд приемов, методов и алгоритмов .
Решатели ограничений Решатели ограничений решают проблемы удовлетворения ограничений (CSP). Они поддерживают программирование ограничений. Ограничение — это то, которому должно соответствовать любое допустимое решение проблемы. Ограничения определяются декларативно и применяются к переменным в заданных доменах. Решатели ограничений используют методы поиска, возврата и распространения ограничений для поиска решений и определения оптимальных решений. Они могут использовать формы линейного и нелинейного программирования. Они часто используются для выполнения оптимизации в высококомбинаторных пространствах задач. Например, их можно использовать для расчета оптимального планирования, проектирования эффективных интегральных схем или максимизации производительности в производственном процессе.
Доказательства теорем Устройства для доказательства теорем используют автоматизированные методы рассуждения для определения доказательств математических теорем. Они также могут использоваться для проверки существующих доказательств. Помимо академического использования, типичные приложения устройств для доказательства теорем включают проверку правильности интегральных схем, программ, инженерных проектов и т. д.
Логические программы Логические программы (LP) — это программы, написанные с использованием языков программирования , примитивы и выражения которых обеспечивают прямое представление конструкций, взятых из математической логики. Примером языка логического программирования общего назначения является Prolog. LP представляют собой прямое применение логического программирования для решения задач. Логическое программирование характеризуется высоко декларативными подходами, основанными на формальной логике, и имеет широкое применение во многих дисциплинах.
Движки правил Механизмы правил представляют условную логику как дискретные правила. Наборы правил можно управлять и применять отдельно к другим функциям. Они имеют широкую применимость во многих областях. Многие механизмы правил реализуют возможности рассуждения. Распространенный подход заключается в реализации систем производства для поддержки прямой или обратной цепочки. Каждое правило («производство») связывает конъюнкцию предикатных предложений со списком исполняемых действий.
Во время выполнения механизм правил сопоставляет продукции с фактами и выполняет («запускает») связанный список действий для каждого совпадения. Если эти действия удаляют или изменяют какие-либо факты или утверждают новые факты, механизм немедленно пересчитывает набор совпадений. Механизмы правил широко используются для моделирования и применения бизнес-правил , для управления принятием решений в автоматизированных процессах и для обеспечения соблюдения бизнес- и технических политик.
Дедуктивный классификатор Дедуктивные классификаторы появились немного позже систем, основанных на правилах, и были компонентом нового типа инструмента представления знаний искусственного интеллекта, известного как языки фреймов. Язык фреймов описывает проблемную область как набор классов, подклассов и отношений между классами. Он похож на объектно-ориентированную модель. Однако, в отличие от объектно-ориентированных моделей, языки фреймов имеют формальную семантику, основанную на логике первого порядка.
Они используют эту семантику для предоставления входных данных дедуктивному классификатору. Классификатор, в свою очередь, может анализировать заданную модель (известную как онтология) и определять, являются ли различные отношения, описанные в модели, согласованными. Если онтология не согласована, классификатор выделит несогласованные декларации. Если онтология согласована, классификатор может затем провести дальнейшее рассуждение и сделать дополнительные выводы об отношениях объектов в онтологии.
Например, он может определить, что объект на самом деле является подклассом или экземпляром дополнительных классов, как те, которые описаны пользователем. Классификаторы являются важной технологией в анализе онтологий, используемых для описания моделей в семантической паутине</ref>.
Системы машинного обучения