2011년 12월 24일 토요일

풀하우스(Full house) - 스티븐 제이 굴드(Stephen Jay Gould)

스티븐 제이 굴드(Stephen Jay Gould)가 쓴 풀하우스(Full house)라는 책을 얼마전에 다 읽었다.
책의 주요 내용은 사람들이 생각하듯이 진화가 진보의 역사가 아니라는 것,  진화가 어떠한 경향에 
의해서 필연적으로 단순한 형태에서 복잡한 형태로 진화해 나가는 것이 아니라는 것을 논증하는 것이다.



이 책에서 그런 착각을 얼핏 보기에는 전혀 상관 없어보이는 '야구에서 4할타자가 왜 사라지기 되었나' 물음에 답을 하면서 풀어나간다. 야구가 시작되고 초창기에는 4할이라는 타율이 최고의 기록을 내는 타자들 사이에서는 종종 이루어지는 기록이었다. 하지만 현재의 타자들은 최고수준의 타자들도 3할대의 타율 까지 밖에는 기록하지 못한다. 이유가 타자들의 실력이 떨어졌기 때문일까? 거의 모든 스포츠들의 기록이 향상되고 있는 상황에 야구에서 타자들의 실력만 떨어져 가는 것일까? 그렇지 않다. 그에 대한 이유로 저자는 두가지 이유를 든다. 하나는 인간의 신체적인 한계, 두번쨰는 야구규칙이 평균타율 2할6푼 정도를 맞추기 위해 조금씩 바뀌어 왔다는것(스트라이크 존의 변화, 마운드 높이, 파울을 스트라이크로 인정하는것 등,,)이다. 

그림으로 설명하면 이해가 빠르다.
사용자 삽입 이미지사용자 삽입 이미지

위에서 말했듯이 평균타율은 2할 6푼내외로 고정되도록 유지된다. 하지만 인간의 신체적 한계가 존재한다. 이 신체적 한계는 과거에나 현재에나 있어왔지만, 과거의 경우 전체적으로 낮은 수준으로 인해 상대적으로 투수와 타자의 대결에서 이기는 특출한 타자가 존재할 수 있는데 이런 선수는 평균에서 멀리 떨어진 4할의 타율을 기록할 수 있게 된다.
하지만 현대의 과학적인 훈련과 향상된 경기수준으로 인해서 타율은 (인위적으로) 일정하게 유지되지만 이 평균값은 인간의 신체적 한계값에 좀 더 다가간 것이다. 따라서 타자들도 평균에서 멀리 떨어져 특출하게 뛰어난(4할타율) 성적을 거둘 수는 없게 된 것이다.
즉, 역설적이게도 야구의 수준향상(타자와 투수들의 수준향상)이 4할타자를 사라지게 한 것이다.

비슷한 논리가 생물의 진화에도 적용될 수 있다. 

위의 경우와 다른 점은 생물의 진화의 경우 오른쪽 벽이 아닌 왼쪽 벽이 존재한다는 것이다.
처음의 생물은 매우 단순한 형태였다. 따라서 어떤 의도, 경향이 없는 진화라도 더 복잡해지는 방향으로 진화할 수 밖에 없는 것이다. 즉, 누군가들이 말하듯이 인간의 진화가 예견된 필연적인 결과라는 것은 옳지 않다고 할 수 있다.
사용자 삽입 이미지

이런 주장에 대해 비록 복잡성의 증가가 경향성을 가지고 일어나는 사건은 아니라고 해도, 그렇게 생겨난 포유류(그 중에서도 인간)는 가장 발달한 형태의 동물이고, 또 생물이 복잡해질 수 록 환경에 적응을 잘하며 뛰어난 생물이라는 반박을 할 수 있다.

하지만, 포유류는 100만종이 넘는 생물종중 겨우 4000여종을 차지할 뿐이고 전체 생물의 관점에서 보면 뛰어나지도 보편적이지도 않다.

지능을 가진 외계인이 지구의 생명체를 자세히 관측한다면 가장 보편적인 생명의 형태로 박테리아를 지목할 것이다. 그도 그럴것이 생물이 태어날 때부터 지금까지 줄곧 가장 많은 수를 차지하고 있고 인간을 포함한 포유류, 동물들이 살지도 못하는 환경(심해, 땅 속 등 고온 고압의 환경, pH가 매우낮은 강산 등등)에서도 살아나간다. 
생물종의 다양성이나 살아가는 장소에서나 생물량에서나 인간(을 포함한 동물)들보다 더 성공적이라고 볼 수 있다(성공을 유전자를 퍼뜨리고 유지하는 것으로 보았을때의 경우..)

그리고 또 결론적으로 인간의 탄생은 여러 우연이 겹치고 겹쳐서 생겨난 일이라는 것이다. 저자는 인간의 탄생에 특별한 의미(인간을 향한 진화 같은)를 부여하는것을 거부하는 듯 하지만, 나는 그런 의미부여가 아닌 순전히 내 자신이 인간이라는 입장에서 그런 수많은 우연의 산물들이 진화와 멸종들을 지나고 생겨난 인간이라는 종으로 태어나서 내가 태어나게 된 과정에 대해 생각할 수 있게끔 되었다는 것이 그 자체로도 큰 의미가 있는 것 같다. 

어쨋든 이책은상당히 설득력있는 내용전개였다. 책으로 읽으면 좀 더 자세한 예시와 설명이 있어서 읽으면서 생각해보면 저자의 논리에 설득당해가는 나를 발견하게 된다. 스티븐 제이 굴드가 내세운 이론에 대한 반박성 책이나 반대적인 논리를 펴는 책들이 있다면 좀 읽어봐야겠다. 스티븐 제이 굴드와 리차드 도킨스가 서로 대립하고 있다고도 하고, 논점이 남아있는 분야있든 하니 좀 더 읽어보고 종합적으로 판단을 해봐야 되겠다.

2011년 12월 23일 금요일

automata theory - 1. finite automata

1. Finite automata
Regular language을 정의하는 오토마타. Deterministic automata, non-deterministic automata는 서로 동일하다.
그 중 deterministic finite automata을 먼저 생각해본다.
 finite 한 state과 transition function, input symbols, start state, final state으로 이루어져 있다.
M = (Q, S, d, q0, F)

input string이 들어오면 transition function의 규칙에 따라 현재 state (첫번째 symbol을 읽을때는 start state에 있을 것이다.)에서 특정 symbol을 받았을 때 이동하는 state으로 이동한다.

예)
        |  0  |  1  |
---------------
->q0 | q2 | q0 |
*   q1| q1 | q1 |
   q2 | q2 | q1  |

->는 start state을 나타내고, *은 final state을 나타낸다.

i) input symbol : 011 일 때,
q0 state에서 (맨 앞 symbol) 0을 받는다. d(q0,0) = q2이므로 q2로 이동.
q2 state 에서 다음 symbol 1을 받는다. d(q2,1) = q1 이므로 q1으로 이동.
q1 state 에서 다음 symbol 1을 받는다. d(q1,1) = q1 이므로 q1으로 이동.
input symbol을 다 읽었을 때의 상태가 final state인 q1이다. 이러한 input string을 이 오토마타의 language라고 부른다.

ii) input symbol: 00
q0 state에서 (맨 앞 symbol) 0을 받는다. d(q0,0) = q2이므로 q2로 이동.
q2 state 에서 다음 symbol 0을 받는다. d(q2,0) = q2 이므로 q2으로 이동.
input symbol을 다 읽었을 때 상태가 final state이 아니다. 이러한 input string은 주어진 오토마타의 language가 아니다.

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

두 오토마타가 같은 language을 표현한다면 두 오토마타를 같은 일을 하는 오토마타라고 부른다 (서로 동일하다).



위의 예시와 같이 특정 state에서 모든 가능한 input symbols에 대해서 하나씩의 transition state을 가지는 오토마타를 deterministic finite automata (DFA) 라고 한다.


finite automata 중에는 deterministic 하지 않은 것들도 있는데, nondeterministic finite automata(NFA) 라고 부른다. DFA와 비슷하지만 transition function의 함수값이 하나의 state이 아닌 state의 집합으로 나타내는 것이 다르다. (다시 말해, 어떤 state에서 symbol을 읽었을 때, 0개 이상의 state들로 동시에 이동이 가능하다).
epsilon-NFA는 받아들이는 symbol에 epsilon을 추가한 NFA이다. 즉 아무런 입력 없이도 한 state에서 다른 state으로 이동이 가능하다. (이러한 이동을 epsilon transition이라한다)



DFA와 epsilon-NFA는 서로 동일하다 (임의의 DFA을 동일한 일을 하는 epsilon-NFA로, 임의의 epsilon-NFA을 같은 일을 하는 DFA로 항상 바꿀 수 있다는 것을 의미한다).


---