Система, основанная на правилах
В информатике , система, основанная на правилах — это компьютерная система, в которой знания, специфичные для предметной области , представлены в виде правил, а рассуждения общего назначения используются для решения проблем в предметной области.
В 1970-х годах в области искусственного интеллекта возникли два разных типа систем, основанных на правилах :
- Производственные системы , которые используют правила «если-то» для получения действий из условий .
- логического программирования Системы , которые используют правила вывода при наличии условий для получения выводов из условий .
Различия и взаимоотношения между этими двумя видами систем, основанных на правилах, были основным источником недопонимания и путаницы.
Оба типа систем, основанных на правилах, используют либо прямую , либо обратную цепочку , в отличие от императивных программ , которые выполняют команды, перечисленные последовательно. Однако системы логического программирования имеют логическую интерпретацию, а производственные системы — нет.
Правила производственной системы
[ редактировать ]Классическим примером производственной системы, основанной на правилах, является экспертная система, специфичная для предметной области , которая использует правила для выполнения выводов или выбора. [1] Например, экспертная система может помочь врачу поставить правильный диагноз на основе совокупности симптомов или выбрать тактические ходы для игры.
Системы, основанные на правилах, могут использоваться для выполнения лексического анализа для компиляции или интерпретации компьютерных программ или для обработки естественного языка . [2]
Программирование на основе правил пытается получить инструкции выполнения из исходного набора данных и правил. Это более косвенный метод, чем тот, который используется в императивном языке программирования , в котором этапы выполнения перечисляются последовательно.
Строительство
[ редактировать ]Типичная система, основанная на правилах, состоит из четырех основных компонентов: [3]
- Список правил или база правил , которая представляет собой определенный тип базы знаний .
- Механизм вывода или семантический модуль рассуждения , который выводит информацию или предпринимает действия на основе взаимодействия входных данных и базы правил. Интерпретатор выполняет программу производственной системы , выполняя следующий цикл сопоставление-разрешение-действие: [4]
- Сопоставление: на этом первом этапе стороны условий всех постановок сопоставляются с содержимым рабочей памяти. В результате набор ( конфликтный набор получается ), состоящий из экземпляров всех удовлетворенных продукций. Реализация производства — это упорядоченный список элементов рабочей памяти, который удовлетворяет условию производства.
- Разрешение конфликтов : на втором этапе для выполнения выбирается один из экземпляров производства в наборе конфликтов. Если ни одна продукция не удовлетворена, интерпретатор останавливается.
- Действие: На этом третьем этапе выполняются действия производства, выбранные на этапе разрешения конфликта. Эти действия могут изменить содержимое рабочей памяти. В конце этой фазы выполнение возвращается к первой фазе.
- Временная рабочая память , представляющая собой базу данных фактов.
- или Пользовательский интерфейс другое соединение с внешним миром, через которое принимаются и отправляются входные и выходные сигналы.
В то время как фаза сопоставления машины вывода имеет логическую интерпретацию, фазы разрешения конфликта и действий — нет. Вместо этого «их семантика обычно описывается как серия приложений различных операторов изменения состояния, которые часто становятся весьма сложными (в зависимости от выбора, сделанного при принятии решения о том, какие правила ECA срабатывают, когда и т. д.), и их вряд ли можно рассматриваться как декларативный». [5]
Правила логического программирования
[ редактировать ]Семейство компьютерных систем логического программирования включает в себя язык программирования Prolog , язык баз данных Datalog и язык представления знаний и решения проблем программирования набора ответов (ASP). Во всех этих языках правила записаны в виде предложений :
A :- B1, ..., Bn.
и читаются как повествовательные предложения в логической форме:
A if B1 and ... and Bn.
В простейшем случае предложений Хорна (или «определенных» предложений), которые являются подмножеством логики первого порядка , все A, B 1 , ..., B n являются атомарными формулами .
Хотя логические программы предложений Хорна являются полными по Тьюрингу , [6] [7] для многих практических приложений полезно расширить программы предложений Хорна, допустив отрицательные условия, реализуемые отрицанием как отказ . Такие программы расширенной логики обладают возможностями представления знаний немонотонной логики .
Различия и взаимосвязи между продукционными правилами и правилами логического программирования.
[ редактировать ]Наиболее очевидное различие между двумя типами систем состоит в том, что производственные правила обычно записываются в прямом направлении, если A, то B , а правила логического программирования обычно записываются в обратном направлении, B, если A. В случае правил логического программирования это различие поверхностное и чисто синтаксическое. На семантику правил это не влияет. используются ли правила для обратного рассуждения в стиле Пролога, чтобы свести цель B к подцелям A , или же они используются в стиле Datalog для получения B из A. Это также не влияет на то ,
В случае производственных правил прямое направление синтаксиса отражает характер стимула-реакции большинства производственных правил, при этом стимул предшествует реакции B. A Более того, даже в тех случаях, когда ответом является просто сделать вывод B из предположения A как в modus ponens , цикл сопоставления-решения-действия ограничивается рассуждениями вперед от A к B. , Обратные рассуждения в производственной системе потребовали бы использования совершенно другого типа машины вывода.
В своем «Введении в когнитивную науку» [8] Пол Тагард рассматривает логику и правила как альтернативные подходы к моделированию человеческого мышления. Он не рассматривает логические программы в целом, но считает Пролог не системой, основанной на правилах, а «языком программирования, который использует логические представления и дедуктивные методы» (стр. 40).
Он утверждает, что правила, имеющие форму ЕСЛИ условие, ТО действие , «очень похожи» на логические условные выражения, но они проще и имеют большую психологическую правдоподобность (стр. 51). Среди других различий между логикой и правилами он утверждает, что логика использует дедукцию, а правила используют поиск (стр. 45) и могут использоваться для рассуждений как вперед, так и назад (стр. 47). Предложения в логике «должны интерпретироваться как универсально истинные », но правила могут быть значениями по умолчанию , допускающими исключения (стр. 44). Он не замечает, что все эти особенности правил применимы к системам логического программирования.
См. также
[ редактировать ]- Логическое программирование
- Экспертные системы
- Переписывание
- ПравилоML
- Список языков, основанных на правилах
- Система классификаторов обучения
- Машинное обучение на основе правил
- Моделирование на основе правил
Ссылки
[ редактировать ]- ^ Крина Гросан; Аджит Авраам (29 июля 2011 г.). Интеллектуальные системы: современный подход . Springer Science & Business Media. стр. 149–. ISBN 978-3-642-21004-4 .
- ^ Син-Вай Чан (13 ноября 2014 г.). Энциклопедия технологий перевода Routledge . Рутледж. стр. 454–. ISBN 978-1-317-60815-8 .
- ^ «Что такое система, основанная на правилах?» . j-paine.org .
- ^ Кабица Ф. и Даль Сено Б. (2005). «Промежуточное программное обеспечение DJess-A для обмена знаниями для развертывания распределенных систем вывода». Международный журнал компьютерной и информационной инженерии . 2 : 66–69. дои : 10.1109/PERSER.2005.1506416 . S2CID 27323155 .
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Майер Д., Текле К.Т., Кифер М. и Уоррен Д.С., 2018. Журнал данных: концепции, история и перспективы. В декларативном логическом программировании: теория, системы и приложения (стр. 3–100).
- ^ Тэрнлунд, С.О. (1977). «Вычислимость предложения Хорна». БИТ Численная математика . 17 (2): 215–226. дои : 10.1007/BF01932293 . S2CID 32577496 .
- ^ Андрека, Х.; Немети, И. (1978). «Обобщенная полнота предикатной логики Хорна как языка программирования» . Акта Кибернетика . 4 (1): 3–10.
- ^ Тагард, Пол (2005). Разум: введение в когнитивную науку . Массачусетский технологический институт Пресс. п. 11. ISBN 9780262701099 . https://www.google.co.uk/books/edition/Mind_second_edition/gjcR1U2HT7kC?hl=en&gbpv=1&pg=PP11&printsec=frontcover