알고리즘 라이프 - 일상 속 스마트한 선택을 위한
알리 알모사위 지음, 정주연 옮김 / 생각정거장 / 2017년 12월
평점 :
절판


수학적 두뇌가 반짝이는 당신을 위한 책.

<알고리즘 라이프>의 저자 알리 알모사위는 MIT 엔지니어링시스템학부와 카네기멜런의 컴퓨터과학학부를 졸업했고 하버드 연구원과 MIT 미디어랩 공동연구자로 일했으며, 모질라의 데이터 사이언스팀에서 일하고 있다고 합니다. 즉, 저자는 매우 수학적 두뇌가 발달된 사람입니다.

그가 이 책을 쓴 목표는 간단합니다. 알고리즘적 사고방식이 얼마나 효율적인 해결책인지 알려주는 것.

그래서 이 책의 구성은 퀴즈 프로그램과 유사합니다. 일상생활에서 겪을 수 있는 12가지 상황을 제시하면, 그 상황과 알고리즘 개념을 연관 지어 설명하고, 적어도 2가지 이상의 해결방법을 비교해보는 것입니다. 결론적으로 방법들을 비교함으로써 더 빠른 해결법이 알고리즘적 사고방식이라는 걸 확인할 수 있습니다.

여기에서 '효율'은 해결 속도에 초점을 맞추고 있습니다. 빠른 것이 항상 좋은 것은 아니지만 똑같은 조건이라면 좀더 나은 선택이 될 수 있으니까요.

원래 이 책의 제목은 '나쁜 선택'인데, 저자의 의도는 컴퓨터 과학자 도널드 커누스가 빠르거나 효율적인 알고리즘을 '좋은' 알고리즘이라고 칭한 데에서 착안하여 역으로 강조했다고 합니다. 만약 그대로 번역됐다면 진짜 '나쁜 선택'이 될뻔 했다고 생각합니다. 그건 알고리즘의 특성을 강조하기는커녕 도리어 반감시킬테니까. 그런 면에서 '알고리즘 라이프'라는 제목이 매우 적절한 것 같습니다.

이 책에 나오는 12가지 상황은 다소 엉뚱해보이지만 일상생활에서 충분히 상상해볼 수 있기 때문에 알고리즘을 이해하는데 도움이 됩니다.

이를테면 '마트에서 최대한 빠르게 필요한 물건만 쓸어 담기'는 가장 현실적인 상황입니다. 어떻게 해야 마트에서 지나가는 통로의 수를 최소화할까요?

방법은 두 가지입니다. 하나는 구입품 목록의 차례에 따라 통로를 지나갈 것. 또하나는 종류별로 정렬된 목록을 미리 준비여 종류별로 구입할 것.

알고리즘적 사고로 풀어보면 다차원배열, 이진나무검색, 우선순위대기열로 훨씬 더 빠르게 장을 볼 수 있습니다. 다차원배열에 따르면 구입품 목록을 2차원으로 작성하고 마트의 구획을 기준으로 한 하위배열에 따라 이동하게 됩니다. 그냥 생각나는대로 구입품 목록을 작성하는 게 아니라 물품종류로 작성하는 방식입니다. 마트 입구에서부터 어떤 항목이 있는 특정한 통로까지의 거리에 따라 순위가 매겨져서 다음은 어떤 품목을 사러가야 할지 결정하게 됩니다. 이진검색나무는 나무모양 구조에 있는 모든 마디의 순위가 정해져 있는 구조들을 보여줍니다. 최하위마디를 제외한 모든 마디가 각각 두 개의 자식마디를 가집니다. 최고위마디를 지우면 더미의 특징이 파괴되므로 더미가 재구조화 알고리즘을 작동하여 빈 뿌리마디를 더미의 가장 끝에 있는 마디로 교체하여 새 뿌리마디로 만듭니다. 새로운 항목을 더미 끝에 추가하고 그 부모마디가 새 항목보다 더 크면 부모마디와 교체하면 됩니다. 우선순위대기열은 더미라는 특수한 방식으로 표현됩니다. 우선순위대기열을 땅속에 있는 식물로 비유하면, 한 번에 싹을 하나씩만 틔우고 지나고는 사람이 그것을 뽑는 방식입니다. 알고리즘은 더 나은 행동을 위한 유용한 도구입니다. 이 책은 이미 우리 삶에 많은 것들을 변화시키고 있는 알고리즘의 원리를 알려주는 설명서입니다.



댓글(0) 먼댓글(0) 좋아요(3)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo