생산시스템(컴퓨터과학)

Production system (computer science)

생산 시스템(또는 생산 규칙 시스템)은 일반적으로 인공지능의 어떤 형태를 제공하기 위해 사용되는 컴퓨터 프로그램인데, 주로 행동에 대한 일련의 규칙으로 구성되지만 또한 시스템이 세계의[citation needed] 상태에 반응함에 따라 그러한 규칙을 따르는 데 필요한 메커니즘을 포함하고 있다. 프로덕션이라고 불리는 이러한 규칙은 자동화된 계획, 전문가 시스템행동 선택에 유용한 기본적인 표현이다.

프로덕션은 감각 전제 조건(또는 "IF" 문)과 작용(또는 "TEN")의 두 부분으로 구성된다. 만약 생산의 전제조건이 세계의 현 상태와 일치한다면, 생산은 촉발된다고 한다. 제작진의 조치가 실행되면 발포했다고 한다. 생산 시스템에는 또한 현재의 상태나 지식에 대한 데이터를 유지하는 작업 메모리라고도 불리는 데이터베이스와 규칙 통역기가 포함되어 있다. 규칙 통역관은 하나 이상의 제작이 촉발되었을 때 제작의 우선순위를 정하는 메커니즘을 제공해야 한다.[citation needed]

기본조작

규칙 통역사는 일반적으로 시스템의 데이터나 신념의 갱신을 포함할 수 있는 현재의 목표를 충족시키기 위해 실행할 생산물을 선택하기 위한 전방 체인 알고리즘을 실행한다. 각 규칙의 조건 부분(왼쪽 또는 LHS)은 작동 메모리의 현재 상태에 대해 시험한다.

이상화되거나 데이터 지향적인 생산 시스템에서는, 결과적인 조치(우측 또는 RHS)가 작용 메모리에 데이터를 제거하거나 추가하면서 에이전트의 지식을 갱신하는 등, 촉발된 모든 조건을 실행해야 한다는 가정이 있다. 시스템은 사용자가 전방 체인 루프를 중단할 때, 지정된 사이클 수가 수행되었을 때, "할트" RHS가 실행되었을 때, 또는 규칙이 참인 LHS를 가지고 있지 않을 때 처리를 중지한다.

대조적으로 실시간 및 전문가 시스템은 상호 배타적인 생산물 중 하나를 선택해야 하는 경우가 많다 - 행동이 시간이 걸리기 때문에 한 가지 조치만 취할 수 있고, 또는 (전문가 시스템의 경우) 권장된다. 이러한 시스템에서 규칙 인터프리터 또는 추론 엔진은 데이터베이스에 대해 생산 규칙을 일치시킨 다음 적용할 일치 규칙 중 어떤 규칙을 선택하고 선택한 작업을 실행하는 두 단계를 순환한다.

작동 메모리와 프로덕션 규칙 일치

생산 시스템은 생산 규칙에서 조건의 표현력에 따라 달라질 수 있다. 따라서 일치하는 조건으로 생산 규칙을 수집하는 패턴 일치 알고리즘은 순진함(모든 규칙을 순차적으로 시도하고 첫 번째 일치에서 중지함)부터 규칙이 상호 관련 조건의 네트워크로 "컴파일"되는 최적화까지 다양할 수 있다.

후자는 찰스 L이 설계한 RETE 알고리즘에 의해 설명된다. OPS라고 불리는 일련의 생산 시스템에 사용되고 있는 1974년[1] Fordy는 원래 카네기 멜론 대학에서 개발된 OPS5가 80년대 초반에 최고조에 달했다. OPS5는 생산 시스템 프로그래밍을 위한 본격적인 프로그래밍 언어로 볼 수 있다.

평가할 규칙 선택

생산 시스템은 또한 실행하거나 해고할 생산 규칙의 최종 선택에 있어서 다를 수 있다. 이전의 일치 알고리즘으로부터 기인하는 규칙의 집합은 충돌 집합이라고 불리며, 선택 과정은 또한 충돌 해결 전략이라고도 불립니다.

여기서 다시 말하지만, 그러한 전략은 단순함과는 다를 수 있다. 즉, 생산규칙이 작성된 순서를 사용하고, 생산규칙에 가중치 또는 우선순위를 할당하고, 그에 따라 설정된 충돌을 단지별로 분류한다. 이전에 생산규칙이 해제된 시간에 따라, 또는 수정의 정도에 따라. 그들의 RHS에 의해 유도된다. 어떤 갈등 해결 전략을 실행하든, 그 방법은 실제로 생산 시스템의 효율성과 정확성에 결정적이다. 어떤 시스템은 단순히 일치하는 모든 생산물을 발사한다.

프로덕션 시스템 사용

생산 시스템의 사용은 단순한 문자열 재작성 규칙에서부터 인간 인지 프로세스의 모델링, 용어 재작성 및 축소 시스템부터 전문가 시스템에 이르기까지 다양하다.

단순 문자열 재작성 생산 시스템 예

이 예는 기호 "$"와 "*"(마커 기호로 사용되는)를 포함하지 않는 알파벳에서 문자열을 반전시키기 위한 일련의 생산 규칙을 보여준다.

P1:$ -> * P2: *$ -> * P3: *x -> x* P4: *] null & stop P5: $xy -> y$x P6: null -> null -> 

이 예에서 생산규칙은 이 생산목록의 순서에 따라 시험하기 위해 선택된다. 각 규칙에 대해 입력 문자열을 이동 창으로 왼쪽에서 오른쪽으로 검사하여 생산 규칙의 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) C*$B$A (P3) C*B$A (P2) CB*$A (P3) CB*A (P2) CBA* (P3) CBA (P4) 

이렇게 간단한 시스템에서는 생산규칙의 순서가 결정적이다. 종종, 제어 구조의 부족은 생산 시스템을 설계하기 어렵게 만든다. 물론 생산 시스템 모델, 즉 추론 엔진이나 작업 메모리에 제어 구조를 추가하는 것이 가능하다.

OPS5 프로덕션 규칙 예제

한 방에 있는 원숭이가 다른 물체를 잡고 다른 물체를 오를 수 있는 장난감 시뮬레이션 세계에서, 천장에 매달려 있는 물체를 잡는 생산 규칙의 예는 다음과 같다.

(p 유지::{(목표^status 적극적인 ^type, O1>^objid<>보유하고 있다.)<>goal>.}{(physical-object ^id<>O1>, ^weight 빛 ^at<>p>, ^on 천장)<>object-1>.}{(physical-object^id 사다리 ^at<>p>,^on층)<>object-2>.}Object-Ceiling{(원숭이 ^on 사다리를 AA는 ^holds)<>monkey>.}-(physical-object ^on<>O1&g.T, 음…>((crlf 쓰)를<>O1>,(개 행하다))(&lt을 수정하고, o.bject1> ^NIL) (<monkey> ^holds <O1> (< goal> ^status completed) 수정) (<goal> ^status completed) ) 

이 예에서 작업 메모리의 데이터는 구조화되고 각괄호 사이에 변수가 나타난다. "골"과 "물리적 객체"와 같은 데이터 구조의 이름은 조건의 첫 번째 문자 그대로, 구조물의 필드는 "^"로 앞에 붙는다. "-"는 음의 상태를 나타낸다.

OPS5의 프로덕션 규칙은 조건에 일치하고 가변 바인딩에 부합하는 데이터 구조의 모든 인스턴스에 적용된다. 이 예에서, 천장에 여러 개의 물체가 매달려 있고, 각각은 빈손 원숭이를 지지하는 다른 사다리가 있는 경우, 충돌 세트에는 동일한 생산물 "홀드::객체-천장". 분쟁 해결 단계는 나중에 어떤 생산 인스턴스를 해고할지를 선택할 것이다.

LHS에서 패턴 매칭으로 인한 변수의 결합은 수정될 데이터를 참조하기 위해 RHS에서 사용된다. 작업 메모리는 "골" 데이터 구조 인스턴스(instance) 형태의 명시적인 제어 구조 데이터를 포함하고 있다. 이 예에서 일단 원숭이가 매달린 물체를 잡으면 목표의 상태가 '만족'으로 설정되고, 첫 번째 조건이 실패하여 더 이상 같은 생산 규칙을 적용할 수 없다.

논리와의 관계

러셀과 노르빅의 인공지능 소개와 존 소웨이의 지식 표현 모두: 논리, 철학, 계산적 기초는 생산 시스템을 전진 체인을 통해 추리를 수행하는 논리 체계로 특징짓는다. 그러나 스튜어트 샤피로는 소와의 책을 검토하면서 이것이 잘못된 표현이라고 주장한다.[citation needed] 마찬가지로 코왈스키와 사드리는[2] 생산 시스템의 작용이 필수사항으로 이해되기 때문에 생산체계는 논리적인 의미론을 가지고 있지 않다고 주장한다. 그들의 논리학과 컴퓨터 언어 LPS는[3] 대리인의 신념으로 해석되는 논리 프로그램과 대응적인 규칙을 결합하여 대리인의 목표로 해석된다. 그들은 LPS의 반응성 규칙이 생산 규칙에 논리적인 의미론을 부여한다고 주장하지만, 그렇지 않으면 그들이 결여되어 있다. 다음 예에서 1-3행은 유형 선언이고 4행은 초기 상태를 기술하며 5행은 반응 규칙, 6-7행은 논리 프로그램 조항, 8행은 인과법이다.

1. 형광물질 화재. 2. 행동 제거, 탈출. 3. 사건 처리_with_fire. 4. 처음 발사. 5. 만약 불이 나면 그 때 처리_fire. 6. 제거하면 처리_with_fire. 7. 탈출하면 거래_with_fire. 8. 종말의 불을 제거한다.  

이 예에서는 생산 규칙과 마찬가지로 라인 5의 반응 규칙이 트리거되지만, 이번에는 결론 거래_with_fire가 라인 6-7의 논리 프로그램을 사용하여 하위 골로 축소되는 목표가 된다. 이러한 하위 목표는 행동(2행)이며, 그 중 적어도 하나는 목표를 충족시키기 위해 실행되어야 한다.

관련 시스템

  • 제약 조건 처리 규칙: 규칙 기반 프로그래밍 언어.
  • CLIP: 전문가 시스템 구축을 위한 공용 도메인 소프트웨어 도구.
  • JBoss Drools: 오픈 소스 비즈니스 규칙 관리 시스템(BRMS).
  • ILOG 규칙: 비즈니스 규칙 관리 시스템.
  • JES: Java 플랫폼용 규칙 엔진 - CLIP 프로그래밍 언어의 상위 집합이다.
  • Lisa: Common Lisp으로 쓰여진 규칙 엔진.
  • OpenL 태블릿: 비즈니스 중심 규칙 및 오픈 소스 BRMS.
  • 프롤로그: 범용 논리 프로그래밍 언어.
  • Sky, OpenCog: 생산 시스템에 기반한 인지 아키텍처.

참조

  1. ^ "Drools Documentation".
  2. ^ Kowalski, Robert; Sadri, Fariba (12 January 2009). "LPS - A Logic-based Production System Framework". {{cite journal}}: Cite 저널은 필요로 한다. journal= (도움말)
  3. ^ "LPS Logic Production Systems".

참고 항목