출처:

http://en.wikipedia.org/wiki/Eureqa (영문)

http://www.haaretz.com/weekend/magazine/an-israeli-professor-s-eureqa-moment-1.410881 (영문)

http://abipictures.tistory.com/577 (한글)



(전략)


코넬 대학의 립슨 교수와 대학생들은 단순한 물리 실험을 해보기로 마음먹었다.


먼저 두 개의 진자를 연이어 붙임으로서 아주 복잡한 진자 운동을 하도록 했다.


다음에는 이 진자 시스템을 그들이 5년 동안 개발해온 컴퓨터 프로그램에 연결시켰다.


프로그램의 목적은 다양한 시스템에서 생성되는 데이터(이 경우 진자의 운동과 관련된 데이터)를 수집하여


시스템을 기술하는 수학적 공식을 도출하는데 있었다.


좀 더 과장되게 말하자면(립슨 교수의 말에 따르면) 자연법칙의 발견이 이 프로그램의 궁극적인 목적이었다.



이 진자 실험은, 과연 컴퓨터 프로그램이 과학자들에게 이미 알려진 법칙들을 찾아낼 수 있는가에 대한 일종의 테스트인 셈이었다.


실험 결과는 놀라왔다.


단 하루만에(물리학, 기하학, 운동학, 또는 특정 학문분야에 대한 그 어떤 알고리즘도 입력하지 않았음에도 불구하고)


이 프로그램은 진자 실험에서 얻은 데이터를 가지고 과학계에서 가장 유명한 공식인 뉴턴의 제 2법칙을 도출해냈다 - F = ma.


며칠 뒤 이 프로그램은 실험 데이터을 바탕으로 모멘텀 보존 법칙과 에너지 보존 법칙을 도출해냈다.



(중략)



이 알고리즘에 대해 립슨 교수는 다음과 같이 말한다.


"이는 마치 원숭이가 오랜 타자치기 시도 끝에 셰익스피어의 문학작품을 써내는 것과 비슷하다고 할 수 있어요.


사실 이 프로그램이 제대로 된 결과를 내놓는다는 게 너무나도 놀랍습니다(...? -_-)


처음에 프로그램은 쓰레기(garbage)같은 모델을 내놓지만,  시간이 지나면서 점점 더 좋은 모델을 내놓기 시작해요.


너무나도 비직관적인 방법이지만, 살아있는 세포들도 이렇게 진화해왔습니다"



(후략)


...



유레카 프로그램의 작동방식은 다음과 같다:


1) 일단 사칙연산 기호나 사인, 코사인 같은 수학적 요소를 사용하여 공식을 랜덤으로 몇 개 만든다


2) 초기 공식에 변형을 가하여(mutation) 새로운 공식들을 1초당 천만개씩 만든다(이건 뭐 로또랑 다를 바 없잖아? -_-)


3) 새로 공식을 만들 때마다 데이터에 잘 맞지 않는 공식들은 버리고 잘 맞는 공식들은 살려둔다(매 단계마다 10%만 살아남음)


4) 맨 마지막에는 실험 데이터에 가장 잘 들어맞는 공식들만 살아남는다. 



최종적으로 살아남은 공식들은 실험 대상이 가지고 있는 불변변수(invariant parameter)간 고정관계(fixed relation)을 기술한다.


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

유레카 프로그램을 판매하고 있는 뉴토니안 사이트(http://www.nutonian.com/products/pricing/)에 들어가 보니


개인 용도로 쓸 경우 1년에 299달러를 내거나 한 달에 29.99달러를 내야 한다고 써 있군요.


어쨌든 데이터를 바탕으로 공식을 도출해내야 하는 연구자들에게는 희소식이 아닐 수 없습니다.