stringtranslate.com

Система, основанная на правилах

В информатике система, основанная на правилах , — это компьютерная система, в которой знания, относящиеся к предметной области , представлены в форме правил, а для решения задач в этой области используются рассуждения общего назначения.

В 1970-х годах в области искусственного интеллекта появились два различных типа систем, основанных на правилах :

Различия и взаимосвязи между этими двумя типами систем, основанных на правилах, стали основным источником недопонимания и путаницы.

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

Правила производственной системы

Классическим примером системы, основанной на правилах производства, является предметно-ориентированная экспертная система , которая использует правила для выводов или выбора. [1] Например, экспертная система может помочь врачу выбрать правильный диагноз на основе группы симптомов или выбрать тактические ходы для игры.

Системы, основанные на правилах, могут использоваться для выполнения лексического анализа с целью компиляции или интерпретации компьютерных программ или для обработки естественного языка . [2]

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

Строительство

Типичная система, основанная на правилах, состоит из четырех основных компонентов: [3]

  • Сопоставление: На этом первом этапе стороны условий всех производств сопоставляются с содержимым рабочей памяти. В результате получается набор ( конфликтный набор ), состоящий из инстанциаций всех удовлетворенных производств. Инстанцирование производства — это упорядоченный список элементов рабочей памяти, который удовлетворяет стороне условий производства.
  • Разрешение конфликта : На этом втором этапе для выполнения выбирается одно из производств в конфликтном наборе. Если ни одно производство не удовлетворяется, интерпретатор останавливается.
  • Действие: В этой третьей фазе выполняются действия постановки, выбранные в фазе разрешения конфликта. Эти действия могут изменить содержимое рабочей памяти. В конце этой фазы выполнение возвращается к первой фазе.

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

Правила логического программирования

Семейство логического программирования компьютерных систем включает язык программирования Prolog , язык баз данных Datalog и язык представления знаний и решения проблем Answer Set Programming (ASP). Во всех этих языках правила записываются в форме предложений :

A :- B1, ..., Bn.

и читаются как повествовательные предложения в логической форме:

A if B1 and ... and Bn.

В простейшем случае предложений Хорна (или «определенных» предложений), которые являются подмножеством логики первого порядка , все A, B 1 , ..., B n являются атомарными формулами .

Хотя программы с логическими предложениями Хорна являются полными по Тьюрингу , [6] [7] для многих практических приложений, полезно расширять программы с предложениями Хорна, допуская отрицательные условия, реализуемые отрицанием как неудача . Такие расширенные логические программы обладают возможностями представления знаний немонотонной логики .

Различия и взаимосвязи между правилами производства и правилами логического программирования

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

В случае правил производства прямое направление синтаксиса отражает характер стимула-реакции большинства правил производства, при этом стимул A предшествует ответу B. Более того, даже в случаях, когда ответ заключается просто в том, чтобы сделать вывод B из предположения A , как в modus ponens , цикл сопоставления-решения-действия ограничивается рассуждениями вперед от A к B. Рассуждения назад в системе производства потребовали бы использования совершенно иного типа машины вывода.

В своем «Введении в когнитивную науку» [8] Пол Тагард включает логику и правила как альтернативные подходы к моделированию человеческого мышления. Он не рассматривает логические программы в целом, но считает, что Пролог — это не система, основанная на правилах, а «язык программирования, который использует логические представления и дедуктивные методы» (стр. 40).

Он утверждает, что правила, которые имеют форму ЕСЛИ условие ТО действие , «очень похожи» на логические условные предложения, но они проще и имеют большую психологическую правдоподобность (стр. 51). Среди других различий между логикой и правилами он утверждает, что логика использует дедукцию, а правила используют поиск (стр. 45) и могут использоваться для рассуждений как вперед, так и назад (стр. 47). Предложения в логике «должны интерпретироваться как универсально истинные », но правила могут быть значениями по умолчанию , которые допускают исключения (стр. 44). Он не замечает, что все эти особенности правил применимы к системам логического программирования.

Смотрите также

Ссылки

  1. ^ Крина Гросан; Аджит Абрахам (29 июля 2011 г.). Интеллектуальные системы: современный подход. Springer Science & Business Media. стр. 149–. ISBN 978-3-642-21004-4.
  2. ^ Син-Вай Чан (13 ноября 2014 г.). Энциклопедия технологий перевода Routledge. Routledge. стр. 454–. ISBN 978-1-317-60815-8.
  3. ^ «Что такое система, основанная на правилах?». j-paine.org .
  4. ^ Кабица, Ф. и Даль Сено, Б. (2005). «DJess-A Knowledge-Sharing Middleware для развертывания распределенных систем вывода». Международный журнал компьютерной и информационной инженерии . 2 : 66–69. doi :10.1109/PERSER.2005.1506416. S2CID  27323155.{{cite journal}}: CS1 maint: несколько имен: список авторов ( ссылка )
  5. ^ Майер, Д., Текле, К. Т., Кифер, М. и Уоррен, Д. С., 2018. Datalog: концепции, история и перспективы. В Декларативном логическом программировании: теория, системы и приложения (стр. 3-100).
  6. ^ Tärnlund, S.Å. (1977). «Вычислимость предложения Хорна». BIT Numerical Mathematics . 17 (2): 215–226. doi :10.1007/BF01932293. S2CID  32577496.
  7. ^ Андрека, Х.; Немети, И. (1978). «Обобщенная полнота логики предикатов Хорна как языка программирования». Acta Cybernetica . 4 (1): 3–10.
  8. ^ Thagard, Paul (2005). Mind: Introduction to Cognitive Science . The MIT Press. стр. 11. ISBN 9780262701099.https://www.google.co.uk/books/edition/Mind_ Second_edition/gjcR1U2HT7kC?hl=en&gbpv=1&pg=PP11&printsec=frontcover