에이전트(Agent)는 인공지능 분야에 있어서 핵심 개념이 될 수 있다. 다음과 같이 정의를 내릴 수가 있다
"복잡한 동적 환경에서 목표를 달성하려 시도하는 시스템"
특징
- 특정 목적에 대해 사용자를 대신하여 작업을 수행하는 자율적 프로세스이다.
- 독자적으로 존재하지 않고 어떤 환경(운영 체제, 네트워크 등)의 일부이거나 그 안에서 동작하는 시스템이다.
- 지식 기반(Knowledge Base)과 추론 기능을 가지며, 자원 또는 다른 에이전트와의 정보 교환과 통신을 통해 문제를 해결한다.
- 스스로 환경의 변화를 인지하고 그에 대응하는 행동을 취하며, 경험을 바탕으로 학습하는 기능을 가진다.
분류
Simple Reflex Agents
Condition-Action Rule을 내부에 가지고 있으며, 환경으로부터 받는 정보로부터 정해진 Rule에 따라서 반응하는 Agent이다. 또한 내부 기억이나 상태 정보를 가지고 있지 않으므로, 이전의 Percept는 현재 행동에 영향을 미치지 않는다. 이러한 Agent는 Mapping이 너무 커서 저장하기 힘든 환경에서는 잘 작동하지 않는다. 왜냐하면 단순히 그들의 행동을 States에서 Actions로 가는 직접적인 Mapping에 두었기 때문이다.
Goal-Based Agents
Goal-Based Agents는 미래의 Actions와 결과에 대한 바람직한 상황을 상정한다는 측면에서 Simple Reflex Agents와는 차이점을 보인다. 내부 상태를 가지며, 목적이라는 정보를 가지고 있으며 그 목적을 이루기 위해 행동의 일렬을 계속해서 찾는다.
Utility-Based Agents
목적을 해결하는 방법이 여러 방법으로 나누어지거나, 혹은 여러 목적이 있는 경우, 효율성에 입각하여 행동의 일렬을 구성한다. 같은 목적을 이루기 위해서 다른 행동의 과정이 있다면 그것들 간의 상호 유용성을 비교함으로써 좀 더 효율적으로 목적에 도달할 수 있도록 구성된다.
가상공간 환경에 위치하여 특별한 응용 프로그램을 다루는 사용자를 도울 목적으로 '반복적인 작업들을 자동화시켜 주는 컴퓨터 프로그램'을 지능형 에이전트(Intelligent Agent)라고 한다.
흔히 이런 지능형 에이전트는 사용자의 개입 없이 주기적으로 정보를 모으거나 또는 일부 다른 서비스를 수행해준다. 사용자가 관심을 가지고 있는 분야의 정보를 수집하고, 이것을 매일 정해진 주기로 제공한다. 이러한 에이전트를 흔히 우리는 '로봇'이라고 부른다.
성질
● 자율성 : 스스로 판단하여 동작하고 그들 행동이나 내부 상태에 대한 제어를 한다.
● 사회성 : 다른 에이전트와 상호작용 할 수 있다.
● 반응성 : 실세계, 사용자, 다른 에이전트들의 집합, 인터넷 같은 환경을 인지하고 그에 대해 반응한다.
● 능동성 : 주도권을 가지고 목표 지향적으로 행동한다.
● 시간 연속성 : 전면에서 실행하고 이면에서는 잠시 휴식하면서 연속적으로 수행한다.
● 목표지향성 : 작업을 세부 작업으로 나누어 처리 순서를 결정하여 목표를 달성한다.
에이전트의 속성은 다음과 같습니다.
● 이동성 : 작업을 다른 컴퓨터로 이동시켜 수행하여 효율을 높이고 네트워크 부하를 감소시킨다.
● 합리성 : 목표를 달성하기 위해 행동한다. 목표 달성을 방해하는 요인은 최대한 피한다.
● 적응성 : 사용자의 습관과 작업 방식 그리고 취향에 따라 스스로를 적응시킨다.
● 협동성 : 에이전트는 다른 에이전트, 자원, 사람과도 복잡한 작업을 수행하기 위해 협력한다.
'CS > 자료구조 & 알고리즘' 카테고리의 다른 글
우선 순위 큐 - Priority Queue (1) | 2024.06.13 |
---|---|
스택 포인터와 프레임 포인터 (0) | 2024.04.16 |
[C++] 라운드 로빈 스케줄링 구현 (우선순위 큐 이용) (0) | 2024.03.06 |
[C++] lower bound, upper bound (0) | 2023.12.19 |
[C++] 계단 오르기 알고리즘 (0) | 2023.12.18 |