07. 문제해결·발견술

수단-목적 분석 (means-ends analysis)

지금 처한 상태와 도달하려는 목표 상태 사이의 '차이'를 먼저 또렷이 보고, 그 차이를 가장 많이 줄여 주는 수단을 골라 한 걸음씩 좁혀 가는 문제해결법. 목표를 단번에 노리지 않고 '나와 목표의 거리'를 줄이는 행동을 반복하는 것, 그리고 지금 쓸 수단의 전제조건이 안 갖춰졌으면 그걸 갖추는 일을 새 하위목표로 삼는 것이 핵심이다.

너, 아침에 아이를 어린이집에 데려다줘야 한다고 해보자. 머릿속에 목표가 하나 있다. 아이는 지금 집에 있고, 있어야 할 곳은 어린이집이다. 자, 둘 사이의 '차이'가 뭐냐. 거리다. 그럼 거리를 줄여 주는 게 뭐냐. 자동차다. 그래서 차로 간다. 그런데 차 문을 여니 배터리가 방전됐다. 이제 목표가 슬그머니 바뀐다. 어린이집이 아니라 '배터리를 살리는 것'이 당장의 목표가 된다. 배터리를 살리려면 점프선이 있어야 하고, 점프선은 옆집에 있고, 옆집을 부르려면 전화를 걸어야 하고…. 너는 지금 큰 목표 하나를 잘게 부수고, 그 조각마다 '지금 나와 그 조각 사이의 차이를 메우는 수단'을 찾아 사슬처럼 이어 가고 있다. 누가 가르쳐 준 적도 없는데 말이다. 오늘 이야기는, 이 너무도 일상적인 머릿속 동작을 둘로 갈라 따로 떼어 보고, 거기에 처음으로 정확한 이름과 규칙을 입힌 두 사람에 관한 거다. 그리고 그들은 그걸 사람 머리가 아니라 기계에 먼저 시켜서 증명했다.

방금 그 어린이집과 배터리 이야기는 내가 지어낸 비유가 아니다. 두 주인공이 자기들 글에 직접 써 놓은 예시 그대로다. 1950년대 후반, 미국에 앨런 뉴얼과 허버트 사이먼이라는 두 사람이 있었다. 한 명은 갓 떠오르던 컴퓨터를 만지는 사람이었고, 다른 한 명은 원래 행정과 경제에서 '사람은 어떻게 결정을 내리는가'를 파고들던 학자였다. 묘한 짝이지. 둘이 붙들었던 물음은 이거였다. 사람이 어려운 문제를 풀 때, 머릿속에서 대체 무슨 일이 벌어지는가. 그 막연한 걸 어떻게든 손에 잡히는 절차로 적어 낼 수 있을까. 그들은 1957년 무렵, 일반 문제 해결사라는 뜻의 'General Problem Solver', 줄여서 GPS라는 프로그램을 만든다. 이 프로그램의 심장에 박힌 동작 원리에 그들이 붙인 이름이 바로 수단-목적 분석이다. 발견이라기보다 고안에 가깝다. 사람이라면 누구나 어렴풋이 하던 짓을, 둘이 또렷한 두 동작으로 분해해 이름표를 달아 준 거다.

그 두 동작이 뭐냐. 첫째, 지금 상태와 목표 상태를 나란히 놓고 '무엇이 다른가', 그 차이를 콕 집는다. 둘째, 그 차이를 줄여 주는 수단(연산)을 골라 적용한다. 여기까진 당연해 보인다. 그런데 진짜 묘수는 그다음에 숨어 있다. 골라 든 수단을 막상 쓰려는데 전제조건이 안 갖춰져 있으면 — 차로 가려는데 배터리가 죽어 있으면 — 원래 목표는 잠깐 제쳐 두고 '그 전제조건을 갖추는 것' 자체를 새로운 하위목표로 세워 거기에 똑같은 분석을 다시 거는 거다. 큰 차이를 작은 차이로, 작은 차이를 더 작은 차이로 계속 쪼개 내려가는 이 되먹임이 이 사고법의 진짜 엔진이다.

자, 말로만 하면 미끄러우니 그들이 실제로 기계에 먹인 장난감 하나로 끝까지 풀어 보자. 원반 옮기기 퍼즐, 하노이의 탑이다. 기둥이 셋이고 크기가 다른 원반들이 한 기둥에 큰 것부터 차곡차곡 쌓여 있다. 이걸 통째로 옆 기둥으로 옮기되, 한 번에 하나씩, 그리고 큰 원반이 작은 원반 위에 절대 올라가선 안 된다. 무턱대고 손이 가는 대로 옮기면 금세 길을 잃는다. 그런데 수단-목적 분석은 이렇게 묻는다. 지금과 목표의 가장 큰 차이가 뭐냐. 제일 큰 원반이 엉뚱한 기둥에 있다는 거다. 그럼 그 가장 큰 차이부터 없애자. 제일 큰 원반을 목표 기둥으로 옮기는 것을 목표로 삼는다. 그런데 그러려면 그 위에 얹힌 나머지 원반들이 죄다 비켜 줘야 한다 — 전제조건이 안 맞는다. 그러니 '위의 원반들을 다른 기둥으로 치우기'가 새 하위목표가 된다. 그리고 그 하위목표에 똑같은 질문을 또 던진다. 이렇게 가장 큰 차이를 먼저 겨누고, 막히면 그걸 푸는 하위문제로 내려가는 식으로, 손 가는 대로 더듬던 퍼즐이 질서 정연한 사슬로 풀려 나간다. 핵심은 매 순간 '목표까지의 거리를 가장 많이 줄이는 한 수'를 고른다는 데 있다.

이 발상으로 두 사람이 이룬 것이 작지 않다. GPS는 같은 한 가지 원리만으로 논리학 정리도 증명하고, 글자로 된 덧셈 수수께끼도 풀고, 퍼즐도 맞췄다. 문제마다 다른 요령을 욱여넣은 게 아니라, '차이를 줄인다'는 단 하나의 보편 전략으로 여러 종류의 문제를 건드린 것 — 그래서 이름도 '일반' 문제 해결사였다. 이게 막 태동하던 인공지능이라는 분야의 주춧돌 중 하나가 됐다. 사이먼은 이 공로의 연장선에서 훗날 노벨 경제학상까지 받는다. 그가 평생 밀어붙인 생각, 인간은 모든 걸 다 따져 최적을 고르는 신이 아니라 한정된 머리로 '그럭저럭 충분한' 답을 더듬는 존재라는 '제한된 합리성' — 그 철학이 바로 이 수단-목적 분석의 뼈대에 그대로 박혀 있다. 단번에 정답을 노리지 않고, 차이를 한 칸씩 줄여 가며 만족스러운 곳까지만 가는 그 태도 말이다.

처음의 GPS는 거칠었지만 이 골격은 계속 다듬어졌다. 대략 1971년, 스탠퍼드 연구소에서 셰이키라는 바퀴 달린 로봇을 움직이려고 만든 STRIPS라는 시스템이 이 차이 줄이기를 더 정교한 '계획 세우기'로 키워 냈다. 로봇이 '나는 A방에 있고 상자는 B방에 있다'는 현재와 '상자를 C방으로 옮긴다'는 목표 사이의 차이를 보고, 그 차이를 메울 행동들의 순서를 거꾸로 짜 맞추는 — 오늘날 인공지능의 '플래닝'이라 불리는 분야가 여기서 자라 나왔다. 여기서 네가 정말 눈여겨봐야 할 대목이 있다. 이 모든 게 가능하려면, 두 사람은 '문제를 푼다'는 말 자체를 생각의 윗단추부터 다시 끼워야 했다. 그들은 문제 하나를 '가능한 상태들이 빽빽이 들어찬 거대한 공간'으로 다시 정의했다. 출발 상태가 한 점이고 목표 상태가 다른 한 점이며, 문제 풀이란 그 광대한 공간 속에서 출발점에서 목표점으로 이어지는 길을 더듬어 찾는 '탐색'이라는 것이다. 그런데 그 공간은 너무 넓어 전부 뒤질 수가 없다. 그래서 길잡이가 필요했고, '지금 목표와의 차이를 가장 많이 줄이는 쪽으로 한 발 내딛어라'가 바로 그 길잡이, 곧 발견술(heuristic)이었다. 문제를 공간으로, 풀이를 탐색으로, 그 탐색의 나침반을 차이 줄이기로 — 이 윗단추를 새로 끼우고 나서야 비로소 기계가 사람처럼 문제를 더듬을 수 있게 됐다. 게다가 그들은 이게 기계만의 요령이 아님을 증명하려고, 진짜 사람을 앉혀 놓고 퍼즐을 풀며 머릿속에 떠오르는 말을 소리 내어 다 뱉게 한 뒤 그 말을 받아 적었다. 그 기록을 보니, 사람도 정확히 이 차이 줄이기를 하고 있더라는 것이다. 기계에 시키려고 만든 규칙이, 거꾸로 사람 머리의 비밀을 비추는 거울이 된 셈이다.

그러니 너가 크고 막막한 목표 앞에서 어디부터 손대야 할지 몰라 굳어 버리는 순간을 만나거든, 목표를 통째로 노려보지 말고 이렇게 물어라. 지금 내가 선 자리와 가고 싶은 자리, 그 사이의 가장 큰 차이 하나가 무엇인가. 그 하나를 가장 많이 줄여 줄 수단이 무엇인가. 그 수단을 쓰려는데 빠진 전제조건이 있거든, 그걸 갖추는 일을 잠깐의 새 목표로 삼아 똑같이 물어라. 멀리 있는 정상을 한눈에 정복하려 들지 말고, 발밑의 차이부터 한 칸씩 메워라. 그게 두 사람이 기계에 먼저 가르쳐 보고 우리 머릿속에서 다시 찾아낸, 문제를 푸는 생각의 전부다.