본문 바로가기
컴퓨터/수학이랑

알고리즘 관련 글의 병목 현상에 대하여

by adnoctum 2010. 8. 29.
   이 곳에 작성하는 알고리즘 관련 글들은 다소 더딘 업데이트 속도를 보인다. 새로운 글의 작성이 드문 것과, 이론적 배경의 설명 이후 실제 코드에 관련한 글이 매우 늦게 올라오는 등. 일단 그 어느 글이든 내가 실제 코드로 작성을 한 이후 그것을 사용하고 있을 때만 관련 글을 작성한다. 그럼에도 불구하고 그것에 관련한 글이 늦게 올라오는 이유는 다음과 같다. 

   첫 번째로는 연구를 하면서 틈틈이 작성하는 글들이기 때문에, 연구를 하느라 바쁘면 굳이 이 곳에 글을 올리기 위하여 시간을 내지는 않는다. 주로 매우 오래 걸리는 작업을 실행시킨 후 시간이 남을 때 내용 정리를 하는데, 요즘(2010년 8월 말경)에는 그런 것이 별로 없기 때문에 데이터 정리하고, 새로운 방법 생각하고 논문 찾아 읽는 등의 연구를 하고 있기 때문에 알고리즘 관련 내용을 정리할 시간이 그리 많지는 않다. 

    두 번째로는, 저작권 문제 때문인데, 내가 이 곳에 작성하는 글들은 주로 '실제로' 내가 사용하는 코드를 올리는 것을 목표로 하고 있다. 그 중 자주 사용하는 몇몇 코드들은 Numerical Recipes (NR) 에 있는 코드에 기반하고 있다. 문제는 그러한 코드의 경우 내가 C++과 내 개인 코딩 스타일에 맞게끔 변경시키기는 했지만 저작권 때문에 이 곳에 올릴 수 없게 된다. 궁금해서 NR에서 저작권 관련 부분을 읽어 보았는데, 저자는 내가 직접 작성한 소스 코드를 나 혼자만 사용하는 것에 대해서는 자유롭게 사용할 수 있지만 다른 사람이 사용할 수 있게끔 하지는 말라고 하였다. 따라서, 실제로는 다음과 같은 루틴들을 사용하고는 있지만 이 곳에 올리는 것에는 약간의 시간이 걸릴 것이다.

+ t-test 관련 루틴
+ One-way anova 관련 루틴
+ pearson's correlation coefficient에 대한 p-value
+ survival curve에서 logrank statistics에 관련한 p-value


주로 Beta나 Gamma function과 같은 special function 에 관련된 루틴들이 문제가 되는데, 현재 C++의 새로운 표준에 그러한 특수 함수들이 포함되어 있으니 그것들을 그대로 사용할 수 있겠지만, 현재 내가 목표로 하는 것은 NR에서처럼 직접 구현하는 것이다. 물론 구현 방법은 NR에 있는 것에 기반하지 않고 참고 논문들로 제시된 논문들을 기반으로 할 것이다.