퍼온~바둑..!/관련 자료들~

[=] 수학적으로 해석한 바둑 규칙의 공리체계

온울에 2008. 6. 3. 04:52

수학적으로 해석한 바둑 규칙의 공리체계
(
20040372   이 강 훈)     (KAIST 무학과)


목        차

            ✧ 서  론

                 ✓ 연구 목적

                 ✓ 연구 방법

             ✧ 본  론

              ✓ 바둑의 규칙 (‘한국기원’ 홈페이지 참조)

                 ✓ 규칙들의 수학적 해석

                 ✓ 수학적으로 해석된 바둑 규칙의 공리 체계

                 ✓ 공리 체계의 바둑에의 응용

             ✧ 결  론

                 ✓ 공리로 인해 얻을 수 있는 이득

                 ✓ 공리의 한계 및 발전방향

                    ※ 참고문헌 및 참고사이트

 


        ✧ 서  론


✓ 연구 목적

  우리는 흔히 다른 사람과 바둑을 둘 때, 가장 큰 목적을 그 바둑에서 이기는 것에 두곤 한다. 이를 위해 좋은 수와 나쁜 수를 생각하고 한 집이라도 더 짓고, 상대방으로부터 더 빼앗는 것에만 집중해왔다. 하지만, 이렇게 눈앞의 이익만을 바라보는 것은 바둑에서 한 집을 얻기 위해 대마를 잃는 것과 같다는 생각을 하게 한다.

  만약 우리가 바둑에 대해 보다 근본적인 고찰을 할 수 있다면, 여태까지 어려운 사활문제, 포석, 끝내기라고 알려진 문제라도 아주 간단한 문제로 바꿔 풀 수 있을 것이다. 이러한 예로써, 수학의 조합론(Combinatorics) 분야가 대표적인 경우라고 할 수 있다. 단순하게 계산하거나 문제에 나온 것으로만 경우를 따진다면 굉장히 복잡한 문제지만, 약간의 조합적인 해석을 이용한다면 아주 간단한 문제로 바뀌게 된다. 바둑에서도 마찬가지로 단순히 바둑에서만 문제를 해결하려면 어려울지 모르지만 관점을 바꿔 생각해보면 간단히 풀릴 수도 있게 된다는 점에 착안해봤다.

  바둑에서의 문제를 다른 관점에서 보기 위해서는 원래의 바둑에서의 상황과 새롭게 바뀐 바둑에서의 상황이 일치해야 한다. 이를 위해, 우리는 바둑을 새롭게 정의할 필요성을 느끼게 된다. 현재의 바둑은 단순히 ‘규칙’ 이라고 하는 모호한 체계로 이루어져 있고, 새롭게 바꿀 체계에서의 바둑은 수학(가장 간단하게 생각할 수 있고, 또한 가장 근본적인 해석이 가능하다)의 형태로 나타나게 될 것이다. 따라서, 바둑을 수학적인 체계로 나타낼 수 있다면, 이를 해석해 새로운 관점에서 문제를 해결할 수 있을 것이다.

  바둑을 수학적인 체계로 나타내기 위해서는, 우리가 그동안 너무나도 당연시 해왔던 것부터 명확히 할 필요가 있다. 모호한 글로 되어 있는 ‘규칙’ 들을 수학적 개념(이 논문에서는 matrix와 수열의 개념을 이용할 것이다)으로 바꿔야 한다. 그래서 이번 논문의 목적으로 바둑을 공리적(아주 기본적인 basis)부터 새롭게 정의하고, 이로부터 matrix의 기본적인 변환을 이용해 바둑을 수학적으로 해석하는 것으로 정하였다. 더 나아가 새롭게 정의된 바둑으로부터 철학적인 고찰을 해봄으로써 이전에는 생각하기 힘들었던 것들에 대해 답을 얻는 것이 목적이다.



✓ 연구 방법

  공리를 구성하기 전에, 일단 바둑의 규칙에 대해 알아본다. 각 나라별로 규칙이 약간씩 다르기 때문에 우리나라의 바둑 규칙을 기준으로 삼는다. 이를 토대로 여러 정의, 공리를 구별하고, 수열의 개념을 도입해 바둑의 진행 과정을 나타낸다.

  일단, 바둑 경기의 승리와 패배의 여부를 떠나 바둑이 진행되는 과정만을 생각한다. 바둑을 두는 중에 놓인 수들이 좋은 수인지 나쁜 수인지를 떠나 바둑이라는 것 자체가 진행되는 것만을 생각한다. 따라서 공리도 바둑이 진행되는 과정만을 나타낸다. 물론, 궁극적인 목표는 바둑에서 좋은 수를 놓는다는 것이지만, 앞에서도 말했듯 지금 하려는 연구는 바둑을 공리적으로 진행시켜 수학적인 체계를 이루는 것이다.




        ✧ 본  론


✓ 바둑의 규칙 (‘한국기원’ 홈페이지 참조)

  ① 1회 1수의 규칙: 두 사람이 한 수씩 교대로 둔다. 즉, 한 사람이 한꺼번에 두 수 이상을 둘 수 없다.

  ② 착점위치: 돌을 놓는 위치는 선과 선이 교차되는 점 위이다. 선 위나 선 사이의 공간에는 둘 수 없다.

  ③ 착점의 자유: 반상위 361개의 점 위라면 어디든지 착점할 수 있다. 

    (※단, 이미 돌들이 놓여있는 기착점과 착수금지점은 제외)

  ④ 일수불퇴(一手不退)의 규칙: 일단 놓인 수는 절대로 무르거나 움직일 수 없다.

 

   (A)       (B)      (C)

<그림 1>

  ⑤ 불계의 규칙: 형세가 크게 불리하거나 역전의 승부처가 없을 때는 끝까지 가지 않고 도중에 기권을 표할 수 있다. 이것을 '불계패(不計敗)'라고 하는데, 예의 차원에서 높이 평가되는 관행이다.

  ⑥ 들어냄의 규칙: 그림1-(A)의 경우처럼 흑돌 4개가 백돌의 활로를 완전히 막으며 포위했을 때는 백돌을 반상에 들어낸다. 즉, 그림1-(B)의 상태가 되는 것이다. 이것을 ‘따냄’이라고 하는데, 이렇게 따낸 백돌은 흑의 포로가 되어 계가시 백집을 메우는데 쓰인다(그림1-(C)는 잘못된 둘러쌈. 이렇게 활로를 완전히 봉쇄하지 못했을 때는 백돌을 따낼 수 없다).

  ⑦ 착수금지점의 규칙: 바둑에서는 기본적으로 반상 어디에나 착점할 수 있지만 예외적으로

     (A)              (B)

<그림 2>

둘 수 없는 곳이 있다. 그림2-(A)의 a처럼 이미 상대로부터 사방이 완전히 둘러싸여있는 곳에는 착점할 수 없다. (※예외 : 그림2-(B)의 b처럼 그곳에 놓아 상대의 돌 전체를 곧바로 따낼 수 있을 때는 백의 입장에서 착수금지점이 아니며, 오히려 흑의 착수금지점이 된다.)

 

     (A)              (B)

     (D)              (C)

<그림 3>

  ⑧ 동형반복금지의 규칙: 그림3처럼 흑백이 맞물려 서로 맞따내는 형태를 하고 있을 때 적용되는 규칙이다. 그림3-(A)의 흑1로 백 한 점을 따낸 뒤 곧바로 그림3-(B)의 백2로 흑 한 점을 되따내는 것을 허용한다면 그림3-(C)와 그림3-(D)처럼 다시 흑3, 백4로 서로 되따내는 일이 끊임없이 반복될 것이므로 이를 피하기 위한 규칙이 필요한 것이다. 따라서 그림3-(A)의 흑1 직후 백은 곧바로 그림3-(B)의 백2로 따낼 수 없으며, 다른 곳에 한 수 이상을 둔 다음 기회가 오면 비로소 백2로 되따낼 수 있는 것이다. 이것을 '패(覇)'라고 일컬으며, 이 패를 놓고 벌이는 절충의 과정을 '패싸움'이라고 한다. 

 

<그림 7>

<그림 5>

<그림 6>

(A) (B)

<그림 4>

  ⑨ 권리인정의 규칙: 이 규칙은 다소 어려우면서도 바둑에서 가장 시비거리가 되곤 하는 상황이다. 가장 대표적인 것이 그림4의 귀곡사(曲四) 형태. 여기서 갇혀있는 흑돌들은 모두 죽은 것으로 간주된다. 흑의 입장에서는 그림4-(A)나 그림4-(B)에 둘 수 없는 반면, 백의 입장에서는 언제든지 그림4-(A)에 두어 그림5, 그림6처럼 패를 만들 수 있는 일방적 권리를 인정한 것이다. 단, 이것은 어디까지나 흑돌을 둘러싼 백돌의 삶이 완벽했을 때 가능한 일이다. 즉, 그림7처럼 흑돌을 둘러싼 백돌도 미생일 경우에는 상황이 다르다. 이럴 때는 그림5, 그림6의 수순을 거쳐 패싸움으로 쌍방의 삶이 결정된다.

  ⑩ 공배와 가일수의 규칙: 종국후 공배를 메울 때는 흑백이 교대로 메워야 한다. 한쪽에서 일방적으로 공배를 메워나가다 발생할 수 있는 가일수(加一手)의 문제를 해결하기 위해서이다. 단, 쌍방이 합의한 상황이라면 자유로이 메울 수 있다.



✓ 규칙들의 수학적 해석

  바둑의 공리 모델을 만들기 위해 수학의 matrix의 개념을 빌려와 바둑의 놓여진 돌의 상황을 표현할 것이다. 즉, 19 X 19 의 matrix에서 matrix를 변화시켜 가는 것으로 바둑의 돌이 놓여지는 것이 나타나게 된다. 바둑에서 n번째 수를 두게 된다면, n번째 수를 두게 됨으로써 바둑판에 나타나는 모양을 Gn이라는 matrix로 나타나게 되는 것이다. 자세한 것은 아래의 공리적 해석에서 다룰 것이다.

  여기서는 바둑의 규칙을 수학적인 관점에서 보고, 공리적 해석을 하기에 적합한 내용들에 대해 생각할 것이다.

  ① 1회 1수의 규칙: matrix에서 흑과 백을 각각 1(양수)과 -1(음수)라고 표현하고, 돌이 없는 상황을 0이라고 표현한다면, Gn에서 1(흑)(or -1)이 새로 생기었다면, Gn+1에서는 -1(백)(or 1)이 새로 생기어야만 한다. 즉, 연속해서 1, 1 or -1, -1이 matrix 수열에서는 생길 수 없다.

  ② 착점위치: matrix 내에서 돌을 놓게 됨으로써 matrix가 ‘1(양수)->0’, ‘-1(음수)->0’, ‘0->1(양수)’, ‘0->-1(음수)’의 변화만이 있을 수 있다. 즉, Gn에서 Gn+1로 변한다고 하더라도 1(양수)이 있는곳이 -1(음수)이 될 수 없고, -1(음수)이 있는곳이 1(양수)이 될 수 없다.

  ③ 착점의 자유: matrix 내에서 착수금지 원소를 제외하면, 0인 모든 원소중에서 특정한 한 원소는 1, -1으로 바꿀 수 있다.

  ④ 일수불퇴(一手不退)의 규칙: 임의의 n번째 matrix는 나타낼 수 있지만, 임의의 matrix가 몇 번째인지는 알 수 없다.

  ⑤ 불계의 규칙: Gm이후의 Gm+1은 존재 하지 않는 유일한 자연수 m이 존재한다. 즉, Gn matrix 수열의 길이는 유한하다.

  ⑥ 들어냄의 규칙: (recursive rule) matrix의 (p, q)에 있는 임의의 원소에서 (p+1, q), (p-1, q), (p, q+1), (p, q-1)이 (p, q)에 있는 원소와 부호가 반대이거나, 같은 부호일 경우 그 위치를 (p', q')라 할 때, (p'+1, q'), (p'-1, q'), (p', q'+1), (p', q'-1)은 (p, q)일때와 같은 진행을 거쳐서 더 이상 다른 원소에 대해서 생각되어지지 않을 때, recursive process에서 진행된 원소 중 (p, q)에 있는 원소와 같은 부호를 모두 0으로 바꿀 수 있다.

  ⑦ 착수금지점의 규칙: matrix에서 (p, q)가 0일 경우, 보통은 Gn에서 Gn+1로 될 수 있지만, 만약 (p+1, q), (p-1, q), (p, q+1), (p, q-1)이 모두 같은 부호일 경우에는 Gn+1로 될 수 없다. 단, 예외적으로 (p, q)가 1 혹은 -1이 됨으로써 ⑥의 경우에서의 (p,q)가 된다면 ⑥의 상황으로 인정된다.

  ⑧ 동형반복금지의 규칙: Gn에서 바꾼 원소가 (p, q)일때 (p+1, q), (p-1, q), (p, q+1), (p, q-1)가 모두 (p, q)의 원소와 부호가 달랐고, Gn+1에서 바뀐 원소가 (p' ,q')일때 (p'+1, q'), (p'-1, q'), (p', q'+1), (p', q'-1)가 부호가 모두 (p', q')과 다를 수 없다.

  ⑨ 권리인정의 규칙: 종국 후 계가시 따질 수 있는 규칙이므로 여기서는 생각하지 않도록 한다.

  ⑩ 공배와 가일수의 규칙: 종국 후 계가시 따질 수 있는 규칙이므로 여기서는 생각하지 않도록 한다.



✓ 수학적으로 해석된 바둑 규칙의 공리 체계

  지금까지 바둑 규칙들을 수학적으로 해석해 봤다. 이제는 이렇게 해석된 것들로 용어들을 만들어 정의를 내리고, 공리 체계를 구성해볼 것이다.

  ◦ 정의;

     Gn := n번 변환된 19 X 19 matrix (원소들은 -1,0,1로 구성되어 있다)

         G0 =




                  (19 X 19)

          (바둑돌을 둔 후, 다음 사람이 두기 바로 전의 상태)

     Tn := Gn에서 변환된 19 X 19 matrix (원소들은 -1,0,1로 구성되어 있다)

          (바둑돌을 따는 경우 따내기 전 바둑돌을 위치에 뒀을 때)

     Gn (Tn)의 (p, q) 원소 := Gn(Tn) matrix의 p행, q열의 원소

     *Go-recursion := Tn에서 Ꮐ가 일어나기 전 Gn-1과 비교해서 바뀐 원소의 위치를 (p0, q0)라 했을 때, (p0+1, q0), (p0-1, q0), (p0, q0+1), (p0, q0-1)를 각각 (p, q)라 하자. 위의 4가지 경우 각각에 대해 따로 Go-recursion이 적용된다. (p+1, q), (p-1, q), (p, q+1), (p, q-1) 중에 (p, q)와 부호가 같은 경우(1과1 or -1과-1)나 0이 나오면, 위 4가지에 대해 돌아가서 각각에 대해 recursive하게 반복한다. 만약 위 4가지 중 (p, q)와 반대 부호가 나오면 을 반복하지 않는다.


  ◦ 공리;

     ① Gn은  -1,0,1 만을 원소로 가지는 19 X 19 matrix이다.

     ② Tn := Ꮐ(Gn-1) (‘Ꮐ’라는 변환 과정을 거친 Gn)  (n∈ℕ)

     ③ Gn := Ꮶ(Tn) (‘Ꮶ’라는 변환 과정을 거친 Tn)  (n∈ℕ)

     ④ Ꮐ(Gn-1)은 Gn-1에서 원소중에 단 하나의 0을 1(n이 홀수일 경우) 혹은 -1(n이 짝수일 경우)로 바꾼다.

     ⑤ Ꮶ(Tn)은 Go-recursion이 무한히 진행되는 중에 한번이라도 0이 원소로 나타나지 않는다면, 진행되는 모든 원소를 0으로 바꾼다.

     ⑥ 만약 Gn과 Gm이 같게 되는 n과 m이 존재하게 되면(일반성을 잃지 않고 n<m이라 하자), m=n라 할 수 있다.



✓ 공리 체계의 바둑에의 응용

  위의 바둑 규칙의 수학적 해석에서 한 부분을 공리를 이용해 증명해 볼 것이다.

  ① 1회 1수의 규칙: 공리4에서 n에 따라 Gn은 1과 -1, 즉 흑과 백이 서로 한번씩 두게 된다.

  ② 착점위치: 공리4에서 Ꮐ는 0인 원소만을 1 or -1로 바꾸므로 돌이 없는 곳만을 착점하게 된다.

  ④ 일수불퇴(一手不退)의 규칙: G가 n에 따라 변하는 수열이므로 n번째 G는 알 수 있지만, 공리6에서 어떤 Gk를 놓고 몇 번째 수열인지는 알 수 없다.

  ⑥ 들어냄의 규칙: 공리2와 공리3에 의해 놓인 돌은 G ->(by Ꮐ) T ->(by Ꮶ) G의 과정을 거쳐 바둑에서와 같게 된다.

  ⑧ 동형반복금지의 규칙: 공리6에 의해 같은 모양이 나오게 된다면, 그 바둑은 진행되지 않은 것과 같게 된다. 




        ✧ 결  론


✓ 공리로 인해 얻을 수 있는 이득

  우리는 수학의 대수학을 공부할 때, 수를 체계를 나눠 다루곤 한다. 기본적으로 group, ring, field라는 기본적인 수와 연산의 관계를 가진 체계를 다루기도 하고, 좀 더 근본적으로는 공리를 만들어 그 공리로부터 모든 결과를 도출해 내기도 한다.

  공리라는 것은 어떠한 문제에 부딪쳤을때, 보다 더 근본적으로 생각해보고 무모순적인 결과를 얻기 위해 만든 것이고, 모든 정리, 이론들이 서로간에 모순이 발생하지 않도록 한다. 바둑에서도 마찬가지이다. 현재 컴퓨터바둑이 연구됨과 동시에 바둑에서의 ‘신의 한수’를 수학적, 전산학적으로 찾으려는 연구들이 진행된다고 알고 있다. 하지만, 대부분 방향조차 잡기 힘들어하고 여러 모순점에 부딪치게 되는데, 이때 필요한 것이 공리라는 것이다. 아주 근본적인 것에서부터 생각해봄으로써 난해한 원리를 이해할 수 있는 방법은 바로 여기에 있다고 생각한다.

  그리고 여기서 바둑의 승,패에 대한 생각을 하지 않은 이유도 위에서 말한 내용에 부합한다. 이번 연구의 목적이 단지 수학적, 전산학적(행렬을 쓴다는 것 자체가 전산학적 연구에 관심을 갖는다는 것이다) 연구의 토대를 마련하고, 그런 연구 도중 모순이 발생하면 좀 더 쉽게 해결할 수 있도록 하기 위한 것이 때문이다.



✓ 공리의 한계 및 발전방향

  이번 연구는 바둑에서의 규칙들과 바둑 자체를 공리화시켜 수학적인 모델로 만들어보는 것이었다.

  이 공리의 한계나 잘못 생각된 것이라면 수없이 많을 것이고, 한 달만에 더 이상의 결과를 얻는다는 것도 힘들것이다. 하지만, 이런 연구를 함으로써 다른 사람들의 관심을 끌고 그 관심들이 추가 연구로 이어진다면 바둑학의 훌륭한 분야로 발전할 수 있을 것이라고 생각한다.



※ 참고문헌 및 참고사이트

1. 바둑철학, 박우석

2. 한국기원 http://www.baduk.or.kr


[=]  http://www.agora.co.kr/pws/