인공생명의 개념

 

인공생명 : Stephen Prata 저서, 이충기 옮김, 김영사, 1995 (원서 : Artificial Life Playhouse, The Waite Group, 1994), Page 35~69  

 

1. 인공생명의 용어

(1) 창발적 행동 (Emergent Behavior)

(2) 유한 상태 기계 (Finite State Machine : FSM)

(3) 세포 자동자 (Cellular Automata)

2. 정보의 역할

(1) 진짜 유전자와 인공 유전자

(2) 새로운 세대에게 정보 전달하기

(3) 경쟁

(4) 성

(5) 학습

3. 진화

(1) 누적적 선택 (Cumulative Selection) 의 위력

(2) 돌연변이 (새로운 유전자)

(3) 유전자 합성과 교차 (기존 유전자의 새로운 조합)

(4) 인공 생명의 유전자

(5) 유전자형 (Phenotype) 과 표현형

4. 인공 생명의 주제

(1) 단순한 규칙에서 나오는 복잡성

(2) 지역적 규칙, 전체적 행동

(3) 상향식 모델링

(4) 창발적 행동

(5) 집단들과 병렬 처리

(6) 생명의 본질

 

1. 인공생명의 용어

모든 분야는 나름의 전문 용어를 가진다. 전문 용어들은 종종 문외한에게 신비스러운 은어처럼 들리거나, 일상의 낱말들을 이상하게 사용해서 사람들을 혼란에 빠뜨리지만, 중요한 목적을 위해서는 필요하다. 새로운 개념이나 발상을 따라잡으려고 할 때, 그것의 성격을 분명히 해주는 낱말이나 어구를 가진다면 유익할 것이다. 그렇지 않다면, 우리는 이런 식으로 말해야만 할 것이다. 나는 사람을 싣고 공중을 날아가는 기계 한 대속에서 계산(calculate)을 하고 텍스트 작업(handle text thing)을 하는 글자판(keyboard)을 가진 내 휴대용 전자 장치(portable electronic device)로 생물을 모방하여 복잡하게 행동하는 인공적인 시스템에 관하여 쓰고 있다. 의례적으로 들릴 수도 있지만, 의사소통은 어려울 것이다.

  (1) 창발적 행동(Emergent Behavior)

단순한 컴퓨터 개미를 만들어 보자. 다음으로 그 가상 개미(virtual ant)를 가개미(vant)라고 부르자. 이웃한 환경, 즉 컴퓨터 세포의 격자판에서 어떻게 반응하는지 결정하는 단순한 규칙 몇 개를 가개미에게 부여하자. 예를 들어 가개미가 빈 세포에 들어가면, 계속해서 전진한다. 파란 세포에 들어가면, 세포를 노란색으로 바꾸고 왼쪽으로 돈다. 노란색 세포에 들어가면, 세포를 파란색으로 바꾸고 오른쪽으로 방향을 바꾼다. 크리스터퍼 랭턴(Christopher Langton)이 미시간 대학에서 이 실험을 하였다. 가개미를 동시에 동일한 격자판에 풀어놓으면 실제 개미와 매우 유사하게 움직이는데, 처음에는 이리저리 배회하다가 서로의 존재를 알아차리고 길을 만들어 나간다. 재미있는 점은, 랭턴이 가개미가 그러한 사회적 행위를 보이도록 뚜렷하게 프로그래밍하지는 않았다는 것이다. 행동은 자발적으로 전개되어 갔다. 단순한 규칙에서부터 전개된 복잡하고 예기치 못했던 행동 현상이 인공생명 실험에서는 되풀이해 나타났는데, 이를 창발적 행동(emergent behavior)이라 부른다.

창발적 행동은 인공생명의 가장 매력적이고 기본적인 측면이다. 창발적 행동으로 말미암아, 많은 인공생명 프로젝트는 연극의 인물을 창조하게 하고, 그 인물들이 줄거리를 만들어 가게 하는 것으로 된다. 창발적 행동은 확실히 인공생명으로 하여금 생물을 닮게 만든다. 또한 자기 조직화의 법칙이 작용하고 있다라는 생각의 강력한 근거가 된다.

  (2) 유한 상태 기계(Finite State Machine : FSM)

많은 인공생명 실험은 유한 상태 기계와 연루되어 있다. 용어가 좀 어렵게 들리겠지만, 발상은 간단하다. 상태라는 개념부터 들어가 보자. 선풍기 같은 단순한 기계를 생각해 보자. 선풍기를 제어하는 수단이 켜고 끄는 스위치뿐이라고 가정하자. 그때 우리는 선풍기가 가능한 상태 두 가지 중의 하나에 놓여 있다고 말할 수 있다. 이제 3단계 속도를 가진 또 하나의 선풍기를 생각해 보자. 그것은 가능한 상태 네 가지 중 하나에 있을 것이다(끔, 느린 속도, 중간 속도, 빠른 속도). 이제는 속도를 연속으로 조정할 수 있는 고급 모델 선풍기를 생각해 보자. 이 경우 속도의 연속적인 폭 때문에 모든 가능한 상태를 항목화할 수 없다. 1과 2 사이의 모든 분수를 적으려는 것과 같다.

다음, 유한의 개념을 생각해 보자. 유한은 한계를 지웠다는 의미이다. 따라서 앞의 두 선풍기는 한계를 지운, 또는 유한 개수의 가능한 상태 2 와 4 를 각각 가진 것이라고 말할 수 있다.

지금까지 논의를 통하여, 유한 개수 상태를 가진 기계인 두 선풍기가 유한 상태 기계라고 생각할 수 있을 것이다. 그러나 FSM은 유한 개수 상태를 가진 기계라는 것 이상의 의미를 가지고 있다. 이를 그림 1에 설명해 놓았다. 특히 하나의 FSM은

그림 1 유한 상태 기계

컴퓨터는 FSM의 완벽한 보기이다. 이러한 점들이 IBM 호환 PC에 어떻게 적용되는지 알아보자. 우선 컴퓨터는 부속품들의 조합이다. 가장 중요한 부품은 중앙 처리 장치(CPU)와 기억 장치(memory)이다. CPU는 가산된 숫자, 획득된 정보의 기억 주소, 그리고 실행될 다음 명령어의 기억 주소와 같은 데이터를 가지고 있는 몇 개의 레지스터를 포함한다. CPU의 상태는 이 레지스터 집합으로 이루어진다. 유한 개수의 레지스터가 있고 각 레지스터가 유한 개수의 가능한 값만을 가질 수 있으므로, 유한 개수의 가능한 상태가 있게 된다. 비슷한 식으로, 기억 장치의 상태가 기억 장치의 내용이 될 것이다. 유한 개수의 기억 위치가 있고, 그 각각은 유한 개수의 가능한 값만을 가질 수 있고, 따라서 여기서도 유한 개수의 상태가 존재하게 된다 (유한하다지만, 가능한 상태의 개수는 엄청나다. 예를 들면, 1 메가바이트의 기억 장치에서 가능한 상태의 개수는 거의 2×101541 이다. 2 뒤에 0 이 1,541 개 따라붙는 수만큼의 개수이다). 컴퓨터의 다른 부품들도 비슷한 특성을 가지고 있다. 그러므로 대개의 컴퓨터는 유한 개수의 상태를 가진다.

컴퓨터는 확실하게 자신의 상태를 시험해 볼 수 있다. 예를 들어 컴퓨터는 내장된 명령(기계어)의 집합으로 모든 기억 위치와 레지스터에 접근하고 작동해 볼 수 있다. 뿐만 아니라 컴퓨터는 자판이나 디스크 드라이브를 통하여 외부로부터 입력을 받아들일 수 있다.

이산이란 말은 '구분이 되는, 분리된'을 뜻한다. 이산된 시간의 단계 속에서 움직인다 함은 시스템이 될수록 짧은 유한한 시간동안 한 상태에 머물고, 그리고 나서 다음 상태로 변화하는 것을 의미한다. 그러므로 FSM 의 작동은 일련의 상태들로 이루어지고, 그 각각은 일정 기간 유지된다. 컴퓨터의 시스템 클럭은 상태의 변화를 통제한다. 가령 CPU의 한 레지스터에는 20 이, 또 한 레지스터에는 30 이 저장되어 있고, 20 과 30 의 합으로 20 을 대체하려고 한다고 가정해 보자. 그리고 그것을 수행하는 하나의 컴퓨터 명령이 있다고 가정하자. 각 내장 명령을 수행하는 데는 정해진 시간의 양, 즉 정해진 수의 클럭 사이클이 걸릴 것이다. 예를 들어 더하기 명령은 4 사이클이 필요하다 : 프로세스의 시작에 레지스터는 20 과 30 을 가지고 있다가, 4 사이클 이후에는 상태가 변해서, 레지스터는 50 과 30 을 가지고 있게 된다.

끝으로, 컴퓨터는 일단의 규칙, 즉 현재 프로그램에 따라서 그 상태를 변화시킨다. 컴퓨터는 기계어 명령을 읽고, 그것에 따라서 상태를 변화시킨다. 예컨대 명령이 기억 장치로부터 CPU에 값을 복사하라고 할 수 있다. 이 명령이 실행된 후에, 컴퓨터는 값이 적당한 레지스터에 저장된 새로운 상태에 있게 된다. 이 명령을 실행한 또 다른 결과는, 다음 사이클에 실행될 명령을 결정하는 명령 레지스터가 실행될 다음 명령의 기억 주소에 지정되어 있다는 것이다. 그것도 컴퓨터가 작동하기 위해 따르는 규칙들 중 하나이다. 컴퓨터는 프로그램에서 안내한 대로 한 상태에서 다음 상태로 간다.

컴퓨터가 FSM 의 좋은 예라고 하는 것이 그리 새삼스러운 것은 아니다. 영국의 논리학자 앨런 튜링 (Alan Turing) 은 작동할 때 규칙들을 읽어들일 수 있는 FSM 이 보편적인 컴퓨터임을 이미 1936년에 증명해 보였다.

이장에 있는 대부분의 프로그램은 유한 상태 기계를 포함한다. 첫째로, 그것들은 FSM 의 하나인 컴퓨터 상에서 작동한다. 둘째로, 그것들은 컴퓨터를 이용해서, 지금껏 토론했던 컴퓨터의 예보다도 훨씬 단순한 FSM 을 모델화한다. 세포 자동자들은 간단한 예들이다.

  (3) 세포 자동자(Cellular Automata)

세포 한 격자를 만들자. 각 세포에게 유한 개수의 가능한 상태를 허용하자. 예를 들어 두 상태 세포는 켬 또는 끔, 생 또는 사, 적 또는 청의 상태에 있을 수 있다. 네 가지 상태 세포는 적·황·녹·청 상태에 있거나, 상·하·좌·우로 움직일 수 있다. 각 시간 단계, 또는 세대는 그 세포의 현 상태와 인접한 이웃들의 상태에 근거한 일단의 규칙들에 따라서 변화한다. 이러한 시스템은 자동자로서, 일단 시작하면 내장된 프로그램에 따라서 진행된다. 시스템이 세포로 구성되어 있기 때문에, 세포 자동자(Cellular Automaton), 또는 줄여서 CA라 부른다. 영어의 복수형은 Cellular Automata이다.

  ◎ 1차원 세포 자동자

가장 단순하면서도 재미있는 세포 자동자는 선형의 CA, 즉 한 줄짜리 세포이며, 각 세포는 두 가지 가능한 상태를 가진다. 단순하게, 두 상태를 생(live)과 사(dead) 부르자. 세포의 다음 상태를 결정할 규칙은 세포 자신의 현재 상태와 그 주변 세포의 상태에 달려 있는데, 여기서 세포는 그 왼쪽 세포의 상태를 따르면서 그 오른쪽 세포 쪽으로 이동한다. 많은 가능한 규칙이 있다. 보기로 다음을 들 수 있다.

인접한 세 세포에는 8개 (23)의 가능한 상태 조합이 있고, 완성된 일단의 규칙들은 이 모든 가능성을 배려해야만 한다. 다음그림은 8개의 조합을 보여준다. 규칙이 특정 조합에서 적용되지 않는다면, 세포는 그 조합이 나타났을 때 취해야 할 동작을 모를 것이다. 각 규칙에서 그 세포는 다음 단계에 '사'이거나 '생'이다. 첫 번째 규칙의 두 가지 경우, 두 번째 규칙의 두 가지 경우 등등으로, 선택할 수 있는 가능한 규칙 집합은 256개 (28) 가 있다.

그림 2 8개의 가능한 상태 조합

  조합
  조합은 이 장에서 갑자기 튀어나왔으므로, 그 계산법을 검토해 보자. 예를 들면, 어째서 3개의 세포에는 정확히 8개의 가능한 상태 조합이 있는가? 더 단순한 경우, 세포 하나에서 시작하자. 한 세포는 '생' 또는 '사'일 수 있으므로, 두 가지 가능한 상태를 가진다. 이제 두 번째 세포를 붙이자. 이렇게 하면 상태의 수는 배가 되는데, 원 상태가 각각 '생' 또는 '사'의 두 번째 세포와 짝을 이루기 때문이다. 결국 상태의 수는 4가 된다. 이제 세포를 하나 더 붙여보자. 이러면 상태의 수는 다시 배가하는데, 원래의 4 상태 각각이 다시 '생' 또는 '사'의 세포와 조합하기 때문이다. 일반적으로, 하나의 새로운 세포가 더해질 때마다 가능성은 배로 는다. 이것이 23 가능한 상태로 이어지는 이유이고 28의 가능한 규칙 집합이 되는 이유이다.

규칙 중 몇 가지 경우는 무의미(dull)하다. 예를 들어 모든 8개의 상태가 하나의 '사' 세포를 만든다면, 한 시간 단계만 지나도 '생' 세포는 하나도 남지 않게 된다. 또는 '생' 세포가 이웃의 모든 가능한 상태에 대하여 '생' 세포가 되고, '사' 세포가 이웃의 모든 가능한 상태에 대하여 '사'를 유지한다면, 그 CA는 전혀 변하지 않을 것이다. 그러나 어떤 경우들은 흥미로운 가능성으로 안내하는데, LINE-CA 선형 세포 자동자 프로그램으로 탐구해 볼 수 있다.

다른 여러 선형 CA들도 가능하다. 예를 들어, 가능한 상태의 개수를 증가시킬 수도 있고, 이웃 세포의 정의를 확장하여 더 많은 세포를 왼쪽과 오른쪽으로 포함하게 할 수도 있다. 그러나 이 가능성들은 건너뛰어 다음 차원으로 가자.

  ◎ 2차원 세포 자동자

2차원 격자판의 세포를 사용하면, 더욱 복잡한 CA들을 만들 수 있다. 케임브리지의 수학자 John Conway 의 생명 게임은 CA 의 가장 훌륭한 예이다. 여기서도 각 세포에는 두 가지 가능한 상태, 즉 '생'과 '사'가 있다. 또한 세포의 운명은 그의 상태와 인접한 이웃, 즉 그와 접한 세포 8개의 상태에 따라 결정된다. 연관된 9개의 세포이므로, 상태의 가능한 조합은 512 (29)가 있고, 규칙의 가능한 집합은 2512 (1.3×10154)개가 된다. 콘웨이는 여러 규칙의 집합들을 오랜 시간 연구하여 하나의 흥미로운 세계를 만드는 규칙 집합들을 발견하였다. 그가 도달한 결론은 아래와 같다.

이 규칙들은 탐구할 만한 매력적인 세계를 제공해 준다. 지금 시간을 내서 첨부된 생명 게임을 해 보고 싶을 지도 모르겠다. '생' 세포의 일부 초기 패턴은 죽어 버릴 것이고, 일부는 수백 세대를 진행하다가 죽어 버리고, 일부는 안정된 패턴을 이루고, 일부는 안정된 패턴들 사이에서 오락가락하고, 나머지는 격자판을 가로지르며 움직일 것이다.

  얼마나 많은 규칙이?
  생명 게임에서, 세포의 운명은 그 세포의 상태와 이웃한 세포 8개의 상태에 의존한다. 이들 상태에 대하여 각기 다른 512개의 가능한 조합이 있으므로, 이 규칙은 이들 경우의 각각을 커버해야만 한다. 이것은 512개의 규칙이 필요하다는 것을 의미하나, 생명 게임은 단지 2개의 규칙만을 가진다. 콘웨이의 규칙 각각이 실제로 몇 개의 규칙 집합을 조합하므로, 그것이 현실적으로 모순을 일으키지 않는다. 예를 들어, 두 번째 규칙은 실제로 56규칙이 된다. 중앙 세포 둘레의 세 이웃 세포를 배열하는 다른 방법이 56개 있고 그 각각은 그 자신의 규칙을 가지기 때문이다. 따라서 콘웨이의 규칙 각각은 많은 소규칙(microrule)을 통합하는 소규칙으로 생각할 수 있다.

생명 게임을 해보면 단 두 상태의 CA 라도 놀랍도록 많은 변이를 만들어 낸다는 것을 확신하게 될 것이다. 예를 들어 여덟가지 상태를 원한다면, 다른 색깔을 표현하는 상태들로 만들고, 규칙들은 세포의 색깔이 진화하는 법을 특화시킬 수 있다. CSPAC4 순환공간에서 제시된 사이클 공간 프로그램 CSPAC3 의 밑바탕에는 이러한 발상이 들어 있다. 만약 생물학적인 유사성을 고집한다면, 두 상태는 세포의 '생'과 '사'를 표현하게 하고, 추가 상태들은 '기아'와 '영양' 또는 '식사'와 '비식사' 그밖의 어떤 동작을 가리키게 할 수 있다. 유전자 프로그램은 이러한 방법을 이용한다.

  ◎ CA규칙의 분류

당신은 1 차원의 두 상태 CA (256개의 가능한 규칙 집합) 에서 2 차원의 두 상태 CA (1.3×10154개의 가능한 규칙 집합) 로 갈 때, 가능한 규칙의 수가 엄청나게 증가한다는 것을 알아차렸을 것이다. 역사적으로 연구자들은 2 차원 CA 들을 먼저 연구하였다. 그러나 매스매티카 (Mathematica) 기호 수학 프로그램의 창시자 스티븐 울프램 (Stephen Wolfram) 은 1차원 CA 들의 선택이 유한 개수이기 때문에 초기에 부류 class를 나누어 연구할 수 있다는 것을 깨달았다. 울프램은 규칙 집합을 네 부류로 분류할 수 있다는 것을 알았다.

1 부류 : 모든 '사' 세포 또는 모든 '생' 세포 같은 무의미한 보편자를 만드는 규칙들.
2 부류 : 안정되고 반복되는 배열을 만드는 규칙들.
3 부류 : 혼돈스러운 패턴을 만드는 규칙들.
4 부류 : 복잡하고 논리적으로 구성된 패턴을 만드는 규칙들.

4 부류의 CA가 가장 생명에 유사한 것이고, 울프램의 분류 스키마는 본질적으로 생명체에 대하여 유사성을 늘려 나가는 것이다. LINE-CA 를 할 때 울프램의 스키마에 따라서 당신은 테스트할 규칙들을 분류하고 싶을 것이다.

울프램의 스키마는 규칙들을 분류하는 질적 스키마이다. 크리스 랭턴(Chris Langton)은 규칙 집합에 λ라고 하는 숫자적인 양을 할당해서 더 양적인 스키마를 개발했다. CA를 계산하는 이 양은 값의 전영역에 걸쳐서 완만하게 분포되어 있다. λ값에 따라서 울프램의 부류를 배치해 보면 이러한 순서, 즉 1 부류, 2 부류, 4 부류, 그리고 3 부류가 된다. 재미있는 점은 4 부류의 행동은 λ값이 좁은 폭으로만 변해도 일어나는데, 그 행동이 규칙적이고 주기적인 행동에서 혼돈스러운 행동으로 변한다는 것이다. 랭턴의 관점에서는, 주기적인 행동과 혼돈스러운 행동 사이에서 위상 전이(phase transition)를 하고, 생명과 지능은 이 전이지대 안에서 가능하게 된다. 그래서 그는 카오스의 가장자리에 있는 생명이라고 말한다. 

2. 정보의 역할

생물은 정보의 창조물이다. 이 말은 인간에게는 정확히 들어맞는다. 교통 신호가 푸른색이면 진행을 뜻한다는 것을 안다. 인간은 경험을 통하여 그 정보를 뇌 안에 부호화한다. 그러나 정보의 중요성은 세포 수준에서도 그대로 통한다. 몸 속의 근육 세포가 에너지 이용에 필요한 효소 분자를 좀더 많이 필요로 한다면, 그것은 효소들을 만들어 낸다. 근육 세포는 어떻게 어떤 종류의 분자를 만들어 내야 할지 아는 것일까? 그 정보는 당신의 DNA 분자 속에 부호화해 있다. 세포가 분열할 때 각 세포는 한 묶음의 DNA를 가지게 되므로, 정보가 세대에서 세대로 전달되는 것이다. 세포들이 필요로 하는 모든 것을 배우기에는 시간과 능력이 부족하기 때문에, 이것은 다행한 일이다. 또 다른 한 정보는 유기체가 자신의 상태와 주변 환경을 구성해 내는 의식이다. 의식은 빛에 대한 단세포 유기체의 의식일 수도 있고, 인간의 복잡하고 무의식적인 지각일 수도 있다. 그러나 또 하나의 명백한 정보는 많은 생명 형태가 경험을 통하여 배우는 것이다. 결국 일부 생명 형태만이 정보를 작동해 행동 과정을 결정할 수 있다. 간단히 말해서 정보는 생명의 일부분인데, 다음의 항목으로 요약된다

  정보는 인공생명에서도 비슷한 구실을 한다. CA들을 예로 들어 보자. 각 세포의 행동은 정보의 한 형태인 규칙 집합과 정보의 또 다른 형태인 그 세포의 상태와 이웃 세포의 상태에 따라 결정될다.
  그것들은 생물학적인 세포에서 DNA와 유사하다. 세포와 그 이웃 세포의 상태에 관한 지식은 생물학적인 세포에서 감각적인 입력에 유사한 의식이다. 끝으로, 세포의 다음 세대는 현세대와 동일한 규칙을 따른다. 이것은 생물학적인 세포가 그들의 선조로부터 유전적 정보를 물려받는 방법과 유사하다. 일부 인공생명 형태는 학습의 행동도 보여 준다. 지금까지 인공생명은 더 높은 지성의 명백한 신호를 보여 주지 못하고 있는데, 이것도 달라질 것이다. 이제 유전자가 어떻게 정보를 부호화하고 전이하는지 더 깊이 공부해 보자.

  (1) 진짜 유전자와 인공 유전자

50년 전, 생물학자들은 유전자를 유전적 성격을 결정하는 한 요소라고 규정하였다. 하나의 유전자가 당신의 눈 빛깔을 결정하고, 다른 유전자는 당신이 특정 화학물을 맛 볼 수 있도록 결정한다. 유전자는 세포의 염색체 안에 있다. 1953년 Watson, Crick, Wilson 의 연구는 염색체가 DNA 분자로 구성되어 있다는 것을 밝혀 냈고, 오늘날 우리가 유전자를 이해하는 길을 열었다. 이제 우리는 유전자 하나를 한 조각의 DNA 분자로 생각할 수 있게 되었다. 각 유전자는 특정 효소, 호르몬, 혹은 기타 단백질을 구성하는데 필요한 정보를 가지고 있다(하나의 효소는 특정 화학 반응에 촉매 작용을 하는 단백질의 일종이다). 예를 들면, 갈색 눈을 위한 유전자는 홍채에서 갈색 색소를 생산하는데 촉매 작용을 하는 효소를 생산하게 할 것이다. 더불어 그 다양한 화학 반응은 세포의 특성·구조·행동을 결정한다.

  DNA
  DNA는 디옥시리보 핵산 택사스(deoxyribo acid)의 약어이다. DNA는 이중 나선 구조이다. 그것은 유연한 사다리를 가져와서 길이에 평행하게 꼬았을 때의 모양이다(그림 4). 사다리의 가로대는 뉴클레오티드 염기(nucleotide bases)라고 하는 쌍을 이루는 분자로 이루어진다. DNA는 그러한 네 가지 분자를 사용한다: 아데닌(adenine: A), 구아닌(guanine: G), 시토신(cytosine: C), 그리고 티민(thymine: T). A 염기는 항상 T 염기와 짝을 이룬다(그 역도 마찬가지다). 그리고 C 염기는 항상 G 염기와 짝을 이룬다(그 역도 마찬가지다). TTAGCCTAC....처럼 사다리의 한쪽 면을 훑어 내리면서 염기를 순서대로 나열함으로써, DNA 분자의 구조를 기술할 수 있다. 염기의 순서는 DNA가 전달하는 유전 코드를 말하는 것이다.

 

그림 3 DNA 구조

  유전자가 단백질을 조절하는 실제 메커니즘은 간단하지 않다. DNA의 각 유전자 조각은 길이에서 그 유전자 조각과 동일한 RNA를 만들고 약 1,000개의 뉴클레오티드 염기를 구성하기 위한 주형으로 작용한다. 전령(messenger) RNA(mRNA)라 하는 이 분자는 세포 안을 이동하면서 단백질 공장인 리보솜에 달라붙는다. 반면에 운반(transfer) RNA(tRNA)라 하는 더 조그만 RNA 분자는 이미 세포 주위를 떠다니는데, 각기 독특한 종류의 tRNA는 mRNA의 뉴클레오티드 배열에 의해 결정되는 순서로 mRNA에 대응하여 정렬한다(각 tRNA 분자를 두 개의 특별한 고리를 가진 것으로 생각할 수 있다. 하나의 고리는 한 종류의 아미노산에 달라붙고, 또 다른 고리는 mRNA 분자의 한 지점(site)에 달라붙는다). 달라붙은 아미노산을 특정 순서로 연결해서 원하는 단백질을 형성하기 위해 정렬하는 것이다. RNA에 있는, 궁극적으로는 DNA에 있는 특정 순서의 뉴클레오티드 염기는 아미노산이 만들어지는 순서를 결정한다. 그래서 DNA 분자는 세포가 해낼 수 있는 모든 반응을 결정하는 정보를 가지고 있고, 따라서 세포의 구조와 행동을 결정한다.
  생물학자들을 DNA 코드를 해석하여 20개의 아미노산 구성 요소 각각이 DNA 분자의 뉴클레오티드 염기 특정 패턴에 의해서 표현된다는 것을 발견하였다. 예로써, 패턴 CGA는 아미노산 아르기닌(arginine)과 대응하고, ACC는 트레오닌(threonine)과 대응한다. 그래서 패턴 CGAACC는 아르기닌 분자에 연결된 트레오닌을 의미한다. 실제로 이 코드는 풍부해서, 하나의 이상의 염기 패턴이 하나의 아미노산과 대응한다. 이런 이유로 코드 패턴 64개가 아미노산 단 20개에 나뉘어 있는 것이다. 3개의 염기가 한 조를 이루고 잇는 것(CGA 등등)을 코돈(codon), 트리플렛(triplet), 또는 코드 워드(code word)라 부른다. 지구상의 모든 생물은 아주 작고 부분적인 예외 몇몇을 제외하고는 거의가 동일한 코드를 사용한다.
  DNA-RNA 메커니즘은 놀라우리만큼 복잡하다. 다행스럽게도 인공생명은 이 메커니즘을 그대로 따를 필요는 없고 그 결과만 따른다. 예를 들어 LINE-CA 프로그램의 1 차원 CA는 규칙을 8개 이용한다. 개념적으로는 각 세포가 인공 유전자의 형태 8개 속에 규칙을 8개 가지고 있는 것으로 간주할 수 있다. 실제로 규칙들은 컴퓨터 프로그램 속에 있으나, 세포들은 마치 각 세포가 규칙을 실제 가지고 있는 물리적인 개체인 것처럼 행동한다. 인공생명이 컴퓨터 구조물이 아닌 로봇 같은 것이라면, 각 개체는 내장프로그램의 형식으로 새로운 유전자를 물리적으로 전달할 것이다.
  뿐만 아니라, 인간은 유전자를 10만 개 가지고 있으나, 인공생명은 훨씬 적은 양의 정보, 훨씬 덜 혼란스러운 내용으로도 흥미로운 결과를 만들 수 있다.

  RNA
  RNA는 리보 핵산(ribonucleic acid)의 약어이다. RNA 분자는 세포로 나뉜 DNA 분자와 같다. 즉, 2개가 아니라 한 줄기를 가지고 있고, 연결된 쌍이 아닌 단일 뉴클레오티드가 나열되어 있다. RNA 분자는 DNA보다는 훨씬 짧다. 그렇지만 RNA는, 티민 대신에 우라실(uracil). U을 가지는 것 이외에는 DNA와 동일한 뉴클레오티드 염기를 사용한다. RNA는 mRNA, 운반 tRNA, 리보솜(ribosomal RNA(rRNA)) 세 종류가 있다. 세포에서 DNA의 다양한 조합은 세포 속을 떠다니는 뉴클레오티드로부터 세 종류의 RNA를 합성하기 위한 주형(template)으로 작용한다.

 

  유전자, 게놈(genome), 그리고 대립 형질(allele)
  유전자는 유전의 단위로, 특정 단백질을 부호화하는 DNA 조각이다. 게놈은 한 종을 위한 완전한 유전자 세트이다. 인간의 경우 게놈은 10만 유전자로 구성되어 있다. 생물학의 위대한 프로젝트 가운데 하나는 인간 게놈의 지도를 만드는 것, 즉 각 유전자의 크기·위치·목적을 밝혀 내는 것이다. 특정 유전자는 대립 형질이라고 하는 여러 형태를 가질 수 있다. 예를 들어 눈 빛깔을 조절하는 유전자를 생각해 보자. 이 유전자는 갈색·파란색·녹색·검정색과 같은 여러 대립 형질을 가진다. 인공생명에서는, 유전자에 다양한 값을 주어서 대립형질을 생각해 볼 수 있다.

  (2) 새로운 세대에게 정보 전달하기

  생물의 세포가 분열할 때, 그 유전적 유산을 후손에게 전승해야만 한다. 이 때 간단한 방법은 염색체를 그대로 복제하여 완전한 세트를 딸 세포에 전달하는 것이다. 이것은 우리 몸의 세포 대부분이 하는 것이고, 아메바 같은 무성유기체가 하는 것이다. DNA 분자가 자기 복제를 하는 놀라운 능력으로 무성 생식이 가능하다.
  컴퓨터 보조 인공생명에서 이 과정은 더욱 간단하다. 프로그램은 세포 각 세대에게 동일한 규칙의 집합을 적용하기만 하면 된다. 한편 자기 복제 로봇은 실행할 수 있는 메커니즘, 예를 들자면 새로 만들어진 로봇에게 프로그램을 심어야 할 필요성이 있을 것이다.

  (3) 경쟁

  생명 게임에서, 모든 세포에게는 동일한 규칙이 작용하고 그 규칙은 변하지 않는다. 현실의 생명에서는, 몸 속의 세포에 대해서는 사실이겠지만, 박테리아군을 이루는 모든 세포에게는 사실이 아니다. 박테리아에게는 일부 유전적 돌연변이체가 있고, 시간이 지나면 유전적 성격의 변화가 일어난다. 예를 들어 페니실린은 한때 박테리아에게 치명적이었으나, 수많은 종이 페니실린에 내성을 가진 돌연변이체를 진화시켰다.
  여러 인공생명 형태의 세포들에게 유전자의 변형을 제공하고 유전자를 변화시키는 방법을 제공함으로써, 인공생명에서도 이러한 행동을 모방할 수 있다. 이로써 인공생명이 완전해질 수 있고 진화할 수 있는 환경이 마련되는 것이다.

  (4) 성

  생물학적인 생명은 유전 정보를 후손에게 전달하기 위한 제 2의 메커니즘, 즉 유성 생식을 발전시켰다. 여기서 핵심은 후손이 홀 부모의 유전적 정보를 복제하는 대신에 둘인 부모로부터 유전적 정보를 합성하여 물려받는다는 것이다(그림 4). 여기서 또한 DNA 분자가 중요해진다. 유성 유기체는 각각은 부모 한쪽에서 하나씩, 두 세트의 염색체를 가진다. 단세포 유기체는 염색체를 임시로 합병하고 교체함으로써 유성 생식을 할 수 있다. 사람과 같은 다세포 동물은 이 과정이 더욱 복잡하다. 우선 특별한 세포(난자와 정자)가 단일 세트의 염색체를 형성하는데, 이 세트는 원 염색체 세트 2개를 합성한 것이다. 즉, 염색체 일부는 한쪽 부모에서, 일부는 다른 한쪽에서 나온 것이다. 모든 염색체는 합성된 것일 뿐만 아니라 대응하는 두 DNA 분자가 임시로 결합하고 일부분을 나누어 일정 지역을 교체한, 교차(crossover) 염색체일 수 있다. 이것은 단일 염색체(DNA 분자)라도 양쪽 부모로부터 유전자를 받아서 만들어질 수 있다는 것을 의미한다. 끝으로, 정자 한 개체는 난자 한 개체와 만나서 새로운 염색체 조합을 만들어 내는데, 이 경우 조부모 4명으로부터 받은 염색체를 가지게 되는 셈이다. 유성 생식의 출현은 지구 생명의 발전에 이정표가 되었다. 왜냐하면 새로운 유전자 조합을 만들어 내어 다양성을 크게 이루었기 때문이다.
  인공생명은 인공생명의 단위에게 유전자를 합성하도록 함으로써 이 과정을 모방한다(예를 들어 MICROANTS 프로그램). 인공생명은 새로운 유전자 배열을 첨가할 수도 있다. 교차를 제외하면, 생물의 성은 유전자가 아닌 전염색체를 합성한다. 전형적인 유전자는 유전자 2만개를 가지고, 큰 유전자 블록이 한 단위로 유전된다. 그렇지만 인공생명 프로그램은 개별 유전자를 무작위로 선택할 수 있다. 또한 인공생명은 세 성, 네 성 혹은 더 일반적으로 n-성일 수 있다. 이것은 생물학적인 것을 뛰어넘는 모든 종류의 가능성을 연구하는 수단을 제공한다.

그림 4 단순한 유성 생식

  (5) 학습

  유기체는 두 가지 수준, 종 수준과 개체 수준에서 학습한다. 종의 학습은 진화이고 개체의 학습은 지능의 한 형태이다. 예를 들어 MICROANTS 프로그램에서는 개미의 경쟁 그룹들을 진화시킬 수 있다. 뒤에 설명할 유전 알고리즘과 같은 인공생명의 발상은 인공지능 학습에 새로운 방법론을 약속해 주는 것이다. 인간 사회는 종의 학습에서 새로운 형식, 즉 문화적 진화를 발견해 냈다. 그러나 지금까지 인공생명이 이 형식은 모방하지 못했다.

 

3. 진화

  (1) 누적적 선택(Cumulative Selection)의 위력

  진화란 누적적 선택의 문제로서, 새 세대 각각은 앞선 세대의 최고 수준에서 성립하는 것이다. 얼마나 많은 무작위적인 돌연변이가 엄청나고 목적론적일 것 같은 변화를 이끌어 내는지를 진화상에서 보게 된다. 핵심은 누적적 선택의 위력이다. 리처드 도킨스의 책 「눈먼 시계공」에서 논의된 것과 같은 보기를 살펴보면 이것을 깨닫게 된다.
  시간을 충분히 준다면, 타자기를 가진 원숭이들도 셰익스피어의 모든 작품을 베낄 수  있을 것이라는 이야기를 당신도 아마 들어 본 적이 있을 것이다. 이것은 원칙적으로 타당하겠지만, 요구되는 시간을 따지자면 우주의 나이를 거의 영으로 보아야 할 정도 일 것이다. 예를 들어 영어 알파벳 스물여섯 자와 빈 칸 하나를 더해 스물일곱 자에 한정한 과정을 상정해 보자. 또한 무작위로 셰익스피어 작품 모두를 베끼는 대신에, 'ㅇ'와 같은, 비교적 짧은 말을 베끼려 한다고 가정하자. 초당 한 글자의 비율로 'ㅇ'을 친다면 얼마만한 시간이 걸릴 것인가? 실제로 대답할 수가 없다. 무작위적인 처리에서는, 'ㅇ'가 바로 첫 시도에 나타날 수도 있다. 스무 번을 시도해도 안 나타날 수도 있다. 백번째 시도에서도 여전히 안 나타날 수도 있다. 'ㅇ'를 얻을 가능성은 27분의 1이지만, 'ㅇ'가 스물일곱 번 시도하는 동안에 나타나리라는 어떠한 보장도 없는 것이다. 그렇지만 수학적으로는, 'ㅇ'가 스물일곱 번 시도하는 동안에 나타날 가능성이 반이라는 것을 보여준다. 따라서 27초 안에 그 말을 할 가능성은 반이다.
  좀더 열의를 가지고 'AH'라는 말을 만들어 보자. 이번에는 첫 번째 글자에서 스물일곱 개의 가능한 선택가 두 번째 글자에서 스물일곱 개의 가능한 선택, 즉 27×27, 729의 가능한 두 글자 말이 있게 된다. 따라서 가능성은 칠백스물아홉 번의 시도 또는 729초 안에 무작위적으로 'AH'를 칠 가능성은 절반인 것이다. 작업이 더욱 어려워진 것에 주의하라. 실로 말의 길이에 한 글자를 더할 때마다 작업은 스물일곱 배로 어려워지고, 평균하여 스물일곱 배나 시간이 걸린다.
  좀더 짧은 구절 'Some are born great'를 생각해 보자. 이것은 빈 칸까지 포함해서 열아홉 글자이다. 열아홉 글자를 치는 데는 27
19, 약 1.57×1027 시간이 걸린다(1027은 1에 0이 27개 붙는 숫자). 486급 컴퓨터는 이 정도 길이의 말을 1초에 약 팔천 번 무작위로 말할 수 있을 것이다. 많은 원숭이가 아닌 여러 마리의 원숭이가 쉽게 능가하는 정도 수준에서, 컴퓨터는 그 말을 맞추는데 평균 잡아 6천조 년을 소요할 것이다.
  이제 그 과정에 누적적 선택을 더해 보자. 이것을 하는 한 가지 방법은 하나의 무작위 말로 시작하여 원 말에서 조금씩 변이된 후속 말을 스무 개 만드는 것이다. 그리고 원하는 말에 가장 근접한 후속 말을 고름으로써 선택을 적용해 보자. 가장 적절한 것을 스무 번 변이하여 이 과정을 되풀이하자. 각 세대마다 가장 적당한 문자열(string)을 골라서 그것을 변이하자. 이 과정은 순수한 무작위 변화보다는 더욱 빠르게 진행된다. 예를 들면, 목적 문자열을 무작위로 맞추는 데 6천조 년이 걸리는 동일한 컴퓨터로 이 방법을 사용하면 단지 124 세대와 0.2초 걸려서 목적 문자열에 도착한다!
  6천조 년을 0.2초로 줄인다니 누적적 선택의 위력을 다소 느낄 수 있을 것이다. 믿기 어렵다면, WORDEVOL 프로그램을 한번 해 보라. 좀더 확신을 얻고 싶다면, 「눈먼 시계공」을 읽어 보라.
  이 모델은 실제 진화를 아주 단순화한 것이다. 예를 들면, 생존 테스트는 복잡하고 변화하는 환경에서의 생존보다는 주어진 말에 대한 유사성이다. 언어 진화도 그 합성에 새로운 성격을 도입할 수 없으므로 개방적이지 않다. 그래도 역시 순수한 무작위적 변화와 누적적 선택으로 조합된 무작위적 변화 사이에는 엄청난 차이가 존재하는 것을 보여 준다. 많은 인공생명 실험은 누적적 선택을 이용하는데, 이 장에 나오는 MICROANTS, GENE, BIOMURFFS도 마찬가지다.
  누적적 선택은 이미 작동하는 유전자를 고를 때에만 기능한다. 세계가 이전에 보지 않은 것을 만들어 내기 위해서는, 진화는 새로운 유전자나 새로운 유전자 조합이 필요하다. 자연에서는 두 가지 과정이 다 일어난다.

  (2) 돌연변이(새로운 유전자)

  역사적으로 생물학자들은 진화에서 돌연변이의 역할을 강조해 왔다. 우주선 방사를 포함하여 자연적인 방사능에 대한 노출, 자외선에 대한 노출, 화학 물질에 대한 노출 등 많은 과정을 통하여 DNA 복제가 불완전하게 진행되어 돌연변이된 유전자로 이어진다. 대부분의 돌연변이는 해롭거나 실제적 효과가 없지만, 때때로 돌연변이는 유익할 수 있다. 시간이 진행되면서 유익한 돌연변이가 더욱 더 퍼져간다. WORDEVOL 프로그램에서 보여 주듯이, 개체 변화는 적다고 하더라도 연속된 변화의 누적적 효과는 엄청날 수 있다.

  (3) 유전자 합성과 교차(기존 유전자의 새로운 조합)

  원칙적으로, 한 부부는 유전적으로 구분되는 자식들을 얼마나 많이 가질 수 있을까? 대부분의 인간 세포는 부모 양쪽에서 23개씩, 46개의 염색체를 가진다. 난자 세포는 염색체 23개를 가지는데, 각 염색체는 모두 난자 매개체인 아버지 또는 어머니로부터 물려받은 것과 거의 동일할 것이다. 즉, 염색체 #1에 대해서 가능한 기회가 두 번있고, 염색체 #2에 대해서 또 가능한 기회가 두 번 있고 ... 이런 식으로 계속된다. 모두 합쳐서, 원칙적으로 별개의 염색체 배열이 하나의 난자에 대해서 223개가 되며, 한 어머니는 223, 즉 서로 다른 난자를 8백 40만개 낳을 수 있다. 마찬가지로 한 아버지도 223, 즉 서로 다른 정자 세포를 8백40만개 만들 수 잇다. 그래서 246, 즉 다른 정자-난자 70조 개를 조합하는 일이 가능하게 된다. 결국 한 부부는 지구와 같은 세계 만 개를 가득 채울 인구를 낳아도 동일한 유전패턴(유전자형)을 가진 두 아이를 가질 수 없다! 이것은 조부모 4명이 결코 똑같이 복제된 염색체를 가질 수 없다는 것을 가정한 것이다.
  이 놀라운 숫자는 별개의 두 46염색체로부터 나온 것이다. 물론 전체로서의 인간 집단은 별개의 유전자 세트를 훨씬 많이 가지고 있으므로, 구분할 수 잇는 경우는 70조보다 훨씬 많을 것이다. 얼마나 더 많을지는 아무도 모른다. 그러므로 이미 존재하는 염색체를 합성하는 것만으로도 다양성 면에서 엄청난 잠재력을 가진다. 난자와 정자 세포를 만드는 과정에서 또한 유전자 교차가 일어나서, 그림 5에서 보여 주듯이, 유전자 일부를 교환하는 것을 상기해 보라. 이것은 유성 생식이 염색체를 합성하는 것뿐만 아니라, 새로운 염색체들을 만들기도 하는 것을 의미한다.

그림 5 염색체 교차

   기존의 염색체 형에 대해서 인간들에게 가능한 모든 염색체 조합(교차도 포함하여)을 생각해 보자. 이것을 인간 종을 위한 유전적 공간(genetic space)이라고 부른다. 이 염색체 조합과 대응하는 인간 개체의 가능한 숫자는 지금까지 살아온 인간의 숫자를 훨씬 앞선다. 따라서 어떠한 돌연변이가 없다고 할지라도 진화할 엄청난 여지가 있다. 유전적 공간의 탐구되지 않은 영역을 조금 다루어 보자.

  (4) 인공 생명의 유전자

  더 단순한 인공 생명 시스템은 상대적으로 적은 유전자, 말하자면 인간의 수십만 유전자에 비하여 12개 정도의 유전자를 가진다. 인공 생명 유전자는 전형적으로 숫자이다. 예를 들면, LINE- CA 프로그램은 가능한 세포 형상 8개 각각에 대하여 하나의 규칙을 가지고 있어서, 각 세포는 규칙 유전자 8개를 가지고 있는 것으로 보이고, 1의 유전자 값은 각 규칙이 다음 세대에 '생' 세포로 이어지는 것을 의미하고, 0의 유전자값은 '사' 유전자로 이어지는 것을 의미한다.  BIOMURFFS 프로그램에서는, 유전자는 한 줄의 길이를 표현하는 숫자를 의미한다. 이 경우에 그 유전자에는 몇 개의 가능한 값(대립 형질)이 있다. 돌연변이를 표현하기 위해서, 인공 생명의 유전자 값에 약간의 무작위적 변화를 줄 수 있도록 하면 된다. 유전자를 합성하기 위해서, 동일하게 유전 요소를 나누어 줄 두세 부모로부터 유전자를 복제할 단위를 만들 수 있다.
  일부 인공 생명 시스템은, 부모로부터 유전자를 무작위로 조합하는 자식을 가짐으로써 유성 생식을 모방한다. 염색체는 생물학적인 생명에서 유전자 전이의 단위이다. 즉, 생물학적인 생명은 개별 유전자를 합성하는 대신에 그림 6과 같이 유전자 볼록을 합성한다(인간의 염색체는 수천 개의 유전자를 가진다). 염색체하나에 인접한 유전자들이 함께 있기 때문에, 유전자 합성의 양은 제한된다. 그러나 이렇게 하여 함께 기능해야 할 유전자들을 함께 조합할 수 있는 이점이 있다. 또한 염색체 교차가 일어날 때 염색체의 다양성을 늘리면서도 유전자의 큰 블록은 그대로 유지한다. 염색체적 방법은 생물학적인 생명에 잘 들어맞기 때문에, 많은 인공 생명 시스템은 간단한 유전자 합성을 이용하는 대신에 그것을 흉내만 낸다.

그림 6 엑소스 사의 외골격 장갑은 자석과 센서로 손가락의 굴절을 측정한다.

  (5) 유전자형(Phenotype)과 표현형

  더 많은 용어가 기다린다! 일상 회화에서는 유전자형이니 표현형이니 하는 말이 드물 게 사용되지만, 가령 "이봐요, 당신의 유전자형은 무엇이지요?" 혹은 "와, 대단한 표현형이야!"라는 말은 종종 쓰인다. 이 두 낱말은 중요한 생물학적 인공생명적 개념을 표현한다. 생물학에서 유전자형(genotype)은 유기체의 DNA 속에 코드화한 정보의 완전한 세트이다. 분자 수준에서는, 유기체의 유전자형을 DNA 분자의 뉴클레오티드 염기의 배열을 나열함으로써 표현할 수 있다. 표현형은 물리적인 유기체 그 자체이다. 갈색 눈을 발생시키는 유전자는 사람 유전자의 일부분이고, 갈색 눈 그 자체는 사람 표현형의 일부분이다.
  그 개념은 인공 생명에까지 연장될 수 있다. 예를 들면, 생명 게임에서 유전자형은 각 세포의 행동을 통제하는 규칙의 집합이다. 표현형은 게임의 외적인 현상과 행동이다. 유전자형과 표현형을 인공 생명 식으로 일반화하여 때때로 G형 GTYPE과 P형 PTYPE이라고 한다. G형은 다른 단위와 환경과 한 단위의 논리적 상호작용을 기술하는 규칙들의 집합이고, P형은 상호작용으로부터 창발되는 구조와 행동의 집합이다. 그런데 우리는 생물학적 생명과 인공 생명에는 유전자형과 표현형이라는 용어를 충실히 사용할 것이다.

  유전자형과 게놈
  유전자형은 개체를 기술하는 반면 게놈은 종을 기술함에 주의하라. 예를 들어 한 유전자는 크기를 조절하고, 또 한 유전자는 색깔을 조절하는, 세 유전자 생물을 설계하는 것으로 상정해 보자. 우리는 종 게놈을 {크기 유전자, 속도 유전자, 색깔 유전자}로 표현할 수 있다. 그렇지만 유전자형은 {큰, 느린, 노란} 또는 {중간의, 민첩한, 빨간}이라는 식으로 한 개체가 가지는 대립 형질에 의하여 표현된다.

  이제 용어를 파악했으므로 몇 가지 재미있는 견해를 나타내 보자 :

 

  단상과 이배체
  박테리아나 아메바 같은 간단한 단세포 동식물은 염색체 한 세트만을 가진다. 그러한 세포를 단상(haploid)이라고 한다. 참외나 인간과 같은 더 복잡한 동식물들은 부모 양쪽에서 하나씩 받아, 염색체 두 세트인 세포를 가진다. 세포를 이배체(diploid)라고 한다. 생식 세포는 단상이다. 그래서 난자와 정자가 합병해 이배체 세포를 낳는다. 이배체 세포는 보통의 인공 생명 유전자 스키마보다 조금 더 복잡한데, 그것은 유전적 특성마다 두 유전자가 대응하기 때문이다. 따라서 개체는 동일한 특성에 대한 두 대립 형질을 가질 수 있다. 몇몇 경우에는, 한 유전자(우성 유전자)가 다른 유전자(열성 유전자)가 나타남을 막는다. 이것은 갈색 눈과 같은 어떤 표현형을 가진 개체가 파란 눈과 같은 다른 형질에 대응되는 열성 유전자는 건너 뛸 수도 있다는 것을 의미한다. 피부색과 다른 경우들에서는 양 유전자가 표현형에 영향을 미친다.

  ◎ 유전 알고리즘

  누적적 선택은 진화에서 엄청나게 강력한 위력을 가지고 있어서 연구자들을 고무하여 다른 시스템에도 그 원칙을 적용해 보게 했다. 미시간 대학의 John Holland 는, 게임 이론과 공학에서의 문제를 포함한 다양한 문제에 유전학적 선택을 적용하는 방법론을 개발하였다. 유전 알고리즘(genetic algorithm)이라는 이 과정은 아래와 같이 작동한다 :

  예를 들어 MICROANTS 프로그램은 유전 알고리즘을 활용하여 개미를 키운다.

 

4. 인공 생명의 주제

  인공 생명에 대한 연구가 수년 동안 진행되어 왔지만, 보통 고립적이고 단편화한 방식이었다. 1987년 9월 인공 생명에 대한 워크숍을 열면서 상황이 바뀌었다. 이 워크숍은 로스앨러모스(Los Alamos) 국립연구소에서 열렸는데, 새 분야인 인공 생명을 연구하는 다양한 분야의 과학자들이 참가했다. 그들은 몇 가지 공동 주제를 연구해 왔음을 알았다. 그것들이 무엇인지 알아보자.

  (1) 단순한 규칙에서 나오는 복잡성

  우리들의 일반적인 인식은, 단순한 시스템은 이해하기 쉽고 복잡한 시스템은 이해하기 어렵거나 불가능하다는 것이다. 초급 물리학을 배운 학생도 마찰이 없는 평면에 블록이 미끌어져 가는 문제를 쉽게 해결할 수 있지만, 날씨를 예측하는 문제는 아무도 만족스럽게 풀어 내지 못한다. 우리는 종종 선입관 때문에 복잡한 상황은 복잡한 원인을 가지고 있을 것이라고 가정한다. 인공 생명의 매력적인 특징의 하나는 그것이 단순한 규칙으로부터 나오는 복잡한 행동과 구조를 보여 준다는 것이다. 생명 게임과 MICROANTS 프로그램은 이 점을 멋있게 도해해 준다.
  생명체는 우리가 아는 가장 복잡한 시스템이다. 복잡성이 단순한 규칙에서 일어날 수도 있다는 생각에서, 우리는 생명과 지능을 이해하는 문제가 풀기 어렵지 않을 수도 있다는 희망을 품게 되었다. 물론 인공 생명 시스템의 행동이 생명과 지능이 단순한 규칙에서 발생한다는 것을 증명하지는 않는다. 그러나 생물 시스템과 같은 행동을 인공생명에서 보게 될 때 연구에 대한 기초 지침만은 되어 줄 것이다.

  (2) 지역적 규칙, 전체적 행동

  전형적으로 인공 생명 시스템은 그 개체의 유전자와 이웃한 환경에 따라서 행동하는 상호작용하는 단위들로 이루어진다. 전체적 행동을 다루는 규칙은 없다. 예를 들어, 1차원 CA에서 세포의 행동은 그 자신의 상태와 인접한 두 이웃 세포에 의존한다. 이 예에서 '생' 세포의 전체 수가 어느 정도에 도달하면 모든 세포가 죽는다고 말하는 따위의 규칙은 없다. 그러나 종종 시스템은 전체적인 특성을 발전시킨다. GENE 프로그램은 결과적으로 한 방향으로 함께 이동하는 박테리아 무리를 만든다. CSPACE 프로그램은 색깔의 무작위적인 배열에서 대규모 패턴으로 간다

  (3) 상향식 모델링

  비교적 복잡한 컴퓨터 프로그램을 짜야 한다고 가정해 보라. 그것을 어떻게 해나갈 것인가? 인기있고 성공적인 방법론의 하나는 하향식(top-down) 프로그래밍이다. 우선 하나의 프로그램을 데이터 읽기, 데이터 분석, 결과 보고 등으로 높은 수준의 작업(task)으로 나눈다. 다음 각 작업을 구성 부분으로 쪼개고 쪼개서 짤 수 있는 작고 쉬운 모듈로 나눈다. 간단히 말해서, 이 방법론은 주요한 측면의 개요를 만들어서 거기에 각 수준의 세부를 채워 나가는 식이다. 프로그램을 짜기 쉽고, 디버깅하기 쉽고, 수정하기 쉽게 해주는 매우 구조적인 방법이다. 더욱 일반적으로는, 생태계를 모델화하는 것과 같은 여러 모델링 과정에 하향식 방법을 적용할 수 있다. 그렇지만 하향식 방법론은 그 프로그램 또는 모델의 내용이 무엇인지 정확하게 이해하고 있고 그것을 표현하는 최선의 방법을 안다는 전제에 기반을 두고 있다.
  인공생명 연구자들은 더 저급한 방법론을 이용한다. 복잡한 생태계를 이해할 필요도 없고, 인공 지능이 어떻게 작용하는지 이해할 필요도 없다. 그러므로 상향식(bottom-up)방법으로 시작하는 것이 더욱 합리적일 것이다. 이 방법에서는, 한 상황의 기본적 단위들과 지역적 상호작용을 모델화한다. 그리고 시스템을 작동시키고 그것의 행동을 진화시키고 해결 방안을 개선해 간다.

  (4) 창발적 행동

  단순한 규칙에서 나오는 복잡성, 지역적 규칙에서 나오는 전체적 행동, 상향식 모델링이 모두 창발적 행동의 주제처럼 보인다. 생물학자와 인공 생명 연구자들은 정말로 다른 매체에서 동일한 과정을 연구하는 것인가? 창발적 행동의 끊임없는 표출 때문에 그 대답은 '예'이다.

  (5) 집단들과 병렬 처리

  인공 생명 실험들은 일반적으로 단일 개체가 아닌 집단들과 관계한다. 예를 들면, 세포 자동자는 세포의 무리와 관련이 있다. 유전 알고리즘은 유전자 못(pool)과 연관된다. 생물학적 생명에서는 단세포 생물조차 많은 활동을 동시에 진행해 나간다. 인공 생명을 포함한 생명체의 복잡성과 풍부성은 동시적 상호작용 과정의 결과이다.
  전통적으로 컴퓨터는 순차적 형태로 작동해 왔다. 컴퓨터는 한 시간에 한 명령을 하여 한 단계씩 프로그램을 진행한다. CA가 세포를 만 개 가진다면, 컴퓨터는 첫 번째 세포에 무엇이 일어났는지 먼저 계산하고 두 번째 세포를 계산하는 방식으로 한다. 최근에는 병렬 처리를 할 수 있는 컴퓨터가 일반화하고 있다. 병렬 처리란 컴퓨터가 여러 가지 계산을 동시에 처리하는 것을 의미한다. 예를 들면 CPU를 만 개 가진 컴퓨터는 세포 만 개를 동시에 계산할 수 있어서 계산 속도가 엄청나게 빨라진다. 병렬처리를 한다고 모든 문제가 풀리는 것은 아니지만, 인공 생명을 계산하는 데는 이상적인 수단을 제공한다. 더욱 훌륭한 병렬 처리 컴퓨터가 인공 생명에 대한 연구를 크게 촉진시킬 것이다.

  (6) 생명의 본질

  생물학은 단지 한 형태의 생명만을 연구하는데 비해 인공 생명은 연구자가 상상력을 발휘하는 한 무한이다. 생물학적인 생명은 유전적으로 획득되고 학습된 특성들을 생략할 수 없지만, 인공 생명은 가능하다. 인공 생명 연구자는 돌연변이율 교차율, 그리고 유전자 합성 스키마를 변화시킬 수 있다. 적합한 기준, 환경, 상호작용의 규칙을 수정할 수 있다. 인공 생명은 생명의 본질을 해명함으로써 생명의 어떠한 측면이 보편적이고 어떠한 측면이 특수한 것인지에 대한 통찰력을 제공할 것이다. 또한 인공 생명은 생물학적인 생명이 왜 특정 길을 따랐는지에 대한 통찰력도 제공할 것이다.