2018/10

    [Agent] Software Agent Architecture

    소프트웨어 에이전트 아키텍쳐에 대해 정리해보겠습니다. 에이전트 구조는 3개로 크게 나뉠 수 있습니다.Deliberative : 의도적인, 신중한Reactive : 반응하는Hybrid : Deliberative + Reactive용어 의미만 보아서 파악할 수 있는건 Hybrid밖에 없는 것 같네요. 하나씩 정리해보도록 하겠습니다. Deliberative AgentsDeliberative Agents는 명확하게 표현되어 질 수 있는 실세계의 상징적 모델이며 Symbolic reasoning을 통해 결정을 만들어 나가는 에이전트입니다. Sense-plan-act 를 통한 문제 해결방식으로 Deliberative 구조로 BDI, GRATE*, HOMER, Shoham 등이 유명합니다. Deliberative는 ..

    [Agent] Communication

    [Agent] Communication

    Communication between agents 에이전트들간의 커뮤니케이션을 알아보기 이전에 한 가지 용어를 정리하고자 합니다. 'Speech Act' 란 용어입니다. Speech Act는 한국어로 언어행위론 이라고 정의할 수 있습니다. 언어행위론이란 언어를 통해 이루어지는 행위를 말합니다. 나는 너를 용서한다 라고는 말하면 말로써 행위가 표현되듯 언어가 어떤 영향을 주는지에 대해 초점이 맞춰져 있습니다. 명령, 요구 등으로 나뉠 수 있죠. 그럼 이제 커뮤니케이션에 대해 정리해보겠습니다. 예를 들어서 살펴보죠. 개인비서 에이전트가 있다고 합니다. 이 에이전트에게 여러분은 김군과 저녁 약속을 잡아달라고 요청합니다. 그럼 이 에이전트를 어떠한 것들이 필요할까요? 간단히 생각해 보세요. 김군의 저녁 일정들..

    [Agent] MAS (Multi-agent System)

    MAS (Multi-agent System) 현재 세계의 시스템에선 하나의 agent로는 모든 처리를 할 수 없습니다. 그래서 각각의 기능을 담당하는 여러 agent를 생성하여 협업 또는 조율하게 만드는 방법을 사용하기도 합니다. 이번 글에서는 MAS, Multi-agent System에 대해 정리해보겠습니다. Multi-agent System (지금부턴 MAS라 칭하겠습니다.)은 시스템 내에 여러 agent를 가지고 있는 시스템입니다. 각 agent 간 커뮤니케이션을 통해 상호작용을 하게 되고, 서로 다른 작업을 하기에 "spheres of influence" 라고 불리는 자신만의 환경 영역을 가지고 있습니다. 즉 변화하는 환경에 대해 영향을 받거나 주는 환경이 다를 수 있습니다. 분산 AI 측면에서 ..

    [Agent] BDI Architect(Belief - Desire - Intention Architect)

    [Agent] BDI Architect(Belief - Desire - Intention Architect)

    Belief - Desire - Intention Architect BDI Architect는 Software Agent 분야에서 자주 사용되었던 구조입니다. 이 구조의 이름인 BDI 는 3가지 단어 입니다. Belief, Desire, Intention 이 3가지 단어의 앞자리를 따서 만들어졌습니다. 그럼 3가지 단어가 이 구조의 큰 요소일 텐데 구조를 정리해 가며 설명드리겠습니다. BDI Architect는 목표를 이루기 위해 순간, 순간 행해야할 행위를 결정하는 의사결정 프로세스입니다. BDI 구조는 reactive behavior와 goal-directed behavior가 조화를 이루는 구조로써 Agent는 그 목표를 달성하기 위해 최선을 다하면서도 그 목표가 여전히 유효한지, 달성할 수 있는지..

    표준출력에 텍스트 색상 입히기 (colorize printf format)

    1234567891011121314151617181920212223242526272829303132333435363738394041424344#ifndef __S_PRINT_FORMAT_H__#define __S_PRINT_FORMAT_H__ #define S_COLOR_RED "\x1b[31m"#define S_COLOR_GREEN "\x1b[32m"#define S_COLOR_YELLOW "\x1b[33m"#define S_COLOR_BLUE "\x1b[34m"#define S_COLOR_MAGENTA "\x1b[35m"#define S_COLOR_CYAN "\x1b[36m"#define S_COLOR_RESET "\x1b[0m" #define PRINT printf #define PRINT_RED(..

    메모리 모델 (FLATMEM, DISCONTIGMEM, SPARSEMEM)

    리눅스에서 사용 가능한 메모리 모델은 3가지 입니다. 각 메모리 모델에 대해 간단히 정리하겠습니다.3가지 모델의 차이는 물리 메모리 주소 범위와 어떻게 메모리 맵을 관리하는지에 따라 구별됩니다. 3가지의 모델은 FLATMEM, DISCONTIGMEM, SPARSEMEM 입니다.각 메모리 모델은 리눅스 커널 빌드 시 하나를 선택하여 빌드를 해야합니다. 각 메모리 특징에 대해 정리해 보겠습니다. FLATMEM우리나라 용어로 평면 메모리라고도 불립니다. UMA 시스템에서 많이 사용되며 메모리 주소가 연속되는 특성이 입니다. DISCONTIGMEM, SPARSEMEM과 달리 메모리 주소가 연속되어 있기 때문에 중간에 주소 사이의 홀이 없다는 장점이 있습니다. DISCONTIGMEM분리된 메모리 영역입니다. 분리..