[괴델,에셔,바흐] 5장
5장. 재귀적 구조와 과정
- 때때로 재귀는 역설과 비슷. 재귀적 정의들은 얼핏 보기에는 무엇인가 자기 자신에 의해서 정의되고 있다는 인상을 준다. 일상생활에서 재귀가 흔하게 나타나는 방식중의 하나는 A B C와의 전화 통화.
- (푸시, 팝, 스택) 인공지능을 위한 초창기 언어 중의 하나인 IPL의 일부로서 1950년대 말에 소개. 푸시한다는 것은 당신이 지금 일하고 있는 과제에서 어느 상태에 있는지 잊지 않고서 작업을 일시 중단하고 새로운 과제를 시작하는 것을 뜻함(A와 통화를 끊고 B와 통화). 새로운 과제는 통상 앞의 과제보다 “더 낮은 단계”에 있다고 말한다. 팝하는 것은 그 반대로 한 층위에서의 작업을 끝내고 당신이 작업을 중지했던 곳, 즉 한 층위 더 높은 곳에서 작업을 재개하는 것을 뜻함.(A에게 다시 돌아와 통화)
- 각각의 다른 층위에서 당신이 정확히 어디에 있었는지 어떻게 기억하는가? 답은 당신인 관련 정보를 스택에 저장하는 것. 어떤 작업을 재개하기 위해서 팝해서 돌아오는 경우 당신이 길을 잃은 느낌이 들지 않도록 맥락을 복구하는 것이 스택이다.
- (언어에서의 재귀) 우리의 정신적인 임시기억 능력은 언어에서 강할 것. 모든 언어의 문법구조은 아주 정교한 스택을 설정하는 일을 포함. 그러나 스택에 많이 푸시할수록 문장을 이해하는 것이 급격히 어려워짐.(동사를 맨 뒤에 두는 독일어 예시)
- 재귀적 추이도(RTN Recursive Transition Network)는 특정한 과제를 완수하기 위해서 취할 수 있는 다양한 경로를 보여주는 다이어그램.(그림27 177p) 당신이 명사 절점에 도달할 경우 명사라는 미지의 블랙박스에게 명사 창고에서 명사를 가져오라고 요구한다. 이것은 컴퓨터 과학 용어로 프러시저 호출(procedure call)이라고 한다. 뿔이 없는 자줏빛 소가 삼켜버린 이상한 베이글(the strange bagels that the purple cow without horns gobbled)
- 이것이 재귀적 정의를 순환적 정의와 구분시켜부는 결정적 사실이다. 재귀적 정의에는 자기-지시를 피하는 어떤 부분이 언제나 있으며 그 결과 그 정의를 만족시키는 대상을 구성하는 행위는 결국에는 “바닥에서 탈출할” 것이다. 예를 들어 우리는 절이라는 RTN을 가질 수 있는데 절은 타동사를 위한 목적어가 요구될 경우에는 언제나 멋진 명사를 호출한다. 거꾸로 멋진 명사의 맨 위의 경로는 관계대명사를 호출할 것이며 관계문이 요구되는 경우라면 언제나 절을 호출할 것이다. 이것이 바로 간접적 재귀의 보기. 재귀적으로 전개된 절점이 하나 있는 멋진 명사 RTN(그림 28 180p)
- (다이어그램 G와 재귀 수열) 절점을 차례차례 전개해나가는 방식으로 무한한 기하학적인 구조들을 정의할수 있다.(그림 29 181p) 피보나치 수열 1,1,2,3,5,8,13------ 이 수들은 재귀적인 식 한쌍을 가지고 정의할 수 있다. FIBO(n)=FIBO(n-1)+FIBO(n-2) 이때 n>2 FIBO(1)+FIBO(2)=1 우리는 이식의 쌍을 RTN으로 표현할 수 있다.(그림 31 182p)
- (두개의 인상적인 재귀적인 그래프) 하나는 내가 INT(x)라고 부르는 함수의 그래프.(그림32 186p) 정수의 쌍인 n과 n+1 사이의 x에 대해서 INT(x-n)의 값을 구하고 그런 다음 그것에 n을 더한다. 개개의 조각을 자세히 살펴보면 그것들은 전체 그래프를 단지 구부려서 복제한 것들. INT는 연분수와 관련된 “에타-수열”을 포함하는 문제에서 연유.(연분수Continued Fraction란 어떤 수를 분수 속에 또 분수가 들어가는 형태로 끝없이 표현하는 방법. 기본 형태는 a0+1/(a1+1/a2+1/a3-----) 예시 10/7을 연분수로 표현하면 [1;2,3] 1+1/(2+1/3) 에타 수열은 부호가 번갈아 가며 나타나는 수열)
- 다른 하나는 자기장 속에 있는 이상화된 결정에 있는 전자 에너지의 띠를 보여주는 재귀적인 그래프(그림34 191p) Gjplot은 “자기장 안에 있는 결정에서 전자들의 허용 가능한 에너지 준위는 얼마인가?”라는 질문의 고도로 이상화된 버전. 이 문제는 완벽한 결정 속에 있는 하나의 전자와 균일한 자기장 안에 있는 전자라는 두 가지의 매우 단순하고도 근본적인 물리학적 상황의 교차.
- (물질의 가장 낮은 층위에서의 재귀) 세계 전체가 재귀로 구축되는 또다른 방식을 살펴 보자. 전자,양성자,중성자 및 광자라고 불리는 전자기파의 작은 양자 같은 소립자들의 구조와 관계가 있다. 입자들이 서로 상호작용을 하지 않는다면 사물들은 믿을 수 없을 정도로 간단할 것이다. 어느 입자도 다른 모든 입자를 언급하지 않고서는 정의할 수 없고 다른 모든 입자들의 정의는 처음의 입자에 의존하는 등의 일이 생긴다.
- 두 종류의 소립자인 전자와 광자에만 국한해 보자. 또 전자의 반입자인 양전자(광자의 반입자는 광자 자신) 궤도를 움직이는 순수 전자 운동과 전자와 광자가 상호작용하는 전자기적인 상호작용을 그림으로-파인먼 다이어그램(192p) 문제를 복잡하게 하는 것은 광자가 짧은 시간동안 붕괴되어 하나의 전자-양전자 쌍으로 될수 있다는 것. 그러고 나서 이둘은 서로를 소멸시키고 마치 마술처럼 다시 원래의 광자가 나타난다.
- 이 가상의 과정들은 임의의 깊이까지 서로 내부에서 중첩될수 있다.(그림35 193p. A에서 B로 진행하는 재정규화된 전자의 운동) 중요한 점은 물리적인 입자는 1)순수한 입자와 2)거대하게 뒤엉킨 가상적 입자들이 관여하는데 이것들은 재귀적 혼란속에 떼려야 뗄수 없게 얽혀 있다는 것이 중요하다. 모든 실제 입자의 존재는 그 입자가 전파해갈 때 그것을 에워싸는 가상의 “구름”에 포함된 무한히 많은 다른 입자들의 존재를 필요로 한다. 물론 구름 속에 있는 가상 입자들은 각각 자기 자신의 가상의 구름을 끌고 간다. 이와 같은 식으로 무한히 계속된다. 어떤 과정들에 대하여 약 100여개 정도의 가장 간단한 다이어그램들을 고찰함으로써 물리학자들은 어떤 값(이른바 뮤온의 g-인자)을 소수점 아홉째 자리까지 정확히 예측할수 있다.
- “에셔의 모든 그림들에 대해서 ‘동일함’이 있다는 것은 무엇인가?” 놀라운 것은 에셔의 그림이나 바흐 작품의 작은 부분조차도 동일성을 드러낸다는 것이다. 모호하고 규정하기 힘든 말이기는 하지만 그것을 “스타일”이라고 표현. 두개의 사물은 언제 같은가? 우리는 온갖 비틀린 각도에서 그 질문에 다가갈 것이고 결국 이 단순한 질문이 인공지능의 본질과 얼마나 깊이 연결되어 있는지 알게 될 것이다.
- 재귀는 “다름 속의 같음”이 중심 역할을 하는 영역. 재귀는 같은 것이 여러 개의 다른 층위에서 한꺼번에 일어나는 것에 바탕을 두고 있다. 그러나 다른 층위들에서의 사건들이 정확하게 같지는 않다. 많은 점에서 다름에도 불구하고 그것들에게서 우리는 어떤 불변의 특성을 찾아낸다.
- (프로그래밍과 재귀 : 모듈성, 고리, 프러시저) 컴퓨터 프로그래밍에서 아주 중요한 기량중의 하나는 두개의 처리절차가 넓은 의미에서 같은 경우인지를 감지해 내는 일. 그것이 모듈화 즉, 한 과제를 자연스러운 하위과제들로 나누는 일로 이끌기 때문. 예시-자연수 N이 소수인지 알아보는 간단한 테스트. 고리를 중단하는 두가지 기준 1)N이 어떤 수로 나누어떨어지면 “아니다(NO)”라고 답하고 끝낸다 2)N이 N-1까지의 모든 수로 나누어 떨어지지 않으면 “그렇다(YES)”로 답하고 끝낸다.
- 매개변수를 가지는 재귀적인 프러시저의 고전적인 예는 체스에서 최선의 행마를 선택하는 프러지저. 최선의 행마를 찾는 재귀적 프러지저는 행마를 해보고 그 다음에 상대방의 입장에서 자기 자신을 호출하는 방식으로 작동한다. 같은 요령으로 그 프러시저는 다른 행마을 해보고 상대방의 상대방 즉, 본인의 입장에서 프러시저 자신을 호출한다. 수를 내다보지 않고선 어떻게 형세를 판단할 수 있는가?
- 어떤 집합이 재귀적으로 열거 가능하다는 것은 그 집합이 추론규칙을 반복 적용함으로써 출발점들(공리들)로부터 생성될 수 있다는 것을 의미한다. 이것이야말로 재귀의 본질로 어떤 것을 명시적으로서가 아니라 더 작은 자기 자신의 버전을 가지고 정의하는 것이다. 재귀적인 열거는 새로운 것이 기존의 것으로부터 정해진 규칙에 의해서 출현하는 과정이다. 이것이 지능의 결정적인 속성 가운데 하나가 아닐까? 자기 자신을 재귀적으로 호출할 수 있는 프러시저들로 이루어진 프로그램만 생각할 것이 아니라 정말로 정교해지고 자기 자신을 수정할 수 있는 프로그램을 만드는 것은 어떨까? 짐작컨대 이런 종류의 “뒤엉킨 재귀성”이 지능의 핵심에 자리잡고 있을 것이다.