고대 그리스의 진화론

지식인에 흥미있는 질문이 올라왔더군요. 개와 늑대의 관계를 고대부터 알고 있었다면, 고대에는 진화론을 착안한 사람이 없었을까 하는 질문이었죠.

재미있는 주제같아서 한번 검색해 봤습니다. 실제로 진화론 자체는 아니더라도 비슷한 생각을 한 사람들이 있긴 하더군요. 그것도 기원전 고대 그리스에서 말입니다.

고대 그리스의 진화론자(?)는 엠페도클래스(Ἐμπεδοκλῆς, BC 493~430)라고 하는 철학자였습니다.

그는 4원소설 - 물, 불, 흙, 공기의 배합비율에 의해 모든 것이 만들어진다 - 을 주창했습니다. 이들의 사랑(인력)과 미움(척력)에 의해 모이고 흩어지면서 모든 것을 만들 수 있다는 사상이었죠.

생물들도 마찬가지입니다. 이러한 4원소에 의해 무작위적으로 모이고 흩어지면서 여러가지 생명체들도 생겨나고 변화한다고 생각했습니다.

여기서 엠페도클래스가 생각한 것은 이런 것이었죠.

만약 무작위적으로 모여서 생물이 생긴다면,
눈이 없는 생물이나 심장이 몸 밖으로 드러나있는 생물 등은 왜 없을까

그리고 결론은 이렇습니다.

그런 불완전한 생물들은 환경에 적응 못하고 사라지고,
정상적인 생물들만이 환경에 적응해 살아남는다.

생물이 어떻게 변화하는지에 대한 사고는 부족하지만, 환경에 적응해서 살아남는다는 자연선택의 개념을 떠올린 철학자였습니다.


비슷한 또하나의 철학자는 아낙시만드로스(Ἀναξίμανδρος , BC 610~546)였습니다.

그는 생물학 뿐 아니라 천문학(땅은우주에 떠있는 돌과 같다), 기상학(태양에 의해 땅에서 증발한 물이 비가 되어 내린다) 같은 여러 분야에 있어서 현대과학 못지 않은 업적을 이루었죠.

그는 모든 생명체의 근원으로 '아페론(Apeiron, ἄπειρον)'을 말했습니다. 이 아페론에서 간단한 생명체가 탄생했으며 인간은 물고기 또는 그와 비슷한 생물에서 진화했다는 주장을 했다고 하더군요.


이와 같이 진화는 고대인들조차 짐작하고 있었던 개념입니다. 그동안 창조과학을 주장하는 사람들에게 [고대인 수준]이라고 놀리곤 했는데 그것도 못하겠군요.


----------------------------------


성경 근본주의자들이 주장하는 '성경이 과학적이 이유'에 이런 이야기가 있었죠. 욥기를 인용하며 지구가 우주에 떠 있다는 사실을 기록했다던가

  • 욥기 26:7: 그는 북쪽을 허공에 펼치시며 땅을 아무것도 없는 곳에 매달으시며

물의 순환을 정확하게 묘사했다던가

  • 욥기 36:27: 그가 물을 가늘게 이끌어 올리신즉 그것이 안개 되어 비를 이루고
  • 욥기 36:28: 그것이 공중에서 내려 사람 위에 쏟아지느니라

하는 주장을 하고 있습니다.

그런데 위에서 말했던 것처럼 저런 지식은 고대 그리스에 이미 있었죠. 그런 지식이 유대로 흘러들어가 성경에 포함된 것이 아닐까 하는 의혹이 생기네요.

그렇게 보면 그리스 철학자들의 진화론(많이 부족하지만) 역시 같이 흘러가 성경 어느 구절에 포함되어 있을 수도 있겠습니다. 그리고 훗날 더이상 진화론을 부정했다가는 나락으로 가게 될 것이 확실해졌을 때, 그런 구절을 찾아서 이런 소리를 할 가능성도 없지 않을것 같네요.

보다시피 성경에는 이미 진화론에 대한 이야기가 적혀 있다.
그러므로 성경은 무오하며 과학적으로도 진실이다!!!

마치 평평한 지구와 천동설을 주장하다가 지금와서 성경에서 둥근지구와 지동설 설명을 찾아낸 것처럼 말입니다.

----------------------------

참고

그리스 자연철학의 진화론적 측면들

엠페도클래스 이론이 옳았다

AI시대 주목해야 할 엠페도클래스 '질문의 힘'

아낙시만드로스가 과학으로 가는 문을 열었다

고대철학자 아낙시만드로스가 진화론자였다고?

Anaximander and the Origins of Scientific Thought





GA - 진화하는 프로그램 언어

1. 개요

DNA는 단 4개의 코드가 연속된 구조를 가지고 있습니다. t-RNA는 이러한 DNA를 3마디씩 해석해서 여러가지 일을 하고 있습니다. 즉 DNA는 4개의 코드 3마디 - 64개의 명령어를 가진(물론 상당한 명령어가 중복) 프로그램 언어라고 할 수 있죠.

이러한 DNA를 본떠서 유전자 알고리즘용 프로그램 언어를 만들어 봤습니다.


2. 명령어

최초, 이 언어는 임의로 만들어진 2048개 길이의 바이트 배열입니다. 이런 식으로 말이죠.

0x0E 0x6D 0x8A 0xF3 0x3E 0xAD 0xB7 0xCD 0x08 0xBE 0x37 0x78 0x27 0x8A 0x23 ...

각 코드는 몇개의 명령어에 대응합니다. 이때 명령어 코드는 중복될 수 있으며(ex : 0x0F, 0x2D, 0x70 등이 같은 명령어) 이 명령어는 프로그램 실행시 임의로 배정됩니다.

각 명령어에는 이런 것들이 있습니다.


Jump Mask Arg
Jump 명령어를 만나면 이 명령어로부터 앞뒤로, Mask와 연산한 결과가 Arg와 같은 바이트들을 탐색합니다. 가장 가까운 바이트를 찾아서 그곳으로 제어를 옮기게 됩니다.

MemorySet MemPos Value
MemoryInc MemPos Value
MemoryDec MemPos Value
이 시스템에는 32개의 내부변수를 가지고 있습니다. 이 명령어는 MemPos로부터 메모리 위치를 계산한 후, Value값을 넣거나 그만큼 증가 또는 감소시킵니다.


IfGreater MemPos Value Mask Arg
IfLess MemPos Value Mask Arg
조건에 따라 분기를 하는 명령어입니다. MemPos의 메모리값과 Value를 비교합니다. 조건에 맞으면 뒤의 Mask와 Arg를 Jump명령어로 간주하여 실행하고, 맞지 않으면 무시하는 명령어입니다.

3. 메모리 & 입출력

위에서 언급했듯 이 시스템에는 32개의 int형 메모리를 가지고 있습니다. 프로그램은 Memory관련 명령어로 이 메모리를 갱신할 수도 있고 If관련 명령어로 이 메모리를 꺼내 사용할 수 있습니다.

외부 상태 - 자동차 앞 3부분의 장애물 여부 - 는 항상 메모리 앞쪽의 세개에 적용됩니다.

한편 뒤쪽의 세개 메모리의 값을 가지고 자동차의 움직임을 결정합니다.


4. 재생산 & 돌연변이

이런 몇개 안되는 명령어를 가지고 예전에 했었던 꼬마자동차에 실어 실행했습니다. 그 결과를 가지고 재생산을 해야겠죠. 원래 DNA에서 착안한 것이라 재생산에서도 DNA의 재생산을 참고했습니다.

복제야 그냥 복사만 하면 되고 교차 역시 코드를 둘로 끊어 붙이면 됩니다.

A A A A A A A A A A A A A A A A
B B B B B B B B B B B B B B B B

A A A A A A A A B B B B B B B B
B B B B B B B B A A A A A A A A


돌연변이는 다음과 같습니다.

1. 일반적인 돌연변이 : 코드의 각 비트(바이트 아님)마다 일정확률로 반전

2. 결실 : 코드의 일정 영역을 제거

3. 중복 : 코드의 일정 영역을 다시한번 복사

4. 역위 : 코드의 일정영역 두군데가 위치가 바뀜

5 결과

이와 같은 프로그램을 돌려서 자동차가 움직입니다. 만약 장애물에 걸린다면(장애물로 들어가려 한다면) 그 자리에서 움직이지 못합니다.

가장 많이 진행한 자동차를 중심으로 3000세대 번식시킨 결과들의 일부입니다.





여기서 볼 수 있듯 정체상태에서도 내부에서 꾸준히 유전자의 재조합이 일어나고 있습니다. 그러다가 장애물을 돌파할 수 있는 유전자가 발견되면 그것에 의해 적응도가 튀어오르는 계단식 진화 - 단속평형적 진화 - 또는 다음 단계까지 서서히 오르는 점진적 진화가 일어나고 있는 것을 볼 수 있습니다. 시간이 더 있었다면 더 먼 거리를 이동할 수 있는 자동차가 나왔을지도 모르겠네요.


오염된 후 화학전 전처리로 오염 제거

방사선 탄소 연대 측정법

여기서 어느 분이 이렇게 야외에서 톱질하는 것이 연구에 아무 상관 없다는 언급을 하시네요.

아무래도 그림으로 설명하는 것이 나을 것 같아서 새로 글을 팝니다.


본격적으로 들어가기 전에 한마디...

아무래도 님은 이렇게 생각하시는 것 같은데...

[어떤 오염이 된다고 해도 화학적 전처리를 통해 오염 이전의 상태로 완벽하게 되돌아갈 수 있다]

그렇다면 다른 화학자며 고생물학자들은 왜 그리 힘들게 시료를 밀폐하고, 깨끗한 실험실에서 처리할까요? 다른 화학자들은 화학적 전처리로 오염물질을 제거할 수 있다는 사실을 몰라서, 현장에서 저렇게 시료를 채취하는 간단한 일을 안하는 걸까요?

어떤 시료든 한번 오염되면 오염 전으로 완벽하게 되돌아갈 수 없습니다. 어떤 화학적 전처리를 해도 [오염 전에 최대한 가깝게] 되돌릴 수는 있어도 [오염 전으로 완벽하게] 되돌릴 수는 없어요.

그래서 수많은 과학자들이 [미리 오염 안되게] 조치(현장에서 밀폐, 깨끗한 실험실에서 외부 세척 후 내부시료 채취)하는 것이지, 저렇게 [오염된 후 화학적 전처리로 오염물질 제거]를 하지 않는 것입니다.

님이 말하는 오염을 제거하기 위한 화학적 전처리는 피치 못할 사정으로 시료를 채취하기 전에 이미 오염되어 있을 때 - 이를테면 이미 오염되어 있을 것이 확실한 표면에서 시료를 채취해야 할 경우 - 야 하는 것이죠. 물론 논문에는 [어떤 오염이 있었고 어떤 전처리를 했으니 감안하고 보라]는 식으로 명시해야 합니다.

본문제로 돌아와서

처음 발견된 화석은 이런 모습입니다. 회색의 화석 안에 극미량의 콜라겐(붉은색 점)이 존재합니다.

흙에 박혀 있는 이 화석 주위에는 온갖 유기물들로 가득차 있죠. 꽃가루, 박테리아, 동물들의 분변, 사람들이 흘린 땀 등....

이 상태로 톱질을 한다면 이런 상황이 됩니다.

편의상 크게 처리했지만 실제로 저것들은 매우 작은 크기입니다. 어쨋든 저렇게 톱질을 하면 주위 유기물들이 톱에 딸려들어가 잘려진 모든 표면이 오염됩니다.

여기서 화학적 전처리가 문제인데, 어떤 화학적 전처리를 해도 오염 이전으로 완벽하게 돌아갈 수는 없어요. 오로지 오염 이전으로 최대한 가깝게 돌아갈 수 있을 뿐입니다.

이렇게 이미 오염된 유기물을 완벽하게 제거하는 것이 아니라 일부 유기물이 남아있을 수밖에 없습니다. A와 B는 남아있는 오염된 유기물의 탄소, C와 D는 오염된 유기물의 탄소 + 극미량의 콜라겐 탄소가 측정되는 셈입니다. 여기서 콜라겐은 극미량이기에 A, B, C, D 모든 시료에서 거의 비슷한 pMC값이 측정될 수 있습니다. 즉 모든 구획에서 동일한 pMC값이 측정되었다는 것이 실험이 정확했다는 증거가 될 수 없는 것입니다.

실제로 정확한 실험은 이렇게 진행됩니다. 현장에서 샘플을 채취하는 것이 아니라 우선 밀폐 후 실험실로 옮깁니다.

그리고 실험실에서 외부의 유기물을 확실하게 제거합니다. 필요하다면 표면을 갈아서 제거하는 경우도 있습니다.

그 이후에야 톱질을 하고 시료를 채취하는 것이죠.

이렇게 되면 결과가 어떻게 나올까요? A, B와 같이 콜라겐을 함유하고 있지 않은 부분에서는 pMC값이 나오지 않습니다. 반면 콜라겐을 함유하고 있는 C, D부분에서는 pMC값이 나오겠죠.

즉 제대로 실험했다면 모든 구획에서 동일한 pMC값이 나올 수 없다는 뜻입니다.