KR101399199B1 - 소프트웨어 로봇의 유전자 코드 구성 방법 - Google Patents

소프트웨어 로봇의 유전자 코드 구성 방법 Download PDF

Info

Publication number
KR101399199B1
KR101399199B1 KR1020070071229A KR20070071229A KR101399199B1 KR 101399199 B1 KR101399199 B1 KR 101399199B1 KR 1020070071229 A KR1020070071229 A KR 1020070071229A KR 20070071229 A KR20070071229 A KR 20070071229A KR 101399199 B1 KR101399199 B1 KR 101399199B1
Authority
KR
South Korea
Prior art keywords
value
software robot
information
state
genetic code
Prior art date
Application number
KR1020070071229A
Other languages
English (en)
Other versions
KR20090007972A (ko
Inventor
이강희
김광춘
김종환
최승환
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070071229A priority Critical patent/KR101399199B1/ko
Priority to US12/173,905 priority patent/US20090024249A1/en
Publication of KR20090007972A publication Critical patent/KR20090007972A/ko
Application granted granted Critical
Publication of KR101399199B1 publication Critical patent/KR101399199B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]

Abstract

본 발명은 소프트웨어 로봇 장치가 사용자로부터 임의의 소프트웨어 로봇에 대응하는 유전자 코드의 저작을 요청받는 과정과, 상기 유전자 코드에 포함된 하나 이상의 유전자 정보와 연관된 다수의 직관 특성을 제공하는 과정과, 상기 다수의 직관 특성 중 사용자 입력에 따라 선택된 직관 특성의 특성값을 변경하는 과정과, 상기 선택된 직관 특성과 연관된 각 유전자 정보의 표현값을 미리 정해진 관련 변환식을 이용하여 상기 변경된 특성값에 적용하여 변경하는 과정을 포함한다.
Figure R1020070071229
소프트웨어 로봇, 유전자 코드, 교배

Description

소프트웨어 로봇의 유전자 코드 구성 방법{METHOD FOR CONFIGURING GENETIC CODE IN SOFTWARE ROBOT}
본 발명은 유전자 로봇(Genetic Robot)에 관한 것으로, 특히 유전자 로봇 중 소프트웨어 로봇의 유전자 코드 구성 방법에 관한 것이다.
일반적으로 유전자 로봇이라는 것은, 자신의 고유한 유전자 코드(genetic code)를 가지는 인공 생명체(artificial creature)나 소프트웨어 로봇(software robot : Sobot) 또는 일반적인 로봇(robot) 을 말하는 것이다. 그리고 로봇 유전자 코드라는 것은 다수의 인공 염색체(artificial chromosome)들로 구성된 하나의 로봇 지놈(robot genome)을 의미한다. 여기서 소프트웨어 로봇이라는 것은 네트워크를 통해 이동하면서 때론 독립적인 소프트웨어 에이전트로서 사용자와 상호작용을, 때론 센서 네트워크와 하드웨어 로봇을 연동하는 로봇의 지능부로서 동작할 수 있는 소프트웨어적인 인공 생명체를 말한다. 그리고 로봇이라는 것은 물리적 환경에서 통상적인 센서(sensor), 지능(intelligence), 행동(behavior)의 요소를 지닌 일반적으로 통용되는 의미의 로봇을 의미한다. 따라서 소프트웨어 로봇이 이러한 로 봇의 지능부를 대체할 경우 본 발명이 일반적인 로봇에도 똑같이 유효함은 물론이다. 로봇 지능부를 대체하는 방법은 시간과 공간을 초월한 유비쿼터스 환경에서 네트워크나 다른 저장 매개체를 통해 임의로 이루어지거나, 로봇 제작시 임베디드화되어 가능할 수 있다.
상기 소프트웨어 로봇에 정의된 유전자 코드, 즉, 다수의 인공 염색체들은 로봇 외부의 환경과 상호작용을 하면서 로봇 내부의 동기, 항상성, 감정 상태 등으로 구성된 내부 상태 변화와 그에 따른 발현 행동을 결정짓는 로봇 고유의 개성 또는 인격(robot personality)을 정의하게 된다. 여기서 인공 생명체 및 동기(motivation), 항상성(homeostasis), 감정(emotion), 행동(Behavior) 등의 정의는 하기 표 1에서 보이고 있는 바와 같다.
Figure 112007051673441-pat00001
그리고 상기 인공 염색체라는 것은, 필수 요소 관련 유전자 정보와 내부 상태 관련 유전자 정보, 그리고 행동 결정 관련 유전자 정보를 포함한다. 여기서 필수 요소 관련 유전자 정보라는 것은 내부 상태 변화와 외부 행동 발현에 큰 영향을 미치는 필수 파라미터들을 말하는 것이고, 내부 상태 관련 유전자 정보라는 것은 로봇에게 가해지는 외부 입력에 연관되어 로봇의 내부 상태에 영향을 미치는 파라미터들을 말하는 것이다. 그리고 행동 결정 관련 유전자 정보라는 것은, 현재 결정된 내부 상태에 따라, 상기 내부 상태와 관련된 외부 행동을 결정짓는 파라미터들을 말하는 것이다.
내부 상태라는 것은 동기, 항상성, 감정등의 상태를 의미한다. 즉, 로봇의 내부 상태는 하기 표2에서 보이고 있는 바와 같이 각각의 내부 상태와, 각 외부 자극에 따른 내부 상태의 파라미터들의 파라미터 값, 즉 내부 상태 관련 유전자 정보에 의해 결정되어 질 수 있다.
Figure 112007051673441-pat00002
이는 행동 결정 관련 유전자 정보의 경우도 마찬가지이다. 다만 행동 결정 관련 유전자 정보의 경우는 상기 외부 자극 대신, 다양한 발현 가능한 행동들이 포함된다. 즉, 행동 결정 관련 유전자 정보의 경우 각각의 내부 상태에 대해 특정 행동에 대한 파라미터들, 즉 동기, 항상성, 감정과 같은 내부 상태의 파라미터 값들에 의해 각각의 행동이 발현될 수 있도록 하는 파라미터들이 포함된다.
또한 이러한 각각의 내부 상태 변화와 외부 행동 발현에 큰 영향을 미치는 필수 파라미터들로서, 휘발성 여부, 초기값, 평균값, 수렴값 및 시간에 따른 감쇄값과, 특정 시간에 의해 특별히 정해지는 특정값등이 있을 수 있다. 이러한 필수 파라미터들은 별도로 필수 요소 관련 유전자 정보로 구성될 수 있다. 따라서 이러한 필수 요소 관련 유전자 정보는, 각각의 내부 상태, 즉 동기, 항상성, 그리고 감정의 내부 상태들에 따른 휘발성 여부, 초기값, 평균값, 수렴값, 감쇄값 그리고 특정값등을 포함한다. 이처럼 로봇 지놈은, 내부 상태들과, 각 내부 상태에 대응하는 내부 상태 변화 및 외부 행동 발현에 필수적인 요소들의 파라미터들로 이루어지는 필수 요소 관련 유전자 정보, 그리고 다양한 외부 자극들과, 그 외부 자극들에 대응되는 각 내부 상태들의 파라미터들로 이루어지는 내부 상태 관련 유전자 정보, 그리고 다양한 발현 행동들과, 그 발현 행동들에 대응되는 각 내부 상태들의 파라미터들로 이루어지는 행동 결정 관련 유전자 정보들로 이루어진다. 즉, 유전자 코드는, 하기 표 3에서 보이고 있는 바와 같이 각 내부 상태들과, 그 내부 상태에 각각 대응되는 필수적인 요소들, 외부 자극들, 그리고 발현 행동들에 대한 유전자 정보를 2차원적 매트릭스(Matrix)를 통해 표현할 수 있다.
Figure 112007051673441-pat00003
따라서 현재 소프트웨어 로봇 플랫폼은 현재의 내부 상태, 즉 동기, 항상성, 감정등의 상태에 따라 특정 발현 행동을 결정하고 이에 따른 행동을 구현한다. 예를 들어 현재 소프트웨어 로봇의 내부 상태가 배가 고픈 상태라면, 소프트웨어 로봇은 이에 따라 무언가를 달라고 보채는 행동을 결정하고 이에 따라 행동한다. 따라서 소프트웨어 로봇은 실제 생명체와 같게 행동하는 것으로 구현될 수 있다. 이러한 특성을 가지는 소프트웨어 로봇은 유비쿼터스 환경 내에서 시간, 공간적 제약 없이 사용자에게 서비스를 제공하며, 이에 따라 네트워크 상을 자유롭게 이동하기 위해 소프트웨어 로봇은 전이 가능한 기기의 IP 주소를 가지게 된다.
상기한 바와 같이, 종래의 소프트웨어 로봇은 감정을 형성하고 행동을 위해 내부 상태, 즉, 행동을 결정하게 되는 동기와, 생존을 유지하기 위한 항상성 및 행동 선택과 감정을 표정으로 표현하는 감정을 각각 처리하여 최종적인 행동을 선택한다. 이에 따라, 종래의 소프트웨어 로봇을 구현하는 소프트웨어 로봇 장치의 구성은 외부 환경을 인식하는 인식부, 소프트웨어 로봇의 감정과 같은 내부 생태를 나타내는 내부 상태부, 외부 정보와 내부 상태를 이용하여 소프트웨어 로봇의 행동을 결정하는 행동 결정부, 외부 상태에 따라 소프트웨어 로봇을 적응시키는 학습부, 그리고 실제로 소프트웨어 로봇의 행동을 구현하는 행동 구현부로 이루어진다. 소프트웨어 로봇 장치는 다수의 소프트웨어 로봇의 유전자 코드를 저장할 수 있으며, 이에 따라 가상공간 상에 다수의 소프트웨어 로봇을 구현할 수 있다. 소프트웨어 로봇 장치는 각각의 소프트웨어 로봇과 관련하여 동일한 알고리즘을 통해 센서 인식, 내부 상태 변환, 행동 발현을 수행하지만, 그 과정에 사용되는 각자의 특성값, 즉, 각 소프트웨어 로봇의 유전자 코드에 따라 같은 상황에서도 다른 결과를 수행하게 된다. 소프트웨어 로봇의 유전자 코드에 따라 각 소프트웨어 로봇의 개성과 성격이 결정되는 것이다. 종래에는 이러한 소프트웨어 로봇의 개성을 제작하는 알고리즘이나 프레임워크 자체가 거의 존재하지 않았다. 일반적으로 소프트웨어 로봇을 제공하는 사업체나 소프트웨어 로봇의 초반 제작시 개발자에 의해 주 개성, 즉, 유전자 코드가 결정될 뿐이었다. 또한 사용자가 소프트웨어 로봇과 직접 상호작용하면서 이들의 성격의 일부를 학습시키는 것은 가능하지만, 소프트웨어 로봇의 성격 전체를 직접 변경 설계한다는 것은 거의 불가능에 가까웠다. 이는 사용자가 소프트웨어 로봇의 내부 구조를 모르기 때문이었고, 알더라도 각 유전자 정보의 파라미터들의 선형 또는 비선형적으로 복잡하게 얽혀 있어 가상 생명체 고유의 개성을 잃어버려 생명체의 특성을 잃어버리게 되기 때문이다.
본 발명은 직관적이고 사용하기 편리한 소프트웨어 로봇의 유전자 코드를 변경할 수 있는 방법을 제공한다.
본 발명은 소프트웨어 로봇의 유전자 코드 구성 방법에 있어서, 소프트웨어 로봇 장치가 사용자로부터 임의의 소프트웨어 로봇에 대응하는 유전자 코드의 저작을 요청받는 과정과, 상기 유전자 코드에 포함된 하나 이상의 유전자 정보와 연관된 다수의 직관 특성을 제공하는 과정과, 상기 다수의 직관 특성 중 사용자 입력에 따라 선택된 직관 특성의 특성값을 변경하는 과정과, 상기 선택된 직관 특성과 연관된 각 유전자 정보의 표현값을 미리 정해진 관련 변환식을 이용하여 상기 변경된 특성값에 적용하여 변경하는 과정을 포함한다.
그리고 소프트웨어 로봇 장치가 임의의 소프트웨어 로봇의 유전자 코드를 한 쌍의 부모 개체 소프트웨어 로봇의 유전자 코드로 설정하는 과정과, 상기 각 부모 개체 소프트웨어 로봇의 유전자 코드에 포함된 유전자 정보들 중 , 서로 대응하는 각 유전자 정보를 구성하는 한 쌍의 상동 염색체를 설정된 유전자 조합 법칙에 따라 조합하여 상기 대응하는 각 유전자 정보를 새롭게 구성하는 과정과, 상기 새롭게 구성된 각 유전자 정보를 구성하는 한 쌍의 상동 염색체의 염색체값을 설정된 유전 법칙에 따라, 상기 각 유전자 정보의 표현값으로 변환하는 과정과, 상기 새롭게 구성된 각 유전자 정보의 표현값에 따라 구현되는 자식 개체의 소프트웨어 로봇 을 생성하는 과정을 포함한다.
본 발명은 사용자가 편리하고 직관적으로 소프트웨어 로봇의 유전자 코드를 구성할 수 있게 하며, 소프트웨어 로봇간의 교배를 통해 다양한 소프트웨어 로봇의 유전자 코드를 구성할 수 있게 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다. 도면에서 동일한 구성요소들에 대해서는 비록 다른 도면에 표시되더라도 가능한 한 동일한 참조번호 및 부호로 나타내고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다.
일반적으로 소프트웨어 로봇이라는 것은 자신의 고유한 유전자 코드(genetic code)를 가지는 인공 생명체(artificial creature)로서, 네트워크를 통해 이동하면서 때론 독립적인 소프트웨어 에이전트로서 사용자와 상호작용을, 때론 센서 네트워크와 하드웨어 로봇을 연동하는 로봇의 지능부로서 동작할 수 있는 소프트웨어적인 인공 생명체를 말한다. 그리고 로봇이라는 것은 물리적 환경에서 통상적인 센서(sensor), 지능(intelligence), 행동(behavior)의 요소를 지닌 일반적으로 통용되는 의미의 로봇을 의미한다. 따라서 소프트웨어 로봇이 이러한 로봇의 지능부를 대체할 경우 본 발명이 일반적인 로봇에도 똑같이 유효함은 물론이다. 로봇 지능부 를 대체하는 방법은 시간과 공간을 초월한 유비쿼터스 환경에서 네트워크나 다른 저장 매개체를 통해 임의로 이루어지거나, 로봇 제작시 임베디드화되어 가능할 수 있다.
상기 유전자 코드는 각각의 소프트웨어 로봇에 대응하여 고유하게 정의 되며, 다수의 인공 염색체(artificial chromosome)들로 구성된 하나의 로봇 지놈(robot genome)을 의미한다. 본 발명에 따라 유전자 코드는 소프트웨어 로봇의 내적 상태와 관련된 성격 유전자와 소프트웨어 로봇의 외형과 관련된 외형 유전자로 분류할 수 있다. 상기 외형 유전자는 소프트웨어 로봇의 외적 형태를 결정하는 다수의 외형 관련 유전자 정보로 구성된다. 외형 관련 유전자 정보는 예를 들어, 얼굴 관련 유전자 정보, 눈 관련 유전자 정보 등이 있을 수 있다. 상기 성격 유전자는 소프트웨어 로봇 외부의 환경과 상호작용을 하면서 소프트웨어 로봇 내부의 동기, 항상성, 감정 상태 등으로 구성된 내부 상태 변화와 그에 따른 발현 행동을 결정짓는 로봇 고유의 개성 또는 인격(robot personality)을 정의하게 된다. 상기 성격 유전자는 필수 요소 관련 유전자 정보와 내부 상태 관련 유전자 정보, 그리고 행동 결정 관련 유전자 정보를 포함한다. 필수 요소 관련 유전자 정보라는 것은 내부 상태 변화와 외부 행동 발현에 큰 영향을 미치는 필수 파라미터들을 말하는 것이고, 내부 상태 관련 유전자 정보라는 것은 로봇에게 가해지는 외부 입력에 연관되어 로봇의 내부 상태에 영향을 미치는 파라미터들을 말하는 것이다. 그리고 행동 결정 관련 유전자 정보라는 것은, 현재 결정된 내부 상태에 따라, 상기 내부 상태와 관련된 외부 행동을 결정짓는 파라미터들을 말하는 것이다. 이러한 성격 유전자 는, 상기 표 3에서 보이고 있는 바와 같이 각 내부 상태들과, 그 내부 상태에 각각 대응되는 필수적인 요소들, 외부 자극들, 그리고 발현 행동들에 대한 유전자 정보를 2차원적 매트릭스(Matrix)를 통해 표현할 수 있다.
그리고 본 발명에 따라 성격 유전자 및 외형 유전자에 포함되는 각 유전자 정보의 파라미터값을 표현값이라 하며, 상기 표현값이 소프트웨어 로봇의 외형, 내부 상태 변환, 행동 발현 등에 영향을 미친다. 다시 말해, 소프트웨어 로봇 장치는 각각의 소프트웨어 로봇과 관련하여 동일한 알고리즘을 통해 외형 구형, 센서 인식, 내부 상태 변환, 행동 발현을 수행하지만, 각 소프트웨어 로봇 고유의 유전자 코드에 포함된 유전자 정보의 표현값에 따라 서로 다른 결과 값을 도출해내는 것이다.
그리고 상기 각 유전자 정보는 본 발명의 실시예에 따라 한 쌍의 상동 염색체로 구성될 수 있으며, 상기 상동 염색체는 염색체값을 가진다. 그리고 본 발명에 따라 하나의 유전자 정보를 구성하는 두 개의 상동 염색체의 각 염색체값은 동일할 수도 있고, 다를 수도 있다. 또한 본 발명에 따라 임의의 유전자 정보의 표현값과 관련된 염색체값들은 상호 연관 관계가 설정되며, 상기 상호 연관 관계를 나타낸 알고리즘을 유전 법칙이라고 한다. 다시 말해, 각 상동 염색체의 염색체값에 따라 관련 유전자 정보의 표현값이 결정될 수 있고, 역으로 표현값이 변경되면 관련 상동 염색체의 염색체값도 변경될 수 있으며, 이때, 염색체값들과 표현값 간에 변경 방식을 나타내는 유전 법칙은 다양하게 설정할 수 있다. 예를 들어, 유전 법칙을 각 상동 염색체의 염색체값의 평균이 표현값이 되도록 하는 중간 법칙으로 설정할 수도 있고, 멘델의 법칙, 독립의 법칙, 분리의 법칙, 우열의 법칙 등과 같은 생물학적 유전 법칙을 응용하여 상기 유전 법칙을 구성할 수도 있다. 예를 들어, 유전자 정보의 종류에 따라 우성 상동 염색체와 열성 상동 염색체를 지정하여 우성 상동 염색체의 염색체값을 표현값으로 결정하도록 유전 법칙을 설정할 수도 있다. 상기한 예에서는 편의상 상동 염색체의 염색체값에 따라 표현값이 결정되는 것으로 기재하였으나, 표현값이 변경되면 관련 염색체값 또한 유전 법칙에 따라 변경될 수 있다. 즉, 염색체값의 평균으로 표현값을 결정하는 경우 표현값의 절반이 각 상동 염색체의 염색체값으로 결정되는 것이며, 우열의 법칙을 응용한 경우 변경된 표현값이 우성 상동 염색체의 염색체값이 되는 것이다.
한편, 소프트웨어 로봇은 그 특성상 가상공간 상에 존재한다. 본 발명에 따라 소프트웨어 로봇이 존재하는 가상공간에는 한 개 이상의 소프트웨어 로봇이 존재할 수 있으며, 소프트웨어 로봇 이외에도 가상공간을 표현할 수 있는 다양한 구성품들, 예를 들어, 소품, 음식, 장난감, 의자와 같은 구성품들이 존재할 수 있다. 이러한 일예를 도9에 도시하였다. 도9는 본 발명의 일 실시예에 따른 가상공간(300)과 사용자 메뉴 화면(310)을 나타낸 도면이다. 도10을 참조하여, 가상공간 안에는 다수의 지점(301a,301b,301c)과, 다수의 장난감(305a,305b)과, 다수의 음식(307a,307b,307c)과, 다수의 소프트웨어 로봇(303a,303b,303c)등을 포함할 수 있다. 이에 따라 본 발명에서는 가상공간 상에 존재하는 소프트웨어 로봇과 모든 구성품들을 지칭하는 용어로서 객체(object)를 이용한다. 본 발명에 따라 소프트웨어 로봇 장치는 상기 가상공간을 구성하여 사용자에게 제공할 수 있고, 상기 가상공간 상에 존재하는 다수의 객체를 내부 로직에 따라 또는 사용자 입력에 대응하여 제어할 수 있는 장치이다. 상기 가상공간 상에는 환경적 요인의 변화나 객체들의 이동 또는 객체 간의 상호 작용에 따라, 환경적 요인 정보 및 객체들의 위치 정보를 포함하는 환경 정보와 객체 간의 상호 작용 정보가 발생할 수 있다. 상기 환경적 요인이란 가상공간의 환경적 특징을 나타내는 요인으로, 예를 들어, 온도, 습도, 시간, 일조량, 소리, 공간적 특징 등을 포함할 수 있다. 상기 객체 위치 정보란 상기 가상공간 상에서 각 객체들의 고정된 위치 또는 이동된 현재 위치를 나타내는 정보이다. 상기 객체 간의 상호 작용은 객체 간에 직접적으로 이루어지는 상호 작용에 관한 정보로서, 일반적으로 하나의 소프트웨어 로봇이 다른 객체와 상호 작용을 하는 경우 발생하는 정보가 될 수 있다. 일예로, 소프트웨어 로봇이 음식을 먹는 경우, a라는 소프트웨어 로봇이 b라는 소프트웨어 로봇을 때리는 경우 등이 있을 수 있다.
본 발명에 따라 소프트웨어 로봇 장치는 상기 환경정보를 환경정보 그대로 상기 가상공간 상에 존재하는 모든 소프트웨어 로봇에 적용시킬 수도 있고, 이벤트로서 관련 소프트웨어 로봇에게만 적용시킬 수도 있다. 소프트웨어 로봇 장치는 상기 환경적 요인과 객체 위치 정보의 경우 일반적으로 특정 함수를 통해 그대로 가상공간 상의 모든 소프트웨어 로봇으로 전달하며, 이는 소프트웨어 로봇 장치의 센서부에 의해 감지되어 소프트웨어 로봇에 적용될 수 있다. 그리고 상기 객체 간의 상호 작용 정보는 이벤트로서 각 소프트웨어 로봇에게 전달될 수 있다. 상기 이벤트는 특정 함수로 표현할 수 있다.
이벤트는 가상공간 상에서 발생한 사건을 관련 소프트웨어 로봇에게 적용시키기 위한 것으로서, 상기 사건과 관련된 객체의 식별 정보, 즉, 사건을 행하는 주체 객체 식별 정보(who)와, 사건에 영향을 받는 대상 객체 식별 정보(whom)와, 상기 사건과 관련된 동작 종류 정보(what), 상기 동작으로 인해 발생하는 효과 정보(parameter)를 포함한다. 이때, 상기 효과 정보는 주체 객체에게 유효한 효과를 포함한다. 그리고 상기 이벤트는 서로 다른 객체간의 이루어지는 상호 작용에 관한 것인지, 또는 하나의 객체 안에서 이루어지는 것인지에 따라 외적 이벤트와 내적 이벤트로 구분할 수 있다. 상기 외적 이벤트는 서로 다른 객체간의 상호 작용을 나타내는 이벤트로서, 주체 객체 식별 정보와 대상 객체 식별 정보가 동일하지 않는 경우이다. 예를 들어, "소프트웨어 로봇이 음식을 먹는다."라는 사건의 경우 주체 객체는 "소프트웨어 로봇"이 되고, 대상 객체는 "음식"이 되고, 동작의 종류는 "먹는다"이고, 동작으로 인해 발생하는 효과는 "배부름, 행복" 등이 될 수 있다. 만약 특정 사건과 관련된 객체가 모두 소프트웨어 로봇이라면, 각각의 소프트웨어 로봇에 대응하는 외적 이벤트가 생성될 것이다.
내적 이벤트는 소프트웨어 로봇이 어떤 행동의 결과로 인해 내부적으로 발생하는 영향을 처리하기 위한 것으로, 주체 객체 식별 정보와 대상 객체 식별 정보가 동일한 경우이다. 내적 이벤트의 예로는, "소프트웨어 로봇이 걷는다."라는 사건을 들 수 있으며, 이때 주체 객체와 대상 객체는 "소프트웨어 로봇"이 되고, 동작의 종류는 "걷는다"가 되고, 동작으로 인해 발생하는 효과는 "피곤함"등이 될 수 있다. 소프트웨어 로봇장치는 이러한 이벤트의 발생을 센서부 또는 신체 상태부등을 통해 감지할 수 있으며, 해당 소프트웨어 로봇에 적용시킨다.
본 발명의 일 실시예에 따라 상기 환경 정보는 다음 표4, 표5, 표6과 같은 변수와 함수들을 이용하여 표현할 수 있으며, 관련 소프트웨어 로봇에 적용시킬 수 있다. 표4는 가상공간 상에 존재하는 객체와 관련된 객체 클래스의 멤버 함수를 나타낸 것이고, 표5는 가상공간 상에서 발생할 수 있는 환경 요인과 관련된 환경 요인 클래스 멤버 변수를 나타낸 것이고, 표6은 환경 요인 클래스의 주요 함수와 기능을 나타낸 것이다.
변수명 설명 비고
m_type 객체 형태를 구분하는 값 음식, 장난감, 소프트웨어 로봇
m_id 객체 구별을 위한 고유 번호
m_name 객체의 이름
m_size 객체의 크기
m_pos 객체의 위치
m_dir 객체의 방향
m_calorie 음식에 보유된 에너지 음식 타입
m_taste 음식에 보유된 맛 음식 타입
m_sound 객체의 소리 성질 척도 장난감 타입
변수명 설명
m_EventSet 가상공간에 존재하는 객체 사이에 발생하는 이벤트 집합
m_EnvironmentOutputData 소프트웨어 로봇에게 적용되는 환경 요인 정보
m_objectN 가상공간에 존재하는 객체의 수
m_object[] 객체의 배열
m_creatureN 가상 환경에 존재하는 소프트웨어 로봇의 수
m_creature[] 소프트웨어 로봇의 배열
주요함수 설명
InitEnvironment 가상공간에 존재하는 객체를 초기화 한다.
ShowEnvironment 적절한 사용자 입출력을 구현된다.
UpdateEnvironmentInformation 화면에 출력된 소프트웨어 로봇의 정보가 사용자에 의해 바뀔 경우 이를 해당 소프트웨어 로봇 관련 정보에 업데이트한다.
UpdateSensor 환경 요인 데이터를 각각의 소프트웨어 로봇에 전달한다.
UpdateEvent 외적 이벤트를 각각의 소프트웨어 로봇에 전달한다.
EventReset 외적 이벤트를 초기화한다.
CreatureActivation 소프트웨어 로봇을 실행시킨다.
AddEventFromCreature 새롭게 이벤트를 발생시킨다.
본 발명에 따라 상기한 특징을 가지는 소프트웨어 로봇 장치 도1에 도시된 바와 같이 구성될 수 있다. 상기한 바와 같이 하나의 소프트웨어 로봇 장치가 제공하는 가상공간 상에는 다수의 소프트웨어 로봇이 존재할 수 있으며, 각각의 소프트로봇에 대한 관리 및 제어는 동일하게 이루어질 수 있다. 도1은 본 발명의 일 실시예에 따른 소프트웨어 로봇 장치의 구성을 나타낸 도면이다. 도1을 참조하여, 소프트웨어 로봇은 신체 상태부(Physical State)(10), 인지부(Perception)(20), 감정 상태부(Emotion State)(30), 행동 관리부(Behavior Manager)(40), 센서부(Sensor)(80), 단기 메모리(Short-term Memory)(70), 에피소드 메모리(Episodic Memory)(60), 행동 구현부(Actuator)(50), 블랙보드(Black board)(90), 유전자 코드 저작부(110), 메모리(120)를 포함한다.
소프트웨어 로봇 장치는 상기한 신체 상태부(10), 인지부(20), 감정 상태부(30), 행동 관리부(40), 센서부(80), 행동 구현부(50)와 같이 다양한 모듈을 구비하고 있으며, 각각의 모듈들이 약속된 데이터를 주고받으면서 서로 관련성을 갖게 된다. 때문에 복잡한 관련성을 통일하지 않으면 구현 단계에서 각 관계마다 주고받을 자료형과 방법 등을 모두 정의해야하는 불편이 있다. 상기 블랙보드(90)는 이러한 불편함을 개선하기 위한 것으로 다양한 모듈들이 공유하는 구조이며, 다양한 정보 자원을 통합하는 수단으로 사용된다. 이 구조는 여러 사람이 복잡한 문제를 해결하기 위해서 서로에게 필요한 정보를 칠판에 적어서 공유하는 것과 같은 개념이다. 중앙에 칠판이라고 할 수 있는 공통의 데이터 영역이 존재하여 여러 개의 모듈로부터 제공되는 정보가 통합되는 것이다. 블랙보드(90)는 CBlackboard 클래스로 구현되었다. CBlackboard 클래스는 표 7에 나타난 다양한 자료 구조를 갖고 있으며 각각의 자료 정보는 해당 Put 함수와 Get 함수를 통해 가상 생명체를 구성하는 각각의 모듈에 제공되거나 각각의 모듈로부터 갱신된다.
Structure 설명
환경값(Environment Value)(91) 소프트웨어 로봇에게 전달되는 가상 환경 정보
외적 이벤트(External Event)(92) 가상공간에서 일어나는 사건 정보
내적 이벤트(Internal Event)(93) 소프트웨어 로봇 내부에서 일어나는 사건 정보
센서값(Sensor Value)(94) 소프트웨어 로봇에 감지된 가상공간 정보
신체 상태값(Physical Value)(95) 소프트웨어 로봇의 육체적인 상태 값
인지값(Percept Value)(96) 소프트웨어 로봇의 인지 정보
감정 상태값(Emotion Value)(97) 소프트웨어 로봇의 지배 감정 값
행동 객체값(Behavior+Object)(98) 발현되기 위해 선택되어진 행동과 관련 Object
센서 리스트(Sensor List)(99) 소프트웨어 로봇과 관련하여 존재하는 센스 리스트
신체 상태 리스트(Physical State List)(400) 소프트웨어 로봇과 관련된 모든 신체 상태 리스트
인지 리스트(Percept List)(101) 소프트웨어 로봇과 관련된 모든 인지 리스트
감정 상태 리스트(Emotion List)(102) 소프트웨어 로봇에 관련된 모든 감정 리스트
행동 리스트(Behavior List)(103) 소프트웨어 로봇에 관련된 모든 행동 리스트
소프트웨어 로봇 장치에 구비되는 메모리는 크게 단기 저장 메모리(Short-term Memory)와 장기 저장 메모리(Long-term Memory)와 워킹 메모리로 구분할 수 있는데, 상기 단기 메모리(70)가 단기 저장 메모리에 속하며, 상기 에피소드 메모리(60)가 장기 저장 메모리에 속한다. 그리고 상기 메모리(120)가 워킹 메모리에 해당한다. 단기 메모리(70)는 최근에 발생한 정보만을 정해진 짧은 시간 동안만 저장하며, 일부는 삭제하고, 일부는 장기 저장 메모리에 이전한다. 본 발명의 실시예에서 단기 메모리(70)는 소프트웨어 로봇의 주변 환경에 대한 정보를 저장한다.
센서부(80)는 환경 정보, 즉, 블랙보드(90)의 환경값(91)과, 외적 이벤트, 즉, 블랙보드(90)의 외적 이벤트(92)를 입력 정보로 사용하여, 내부의 센서 데이터를 업데이트하고, 소프트웨어 로봇에 영향을 미치는 센서 데이터를 센서값(94)으로 하여 블랙 보드(90)로 출력한다. 가상공간 상의 모든 정보는 환경 정보와 외적 이벤트 형태로 소프트웨어 로봇에 적용된다. 하지만 가상공간 상에서 현재 소프트웨어 로봇의 위치나 능력에 따라 감지될 수 없는 정보들이 있을 수 있다. 때문에 센서부(80)는 감지된 정보 중 현재 소프트웨어 로봇이 감지할 수 있는 정보만을 소프트웨어 로봇에 적용될 수 있도록 하는 필터 역할을 한다. 예를 들어 소프트웨어로봇의 시야 밖에 있는 객체의 정보는 센서값(94)에 포함되지 않으며, 외적 이벤트 중 소프트웨어 로봇과 관련 없는 이벤트 역시 처리되지 않는다.
상기 신체 상태부(10)는 블랙보드(90)의 외적 이벤트(92)와 내적 이벤트(93)와 환경 정보를 참조하여, 소프트웨어 로봇의 육체적 상태를 변경하여 신체 상태 데이터를 갱신하고, 최종 값을 신체 상태 값(95)으로 블랙보드(90)로 출력한다. 이때, 각각의 외적 이벤트(92)와 각각의 내적 이벤트(93)와 각각의 환경 정보와 관련되는 신체 상태와, 관련 신체 상태의 상태값의 변화 정도는 각 소프트웨어 로봇의 유전자 코드에 포함되는 유전자 정보에 의해 미리 정해진다. 상기 신체 상태의 예로서는 하기 표 8과 같이 섭취량, 에너지, 배설욕구, 활동력, 건강상태, 육체 성장도 등을 포함할 수 있다.
State 설명 영향
섭취량(Stomach) 소화가 되기 전 섭취된 음식의 양 배고픔에 영향을 준다.
에너지(Energy) 보유하고 있는 에너지 크기 소화 활동 여부에 영향을 준다.
배설욕구(Wastes) 배설해야 하는 배설물의 양 배설에 영향을 준다.
활동력(Activity) 활동력 피곤함에 영향을 준다.
건강상태(Health) 건강 상태 활동력에 영향을 준다.
육체 성장도(Growth) 육체적 성장 정도 가상 생명체 외형에 영향을 준다.
상기 인지부(20)는 소프트웨어 로봇이 가상공간의 환경 정보와 신체 상태를 인지한 결과를 관리하는 모듈로서, 블랙보드(90)의 센서값(94)을 통해 외부 환경을 인지하고, 신체 상태값(95)을 통해 소프트웨어 로봇의 내부 상태를 인지하고, 인지 데이터를 갱신하고, 그 결과를 인지 상태값(96)을 블랙 보드(90)로 출력한다. 이때, 각각의 센서값과 관련된 인지 상태와, 각각의 신체 상태와 관련된 인지 상태는 미리 정해져 있다. 이러한 인지부(20)와 블랙 보드(90) 간의 관계를 도4에 도시하였다. 예를 들어, 센서부(80)가 100 크기의 힘으로 맞았다(Hit)는 정보를 넘겨주면 "아프다", 보유 에너지가 10보다 작아지면 "배고프다"라는 인지가 이루어질 수 있다. 본 발명에서 인지 상태값(96)은 두 가지 값으로 표현된다.
Figure 112007051673441-pat00004
Figure 112007051673441-pat00005
는 각각 해당 인지 상태에 대한 긍정적 인지와 부정적 인지를 의미한다. 일반적인 경우 다음 수학식 1과 같은 특성을 갖는다.
Figure 112007051673441-pat00006
예를 들어, 인지 상태가 "배고픔"인 경우, 배고픔은 긍정적 인지이고, 배부 름은 부정적 인지일 수 있으며,
Figure 112007051673441-pat00007
는 배고픔을 나타내며
Figure 112007051673441-pat00008
는 배부름을 나타낸다. 본 발명의 일 실시예에 따라 인지 상태의 종류는 하기 표9와 같이 구성될 수 있다.
State 설명
밝기(Light) 가상 환경의 밝기
소리(Sound) 가상 환경에서 발생하는 소리의 크기
맛(Taste) 먹는 음식의 맛 정도
배고픔(Hunger) 배고픔 정도
피곤함(Fatigue) 피곤한 정도
타격(Hit) 가상 환경에서 발생하는 사건에 의해 가상생명체가 맞는 정도
쓰다듬(Pat) 가상 환경에서 발생하는 사건에 의해 가상생명체가 쓰다듬어지는 정도
인지부(20)는 동일한 자극이 연속해서 들어올 경우 감도(sensitivity)를 변화시키는 기능이 구현되어 있다. 감도는 각 자극마다 하나씩 설정이 되어 있으며, 자극을 느끼는 정도를 나타내며, 각 인지 상태를 변경시키는 정도에 영향을 미친다. 상기 감도의 크기는 각 자극마다 다르게 설정할 수 있으며, 동일 감도의 연속적인 발생 횟수에 따라 적응적으로 감도의 크기가 변화하도록 설정할 수도 있다. 자극이 연속해서 들어올 경우 자극의 감도가 점점 줄어들어 크기가 0까지 변화한다. 자극이 일정기간 들어오지 않으면 점차 원래의 감도를 회복한다.
감정 상태부(30)는 소프트웨어 로봇의 감정 상태를 관리하는 모듈로서, 블랙보드(90)의 인지 상태값(96)을 참조하여 감정 상태를 변경하여 감정 상태 데이터를 갱신하고, 그 결과를 감정 상태값(97)으로 블랙 보드(90)로 출력한다. 이때, 인지 상태값의 종류, 즉, 특정 인지 상태에 관련되는 감정 상태는 미리 정해져 있다. 인지 상태값(96)을 이용하여 각 감정 상태를 변경하는 것은 하기 수학식2와 같이 이루어질 수 있다.
Figure 112007051673441-pat00009
Figure 112007051673441-pat00010
는 현재 감정 수치를,
Figure 112007051673441-pat00011
는 변화된 감정 수치를 뜻한다.
Figure 112007051673441-pat00012
는 아무런 자극이 없을 때 감정이 수렴하는 기본 수치를 나타낸다. 이때 수렴하는 속도를 결정하는 상수가
Figure 112007051673441-pat00013
이다.
Figure 112007051673441-pat00014
,
Figure 112007051673441-pat00015
는 인지 상태값(96)의 TRUE, FALSE에 대한 퍼지(fuzzy)값이며,
Figure 112007051673441-pat00016
,
Figure 112007051673441-pat00017
는 인지 상태값(96)을 감정 상태의 변화량으로 변환해주는 매트릭스이다.
Figure 112007051673441-pat00018
Figure 112007051673441-pat00019
는 각각 인지 상태값(96)과 감정 상태에 대응하는 가중치이다. 본 발명의 일 실시예에 따라 감정 상태는 행복함(Happy), 슬픔(sad), 화남(angry), 두려움(fear) 등을 포함할 수 있으며, 감정 상태부(30)는 각 감정 상태 중 가장 값이 큰 감정 상태를 지배 감정으로 결정한다.
상기 메모리(120)는 불안정 상태 범위와, 각각의 소프트웨어 로봇에 대응하는 유전자 코드를 저장한다. 그리고 소프트웨어 로봇에 정의된 각종 신체 상태, 인지 상태, 감정 상태, 행동 종류를 저장하며, 각각의 행동 종류에 대응하여 관련되는 인지 상태 또는 신체 상태 또는 감정 상태의 관계 정보를 저장하며, 임의의 행동 종류와 관련된 각 감정 상태 또는 각 신체 상태의 변화량을 저장한다. 이러한 정보들은 유전자 코드에 유전자 정보로서 포함될 수 있다.
에피소드 메모리(60)는 소프트웨어 로봇의 행동과 인지, 소프트웨어 로봇의 행동과 감정 상태의 관계 학습을 담당하는 모듈로서, 인지 상태값(96)과 감정 상태값(97)을 참조하여, 에피소드와 행동 객체(98)를 결정한다. 에피소드 메모리(60)는 다수개의 에피소드로 이루어진다. 에피소드는 소프트웨어 로봇에 정의된 내부 상태 중 각각의 인지 상태 및 감정 상태와, 가상공간에 존재하는 객체와 행동 종류의 조합을 나타낸 정보로서, 각 조합에 대응하는 행동과 인지 상태, 감정 상태, 객체와의 관계를 나타낼 수 있다. 에피소드는 행동(Behavior)과, 객체(Object)와, 변수값으로 카테고리(category), 상태(state), 변화량(value)과, 발생횟수(frequency)를 포함하며, 각 정보의 의미는 다음 표 10과 같다.
설명
행동(Behavior) 선택되어 발현된 행동의 고유 식별 정보
객체(Object)(62) 발현된 행동과 연관된 객체의 고유 식별 정보
카테고리(category) 해당 에피소드가 인지 상태와 감정 상태 중 무엇과 관련된 기억인지를 나타내는 정보이며, "인지(PERCEPT)" 혹은 "감정(EMOTION)" 값을 갖는다.
상태(state) 카테고리에 따라 인지 상태의 고유 식별 정보 혹은 감정 상태의 고유 식별 정보 값을 저장하며, 초기 값은 0이다.
변화량(value) 해당 상태의 변화량.
발생횟수(frequency) 동일한 행동, 객체, 상태 조합이 몇 번 학습되었는지를 나타내며 초기 값은 0이다.
에피소드 메모리(60)에 저장되는 에피소드의 전체 개수 및 그에 따른 에피소드 메모리(60)의 최대 크기는 소프트웨어 로봇에서 정의된 인지 상태의 개수, 감정 상태의 개수, 가상공간에 존재하는 객체의 개수, 행동 종류의 개수에 따라 고정적으로 정해지며, 전체 개수의 계산은 다음 수학식3에 의해 이루어질 수 있다.
전체 에피소드 개수=(인지 상태 개수+감정 상태 개수)×행동 종류 개수×객체 개수
상기와 같은 에피소드가 에피소드 메모리(60)에 저장되는 과정은 다음과 같다. 소프트웨어 로봇은 외적 이벤트, 환경 정보, 내적 상태, 사용자의 유도에 따라 특정 행동을 발현할 수 있다. 이러한 특정 행동의 발현 결과로 상기 특정 행동과 관련된 감정 상태 또는 인지 상태가 변화하게 된다. 이때 상기 특정 행동과 관련된 감정 상태 또는 인지 상태의 종류는 소프트웨어 로봇의 고유의 인공 염색체 등에 따라 미리 결정되어 있으면 그 변화량 또한 미리 결정되어 있다. 에피소드 메모리(60)는 특정 행동 발현에 따라 특정 행동의 종류를 파악하고, 특정 행동과 관련되는 객체와, 특정 행동과 관련하여 변화되는 소프트웨어 로봇의 내부 상태에 따른 카테고리, 상태 종류, 변화량 등을 파악할 수 있다. 에피소드 메모리(60)는 파악된 행동의 종류, 객체, 카테고리, 상태 종류, 변화량의 조합과 동일한 조합의 에피소드를 에피소드 메모리(60)에서 검색한다. 동일한 조합의 에피소드가 없는 경우 에피소드 메모리(60)는 상기 파악된 행동의 종류, 객체, 카테고리, 상태 종류, 변화량으로 구성되는 새로운 에피소드를 추가하여 저장한다. 이때, 새로운 에피소드의 발생 횟수는 1회이며, 변화량은 하기 대표 변화량을 계산하는 수학식에 의해 계산되어 저장된다. 그리고 에피소드 메모리(60)는 동일한 조합의 에피소드가 검색되는 경우 상기 검색된 에피소드에 대응하여 저장된 변화량과 상기 발현된 행동에 대응하여 발생한 변화량을 이용하여 대표 변화량을 계산하여, 상기 검색된 에피소드의 변화량으로 저장하고, 발생횟수를 갱신하여 상기 검색된 에피소드를 갱신한다.
예를 들어, 소프트웨어 로봇이 "객체1을 먹는다"라 행동을 하고, 객체1과 관련하여 변화하는 상태 종류가 배고픔(-10)과 행복(+5)인 경우, 에피소드 메모리(60)는 "객체1을 먹는다"라는 행동과 관련하여, 먹는다-객체1-인지-배고픔-(x)와, 먹는다-객체1-감정-행복-(x) 포함하는 에피소드를 검색한다. 여기서 x는 변화량을 나타내는 임의의 수치이다. 에피소드 메모리(60)는 동일한 조합의 에피소드(68)가 검색되지 않으면, 먹는다-객체1-인지-배고픔-(A)-1과 먹는다-객체1-감정-행복-(A)-1로 이루어진 에피소드(68)를 추가한다. 여기서 A는 하기의 수학식 4에 의해 계산된 대표 변화량이다. 한편, 에피소드 메모리(60)는 동일한 조합의 에피소드가 검색되면, 검색된 에피소드에서 변화량을 검출한다. 그리고 검출된 변화량과 상기 특정 행동으로 인해 발생된 변화량을 이용하여 대표 변화량을 계산한다. 이때, 상기 발생 변화량은 미리 정해져 있다. 에피소드 메모리(60)는 행동에 의한 학습 결과를 저장하기 때문에, 특정 행동으로 인해 발생되는 변화량을 그대로 저장하지 않고, 학습 정도를 반영한 대표 변화량을 계산하여 관련 에피소드에 저장한다. 때문에, 상기 검출된 변화량(65)은 기존의 대표 변화량으로 볼 수 있으며, 대표 변화량을 계산하는 수학식은 다음 수학식 4와 같다.
대표 변화량=(1-p)×기존 대표 변화량 + p×발생 변화량
상기 수학식4에서 p는 발생 변화량이 대표 변화량에 영향을 미치는 정도를 나타낸 것으로, 미리 정해지며, 0<p<1의 범위를 가진다.
이상의 에피소드 메모리(60)의 학습 방법은 작은 메모리에 다양한 관계를 기 억하기 위해서 각 인지 상태와 감정 상태는 서로 영향을 주지 않는다는 가정한다. 즉, 어떤 행동이 발현되었을 때 각 인지 상태와 감정 상태의 변화를 독립적으로 기억하게 되면 적은 메모리에 많은 정보를 기억할 수 있다. 그리고 에피소드 메모리(60)는 주기적으로 수행되도록 구성할 수도 있다. 이는 에피소드 메모리(60)가 인지 상태와 감정 상태의 변화량을 기억하기 때문에, 적절한 시간 간격을 두고 실행되어야만 효과적인 학습이 이루어질 수 있기 때문이다.
단기 메모리(70)는 최근의 짧은 시간 동안 발생한 정보를 저장하는 메모리로서, 소프트웨어 로봇의 위치를 중심으로 다른 객체가 존재하는 위치를 구면 좌표계 상에서 r,θ,φ 등 3개의 변수를 이용하여 시간 t와 함께 SES 값으로 저장한다. SES는 일정 영역 상에서 발생하는 사건들과 관련된 시간과, 구면상의 객체의 위치 정보을 포함하고, 필요시 마다 제공해주는 역할을 한다. 단기 메모리(70)는 소프트웨어 로봇 주변에 있는 객체의 위치 정보와 정보의 불확실성을 저장하고 있다. 단기 메모리(70)는 블랙 보드(90)의 센서값(94)을 참조하여, 특정 객체, 즉 관심 객체가 인식 되면 해당 객체의 위치 정보를 저장하며 이때 불확실성은 0이 된다. 시간이 지나고 상기 관심 객체가 인식 되지 않으면 상기 위치 정보의 불확실성은 시간에 따라 점차 증가하게 된다. 이후 다시 관심 객체를 인식하게 되면 위치 정보를 갱신하며 불확실성은 다시 0이 된다. 소프트웨어 로봇 장치는 각 소프트웨어 로봇과 관련한 각 객체의 종류에 대응하는 고유의 객체 인식거리를 인공 염색체 정보의 일부로 미리 저장하고 있다. 이에 따라, 소프트웨어 로봇 장치는 객체 인식 거리 유전자 내에 있으면서 소프트웨어 로봇에 가장 가까이 있는 객체를 관심 객체로 인 식한다. 행동 관리부(40)는 소프트웨어 로봇의 행동을 최종 결정하는 모듈로서, 블랙보드(90)의 인지 상태값(96), 감정 상태값(97)과, 단기 메모리(70)의 SES와, 관심 객체와, 에피소드 메모리(60)의 다수의 에피소드와 행동 객체(98)를 참조하여, 행동을 결정하게 되며, 이에 따라 블랙 보드(90)로 최종적인 행동 객체(97)를 출력한다. 행동 관리부(40)는 기본적으로 에피소드 메모리(60)를 참조하여 행동을 결정하게 되며 불가피한 경우 사용자에 의해 유도되는 가이드 행동(Guide Behavior)을 발현하도록 제어한다. 감정 상태값(97)은 행동 선택 자체에는 관여하지 않으며 행동이 선택된 후 어떻게 발현될 것인지 발현 방법에 영향을 주게 된다. 즉, 감정은 "걷기"라는 행동이 선택된 이후 "즐겁게 걷기", "시무룩하게 걷기" 등으로 행동의 다양성을 만드는데 사용된다. 그리고 행동 관리부(40)는 인지 상태값(96), 감정 상태값(97)이 불안정한 상태를 나타내는 불안정 상태 범위에 포함되면, 그에 따라 수행해야할 행동을 에피소드 메모리(60)를 참조하여 결정한다. 각각의 인지 상태와 각각의 감정 상태는 불안정 상태가 존재한다. 상기 불안정 상태 범위는 소프트웨어 로봇의 내부 상수로서 미리 정해지며, 유전적인 값이다.
불안정 상태는 모든 종류의 인지 상태와 감정 상태에 존재한다. 다시 말하면 불안정 상태란 현재 인지 상태값(96)이 해당 인지 상태의 최소 임계값과 최대 임계값을 벗어나거나, 현재 감정 상태값(97)이 해당 감정 상태 최소 임계값과 최대 임계값을 벗어난 상태를 의미한다. 이때 각 경우의 불안정 상태 범위인 최소 임계값, 최대 임계값은 각 소프트웨어 로봇에 대응하는 유전자 값으로 주어진다. 이와 같이 인지와 감정의 불안정 상태 범위는 각각의 종류와 유전자 값을 가지고 어떤 기준을 만드느냐에 따라 틀리다. 일반적으로 불안정 상태는 각 상태값이 최소 임계값보다 작거나 최대 임계값보다 크거나 할 경우이지만, 사용자, 소프트웨어 로봇, 상태 종류에 따라 최소 임계값과 최대 임계값 사이를 불안정 상태의 범위로 설정할 수도 있다. 그리고 현재의 인지 상태값(96) 및 감정 상태값(97)과 각 상태에 대응되는 불안정 상태 범위를 이용하여, 각 상태의 불안정한 정도를 나타내는 경고값(warning)을 도출한다. 이때, 경고값을 계산하는 방식은 불안정 상태 범위에 따라 여러 가지 방식으로 정의될 수 있다. 예를 들어, 불안정 상태 범위가 상태값이 최소 임계값보다 작거나, 최대 임계값보다 큰 경우로 설정되어 있을 때, 경고값은 최소 임계값 또는 최대 임계값에서 현재의 상태값을 감산한 값으로 설정할 수 있다.
표9를 참조하여, 밝기(PERCEPT_LIGHT), 소리(PERCEPT_SOUND), 배고픔(PERCEPT_HUNGER), 피곤함(PERCEPT_FATIGUE), 타격(PERCEPT_HIT), 쓰다듬(PERCEPT_PAT) 등을 기본 인지(PERCEPTION) 상태라고 할 때, 배고픔과 밝기의 불안정 상태 범위와 경고값 도출 방식은 다음 표 11과 같이 예를 들 수 있다.
// PERCEPT_HUNGER
if (HUNGER 인지 상태값 > HUNGER 인지 최대 임계값){
warning[PERCEPT_HUNGER] = HUNGER 인지 최대 임계값 - HUNGER 인지 상태값
}

// PERCEPT_LIGHT
if (LIGHT 인지 상태값 < LIGHT 인지 최소 임계값){
warning[PERCEPT_LIGHT] = LIGHT 인지 최소 임계값 - LIGHT 인지 상태값
}
if (LIGHT 인지 상태값 > LIGHT 인지 최대 임계값){
warning[PERCEPT_LIGHT] = LIGHT 인지 최대 임계값 - LIGHT 인지 상태값
}
예를 들어, 배고픔 수치가 지나치게 높은 경우, 주변이 지나치게 밝은 경우, 슬픔 감정 수치가 높아지는 경우가 불안정 상태라고 할 수 있다. 이를 근거로 불안정 상태에 관련된 인지 상태 및 감정 상태 측면에서 생명체의 안정도를 나타내는 평가값(score)을 도입하며, 이러한 평가값은 행동 결정시 유용하게 사용된다. 즉, 행동 관리부(40)는 하나 이상의 상태가 불안정 상태가 되면 에피소드 메모리(60)에 기억된 다수의 에피소드를 검색하고, 그 중에서 현재 불안정한 상태와 관련된 평가값을 가장 높일 수 있는 행동과 객체의 조합을 선택하여 행동 객체(98)를 결정한다. 이를 상세히 설명하면 다음과 같다.
행동 관리부(40)는 하나 이상의 인지 상태 또는 감정 상태가 불안정 상태가 되면, 모든 인지 상태들의 경고값들을 검색한 후 가장 큰 경고값을 가지는 인지 상태를 검출한다. 불안정 상태의 판단 시점은 각 상태값이 갱신되는 시점이며, 판단의 주체는 행동 관리부(40)가 될 수도 있고, 신체 상태부(10), 인지부(0), 감정 상태부(30)가 될 수도 있다. 그리고 가장 큰 경고값은 가장 불안한 상태를 나타내는 경고값을 의미한다. 행동 관리부(40)는 가장 큰 경고값을 가지는 인지 상태와 해당 경고값을 에피소드 메모리(60)에 전달한다. 이때, 상기 가장 큰 경고값을 가지는 인지 상태를 주요 인지 상태라고 한다. 에피소드 메모리(60)는 주요 인지 상태와, 주요 인지 상태의 경고값을 수신하면, 인지 카테고리 및 주요 인지 상태를 포함하는 하나 이상의 에피소드들을 검색하는 1차 검색을 실시한다. 그리고 검색된 각 에피소드에 포함되는 객체가 단기 메모리(70) 내에 존재하고 있는지 확인한다. 상기 검색된 에피소드에 포함된 객체가 단기 메모리(70) 내에 존재하고 있지 않다면, 해당 에피소드는 검색 결과에서 제외한다. 본 발명의 다른 실시예에서는 상기 1차 검색의 검색 조건으로 선택적으로 경고값의 크기나 증감 방향을 설정할 수 있다. 예를 들어, 상기 주요 인지 상태의 경고값이 미리 정해진 크기 이상인 경우에 1차 검색을 수행하도록 설정할 수 있으며, 가장 최근 1차 검색시 경고값보다 현재 경고값이 큰 경우에만 또는 작은 경우에만 1차 검색을 수행하도록 설정할 수 있다. 이와 같이 1차 검색된 각 에피소드는 행동, 객체, 카테고리, 상태 종류, 변화량, 빈도를 포함하고 있으며, 1차 검색된 모든 에피소드의 카테고리와 상태 종류 값은 동일하다. 이하, 설명의 이해를 돕기 위해 카테고리 값이 인지인 에피소드를 인지 에피소드라 하고, 카테고리 값이 감정인 에피소드를 감정 에피소드라 한다.
이어서 에피소드 메모리(60)는 1차 검색된 각 인지 에피소드의 행동(61)과 객체를 조건으로 이들과 동일한 행동과 객체를 포함하는 에피소드들을, 감정 카테고리를 가지는 감정 에피소드 내에서 검색하는, 2차 검색을 실행한다. 2차 검색은 1차 검색에서 검색된 각 인지 에피소드에 대응하여 실행된다. 그리고 검색된 감정 에피소드들의 변화량을 합산하여 평가값(score)을 계산한다. 평가값의 계산 역시 1차 검색에서 검색된 각 인지 에피소드에 대응하여 이루어진다. 즉, 동일한 행동과 객체를 포함하며, 카테고리가 감정인 에피소드들의 변화량을 합산하여 평가값을 계산한다. 2차 검색에 의해 검색된 감정 에피소드의 감정 상태 종류가 기쁨(happy)과 같이 긍정적 감정일 경우에는 해당 감정 에피소드의 변화량을 평가값(score)에 그대로 합산하고, 2차 검색에 의해 검색된 감정 에피소드의 감정 상태 종류가 슬픔(sad), 화남(anger), 공포(fear)와 같이 부정적인 감정일 경우는 해당 감정 에피소드의 변화량을 평가값에서 차감한다. 이때 평가값의 초기값은 0이다. 특정 행동과 객체에 대응하여 2차 검색된 모든 감정 에피소드의 변화량 합산을 최종 평가값으로 결정한다. 최종 평가값을 결정하고 나면 2차 검색의 기준이 된 객체의 종류와 블랙보드(90)내의 현재 가장 포커스 되어 있는 객체의 종류를 비교하여 동일할 경우 최종 평가값에 약간의 보상 점수를 더 합산해 준다.
이와 같은 2차 검색 및 평가값 계산 과정은 1차 검색시 검색된 모든 인지 에피소드들 각각에 대응하여 이루어지며, 이후 행동 관리부(40)는 가장 높은 평가값을 가지는 인지 에피소드의 행동, 객체를 선택하여, 해당 행동을 구현하도록 한다.
예를 들어 모든 에피소드 메모리(60) 내의 에피소드들의 변화량이 100으로 동일하고, 포커스 되어있는 객체가 없을 경우, 1차 검색 결과, 5번, 7번, 10번을 포함하는 3개의 인지 에피소드가 검색되었다고 가정한다. 그리고 이들 각각의 인지 에피소드를 기준으로 2차 검색하여, 5번 인지 에피소드들에 대응하여 각각 기쁨, 기쁨, 슬픔의 감정 상태를 가지는 3 개의 감정 에피소드들이 검색되고, 7번 인지 에피소드에 대응하여, 각각 슬픔, 슬픔, 기쁨, 기쁨의 감정 상태를 가지는 4 개의 감정 에피소드들이 검색되고, 10번 인지 에피소드에 대응하여 각각 기쁨, 기쁨, 기쁨, 슬픔, 기쁨의 감정 상태를 가지는 5 개의 감정 에피소드들이 검색되었다고 가정한다. 이 경우, 5번 인지 에피소드의 최종 평가값은 각각 100 + 100 - 100 = 100 점이 되고, 7번 인지 에피소드의 최종 평가값은 -100 + (-100) + 100 + 100 = 0 점이 되고, 10번 인지 에피소드의 최종 평가값은 100 + 100 + 100 + (-100) + 100 = 300점이 된다. 그리고 이에 따라, 에피소드 메모리(60)에서 최종 결정되는 행동과 객체의 조합은 10번 인지 에피소드가 되고, 10번 인지 에피소드의 행동과 객체가 행동 객체(98)가 된다.
그리고 결정된 행동 객체(98)를 발현함으로써, 불안정한 상태가 호전될 수 있으며, 또한 관련 에피소드에 영향을 미치게 된다. 이러한 행동 선택 방법은 모든 행동은 학습을 통해서만 발현된다는 것을 전제로 한다. 때문에 행동 선택 과정에서 학습되지 않은 경우에는 미리 정해진 디폴트 행동을 선택하게 된다.
이러한 행동 관리부(40)의 행동 결정 과정을 도10에 도시하였다. 도10을 참조하여, 행동 관리부(40)는 401단계에서 불안정한 상태의 인지 상태값 또는 감정 상태값이 있으면 403단계로 진행한다. 403단계에서 행동 관리부(40)는 해결할 수 있는 에피소드가 있는지 검색하여, 있으면 411단계로 진행하고 없으면 407단계로 진행한다. 411단계에서 행동 관리부(40)는 에피소드 메모리(60)에서 가장 적절한 행동과 객체를 선택하고 421단계로 진행한다. 상기 403단계와 상기 411단계의 상세 과정은 상기한 1차 검색과, 2차 검색과 평가값 산출 과정에 해당한다. 421단계에서 행동 관리부(40)는 현재 소프트웨어 로봇의 대표 감정 상태에 따라 행동의 세부 표현형을 선택한다.
한편, 상기 403단계에서 현재 발생한 불안정 상태를 해결할 수 있는 에피소드가 존재하지 않으면 407단계에서 행동 관리부(40)는 사용자의 유도 행동이 있는지 확인하여 있으면 415단계로 진행하여 사용자의 유도 행동을 선택하고 상기 421단계로 진행한다. 만약, 상기 407단계에서 사용자의 유도 행동이 없으면 행동 관리부(40)는 413단계로 진행하여 디폴트 행동을 선택하고 상기 421단계로 진행한다.
다른 한편, 상기 401단계에서 행동 관리부(40)는 불안정한 상태의 인지 상태값 또는 감정 상태값이 존재하지 않으면 405단계로 진행하여 사용자의 유도 행동이 있는지 확인한다. 405단계에서 사용자의 유도 행동이 있으면 상기 415단계로 진행하여 사용자의 유도 행동을 선택하고, 상기 421단계로 진행하고, 사용자의 유도 행동이 없으면 409단계에서 관심 객체가 있는지 확인한다. 409단계에서 행동 관리부(40)는 관심 객체가 있으면 417단계로 진행하여, 에피소드 메모리(60)에서 관심 객체와 관련된 에피소드를 검색하여 관심 객체를 사용하는 행동을 선택한다. 이때, 에피소드를 검색하는 과정은 상기 401단계에서 불안정 상태를 감지한 후 행해지는 에피소드 검색 과정과 행동 선택 과정, 즉, 1차 검색, 2차 검색, 평가값 산출 과정과 유사하다. 상세하게 설명하면, 행동 관리부(40)가 관심 객체를 감지하면, 즉, 단기 메모리(70) 내에 관심 객체가 있으면 에피소드 메모리(60)는 관심 객체를 객체(62)로 포함하는 에피소드를 검색한다. 상기 검색 후, 검색된 에피소드들을 동일한 행동(61)을 포함하는 에피소드들로 분류한다. 그리고 각 행동(61)에 대응하여 분류된 에피소드들 중에서 카테고리(63)가 감정인 에피소드들을 검색하여, 상기한 평가값 산출 방식에 따라 평가값을 계산한다. 즉, 각 행동(61)에 대응하는 최종 평가값을 산출한다. 이후 행동 관리부(40)는 가장 높은 평가값을 지닌 행동을 선택한다. 이때 가장 높은 평가값이 임의의 기준에 못 미칠 경우 관심 객체에 대해 아무런 행동을 하지 않는다.
한편, 상기 409단계에서 관심 객체가 감지되지 않으면 행동 관리부(40)는 419단계로 진행하여 에피소드 메모리에서 현재 소프트웨어 로봇의 각 인지 상태 또는 감정 상태와 관련되어 가장 낮은 평가값을 높일 수 있는 행동을 선택하고 상기 421단계로 진행한다. 421단계에서 행동 관리부(40)는 현재 소프트웨어 로봇의 대표 감정 상태에 따라 행동의 세부 표현형을 선택한다. 상기 419단계에 해당하는 동작 과정은 본 발명의 실시예에 따라 수행되지 않도록 설정할 수도 있다.
상기와 같이 행동 관리부(40)에 의해 결정된 행동은 행동 구현부(50)에 의해 발현된다. 행동 구현부(50)는 블랙 보드(90) 행동 객체(98)를 참조하여 해당 행동을 발현하고, 발현되는 행동의 지속 시간을 결정하며, 발현된 행동이 원인이 되는 내적 이벤트(93)를 생성하여 블랙 보드(90)로 출력한다.
유전자 코드 저작부(110)는 본 발명의 일 실시예에 따라 각 소프트웨어 로봇에 할당된 유전자 코드를 저작할 수 있는 사용자 인터페이스를 제공하여, 사용자 입력에 따라 임의의 유전자 코드에 포함된 유전자 정보의 표현값을 변경함으로써, 유전자 코드를 새롭게 조합한다. 본 발명의 일 실시예에 따라 유전자 코드 저작부(110)는 일반 소프트웨어 로봇 사용자가 쉽고 직관적으로 유전자 코드를 변경할 수 있게 하기 위해 직관 특성으로 구성되는 저작창을 제공한다. 상기 직관 특성이란 여러 종류의 인지적 또는 감정적 특성들을 포함하여 한번에 표현할 수 있는 직관적 특성으로서, 예를 들어, 행복이, 슬픔이, 먹보, 잠보, 멋쟁이 등이 될 수 있다. 하나의 직관 특성은 특성 종류에 따라 하나 이상의 유전자 정보와 관련될 수 있으며, 하나의 유전자 정보도 하나 이상의 직관 특성과 관련될 수 있다. 그리고 직관 특성의 특성값과 관련된 유전자 정보의 파라미터값 즉, 표현값은 상호작용하여 변경된다. 즉, 직관 특성의 특성값이 변경되면 관련된 유전자 정보의 표현값도 변경되고, 유전자 정보의 표현값이 변경되면, 관련된 직관 특성의 특성값도 변경되며, 변경은 미리 설정된 변환식에 따라 이루어진다. 변환식은 직관 특성의 종류와 유전자 정보의 종류에 따라 다르게 설정될 수 있다. 이러한 직관 특성의 특성값을 변경할 수 있는 직관 특성 저작창(200)의 일 예를 도2에 도시하였다. 그리고 유전자 코드 저작부(110)는 직관 특성 저작창(200)을 포함하는 상세 저작창(210)을 제공한다. 상세 저작창(210)은 유전자 코드에 포함되는 유전자 정보의 표현값을 변경할 수 있는 사용자인터페이스로서, 도3에 본 발명의 일 실시예로서 도시하였다. 사용자는 직관 특성 저작창(200)은 물론, 상세 저작창(210)에서 직관 특성의 특성값 또는 유전자 정보의 표현값을 변경할 수 있으며, 상세 저작창(210)에서는 하나의 직관 특성의 특성값을 변경하였을 때, 관련 유전자 정보의 표현값이 변경되는 것을 가시적으로 확인할 수도 있다. 예를 들어, 사용자가 직관 특성 중 먹보의 특성값을 변경했을 경우 유전자 코드 저작부(110)는 먹보와 관련된 유전자 정보인 식욕 경계, 배변욕 경계, 최대 소화량, 소화율, 배설률, 배설량, 배고픔(hunger) 민감도, 배설(excretion) 민감도의 표현값이 변경된다. 그리고 유전자 코드 저작부(110)는 유전자 정보의 표현값이 변경되면, 해당 유전자 정보의 두 상동 염색체의 각 염색체값을 변경한다. 이때, 표현값과 각 상동 염색체값 간의 변경은 미리 설정된 유전 법칙에 따라 이루어진다.
하기 표 12는 본 발명이 일 실시예에 따라 소프트웨어 로봇 장치의 각 구성부별로 정리된 유전자 정보에 대한 설명이다. 각 유전자 정보의 표현값은 기본 설정값을 기준으로 백분율로 설정할 수 있으며, 거리, 속도는 cm, cm/s의 단위를 사용한다.
Figure 112007051673441-pat00020
그리고 본 발명의 일 실시예에 따른 직관 특성과 유전자 정보와의 관계를 표 13에 나타내었다.
Figure 112007051673441-pat00021
상기한 유전자 코드 저작부(110)의 직관 특성 변경에 따른 유전자 정보 변경 과정을 도4에 도시하였다. 도4를 참조하여, 유전자 코드 저작부(110)는 241단계에서 사용자 요청에 따라 특정 소프트웨어 로봇의 유전자 코드에 대응하는 직관 특성 저작창을 디스플레이하고 243단계로 진행한다. 243단계에서 사용자 입력에 대응하여 유전자 코드 저작부(110)는 선택된 특정 직관 특성의 특성값을 변경하고, 245단계로 진행하여 선택된 직관 특성과 연관된 각 유전자 정보의 표현값을, 미리 정해진 관련 변환식에 특성값을 적용하여 변경한다. 이후, 247단계에서 유전자 코드 저작부(110)는 상기 245단계에서 표현값을 변경한 각 유전자 정보의 각 상동 염색체의 염색체값을 표현값에 따라 변경한다. 그리고 사용자 조작이 완료되면 유전자 코드 저작부(110)는 변경된 유전자 코드를 상기 특정 소프트웨어 로봇에 대응하여 메모리(120)에 저장하고 동작과정을 종료한다. 이때, 유전자 코드 저작부(110)는 원본 유전자 코드와 변경전의 유전자 코드를 백업하여 저장할 수도 있다.
한편, 유전자 코드 저작부(110)는 본 발명의 일 실시예에 따라 소프트웨어 로봇간의 교배를 수행할 수 있다. 상기 교배란 두 개의 서로 다른 소프트웨어 로봇, 또는 각 소프트웨어 로봇의 유전자 코드에 포함된 대응 유전자 정보 간에 관련 상동 염색체를 교체 조합하여 새로운 유전자 코드를 구성하는 것을 의미한다. 이때, 교배하는 소프트웨어 로봇을 부모 개체라 하고, 새로운 유전자 코드에 의해 생성되는 소프트웨어 로봇을 자식 개체라 칭한다. 도5를 참조하여 본 발명의 일 실시예에 따른 교배 과정을 설명한다. 261단계에서 유전자 코드 저작부(110)는 교배 유효 거리 내에 위치한 둘 이상의 소프트웨어 로봇을 감지한다. 상기 교배 유효 거리란 가상공간 또는 현실 공간상에서 교배가 가능한 거리로 미리 정해진다. 이후, 263단계에서 사용자로부터 두 소프트웨어 로봇 간에 교배 요청이 발생하면 265단계에서 유전자 코드 저작부(110)는 두 소프트웨어 로봇을 부모 개체로 설정한다. 교배가 이루어지는 두 소프트웨어 로봇은 사용자에 의해 지정될 수도 있고, 유효 교배 거리 내에 위치한 소프트웨어 로봇들중 가장 가까운 소프트웨어 로봇 간에 이루어지도록 설정할 수도 있다. 이후, 유전자 코드 저작부(110)는 267단계에서 각 부모 개체가 구비한 유전자 정보들 중, 서로 대응하는 유전자 정보의 상동 염색체를 설정된 유전자 결합 법칙에 따라 조합하여 유전자 정보를 새롭게 구성한다. 다시 말해, 각각의 부모 개체의 유전자 코드에 포함된 유전자 정보 중 동일한 유전자 정보의 상동 염색체들을 미리 설정된 유전자 결합 법칙에 따라 조합하는 것이다. 상기 유전자 결합 법칙은 제1부모 개체의 제1유전자 정보를 구성하는 두 상동 염색체와, 제2부모 개체의 제1유전자 정보를 구성하는 두 상동 염색체를 결합하는 방식을 나타낸 법칙으로, 다양하게 설정될 수 있으며, 유전자 정보의 종류에 따라 다르게 설정할 수도 있고, 랜덤으로 설정될 수도 있다. 이에 따른 실시예를 도6에 도시하였다. 도6을 참조하면, 부모 개체1(221)과 부모 개체2(223)의 각 유전자 코드는 A, B, C, D, E 유전자 정보를 포함하고 있다. 그리고 유전자 정보의 표현값은 해당 유전자 정보를 구성하는 한 쌍의 상동 염색체의 염색체값의 평균값으로 결정되는 유전 법칙이 설정되어 있다. 이에 따라, 부모 개체(1)의 A 유전자 정보는 각각 30과 50의 염색체값을 가지는 두개의 상동 염색체로 이루어지며, A 유전자 정보의 표현값은 40으로 결정된 것을 확인할 수 있다. 그리고 자식 개체1(225), 자식 개체2(227), 자식 개체3(229) 각각의 유전자 정보는, 상기 부모 개체1(221)과 부모 개체2(223)의 A, B, C, D, E 유전자 정보의 상동 염색체들이 조합으로 이루어지며, 표현값은 두 상동 염색체의 평균값으로 결정된다. 이때, 자식 개체들의 고유의 특성은 표현값에 대응하여 발현된다.
도5로 돌아가서, 유전자 정보의 새로운 구성이 완료되면 269단계에서 유전자 코드 저작부(110)는 새롭게 구성된 유전자 정보를 이루는 상동 염색체의 염색체값을 미리 설정된 유전 법칙에 따라 표현값으로 변환하고, 271단계로 진행하여, 새로운 유전자 코드 생성 및 새로운 유전자 코드에 따른 자식 개체 소프트웨어 로봇 생성하고 동작 과정을 종료한다.
본 발명에 따른 교배 과정의 다른 실시예를 도7a 내지 도7d에 도시하였다. 도7a는 부모 개체가 되는 ID 271631 소프트웨어 로봇의 유전자 코드와 그에 따라 구현된 ID 271631 소프트웨어 로봇의 외형을 도시하였고, 도7b는 부모 개체가 되는 ID 293024 소프트웨어 로봇의 유전자 코드와 그에 따라 구현된 ID 293024 소프트웨어 로봇의 외형을 도시하였다. 그리고 도7d는 자식 개체가 되는 ID 22043384 소프트웨어 로봇의 유전자 코드와 그에 따라 구현된 ID 22043384 소프트웨어 로봇의 외형을 도시하였다. 도7c는 사용자가 교배 요청 및 교배 조건을 입력할 수 있는 교배 요청창을 도시하였다. 사용자는 교배 요청시 유전 법칙을 설정할 수 있으며, 실시예에 따라 유전자 결합 법칙도 설정할 수 있다. ID 271631 소프트웨어 로봇과, ID 293024 소프트웨어 로봇과, ID 22043384 소프트웨어 로봇 각각의 유전자 코드에 포함된 유전자 정보, 즉, S얼굴, S귀, S눈, S코, S입, C얼굴, C귀, C눈, C코, C입으로 이루어진다. 그리고 각 유전자 정보 각각은 동일한 염색체값을 가지는 상동 염색체(Gene1,Gene2)로 이루어진다. 도7a를 참조하여 부모 개체 ID 271631 소프트웨어 로봇을 살펴보면, 두 상동 염색체(Gene1,Gene2)의 염색체값은 다음과 같다. S얼굴의 염색체값은 120이고, S귀의 염색체값은 30, S눈의 염색체값은 25, S코의 염색체값은 30, S입의 염색체값은 25, C얼굴의 염색체값은 753, C귀의 염색체값은 643, C눈의 염색체값은 0, C코의 염색체값은 532, C입의 염색체값은 864이다. 그리고 각 유전자 정보의 표현값(P)은 두 염색체값의 평균으로 결정된다. 부모 개체 ID 271631 소프트웨어 로봇의 경우 S얼굴의 표현값은 120이고, S귀의 표현값은 30, S눈의 표현값은 25, S코의 표현값은 30, S입의 표현값은 25, C얼굴의 표현값은 753, C귀의 표현값은 643, C눈의 표현값은 0, C코의 표현값은 532, C입의 표현값은 864이다. 그리고 도7b를 참조하면, 부모 개체 ID 293024 소프트웨어 로봇을 살펴보면, 두 상동 염색체(Gene1,Gene2)의 염색체값은 다음과 같다. S얼굴의 염색체값은 80이고, S귀의 염색체값은 20, S눈의 염색체값은 15, S코의 염색체값은 10, S입의 염색체값은 10, C얼굴의 염색체값은 999, C귀의 염색체값은 777, C눈의 염색체값은 333, C코의 염색체값은 555, C입의 염색체값은 666이다. 그리고 각 유전자 정보의 표현값(P)은 관련 상동 염색체의 염색체값과 동일하다. 상기 두 부모 개체의 교배로 생성된 자식 개체 ID 22043384 소프트웨어 로봇은 양쪽 부모 개체의 상동 염색체를 모두 물려받아 도7d와 같이 생성된다. 즉, 자식 개체 ID 22043384 소프트웨어 로봇의 각 유전자 정보에 대응하는 첫 번째 상동 염색체(Gene1)의 염색체값은 다음과 같다. S얼굴의 염색체값은 120이고, S귀의 염색체값은 30, S눈의 염색체값은 25, S코의 염색체값은 30, S입의 염색체값은 25, C얼굴의 염색체값은 753, C귀의 염색체값은 643, C눈의 염색체값은 0, C코의 염색체값은 532, C입의 염색체값은 864이다. 그리고 각 유전자 정보에 대응하는 두 번째 상동 염색체(Gene2)의 염색체값은 다음과 같다. S얼굴의 염색체값은 80이고, S귀의 염색체값은 20, S눈의 염색체값은 15, S코의 염색체값은 10, S입의 염색체값은 10, C얼굴의 염색체값은 999, C귀의 염색체값은 777, C눈의 염색체값은 333, C코의 염색체값은 555, C입의 염색체값은 666이다. 이에 따라, 자식 개체 ID 22043384 소프트웨어 로봇의의 각 유전자 정보의 표현값은 다음과 같이 결정된다. S얼굴의 표현값은 100이고, S귀의 표현값은 25, S눈의 표현값은 20, S코의 표현값은 22, S입의 표현값은 17, C얼굴의 표현값은 876, C귀의 표현값은 655, C눈의 표현값은 111, C코의 표현값은 543, C입의 표현값은 765이다.
본 발명의 실시예에 따라 하나의 소프트웨어 로봇을 부모 개체로 설정하여 자식 개체를 생성하는 자가 교배도 가능하다. 이를 도8a와 도8b에 도시하였다. 도8a와 도8b는 도7c의 ID 22043384 소프트웨어 로봇을 부모 개체로 설정하여 9개의 자식 개체를 생성한 것을 나타낸 것이다.
이와 같이 본 발명은 직관 특성 변경 기능과, 소프트웨어 로봇 간에 교배 기능을 제공함으로써, 사용자가 소프트웨어 로봇의 유전자 코드를 손쉽게 변경, 구성할 수 있게 한다.
상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 따라서 본 발명의 범위는 설명된 실시예에 의하여 정할 것이 아니고 특허청구범위와 특허청구범위의 균등한 것에 의해 정해 져야 한다.
도1은 본 발명의 일 실시예에 따른 소프트웨어 로봇 장치의 구성을 나타낸 도면,
도2는 본 발명의 일 실시예에 따른 직관 특성 저작창을 나타낸 도면,
도3은 본 발명의 일 실시예에 따른 상세 저작창을 나타낸 도면,
도4는 본 발명의 일 실시예에 따른 직관 특성 변경 과정을 나타낸 도면,
도5는 본 발명의 일 실시예에 따른 교배 과정을 나타낸 도면,
도6은 본 발명의 일 실시예에 따른 부모 개체와 자식 개체의 인공 염색체 구성을 나타낸 도면,
도7a 내지 도7d는 본 발명의 일 실시예에 따라 서로 다른 부모 개체 간에 교배를 나타낸 도면,
도8a와 8b는 본 발명의 일 실시예에 따른 자가 교배를 나타낸 도면,
도9는 본 발명의 일 실시예에 따른 가상공간과 사용자 메뉴 화면을 나타낸 도면,
도10은 본 발명의 일 실시예에 따른 행동 선택 과정을 나타낸 도면.

Claims (15)

  1. 소프트웨어 로봇 장치의 소프트웨어 로봇 유전자 코드 구성 방법에 있어서,
    사용자로부터 임의의 소프트웨어 로봇에 대응하는 유전자 코드의 저작을 요청받는 과정과,
    상기 유전자 코드에 포함된 하나 이상의 유전자 정보와 연관된 다수의 직관 특성을 제공하는 과정과,
    상기 다수의 직관 특성 중 사용자 입력에 따라 선택된 직관 특성의 특성값을 변경하는 과정과,
    상기 선택된 직관 특성과 연관된 각 유전자 정보의 표현값을 미리 정해진 관련 변환식을 이용하여 상기 변경된 특성값에 적용하여 변경하는 과정과,
    상기 유전자 코드에 포함된 적어도 하나의 유전자 정보의 표현값과, 외부자극과, 상기 소프트웨어 로봇의 내부 상태 변화에 따라 상기 소프트웨어 로봇을 발현하는 과정을 포함하는 소프트웨어 로봇 유전자 코드 구성 방법.
  2. 제1항에 있어서,
    사용자로부터 임의의 유전자 정보의 표현값을 변경하는 요청이 있으면, 상기 적어도 하나의 유전자 정보의 표현값을 변경하고, 상기 적어도 하나의 유전자 정보와 관련된 직관 특성의 특성값을 미리 정해진 관련 변환식을 이용하여 변경하는 과정을 더 포함하는 소프트웨어 로봇 유전자 코드 구성 방법.
  3. 제2항에 있어서,
    상기 적어도 하나의 유전자 정보의 표현값 변경 후, 상기 적어도 하나의 유전자 정보를 구성하는 한 쌍의 상동 염색체의 염색체값을 미리 정해진 유전 법칙에 따라 상기 변경된 표현값을 반영하여 변경하는 과정을 더 포함하는 소프트웨어 로봇 유전자 코드 구성 방법.
  4. 제3항에 있어서,
    상기 유전 법칙은 생물학적 유전 법칙을 응용한 법칙임을 특징으로 하는 소프트웨어 로봇 유전자 코드 구성 방법.
  5. 제3항에 있어서, 상기 유전 법칙은 중간 법칙, 멘델의 법칙, 독립의 법칙, 분리의 법칙, 우열의 법칙 중 어느 하나의 법칙을 응용하여 설정됨을 특징으로 하는 소프트웨어 로봇 유전자 코드 구성 방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 제1항에 있어서,
    상기 유전자 코드는 소프트웨어 로봇의 내적 상태와 관련된 성격 유전자와 소프트웨어 로봇의 외형과 관련된 외형 유전자를 포함함을 특징으로 하는 소프트웨어 로봇 유전자 코드 구성 방법.
  15. 삭제
KR1020070071229A 2007-07-16 2007-07-16 소프트웨어 로봇의 유전자 코드 구성 방법 KR101399199B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070071229A KR101399199B1 (ko) 2007-07-16 2007-07-16 소프트웨어 로봇의 유전자 코드 구성 방법
US12/173,905 US20090024249A1 (en) 2007-07-16 2008-07-16 Method for designing genetic code for software robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070071229A KR101399199B1 (ko) 2007-07-16 2007-07-16 소프트웨어 로봇의 유전자 코드 구성 방법

Publications (2)

Publication Number Publication Date
KR20090007972A KR20090007972A (ko) 2009-01-21
KR101399199B1 true KR101399199B1 (ko) 2014-05-27

Family

ID=40265487

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070071229A KR101399199B1 (ko) 2007-07-16 2007-07-16 소프트웨어 로봇의 유전자 코드 구성 방법

Country Status (2)

Country Link
US (1) US20090024249A1 (ko)
KR (1) KR101399199B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI447660B (zh) * 2009-12-16 2014-08-01 Univ Nat Chiao Tung Robot autonomous emotion expression device and the method of expressing the robot's own emotion
CN102279569B (zh) * 2010-06-08 2013-05-08 华宝通讯股份有限公司 机械装置动作编辑系统及其方法
CN102279570A (zh) * 2010-06-10 2011-12-14 华宝通讯股份有限公司 自动机械装置及其控制方法
US9573276B2 (en) * 2012-02-15 2017-02-21 Kenneth Dean Stephens, Jr. Space exploration with human proxy robots
US8447419B1 (en) 2012-05-02 2013-05-21 Ether Dynamics Corporation Pseudo-genetic meta-knowledge artificial intelligence systems and methods
WO2017212723A1 (ja) 2016-06-06 2017-12-14 ソニー株式会社 仮想生物制御システムおよび仮想生物制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990023809A (ko) * 1997-08-22 1999-03-25 이데이 노부유끼 기억 매체, 로보트, 정보 처리 장치, 및 전자 페트시스템
KR20020089264A (ko) * 2002-11-01 2002-11-29 이창진 유전 정보 기반 사이버 캐릭터의 생리 현상 제공 방법 및장치
KR20050110260A (ko) * 2004-05-18 2005-11-23 (주)유니원커뮤니케이션즈 유전자 정보에 근거한 사이버 애완동물 시스템

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390282A (en) * 1992-06-16 1995-02-14 John R. Koza Process for problem solving using spontaneously emergent self-replicating and self-improving entities
JP3825845B2 (ja) * 1996-09-27 2006-09-27 ヤマハ発動機株式会社 進化的制御方式
US6341372B1 (en) * 1997-05-01 2002-01-22 William E. Datig Universal machine translator of arbitrary languages
US6353814B1 (en) * 1997-10-08 2002-03-05 Michigan State University Developmental learning machine and method
US6185534B1 (en) * 1998-03-23 2001-02-06 Microsoft Corporation Modeling emotion and personality in a computer user interface
US7805388B2 (en) * 1998-05-01 2010-09-28 Health Discovery Corporation Method for feature selection in a support vector machine using feature ranking
JP2000020103A (ja) * 1998-07-02 2000-01-21 Yamaha Motor Co Ltd 遺伝的アルゴリズムの評価方法
US7061493B1 (en) * 1999-04-07 2006-06-13 Fuji Xerox Co., Ltd. System for designing and rendering personalities for autonomous synthetic characters
KR20010053322A (ko) * 1999-04-30 2001-06-25 이데이 노부유끼 전자 페트 시스템, 네트워크 시스템, 로봇, 및 기억 매체
JP2001191284A (ja) * 1999-10-25 2001-07-17 Sony Corp ロボット装置及びロボット装置の学習方法
EP1182610A1 (en) * 2000-02-09 2002-02-27 Sony Corporation Information processing device and method, data holding device, and program
US6477444B1 (en) * 2000-07-07 2002-11-05 Fuji Xerox Co., Ltd. Method for the automated design of decentralized controllers for modular self-reconfigurable robots
US8302127B2 (en) * 2000-09-25 2012-10-30 Thomson Licensing System and method for personalized TV
US7177851B2 (en) * 2000-11-10 2007-02-13 Affinnova, Inc. Method and apparatus for dynamic, real-time market segmentation
US20020082077A1 (en) * 2000-12-26 2002-06-27 Johnson Douglas R. Interactive video game system with characters that evolve physical and cognitive traits
JP2002251597A (ja) * 2001-02-23 2002-09-06 Yamaha Motor Co Ltd 最適解探索装置、最適化アルゴリズムによる制御対象の制御装置及び最適解探索プログラム
US6859796B1 (en) * 2001-07-19 2005-02-22 Hewlett-Packard Development Company, L.P. Method of using multiple populations with cross-breeding in a genetic algorithm
JP3404532B2 (ja) * 2001-07-27 2003-05-12 独立行政法人産業技術総合研究所 最適フィッティングパラメータ決定方法および装置、並びに最適フィッティングパラメータ決定プログラム
US20040012633A1 (en) * 2002-04-26 2004-01-22 Affymetrix, Inc., A Corporation Organized Under The Laws Of Delaware System, method, and computer program product for dynamic display, and analysis of biological sequence data
US20030222977A1 (en) * 2002-06-03 2003-12-04 Kazutora Yoshino Intelligent system and 3D virtual object generator
US20040039716A1 (en) * 2002-08-23 2004-02-26 Thompson Dean S. System and method for optimizing a computer program
US7493295B2 (en) * 2003-01-17 2009-02-17 Francisco J. Ayala Method, system and computer program for developing cortical algorithms
GB0306875D0 (en) * 2003-03-25 2003-04-30 British Telecomm Apparatus and method for generating behavior in an object
CA2525956A1 (en) * 2003-05-28 2005-01-06 Pioneer Hi-Bred International, Inc. Plant breeding method
EP1494127A1 (en) * 2003-07-01 2005-01-05 Semeion Method, computer program and computer readable means for projecting data from a multidimensional space into a space having less dimensions and to carry out a cognitive analysis on said data.
EP1649346A2 (en) * 2003-08-01 2006-04-26 Icosystem Corporation Methods and systems for applying genetic operators to determine system conditions
US8990688B2 (en) * 2003-09-05 2015-03-24 Samsung Electronics Co., Ltd. Proactive user interface including evolving agent
US7599802B2 (en) * 2004-06-10 2009-10-06 Evan Harwood V-life matching and mating system
EP1897029A1 (en) * 2005-06-21 2008-03-12 Koninklijke Philips Electronics N.V. Segment-preserving crossover in genetic algorithms
US20070094163A1 (en) * 2005-08-29 2007-04-26 Bowerman Guy F Genetic algorithm-based tuning engine
JP4863778B2 (ja) * 2006-06-07 2012-01-25 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
KR100819248B1 (ko) * 2006-09-05 2008-04-02 삼성전자주식회사 소봇의 감정변환 방법
US7937349B2 (en) * 2006-11-09 2011-05-03 Pucher Max J Method for training a system to specifically react on a specific input
EP1956528B1 (en) * 2007-02-08 2018-10-03 Samsung Electronics Co., Ltd. Apparatus and method for expressing behavior of software robot
US20080228699A1 (en) * 2007-03-16 2008-09-18 Expanse Networks, Inc. Creation of Attribute Combination Databases
WO2008121911A2 (en) * 2007-03-30 2008-10-09 Virginia Tech Intellectual Properties, Inc. Software for design and verification of synthetic genetic constructs
US8069127B2 (en) * 2007-04-26 2011-11-29 21 Ct, Inc. Method and system for solving an optimization problem with dynamic constraints

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990023809A (ko) * 1997-08-22 1999-03-25 이데이 노부유끼 기억 매체, 로보트, 정보 처리 장치, 및 전자 페트시스템
KR20020089264A (ko) * 2002-11-01 2002-11-29 이창진 유전 정보 기반 사이버 캐릭터의 생리 현상 제공 방법 및장치
KR20050110260A (ko) * 2004-05-18 2005-11-23 (주)유니원커뮤니케이션즈 유전자 정보에 근거한 사이버 애완동물 시스템

Also Published As

Publication number Publication date
US20090024249A1 (en) 2009-01-22
KR20090007972A (ko) 2009-01-21

Similar Documents

Publication Publication Date Title
Xi et al. The rise and potential of large language model based agents: A survey
KR101028814B1 (ko) 소프트웨어 로봇 장치와 그 장치에서 소프트웨어 로봇의행동 발현 방법
US8204839B2 (en) Apparatus and method for expressing behavior of software robot
US10262462B2 (en) Systems and methods for augmented and virtual reality
KR101399199B1 (ko) 소프트웨어 로봇의 유전자 코드 구성 방법
KR20050107629A (ko) 객체 행동 번역기
CN108983625B (zh) 一种智能家居系统及服务生成方法
Bien et al. Effective learning system techniques for human–robot interaction in service environment
Méndez et al. Multi-sensor system, gamification, and artificial intelligence for benefit elderly people
CN109070330A (zh) 认生的行为自主型机器人
KR20040098498A (ko) 로봇의 행동 제어 시스템 및 행동 제어 방법, 및 로봇 장치
JPH11143849A (ja) 行動生成装置、行動生成方法及び行動生成プログラム記録媒体
KR20060083347A (ko) 로봇에 지능 지수를 부여하는 방법
Cena et al. Multi-dimensional intelligence in smart physical objects
EP1956529A2 (en) Method and apparatus for learning behavior in software robot
Infantino Affective human-humanoid interaction through cognitive architecture
KR20190079255A (ko) 로봇 서비스 학습 시스템 및 그 방법
Damiano Homes as human–robot ecologies: An epistemological inquiry on the “domestication” of robots
Brenon et al. Context feature learning through deep learning for adaptive context-aware decision making in the home
Niederberger et al. Hierarchical and Heterogenous Reactive Agents for Real‐Time Applications
Costa et al. Activities suggestion based on emotions in AAL environments
Kim et al. Multi-objective evolutionary generation process for specific personalities of artificial creature
Nothdurft et al. GEEDI-guards for emotional and explanatory dialogues
US20230259560A1 (en) Apparatus, method and computer program for creating digital memories for a particular person
KR100909532B1 (ko) 소프트웨어 로봇의 행동 학습 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170427

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee