
알고리즘에는 그 외에도 온라인 쇼핑몰에서 인기순이나 가격순으로 상품을 정렬하는 ‘정렬 알고리즘’, 내비게이션에서 출발지에서 목적지까지의 최단 경로를 안내하는 ‘최단 경로 알고리즘’, 네이버·구글 등에서 입력한 키워드에 맞는 결과를 빠르게 찾아주는 ‘검색 알고리즘’ 등이 있다.
그렇다면 알고리즘이란 무엇일까? 한마디로, 알고리즘은 ‘특정 문제를 해결하기 위한 지시 목록’을 가리킨다. 보통 여러 단계의 유한 집합으로 구성되는데, 각 단계는 하나 또는 그 이상의 연산을 필요로 한다. 지시 목록은 대체로 간단명료하지만, 오늘날의 알고리즘은 수많은 연산을 반복해야 하므로 인간이 직접 수행하기는 어렵다.
예를 들어 수 A와 B(단, A > B)의 최대공약수 GCD(A, B)를 찾는 알고리즘은 다음과 같다.
1. 만약 A = 0이면 GCD(A, B) = B
2. 만약 B = 0이면 GCD(A, B) = A
3. A를 B로 나누어 몫(Q)과 나머지(R)를 구한다. 즉, A = Q × B + R
4. GCD(B, R)을 구한다. (절차 1로 돌아가 A, B의 GCD 대신 B, R의 GCD를 구한다)
한마디로 말하면, 나머지가 없어 R = 0이 될 때까지 이 절차를 반복하고, R이 0이 되면 그때 남아 있는 수가 최대공약수라는 뜻이다. 복잡한 듯하지만 아주 간단한 지시 사항이다.
다음은 15와 9의 최대공약수를 구하는 과정이다.
GCD(15, 9) → 15 = 1 × 9 + 6
GCD(9, 6) → 9 = 1 × 6 + 3
GCD(6, 3) → 6 = 2 × 3 + 0
따라서 15와 9의 최대공약수는 3이다.
이와 같은 알고리즘을 최초로 체계화한 사람은 아랍 아바스 왕조 시대의 수학자 무하마드 이븐 무사 알콰리즈미(780~850)다. 그는 《인도 숫자를 사용한 계산법》이라는 책을 써서 0을 포함한 브라마굽타의 10진법을 높이 평가하였다. 이때 숫자 모양도 오늘날의 아라비아 숫자와 비슷하게 바뀌었다. 이 책은 이슬람 통치 구역인 이베리아반도를 통해 유럽으로 전해졌다.
그가 이처럼 왕성한 활동을 할 수 있었던 것은 아바스 왕조의 칼리프 알마문이 펼친 학문 중시 정책 덕분이었다. 능력 있는 학자들이 바그다드로 모여들었고, 알마문은 세상의 모든 책을 한 지붕 아래 모으겠다는 계획으로 ‘지혜의 집’이라 불리는 도서관을 건립하였다. ‘지혜의 집’에 고용된 알콰리즈미는 10진법의 도입 외에도 《복원과 대비의 계산》이라는 책을 써 모든 과학에서 가장 중요한 개념 두 가지를 소개했다. 바로 대수학과 알고리즘이다.
이 책은 결국 아시아와 유럽 전역에서 지배적인 수학 교과서가 되었다. 대수학을 뜻하는 영어 단어 ‘algebra’는 이 책의 제목에 쓰인 ‘al-jabr(복원)’에서 유래했다. 책 전체에서 알콰리즈미는 상속, 토지 분할, 소송, 거래, 운하 건설 등 현실에서 만나는 실용적인 문제에 해법을 제시했다. 1차 방정식이나 2차 방정식을 오늘날처럼 미지수를 써서 푸는 것은 아니지만, 알고리즘이라는 절차를 통하여 해답을 얻었다.
이 단순한 단계별 해결 절차 덕분에 그의 책은 유럽에서 큰 관심을 끌게 되었다. ‘알고리즘(algorithm)’이라는 단어 역시 알콰리즈미(Al-Khwarizmi)에서 유래된 라틴어 ‘algorismus’와 ‘수’를 뜻하는 그리스어 ‘arithmos’가 합쳐져 만들어진 것이다. 알고리즘을 최초로 체계화한 알콰리즈미도 이 기법이 디지털 시대를 맞아 이처럼 널리 쓰이리라고는 상상하지 못했을 것이다.
오늘날 우리가 원하는 것을 손쉽게 얻을 수 있다거나, 처음 가는 길도 헤매지 않고 잘 갈 수 있는 것에 대하여 그에게 감사해야 할 일이다. 하지만 휴대전화에 시도 때도 없이 뜨는 광고를 보면 그 감사한 마음이 순식간에 사라지고 만다.



