본문 바로가기

내가 좋아하는 책들

#10 부의 기원 진화

 

 

9. 진화 : 그건 바로 저기에 있는 정글이다

 

"그건 정글이야", "적자 생존이다" 이런 얘기들을 그동안 얼마나 많이 들었던가? 사람들은 경제를 말할 때 너무도 자연스럽게 생태계와 진화의 이미지를 곧잘 사용한다. 복잡계 경제학은 이 표현이 단순한 비유나 수사가 아니라는 점이다. 조직, 시장, 경제는 생태 시스템과 단순히 비슷한 게 아니라 말 그대로 정말 진화 시스템들이라는 의미다.

 

이 장을 통하여 진화는 단지 생물 세계에 관한 것이 아니라는 점을 알게 될 것이다. 오히려 진화는 복잡한 문제들에 대한 혁신적인 해법을 찾기 위한 다목적용의, 고도로 강력한 처방전이다. 이것은 변화하는 환경에 적응하고, 지식을 축적해 가는 하나의 학습 알고리즘이다. 진화는 자연 세계의 모든 질서, 복잡성, 그리고 다양성을 설명해 주는 공식이다.

 

디자이너 없는 디자인

대니얼 데닛은 진화를 '디자이너 없이 디자인을 창조하는' 방법이라고 부른다. 우리가 어떤 무엇이 디자인된 것으로 생각하면 그것은 하나의 목적을 가진, 다시 말해 어떤 과업에 적합한 디자인이라고 생각한다. 망치는 못을 박거나 뽑도록 디자인되어 있고, 박테리아는 특정한 환경에서 생존하고 재생할 수 있도록 디자인되어 있다. 

 

우리는 또 디자인을 가진 것들에 대해 거기에는 어떤 수준의 복잡성, 질서, 구조가 있다고 생각한다. 우리는 해변에 있는 임의의 모래알이 디자인된 것이라고 생각하지 않는다. 그러나 복잡한 구조를 갖는 제트 엔진, 나선형 방으로 된 조개껍데기, 복잡한 음들의 배합으로 이루어진 음악 등은 모두 디자인을 보여 주는 것으로 생각한다.

 

디자인된 것과 그렇지 않은 것을 구분 짓는 것은 바로 목적에 대한 적합성과 복잡성의 결이다. 줄무늬 있는 암석은 우리 눈에 아릅답게 보이고, 복잡한 패턴도 갖고 있으며 심지어는 예술 작품으로 보일 수 있다. 그러나 그것은 어떤 기능을 갖고 있거나 어떤 특정한 목적에 적합한 것이 아니다. 그보다는 임의의 지질학적인 힘들의 작용으로 우연히 만들어진 것에 불과하다. 디자인된 것들은 엔트로피가 낮다. 다시 말해 디자인된 것들은 결코 임의로 만들어진 게 아니라는 의미다.

 

우리가 디자인을 보는 영역은 두 가지다.(사실 이 두 가지뿐이기도 하다) 생물 세계에서, 그리고 생물들이 만들어 낸 인위적 산물들에서다. 생물 세계를 보면 점핑을 위한 캥거루 다리, 어둠 속에서도 뭔가를 발견하는 박쥐의 음파 탐지기, 그리고 수분을 촉진하기 위해 꿀벌 성기로 교묘히 위장한 꽃 수술 등이 있다.  인간 세계에서는 나사를 돌리기 위한 드라이버, 팬케이크를 뒤집기 위한 주걱, 사람들을 수송하기 위한 점보제트기 등이 있다. 인간 뿐 아니라 흰개미들은 정교한 집을 만들고 해리는 복잡한 둑을 만든다.

 

윌리엄 페일리는 <자연신학>에서 시계처럼 복잡하고, 디자인된 특별한 것은 시계 제조업자를 전제로 한다고 주장했다. 고도로 디자인된 것들은 저절로 이 세계로 튀어나온 게 아니다. 디자인은 목적, 지능, 그리고 문제 해결을 보여 준다. ('지적 디자인 이론'과 똑 같다)

 

그러나 바로 이것이 진화가 하는 일이다. 진화는 스스로 디자인을 창조한다. 리처드 도킨스는 진화를 "앞이 보이지 않는 눈먼 시계 제조업자"라고 불렀다. 진화는 맹목적이고, 기계적이며, 단순한 공식이지만 영리한 디자인을 창조하는데 놀라울 정도로 효과적이다.

 

 

인공적 생물

칼 심스는 1994년 진화가 어떻게 일어나는지를 연구해 보고 싶었다. 그가 원했던 것은 박테리아와 과일 파리를 가지고 하는 실험이 아니라 좀 더 빠르고 더 많이 통제할 수 있는 방식의 실험이었다. 그래서 그는 슈퍼컴퓨터에 인공적인 컴퓨터 생물들이 사는 가상의 진화 세계를 만들었다. 

 

이 블록 생물은 움직임을 조절하는 간단한 컴퓨터 칩의 힘으로 관절이 달려 있는 블록 몸체들의 움직임을 통제할 수 있다. 첫 번째 실험에서 이 인공적 생물에게 주어진 목표는 가상의 강을 빠르게 헤엄쳐 건너가는 것이었다. 그리고 블록 생물들의 세계에 생물학적 변화를 주었다. 바로 컴퓨터 DNA를 부여한 것이었다.

 

심스는 제1세대인 임의의 생물들에게 간단한 진화의 공식을 적용해 봤다. 가장 성공적으로 수영을 한 생물들은 그대로 남았고, 수영에 가장 성공적이지 못한 생물들은 제거됐다. 그 뒤 수영에 가장 성공적인 블록 생물들은 자신들의 컴퓨터 DNA를 서로 교환하는 컴퓨터 섹스를 통해 양 부모의 특성들을 그대로 이어받는 새로운 생물을 만들었다. 뿐만 아니라 일부 새로운 생물들은 자신들의 DNA를 변화시키는 임의의 돌연변이를 일으키기도 했다.

 

정리를 해보면, 블록 생물들의 집단은 서로 다른 특성, 즉 변이를 보여 주었다. 특정한 시점에서 생물들의 수영 능력은 다양했다. 그중에서 가장 잘 적응하는 생물들은 선택되었고, 성공적인 생물들은 재생해 그 디자인을 확산시키는 과정이었다. 변이, 선택, 그리고 재생(복제)이라는 이 단순한 공식이 약 100세대까지 계속 반복되었다. 20~30세대를 거치자 볼품없이 이리저리 허우적거리고 넘어지던 블록 생물들이 실제로 수영을 할 수 있는 그런 생물들로 진화하기 시작했다.

 

몇몇 생물들의 경우 다양한 물고기 디자인에서 볼 수 있는 것처럼 몸을 안정화시키는 지느러미가 돋아나기도 했다. 또 다른 생물들은 길고 가느다란 몸체로 발전했는데, 많은 부분들이 서로 연결돼 마치 뱀처럼 꼬리를 휘둘렀다.

 

진화의 알고리즘은 수영을 잘하기 위한 단 하나의 최고 방법, 최적의 방법을 찾은 것은 아니지만 데닛의 표현을 빌리자면 진화 공식들은 여러 가지 '생존을 위한 좋은 기술'을 찾아냈다

 

물에 관한 기초 물리학은 무한하지는 않지만 많은 수의 운동 방식을 허용한다. 물속에서 작전을 펴려면 또한 지느러미나 유체역학적인 몸체로 균형을 잡는 능력이 필요하다. 그러니까 물의 물리학은 수영하는 데 성공적인 몸의 디자인은 어때야 하는지에 대한 제약 조건들을 제공하는 셈이다. 이것은 모든 수생 생물들이 인간이 만든 잠수함과 기계들이 그러하듯이 어떤 목적과 관련하여 여러 가지 다른 특성, 즉 변이들로 구성되는 이유다. 또한 심스의 블록 생물들이 진화의 과정을 통하여 재빠르게 성공적인 디자인들을 발견한 이유다.

 

심스는 각 진화 과정에서 출현한 생존 해법들 중 그 어떤 것도 사전에 전제하지 않았다. 진화가 작동할 수 있는 조건들을 만들었을 뿐이다. 각 블록 생물들에 대해 어떤 디자인도 하지 않았다. 즉, 지느러미, 꼬리, 다리, 발톱 등에 관한 것은 프로그램에 없었다. 이런 디자인들은 많은 세대에 걸쳐 진화 과정을 겪으며 발견되고 출현한 것이다.

 

지난 수백만 년에 걸쳐 생물들에게 눈알, 방호를 위한 위장술, 악취를 뿜어내는 기술, 날개, 다른 손가락과 마주할 수 있는 엄지손가락 등 믿을 수 없을 정도로 혁신적인 디자인을 가져다준 것도 똑같은 과정을 통해서였다. 그럼에도 불구하고, 진화는 어떻게 다양한 종류의 생존을 위한 혁신적인 좋은 기술을 생산해 내는 것일까?

 

 

혁신을 위한 알고리즘

이 책에서 여러 번 진화의 알고리즘을 말했는데 정확히 이것이 갖는 의미는 무엇일까? 토너먼트 과정은 꽤 일반적인 알고리즘으로 꼭 테니스에만 국한되는 게 아니다. 골프, 축구, 컴퓨터 게임, 원반 튕기기, 그리고 다른 수많은 기질에도 사용될 수 있다. 여기서 기질이란 알고리즘이 작용하는 물질 또는 정보를 생각할 수 있다.

 

어떤 알고리즘은 '기질 중립적'이다. 즉, 이런 알고리즘을 분해해 보면 어떤 기초적인 환경 조건이 충족되는 한 기질이 무엇이건 상관없이 작동하는 기본적인 핵심이 있다. 예를 들어, 가장 큰 것에서 가장 작은 것으로 분류하는 알고리즘을 생각해 볼 수 있다. 그런 알고리즘은 사과를 분류하거나 이름의 길이를 분류할 때 유용할 수 있다. 이 경우 알고리즘을 정의하는 것은 특정 기질이 아니라 정보를 처리하는 논리다.

 

분류 알고리즘은 사과나 이름을 물리적으로 분류하는 게 아니라 사과의 무게나 이름 철자의 길이에 대한 정보를 토대로 작업한다. 알고리즘은 정보를 처리하는 공식이다. 이것들은 사실상 컴퓨터 프로그램들이다.

 

진화는 기질 중립적인 하나의 알고리즘이다. 디자인에 대한 정보를 토대로 정해진 대로 어떤 과정을 거쳐 그 정보를 처리한다. 진화는 또한 순환적이다. 즉, 한 사이클의 산출물은 다음 회에 투입물이 된다. 이런 순환성이 의미하는 것은 무엇인가? 진화를 멈추게 하지 않는 한 계속 돌아간다는 얘기다. 

 

 

레고 도서관

레고의 가장 큰 매력 단순하고 여러 색깔을 가진(다양한) 프라스틱 블록들이 무수히 많은 방법으로 조합되어 흥미롭고 복잡한 구조를 만들어 낸다는 점이다.가장 간단한 블록들조차 수많은 치환 또는 변환을 통해 여러 가지로 조립될 수 있다. 적당한 크기의 레고 세트라고 해도 이를 통해 만들 수 있는 가능한 구조물의 수는 상상을 초월할 정도로 많다.

 

그럼에도 불구하고 그 수는 유한하다. 진화 이론가들은 이런 가능한 변환의 집합을 '디자인 공간'이라고 부른다.  당신이 레고 도서관에서 흥미를 가진 특정 디자인을 발견하기란 현실세계의 대양에서 특정한 물 한 방울을 발견하는 것보다 더 어렵다.

 

그러나 당신이 특정한 디자인을 위해 레고 도서관을 찾아야 하는 정말 마특치 않은 일을 떠맡았다고 생각해 보자. 어떻게 할 것인가? 우리는 이 광활한 디자인 공간에서 신뢰할 수 있고 또 재빠르게 좋은 디자인을 발견 할 수 있는 그런 알고리즘을 필요로 한다. 진화가 바로 알고리즘이다. 사실상 진화는 '그랜드 챔피언'이다.

 

 

진화의 구조

모든 알고리즘은 작업을 수행하기 위한 구조를 필요로 한다. 알고리즘들은 정보를 처리한다. 따라서 우선 모든 가능한 레고 디자인들을 '정보'로 전환하는 방법이 필요하다. 레고 디자인을 표시할 특정한 코드가 어떤 형식으로 돼 있느냐는 중요하지 않다. 중요한 것은 디자인을 신뢰할만하게 정확하게 코드화하고, 또 풀어 낼 수 있는 그런 방법으로 돼 있느냐 하는 것이다. 이런 디자인 코드화를 '도식'이라고 한다. 일단 도식을 정립하고 나면 디자인 공간에 있는 임의의 모든 디자인은 이 도식으로 표현될 수 있다.

 

그다음에는 도식으로 표현된 정보를 저장하는 어떤 장치가 필요하다. 

 

다음으로 필요한 것은 도식으로 표현된 이론적 디자인을 현실 세계에서 진짜 플라스틱 레고 구조물로 바꾸는 메커니즘이다. 이때 필요한 것은 도식 식별자이다. 생물학적 세계에서 도식 식별자는 DNA를 생명체로 바꾸는 메커니즘이다.

 

예를 들어 새들의 경우 새끼에 대한  DNA 디자인을 실제 살아 있는 새끼로 변환시킬 수 있는 것은 수정란이다. 인간과 다른 포유동물의 도식 식별자는 여성 자궁 속 수정란이다. 

 

단순하고 다양한 블록 -> 디자인 공간-> 알고리즘(진화)

알고리즘(진화 구조) : 블록 디자인을 정보로 전환 하는 방법(정보화) -> 디자인 코드화 (도식) -> 정보를 저장하는 장치(DNA) -> 구조물로 만들어 내는 메커니즘 (도식 식별자가)

 

생물학적 시스템에서 중요한 특징 중 하나는 도식 코드가 그 자신의 고유한 도식 식별자에게 맞추어져 있다는 점이다. 인간의 경우 여자 태아가 20주가 될 때면 이미 난소와 함께 그 안에 수백만 개의 알을 갖게 된다. 그러니까 출산을 하기 전에 자궁 안에 자기 자신의 딸을 갖고 있을 뿐만 아니라 그 딸 안에 그녀의 미래 손자들을 위한 알도 갖고 있는 것이다.

 

레고 장난감은 아직 스스로 복제하는 단계로까지는 발전하지 못했다. 레고 도식 식별자는 해당 도식 코드를 알고 있는 일곱 살 어린이다. 이 어린이 앞에 레고 블록이 담겨 있는 박스를 던져 주고 이를 디자인하기 위한 코드를 담은 카드를 넘긴다고 하자. 이 어린이는 충실하게 필요한 플라스틱 부분들을 다 꺼내 놓고선 종이에 적혀 있는 코드대로 이들을 조립해 디자인을 만들어 간다. 우리는 이 어린이를 '식별자'라고 부를 것이다.

 

이제 우리는 이 식별자가 하는 일을 표현할 적절한 용어가 필요하다. 즉, 디자인 공간에 있는 이론적이고 잠재적인 디자인과, 실제로 만들어진 살아 있는 디자인을 구별할 용어가 필요하다.  바로 '상호 작용자'다. 상호 작용자는 디자인 공간에서 추출되어 어떤 환경에서 실재화된real 디자인을 말한다. 상호 작용자라는 표현을 쓰는 이유는 진화체제이서는 디자인이 만들어져 실재화 되면 그것은 환경과 상호 작용하면서 선택의 압력에 직면하기 때문이다. 

 

진화의 구조에서 마지막으로 필요한 것은 '적합도 함수'다. 지금까지 레고 도서관에서 우리가 찾고자 하는 것이 과연 무엇인지 명확하지 않았다. 나는 단지 흥미로운 디자인을 찾고 있다고만 말했다. 누구에게, 무엇이 흥미롭다는 말인가?

 

칼 심스 모델에서 적합도 함수는 수영 속도를 의미했다. 이미 언급했듯이 디자인은 목적을 나타낸다. 따라서 레고 장난감의 목적은 어린이를 즐겁게 하기 위한 것이므로 레고 디자인 적합도에 대한 중재라로서 역할을 할 두 번째 일곱 살 어린이를 생각해 볼 수 있다. 식별자는 다양한 도식에 따라 레고 장난감을 조립하고 이를 적합도를 결정하는 어린아이('심판자'로 부르겠다)에게 넘긴다. 이 심판자는 자신에게 넘어온 여러 장난감들을 보고, 예컨대 0('따분하다')에서 100('정말 멋있다')의 척도로 평가를 한다.

 

 

진화의 과정 : 어린이들의 놀이

진화가 작동하기 위한 모든 필요한 정보 처리 기구들이 갖추어지면 우리는 이 시스템을 가동할 필요가 있다. 레고 조각들이 식별자 앞의 바닥에 쏟아져 있다고 생각하자. 우리는 레고 도서관에서 디자인의 도식이 적혀 있는 100개의 카드를 임의로 꺼내어 식별자에게 건넨다. 그는 카드에 적혀 있는 대로 충실히 장난감을 조립해 심판자 앞에 그 결과물을 내놓는다. 그러면 이 심판자는 장난감을 따분한 것에서 멋있는 거세 이르기까지의 척도를 이용해 평가를 한다. 

 

이 장난감은 완전히 임의적인 구조물이기 때문에 평가 점수는 대부분 0이거나 0에 가깝다. 그러나 일부 장난감은 다른 장난감들에 비해 좀 더 흥미롭다는 이유로 약간 높은 평가를 받는다. 우리는 심판자들이 이렇게 적합도 함수를 적용해 장난감을 평가하는 과정을 '선택'이라고 말한다.

 

식별자는 최고로 높이 평가받은 2개의 장난감을 선택해 이들의 디자인 변종을 시도한다. 그는 이들의 도식 카드를 꺼내 임의로 반을 뚝 잘라서 서로 바꾸어 끼운다. 그러면 새로운 변종은 가장 높이 평가를 받은 두 장난감 각각의 특성들을 갖게 된다. 진화의 용어를 빌리자면 이렇게 도식의 부분을 서로 바꾸는 것을 '(염색체의) 교차'라고 한다. 

 

진화 알고리즘의 중요한 필요조건 중 하나는 어떤 디자인 적합도가 높으면 높을수록 평균적으로 보다 많은 변종들이 여기서 만들어질 것이란 점이다. 디자인의 적합도를 높게 만드는 특징들이 그 집단내에서 '증폭된다'는 얘기다. 그러나 레고 모집단의 규모에는 제약 조건이 있다. 식별자가 장난감을 만들기 위해 사용할 수 있는 레고 조각들의 수가 유한하기 때문이다.

 

모집단 안에서 적합도가 떨어지는 장난감의 특성들은 사라지도록 하기 위해 다음과 같은 규칙을 실행할 것이다. 즉, 최고로 적합도가 높은 20개의 디자인들은 '교차'하는 짝당 4개의 변종을 갖게 된다. 그다음 20개의 경우는 3개, 그다음 20개는 2개, 그다음 20개는 1개의 변종을 각각 갖게 되고, 가장 적합도가 낮은 20개의 디자인은 단 하나의 변종도 갖지 못한다. 적합도 점수가 같으면 동전을 던져서 결정을 한다. 처음 100개의 디자인을 가지고 우리는 전체 100개의 변종들을 만들 것이다.

 

일단 변종들이 만들어지면 처음 100개는 파괴해서 그 부품들을 박스 안에 도로 집어넣는다. 우리는 또 높은 점수를 받은 디자인을 위해 박스에서 이용 가능한 것보다 더 많은 부품들이 필요할 경우 가장 점수가 낮은 디자인을 분해해 필요한 부품을 제공한다는 규칙을 도입할 것이다. 레고 세계에서조차 유한한 자원 때문에 경쟁이 있다.

 

마지막으로 우리는 식별자 어린이가 완벽하지 않다고 가정할 것이다. 때때로 진행 과정에서 실수가 벌어질 것이다. 한 카드에 있는 도식을 다른 카드에 옮겨 적는 과정에서 실수를 할 수 있다. 이런 실수의 대부분은 인식하지 못한 채 지나간다. 그러나 가끔은 그런 임의의 실수 하나가 후속적으로 나오는 장난감의 적합도에 큰 영향을 미칠 수 있다. 그런 임의의 실수가 바로 '돌연변이'다.

 

자, 이제 두 어린이가 수십 번 이 사이클을 따라간다고 하자. 무슨 일이 일어날까? 처음에는 임의의 낮은 적합도의 디자인들로 이루어진 집단을 보게 될 것이다. 어린이들은 한동안 수많은 흥미 없는 디자인들과 함께 시간을 보낼 것이다. 그러나 결국 한두 디자인이 심판자의 눈에 띄게 될 것이고, 그 디자인은 변종들을 만들어 내기 시작할 것이다. 곧 보다 적합도가 높고, 보다 흥미로운 디자인들이 나타난다. 장난감 집단 전체적으로 적합도가 올라가기 시작한다. 그와 동시에 장난감들에서 공통된 특징들이 나타날 것이다. 심판자의 입맛을 충족시키는 이른바 '좋은 기술들'이다. 

 

예를 들어, 만약 심판자가 사람과 동물들의 이미지를 갖는 장난감을 좋아한다면 사자 얼굴을 가진 장난감들이 나타나기 시작할 것이다. 심판자가 노란색을 좋아한다면 전체적으로 노랑 색조가 많이 흐르는 장난감이 보이기 시작할 것이다. 어느 시점에 이르면 복잡한 구조들이 출현하기 시작한다.

 

예컨대, 레고 인간, 레고 말, 레고 강아지 등 적합도를 결정하는 심판자의 기호에 맞는 것이라면 무엇이건 나타날 것이다. 레고 도서관을 임의로 찾아 나설 때에 비해 상대적으로 적합도가 높은 디자인에 대한 발견이 훨씬 재빠르게 일어날 것이다. 

 

상호 작용자 집단에서 공통된 특징과 좋은 기술들이 출현하는 것은 또 하나의 중요한 결과를 낳는다. 복잡한 디자인은 내재적으로 모듈러이다. 우리의 몸은 놀라울 정도로 시스템, 부분 시스템, 그리고 요소들의 배열로 이루어져 있다. 예컨대, 심장 혈관 시스템에는 심장과 적혈구가 있고, 이는 다시 또 시스템과 부분 시스템으로 이어진다. 복잡한 인간 몸의 디자인은 자동차의 브레이크 시스템, 브레이크 그 자체, 그리고 개별 브레이크 패드와 똑같은 특징들을 갖고 있다.

 

복잡한 디자인은 모듈과 부분 모듈들이 계층적으로 구성된 하나의 집합체로 볼 수 있다. 진화 시스템에서 이들 시스템, 부분 시스템, 요소들은 각각은 도식에서 그에 상응하는 코드 정보들을 갖고 있다. 진화적인 건축을 위한 도식은 빌딩 블록들로 가득 차 있다. 이 빌딩 블록들은 보다 높은 차원의 빌딩 블록으로 결합되고, 이는 다시 더 높은 차원의 빌딩 블록으로 결합된다. 생물학에서  DNA 도식을 구성하는 빌딩 블록은 바로 개별 유전자들이다.

 

이 개별 유전자들은 눈색깔에서부터 유독성 암모니아를 요소로 바꾸는 화학적 사이클에 이르기까지 모든 것을 코드화한 것이다. 레고 사례에서 레고 사지와 노란색 등을 코드화하는 도식의 덩어리들을 볼 수 있을 것이다. 어떤 빌딩 블록이 상호 작용자의 적합도에 도움이 된다고 하면 시간이 갈수록 그 빌딩 블록은 집단 내에서 보다 확산된다. 

 

예를 들어, 모든 인간은 암모니아를 분해하는 매우 유용한 유전자를 갖고 있다. 그리고 만약 우리의 심판자가 노란색을 정말 좋아한다면 모든 도식들에서 노란 빌딩 블록이 갑자기 나타나기 시작할 것이다.

 

도킨스가 지적했듯이, 선택은 상호 작용자 그 자체가 아니라 빌딩 블록에서 작용한다. 심판자는 어떤 특징을 선호하고(그것이 무엇인지 제대로 모른다고 하더라도), 그 결과 진화의 과정은 심판자 앞에 서로 다른 결합들을 매달아 놓고 어떤 특징이 심판자의 눈을 사로 잡는지 시험해 그런 특징을 가진 것들을 더 많이 채택한다.

 

시간이 흐르면 그런 특징들은(그리고 이를 코드화한 빌딩 블록들은) 집단 내에서 보다 확산된다. 따라서 사실상 진화 과정은 개별적인 장난감을 선택하는 게 아니다. 비유를 하자면 "심판자는 사지가 있는 노란색을 좋아한다"고 말하는 것이다.

 

이제 심판자를 제거하고 다른 심판자(심판자 2)로 바꾼다고 생각해보자. 갑자기 레고 환경에서 적합도가 높은 것과 그렇지 못한 것들이 바뀌게 될 것이다. 그전 심판자의 기호를 충족시켰던 많은 장난감들이 이제는 심판자 2에 의해 '따분한 것'으로 평가받게 되는 등 적합도의 붕괴가 일어난다. 그러나 일정 시점이 되면 진화 알고리즘이 안착하면서 좀 더 나은 디자인들을 제시하기 시작한다. 일단 이런 일이 일어나면 더 좋은 디자인의 변종들이 점점 더 많이 생겨나고, 결국 레고 장난감 집단들의 적합도는 다시 상승하기 시작한다. 

 

진화는 모든 가능성의 공간에서 시작하는 변화의 과정이다. 많은 디자인들을 시험해 보면서 어떻게 작동하는지 보고, 그중 좋은 것은 더 많이 채택하고 그렇지 못한 것은 버리는 일을 반복한다. 여기에는 어떤 예측, 계획, 합리성, 그리고 의도적인 디자인 같은 것들은 없다. 그저 아무 생각 없이 기계적으로 움직이는 알고리즘만 있을 뿐이다.

 

 

복제자는 복제를 원한다

"그것이 정말 디자이너 없는 디자인인가?" 알고리즘이 어떤 도움도 없이 스스로 계속 진행된다면 이것은 사실일 수 있다. 그러나 그전에 이루어진 모든 준비 과정에 대해서는 뭐라고 할 것인가? 모든 프로그래밍을 만든 심스에 대해서는 또 뭐라고 할 것인가? 인간 식별자와 인간 심판자를 레고 사고 실험에서 낙하산 인사로 앉힌 것은 또 무엇인가?

 

내생적인 진화의 논리 또는 외부의 디자이너나 프로그래머의 도움을 받지 않는 진화를 제대로 이해하기 위한 가장 좋은 방법은 유일하게 알려진 진화, 즉 지구상에서 생물의 발전을 살펴보는 것이다. 초기 지구는 풍부한 화학적 작용이 일어나고 있었다. 격랑이 일면서 땅덩어리가 만들어졌고, 화산 등 대기권으로의 분출도 일어났다. 천문학적으로는 많은 수의 분자들이 열을 받고, 냉각되고, 이리저리 튀겨지고, 전기적으로 충전되면서 상호 작용을 하고 서로 반응했다. 이를 통해 점점 더 복잡한 자들이 생성되었다.

 

이런 과정을 겨쳐 약 30~35억 년 전에 이르러 놀라운 일이 일어났다. 스스로를 복제할 수 있는 분자들이 생겨난 것이다. 맨 처음 복제하는 분자의 수준은 매우 단순한 것이었을 것이다. 어떤 자기 복제 분자가 아마도 주변의 다른 화학 물질 집단에서 정반대 분자들을 끌어들이고, 이들이 다시 자신들과 정반대인 분자들을 끌어들이면서 초기 분자의 복제를 만들어 냈을 것이다. 이와 같은 간단한 자기 복제 분자조차 우연히 일어나기란 정말 어렵다.

 

어떤 과학자들은 또한 그 가능성이 열역학 법칙적으로 크게 높아졌다고 믿는다. 초기 지구는 화산과 다른 여러 가지 지열 활동, 그리고 신진 대사의 기초인 반응 네트워크와 복잡한 유기 분자들로 인해 엄청난 양의 자유 에너지를 가졌다. 따라서 자기 복제는 이 모든 에너지가 대양의 화학 작용을 통하여 퍼져 나가는 자연스럽고도 가능한 방법이었을 것이다.

 

도킨스가 지적한 대로 어떤 복제 과정도 완벽하지않다. 결국 오류가 끼어들고 이로 인해 여기저기서 조금씩 변화가 일어난다. 그런 점에서 자기 복제 분자는 원래와 거의 비슷하지만 아주 똑같지는 않은 것을 만들어 낸다고 말해야 옳을 것이다.

 

시간이 좀 지난 뒤에는 화학 물질들의 집단은 조금씩 서로 다른 다양한 자기 복제 분자들로 가득 찰 것이다. 그 화학 물질 집단 내에 있는 다양한 자기 복제 물질들은 똑같다고 봐야 할 것인가? 그렇지 않다. 어떤 분자들은 다른 분자들에 비해 화학적으로 좀 더 안정적일 것이고, 그 결과 이 분자들은 더 오래 살아남거나 자기 복제에 더 빠르다. 어 오래 살아남고 더 좋고 더 빠른 자기 복제자들이 집단 내에서 더욱 퍼지게 될 것이다. 

 

이에 더하여 자기 복제를 하는 분자들의 바로 이웃에서 이들의 복제에 쓰이게 될 유한한 원료들이 공급된다. 임의의 변화가 발생해 어떤 분자가 다른 분자에 비해 화학적으로 이런 원료를 끌어들이는 데 더 능숙하게 된다면 그 분자는 보다 많은 자기 복제를 하게 될 것이다. 유한한 자원을 놓고 벌어지는 경쟁은 맨 처음부터 진화의 테마였다.

 

결국, 어떤 분자들은 다른 동료 자기 복제자들의 구조를 불안정하게 만들거나 분해하는 화학적 구조를 우연히 갖추게 되고 이로 인해 공격하는 분자는 자신의 목적을 위해 희생물이 된 분자들을 편입할 수 있다. 이런 우연한 혁신은 순간적으로 엄청난 이득을 가져다 준다. 혼자서 원료를 발견하고 조립하는 것보다 동료 복제자들로부터 미리 조립된 원료를 취하는 게 훨씬 더 쉽기 때문이다. 붕괴에 취약하고 자신의 화학 물질을 도둑맞은 분자들은 집단 내에서 급격히 쇠퇴하는 반면 훌륭한 파괴자들은 재빠르게 자기 복제를 해낼 것이다.

 

그러다 보면 일부 자기 복제 분자들의 경우 자신들의 자기 복제 장치와 외부 세계 사이에 완충 역할을 하는 화학 물질, 예를 들어 지질을 외층부에 우연히 갖게 될지 모른다. 파괴자들을 대비해 방어 장치를 가진 분자들은 성공적으로 보다 빈번하게 자기 복제를 할 것이고, 그만큼 집단 내에서 확산된다.

 

일단 밖의 세계에 대비한 장벽을 갖추고 복제하는 단계에 도달한 것으로 지금 살고 있는 특별한 무엇이 있다. 바로 바이러스다. 어떤 바이러스는 지금 살아 있다고 볼 수도 있고 그렇지 않다고 볼 수도 있지만, 확실한 것은 아직도 생명체로 진행 중이라는 사실이다.

 

분자들의 전쟁 밑바닥에 흐르는 논리는 매우 간단하다. 좋은 복제자들이 복제된다는 점이다. 단순하고 순환적인 논리는 가장 미묘하면서도 강력한 진화의 동인이다. 우연히 복제 능력에 어떤 격차가 발생하면 복제를 촉진시키는 요인들은 시간이 흐를수록 그 집단 내에서 더욱 보편화될 것이다. 진화는 궁극적으로 복제를 지원하는 빌딩 블록들을 선택한다. 이것이 '이기적 유전자' 이론의 핵심이다.

 

도킨스가 말하고자 했던 것은 복제의 논리였다. 자신의 복제를 지원하는 데 능한 유전자들(빌딩 블록들)이 복제될 것이라는 얘기다. 그렇지 않으면 경쟁의 세계에서 살아남을 수 없기 때문이다.

 

'좋은 복제자들이 복제된다'는 논리.

 

이렇게 해서 약 38억 년 전 자기 복제 분자 전쟁은 훌륭한 복제자들이 오늘날 RNA와 비슷한 자기 복제 과정, 그리고 분자들과 외부 세계 사이의 기초적인 막을 갖는 정도로 진전됐다. 그러나 미토콘드리아, 엽록체, 세포핵, 또는 보다 고등 유기체 세포에서 발견되는 다른 세포 기관 등은 갖추지 못한 수준이었다. (바이러스 이야기)

 

일단 자기 복제 분자가 이 정도에 이르면 진화는 경주를 향해 출발한 것이나 다름없다. 보다 복잡한 내부 조직을 갖추고, 이동하고 햇빛을 처리하는 등의 일을 할 수 있는 수많은 단세포 조직들이 생겨나기 시작한다. 이런 과정을 거쳐 18억 년 전에 이르면 진화는 다세포 생물 형태라는 디자인을 발견한다. 이것이 식물, 동물, 그리고 지금의 우리에 이르기까지 다양성의 폭발을 가져온 것이다.

 

이러한 논리에는 어떠한 외부적 요소들이 필요하지 않다. 도식과 도식의 식별자, 그리고 적합도 함수가 있으면 바로 진화의 논리는 정립될 수 있다. 생명 이야기에서 도식과 도식 식별자는 똑같은 하나다. 자기 복제 분자들이 코드이면서 동시에 식별자인 것과 같다. 복제를 위한 기술조차 시간이 흐르면서 진화를 해왔다. 이 과정을 거쳐 DNA와 DNA를 보호하는 핵막, 성적 재생, 그리고 상대방 성을 끌어들이기 위한 수많은 전략들과 같은 혁신들을 만들어 냈다.

 

레고 실험에서 적합도 함수는 심판자에 의해 외생적으로 주어졌다. 생물학에서 적합도 함수는 내생적이다. 적합도를 결정하는 어떤 제약 조건은 고정적이다. 예컨대 물리나 화학 법칙 같은 것들이다. 그러나 적합도 함수의 다른 중요한 측면들은 시스템과 더불어 공진화를 한다. 하나의 유기체를 둘러싼 환경 중 매우 중요한 한 부분은 다른 유기체들이다. 각 유기체의 진화를 향한 움직임과 그 반대의 움직임은 다른 유기체들의 적합도에 영향을 미친다. 만약 약탈자라면 매우 빠른 스피드 쪽으로 진화할 것이다.

 

그러나 그 먹잇감은 위장술을 발전시킬 것이고, 이에 따라 약탈자의 시력은 보다 향상될 것이다. 이런 식으로 맞물려 진화하는 일종의 군비(확장) 경쟁이 끝없이 일어난다. 그러나 각 움직임마다 적합도 함수가 변한다. 적합도의 또 다른 요소인 지구의 기후조차 생물이 진화하면서 변해 왔다. 예를 들어, 식물의 발전은 대기권에 산소량을 증가시켰다. 이는 산소를 들이마시는 생물들을 위한 길을 만든 효과를 가져왔다. 물론 지금은 인간의 진화가 기후는 물론이고 지구상에 있는 모든 생물들의 적합도 함수를 더욱 바꿔 놓고 있다.

 

진화를 위한 준비는 결국 정보 처리로 귀결된다. 진화가 발판을 마련하려면 정보를 처리하는 매개체가 필요하다. 이는 도식을 저장하고 수정하고 복사하기 위한 것이다. 생물 세계에서 진화가 출발하려면 열역학과 우연히 결합돼 분자 디자인을 저장하고, 수정하고, 복제할 수 있는 첫 자기 복제 분자가 만들어져야 가능하다. 3부에서 경제 세계에서는 진화에 발판을 마련해 주는 정보 처리 매개체가 말과 문서라는 점을 알게 될 것이다.

 

일단 정보 처리 매개체가 정립되면 차별화, 선택, 그리고 복제의 과정이 시작될 수 있다. 좋은 복제자가 복제되고, 무엇이 적합한지는 환경에 의해 결정되는데, 여기에는 다른 복제자들과의 경쟁이 포함된다. 그렇게 진화는 보다 더 좋은 복제자 디자인을 추구하면서 디자인 공간을 향해 행진을 시작한다.

 

우리는 진화가 어떻게 이루어지는지를 보았다. 그다음 큰 질문은 진화가 그렇게 잘 이루어지는 이유에 관한 것이다.

 

 

적합도 지형 탐색

DNA로 코드화할 수 있는 모든 생명체들의 디자인 공간을 생각해보자.  DNA 알파벳은 4문자, 즉  C, G, A 그리고 T다.

 

지구에서 생물의 역사를 보면 단순한 박테리아에서부터 보다 복잡한 포유류에 이르기까지 시간이 흐름에 따라 DNA 가닥의 길이가 확장돼 왔다. 이는 곧 DNA 디자인 공간 규모의 확장이다. 디자인 공간을 풍선의 표면과 비슷한 것으로 생각해 볼 수 있다. 특정 시점에서는 유한하지만 공기 등이 들어가면서 표면이 팽창하듯이 이것도 늘어난다.

 

인간들과 다른 생명체들의 모든 가능한 디자인들에 대한 완전한 탐색을 위해서는 수많은 우주들의 수명을 다 합한 것보다 더 긴 시간을 요한다.

 

자, 이제 서로 다른 막대 높이를 가진 산 같은 경관을 보자. 어떤 디자인이 다른 디자인보다 더 좋은지 알 수 있도록 디자인 공간을 표현하는 방법을 생물학자들은 '적합도 지형(경관)'이라고 부른다. 이 개념은 진화 이론가인 시월 라이트가 1931년 처음 개발한 개념이다. 적합도 지형은 디자인 공간에서 좋은 디자인이 어디에 위치해 있는지를 시각적으로 (연구자들에게는 수학적으로) 보여준다. 거의 무한에 가까운 디자인 공간에서 좋은 디자인을 발견하는 문제는 적합도 지형에서 높은 정점을 찾아내는 것과 같다.

 

앞 장에서 우리는 생태계에 있는 수많은 종들의 관계로 이루어진 네트워크 구조를 논하면서 단속 균형(불연속적 균형)을 설명하는 모델을 살펴보았다. 크러치필드에 따르면 평평한 지역, 스위스 치즈의 구멍, 그리고 관문 등 적합도 지형의 특징들은 유전적 변화에 비선형성을 갖게 함으로써 단속 균형에도 기여한다. 대부분의 변화들은 거의 또는 아무 영향이 없지만 어떤 변화는 적합도에 큰 영향을 미치고(촣든 나쁘든), 그 결과 다양한 종들의 관계로 이루어진 네트워크에 큰 영향을 미친다.

 

도식상에 조그만 변화를 나타내는 대부분은 적합도에 미치는 영향이 작거나 거의 없지만 그중의 일부가 큰 영향을 미치는 디자인 공간은 그림에서 본 바와 같이 개략적으로 상호 연관된 모양의 생물학적 적합도 지형을 갖게 될 것이다. 이것은 중요한 포인트다. 바로 그런 특징이 진화를 적합도 지형을 탐색하는 하나의 이상적인 알고리즘으로 만든다.

 

 

탐색 알고리즘의 그랜드 챔피언

이제부터는 높은 정점을 향해 멘델의 산 같은 적합도 지형을 탐색하는 임무를 부여받았다고 생각해 보자. 그러나 과제는 가장 높은 정점을 발견하는 것이 아니다. 우선 단 하나의 명확하게 가장 정점이라고 할 수 있는 것이 반드시 존재하지 않을 수 있다. 똑같은 높이의 여러 개 정점들이 서로 멀리 떨어져 있는 경우도 있을 수 있다. 똑같은 높이의 여러 개 정점들이 서로 멀리 떨어져 있는 경우도 있을 수 있다.

 

그러나 보다 중요한 것은 다른 모든 막대보다 조금이라도 더 높은 적합도 막대가 하나 있다고 하더라도 그것을 발견할 가능성은 극히 낮다는 점이다. 게다가 정점의 높이도 계속 변한다. 따라서 어떤 '글로벌 최적점'을 탐색한다기보다는 주어진 시점에서 우리가 발견할 수 있는 가장 높은 정점들을 찾는 것이 과제다.

 

여행을 출발하기 전에 탐색과 관련하여 세 가지 추가적인 조건들을 소개하겠다.  첫째, 진화는 앞을 내다보는 능력이 없다. 진화가 할 수 있는 모든 것은 그것이 효과가 있는지 없는지를 알기 위해 뭔가를 시도해 보는 것뿐이다.

 

둘째, 지형은 상당히 위험한 특징을 갖고 있다. 만약 당신이 헤매다가 너무 낮은 곳으로 가면 안개 속으로 내려가 질식해 숨지고 말 것이라는 얘기다. 여기서 안개는 자연의 선택을 나타낸다. 어떤 주어진 시점에서 당신의 적합도가 너무 낮으면 당신은 솎아져 나올 것이다.

 

셋째, 적합도 지형은 정태적이지 않다. 시간에 따라 계속 변한다. 환경이 변하면 적합도 함수도 변하고, 이에 따라 오늘은 적합도가 높은 정점인 곳이 내일은 그렇지 않을지 모른다. 

 

소행성의 지구 충돌과 이로 인한 기후 변화처럼 적합도 지형의 일부 변화는 환경에 대응한 임의적인 변화를 나타낸다. 그러나 움직이고 솟아나는 일의 대부분은 종 자체의 진화 결과다. 앞서 모든 종은 다른 종들과의 복잡한 관계망 속에서 존재한다는 점을 지적한 바 있다. 즉, 약탈자, 먹잇감, 공생, 기생 등의 관계들이다. 종들은 공진화를 하면서 공격과 방어, 협력과 경쟁 등 일종의 군비 경쟁을 벌인다. 그 결과 어느 한 종의 진화적 변화는 다른 종들의 적합도에 연쇄적 영향을 유발할 수 있다. 

 

지형을 탐색하기 위하여 먼저 임의의 한 출발점을 선택한 뒤 다음과 같은 간단한 규칙을 따른다. 임의의 방향으로 발걸음을 옮긴다. 그래서 더 올라간 것이면 다시 임의의 방향으로 움직이고, 만약 그렇지 않으면 그 전 위치로 돌아와 다시 시도한다. 이 규칙을 따른다면 처음에는 이리저리 헤맬 것이다. 그러나 결국 위로 올라가는 경로를 발견할 것이고 꽤 빠르게 가장 가까운 정점으로 기어오를 것이다. 이런 규칙을 '적응적 보행'이라고 부른다. 

 

적응적 보행은 개별적인 정점으로 올라가는 데는 효율적이지만 중요한 한계가 있다. 일단 정점의 꼭대기에 이르면 거기서 멈추어 국지적인 어떤 최고점에 박혀 버린다. 더 높은 정점이 그 계곡 건너 가까이에 있을 수도 있는데 그런 것을 결코 찾아내지 못하게 된다는 얘기다. 왜냐하면 그곳으로 가려면 다시 처음으로 내려가야 하기 때문이다. 결론적으로 적응적 보행 모델은 에베레스트산들로 이루어진 지역의 중간에 있는 한 흙 두둑 위에 멈춰버리고 마는 그런 결과를 낳을 수 있다.

 

이제 또 다른 전략을 가지고 임의의 출발점을 선택하자. 이번에는 보행이 아니라 매우 강력한 스카이 콩콩으로 움직인다고 생각해 보라. 이 전략은 '랜덤 점프'로 불린다. 랜덤 점프는 적응적 보행 모델과 비교하여 국지적인 최고점들에 박히지 않는다는 이점이 있다. 즉, 낮은 정점에서 보다 높은 정점을 향해 중간에 있는 계곡들을 넘어 계속 뜀박질할 수 있다. 그러나 이 또한 불리한 점이 있다. 즉, 어떤 죽음의 계곡 밑에 당신이 놓여 있다는 것을 발견할지 모른다. 

 

적응적 보행 전략의 경우는 최소한 당신을 가장 낮은 지역에서 빠져나오게 하고 유독성 안개를 피하게 해준다. 그런 점에서 보면 랜덤 점프는 적응적 보행 전략에 비해 좀 위험한 전략이다. 랜덤 점프는 또 실제로 높은 정점을 발견할 가능성이 매우 낮다. 지형의 보다 큰 표면적은 높은 적합도보다 낮은 적합도를 갖는 영역으로 채워질 것이다. 그렇다면 평균적으로 볼 때 랜덤 콩콩 점프를 하면 적응도가 낮은 곳에 당신이 위치하게 될 가능성이 크다. 물론 운 좋게도 가끔 그렇지 않은 경우도 있겠지만 가능성 측면에서는 그렇다. 

 

이제 우리는 위험도는 낮지만 매우 높은 정점에 도달할 가능성이 작은 전략을 택하든지, 아니면 높은 정점에 도달할 가능성은 있지만 잘못하면 유독성 안개 밑으로 내려갈 수도 있는 위험도가 큰 전략을 택하든지 해야 한다.

 

이제 다음으로 두 가지 선택을 혼합한 알고리즘을 시도해 보자. 적응적 보행을 함으로써 지형에서 계속 더 높은 곳으로 올라가지만 또한 국지적 최고점에 박혀 버리지 않도록 몇 번의 랜덤 점프도 하는 알고리즘이다. 이는 국지적 최고점에서 멈추는 일을 막는 데 도움이 되면서도 정말 낮은 계곡에서 종말을 맞을 가능성을 줄여 준다. 그리고 한 가지 더 변화를 추가한다. 단 한 명이 아니라 적합도 지형을 탐색하는 일단의 보행자들이 있다고 가정하자. 이 모델은 어떻게 작동할까?

 

우리는 양 세계에서 제일 좋은 것을 취한다. 하이킹 참가자의 대부분은 상대적으로 위험도가 낮은 적응적 보행 쪽으로 할당돼 지형을 탐색해 간다. 그러나 군데군데서 베팅도 한다. 일부 참가자들은 중앙에서 멀리 떨어진 채 흩어져서 수색하고 그중 몇명은 정말 멀리 떨어져 탐색한다. 이러한 전략은 불가피하게 일부 참가자들의 손실도 가져오지만 국지적 고원에 박히지 않고 보다 높은 적합도 지역을 발견할 가능성을 높여 줄 것이다.

 

이렇게 한 집단 전체에 걸쳐 분산 베팅을 하는 것은 정확히 진화가 하는 일이다. 각 상호 작용자 또는 생물에서의 유기체는 하나의 보행자로 볼 수 있다. 복제 과정은 적응적 보행에 에너지를 준다. 만약 높은 적합도를 보이는 보행자가 다른 높은 적합도를 가진 보행자와그 도식을 다시 결합하고 그 결과 낮은 적합도를 가진 보행자들 보다 더 많은 자손들을 가지는 경향을 보인다면, 보행자들의 구름은 보다 높은 고도에서는 커지고, 그렇지 않은 곳에서는 줄어들 것이다.그러나 차별화 과정은 지형 전역으로 퍼져 나가는 보행자들이 있다는 의미다.

 

만약 멀리 외딴 첨병들이 어떤 새로운 길을 찾아낸다면, 가령 새로운 높은 적합도 지역으로 가는 관문이 되는 육교를 건너간다면, 이들은 빠르게 스스로 복제하여 그 지역에서 새로운 구름 집단을 만들것이다. '신의 눈'으로 보면 어떤 다른 고원 위에서 와글거리는 구름집단이 보일 것이다. 이 와글거리는 구름 집단은 다른 말로 하면 새로운 종이다.

 

차별화를 통한 베팅의 분산은 적합도가 높은 지역을 향해 새로운 길을 찾는 것뿐만 아니라 지형이 변하더라도 일부 보행자들이 살아남을 가능성을 높이는 일이다. 이것이 바로 유전자적 다양성이 집단에서 갖는 중요한 역할이다. 

 

진화가 보다 높은 고원을 발견하면 그 집단 구성원의 대부분은 그 지역 주변에 모여들어 재생을 하며 성장한다. 

 

흥미롭게도 진화가 탐색과 활용 간의 적절한 균형을 자동적으로 맞춘다는 점을 홀란드는 보여 주었다. 상황이 좋으면, 높은 고원을 발견했다면 그런 환경에 맞추어 진화는 집단의 보다 많은 자원을 활용쪽에 투입한다. 그러나 상황이 나쁘면, 집단이 계곡 밑에 위치해 있으면 보다 많은 자원이 탐색 쪽을 향한다.

 

진화가 적합도 지형의 새로운 부분을 점유할 때면 언제나 아직 알려지지 않은 곳에 베팅을 할당한다. 그러나 보다 많은 정보를 얻게 되면 여느 다른 베팅자들과 마찬가지로 가장 유명해 보이는 베팅에 자원을 증강하고 싶어 한다. 홀란드는 활용과 탐색 간 균형을 위한 최적의 공식을 만들어 냈고 진화는 최적 균형을 달성하는 데 매우 근접해 있다는 것을 보여 주었다. 진화는 하나의 도박꾼이지만 가능성을 매우 잘 활용하는 도박꾼이다.

 

 

좋은 기술, 강요된 움직임, 그리고 경로 의존성

데닛의 이른바 '좋은 기술' 개념은 소멸의 고통 과정에서 요구되는 것이 아니라 오히려 너무 매력적이어서 진화적 탐색이 반복적으로, 독립적으로 찾아낼 가능성이 높은 조치들이다.

 

예를 들어, 적합도 지형에서 '눈을 가진 생명체'로 불리는 크고 높은 산 지역이 있다고 상상해 보자. 여기에 있는 모든 생물들의  DNA 책은 빛을 탐지하는 센서를 만들라는 지시를 담고 있다. 지역의 규모, 높이 그리고 안정성을 보아 진화적 탐색 과정을 통해 궁극적으로 발견될 가능성이 높다. 또한 여기에 이르는 다수의 진화 경로를 가지고 있을 것이다. 따라서 좋은 기술은 여러 종들에서 독립적으로 발생할 것이고 그 종들은 포유류의 눈 디자인, 곤충의 눈 디자인처럼 어느 정도 다른 디자인들을 가질 것이다.

 

데넷은 또 다른 요소도 설명하고 있다. '강요된 움직임'이다.  바로 선택할 것이 아무것도 없는 상황에 놓일 때가 있다. 어떤 다른 움직임도 자살적 행위가 되는 상황을 말한다. 강요된 움직임은 물리학이나 화학 법칙들에 의해 부과된 제약 조건들로 인해 만들어진다.

 

적합도 지형도의 마지막 결론은 '경로 의존성'이다. 진화 시스템에서는 역사가 중요하다. 당신이 앞으로 갈 길은 당신이 과거에 왔던 길에 의존한다. 차별화는 집단들을 적합도 지형 주변으로 흩어지게 할 수 있지만 그렇다고 당신이 마음 내키는 대로 한 지역에서 다른 지역으로 바로 갈 수 있는 것은 아니다. 

 

다른 형태의 어류 디자인을 위한 정점이 있다는 것을 알 수 있다. 그러나 두 디자인 사이에 어떠한 경로도, 육교도 없다. 랜덤 점프로 이어지기에는 두 디자인이 너무 멀리 떨어져 있다. 첫 번째 어류 디자인과 두 번째 어류 디자인 사이를 이어주는 지속 가능한 중간적 생태 지위가 존재하지 않기 때문에 그 어류는 자신이 가진 '역사의 포로'가 되고 만다. 특별한 정점에서 막다른 골목에 이르는 특별한 경로, 그리고 미래를 위한 선택 방안들은 그 과거에 의해 제한받는다.

 

수학자들과 진화 이론가들은 여러 가지 다른 지형도에 관하여 다양한 종류의 대안적인 탐색 알고리즘을 탐구해 왔다. 어떤 알고리즘은 완전히 임의적인 지형들을 탐색하는 데 더 좋고, 또 어떤 알고리즘은 고도로 질서가 잡히거나 규칙적인 지형을 탐색하는 데 더 좋다. 그러나 그 중간에 있는, 개략적으로 상호 연관된 수준이고 고원, 구멍, 고나문 등과 같은 복잡한 특징들을 가진 그런 지형들의 경우는 진화를 이기기 어렵다. 그리고 지형이 계속 변할 때, 탐색 문제가 동적인 것일때, 탐색과 활용 간의 긴장을 감안해야 할 때, 진화는 모든 알고리즘 중에서 진정 그랜드 챔피언이다.

 

 

진화의 기본 요소들

 

진화가 작동하기 위한 필요조건들

  • 모든 가능한 디자인들을 담고 있는 디자인 공간이 존재한다.
  • 이들 디자인들을 신뢰성 있게 코드화하여 하나의 도식으로 만들 수 있다.
  • 이 도식들을 신뢰성 있게 해독해 이들을 상호 작용자로 만들 수 있는 어떤 형태의 도식 식별자가 있다. 내생적 진화에서 도식은 자신의 고유한 식별자를 코드화한다.
  • 상호 작용자는 모듈과 모듈의 시스템으로 구성되는데, 이들은 도식에서 빌딩 블록들 형태로 코드화된다.
  • 상호 작용자는 하나의 환경으로 바뀐다. 그리고 환경은 상호 작용자들에게 제약 조건들을 부여한다. 물리학의 법칙들, 기후, 또는 레고 심판자 등 이 제약 조건들은 시간에 따라 변할 수 있다. 특히 중요 제약 요소는 유한한 자원을 놓고 상호 작용자들 사이에 벌어지는 경쟁이다.
  • 하나의 환경에서 제약 조건들은 집단적으로 적합도 함수를 만들어 낸다. 이에 따라 어떤 상호 작용자는 다른 상호 작용자보다 더 적합한 일이 일어난다.

 

진화의 과정은 제약 조건이 주어진 상황에서 적합한 디자인을 찾아 디자인 공간을 탐색하는 알고리즘으로 생각할 수 있다. 알고리즘은 디자인 공간을 다음과 같이 탐색한다.

  • 시간이 흐름에 따라 도식들에 변이의 과정이 일어난다. 도식자들은 수많은 작용자들, 예를 들어 염색체 교차나 돌연변이 등으로 인해 변할 수 있다.
  • 도식은 하나의 집단을 만들어 내는 상호 작용자들로 바뀐다.
  • 선택의 과정이 상호 작용자들에게 작용한다. 이에 따라 어떤 디자인은 적합도 함수에 의해 다른 디자인들보다 더 적합한 것으로 평가된다. 적합도가 낮은 상호 작용자는 집단에서 제거될 확률이 보다 높다.
  • 복제의 과정이 있다. 적합한 상호 작용자들은 평균적으로 보다 큰 복제 가능성을 갖는다. 그리고 적합도가 낮은 디자인보다 적합도가 높은 디자인에서 보다 많은 변종들이 만들어진다.
  • 상호 작용자의 적합도에 기여하는 빌딩 블록들은 시간이 갈수록 보다 빈번히 복제되고, 이에 따라 해당 집단에서 더욱 퍼지게 된다.
  • 마지막으로 변이, 선택, 그리고 복제의 알고리즘 과정은 순환적으로 일어난다. 한 단계에서 나온 산출물은 그다음 단계에서 투입물 역할을 한다.

 

진화의 알고리즘이 적절히 준비된 정보 처리 기질, 적합한 모수들을 가지고 작동되면 다음과 같은 결과를 기대할 수 있다.

  • 임의성에서 질서가 나온다. 단순한 임의의 디자인에서 출발, 적합도 함수의 관점에서 지시된 복잡한 디자인을 알고리즘이 만들어 낸다. 모든 진화의 과정은 개방형 시스템으로 운영되며 그 결과 알고리즘은 국지적인 엔트로피를 감소시키는 에너지를 만들어 내고 임의성을 질서로 바꾸어 나간다.
  • 적합 디자인들의 발견이다. 알고리즘은 적합 디자인을 찾아 매우 광할한 디자인 공간을 탐색하기 위한 빠르고 효율적인 방법을 제시한다. 내생적인 진화에서 어떤 디자인들이 살아남아 환경의 제약 조건하에서 복제를 해나간다면 그것들은 적합한 디자인들이다.(좋은 디자인이 복제된다)
  • 연속적인 적응이다. 알고리즘은 적합도 함수가 무엇을 원하는지 학습하고 그 기준들을 충족시키는 디자인들을 추구한다. 적합도 함수가 변하면 진화는 새로운 선택 압력을 반영하는 디자인들을 생산해 낸다.
  • 지식의 축적이다. 진화 과정은 시간이 흐르면서 지식을 축적한다. 우리가 레고 진화 과정을 멈추고 특정 시점에 모든 장난감들에 대한 도식 카드들을 분석하면 카드들에 들어 있는 정보는 역사적으로 장난감들이 진화해 왔던 적합도 환경에 관한 학습 또는 지식을 반영하고 있음을 알 수 있다. 마찬가지로  DNA는 생물학적 디자인들이 과거에 작업을 해왔던 엄청난 양의 정보를 담고 있다. 당신이 만약 다른 행성에서 떨어진 외계인이고 지구를 한 번도 본 적이 없지만 어떻게 해서 지구의 한 유기체로부터 DNA를 얻었다면 그 DNA 코드만으로도 지구 환경에 대해 많은 것을 학습할 수 있다.(DNA 식별자를 보유하고 있다는 가정하에서) 도식들은 진화 과정에서 일종의 하드 드라이브와 같은 것이다. 시간이 흐름에 따라 정보들을 채워 나간다.
  • 새로운 것의 출현이다. 진화 과정 동안 알고리즘은 계속해서 새로운 변종의 디자인들을 창조한다. 이론적 의미에서 보면 모든 가능한 디자인들은 이미 디자인 공간에 존재한다. 그러나 그것들을 발견하고 실제로 만들어 냄으로써 진화는 새로운 디자인을 현실 세계로 이끈다. 레고 사례에서 진화 알고리즘은 틀림없이 어린이 스스로는 그전에 전혀 생각지도 못했던 그런 디자인들을 대량으로 생산할 것이다. 그리고 컴퓨터상의 가상적 진화를 이용해 제트 엔진의 팬블레이드에서 컴퓨터 칩에 이르기까지 모든 것을 디자인해 보는 실험도 새로운 디자인들을 만들어 냈다.
  • 성공적인 디자인에 기여하는 자원의 증가다. 성공적인 디자인 집단들은 성장한다. 성공적인 디자인들이 경쟁에서 이겨 자원을 획득해 감에 따라 성공하지 못한 디자인들은 사라져 간다. 집단들이 크다는 것은 성공적인 도식들이 물질, 에너지, 그리고 정보 측면에서 비성공적인 도식들보다 더 많은 자원을 관리한단는 얘기다. 그러나 그러한 증가는 평탄한 패턴을 따르는 게 아니라 공진화에서 오는 네트워크 효과와 적합도 지형 그 자체 간의 결합에 따른 단속 균형 패턴을 따를 것이다.

 

진화는 개략적으로 상호 연관된 수준의 적합도 지형을 가진 광활한 디자인 공간에서 적합 디자인들을 찾아내는 데 매우 효과적이다.

  • 진화는 병행 탐색을 활용한다. 사실 집단의 각 멤버는 개별적인 디자인 실험이다. 많은 보행자들이 밖에서 높은 정점을 찾아다닌다.
  • 진화는 점프의 스펙트럼을 만들어 낸다. 진화는 국지적 최고점에서 옴짝달싹못하게 할 위험이 있는 짧고 점진적인 점프만을 추구하지 않는다. 그렇다고 무모할 정도로 긴 점프를 많이 추구하는 것도 아니다. 그것은 성공보다 실패 확률이 더 크기 때문이다.
  • 마지막으로, 진화는 연속적인 혁신의 과정이다. 알고리즘의 순환적 특성은 결코 중단되지 않는다. 지형이 계속 변하는 특성을 갖고 있는 한 이는 중요하다. 진화는 탐색과 활용의 균형을 맞추어 가기 때문에 기간에 따라 보다 활발하거나 그렇지 않은 탐색 기간이 있을 수 있지만 탐색은 결코 끝나지 않는다. 시스템은 균형이 없다. 진화 시스템에서 정지는 소멸을 위한 처방이다.

 

실제로 진화는 말한다. "나는 많은 것들을 시도해서 그 결과를 보고 도움이 되는 건 더 많이 하고 그렇지 않은 건 덜한다." 그러나 이 과정에서 놀라운 일들이 일어난다. 알고리즘은 적합도 함수가 원하는 것이 무엇인지를 학습한다. 그리고 그 학습의 지식이 도식에 쌓여 간다. 그리하여 진화 과정은 더욱 적합한 디자인을 탐색하면서 새로운 것을 생성해 낸다.

 

진화는 놀이와 같다. 배역과 각본은 정해져 있지만 구체적인 배우, 세팅, 그 외 많은 세부적인 사항들은 아직 정해지지 않았다. 진화 과정은 생물학, 컴퓨터 가상 실험, 레고 장난감 게임에 적용될 수 있다. 보편적인 진화 과정은 구체적인 기질이 무엇인가에 상관없이 조건만 구비되면 바로 앞에서 기술했던 그런 결과들을 만들어 낸다.

 

 

진화 이론에서 경제 현실로

진화와 경제학은 상호 밀접하게 연관된 역사를 가지고 있다. 경제학의 많은 거장들이 진화를 경제학에 포함시키는 문제로 씨름해 왔지만 그들은 결국 다음 두 가지 제약과 마주했다. 우선 생물학적 진화에 대한 이해를 경제적 진화에 그대로 일대일로 대응시키려는 노력으로 어려움을 겪었다. 예컨대, 유전자에 해당하는 것이 경제에서는 무엇인가? 기업들의 그룹도 하나의 개체의 총수인가?(인구와 같은) 경제에서 부모와 그 후손들을 구성하는 것은 무엇일까? 이런 초기의 노력들은 은유적 추론에 문제가 있었던 것이다.

 

3부에서는 진화에 대한 현대의 알고리즘적 관점이 주장하는 것은 진화 시스템은 보편적 법칙들을 따르는 하나의 보편적 클래스를 형성한다는 것이다. 그렇다면 경제도 이 클래스의 한 부류이고 이런 법칙들을 따르는지 물을 것이다.