Archive for May, 2006

코딩 이론을 살짝 맛보고

Friday, May 12th, 2006

코딩 이론의 중요한 한 문제는 '에러가 발생할수 있는 채널을 통하여 통신을 할때, 송신자는 어떤 방식을 사용해야 수신자에게 효율적이면서도 정확하게 정보를 전달할 것인가?'라고 할 수 있겠다.
형태가 약간 다르긴 했지만, 본질적으로 이러한 실용적인 문제로부터 1950년대에 시작된 코딩 이론은 매우 빠르게 진화하면서 순수수학 속으로 침투하였는데, 흥미롭게도 24차원의 공간에서 구를 가장 효율적으로 배열하는 문제에도 중요한 역할을 하였고, 더 나아가 20세기 대수학의 초대형 프로젝트였던 단순군의 분류에도 큰 공헌을 하였는데, 내가 관심을 가지고 있는, monster군의 moonshine에도 매우 밀접하게 관련이 되어 있다.
순수수학의 기반이 잘 닦여진 상태에서, 시간이 흘러흘러 그 예상치 못한 응용들이 나타나는 경우가 보통의 이야기인 것 같지만, 이 사례는 실용적인 문제에서 순수수학이 동력을 얻어간 어느 정도는 역방향의 이야기인 것 같아, 흥미로운 점이 있다.

에러가 날 가능성을 감안할 때, 통신의 정확성을 높이기 위한 가장 근원적이면서도 단순한 아이디어는, 전달해야할 정보만 딸랑 전할 것이 아니라, 거기에 좀더 정보를 첨가해주는 것이다. 가령 0과 1 둘 중에서 0을 전하는 상황이라면, 그런데 그 과정에서 약간의 에러가 발생할 가능성이 있다면, 0을 한 열 번 정도 반복해서 0,0,0,0,0,0,0,0,0,0,0 이라고 보내주면, 혹 그 중 한 두개가 1로 바뀌더라도, 0이라는 정보는 의도대로 전해질 가능성이 높아질 것이다. 이러한 장치를 좀더 세련되게 만드는 것이 코딩이론의 중요한 테마 중 하나일 것이다. 에러가 있는지 없는지를 탐지해낼 수도 있고(error-detection), 에러가 났다면 원래는 무엇이었는지도 알아낼 수 있는(error-correction) 코드를 만들어 내고 싶은 것이다.

DNA는 A,T,C,G 네 개의 염기를 이용하여 모든 유전정보를 저장하고 복제하는데, 이는 뭔가 디지털의 냄새를 풍긴다. 생명의 비밀이 혹시 GF(4)위에서의 선형대수에 숨어있는게 아니었을런지. 물론 아니겠지만. 아무튼 '만물의 본질은 수'라던 피타고라스의 아이디어는 확실히 요즘 시대에 딱 맞는 것이라는 생각이 든다. 과연 자연은 어떠한 방식의 error-detection과 correction 장치를 생명의 근본 원리로 삼았을까? 인간의 사고로 만들어진 코딩 이론은 얼마나 생명의 언어를 잘 기술해낼 수 있을 것인가? 요~만큼 궁금해졌다.