Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Производство состоит из двух частей: сенсорного предусловия (или утверждения «ЕСЛИ») и действия (или «ТОГДА»). Если предпосылка производства совпадает текущее состояние мира, то производство , как говорит, срабатывает . Если производственное действие выполняется , то говорят, что он выстрелил . Производственная система также содержит базу данных, иногда называемую рабочей памятью , в которой хранятся данные о текущем состоянии или знаниях, и интерпретатор правил. Интерпретатор правил должен обеспечивать механизм для определения приоритетов производства, когда запускается более одного. [ необходима цитата ]

Основная операция [ править ]

Интерпретаторы правил обычно выполняют алгоритм прямой цепочки для выбора продукции для выполнения для достижения текущих целей, что может включать в себя обновление данных или убеждений системы . Часть условия каждого правила ( левая часть или LHS) проверяется на соответствие текущему состоянию рабочей памяти.

В идеализированных или ориентированных на данные производственных системах предполагается, что любые инициированные условия должны выполняться: последующие действия ( правая сторона или правая часть ) обновят знания агента, удаляя или добавляя данные в рабочую память. Система прекращает обработку, когда пользователь прерывает цикл прямой цепочки; когда было выполнено заданное количество циклов; когда выполняется "остановка" RHS, или когда нет правил, не имеющих LHS, которые являются истинными.

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

Сопоставление производственных правил с рабочей памятью [ править ]

Производственные системы могут различаться по выразительной силе условий в производственных правилах. Соответственно, алгоритм сопоставления с образцом , который собирает производственные правила с совпадающими условиями, может варьироваться от наивного (проверка всех правил последовательно с остановкой на первом совпадении) до оптимизированного, в котором правила «компилируются» в сеть взаимосвязанных условий. .

Последнее иллюстрируется алгоритмом RETE , разработанным Чарльзом Л. Форги в [1] 1974 г., который используется в серии производственных систем, называемых OPS и первоначально разработанных в Университете Карнеги-Меллона, кульминацией которых стал OPS5 в начале восьмидесятых. OPS5 можно рассматривать как полноценный язык программирования для программирования производственных систем.

Выбор правил для оценки [ править ]

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

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

Использование производственных систем [ править ]

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

Пример простой системы переписывания строк [ править ]

В этом примере показан набор производственных правил для преобразования строки из алфавита, не содержащего символов «$» и «*» (которые используются как символы-маркеры).

P1: $$ -> *P2: * $ -> *P3: * х -> х *P4: * -> ноль и остановкаP5: $ xy -> y $ xP6: ноль -> $

В этом примере производственные правила выбираются для тестирования в соответствии с их порядком в этом производственном списке. Для каждого правила входная строка проверяется слева направо с движущимся окном, чтобы найти совпадение с LHS производственного правила. Когда совпадение найдено, совпавшая подстрока во входной строке заменяется правой частью производственного правила. В этой производственной системе x и y - переменные, соответствующие любому символу алфавита входной строки. Сопоставление возобновляется с P1 после того, как была произведена замена.

Например, строка «ABC» подвергается следующей последовательности преобразований в соответствии с этими производственными правилами:

$ ABC (P6)B $ AC (P5)BC $ A (P5)$ BC $ A (P6)C $ B $ A (P5)$ C $ B $ A (P6)$$ C $ B $ A (P6)* C $ B $ A (P1)C * $ B $ A (P3)C * B $ A (P2)CB * $ A (P3)CB * A (P2)CBA * (P3)CBA (P4)

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

Пример производственного правила OPS5 [ править ]

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

(p Удерживает :: Объект-потолок {(цель ^ статус активен ^ тип содержит ^ objid <O1>) <цель>} {(физический объект ^ id <O1> ^ вес легкий ^ в <p> ^ на потолке) <объект-1>} {(физический объект ^ id лестницы ^ в <p> ^ на этаже) <объект-2>} {(обезьяна ^ на лестнице ^ держит NIL) <обезьяна>} - (физический объект ^ на <O1>)-> (написать (crlf) Grab <O1> (crlf)) (изменить <объект1> ^ на NIL) (изменить <обезьяна> ^ содержит <O1>) (изменить <цель> ^ статус удовлетворен))

В этом примере данные в рабочей памяти структурированы, а переменные заключены в угловые скобки. Имя структуры данных, например «цель» и «физический объект», является первым литералом в условиях; поля структуры имеют префикс "^". Знак «-» указывает на отрицательное состояние.

Производственные правила в OPS5 применяются ко всем экземплярам структур данных, которые соответствуют условиям и соответствуют привязкам переменных. В этом примере, если несколько объектов подвешены к потолку, каждый с другой лестницей поблизости, поддерживающей обезьяну с пустыми руками, конфликтующий набор будет содержать столько экземпляров производственных правил, которые получены из одного и того же рабочего "Holds :: Object-Ceiling". На этапе разрешения конфликтов позже будет выбрано, какие производственные экземпляры запускать.

Связывание переменных, полученное в результате сопоставления с образцом в LHS, используется в RHS для ссылки на данные, которые необходимо изменить. Рабочая память содержит явные данные структуры управления в виде экземпляров «целевой» структуры данных. В этом примере, как только обезьяна удерживает приостановленный объект, состояние цели устанавливается как «выполнено», и то же правило производства больше не может применяться, поскольку его первое условие не выполняется.

Связь с логикой [ править ]

И Рассел, и Норвиг « Введение в искусственный интеллект» и « Представление знаний: логические, философские и вычислительные основы» Джона Сова характеризуют производственные системы как системы логики, которые выполняют рассуждения посредством прямой цепочки. Однако Стюарт Шапиро, рецензируя книгу Совы, утверждает, что это искажение фактов. [ необходима цитата ] Точно так же Ковальски и Садри [2] утверждают, что, поскольку действия в производственных системах понимаются как императивы, производственные системы не имеют логической семантики. Их логика и компьютерный язык Logic Production System [3](LPS) объединяет логические программы, интерпретируемые как убеждения агента, с реактивными правилами, интерпретируемыми как цели агента. Они утверждают, что реактивные правила в LPS придают производственным правилам логическую семантику, которой им в противном случае не хватает. В следующем примере строки 1-3 являются объявлениями типов, 4 описывает начальное состояние, 5 - реактивное правило, 6-7 - логические программные пункты, а 8 - причинный закон:

1. бегает огонь.2. Действия устранить, убежать.3. события deal_with_fire.4. изначально огонь.5. если огонь, то deal_with_fire.6. deal_with_fire, если устранить.7. deal_with_fire при побеге.8. Устранение прекращает возгорание.

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

Связанные системы [ править ]

  • Правила обработки ограничений : язык программирования на основе правил.
  • CLIPS : общедоступный программный инструмент для построения экспертных систем.
  • JBoss Drools : система управления бизнес-правилами с открытым исходным кодом (BRMS).
  • Правила ILOG : система управления бизнес-правилами.
  • JESS : механизм правил для платформы Java - это надмножество языка программирования CLIPS .
  • Лиза : движок правил, написанный на Common Lisp.
  • OpenL Tablets : бизнес-ориентированные правила и BRMS с открытым исходным кодом.
  • Пролог : язык логического программирования общего назначения.
  • Soar , OpenCog : когнитивные архитектуры на основе производственной системы.

Ссылки [ править ]

  1. ^ "Документация по слюням" .
  2. ^ Ковальский, Роберт; Садри, Фариба (12 января 2009 г.). «LPS - основа производственной системы на основе логики». Cite journal requires |journal= (help)
  3. ^ "LPS | Логические производственные системы" .
  • Браунстон, Л., Фаррелл Р., Кант Э. (1985). Программирование экспертных систем в OPS5 Reading, Массачусетс: Addison-Wesley. ISBN 0-201-10647-7 
  • Клар Д., Лэнгли П. и Нечес Р. (1987). Модели производственной системы обучения и развития . Кембридж, Массачусетс: MIT Press.
  • Ковальский, Р. и Садри, Ф. (2016). Программирование по логике без логического программирования . Теория и практика логического программирования, 16 (3), 269-295.
  • Рассел, С.Дж., Норвиг, П. (2016). Искусственный интеллект: современный подход . Pearson Education Limited.
  • Шапиро, С. (2001). Обзор представления знаний: логические, философские и вычислительные основы . Компьютерная лингвистика, 2 (2), 286-294
  • Сова, Дж. Ф. (2000). Представление знаний: логические, философские и вычислительные основы (Том 13). Пасифик Гроув, Калифорния: Брукс / Коул.
  • Уотерман, Д.А., Хейс-Рот, Ф. (1978). Системы логического вывода, ориентированные на шаблоны. Нью-Йорк: Academic Press. ISBN 0-12-737550-3 

См. Также [ править ]

  • Механизм выбора действия
  • Экспертная система
  • Система обучающих классификаторов
  • Механизм логического вывода
  • L-система
  • OPS5
  • Представление правил производства
  • Алгоритм Rete
  • Машинное обучение на основе правил
  • Изменение срока