개념
에이전트는 센서(sensors)를 통해 환경으로부터 정보를 받고 작동기(effectors)를 이용해 행동을 하는 것이라 할 수 있다.
그림. Agent와 외부 환경
예를 들어, 우리가 알고 있는 제곱근을 구하는 함수조차도 에이전트의 개념으로 설명할 수 있다. 외부로부터 받는 percept는 정수로, actions은 제곱근 값을 리턴하는 것으로 정의하면, 에이전트와 비슷하지 않는가? 실제 이런 종류의 에이전트를 table_driven Agent라 한다.
표. Agent의 예 ( 제곱근 함수, sqrt() )
percept |
action |
1 |
1.00000000000 |
2 |
1.41421356237 |
3 |
1.73205080756 |
... |
... |
또 예를 들자면, 단순 무식한 사람은 이렇게 외부에 대한 반응 ( or 행동 )이 table 형식으로 구성되어 있을지도 모른다. (^^)
분류
Agent는 아래와 같이 몇 가지 분류가 된다.
simple reflex agents
- condition-action rule을 내부에 가지고 있으며, 환경으로부터 받는 정보로부터 정해진 rule에 따라 반응하는 Agent이다. 또한 내부 기억이나 상태 정보를 가지고 있지 않으므로, 이전의 percept은 현재 행동에 영향을 미치지 않는다.
- 예를 들면, 먹을 것이 있으면 단순하게 먹는 사람이다. 배가 고픈지 안 고픈지, 얼마 전에 먹은 것을 기억 못하고 또 먹는 사람, 주변에 이런 사람도 있을 법하다. 그는 바로 simple reflex agent이다.(^^;)
goal-based agents
- 내부 상태를 가지며, 목적(goal)이라는 정보를 가지고 있으며, 그 목적을 이루기 위해 행동의 일렬을 찾고 계획한다.
- 컴퓨터 게임 속에 등장하는 몬스터(monster)가 goal-based agents와 비슷한 개념으로 적용될 수 있다. 적을 없애기 위해 ‘적으로 접근하기’, ‘적 공격하기’, ‘무기 찾기’ 등 목적(goal)들을 구성하며, 그러한 목적을 해결하기 위해 여러 가지 행동( ex. move, attack… )의 일렬(action sequence)을 찾고 계획한다. 바로 goal-based agents라 할 수 있다.
utility-based agents
- utility-based agents는 목적(goal)을 해결하는 여러 방법이 있거나, 혹은 여러 목적이 있을 경우, 효율성(performance measure)에 입각하여 행동의 일렬(sequence action)을 구성한다. 같은 목적을 이루기 위해 다른 행동의 과정이 있다면 그것들 간의 상호 유용성(utility)을 비교함으로써 좀 더 효율적으로 목적에 도달할 수 있도록 구성된다.
- 예를 들면, 적으로 회피를 하는 몬스터가 있다고 하자. 적을 회피하는 방법은 적으로부터 멀어지는 방향으로 뛰어가기, 혹은 다른 동료들한테로 회피하기 등 방법이 있을 수 있는데, utility-based agents는 그 목적을 달성하기 위한 여러 가지 방법의 유용성(utility)을 비교한다.
정현철(lifgear)
[##_kaAmo_##]
Leave your greetings here.