감상

다익스트라는 다음과 같은 문장을 남긴 바 있다.

Computer science is no more about computers than astronomy is about telescopes.
컴퓨터 과학에서 컴퓨터란, 천문학에서 망원경 이상의 것이 아니다.

나는 이 문구를 참 좋아한다. 컴퓨터 과학은 특정 기계에 대한 학문을 넘어선 합리성을 다룬다.

"알고리즘, 인생을 계산하다"는 이러한 관점의 컴퓨터 과학을 잘 보여주는 책이라 생각한다.

  • 개발자 뿐만 아니라 수학/컴퓨터에 흥미를 가진 학생, 직장인… 누구에게나 추천하고 싶은 좋은 책이다.

인용

482~483쪽. 결론 - 계산 친절 중에서.

합리적인 의사 결정의 직관적인 기준은 가능한 모든 대안들을 꼼꼼하게 생각하고서 가장 좋은 대안을 택하는 것이다. 언뜻 보면, 컴퓨터는 완벽한 답이 나올 때까지 복잡한 계산을 죽 하기에, 이 접근법의 모범 사례처럼 보인다. 하지만 우리가 살펴보았듯이, 그것은 컴퓨터가 하는 일에 대한 시대에 뒤떨어진 생각이다. 쉬운 문제일 때에나 부릴 수 있는 여유이고 사치다. 어려운 문제를 풀 때, 최상의 알고리즘은 오로지 최소한의 시간에 가장 설득력 있는 답을 내놓는 것이다. 모든 요인들을 꼼꼼하게 살펴보고, 모든 계산을 끝까지 계속한다는 의미가 결코 아니다. 그러기에는 삶이 너무 복잡하다.

지금까지 우리가 살펴본 거의 모든 영역에서, 우리는 현실세계의 요인들을 더 포함시킬수록 완벽한 해답을 찾으려면 불합리할 만치 오래 걸리는 상황에 도달하게 될 가능성이 더 높다는 것을 보았다. 그리고 사실, 사람들은 거의 언제나 컴퓨터과학이 어려운 문제라고 부르는 것들에 직면한다. 그런 어려운 문제에 직면할 때, 효과적인 알고리즘은 가정을 하고, 더 단순한 해답을 향한 편향을 드러내고, 오류 비용을 지연 비용과 비교하여 절충하고, 우연을 받아들인다. 이런 행동들은 우리가 합리적일 수 없을 때 하는 양보가 아니다. 합리적이 된다는 것이 바로 그런 의미다.

함께 읽기

  • [[secretary-problem]]
  • [[Bayes-theorem]]