반응형

시뮬레이션 프로그램 : 컴퓨터 프로그램은 기본적으로 사람에게 어떤 입력 데이터를 받아 상황에 맞는 결과로 응답합니다. 그런데 반복 처리나 타이머 처리를 이용하면 마치 사람이 지속해서 데이터를 입력하는 것 같은 상황을 만들 수 있습니다. 이러한 구조를 이용한 것이 시뮬레이션 프로그램입니다

프로그램 속에서 반복 처리를 실행하면서 마치 살아 있는 것처럼 상태를 변경해 가는 오토마톤과 인공 생명 프로그램입니다.

 

01. 인공 생명 시뮬레이션

기계 스스로 의사를 갖거나 살아 있는 것처럼 활동하는 인공 생명 시뮬레이션을 설명합니다.

인공생명이란

생명체의 가장 중요한 특징은 자기 복제(자손을 남긴다)입니다.

라이프 게임

감염 시뮬레이션 모델

SIR모델: 건강한 사람 Susceptible , 감염자 Infected, 항체 보유자 Recovered의 세가지 상태를 기반으로 둔 감염 시뮬레이션 모델을 SIR모델이라고 합니다.

 

SEIR모델

잠복기에 있는 건강한 사람 Exposed의 상태를 추가한 모델

 

 

02. 유한 오토마톤

외부 입력이나 이벤트가 발생할 때 유한 패턴 안에서 상태를 변화시키는 모델인 유한 오토마톤(유한 상태 기계)를 설명합니다.

오토마톤: 시간 경과와 상태 변화를 표현하고 , 시간 흐름에 따른 공간적인 구조 변화를 연구하는 이론

라이프 게임처럼 칸(셀)을 이용하면 셀 오토마톤이라고 합니다.

 

오토마톤의 개념은 어떤 자극을 받아 반응을 나타내는 꼭두각시 인형(자동 기계)에서 유래했습니다.

인형이 어떤 상태를 기억하게 할 수 있고 , 자극을 받을 떄 마다 다른 반응를 보입니다. 이러한 꼭두각시 인형의 개념을 상태 기계 state machine라고 합니다.

유한 상태 기계 유한 상태를 갖는 상태 기계를 유한 오토마톤 또는 유한 상태기계라고 합니다.

 

접수 상태 accept state: 상태 전이 다이어그램은 시작점과 종료점이 정해져 있으며 종료점에서 끝난 상태

접수 상태에서 실행을 종료할 수 없다면 오류 등이 발생한 비정상 상태라는 뜻이다.

 

오토마톤과 언어 이론

오토마톤: 상태의 변화와 규칙을 나타낼 수 있으므로 언어의 구문 모델을 나타내는 데도 이용 할 수 있습니다.

언어 이론에서는 문자 집합을 알파벳이라고 하며 , 알파벳 안 문자 중복을 허용해 늘어 놓은 문자를 문자열이라고 합니다.

 

언어 이론 : 기호를 사용해 언어 정의나 언어 생성 규칙을 연구하는 것 

 

03. 마르코프 모델 

마르코프 모델: 확률에 기반을 두고 다양한 상태 변화를 표현하는 것 

상태 전이 다이어그램 상에서 상태를 바꿀 때 현재 상태만 다음 상태 변경에 영향을 준다. = 마르코프 과정

 

마르코프 모델의 주요 개념

상태의 변화 

마르코프 성질 Markov Property : 미래 상태의 조건부 활률 분포가 현재 상태에만 의존하며 이전 상태와는 관계 없는 특성을 말합니다.

활률과정: 오토마톤 개념(시간의 경과에 따른 변화)에 '상태 변화가 일어날 확률' 을 더한 것입니다. 확률 과정의 특징은 시간의 경과나 상태 변화를 연속성이 없는 유한한 값으로 나타낸다는 것입니다.

마르코프 과정 Markov Process:  마르코프 성질이 있는 확률 과정을 의미합니다.

이산 상태 마르코프 과정: 셀 오토마톤의 상태 변화를 나타내는 데 사용합니다. 유한 개의 자연수가 띄엄띄엄 흩어져 있는 상태로 존재 하는 값으로 나타냅니다.

마프코프 연쇄 (Markov chain) :이산 상태 마르코프 과정에 셀 오토마톤의 시간 (연속성 없는 시간으로 표현)를 결합한 셀 오토마톤의 확률 과정을 망합니다.

 

마르코프 모델의 예:

마프코프 모델은 상태에 따라 비용을 설정하고 상태가 변화할 때 비용을 더해서 누적 비용을 추정하는 상황에 응용할 수 있습니다.

예: 광고의 열람 효과를 포함한 가치를 정상분포로 계산하는 것  등이 있습니다.

 

현재 상태에서 다음 상태로 변화할 확률을 전이확률이라고 하며 모든 전이 확률을 행렬로 나타낸 것을 전이행렬이라고 합니다.

 

04. 상태 기반 에이전트 

입력 데이터로 유한 상태 기계 안 상태를 변화시켜 시스템이 동작하는 상태 기반(구동형) 에이전트를 설명합니다.

환경 자체도 에이전트 라고 생각 할 수 있음

에이전트는 객체지향 개념으로 설명할 수 있는 상태 패턴을 이용할 수 있음

 

게임 AI

에이전트: 게임에 존재하는 개별 상태 기계를 총괄하는 시스템 

소프터웨어 에이전트 특성

1) 자율성(autonomy)

에이전트는 사람이나 다른 사물의 직접적인 간선 없이 스스로 판단해 동작하고 , 행동이나 내부 상태의 제어 권한을 갖습니다.

2) 사회성(social ability)

에이전트는 에이전트 통신 언어을 사용해 사람과 다른 에이전트들 사이에서 상호작용할 수 있습니다.

3) 반응성(reactivity)

에이전트는 실세계, 그래픽 사용자 인터페이스를 통한 사용자 , 다른 에이전트들의 집합, 인터넷 같은 환경을 인식하고 그 안에서 일어나는 변화에 적절히 방응합니다.

4) 능동성(proactivity)

에이전트는 단순히 환경에 반응해 행동하는 것이 아니라 주도권을 갖고 목표 지향적으로 행동합니다.

5) 시간 연속성(temporal continuity)

에이전트는 단순히 한번 주어진 입력을 처리해 결과를 보여주고 종료하는 것이 아닙니다. 에이전트 실행 후 백그라운드에서 잠시 쉬는 데몬(demon)같은 프로세스 입니다.

6) 목표 지향성(goal-orientedness)

에이전트는 복잡한 고수준 작업을 실행합니다. 작업은 더 작은 세부 작업으로 나누며 처리 순서 결정 등의 책임을 에이전트가 집니다.

 

이용자가 어떤 동작을 실행한 결과로 상태 기계에 변화가 일어나는 것을 게임에서는 이벤트라고 합니다.

에이전트는 동작하는 상태일 때가 많다는 점에서 상태 기반(구동형) 에이전트 state-driven agent라고 합니다.

 

보드게임 : 에이전트를 실제로 이용할 수 있는 대표적인 사례입니다.

 

보드게임의 게임 이론

게임하면서 일어나는 모든 상태를 계산할 수 있으면 완전 정보 게임이라고 합니다.

또한 의사 결정자 2명이 대전하면서 유연에 좌우되는 일 없이 게임 진행 상태가 정해지므로 상태를 예측할 수 있어 2인 제로섬 zero sum유한 확정 완전 정보 게임이라고도 합니다.

게임이론 - 완전 정보 게임  - 2인 제로섬 유한 확정 완전 정보 게임

             - 불완전 정보 게임 - 완비 정보 게임

                                      - 불완비 정보 게임

 

복잡하게 구성된 에이전트 사용

 

 

 

 

 

 

 

 

 

 

 

 

 

 

출처 : 처음 배우는 인공지능

반응형

+ Recent posts