진화론 이야기 - 곤충의 크기

고생대 석탄기 지층에서는 거대한 곤충화석이 나오곤 합니다.다음과 같이 날개길이 65cm가 넘는 거대한 잠자리처럼 말입니다.



그러나 석탄기를 끝으로 이러한 거대한 곤충들은 자취를 감추게 됩니다. 그 이유는 다음 그래프, 그리고 곤충의 호흡기와 관련되어 있습니다.



곤충은 오른쪽 그림과 같은 숨관으로 호흡을 합니다. 어류처럼 아가미로 물을 보내는 근육도, 육상동물처럼 허파로 공기를 빨아들이는 근육도 없습니다. 기껏해야 배의 근육을 움직여 숨관 안의 공기를 환기시키는 정도입니다. 숨관과 모세숨관을 통해 외부의 산소가 몸속까지 확산되도록 할 뿐입니다.

산소의 농도가 35%에 달하는 석탄기에는 숨관에 의한 산소의 확산만으로 큰 몸을 지탱할 수 있습니다.
그러나 그 후 산소농도가 급격하게(15%까지) 떨어집니다. 이렇게 되자 숨관을 이용한 산소의 확산만으로는 그 큰 몸집을 지탱할 수 없게 됩니다. 그때문에 작아지는 쪽으로 진화가 일어난 것이죠.


1. 산소농도가 급격하게 줄었다고 하지만, 지질학적 시간단위로 봤을때 '급격하게'입니다. 실제로는 수십만년, 수백만년에 걸쳐 서서히 산소량이 줄어든 것입니다.

2. 또 착각하기 쉬운 것이, 산소량이 줄어들어 커다란 곤충은 질식해 죽고 작은 곤충만 남았다는 식의 생각일 겁니다. 1번에서도 말했지만, 실제로 산소농도가 떨어진 것은 수십만년에 걸쳐서였습니다. 당시 옅은 산소에 질식해서 죽은 곤충들은 없습니다. 단지 움직이면 조금 빨리 지칠 뿐이었죠.
거대한 곤충들은 질식해서 멸종한 것이 아니라, 빨리 지치는 바람에 생식기회를 놓치기 쉬워서 멸종한 것입니다.

3. 창조론자들이 흔히 하는 질문이, '그렇다면 왜 곤충들은 작아지는 방향으로 진화가 일어났냐, 어류에게 허파가 생기는 것처럼  새로운 호흡기관이 생겼다면 큰 몸집을 유지할 수 있었을 것 아니냐'입니다.
그러나 사실 이것은 전혀 의미없는 이야기일 뿐입니다. 마치 동전을 던졌는데 '왜 앞면이 나오지 않고 뒷면이 나왔냐' 정도의 의미없는 물음이죠. 만약 정말로 새로운 호흡기관이 생겨서 지금도 독수리만한 잠자리가 날아다닌다면 '그렇다면 왜 곤충들은 작아지는 방향으로 진화가 일어나지 않았냐? 그러면 구태여 새로운 기관을 만들 필요도 없었을 텐데'라는 질문이 나왔을 겁니다.

뱀발 : 혹시 본문에 오류가 있다면 얼마든지 지적해 주시기 바랍니다.

진화론 이야기 - 아가미와 허파

많은 사람들은 아가미가 허파로 진화했다고 생각하고 있습니다. 둘 다 산소를 흡수하는 호흡기관이니까 말입니다. 그런데 아무리봐도 아가미와 허파는 구조가 너무 다르네요. 만약 정말로 아가미가 허파로 진화했다면, 허파는 지금처럼 공기주머니 모습이 아니라 아가미와 비슷한 빗살구조로, 공기를 담는 것이 아니라 공기가 스쳐지나갈때 산소를 흡수하도록 되어 있었겠죠.






약 4억년전 데본기의 바다에서는 오른쪽 판피어(Placodermi) 같은 포식자들이 번성했습니다. 그들에 밀린 경골어류들은 포식자를 피해 민물인 강으로 달아났습니다.

일단 민물로 피신한 것까지는 좋았는데, 깊은 바닷물에 비해 얕은 강물은 대기의 영향을 많이 받을 수밖에 없었습니다. 즉, 가뭄이 계속되면 수량도 줄어들고 수온이 올라 물의 산소량이 줄어드는 상황이 벌어집니다.
더운날 어항의 금붕어가 수면에서 공기를 삼키는 것처럼 그들 역시 산소가 모자랄 때는 수면에서 공기를 삼키곤 했습니다. 그러면 식도에 분포되어 있던 실핏줄을 통해 산소를 흡수할 수 있었습니다.
시간이 지나고 세대가 지남에 따라 식도에 분포하던 실핏줄들은 자연선택에 의해 점차 발달하게 되고, 마침내는 식도의 한 부분이 부풀어올라 주머니처럼 발달하게 되었습니다. 그래야 공기와 실핏줄이 닿는 넓이가 넓어져 더욱 효율적이기 때문입니다. 이것이 허파의 탄생이었죠.

여기서 어류의 진화방향이 갈립니다.
허파와 부레
물이 부족한 늪지 등에 계속 머물던 어류들은 폐어(lungfish) 등으로 존재합니다.
육상으로 올라간 어류들(양서류)은 그 원시허파가 계속 발전하여 지상동물의 허파로 진화됩니다.
판피어들이 사라진 후 바다로 되돌아간 물고기들은 산소가 풍부한 바다에서 아가미만으로 충분히 호흡이 가능하죠. 그 때문에 그들의 허파는 산소를 흡수하는 대신 공기를 채워 부력을 조절하는 방향으로 진화가 일어나게 됩니다. 즉 허파가 부레로 진화한 것입니다. 사실 허파와 부레의 구조는 그다지 큰 차이가 없고, 둘다 소화관에 연결되어 있다는 공통점도 있습니다.

아가미가 허파로 진화한 것이 아니라, 허파라는 새로운 기관이 생긴 후 아가미가 퇴화한 것입니다. 그리고 허파는 아가미가 아닌 부레와 상동기관입니다.

이렇게 식도의 일부에서 허파가 발생하였기 때문에 지금처럼 자칫하다간 음식물이 식도가 아닌 기관으로 들어가 질식하는 '창조주의 실수'가 생긴 것입니다.

창조론자들은 새로운 기관이 생길 수는 없다고 하지만 이와같이 허파라는 새로운 기관이 생기는 원리는 이미 잘 밝혀져 있습니다.

출처 : 사이언스 TV에서 방송한 다큐멘터리인데 제목이 잘...^^;

창조론 이야기 - 실패의 의의

깊은 정글에서 일군의 탐험가들이 보물을 찾고 있습니다. 그들은 어느새 수십개의 동굴이 늘어서 있는 절벽에 도착했습니다. 그들중 절반은 주저앉아서 말합니다.
"여기가 끝이야. 여기에 보물이 있을 리가 없어."
그러나 나머지 사람들은 동굴 몇 곳으로 나뉘어 들어갑니다. 그중 한 동굴에서 사람들이 나와서 보고합니다.
"이 동굴에는 아무것도 없습니다."
그들은 그 동굴에 ×팻말을 붙여놓고는, 천막으로 와 물을 마십니다.
그것을 보고 주저앉아 있던 사람들이 말합니다.
"거봐, 여기는 아무것도 없다니까..."
"맞아, 빨리 집에 가서 하나님께 기도나 하자구..."

창조론자들에게 커다란 떡밥이 제공된 것 같습니다. 과일 파리의 진화실험이 실패했다는 내용이군요

창조론자들은 진화가 불가능함이 입증되었다고 좋아하는 것 같습니다만, 이 실험이 입증한 것은 '진화가 불가능함'이 아닙니다. '이런 식으로의 진화는 일어나지 않는다', 그러므로 '다른 방식으로 진화를 실험해 보자'는 것이 이 실험 실패의 의의입니다.

창조론자들이 뭐라고 하든 진화론자들은 여러가지 방법을 동원해서 과일파리의 진화를 성공시킬 것입니다. 그렇게 되면 아무 일도 하지 않던 창조론자들은 '파리의 소진화일 뿐이다'라고 주장하겠죠(박테리아의 진화실험에서처럼 말입니다).

그렇게 주저앉아 있는 탐험대원들을 보며 탐험대장이 물을 마시고 있는 신입대원에게 말합니다.
"예전에 에디슨이라는 탐험대장과 함께 '전구'라는 보물을 찾으러 간 적이 있었지. 그때도 지금과 같은 상황이었어. 수천개의 동굴을 뒤져야 했다고.
그때도 저치들은 '전구같은 게 여기 있을리가 없다'면서 주저앉아 있었지. 하지만 에디슨대장은 수천개의 동굴을 모두 뒤져서 전구를 찾아냈지 뭔가."
"그 보물은 어떻게 됐나요?"
"탐험대 전원이 나눠가졌지. 주저앉아있던 저치들을 포함해서 말일세"
"그런데 여기 정말 '진화'라는 보물이 있을까요?"
"나도 알 수 없다. 하지만 체념은 저 동굴들을 모두 뒤져본 후에 해도 늦지 않아. 그리고 보물이 없다고 해도 '진화란 보물은 없다'는 사실을 알았다는 자체가 우리에게는 보물이지"
"그런데 정말 '진화'란 보물이 나온다면, 저 아무일도 하지 않은 사람들과 나누어가져야만 하나요?"
"자, 쓸데없는 말 그만하고 다시 시작하자구."
대장은 신입대원을 데리고 ×팻말이 붙어있지 않은 동굴을 향해 발걸음을 옮깁니다.

진화론 이야기 - 어류는 양서류로 진화하지 않는다.

제목보고 의아하게 생각하시는 분들 많을지도... 어류가 양서류로 진화했다는 것은 정설인데 무슨 소리? 얘가 진화교에 심취하더니, 드디어 정신이 나갔구나...

진화가 뭔지 제대로 모르는 창조론자들이 흔히 이런 말을 하죠.
어류가 양서류로 진화했다고 하는데 왜 지금은 양서류로 진화하는 어류를 볼 수가 없냐? 이것만 봐도 진화론은 거짓이다.

결론부터 말하자면 어류는 양서류로 진화했습니다. 그러나 어류는 양서류로 진화하지 않습니다. 여전히 정신나간 소린가요?^^

Tiktaalik
약 3억 6천만년 전, 어류들은 얕은 여울가까지 진출했습니다. 얕은 물에 몸을 반쯤 담그고, 헤엄치는 대신 바닥을 기어다닐 수 있는 틱타알릭류(?)로 진화한 것입니다
.

이러한 육지로의 진출시도는 쉽게 성공하지 않았습니다. 수많은 어류들이 육상으로 오르려다 실패를 거듭한 끝에 마침내 한 종이 육상으로의 진출에 성공한 것입니다.

그들이 뭍에 올랐을때, 뭍은 텅 비어 있는 상황이었습니다. 이렇게 생태적으로 비어 있는 공간에 어느 한 종이 진출했을 때 그들은 급속하게 종분화를 하게 됩니다. 그들 역시 비어있는 뭍으로 퍼져나가며 다양하게 종분화를 하게 됩니다.

이렇게 최초로 뭍에 진출한 어류의 후손이 '양서류'입니다.이들은 하나의 조상에서 분화했기에 동일한 특성 - 축축한 피부, 피부호흡, 껍질없는 알을 물 속에 낳기 등 - 을 가지고 있고, 그때문에 '양서류(양서강 - Amphibia)'라는 분류체계를 형성하게 된 것입니다.

그렇다면 지금도 어류가 양서류로 진화할 수 있을까요?
① 다시한번 말하지만 3억 6천만년 전 뭍은 텅 비어 있었습니다. 갓 뭍으로 올라와 비틀거리는 틱타알릭류가 뭍에 익숙해질 때까지 그들을 방해할 만한 천적들이 없었습니다.
만약 지금 다시 어류의 일부가 뭍으로 올라가겠다고 짧은 지느러미로 버둥거린다면 어떨까요? 뭍에서 기다리고 있던 육상동물들의 맛있는 먹이가 되어 도태될 뿐입니다.
② 혹시나, 태평양 한가운데에 화산섬이 생긴다면, 그리고 수천만년동안 외부 동물들이 이 섬에 들어오지 못한다면 그 섬에서 다시한번 어류가 육상으로 진출하는 진화가 일어날지도 모르겠습니다. 하지만 그곳에서 육상으로 진화한 생물이 과연 양서류일까요?

그들은 양서강(Amphibia)이 아닐 것입니다. 파충강(Sauropsida)도 아닐 테고, 포유강(Mammalia)이나 조강(Avian)은 더욱 아니겠죠. 이들은 새로운 분류체계를 만들어서 제 5의 강으로 분류해야 할 것입니다. 왜냐하면 현재의 양서류들과는 전혀 다른 조상에서 발생했기 때문입니다.

진화에는 정해진 길이란 없습니다. 까마득한 과거에 어류가 양서류로 진화했다어류는 양서류로 진화한다고 할 수는 없습니다.

진화론 이야기 - 몸의 탄생

지구상에 최초의 생명이 탄생한 것은 약 30~40억년 전으로 생각되고 있습니다. 그 후 약 30억년동안 지구상의 생물들은 단세포생물들 뿐이었습니다.
그러다가 약 6억년전, 선캄브리아기를 전후해서 생물들은 앞다투어 '몸'을 만들기 시작했습니다. 바로 다세포생물의 탄생이었죠.
어떤 이유로 인해 30억년동안 단세포로 지냈던 생물들이 갑자기 몸을 만들기 시작했을까요?

1. 세포의 동아줄
다세포생물의 경우 세포들 사이의 접착제는 오른쪽 그림과 같은 콜라겐입니다(그림출처) 이렇게 밧줄처럼 생긴 콜라겐에 의해 세포들이 접착되는 것이죠. 노화가 진행될 때 피부가 푸석푸석해지는 것 역시 피부속에 들어있던 콜라겐이 분해되면서 피부세포들간의 접착력이 줄어들기 때문입니다.

최초의 다세포생물들 역시 이런 콜라겐을 만듦으로써 이분법에 의한 무성생식 후 완전히 떨어지지 않게 된 것이라 생각하고 있습니다.

2. 다세포가 되기 위한 선택압
만약 일부 세포가 콜라겐에 의해 다세포를 이루었다면, 그러한 다세포생물이 자연선택에서 살아남기 위한 선택압이 있어야 합니다. 그렇지 않다면 결국 다세포생물은 도태되고 말 것입니다.

이에 대한 실험결과1)가 있습니다.
단세포로 존재하는 조류(藻類 : algae)를 수천세대 배양한 후, 그 조류를 먹는 포식자를 풀어놓았습니다. 그 포식자는 편모로 조류들을 추적하며 잡아먹어 소화시키는 녀석들이었죠.
그러자 불과 200세대만에 조류들은 서로 뭉치기 시작했습니다. 혼자서 다니는 조류보다는 뭉쳐서 존재하는 조류들이 이 포식자를 피하기가 용이했기 때문이었죠. 조류들은 수천개의 세포로 이루어진 덩어리가 되었습니다.
그러나 이렇게 수천개 덩어리의 중심부에 있는 조류들은 햇빛을 받을 수 없었기에 도태되기 시작했습니다. 시간이 지나면서 조류들이 이루는 덩어리는 점점 작아지기 시작했습니다.
그리하여 마침내 조류는 세포 8개로 이루어진 덩어리로 존재하기 시작했습니다. 즉 단세포생물에서 군체생물로의 진화가 일어난 것이죠. 게다가 포식자를 제거한 후에도 이 8개세포의 군체는 흩어지지 않고 군체로서의 삶을 계속하게 되었습니다.

3. 그렇다면 왜 30억년이 걸렸을까?
위의 실험에서 보듯이 포식자가 있다면 다세포생물(정확히는 군체생물)로의 진화는 매우 쉽게 일어납니다. 그렇다면 왜 저런 진화가 더 일찍 일어나지 않았을까요? 왜 최초의 다세포생물의 화석이 6억년 전의 지층에서발견되기 시작했을까요?

그것은 지구의 환경 때문입니다. 콜라겐을 합성하기 위해서는 상당히 많은 산소가 필요합니다. 그런데 초기 지구에는 산소가 거의 없었습니다.
즉, 몸을 만들기 위해서는 먼저 광합성을 하는 생명체가 탄생하고, 그 후에 산소가 지구에 가득 차게 되고, 또 그 산소를 이용할 수 있는 생명체가 탄생한 후에야 몸을 만들 수 있었던 것입니다.

4. 그렇다면 왜 단세포생물이 남아 있을까?
창조론자들의 성향으로 보아 틀림없이 이런 질문이 나올 듯 합니다. '다세포가 되면서 포식의 위험에서 벗어났다면 왜 단세포동물들이 남아 있느냐?'
먹이인 단세포동물이 모여 거대해진다면 포식자는 가만히 있을까요? 그것은 역시 포식자에 대한 선택압으로 작용하여 포식자들 역시 다세포생물이 되어야 합니다. 그러나 포식자들 역시 거대해진다면 오히려 단세포인 생물들이 다세포포식자를 피해 살아남을 수 있게 되죠.
결국 생태계는 다세포생물과 단세포생물이 균형을 이루게 되고, 그것이 현재까지 유지되고 있는 것입니다.


reference
1) Boraas. M. E., Seale. D. B., Boxhom. J. (1998) Phagotrophy by a flagelate selects for colonial prey : A possible origin of multicellularity, Evolutionary Ecology 12:153~164

출처 : 내 안의 물고기(닐 슈빈 저)

요리하는 여자

한 연인이 있었습니다.
어느날 여자는 남자친구를 저녁식사에 초대했습니다.

남자친구가 도착하자, 여자는 준비했던 스테이크를 만들기 시작했습니다. 그녀는 손질되어 있는 고기 한귀퉁이를 잘라내고 큼지막한 프라이팬에 올렸습니다.
그것을 보고 남자는 물었습니다.
"고기 한쪽은 왜 잘라냈어? 상한 부분이었나?"
"아니, 엄마가 요리할 때마다 고기 한쪽을 자르고 하셔서 그냥..."

그 말을 듣고 보니 그녀도 어머니가 왜 고기를 잘라냈는지 궁금해졌습니다. 그래서 어머니에게 전화를 걸었습니다.
"엄마, 엄마가 스테이크 만들때 늘 고기 한쪽을 잘라내잖아, 왜그런거야?"
"갑자기 그건 왜 묻니? 네 외할머니가 스테이크 만들때마다 잘라내서 그냥 따라한 건데..."

그녀는 더욱 궁금증이 생겼습니다. 결국 그녀는 외할머니에게까지 전화를 걸었습니다.
외할머니의 대답은 이랬습니다.
"그거? 그때 집에 있던 프라이팬이 너무 작아서 고기가 다 안들어갔었거든. 그래서 조금 잘라내고 구웠지."

스스로 이유를 찾지 않으면 이렇게 쓸데없는 삽질을 하게 되는 경우가 있습니다.

- 출처 : 리더스 다이제스트

진화론 이야기 - 단속평형설(Punctuated Equilibrium)의 오해

진화론에서 이야기하는 다른 많은 이론들도 마찬가지겠지만, 1972년 엘드리지와 굴드가 발표한 단속평형설은 특히나 더 창조론자들의 오해를 많이 받고 있습니다. 물론 그 이유는 진화론을 비난하는 창조론자들이 단속평형설을 전혀 모르고 있기 때문, 그리고 절대 알려고 하지 않기 때문이죠.

100만년전 지층에서 몸길이 10cm의 화석이 발견되었습니다. 그리고 1만년전 지층에서는 몸길이 1m인 또다른 화석이 발견되었습니다. 두 화석의 골격을 비교해본 결과 두 화석은 같은 계통으로 100만년전 10cm에 불과했던 동물이 1만년전에는 1m까지 커지는 진화가 일어났다는 결론을 내립니다.
이때 창조론자들은 다음과 같은 그래프를 내밀며 주장합니다.


[진화론이 맞다면 이 그래프처럼 점진적으로 진화해 왔다는 것인데,그렇다면 30cm, 50cm, 60cm짜리 화석은 왜 안나오느냐?]


단속평형론에 대한 창조론자들의 오해는 다음과 같은 것이 있습니다.


1. 단속평형설은 바람직한 괴물 이론이다. - 단속평형설에 의하면 10cm짜리 동물이 어느날 갑자기 1m짜리 새끼를 낳기 시작했다는 이야기인데 말이 됩니까?
원래 '바람직한 괴물 이론'을 주창한 것은 굴드가 아니라 골드슈미트(Richard Goldschmidt, 1878-1958)입니다. 골드슈미트는 때때로 일어나는 거대돌연변이가 생존에 유리할 경우(즉 괴물이 태어났는데 그것이 '바람직한 괴물'일 경우) 그것이 새로운 종이 된다고 주장했습니다. 단속평형설은 골드슈미트의 이론과 전혀 관계가 없습니다. 단지 변화가 급격하게 일어난다는 공통점만으로 단속평형설과 바람직한 괴물 이론을 헷갈리는 것입니다.

단속평형설은 일반적인 진화론과 마찬가지로 '점진적 변화'를 말합니다. 다만 단속평형설에서 주장하는 것은 '변화의 속도가 일정치 않다'는 것입니다. 마치 다음 그림과 마찬가지입니다.



즉 일반적인 진화론이 '이 동물의 크기가 99만년동안 1년에 약 0.001mm씩 점진적으로 변화해 왔다'는 것에 비해 단속평형설은 '이 동물의 크기는 '45만년동안 거의 변화가 없다가 10만년에 걸쳐 1년에 약 0.01mm씩 점진적으로 변화한 후 다시 45만년동안 거의 변화가 없다'는 것입니다. 그에 의하면 50cm짜리 화석이 발견될 가능성은 10%로 감소하게 됩니다.
만약 그러한 변화가 1000년에 걸쳐 점진적으로 일어났다고 해도 이 동물의 크기변화는 1년에 1mm 증가라는, 말이 안되지 않는 변화입니다. 그리고 이렇게 된다면 50cm짜리 화석이 발견될 가능성은 0.1%밖에 안되는 것이죠.


2. 단속평형설은 중간화석의 부재를 설명하기 위해 억지로 만든 가설이다. - 이렇게 중간화석이 발견되지 않으니까 굴드 같은 진화설자들은 단속평형설을 대충 만들어서 주장하고 있습니다.
일단 단속평형설은 중간화석의 부재를 설명하기 위해 만들어진 것은 맞습니다. 하지만 '대충 만든 가설'은 아닙니다.

1960년대 이후 생물학은 새로운 강력한 도구를 얻게 되었습니다. 바로 컴퓨터였죠. 컴퓨터 시뮬레이션을 통해서 수천년 걸릴 변화도 며칠 안에 알 수 있게 되었습니다. 그에 따라 진화론에서 나왔던 여러 이론들을 실험실은 아니지만 컴퓨터 가상세계 안에서 시뮬레이션이 가능해졌습니다.

단속평형설 역시 실험실에서 실험하기에는 쉽지 않은 이론입니다. 하지만 컴퓨터 안에서 실험하기는 어렵지 않죠.
생물학자들은 컴퓨터 내부에서 유전자의 움직임을 시뮬레이션했습니다. 그 결과 단속평형설에서 예측했던 '적응성의 도약'현상이 발견되었습니다. 생물의 적응성이 한동안 정체하다가 마치 위 그래프처럼 짧은 시간에 높은 적응성으로 뛰어오르는 현상이 발견된 것입니다.


유전자를 검사해본 결과는, 유전자는 꾸준한 변화(진화)를 보이고 있었습니다. 그러나 그 무리의 적응도는 그다지 큰변화가 없는 상황이 한동안 계속되었습니다. 그러다가 유전자의 진화가 어느 임계점을 넘었을때 그 유전자가 무리 전체로 퍼지면서 비교적 짧은 시간내에 전체 적응성이 올라가는 현상이 발견된 것이죠.(인공생명<스티븐 레빈> 참조)

<2010.11.5일 본문 수정>

창조론 이야기 - 선무당이 사람 잡는다.

어느 신학자가 있습니다. 그의 주장은 '물리학은 거짓이다. 이 세상은 오로지 신의 뜻대로 움직일 뿐이다.물리학에서 말하는 각종 이론과 법칙들은 모두 사탄의 수작이다'입니다.

물론 그의 이론은 많은 사람들이 반론합니다. 개중에는 '물리학책 한권이라도 보고 이야기하는 것이냐'라는 반론도 있습니다.
이 신학자는, 그 말에 반론하기 위해 물리학책을 삽니다. 그리고 아무데나 펼칩니다. 마침 '부력'에 대한 설명이 있군요. 여러가지 실험결과와 함께 결론이 있습니다.
[그러므로 유체 내의 고체는 고체가 밀어낸 유체의 무게만큼의 부력을 받게 되며, 물체가 이보다 가벼우면 물에 뜨게 된다]
그러나 그의 눈의 필터가 작동, 이 글은 다음과 같이 보이게 됩니다.
[그러므로 유체 내의 고체는 고체가 밀어낸 유체의 무게만큼의 부력을 받게 되며, 물체가 이보다 가벼우면 물에 뜨게 된다]
그는 책을 덮고는 신나게 컴퓨터로 달려가 다음과 같은 글을  올립니다.

'저도 물리학 공부를 할만큼 했습니다. 그런데도 물리학은 오류 투성이더군요. 말하자면 물리학의 부력 설명은 물체가 가벼우면 물에 뜬다고 되어 있습니다. 그렇다면 물에 가라앉는 바둑돌과 물에 뜨는 항공모함과 어느쪽이 가벼운가요?'

GA - 미로 속 슬라임 - 흠뻑 젖은 슬라임

8. 젖은 슬라임
앞과 같은 미로를 통과하기 위해서는, 슬라임이 과거에 어디를 통과했는지에 관한 기억이 필요합니다. 그래서 왔던길로 돌아가지 말아야 하는 것이죠.

내가 어디서 왔는지를 표시하기 위해 슬라임이 수액을 분비한다고 해 봅시다. 슬라임은 이동할 때마다 자신이 있는 위치를 수액으로 흠뻑 적십니다. 슬라임의 이동경로를 따라 수액의 흔적이 남을 겁니다. 이 수액은 시간이 갈수록 조금씩 말라갑니다.
그와 함께 슬라임은 자기 주위의 습기를 알 수 있는 감지기를 가지고 있습니다. 이것으로 자기가 어디서 왔는지 알 수 있겠죠.

이 젖은슬라임을 만들기 위해서는 약간의 변형이 필요합니다. 먼저 미로에 습기를 저장할 수 있도록 해야 합니다.

procedure MazeProcess(slime, maze)
   // 슬라임을 출발점에 세움
   slime.LocX := 1
   slime.LocY := 1
   maze.Clear() // 미로 안의 모든 습기 제거

   // 미로 안에서 슬라임 움직임
   for k := 0, 900 do // 미로 안에서 슬라임이 움직이는 횟수
                     // 미로가 클수록 커져야 함
      // 미로 안의 습기 말리기
      for x := 0, 15 do
         for y := 0, 15 do
            if maze.Wet[x][y] > 0 then
               maze.Wet[x][y] := maze.Wet[x][y] - 1
            end
         end
      end

      // 슬라임이 수액 분비
      maze.Wet[slime.LocX][slime.LocY] := 100

      // 어디로 움직일지 생각
      movedirect = SlimeThink(slime, maze)

      // 이동할 위치
      if movedirect == 'E' then
         newx := slime.LocX + 1
         newy := slime.LocY
      elseif movedirect == 'W' then
         newx := slime.LocX - 1
         newy := slime.LocY
      elseif movedirect == 'S' then
         newx := slime.LocX
         newy := slime.LocY + 1
      elseif movedirect == 'N' then
         newx := slime.LocX
         newy := slime.LocY - 1
      end

      // 이동한 결과 계산
      if maze.IsBlock(newx, newy) then // 블럭에 충돌
         slime.Fitness := slime.Fitness - 10 // 적응도 감소
      else // 충돌하지 않을 경우
         slime.LocX := newx
         slime.LocY := newy
         slime.Fitness := slime.Fitness - 1 // 적응도 감소

         // 목적지에 도착했나?
         if maze.IsGoal(slime.LocX, slime.LocY) then
            slime.Fitness := slime.Fitness + 1000 // 적응도 대폭 증가
            break // for 루프 탈출
         end
      end
   end
end


즉 슬라임이 있는 위치의 습도는 100, 슬라임이 떠난 후 1씩 감소합니다.

function SlimeThink(slime, maze)
   // 슬라임 동서남북의 블럭정보 얻기
   curstate.detect.EastBlock := maze.IsBlock(slime.LocX + 1, slime.LocY)
   curstate.detect.WestBlock := maze.IsBlock(slime.LocX - 1, slime.LocY)
   curstate.detect.SouthBlock := maze.IsBlock(slime.LocX, slime.LocY + 1)
   curstate.detect.NorthBlock := maze.IsBlock(slime.LocX, slime.LocY - 1)

   // 사방의 습기 찾기
   curstate.detect.EastWet := maze.WetOrder(slime.LocX + 1, slime.LocY)
   curstate.detect.WestWet := maze.WetOrder(slime.LocX - 1, slime.LocY)
   curstate.detect.SouthWet := maze.WetOrder(slime.LocX, slime.LocY + 1)
   curstate.detect.NorthWet := maze.WetOrder(slime.LocX, slime.LocY - 1)

   // 나갈 입구의 방향 찾기
   curstate.detect.ExitEast := maze.IsExitEast(slime.LocX, slime.LocY)
   curstate.detect.ExitWest := maze.IsExitWest(slime.LocX, slime.LocY)
   curstate.detect.ExitSouth := maze.IsExitSouth(slime.LocX, slime.LocY)
   curstate.detect.ExitNorth := maze.IsExitNorth(slime.LocX, slime.LocY)
   // GeneList(유전자들의 묶음)에서 curstate 찾기
   fnd := slimt.GeneList.Find(curstat)
   if fnd == nil then // 처음 만나는 상황
      // effect부분을 랜덤으로 만듦
      for k := 0, 10 do
         curstate.effect[k] = Random("EWSN") // EWSN 중에서 하나 선택
      end
      slime.GeneList.Append(curstate) // 현재 상황 추가
      fnd = curstate
   end
   // 여기까지 해서 fnd에는 현재상황에 맞는 유전자가 들어있음

   return fnd.effect[Random(0, 9)]
end

이때 EastWet~NorthWet을 설정하는 데는 각 방향의 습기를 그대로 저장할 수도 있지만, 그렇게 된다면 유전자 수가 너무 많아질 수 있습니다. 동서남북 최대 100단계이니 100000000개 가까이 유전자가 늘어날 수 있죠(물론 불가능한 조합도 있습니다만)
그러므로 여기서는 각 방향의 습기 등수를 가져오도록 했습니다(가장 많이 젖은 곳이 0, 그다음 젖은 순서대로 1, 2, 3). 그 외는 앞의 슬라임과 동일합니다.

9. 젖은 슬라임의 결과
'수액에 젖은' 슬라임으로 100세대를 진화시킨 결과입니다.


그리고 앞의 슬라임이 통과하지 못했던 미로를 통과한 결과입니다.


두 개의 미로 모두 최적의 슬라임이 탄생했습니다. 단, 두개의 미로를 모두 통과할 수 있는 슬라임이 태어난 것은 아닙니다. 첫째 미로를 돌파하는 슬라임을 둘째 미로에 넣는다면 제대로 못찾을 것입니다.
이러한 현상을 막기 위해서는 미로 자체를 변화시켜야겠죠.

GA - 미로 속 슬라임 - 결과

3. 재생산
재생산루틴은 오델로의 경우와 거의 동일합니다.
3.1 선택
재생산 대상 선택은, 여기서는 T=0.9, num=2(4개를 뽑아 2회 겨루기)인 토너먼트법을 사용했습니다.
3.2 교차
오델로의 경우와 비슷합니다. 두 슬라임의 유전자리스트를 동기화시킨 후 일정한 확률로 동일한 두 유전자를 교환합니다.
3.3 돌연변이
역시 detect부분은 건드리지 않고 effect부분 10개의 방향비트들을 일정한 확률로 바꿉니다.

procedure Mutantation(slime)
   for k := 0, size(slime.GeneList) do
      if RandomRate then
         // 모든 비트 돌연변이
         for b := 0, 10 do
            slime.GeneList[k].effect[b] := Random("EWSN")
         end
      else
         // 비트 하나하나 돌연변이
         for b := 0, 10 do
            if RandomRate then
               slime.GeneList[k].effect[b] := Random("EWSN")
            end
         end
      end
   end
end

4. 결과 1
우선은 위와 같은 방식으로 100세대를 진화시켰습니다. 각 세대마다 최고 적응도를 얻은 슬라임을 찾아 100번의 시도 중 성공횟수와 이동횟수, 충돌횟수를 그래프로 그린 것입니다.


그래프에서 잘 보이지는 않지만 성공횟수는 가장 밑에 깔려 있습니다(모두 0). 충돌횟수는 점점 줄어들고 반면 이동횟수는 늘어나지만, 정작 중요한 성공횟수에서는 좌절할 수밖에 없습니다. 즉, 슬라임의 진화는 대실패란 뜻이죠.ㅡㅡ;


5. 용불용설(用不用說 : Use Disuse Theory)
용불용설은 과학적으로 폐기된 이론입니다. 용불용설이 설득력을 가지려면 외부 환경이 유전자에 직접 영향을 미치는 메커니즘이 밝혀져야 합니다. 그러나 환경이 유전자에 영향을 미치는 그러한 메커니즘은 자연계에서 발견되지 않았습니다.
하지만 이 슬라임의 창조주(?)는 프로그래머입니다. 이 슬라임에 용불용설을 설계해 놓는 것은 프로그래머 마음이죠(어째 창조론/지적설계론자가 된듯....)
여기서는 슬라임이 장애물에 충돌한다면, 슬라임을 충돌시킨 유전자를 수정하는 식으로 코딩했습니다.


function SlimeThink(slime, maze)
   // 슬라임 동서남북의 블럭정보 얻기
   curstate.detect.EastBlock := maze.IsBlock(slime.LocX + 1, slime.LocY)
   curstate.detect.WestBlock := maze.IsBlock(slime.LocX - 1, slime.LocY)
   curstate.detect.SouthBlock := maze.IsBlock(slime.LocX, slime.LocY + 1)
   curstate.detect.NorthBlock := maze.IsBlock(slime.LocX, slime.LocY - 1)

   // 나갈 입구의 방향 찾기
   curstate.detect.ExitEast := maze.IsExitEast(slime.LocX, slime.LocY)
   curstate.detect.ExitWest := maze.IsExitWest(slime.LocX, slime.LocY)
   curstate.detect.ExitSouth := maze.IsExitSouth(slime.LocX, slime.LocY)
   curstate.detect.ExitNorth := maze.IsExitNorth(slime.LocX, slime.LocY)

   // GeneList(유전자들의 묶음)에서 curstate 찾기
   GeneFind := slimt.GeneList.Find(curstat)
   if GeneFind == nil then // 처음 만나는 상황
      // effect부분을 랜덤으로 만듦
      for k := 0, 10 do
         curstate.effect[k] = Random("EWSN") // EWSN 중에서 하나 선택
      end
      slime.GeneList.Append(curstate) // 현재 상황 추가
      GeneFind = curstate
   end
   // 여기까지 해서 fnd에는 현재상황에 맞는 유전자가 들어있음

   GeneSlot = Random(0, 9)
   return GeneFind.effect[GeneSlot]
end

여기서 GeneFind와 GeneSlot은 전역변수입니다. 즉 이번 슬라임의 이동에 영향을 준 유전자를 저장하고 있습니다. 그리고

procedure MazeProcess(slime, maze)
   // 슬라임을 출발점에 세움
   slime.LocX := 1
   slime.LocY := 1

   ........

      // 이동한 결과 계산
      if maze.IsBlock(newx, newy) then // 블럭에 충돌
         slime.Fitness := slime.Fitness - 10 // 적응도 감소
         GeneFind.effect[GeneSlot] := Random("EWSN")// 충돌시킨 유전자 수정
      else // 충돌하지 않을 경우
         slime.LocX := newx
         slime.LocY := newy
         slime.Fitness := slime.Fitness - 1 // 적응도 감소

         // 목적지에 도착했나?
         if maze.IsGoal(slime.LocX, slime.LocY) then
            slime.Fitness := slime.Fitness + 1000 // 적응도 대폭 증가
            break // for 루프 탈출
         end
      end
   end
end

즉,돌연변이에 의해 장애물에 충돌하는 슬라임이라도 이후에는 그 유전자를 수정하여 더이상 충돌하지 않도록 만드는 것입니다.

6. 결과 2
용불용설까지 적용한 결과는 다음과 같습니다.


하나의 그래프로 나타내기 위해 적당히 배율을 조정했습니다. 여기서 뚜렷이 알 수 있듯 충돌횟수는 급격히 줄어들었습니다. 무엇보다 성공횟수가 불과 7세대만에 만점(100번 시도에 100번 성공)에 도달했으며, 그 후에도 이동횟수도 점차 감소하는(헤매지 않고 목적지로 이동하는) 현상을 보이고 있습니다. 아까의 대실패에 비하면 성공인듯 싶군요.

그런데 과연 성공일까요?

7. 이 슬라임의 약점
이번에는 이 슬라임을 다음과 같은 미로에 넣어 보도록 합시다.

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ S                         @
@ @ @ @ @ @ @ @ @ @ @ @ @   @
@                           @
@   @ @ @ @ @ @ @ @ @ @ @ @ @
@                           @
@ @ @ @ @ @ @ @ @ @ @ @ @   @
@                           @
@   @ @ @ @ @ @ @ @ @ @ @ @ @
@                           @
@ @ @ @ @ @ @ @ @ @ @ @ @   @
@                           @
@   @ @ @ @ @ @ @ @ @ @ @ @ @
@                         E @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @

이러한 미로에서 100세대동안 진화시킨 결과는 다음과 같습니다.


미로만 바꾸었을 뿐인데 성공률은 뚝 떨어지고 말았습니다. 왜 이런 결과가 나왔을까요.
다음과 같이 슬라임이 1번위치에 있을 때와 2번위치에 있을 때를 비교해 봅시다.

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@                           @
@ @ @ @ @ @ @ @ @ @ @ @ @   @
@     1                     @
@   @ @ @ @ @ @ @ @ @ @ @ @ @
@         2                 @
@ @ @ @ @ @ @ @ @ @ @ @ @   @
@                           @
@   @ @ @ @ @ @ @ @ @ @ @ @ @
@                           @
@ @ @ @ @ @ @ @ @ @ @ @ @   @
@                           @
@   @ @ @ @ @ @ @ @ @ @ @ @ @
@                         E @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @


두 위치에 있을 때 주위의 장애물 구조는 동일합니다(남북에만 장애물). 또한 목적지의 방향 역시 동일합니다(남서쪽). 그럼에도 불구하고, 두 위치에 있을때 슬라임이 가야 할 방향은 반대입니다(1번일 경우는 서쪽으로, 2번에서는 동쪽으로).
그러므로 최초에 설계한 유전자로는 이 두 경우를 나눌 수 없고, 결국 이런 종류의 미로는 찾을 수 없다는 결론이 나옵니다.
과연 이러한 미로를 통과할 수 있는 슬라임은 탄생할 수 있을까요?

GA - 미로 속 슬라임 - 개요

"찾았다"
어느 병사의 외침에 다른 병사들이 달려왔다. 그들 한가운데에는 슬라임 한마리가 반투명한 몸체를 흔들며 서 있었다. 병사들은 슬라임을 둘러싸고 무기를 슬라임에게 향했다.
그것은 창 같지만 창이 아니었다. 창날이 있어야 할 곳에 넓적한 판자가 달려 있었다.
"시작하십시오"
대장이 옆에 있는 노마법사에게 말하자, 다섯명의 젊은 마법사들이 슬라임을 중심으로 오망성을 이루었다.
"자, 모두들 주의하시오. 저놈이 포위망을 뚫으면 안됩니다"
노마법사의 명령에 이어 젊은 마법사들은 주문을 읇기 시작했다. 갑자기 슬라임이 붉은 빛에 휩싸이는 듯 싶더니 몸부림을 쳤다. 그와 함께 병사들의 판자에서는 룬문자가 빛나기 시작했다. 그 판자에 닿은 슬라임은 감전이라도 된 듯 물러났다. 하지만 그와 함께 병사들 역시 몇걸음씩 뒤로 물러나곤 했다.
"힘내라, 밀리면 안된다!"
주문이 끝나갈 동안 병사들은 슬라임을 버티고 있었다. 마침내 붉은 빛이 잦아들면서 슬라임은 주먹만한 크기로 줄어들었다. 노마법사는 그제서야 유리병을 꺼내 슬라임을 넣었다.
"됐다. 성공이다."
"잘 됐다니 다행이군요. 그런데 그 슬라임을 뭐에 쓰려고 잡는 겁니까?
"보시겠습니까?"
대장과 함께 텐트로 돌아온 노마법사는 탁자 위의 천을 걷었다. 그곳에는 다음과 같은 미로가 있었다.

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@ S @           @           @
@   @   @ @ @   @ @ @     @ @
@       @       @           @
@ @ @ @ @   @ @       @     @
@           @   @ @ @       @
@   @ @ @ @ @       @   @ @ @
@   @           @ @ @       @
@   @   @ @ @       @ @     @
@   @   @         @         @
@       @     @ @     @     @
@ @ @ @     @       @       @
@   @       @   @ @     @ @ @
@               @         E @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @

노마법사는 슬라임을 왼쪽 위에 넣고는 뚜껑을 닫았다. 그리고 오른쪽 아래에 있는 문을 열었다. 노마법사가 잠시 슬라임에게 주문을 걸자 슬라임은 미로를 돌아다니기 시작했다
"지금 저 슬라임은 자기 주위에 장애물이 있는지 없는지와, 출구의 방향만을 알 수 있습니다. 그것만으로 이 미로를 빠져나와야 합니다. 조금이라도 미로를 더 잘 찾는 슬라임들만 골라서 번식시키면 마침내는 미로를 빠져나오는 슬라임이 만들어질 겁니다. 저는 그런 슬라임을 만들려는 것입니다."
"호오.. 그래요? 그런데 미로찾는 슬라임은 뭐에 쓰실려구요?"
"예? 뭐에 쓸 거냐구요? 저... 그러니까... 글쎄요... 어디에 쓰면 좋을까요?"

1. 유전자 설계
다른 것도 마찬가지지만, 일반적으로 유전자는 어떤 상황에서 어떻게 행동할까로 정의하는 것이 쉽습니다.

1.1 상황패턴
위에서도 말했지만 슬라임이 알 수 있는 것은 동서남북에 장애물이 있는가와 출구의 방향입니다.
슬라임의 현 상황을 묘사하기 위해서는 8개의 숫자가 필요합니다. 만약 윗 그림의 슬라임이 S위치에 있다면


1101 1010

이 될 것입니다. 이때 앞 4자리는 동서남북의 장애물 유무(동, 서, 북쪽에 장애물이 있고 남쪽에는 없다), 뒤 4자리는 출구가 동서남북 어느 쪽에 있는지(출구는 동남쪽이 있음)를 의미합니다.

1.2 행동패턴
다음에는 이 슬라임이 어떻게 행동할까(어떤 방향으로 움직일까)입니다. 간단히 하자면, 동서남북 중 어느쪽으로 갈지만 묘사하면 됩니다. 그러므로 오델로의 경우와 마찬가지로 다음과 같은 상황과 행동의 묶음을 유전자로 할 수 있습니다.

(1101 1010 - S)
(1001 1101 - E)
(0011 1000 - N)
...


즉, 슬라임이 출발점에 있다면 그 슬라임은 남쪽으로 이동하게 될 것입니다.

그러나 만약 이 슬라임이 다음과 같이

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@   @           @           @
@   @   @ @ @   @ @ @     @ @
@       @       @           @
@ @ @ @ @   @ @       @     @
@           @   @ @ @       @
@   @ @ @ @ @       @   @ @ @
@   @           @ @ @       @
@   @   @ @ @       @ @     @
@   @   @         @         @
@       @     @ @     @     @
@ @ @ @     @       @       @
@   @       @   @ @     @ @ @
@               @       S E @
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @

출구 바로 앞까지 도착했다면 어떻게 될까요? 이때의 상황은 0011 1000이며, 유전자 묶음에서의 행동은 N, 북쪽으로 이동하는 것입니다. 결국 이 슬라임은 출구 바로 앞에서 좌절하겠죠.
그러므로 여기서는 행동패턴은 단일한 방향이 아닌 10% 단위의 확률로 나타내기로 했습니다. 이를테면


(0011 1000 - ENNENENNEW)

와 같이 할 수 있습니다. 여기서 E가 3개, W가 2개, N이 5개이므로 이 경우에는 동쪽으로 갈 확률 30%, 북쪽 50%, 서쪽 20%, 남쪽으로 갈 일은 없게 되겠죠. 이 슬라임은 30%확률로 동쪽으로 갈 것이며 목적지에 도착할 것입니다(물론 20% 확률로 서쪽으로 가겠지만, 그래도 목적지에 도착할 가능성이 0%는 아닙니다).

2. 미로찾기
전체적으로, 이 슬라임은 오델로와 비슷한 루틴을 가지고 있습니다. 각 슬라임은 최초에 아무것도 없는 상태에서 시작하며, 자신이 있는 위치에서 현재 상태를 감지, 유전자리스트에서 유전자를 찾습니다.
다음 함수는 현 위치에서 슬라임이 어느 위치로 이동할지 생각하는 함수입니다.

function SlimeThink(slime, maze)
   // 슬라임 동서남북의 블럭정보 얻기
   curstate.detect.EastBlock := maze.IsBlock(slime.LocX + 1, slime.LocY)
   curstate.detect.WestBlock := maze.IsBlock(slime.LocX - 1, slime.LocY)
   curstate.detect.SouthBlock := maze.IsBlock(slime.LocX, slime.LocY + 1)
   curstate.detect.NorthBlock := maze.IsBlock(slime.LocX, slime.LocY - 1)

   // 나갈 입구의 방향 찾기
   curstate.detect.ExitEast := maze.IsExitEast(slime.LocX, slime.LocY)
   curstate.detect.ExitWest := maze.IsExitWest(slime.LocX, slime.LocY)
   curstate.detect.ExitSouth := maze.IsExitSouth(slime.LocX, slime.LocY)
   curstate.detect.ExitNorth := maze.IsExitNorth(slime.LocX, slime.LocY)

   // GeneList(유전자들의 묶음)에서 curstate 찾기
   fnd := slimt.GeneList.Find(curstat)
   if fnd == nil then // 처음 만나는 상황
      // effect부분을 랜덤으로 만듦
      for k := 0, 10 do
         curstate.effect[k] = Random("EWSN") // EWSN 중에서 하나 선택
      end
      slime.GeneList.Append(curstate) // 현재 상황 추가
      fnd = curstate
   end
   // 여기까지 해서 fnd에는 현재상황에 맞는 유전자가 들어있음

   return fnd.effect[Random(0, 9)]
end

최초에 슬라임을 초기위치(1, 1)에 넣은 후 SlimeThink()를 실행, 미로를 진행하게 됩니다.

procedure MazeProcess(slime, maze)
   // 슬라임을 출발점에 세움
   slime.LocX := 1
   slime.LocY := 1

   // 미로 안에서 슬라임 움직임
   for k := 0, 900 do // 미로 안에서 슬라임이 움직이는 횟수
               // 미로가 클수록 커져야 함
      // 어디로 움직일지 생각
      movedirect = SlimeThink(slime, maze)

      // 이동할 위치
      if movedirect == 'E' then
         newx := slime.LocX + 1
         newy := slime.LocY
      elseif movedirect == 'W' then
         newx := slime.LocX - 1
         newy := slime.LocY
      elseif movedirect == 'S' then
         newx := slime.LocX
         newy := slime.LocY + 1
      elseif movedirect == 'N' then
         newx := slime.LocX
         newy := slime.LocY - 1
      end

      // 이동한 결과 계산
      if maze.IsBlock(newx, newy) then // 블럭에 충돌
         slime.Fitness := slime.Fitness - 10 // 적응도 감소
      else // 충돌하지 않을 경우
         slime.LocX := newx
         slime.LocY := newy
         slime.Fitness := slime.Fitness - 1 // 적응도 감소

         // 목적지에 도착했나?
         if maze.IsGoal(slime.LocX, slime.LocY) then
            slime.Fitness := slime.Fitness + 1000 // 적응도 대폭 증가
            break // for 루프 탈출
         end
      end
   end
end

여기서 충돌하지 않고 이동했을 때도 적응도를 감소시키는 것은, 목적지에 빨리 도달한 슬라임에게 적응도를 높여주기 위함입니다.
이런 식으로 각각의 슬라임은 저 미로를 100회씩 돌게 됩니다.

procedure MainRoutine
   for generation := 0, 100 do
      for k := 0, 4096 do
         SlimeList[k].Fitness := 0
         for m := 0, 100 do
            MazeProcess(SlimeList[k], Maze)
         end
      end
      Rebirth Next  Generation
   end
end

마음속의 늑대

체로키 부족의 인디언 할아버지가 손자에게 말합니다.

"우리 마음 속에는 늑대 두 마리가 있지. 한 마리는 사랑과 평화, 겸양과 친절의 늑대, 다른 한 마리는 욕심과 미움, 교만과 게으름의 늑대. 이 두마리 늑대들은 늘 싸우고 있단다."

손자가 묻습니다
"싸우면 누가 이겨요?"

"네가 날마다 먹이를 주는 늑대가 이긴단다."

창조론 이야기 - 과학의 규칙

두 팀이 축구경기를 하고 있습니다. 그런데 한 팀이 이상한 행동을 하는군요. 공을 손으로 잡고 달리고 있습니다.
상대방이 항의하자, '어차피 공 잡으라고 있는 손인데 뭐 어떠냐, 발로만 차는 너희가 더 이상하다'라고 반문합니다.
심판이 반칙을 선언하자 '심판이 편파판정한다'고 주장합니다.
야유하는 관중들을 향해서는 '관중의 수준이 글러먹었다'고 소리칩니다.
마침내 축구협회에서는 이 축구단을 제명합니다. 그러자 '축구협회가 우리들을 탄압하고 있다'고 징징거립니다.

축구에 축구의 규칙이 있듯이 과학에도 과학의 규칙이 있습니다. 창조론자들이 창조론(또는 지적설계론)을 과학이라 주장한다면 과학의 규칙을 따라야 합니다. 그렇지 않으면 위의 축구단처럼 축구협회에서 제명당할 수밖에 없습니다.

과학에는 다음과 같은 몇가지 규칙이 있습니다.

1. 존재가 증명될 때까지는 부재로 간주된다. - 신이 없다는 증거가 있습니까? 그러니 신은 있습니다.
만약 부재의 증거가 없다고 존재로 간주해 버린다면, 이 세상의 모든 것이 존재할 수 있습니다. FSM도 부재한다는 증거가 없으니 이 세상의 창조주는 야훼가 아니라 FSM이라고 해도 상관없게 될 것입니다. 그뿐 아니라 생각할 수 있는 모든 것이 부재의 증거가 없으므로 존재할 수 있게 됩니다. 이렇게 되면 과학이 아니라 판타지가 되겠죠. 그러므로 과학에서는 존재가 증명될 때까지 부재로 처리해야 합니다.


2. 경향을 이야기할 때는 경향만을 이야기하자. - 틱타알릭 이전에 이미 발자국화석이 나왔습니다. 그러니 틱타알릭화석은 거짓입니다.
초등학생 1학년부터 6학년까지 무작위로 10명씩 추려내어 키를 쟀습니다. 그리고는 '학년이 올라갈수록 키는 커진다'는 결론을 냈습니다. 그런데 '1학년의 가장 큰 애가 2학년의 가장 작은 애보다 크기 때문에 학년이 오를수록 커진다고 할 수 없다'는 주장을 합니다.
틱타알릭 이전의 발자국이 있다는 것은 틱타알릭 이전에 이미 틱타알릭류(?)의 진화가 이루어졌다는 것 뿐(지질학적 시간단위에서 2천만년은 그리 오랜 시간이 아닙니다), 결과적으로 어류 -> 틱타알릭류(?) -> 양서류로 진화하는 '경향'은 부정할 수 없습니다.


3. 이중잣대문제 - 진화론에서 그런 주장을 하는 근거는 무엇입니까? 그리고 창조론의 주장에 대해 근거만 요구하는 태도를 버리십시오.
가장 짜증나는 '규칙위반'입니다. '나는 손으로 들고 뛸 테니 너도 손을 써라'도 아니고 '나는 손으로 들고 뛰지만 너는 발만 써야 해'라고 요구하는 것이나 마찬가지입니다. 진화론에 대해서는 1+1=2가 되는 근거까지 요구할 정도로 철저히 파헤치면서도 자신들의 주장에 대해서 근거를 요구하면 '있다면 있는줄 알아' 식으로 나가는 경우가 많죠,
근거를 대긴 하는데 허깨비근거인 경우도 있습니다. '밀러의 실험은 1994년 스페인 회의에서 공식적으로 폐기되었다'라고 주장하곤 합니다. 그런데 구글이고 뭐고 '1994년 스페인회의'를 찾아보면 창조과학회 자료들만이 있을뿐 자세한 정보(1994년 언제, 스페인 어디에서 누구누구가 참석해서 어떤 내용이 토의되었는지)는 찾을 수가 없더군요.


4. 비교할 수 없는 것을 비교하지 말자 - 키 170인 사람이 1년동안 1cm컸다고 그사람이 170살이라고 할수 있습니까? 마찬가지로 1년에 1mm씩 자라는 종유석이 수십미터라고 그 동굴이 수백만년 되었다고 할 수 없습니다.
키 170인 사람은 170살이라는 주장이 엉터리라고 생각되는 이유가 무엇일까요. 우리가 이미 인간의 성장에 대해 상당히 많은 정보를 가지고 있기 때문입니다. 즉 '현재 가지고 있는 인간에 대한 정보'로서는 키 170인 사람은 170살이라고 주장할수 없습니다.
그런데 저 종유석은 전혀 다르죠. '현재 가지고 있는 종유석에 대한 정보'로서는 동굴이 수백만년이 되었다고 주장할 수밖에 없습니다.
시간에 따라 성장률이 다른 사람의 키와, 시간에 따라 성장률이 일정한(정확히는 시간에 따라 성장률이 달라진다는 증거가 없는)종유석을 비교하는 것은 규칙에 어긋나죠.
Nature처럼 전 세계 과학자들이 보는 학술지와 Institute for Creation Research처럼 창조론자들끼리만 돌려보는 학술지를 비교하는 것도 마찬가지입니다.

5. 모든 증거들을 고려하자 - 팔룩시강의 수많은 인간발자국들이 모두 조작이란 말입니까?
팔룩시강 발자국에 대해서는 이미 ICR에서도 더이상 언급을 회피할 정도로 공룡발자국임이 밝혀졌습니다. 이 발자국이 생기는 이유는 여러가지입니다. 그중에 하나가 주위 사람들의 조작이란 것이죠.
그러나 창조론자들은 다른 이유들은 다 무시해버리고 '인간의 조작' 하나에만 매달립니다. 그래서 위 보기와 같은 주장을 하곤 하죠.
자신에게 불리한 증거(지층에 화석들이 신기할 정도로 정확하게 분류되어 나타난다)는 무시하고 유리한 증거(40일간의 폭우에 의해 그랜드캐년도 생길 수 있다)에만 매달리는 경향이 있죠.

지적설계론은 지적설계자를 모욕하는 행위 - 벌거숭이두더지쥐

아프리카 사막지대에 벌거숭이두더지쥐(naked mole rat)라는 설치류가 살고 있습니다. 이름처럼 털이 하나도 없는 몸에, 땅 속에 굴을 파고 살고 있는 쥐의 일종입니다(사진출처).

그러나 이 벌거숭이두더지쥐의 가장 놀라운 점은, 척추동물에서는 유일하게 벌이나 개미같은 사회생활을 한다는 점입니다.

이들의 무리는 한마리의 여왕과 서너마리의 수컷, 그리고 많게는 300마리에 이르는 암컷으로 이루어져 있습니다. 그러나 그 중에서 생식의 권리는 여왕만이 가지고 있습니다.

여왕은 생식의 독점권을 지키기 위해 매일같이 자신의 왕국을 시찰합니다. 그리고는 만나는 다른 암컷을 사납게 공격합니다.
여왕에게 공격당하는 암컷은 아무런 반항 없이 여왕에게 짓밟힙니다. 그러는 동안 암컷의 몸에서 스트레스에 의해 분비되는 호르몬이 성호르몬의 분비를 감소시키며, 마침내 불임이 되어 교미에 흥미를 잃어버립니다. 결국 그들의 암컷들은 암흑 속에서 여왕의 구박을 받으며 2세에 대한 희망도 없이 중노동으로 점철된 삶을 살아가게 됩니다.

비록 그들이 살고 있는 곳이 너무나 황량한 곳이라 부족한 먹이를 여왕에게 몰아주는 쪽이 번식에 유리하다고 해도, 꼭 그런 식으로 비참한 생활을 하도록 설계했을 필요가 있었을까요?

세 가문 이야기

많은 사람들이 살고 있던 어느 나라에 유명한 가문이 세개 있었습니다. '정'가문'종'가문, 그리고 '과'가문이었습니다. 이 세 가문은 이 나라가 세워질 때부터 있었던 유서깊은 가문이었습니다.

'정'가문은 이 나라의 지배자였습니다. 대대로 이 가문에서 왕과 재상이 나와 나라를 지배하고 있었습니다.

'과'가문의 사람들은 어떻게 보면 다른 사람들에게는 전혀 관심없이 자신들만의 세상에 빠져있는 듯 했습니다. 하늘을 보면서 하늘이 어떻게 생겼을까, 구름을 보면서 구름은 왜 떨어지지 않을까 하는 뜬금없는 고민을 하며 지냈기 때문입니다. 가끔씩 번개가 왜 생기는지 마을 사람들에게 이야기하곤 했지만 마을 사람들은 전하가 어떻고 정전기와 저항이 어떻고 하는 이야기를 알아들을 수가 없었습니다.
그럼에도 불구하고 사람들은 '과'가문 사람들을 좋아했습니다. '과'가문 사람들이 만든 배와 그물로 멀리까지 나가서 고기를 잡을 수 있었고 그들이 만든 정과 망치, 시멘트로 돌을 다듬어 집을 지을 수 있었기 때문이었습니다.
비록 그들이 만든 일부 발명품들은 '정'가문이 독점하고 사람들을 지배하는 수단으로 사용했지만, 그럼에도 '과'가문 사람들은 그런 것에는 별 관심이 없는 듯 했지만 말입니다.

그에비해 '종'가문의 사람들은 하늘과 구름, 번개에 대해 사람들에게 알기쉬운 설명을 했습니다. 하늘에는 신이 살고 있고 그는 구름을 타고 다니며 나쁜 사람 즉 신을 믿지 않는 사람에게 번개로 징벌을 내린다고 말이죠.
사람들은 이해반, 두려움반으로 '종'가문을 따르게 되었습니다.

'정'가문은 이러한 '종'가문의 세력에 관심을 가지게 되었습니다. 그리하여 자신의 권력을 확실히 하기 위해 '종'가문과 손을 잡았습니다.

세력을 잡은 '종'가문'과'가문이 눈엣가시처럼 여겨졌습니다. 자신은 '땅은 평평하고 태양이 하늘에서 움직인다'는 지동설을 사람들에게 가르쳐 왔는데, '과'가문'코'아무개'갈'아무개는 '지구는 둥글고 태양 주위를 돈다'는 지동설을 가르치고 있었기 때문이죠. '종'가문'갈'아무개를 잡아와서 직접 '신의 징벌'을 가합니다. 그 후로도 '과'가문을 향한 '종'가문의 '신의 징벌'은 계속됩니다.

그럼에도 불구하고 사람들은 '종'가문의 가르침과 '과'가문의 가르침 사이에서 '과'가문의 가르침이 더 증거가 많다는 사실을 알게 됩니다. 그리고 '과'가문을 따르는 사람들이 점점 늘어납니다. 마침내 '과'가문의 세력이 '종'가문의 세력을 능가하게 되죠.

'종'가문에는 '카'아무개'프'아무개라는 아들들이 있었습니다. 맏형인 '카'아무개는 자신들이 주장하던 천동설이 '과'가문의 지동설에 패배하는 장면을 목격하고는 '과'가문을 그런대로 인정하려 하고 있었습니다. 그러나 동생 '프'아무개'과'가문을 여전히 백안시하고 있었습니다.

어느날 '과'가문'다'아무개가 진화론이란 것을 들고 나왔습니다. '카'아무개는 일단 침묵을 지키며 상황을 바라보고 있었습니다. 그러나 동생 '프'아무개는 그런 형을 이단(泥段 : 진흙조각)이라 말하며 '다'아무개에게 신의 징벌을 내리려 했습니다. 그러나 '과'가문의 많은 형제들이 '다'아무개에 이어 진화론을 더욱 튼튼하게 만들고, 무엇보다 국민들이 더이상 '신의 징벌'에 관심이 없었죠. 결국 '프'아무개는 지적설계론이란 것을 만들어 진화론과 동등한 지위에 오를 수 있도록 법적투쟁을 시작하였습니다.

수도에서 이러한 법적투쟁이 일어나는 동안 지방의 여러 마을에서는 이미 '과'가문의 진화론이 널리 받아들여지고 있었습니다. 다만 동방에 있는 작은 마을 하나만 빼고 말입니다.
그 마을의 일부 사람들은 '프'아무개로부터 직접 가르침을 받은 사람들이었습니다. 그들은 아무 생각 없이 '프'아무개의 가르침대로 하고 있습니다. 그동안 '과'가문의 발명품들이 '정'가문악용된 것을 들춰내고, 가끔씩 '과'가문 사람들이 했던 실수를 크게 떠들고, '다'아무개의 형제들이 '아직 확실히 몰라서 계속 연구하고 있다'고 말한 것은 침소봉대하면서 '과'가문과 마을 사람들을 이간질시키려 하고 있습니다. 바로'과'가문이 만들어준 컴퓨터와 인터넷을 사용해 말입니다.

뱀발 : 위의 '카'아무개'프'아무개는 원래는 '천'아무개'개'아무개였습니다. 그런데 어감 때문에 바뀌고 말았죠..^^;

뱀발2 : 크리슈님의 비슷한 글이 있던데, 저도 따라서 써 봤습니다...^^

창조론 이야기 - 과녁과 화살

가끔 창조론자들이 저런 주장을 하더군요. 그런데 사실 저 말은 진실입니다. 진화론자들을 비롯한 과학자들은 활을 먼저 쏘지 절대로 과녁을 먼저 만들지 않습니다.

아무것도 없는 상태에서 활을 쏩니다. 그 화살은 앞에 있는 나무에 맞습니다. 또한발을 쏩니다. 역시 같은 나무 같은 위치에 맞습니다.
이번에는 눈을 감고 쏩니다. 어라, 이번에도 같은 위치에 맞았네요.
다른 나무를 향해 쏴도, 뒤로 돌아 반대방향으로 쏴도 화살은 유도탄처럼 아까 그 위치에 맞습니다. 어느새 그 위치에는 화살이 빽빽히 박혀 고슴도치처럼 되어 있습니다.
그제서야 과학자들은 그 화살이 박힌 곳에 과녁을 하나 그리고 그 과녁을 '진화론'이라 이름짓습니다. 비록 과녁은 나중에 그렸지만 이 과녁에 맞지 않은 화살은 하나도 없습니다.
이것이 위 창조론자가 '화살박힌곳에 과녁을 그린다'는 비아냥의 실체입니다. 결국 이런 비아냥은 학생이라는 놈이 공부나 하고 앉아있냐라든가 명색이 경찰이라면서 도둑들이나 쫓아다니고 말야 정도의 비아냥이라고 할 수 있습니다.

창조론자들은 '창조론'이라는 과녁을 먼저 만들어 놓고 활을 쏩니다. 그런데 100발 쏴도 한발도 과녁에 안맞는군요.
이렇게 되면 창조론자들은 과녁에 명중하지 않은 화살들을 뽑아서 몇개는 과녁 중심에 꽂아놓고 나머지는 버리거나 숨겨놓습니다. 그리고 자신들의 과녁에 명중했다고(자신들의 과녁이 진리라고) 주장합니다.

좀 조악한 비유이긴 합니다만 참아주세요, 윗 창조론자분의 조악한 비유에 대한 반론이니.....^^;

진화론 이야기 - 사실과 이론

'진화론은 사실이 아닌 이론일 뿐입니다'
창조론자들이 흔히 하는 말이죠.

실제로 맞는 말입니다. 진화론은 사실이 아니라 이론입니다.
그와 함께 이 말은 아무런 의미도 없는 말입니다.

아마 창조론자들은 진화론이 사실이 아니라 이론이기에 쓸모없다고 생각하는 모양인데, 실제로 진화론의 의미는 사실이 아닌 이론이라는 점에 있습니다. 창조론자들이 저런 말을 하는 것은 사실이 뭔지, 이론이 뭔지 전혀 개념이 안잡혀있기 때문입니다.


오른쪽 사진(?)을 보시기 바랍니다.
이것으로 알 수 있는 것은 무엇일까요?

1. 언덕이 있다.
2. 언덕 밑에 화강암 바위가 있다.
3. 언덕 위에는 뭔가 눌린 자국이 있다.
4. 언덕 위에서 바위까지 자국이 연결되어 있다.
5. 주위에는 저 흔적들을 제외한 어떤 자국도 없다.

이와 같이 직접 보고 알 수 있는 것이 사실입니다.
한편 이론은 사실이 아닙니다. 왜 이런 사실 - 언덕 아래의 바위, 언덕위의 눌린 자국, 바위까지 이어진 자국 - 이 생겼는지 설명하는 것이 이론입니다.
이 이론에는 여러가지가 있을 수 있습니다.

거인론 : 거인이 바위를 짊어지고 가다가 힘들어서 여기에 내려놓았다. 그리고 지친 거인이 언덕위로 올라가 주저앉아 쉬다 갔기에 저런 흔적이 생겼다.
용알론 : 커다란 용이 하늘에서 내려와 언덕을 베고 아래까지 길게 누워 있었다. 이 용은 곧 알을 낳고 하늘로 올라갔다. 저 바위는 실제로는 용의 알이다.
구른바위론 : 저 바위는 원래 언덕위에 있었다. 그런데 어떤 이유에선가 바위가 굴러떨어졌다. 그래서 바위가 원래 있던 자리와 구른 흔적이 남은 것이다.

이런 이론들 중에 어떤 이론이 저 사진을 가장 잘 설명하고 있을까요?
1. 바위의 존재는 거인론구른바위론으로 설명 가능합니다. 바위가 화강암으로 구성되어 있는 이상 용의 알이 아닌 바위의 존재는 용알론으로는 설명할 수 없습니다.
2. 언덕 위부터 아래에 걸친 눌린 자국은 용알론구른바위론으로 설명 가능합니다. 거인론으로는 아무리 발을 끌고 올라갔다고 해도 저런 자국이 남지 않습니다.
3. 언덕 위의 자국은 거인론용알론, 구른바위론 모두가 설명 가능합니다.
4. 주위에 아무런 자국이 없다는 것은 용알론구른바위론으로 설명됩니다. 거인이 왔던 발자국도, 떠난 발자국도 없는 이상 거인론으로는 설명할 수 없습니다.

쓸데없이 한참을 설명했지만, 결국 저 '사실'을 모두 설명할 수 있는 것은 구른바위론 뿐입니다. 용알론이나 거인론은 저 '사실들의 일부'를 설명할 수는 있겠지만 '모든 사실'을 설명하기에는 부족하죠.
그럼에도 불구하고 '거인론자'들은 많은 동화책에 거인들 이야기가 있다면서 거인론을 주장하고 있습니다. 거인론으로 설명할 수 없는 발자국 문제는 무시하면서 말이죠. 그리고 구른바위론어떤 이유를 설명하지 못한다면서 구른바위론을 배척합니다.


이것을 진화론에 대입시켜 봅시다.
관측된 사실은 다음과 같습니다.

1. 지층에는 화석이 있다.
2. 화석들 중 99% 이상은 현재 존재하지 않는 생물들이다.
3. 특정한 화석은 특정한 지층에서만 나타난다.
4. 고리종이 존재한다.
5. 다리달린 물고기 화석이 발견되었다.
.........

이런 모든 사실들을 제대로 설명할 수 있는 것은 진화론 뿐입니다.
창조론은 몇몇 사실을 설명할 수는 있겠지만 모든 사실을 설명할 수는 없습니다. 이를테면, 화석에 대해 창조론은 노아의 홍수로 설명합니다. 하지만 노아의 홍수로는 화석들 중 99% 이상은 현재 존재하지 않는 생물들이다라든가 특정한 화석은 특정한 지층에서만 나타난다는 사실을 설명할 수 없습니다. 창조론자들은 이렇게 설명할 수 없는 사실은 무시할 뿐이죠.

진화론이 사실이 아닌 이론일 뿐이라고 폄하할 필요는 없습니다. 진화론이 이론인 만큼 관찰된 사실(진화)을 잘 설명할 수 있으면 됩니다. 그리고 비록 진화론이 아직 설명하지 못하는 어떤 이유도 존재하지만, 그래도 진화론은 현재 관측된 사실을 가장 잘 설명하는 이론입니다. 또한 그 어떤 이유조차도 하나씩 밝혀지고 있습니다.
진화론이 아직 설명 못하는 어떤 이유때문에 진화론이나 창조론이나 똑같다고 주장하는 것은, 이빠진 그릇과 산산조각난 그릇이 똑같다고 주장하는 것이나 다름없습니다.