Здесь я пытаюсь объяснить механизм правил очень простым способом. Давайте начнем с проблемы. Предположим, если я скажу вам, что вам нужно создать банковское приложение, в котором вы должны реализовать логику, как указано ниже.
Логика:
A person is eligible for car loan if, he has monthly salary more than 70K and his credit score is more than 900 then, approve the car loan and sanction the 60% of requested amount.
Вы можете легко реализовать эти типы правил или логики в своем приложении. Но если вы получите некоторые дополнительные требования, такие как:
Для достижения всех этих требований в нашем приложении мы можем использоватьПравило двигатель,Но прежде чем запускать механизм правил, давайте разберемся с несколькими терминологиями и опытом.
if-then
сформироваться. Он содержит в основном две части,состояние, а такжедействие, Правило также известно какпроизводство,Rule = Condition + Action
Условие также известно какфакт или предшественники или шаблоны, И действие также известно какследствие,
Знание в виде правил:
Rule 1: A person is eligible for car loan?
if:
1. He has monthly salary more than 70K.
2. His credit score is more than 900.then:
1. Approved car loan.
2. Sanctioned 60% of requested car loan amount.Rule 2: A person is eligible for car loan?
if:
1. He has monthly salary more than 35K.
2. His credit score is more than 700.then:
1. Approved car loan.
2. Sanctioned 90% of requested car loan amount.
Теперь давайте попробуем разобраться с движком правил.
Это программа экспертной системы, которая запускает правила для данных и, если выполняется какое-либо условие, выполняет соответствующие действия.
На приведенной выше диаграмме показано, что мы собираем знания в форме правил (форма if-then) и храним их в любом магазине. Правила могут храниться в любом хранилище, таком как файлы или базы данных. Теперь механизм вывода выбирает правила в соответствии с требованиями и запускает их на входных данных или запросах. Если какие-либо шаблоны / условия соответствуют, тогда он выполняет соответствующее действие и возвращает результат или решение.
Механизм логического вывода - это компонент интеллектуальной системы в искусственном интеллекте, который применяет логические правила к базе знаний для вывода новой информации из известных фактов. Первый механизм логического вывода был частью экспертной системы. Движок вывода обычно работает в двух режимах:
Программа Inference-Engine работает в три этапа, чтобы выполнить правило для данных.
Этап 1 - Матч:На этом этапе механизм вывода сопоставляет факты и данные с набором правил. Этот процесс называется сопоставлением с образцом.
Алгоритм, который мы можем использовать для сопоставления с образцом:
Drools является одной из реализаций двигателя правил и использовать Алгоритм повторения для сопоставления с образцом. Это один из лучших алгоритмов для сопоставления с образцом.
Выход первого этапа является конфликтным набором.Конфликтный набор означает, что для одного и того же факта или условия может быть возможно, что выполняется более одного правила. Таким образом, он возвращает набор правил конфликта.
Этап 2 - Решить:На этом этапе механизм вывода управляет порядком противоречивых правил. Это разрешает конфликт и дает выбранным правилам. Для разрешения конфликта он может использовать любой из следующих алгоритмов.
Этап 3 - Выполнить:На этом этапе механизм логического вывода просто запускает действие выбранного правила для данных и возвращает результат / результат клиенту.
В правилах двигателей обычно используется одно из следующихметоды выводареализовать механизм вывода.
Но прежде чем понять метод логического вывода, давайте разберемсярассуждения, Есть два типа рассуждений.
1. Направленная на цель / обратная аргументация:Это работает в обратном направлении от цели Здесь мы начнем с основной цели, а затем перейдем к подцелям. Таким образом, в целенаправленных рассуждениях, если мы хотим достичь главной цели, мы должны думать, что «чтобы достичь главной цели, какие подцели мы должны достичь ».
Пример:Если мы планируем провести вечер, и для этого мы планируем пойти в кино, на прогулку и на ужин. затемвечернаша главная цельикино, прогулка и ужинявляются подцелями основной цели,
2. Обоснование данных / пересылка:Он начинается с доступных данных и использует правила для извлечения дополнительных данных, пока не будет достигнута цель. Здесь мы смотрим на данные, и если мы нашли какой-то шаблон, то он выполняет соответствующее действие.
Пример:Предположим, мы должны выяснитьокрас питомца по кличке Фрицс заданными правилами и данными.
Правила:
1. If X croaks and X eats flies - Then X is a frog
2. If X chirps and X sings - Then X is a canary
3. If X is a frog - Then X is green
4. If X is a canary - Then X is yellow
Данные:
1. Fritz croaks
2. Fritz eats flies
Здесь, используя данные правила и данные, мы можем извлечь больше данных, таких как:
Fritz is a frog.
Fritz is green.
Итак, теперь давайте обсудим методы вывода:
Прямая цепочка:
Обратная цепочка:
Есть еще одна категория под названиемГибридная цепочка, Слюни используют это. Это сочетание прямой и обратной цепочки.
Все приведенные выше конкретные требования в данном примере можно рассматривать как преимущества механизма правил.
Есть много реализаций, доступных для движка правил. Немного похоже на: