Прямая цепочка против обратной цепочки - PullRequest
47 голосов
/ 29 июля 2010

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

Ответы [ 4 ]

46 голосов
/ 29 июля 2010

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

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

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

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

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

20 голосов
/ 12 августа 2010

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

Много выходных гипотез + Много данных вперед => Использовать прямую цепочку

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

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

5 голосов
/ 28 октября 2017

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

Подумайте о конфигурации (прямая цепочка, 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
2 голосов
/ 01 февраля 2018

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

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

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

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

...