Gurugail Algorithm/Rule Based System
Algorithm

Rule Based System

인공지능 초창기 탄생한 방법론이 규칙 기반으로 문제를 해결하는 것이다. Rule-based System이 바로 그것이다. Rule-based System을 규칙 기반 시스템?이라고 해야 하나 적당한 한글말을 모르겠다. 여기서는 설명이 우선 한글이니 이하 규칙 기반 시스템이라고 하자.

규칙 기반 시스템의 구성

규칙 기반 시스템을 구성하는 요소라고 해야 하나, 우선 규칙(Rule) 이 있어야 한다. 규칙들의 묶음을 지식(Knowledge) 라고 표현한다. 규칙이 사실 우리가 흔히 알고 있는 모든 지식들을 표현할 지는 모르겠지만, 지식이라고도 하니 그냥 넘어 가자. 그리고 규칙들을 추론할 수 있는 추론 엔진 그리고 사용자 인터페이스 부분까지 포함되어 구성될 수 있다. 정리하면 규칙 기반 시스템의 구성은 아래와 같다.

  1. 규칙 (또는 지식)
  2. 추론 엔진(Inference Engine)
  3. 작업 기억부(Working Memory) : 적당한 한글말이 없음, 원문은 Working Memory임
  4. 사용자 인터페이스

규칙 (또는 지식 또는 데이터일 수 있으나 이하 규칙으로 함)들을 이용해서 추론 엔진이 새로운 규칙들을 생성하며, 생성하는 그 작업 장소가 Working Memory 인 셈이다. 단지 추론 엔진에서 사용하는 메모리? 정도로 인식하면 안 된다. 규칙 기반 시스템에서의 작업 기억부는 보통 LTM(Long Term Memory)와 STM(Short Term Memory) 등으로 세분화되어 구분되기도 하며, 메모리의 운영이나 전략? 자체가 규칙 기반 시스템에서는 하나의 중요한 역할인 것을 확인하자.

규칙이란

규칙 기반 시스템에서의 규칙이란 주어진 조건에 부합되면 액션을 취하는 형태로
if 조건 then 액션(action) 와 같이 표현된다. 복잡하게는 if 문의 조건이 세부 조건들의 논리 연산으로 표현되기도 하고 액션도 여러 개의 세부 액션들로 표현되기도 한다. 규칙들의 묶음이 구성되면 지식(Knowledge) 인 셈이고 규칙들을 처리하는 엔진이 추론 엔진인 셈이다. 추론 엔진에 따라 규칙을 구성하는 요소가 미리 정해진 형태 안에서 구성되어야 하기도 한다.

추론 알고리즘

규칙의 묶음들이 주어지면 처리하는 엔진이 있어야 하는데 엔진이 규칙들을 다루는 방식, 추론을 진행하는 방식에는 크게 두 가지 방식이 있다.

  1. 전방향 추론(Forward chaining) : 규칙 중 조건에 부합되는 사실로부터 추론하여 최종적인 액션에 해당하는 추론 방식 (Data-driven)
  2. 역방향 추론(Backward chaining): 주어진 액션(명제)로부터 부합되는 조건들을 찾아가면서 주어진 액션(명제 또는 지식)이 참인지를 가려내는 추론 방식(goal-driven)
if 조건 then 액션if 조건 then 액션
--------------> (forward)<------------- (backward)

규칙과 논리(Logic)

if A then B 의 규칙 형태는 논리학에서는 ~A or B 와 동치(equivalence)이다. 따라서 대부분의 규칙들은 논리 형태로 변환이 가능하다. 동격으로 표현이 가능하지만 규칙보다는 논리에 의한 시스템을 구현하기 더 용이하기에 규칙 기반 시스템의 인공지능적 접근 방법보다는 논리 프로그래밍(Logic Programming)에 의한 해결이 보편화 되었다고 판단된다. (개인적 의견;;)

자유사랑29 March 2011, 10:19

진단알고리즘에서 비슷한 논리가 사용됩니다.

수진자의 검사1의 결과가 양성이고 수진자의 나이가 60세 이상이고 고혈압이 140이면 진단A에 해당한다.

1개의 검사는 여러가지 결과 값을 가질 수 있고 각각의 결과에 대해 진단이 가능합니다. 보기) 검사1은 양성 또는 음성이다.

1개의 진단은 여러가지 조건 집합을 통해 얻어질수 있다. 보기) 피부과 검사, 외과 검사을 통한 화상 검진

if 조건으로 처리하기 곤란한 경우로는 첫째, 진단이 또 다른 조건절로 사용되는 경우이다. 보기) 호흡기 검사로 감기 진단이 나왔는데 감기가 내과에서 합병증 진단 조건으로 사용되는 경우

둘째, 합성명사를 만드는 경우 보기) 소아이면서 당뇨이면 소아당뇨라 한다.