* 저자소속표기

**

바둑게임에서의 착수시점별 반상패턴의 표현

홍길동*, 성춘향*, 정도령**

Representation of On-Board Pattern at Every Move in Go Games

Gil-Dong Hong*, Choon-Havang Seong**, and Dho-Rveong Jeong**

요  약

바둑판 위의 패턴을 (영역, 레벨, 거리) 좌표계를 사용하여, 천원과 천원을 중심으로 하는 9개의 사각형패턴으로 정의하였다. 사석제거 후의 패턴 수정을 위해 반상의 연결된 돌들의 공배를 효율적으로 관리하는 기보표시 자료구조를 설계하여, 기존의 게임기록파일로부터 반상패턴을 생성 시, 착수 시점별로 제거되어야 하는 연결된 돌들의 군을 알아내어, 반상패턴의 제거된 돌들에 대한 패턴 값을 바로 조정하는 기보표시프로그램을 구현한다.

Abstract

Here, we define the pattern on a go-board which has a tengen-pattern and tengen centered 9 square-patterns using the (area, level, offset) coordinate system. In addition to designing a data structure for go-game display that efficiently manages the liberties of connected moves for the purpose of modifying board pattern after taking out moves, we implement a game-browsing program which identifies group of connected moves to be taken out and then adjusts pattern value for taken out moves to board pattern immediately at each addition of a move to the go board. We discuss necessary conditions for the application of board pattern to pattern database. We show data for the connected moves and taken moves obtained by running above program for 300 games by pro-players.

Key words

Adaptive Neural Network Control, Robot System, GFN, Actuator Failure, Uncertainty

- 2017 한국정보기술학회□한국디지털콘텐츠학회 하계공동학술대회 논문집 -

Ⅰ. 서  론

우리는 관련 연구(문헌 [1])에서 회전된 패턴의 계산을 쉽게 하고, 기존의 직교좌표로 부터의 변환이 쉬운, 새로운 좌표계 (영역, 레벨, 거리)를 제안하였고, 따낸 돌 없는 포석패턴, 정석패턴 표현을 위한 바둑판 위의 패턴[2][3]을 Java언어의 클래스[4]-[7]로 구현하였으며, 회전된 패턴과 대칭패턴도 고려하여  두 패턴의 동등관계,  한 패턴이 다른 패턴에 포함되는 관계를 새로운 바둑판 패턴을 이용하여 정의했다.

홍길동, 성춘향, 정도령 ; 바둑게임에서의 착수시점별 반상패턴의 표현

본 연구에서는 사석제거를 거친 후의 돌이 놓여 있는 반상패턴을 표현하기 위하여 위 관련연구의 반상패턴을 확장하고, 둘러싸인 돌을 바둑판에서 따내는[8] 기보표시프로그램[9]을 개발하여,  반상의 수가 제거될 때마다 이를 반상패턴에 반영하고, 제거된 수들에 인접한 상대편의 연결된 돌들의 공배의 수를 조정함으로써,  완전히 둘러싸인 즉 공배의 개수가 0인 연결된 돌들은 유일한 공배에 상대가 착수할 때마다 자동적으로 제거될 수 있게 하였으며, 위 프로그램을 사용하여 조사한 기존 게임에서의 사석제거에 관한 통계를 보이고,  착수 시점별 반상패턴 데이터베이스[3][10] 구축에 대해 논한다.

Ⅱ. 반상패턴의 표현

2.1 반상패턴의 구현

위 관련 연구에서 제안 된 새로운 좌표계 (영역, 레벨, 거리)로 바둑판 위의 점들의 좌표를 표현하면, 즉 영역의 열거형 값 {Center, West, North, East, South}을 각 값들의 순서수로 영역을 표기하고, 레벨은 천원부터 그 점이 놓인 천원중심 정사각형까지의 칸 수,  거리는 그 점이 놓인 천원중심 정사각형의 꼭지점부터  시계방향으로 이동할 때 그 점까지의 칸 수로 나타내면 그림 1과 같다.

바둑판 위의 각 점들이 텅비면 ‘0’, 흑이 놓여 있으면 ‘1’, 백이 있는 곳은 ‘2’로 표현할 경우,  한 직선 또는 변상의 패턴은 ‘0’, ‘1’, ‘2’로 구성된 문자열로 생각할 수 있다. 물론 변 패턴의 비교를 위해서 변의 문자열은 3진정수로 변환한다.

바둑판 위의 패턴 PatternBD 는 천원 NineNine과  9개의 사각형 패턴 patlevel[1], … , patlevel[9]로 표현한다. 그림 2는 20개의 수를 흑백이 번갈아 둔 게임을 화면에 표시한 그림으로 완전히 둘러싸인 돌들 2곳을 제거하지 않은 것이다.

Ⅴ. 결  론

착수 시점별로 사석제거를 반영한 반상패턴을 계산하기 위해 패턴클래스와 직교좌표를 사용한 기보표시 클래스 바둑판 클래스를 연동하는 기보표시 및 패턴계산 프로그램을 구현하고, 반상패턴의 응용을 위한 특성패턴의 결정을 위한 필요조건을 제시하였다. 기존의 게임파일로부터 연결된 돌 및 사석제거에 관한 조사 통계를 보였다.

참 고 문 헌

[1] 박우전, 바둑게임에서의 패턴의 표현 및 비교, 한국정보기술학회 논문지, 제6권, 제5호, 2008.10, pages 130-137.

[2] M. Muller, Computer Go, Artificial Intelligence, Vol. 134, Issues 1-2, 2002, pages 145-179.

[3] Jan van der Steen, http://gobase.org/.

[4] Sun Microsystems, Inc.,http://java.sun.com/javase/6/docs/api/index.html( Java™ Platform, Standard Edition 6 API Specification).

[5] W. Savitch, JAVA - An Intro. to Computer Science & Programming, Pearson Prentice Hall, 2004.

[6] 오세만 외 4인, 자바입문 이론과 실습 제3판 ,가나, 2008.2.