Производственная система (информатика)
«Производственная система» (или «система производственных правил») — это компьютерная программа, обычно используемая для обеспечения той или иной формы искусственного интеллекта , которая состоит в основном из набора правил поведения, но также включает в себя механизм, необходимый для следования этим правилам, как система реагирует на состояния мира [ нужна ссылка ] . Эти правила, называемые продукцией , представляют собой базовое представление , которое можно использовать в автоматизированном планировании , экспертных системах и выборе действий .
Продукция состоит из двух частей: сенсорной предпосылки (или высказывания «ЕСЛИ») и действия (или «ТО»). Если предварительное условие производства соответствует текущему состоянию мира, то производство считается запущенным . Если действие производства выполнено , говорят, что оно сработало . Производственная система также содержит базу данных, иногда называемую рабочей памятью , в которой хранятся данные о текущем состоянии или знаниях, а также интерпретатор правил. Интерпретатор правил должен обеспечивать механизм определения приоритета производств, когда запускается более одного. [ нужна ссылка ]
Основная операция [ править ]
Интерпретаторы правил обычно выполняют алгоритм прямой цепочки системы для выбора продуктов для выполнения для достижения текущих целей, что может включать обновление данных или убеждений . Условная часть каждого правила ( левая часть или LHS) проверяется на соответствие текущему состоянию рабочей памяти.
В идеализированных или ориентированных на данные производственных системах предполагается, что любые сработавшие условия должны быть выполнены: последующие действия ( правая часть или правая часть) будут обновлять знания агента, удаляя или добавляя данные в рабочую память. Система прекращает обработку либо когда пользователь прерывает цикл прямой цепочки; когда выполнено заданное количество циклов; когда выполняется «остановка» RHS или когда ни одно правило не имеет истинных LHS.
Напротив, системам реального времени и экспертным системам часто приходится выбирать между взаимоисключающими продуктами — поскольку действия требуют времени, можно предпринять или (в случае экспертной системы) рекомендовать только одно действие. В таких системах интерпретатор правил, или механизм вывода , циклически проходит два этапа: сопоставление производственных правил с базой данных, за которым следует выбор того, какое из совпавших правил применить, и выполнение выбранных действий.
производственных правил с Сопоставление памятью рабочей
Производственные системы могут различаться в зависимости от выразительной силы условий в производственных правилах. Соответственно, алгоритм сопоставления с образцом , который собирает производственные правила с совпадающими условиями, может варьироваться от простого (последовательная проверка всех правил с остановкой на первом совпадении) до оптимизированного, в котором правила «компилируются» в сеть взаимосвязанных условий. .
Последнее иллюстрируется алгоритмом Rete , разработанным Чарльзом Л. Форги в [1] 1974, который используется в серии производственных систем, получивших название OPS и первоначально разработанных в Университете Карнеги-Меллона, кульминацией которых стала OPS5 в начале 1980-х годов. OPS5 можно рассматривать как полноценный язык программирования для программирования производственных систем.
Выбор правил для оценки [ править ]
Производственные системы также могут различаться по окончательному выбору производственных правил для выполнения или запуска . Совокупность правил, возникающих в результате предыдущего алгоритма сопоставления, называется набором конфликтов , а процесс выбора также называется стратегией разрешения конфликтов .
И здесь такие стратегии могут отличаться от простых — использовать порядок, в котором были написаны правила производства; присвоить веса или приоритеты производственным правилам и соответствующим образом отсортировать набор конфликтов — по комплексу — отсортировать набор конфликтов по времени, когда ранее были активированы производственные правила; или в зависимости от степени модификаций, вызванных их RHS. Какая бы стратегия разрешения конфликтов ни применялась, этот метод действительно имеет решающее значение для эффективности и правильности производственной системы. Некоторые системы просто запускают все соответствующие продукты.
Использование производственных систем [ править ]
Использование производственных систем варьируется от простых строк правил переписывания до моделирования когнитивных процессов человека, от систем переписывания и сокращения терминов до экспертных систем .
Простой пример производственной системы с перезаписью строк [ править ]
В этом примере показан набор правил вывода строки из алфавита, не содержащей символов «$» и «*» (которые используются в качестве символов-маркеров).
P1: $$ -> * P2: *$ -> * P3: *x -> x* P4: * -> null & halt P5: $xy -> y$x P6: null -> $
В этом примере производственные правила выбираются для тестирования в соответствии с их порядком в этом производственном списке. Для каждого правила входная строка проверяется слева направо с помощью движущегося окна, чтобы найти совпадение с левой строкой производственного правила. Когда совпадение найдено, совпавшая подстрока во входной строке заменяется правой частью производственного правила. В этой производственной системе 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 Holds::Object-Ceiling {(goal ^status active ^type holds ^objid <O1>) <goal>} {(physical-object ^id <O1> ^weight light ^at <p> ^on ceiling) <object-1>} {(physical-object ^id ladder ^at <p> ^on floor) <object-2>} {(monkey ^on ladder ^holds NIL) <monkey>} -(physical-object ^on <O1>) --> (write (crlf) Grab <O1> (crlf)) (modify <object1> ^on NIL) (modify <monkey> ^holds <O1>) (modify <goal> ^status satisfied) )
В этом примере данные в рабочей памяти структурированы, а переменные отображаются в угловых скобках. Имя структуры данных, например «цель» и «физический объект», является первым литералом в условиях; поля структуры имеют префикс «^». «-» указывает на отрицательное состояние.
Правила производства в OPS5 применяются ко всем экземплярам структур данных, которые соответствуют условиям и соответствуют привязкам переменных. В этом примере, если к потолку подвешено несколько объектов, рядом с каждым из которых находится другая лестница, поддерживающая обезьяну с пустыми руками, набор конфликтов будет содержать столько же экземпляров правил производства, полученных из одного и того же продукта «Holds::Object-Ceiling». На этапе разрешения конфликта позже будет выбрано, какие рабочие экземпляры следует активировать.
Привязка переменных, возникающих в результате сопоставления с образцом в LHS, используется в RHS для ссылки на данные, которые необходимо изменить. Рабочая память содержит явные данные структуры управления в форме экземпляров структуры данных «цели». В этом примере, как только обезьяна удерживает подвешенный объект, статус цели устанавливается на «выполнено», и то же самое производственное правило больше не может применяться, поскольку его первое условие не выполнено.
Связь с логикой [ править ]
И Рассела и Норвига «Искусственный интеллект : современный подход» , и Джона Сова характеризуют «Представление знаний: логические, философские и вычислительные основы» производственные системы как системы логики , которые выполняют рассуждения посредством прямых цепочек. Однако Стюарт Шапиро , рецензируя книгу Сова, утверждает, что это искажение фактов. [2] аналогично Ковальский и Садри [3] утверждают, что, поскольку действия в производственных системах понимаются как императивы, производственные системы не имеют логической семантики. Их логика и компьютерный язык Система производства логики [4] (LPS) сочетает логические программы, интерпретируемые как убеждения агента, с реактивными правилами, интерпретируемыми как цели агента. Они утверждают, что реактивные правила в LPS придают продукционным правилам логическую семантику, которой в противном случае у них нет. В следующем примере строки 1–3 — это объявления типов, 4 – описание исходного состояния, 5 — реактивное правило, 6–7 — предложения логической программы и 8 — причинный закон:
1. fluents fire. 2. actions eliminate, escape. 3. events deal_with_fire. 4. initially fire. 5. if fire then deal_with_fire. 6. deal_with_fire if eliminate. 7. deal_with_fire if escape. 8. eliminate terminates fire.
Обратите внимание, что в этом примере реактивное правило в строке 5 срабатывает точно так же, как и производственное правило, но на этот раз его заключение Deal_with_fire становится целью, которую нужно свести к подцелям с помощью логических программ в строках 6-7. Эти подцели представляют собой действия (строка 2), хотя бы одно из которых необходимо выполнить для достижения цели.
Связанные системы [ править ]
- Правила обработки ограничений : язык программирования, основанный на правилах.
- CLIPS : общедоступный программный инструмент для создания экспертных систем.
- JBoss Drools : система управления бизнес-правилами с открытым исходным кодом (BRMS).
- Правила ILOG : система управления бизнес-правилами.
- JESS : механизм правил для платформы Java — это расширенная версия языка программирования CLIPS .
- Lisa : механизм правил, написанный на Common Lisp.
- Таблетки OpenL : бизнес-ориентированные правила и BRMS с открытым исходным кодом.
- Пролог : язык логического программирования общего назначения.
- ACT-R , Soar , OpenCog : когнитивные архитектуры, основанные на производственной системе.
Ссылки [ править ]
- ^ «Документация слюни» .
- ^ Шапиро, С. (2001). Обзор представления знаний: логические, философские и вычислительные основы. Компьютерная лингвистика, 2(2), 286-294.
- ^ Ковальски, Роберт; Садри, Фариба (12 января 2009 г.). «LPS - структура производственной системы, основанной на логике».
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «ЛПС | Логические производственные системы» .
- Браунстон Л., Фаррелл Р., Кант Э. (1985). Экспертные системы программирования в OPS5 Ридинг, Массачусетс: Аддисон-Уэсли. ISBN 0-201-10647-7
- Клар Д., Лэнгли П. и Нечес Р. (1987). Модели производственных систем обучения и развития . Кембридж, Массачусетс: MIT Press.
- Ковальски Р. и Садри Ф. (2016). Программирование на логике без логического программирования . Теория и практика логического программирования, 16 (3), 269–295.
- Рассел С. Дж. и Норвиг П. (2016). Искусственный интеллект: современный подход . Пирсон Образования Лимитед.
- Сова, Дж. Ф. (2000). Представление знаний: логические, философские и вычислительные основы (Том 13). Пасифик Гроув, Калифорния: Брукс/Коул.
- Уотерман, Д.А., Хейс-Рот, Ф. (1978). Системы вывода, ориентированные на шаблоны, Нью-Йорк: Academic Press. ISBN 0-12-737550-3