1. Jess
(Java Expert System Shell)
전문가 시스템(Expert System)을 구축하기 위한 Shell이다.
2. 전문가 시스템
전문가시스템 (expert system) 은 전문가가 가지고 있는 지식을 인위적으로 컴퓨터에게
부여하여 그 방면에 비전문가라 할지라도 그러한 전문가의 지식을 이용하여 상호 대화를
통하여 원하는 결과를 얻는 일종의 자문형 컴퓨터 시스템이다
3. 연역법 (Deduction)
Deduction (연역법) : A → B 즉 A를 알면 B를 안다.
1) 모든 포유동물은 심장을 가지고 있다.
2) 모든 말은 포유동물이다.
∴ 모든 말은 심장을 가지고 있다.
전제와의 논리적 관계만으로 필연적으로 결론이 도출되는 추론을 연역추론이라한다.
4. 귀납법(Induction)
Instance로부터 Rule을 만들어 낸다.
* 이 백조는 흰색이다 ........ 모든 백조는 흰색이다.
* 당구볼은 큐로 쳤을때 움직인다 ........... 모든 행동에 대해, 동등한 반작용이 있다.
증명으로부터 가설을 유도해낸다. 즉 결론은 얻어진 사실로부터 추론된다.
은행나무는 낙엽이 진다. 단풍나무는 낙엽이 진다.
⇒ 모든 나무는 낙엽이 진다 : False
결과는 False일 수 있다. : Instance가 모든 Case를 전부 보여줄 수는 없기 때문이다.
유도된 결론은 정확하지 않을수 있고 또한 새로운 사실이 알려질 경우 변할수 있다.
6. 추론엔진 수행과정
1. 패턴매칭 (Pattern Matching) : 새로운 사실 (fact) 가 입력된 작업기억 (working memory) 에서
규칙 (rule) 이 있는 production memory 간의 패턴 매칭하여 매칭되는 rule 들을 찾아낸다.
2. 충돌해결 (Conflict Resolution) : 복수개의 rule 이 해당될 때 최적의 rule 을 선택한다.
3. 실행 (Execution) : 선택된 rule 을 실행하고 새로이 얻은 fact 를 모두 작업기억에 저장하여
다시 패턴매칭을 시작한다.
7. 충돌 해결
(conflict resolution)
각 주기에서 수행 가능한 규칙이 하나 이상인 경우 해결 정책
1. Working Memory에 의하여 만족되는 최초의 규칙
2. 가장 높은 우선순위(priority)를 가진 규칙 선택
3. 현재의 작업 메모리에 만족되는 가장 특수한(specific) 규칙
즉, 가장 세분화된 조건을 갖는 규칙.
조건부를 구성하는 논리곱요소 (conjunct)가 가장 많은 규칙
4. 작업 메모리에 삽입된 가장 최근의 정보에 만족되는 규칙
5. 가장 새로운 규칙.
이전에 수행되지 않았던, 혹은 수행되었더라도 다른 변수값으로 수행되었던 규칙
6. 임의의 규칙
7. 순서에 상관없이 만족되는 모든 규칙을 병행하여 수행
19. 사실(Fact)
- 단순 facts 추가 -
(assert (원숭이위치 A))
(assert (원숭이손 empty))
(assert (원숭이발 onFloor))
(assert (상자위치 B))
(assert (바나나위치 C))
=> assert 키워드를 사용해 단순 fact를 작업메모리에 추가
- facts 정의 -
template 정의
(deftemplate MAIN::status
(slot search-depth)
(slot parent)
(multislot jugs)
(slot last-move)
)
=> 이름과 슬롯들의 집합으로 이루어짐
=> 하나의 사실에 하나의 템플릿이 존재
Facts 정의
(deffacts MAIN::initial-positions
(status
(search-depth 1)
(parent root)
(jugs 0 0)
(last-move no-move)
)
)
=>fact 는 template을 기반으로 작성해야 한다.
20. 규칙(Rule)
- 규칙(Rule) -
논리적으로 참인 정보를 if-then 형식으로 표현
IF 실험을 좋아한다. AND
과학책을 많이 읽는다. AND
새로운 것을 발견한다. AND
Facts
상상을 많이 한다.
THEN 과학자의 소질이 있다.
새로운 Fact생성