stringtranslate.com

Производственная система (информатика)

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

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

Основная операция

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

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

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

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

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

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

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

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

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

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

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

Простой пример системы перезаписи строк

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

Р1: $$ -> *П2: *$ -> *П3: *х -> х*P4: * -> null и остановкаP5: $xy -> y$xP6: ноль -> $

В этом примере правила производства выбираются для тестирования в соответствии с их порядком в этом списке производства. Для каждого правила входная строка проверяется слева направо с помощью движущегося окна для поиска совпадения с LHS правила производства. Когда совпадение найдено, совпавшая подстрока во входной строке заменяется RHS правила производства. В этой системе производства 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)С*$Б$А (P3)С*Б$А (P2)CB*$A (P3)ЦБ*А (П2)CBA* (P3)CBA (P4)

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

Пример правила производства OPS5

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

(p Holds::Объект-Потолок {(цель ^статус активен ^тип удерживает ^objid <O1>) <цель>} {(физический-объект ^id <O1> ^вес легкий ^в <p> ^на потолке) <объект-1>} {(физический-объект ^id лестница ^at <p> ^on этаж) <object-2>} {(обезьяна ^на лестнице ^держит NIL) <обезьяна>} -(физический-объект ^на <O1>)--> (написать (crlf) Захватить <O1> (crlf)) (измените <object1> ^на NIL) (изменить <monkey> ^holds <O1>) (изменить <цель> ^статус выполнен))

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

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

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

Связь с логикой

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

1. свободно владеет огнём.2. действия устраняют, избегают.3. события имеют дело_с_огнем.4. изначально огонь.5. если огонь, то иметь дело_с_огнем.6. справиться_с_огнем, если устранить.7. справиться_с_огнем, если побег.8. ликвидировать прекращает огонь.

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

Связанные системы

Ссылки

  1. ^ «Документация Drools».
  2. ^ Шапиро, С. (2001). Обзор представления знаний: логические, философские и вычислительные основы. Компьютерная лингвистика, 2(2), 286-294
  3. ^ Ковальски, Роберт; Садри, Фариба (12 января 2009 г.). «LPS — фреймворк производственной системы на основе логики». {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  4. ^ "LPS | Логические производственные системы".

Смотрите также