Стратегия разрешения конфликтов: в чем разница между порядком размера / порядком данных / наименее недавно использованным правилом? - PullRequest
0 голосов
/ 09 февраля 2019

В чем разница между порядком размера / порядком данных / правилом с наименьшим количеством использованных недавно?

Я уже провел множество исследований, и в большинстве книг говорится:

Упорядочение данных: упорядочьте все возможные утверждения в одном длинном списке с приоритетами.Используйте сработавшее правило с шаблоном условия, которое соответствует утверждению с наивысшим приоритетом в списке.

Порядок размеров: Используйте сработавшее правило с самыми жесткими требованиями, где самое жесткое означает самый длинный список условий.

Наименее недавно использованное правило (порядок очередности): используйте наименее использованное правило.

Однако все эти объяснения слишком абстрактны для меня, и я не могу их хорошо понять.

Может ли кто-нибудь помочь мне, используя следующие случаи, чтобы объяснить эти три стратегии?(Не стесняйтесь использовать собственный случай)

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

1 Ответ

0 голосов
/ 26 февраля 2019

Чтобы понять, какова стратегия разрешения конфликтов, давайте смоделируем условие, в котором у нас есть конфликт между двумя правилами.Я расскажу о первом и втором приведенном примере, и для правил я буду использовать язык CLIPS .

Первое правило - ответы на жалобы с быстрым ответом.Идеально, если у нас нет никакой дополнительной информации о том, как обращаться с жалобой.

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

(defrule generic-excuse
  ; Provide a generic excuse to complaining customers
  ?complaint <- (complaint (customer ?customer))
  =>
  (respond-to-customer ?customer "We are sorry for the inconvenience.")
  (retract ?complaint))

(defrule forward-complaint-to-manager
  ; Forward a complaint to the assigned manager
  ?complaint <- (complaint (customer ?customer))
  ?manager <- (manager (assigned-customers $?customers))  ; managers have a list of assigned customers
  (test (member$ ?customer ?customers))                   ; test if the customer among the ones assigned to the manager
  =>
  (forward-to-manager ?manager ?complaint)
  (retract ?complaint))

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

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

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

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

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

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

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

Вы можете увидеть полную копию примера программы в следующем gist .

...