리뷰: 프로그래밍 유니버스

월요일 저녁에 구입했던 책 “프로그래밍 유니버스"를 오전 출근길에 다 읽었다. 번역도 깔끔했고 – 역시 해당 분야를 아는 사람이 번역을 해야 좋다 – 내용도 무척 흥미로웠다.

우선 초반~중반까지는 대학 교양으로 배우는 수준의 전산 이론(정보이론에 가까운 것들)과 열역학에 대해서 설명하고, 엔트로피의 정보 이론적인 의미에 대해서 주로 이야기 한다. 덤으로 컴퓨터를 만들기위한 기초가 되는 논리 회로와 모든 논리식을 표현하기 위한 조건을 다룬다.

그리고 모든 물리계는 정보를 보관하고 처리한다 라는 내용으로 끌고간다. 여기에서 양자 계산 과정과 양자 역학에 따라 물리계가 변하는게 같다는 것을 설명하고, 그런 이유에서 우주는 거대한 양자 컴퓨터 라는 저자의 결론 중 하나가 나온다.

마지막으로 우리가 살고 있는 이 세상이 단순해 보이는(진짜로?) 물리학, 특히 양자역학에 기반을 두고 있는데 왜 이렇게 복잡한 구조를 가지고 있는가에 관해 다룬다. 사실 이 부분이 백미였던 것 같다. 타자치는 원숭이에 관한 비유를 다루는데,

원숭이가 타자기 앞에 앉아 타자를 친다. 그 출력이 “계system"를 나타내게 되는데, 원숭이의 타자입력은 근본적으로 무작위적이다. 그에 따라 그 결과는 어떤 쓰레기garbage 일 가능성이 매우 높다.

라는 내용이다 – 사실 이런 비유는 양자 역학적인 세계가 근본적으로 확률에 기본하고 있으며 그에 따라 요동하고 있기 때문에 사용된 것 같다. 이에 반해 저자가 제안하는 것은 이런 비유다.

원숭이가 컴퓨터 앞에 앉아 타자를 친다. 그 출력은 계를 만드는 프로그램 이 된다.

이 비유와 앞의 비유를 비교하자면,

같은 길이의 출력을 우연하게 원숭이가 타자쳐서 내놓을 확률과 랜덤하게 만들어진 프로그램이 그런 출력을 낼 확률이 아주 크게 다르다는 것이다 (전자의 확률이 압도적으로 작다. 반면에 후자의 확률은 우주의 계산능력을 고려하면 가능하다 수준으로 크다 ). 우주라는 양자 컴퓨터는 프로그램 짜는 원숭이처럼 동작하고, 이것과 지금까지 우주라는 양자 컴퓨터가 계산했을 – 즉 물리적으로 움직였을 – 양을 비교하고, 왜 우리가 사는 세계가 이렇게까지 복잡해 질 수 있었는가를 설명한다.

즉, 우연히 만들어지는 문장이 의미있는 복잡성을 띈 어떤 문장이되려면 그 난이도(걸리는 시간)는 길이에 비례한다. 따라서 짧은 프로그램으로 의미있는 복잡성을 띈 문장을 만들어내는 후자의 방법이 현재 우주의 복잡성에 대한 답이고, 그 방식은 “양자quantum 간에 이루어진 상호작용이 계산되는 방식” 인 것이다.

충분히 긴 시간과 계산능력이 있는 우주라는 컴퓨터가 현재의 복잡한 세상 – 은하, 태양계, 생명체 – 을 계산해냈다 라는 것이다.

결말까지 달려가는 동안 중첩성 을 이용할 수 있는 양자 컴퓨터의 엄청난 병렬성 같은 얘기도 재밌었지만, 링크나 많은 진화 생물학 책들이 설명하려고 애쓰는 우리 세계의 복잡성에 대한 해답으로도 이 책은 재밌었던 것 같다. 중간의 열역학 내용이나 계산 시간, 맥스웰의 도깨비demon같은 것들은 사실 파인만의 엉뚱 발랄한 컴퓨터 강의 – 계산이론 같은 책의 설명이 오히려 나았던 것 같고, 이 책에서는 우주는 거대한 양자 컴퓨터다라는 결론과 이를 이용한 _복잡성이란 무엇인가_에 대한 고찰이 진정 머리를 시원하게 해주는 내용이었다.

ps. 챕터 제목의 번호는 1, 10, 11, 100, … 처럼 나오는데 페이지 밑단의 챕터 번호는 0, 1, 2, 3으로 나온건 좀 아쉬웠달까. 그리고 “세포 자동자"라는 번역어는 실제로 사용되나? 학부 수업에서 들었던 기억으론 cellular automaton/automata 라고 많이 썼던 것 같다.