Blackboard
Blackboard 시스템은 이름 그대로 칠판을 모델링한 시스템이다. 문제가 잘 풀리지 않을 경우 여러 명의 전문가 (또는 공부 잘 하는 학생?) 들이 모여서 각자의 의견을 제시하면서 문제를 해결하고자 할 때 바로 칠판은 예전부터 사용해 왔다. 최근에는 전자 칠판?을 쓰기도 하지만 칠판을 사용하는 의미는 동일하다.
I. Blackboard 시스템의 구성
Blacboard 시스템의 구성에 있어 다음과 같다. 구체적인 구현 전략들은 상황이나 응용 분야에 따라 다양하하자만, (칠판에 사용되는 데이터 구조나 지식 공급원들의 처리 수준, 그리고 중재자의 역할 정도에 따른 다양성) 기본적인 구성들은 유사하다. 쉽게 말하면 칠판 구성은 단순하기도 하지만 적용을 하려면 많은 부분이 고민되어야 한다는 의미이기도 하다. 하지만 AI 시스템을 적용하다보면 가끔 언급되기도 하는 용어이다.
- 칠판(blackboard) : 정보를 공개적으로 읽거가 쓸 수 있는 공간이다. 물론 의미없는 문자열을 마꾸잡이로 작성하지는 않는다. 시스템에 맞는 응용 프로그램 또는 문제 해결을 위한 설계가 필요하다. 문제를 풀기위해 어떤 구조나 정보를 공유해야 하는지가 구성되면 그것 정보들을 모델링하고 서로 공유할 수 있는 시스템을 만들면 된다. 간단하게는 Hash 테이블로도 가능하다.
- 지식 공급원(Knowledge source, KS) : 예를 들어 문제가 주어지면 칠판에 지식을 공급하는 주체가 바로 지식 공급원이다. 칠판에 적힌 내용을 처리하는 일련의 구성 요소로 조직되기도 하고 그러한 요소들은 문제를 풀기 위해 협동하는 각각의 전문가들이라 할 수 있다. 중요한 점은 오직 칠판을 통해서만 KS들이 다른 KS들과 의사소통을 할 수 있다는 점이다.
- 중재자(Control shell) : 주어진 한 시점에서 지식 공급원은 다수일 수 있다. 실 세계도 그렇지만 서로 의견이 조율이 되지 않을 경우는 중재해주는 역할이 필요하다. 예를 들어, KS 의 성공률이라든가 KS 의 예전 기록 등을 참조하여 여러 KS 들이 제시한 의견들 중 승리자를 결정하는 역할이다.
II. 참조
- Wiki blackboard
- AI Game Programming
- http://www.gbbopen.org : High-performance, blackboard system software (tutorial)
Recent Comments