44

Что хорошего для этого другого не на практике? Я понимаю теорию того, что они делают, но каковы их ограничения и возможности в практическом использовании? Я рассматриваю Drools против пролога java для нового проекта AI, но открыт для других предложений. Каковы некоторые популярные подходы к выкладке сложного реляционного набора данных или альтернатив?Форвард цепочки против обратной цепочки

+6

Хорошая ссылка: «Изучение разницы между передовым и обратным рассуждениями» http://www.ijetae.com/files/Volume2Issue10/IJETAE_1012_48.pdf – Felixyz

ответ

41

Обратное соединение (a la Prolog) больше похоже на поиск того, какие начальные условия образуют путь к вашей цели. На самом базовом уровне это обратный поиск из вашей цели, чтобы найти условия, которые будут выполнять его.

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

Прямое соединение (a la CLIPS) соответствует условиям, а затем генерирует выводы из этих условий. Эти условия могут, в свою очередь, соответствовать другим правилам. В принципе, это берет набор начальных условий, а затем выводит все возможные выводы из этих условий.

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

Системы, управляемые событиями, являются распространенным применением двигателей с прямым цепным механизмом. Одним из примеров приложения прямой цепочки может быть механизм подготовки планов телекоммуникаций (обычно используемый для администрирования планов мобильных телефонов). Ввод конкретного пользователя с определенным планом вызовет ряд элементов, которые будут настроены в различных телефонных коммутаторах, биллинговых системах, финансах, системах CRM и т. Д.

+0

FYI Drools делает оба явно (при условии, что эти функции были завершены): http: //www.jbug.jp/trans/jboss-rules3.0.2/ja/html/ch01.html – AaronLS

+0

Использование прямого цепочки повышает вопрос о преимуществах над простым языком сценариев. – Colin

19

Ответ на вопрос очень хорош. Когда его спросили, кипятить разницу вплоть до звука укуса, я обычно говорю что-то вроде:

Множество выходных Гипотезы + много данных Спереди => Использование Forward Chaining

Меньшее Выходные Гипотезы + Must запроса данных = > Использовать обратную цепочку

Но это всего лишь эмпирическое правило, а не заповедь.

4

В старые добрые старые времена экспертных систем, которые они использовали, чтобы сказать, что целая цепочка хороша для осмотра (проверка того, что может быть), в то время как обратная цепочка хороша для подтверждения (проверяя, действительно ли это «на самом деле»).

конфигурации Think (вперед цепочки, XCON [1]) и медицинская диагностика (MYCIN) [2]

  1. http://www.aaai.org/Papers/AAAI/1980/AAAI80-076.pdf
  2. https://www.amazon.com/Rule-Based-Expert-Systems-Addison-Wesley/dp/0201101726
1

вперед сцепление касается вопроса «что произойдет дальше? », в то время как обратная цепочка смотрит на вопрос« почему это произошло? ».

Пример форвардной цепочки предсказывает, влияет ли статус рынка акций на изменение процентных ставок.

Примером обратной цепочки является диагностика рака крови у людей.

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

Смежные вопросы