http://www.yes24.com/Product/Goods/91614222
‘선생님 알고리즘은 꼭 복잡해야 하나요?'
'문제 해결을 위해 절차를 수립한다는 건 그만큼 문제가 어려워서가 아닐까요?'
'당연히 알고리즘은 언제나 복잡하지 않나요?’
하남의 어느 고등학교 특강 시간에 2학년 학생이 내게 던진 질문이다. 그 당시 참 똑똑한 학생들이라는 생각을 했다. 그래서 그런지 잊혀지지 않는 순간이다.
하지만 아쉽게도 나의 대답은
‘아니요, 알고리즘은 아주 단순해야 돼요. 최종 결과인 ‘수립된 절차가 복잡하면 안 된다.’는 거죠. 짧고 간단명료하게 정의돼야 합니다. 그래서 애매모호하면 안 되겠죠.’
핵심은 최종 결과물인 '수립된 절차'가 단순한 것이라는 점이다. 이 단순한 결과를 얻기 위한 과정은 복잡해도 관계없다. 아니 복잡해야 된다. 그렇게 복잡하게 생각하기 때문에 모든 문제가 단순하게 풀리는 것이다.
수립된 절차가 단순해야 한다는 건 바꿔 말하면 최단 경로를 선택하라는 이야기와 같다.
옛말에 ‘어찌 가든 서울만 가면 된다.’는 말은 알고리즘에서는 어울리지 않는 말이다.
서울로 가는 길을 이것저것 비교하고 검토하는 건 좋은데 최종 결정은 가장 빠르고 정확한 경로를 선택해야 된다는 점이다.
바로 이 가장 빠른 길을 찾는 훈련이 알고리즘의 진정한 훈련이다.
서울로 가는 길을 이것저것 비교하고 검토하여 최단 경로를 찾았다.
그런데 서울에 도착해 보니 길이 좋아 더 가도 좋을 듯하다. 그래서 이왕 간 거 좀 더 올라가기로 했다.
결론적으로 그러면 안 된다.
서울로 가는 길을 찾는 것이 목적이었다면 서울까지만 가면 된다. 길이 좋다고 더 가면 안 되는 것이다.
즉 알고리즘에서는 그 끝을 명확히 정의해야 한다는 것이다.
이런 현상은 욕심에서 비롯된다.
이왕 해결한 거 좀 더 많은 것을 해결하고자 하는 욕심 때문이다.
이럴 경우는 욕심을 또 다른 문제로 인식해서 알고리즘을 정립하는 것이다.
새롭게 문제 해결을 위한 절차로 재 구성하는 것이 올바르다.
이는 주어진 문제를 해결하고자 수립된 알고리즘은 반드시 그 끝이 명확하게 정의되어야 한다는 점이다.
또한 문제를 해결하기 위한 절차가 수립되었음에도 계속해서 반복적으로 수행되는 절차 역시 알고리즘을 볼 수 없다.
수립된 절차 내에서의 반복은 문제 해결을 위한 과정일 수 있겠지만 끝없이 절차가 반복되는 무한반복은 알고리즘이라 하지 않는다.
‘그럼 알고리즘에서 수립된 절차에서는 언제나 그 결론이 하나만 존재해야겠네요?’
끝을 정확히 명시하는 것과 결과가 반드시 하나만 존재해야 하는 것은 같은 의미가 아니다.
수립된 절차의 결론은 복수의 값 또는 경우를 가질 수 있다.
끝이 존재한다고 반드시 결과가 하나일 필요는 없다.
서울로 가는 최단 경로는 훌륭한데 그 길이 나만 갈 수 있는 길이면 이 것 역시 알고리즘이라 할 수 없다.
수립된 절차가 뜬 구름 잡는 이야기가 되어서는 안 된다는 것이다.
정의된 절차는 반드시 수행될 수 있는 내용이어야 한다.
꼭 알고리즘이 아니어도 이 부분이, 나 혼자만이 알 수 있는 결과, 데이터 쟁이들이 가장 많은 실수를 범하는 부분 중에 하나이다.
알고리즘 내에서의 결과이던 문제에 대한 결과이던 그 결과가 정작 분석을 수행한 당사자만이 정답으로 생각하는 오류를 말한다.
남들 아무도 인정하지 않는데 최종 도출된 결론이 혼자만 옳다고 우기는 경우가 종종 발생한다.
나 역시도 가끔 이런 오류를 범하곤 한다.
문제를 해결하기 위한 결과는 당연히 모두에게 공감이 되고 납득할 만한 것이어야 되고 그 문제를 풀기 위한 과정, 즉 알고리즘에서의 결과 역시 충분히 모두가 공감할 수 있는 내용이 되어야 한다는 점이다.
따라서 최종 문제에 대한 결과도 중요하지만 그 과정 역시도 매우 중요하다는 사실이다.
‘중요하다 아니다.’의 판단은 모두가 ‘공감할 수 있는 것이냐 아니냐.’의 문제와 같다.
데이터 쟁이는 언제나 이타적(利他的)이어야 한다. 언제나 분석을 수행한 자신보다 그 결과를 필요로 하는 사람들을 먼저 생각해야 한다.
‘이렇게 복잡하고 어려운 분석기법은 아마 대한민국에 나 밖에 못할걸?’
그렇다 그건 당신밖에 못한다. 하지만 그 결과 역시 당신밖에 필요한 사람이 없다.