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

В экспертных системах, основанных на правилах, база знаний содержит большое количество правил в форме "если (шаблон), то (действие)". Механизм вывода выбирает правила, которые соответствуют фактам ввода. То есть те правила, что их раздел условий соответствует входным данным, включены в короткий список, и одно из них выбрано.

Теперь можно каким-то образом использовать обычную программу с похожими условными выражениями для достижения результата.

  • Я пытаюсь найти "четкое и ясное описание" различий между ними и почему мы не можем достичь того, что правила экспертной системы могли бы сделать с обычным алгоритмическим программированием?

  • Это просто, что алгоритм нуждается в полных и очень хорошо известных входных данных, в то время как экспертные системы могут принимать неполную информацию в любом порядке?

Благодарю.

3 ответа

Правила более точно описываются как форма "когда (шаблон), затем (действие)". Семантика "когда" совершенно отличается от "если". Например, наиболее прямой перевод отдельного набора правил в процедурный язык программирования будет выглядеть примерно так:

if <rule-1 conditions>
then <rule-1 actions>

if <rule-2 conditions>
then <rule-2 actions>

   .
   .
   .

if <rule-n conditions>
then <rule-n actions>

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

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

Это преимущество аналогично тому, которое обеспечивает сборка мусора в таких языках, как Java. В Java нет ничего, что обеспечивает автоматическое управление памятью, чего нельзя достичь, написав свои собственные процедуры управления памятью на C. Но, поскольку это утомительно и подвержено ошибкам, есть очевидное преимущество использования автоматического управления памятью.

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

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

Чтобы расширить то, что сказал Гэри, в жестко запрограммированных системах if-then порядок запуска правил более ограничен, чем в большинстве экспертных систем. В экспертной системе правила могут срабатывать на основе критериев, отличных от некоторого закодированного порядка. Например, некоторая мера релевантности может использоваться для запуска правила, например, запуск правила, успех или неудача которого выльется в большинство гипотез или исключит их.

Аналогично, во многих системах "инженер знаний" может устанавливать правила в любом порядке. Хотя потенциальный порядок стрельбы, возможно, необходимо учитывать, порядок, в котором объявляются правила, может не иметь значения.

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

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

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

Другие вопросы по тегам