DOI QR코드

DOI QR Code

Path Matching Algorithm for Bridges Puzzle

가교 퍼즐에 관한 경로 매칭 알고리즘

  • Sang-Un Lee (Dept. of Multimedia Eng., Gangneung-Wonju National University)
  • 이상운 (강릉원주대학교 과학기술대학 멀티미디어공학과)
  • Received : 2023.12.28
  • Accepted : 2024.08.09
  • Published : 2024.08.31

Abstract

The problem of the bridges(Hasjiwokakero, Hasi) puzzle, which connects the bridge(edge) required by the island(vertex) without crossing the horizontal and vertical straight bridges except for the diagonal to form a connected network, is a barren ground for research without any related research. For this problem, there is no algorithm that presents a generalized exponential time brute-force or branch-and-bound method. This paper obtained the initial solution of the lattice graph by drawing a grid without diagonal lines for a given BP, removing unnecessary edges, and supplementing essential bridges. Next, through insufficient island pair path matching, the method of adding insufficient edges to the route and deleting the crossed surplus edges(bridges) was adopted. Applying the proposed algorithm to 24 benchmarking experimental data showed that accurate solutions can be obtained for all problems.

섬(정점)이 요구하는 가교(간선)를 대각선을 제외한 가로와 세로 직선 가교를 교차없이 연결하여 모든 섬들이 연결된 망을 형성하는 가교 퍼즐 문제는 관련 연구가 전혀 없는 연구의 불모지라 할 수 있다. 이 문제에 대해서는 일반적으로 알려진 지수시간이 소요되는 전수 탐색법이나 분기한정 법조차도 제시된 알고리즘이 없는 실정이다. 본 논문은 주어진 BP에 대해 대각선이 없는 격자 그래프를 작도하고, 불필요한 간선은 삭제하고, 필수적인 가교는 보충하여 격자 그래프 초기 해를 구하였다. 다음으로 부족한 섬 쌍 매칭을 통해 해당 경로에 부족한 간선은 추가하고, 교차되는 잉여 간선(가교)은 삭제하는 방식을 채택하였다. 제안된 알고리즘을 24개 벤치마킹 실험 데이터에 적용한 결과 모든 문제에 대해 정확한 해를 구할 수 있음을 보였다.

Keywords

Ⅰ. 서론

가교 퍼즐(bridges puzzle, BP)은 원 명칭은 일본어로 Hashiwokakero 또는 줄여서 Hasi 퍼즐이라고도 한다.[1] BP는 m × n 개의 섬(islands)인 정점(vertex)이 주어지며, 각 섬에는 해당 섬에서 다른 섬들과 연결될 가교의 수가 제시되어 있다. 따라서 BP는 해당 섬의 가교 요구량을 충족하도록 섬 들 간에 가로와 세로의 직선(대각선은 제외)을 연결해야 하며, 가교 들 간에는 교차(crossing)가 없어야 하며, 모든 섬들이 연결(connected) 되어야만 한다.

BP에 관한 연구 결과는 알려진 바가 없으며, 다양한 논리 퍼즐(logic puzzle)들 중 하나로, 다항시간으로 정확한 해를 구하는 규칙을 찾지 못한 NP-완전(NP-complete)로 알려져 있다.[2-5] 따라서 BP 퍼즐을 풀 수 있는 유일한 방법으로 지수시간이 소요되는 전수탐색 법(brute-force)을 채택할 수 있다. 왜냐하면 가로와 세로의 직선을 연결한 격자 그래프(lattice, grid graph)에서 기본적으로 모서리 섬들은 최대 2개, 외곽 경계(boundary)는 최대 3개, 내부(inner)는 최대 4개의 가교(bridges, b)를 연결할 수 있으며, 가교 요구량(required, r)이 r > b이면 기본 적 가교에서 이중, 3중의 가교를 연결하여 퍼즐을 풀 수 있어 \(\begin{align}\prod_{i=1}^{m n} r_{i}\end{align}\)회의 가능한 경우 수가 존재하기 때문이다.

본 논문은 지금까지 전혀 연구가 진행되지 않은 BP에 대해 다항시간으로 퍼즐을 풀 수 있는 알고리즘을 제안한다. 2장에서는 BP에 관한 개념을 BP-1 퍼즐 문제를 대상으로 고찰해 본다. 3장에서는 m × n의 초기 격자 그래프에 대해 각 섬들의 r을 충족하면서 교차가 없는 모든 섬들이 연결된 퍼즐을 다항시간으로 풀 수 있는 경로 매칭 알고리즘(path matching algorithm, PMA)을 제안한다. 4장에서는 벤치마킹 실험 데이터를 대상으로 제안된 알고리즘의 적합성을 검증한다.

Ⅱ. 관련 연구와 문제점

BP 퍼즐을 푸는 규칙[1]은 다음과 같다.

⦁ 규칙 1 : 단지 하나의 섬에서 시작하여 가로나 세로의 직선(간선, 가교)을 그을 수 있다. 여기서 대각선은 제외된다.

⦁ 규칙 2 : 가로나 세로의 인접한 두 섬 간에는 하나 이상의 직선(다중 간선))을 그을 수 있다.

⦁ 규칙 3 : 섬(원) 내의 숫자는 해당 섬에서 출발하는 가교(직선)의 총 개수를 의미한다.

⦁ 규칙 4 : 직선들 간에는 교차(crossing)할 수 없다.

⦁ 규칙 5 : 모든 섬들은 하나의 연결된 그룹을 형성해야만 한다.

그림 1에서는 BP-1[6] 가교 퍼즐과 정답을 보여주고 있다. (a)에 제시된 BP-1은 24개 섬들이 존재하며, 교차 없이 모든 섬들을 연결하도록 62/2=32개의 가교를 섬들 간에 연결해야만 한다. 이의 정답은 (b)에 제시되어 있다. 여기서 보면 모든 섬들의 가교 요구량을 충족하면서, 교차되는 가교가 없이 모든 섬들이 연결된 결과를 알 수 있다. BP는 그림 2의 수레바퀴 살 퍼즐(Spokes puzzle, SP)[7]과 유사하다. 단지 차이점은 SP는 가로, 세로와 더불어 대각선까지 그을 수 있다는 점이며, 수레바퀴 축(hub)에서 최대 8개까지 살(spokes)을 연결할 수 있으며, 각 직선(간선, 살)은 중복될 수 없는 차이점이 있다.

그림 1. BP-1 가교 퍼즐 문제

Fig. 1. Problem of Bridges puzzle BP-1

그림 2. SP-1 수레바퀴 살 퍼즐 문제

Fig. 2. Problem of spokes puzzle SP-1

Ⅲ. 경로 매칭 알고리즘

BP를 풀기 위해 본 장에서는 가로와 세로의 인접 섬들 간에 직선의 간선(가교)을 연결한 격자 그래프를 작도한다. 작도된 격자 그래프에 대해, 다음의 3가지 경우를 수행하여 초기 격자 그래프를 확정한다.

⦁ 모든 섬들을 연결해야 하는 조건을 충족하기 위해 가교 요구량 r에 대해 (1,1)의 인접 쌍 섬들 간에는 간선을 연결하지 않는다.

⦁ r = 1, b = 1 섬은 작도된 가교를 확정하며, 이 가교와 교차(crossing)하는 가교를 삭제한다.

⦁ r ≥ 2b(b=1,2,3,4) 섬은 이중 가교(2b)를 연결하고, 이 가교와 교차하는 가교(간선)를 삭제한다.

다음으로 가교가 부족(r > b)한 섬들을 파악하여 다음의 5가지 중 어느 하나를 수행한다.

⦁ 인접(d=1) {-,-} 부족 쌍 Matching : 가교 연결,이 가교와 교차하는 가교 삭제

⦁ 인접(d=1) {+,+} 잉여 쌍 Matching : 가교 삭제

⦁ d≥2 교차 : 최대 교차 수 가교 삭제

⦁ 유일 경로를 가진 섬 : 교차되는 상대 섬 간선 삭제

⦁ (-,+), d=2 경로 : 해당 경로에 대해 부족 섬은 간선 추가, 잉여 섬은 간선 삭제

⦁ (+,-), (-,-), d≥2 경로 : 번갈아 가며(alternating) 부족 가교 추가, 잉여 가교 삭제

제안된 알고리즘을 경로 매칭 알고리즘(PMA)이라 하며, 그림 3과 같이 수행된다.

그림 3. 경로 매칭 알고리즘

Fig. 3. Path matching algorithm

그림 1의 BP-1에 대해 제안된 PA를 적용한 결과는 그림 4와 같다. 인접한 섬 들 간에 가로와 세로 간선을 작도한 초기 격자 그래프에 대해, Step 1의 (1,1) 쌍 간선을 삭제하고, r=1, b=1 섬과 교차하는 가교들이 존재하지 않아 생략되었다. 다음으로 r≥2b(b=1,2,3,4) 섬은 r=2, 8의 2개 섬이 존재하여 이중 가교(2b)를 연결하고, 이 가교와 교차하는 가교들을 모두 삭제하여 초기 격자 그래프를 확정하였다. 다음으로 Step 2에 대해 부족 섬들을 파악한 결과 {3,3}. {3,4} 쌍이 매칭되어 이들 간에 간선이 추가되었다. 또한 잉여 쌍인 {3,1}, {3,3}, {2,1}쌍의 간선이 삭제되었다. 이와 같이 단순한 규칙들을 적용하여 BP-1의 퍼즐을 풀 수 있었다.

그림 4. BP-1에 관한 경로 매칭 알고리즘

Fig. 4. Path matching algorithm for BP-1

Ⅳ. 실험 결과 및 분석

본 장에서는 그림 5의 실험 데이터들을 대상으로 3장에서 제안된 PMA를 적용하여 본다. BP-2는 Wikipedia[6]에서, BP-3 ~ BP-16은 Puzzle-bridges[1]에서, BP-17 ~ BP-23은 Kaynak[8]에서, BP-24 ~ BP-27은 Any Puzzle Media[9]에서 인용되었다.

그림 5. 실험 데이터

Fig. 5. Experimental data

그림 5의 실험 데이터들을 대상으로 제안된 PMA를 적용한 결과는 그림 6에 제시하였다.

그림 6. 실험 데이터에 관한 PMA

Fig. 6. PMA for Experimental data

본 논문에서 거론된 20개 실험 데이터 모두에서 PA는 BP의 해를 정확히 얻을 수 있는 살(간선)을 연결할 수 있음을 보였다.

Ⅴ. 결론

본 논문은 논리퍼즐의 일종인 섬들 간에 다리(가교)를 연결하는 가교 퍼즐 문제를 다항시간으로 정확한 해를 찾을 수 있는 알고리즘을 제안하였다.

가교 퍼즐은 섬에 이웃하는 섬들과 연결할 가교 수 요구량이 제시되어 있고, 가교는 대각선을 제외한 가로 또는 세로의 직선 가교만을 연결할 수 있으며, 가교는 교차되지 않아야 하며, 모든 섬들을 연결하여야만 한다. 이 퍼즐을 풀 수 있는 방법은 지금까지 전혀 연구된 바가 없는 연구의 불모지이다.

본 논문은 가로와 세로 직선을 모두 연결(교차 발생)한 격자 그래프(b)를 생성하고, 모든 섬들을 연결해야 하는 조건을 충족하기 위해 (1,1) 가교는 제외시켰다. 또한 이웃 섬이 유일하게 존재하는 섬에는 해당 섬의 연결 요구량(r)을 충족하는 가교 수를 다중으로 연결하였으며, r ≥ 2b 섬에 대해서는 이중 가교를 연결하였다. 이와 같이 필수적으로 연결될 가교와 교차하는 다른 섬들 간의 가교(간선)은 삭제하였다. 다음으로 부족한 섬들 쌍의 경로에 대해 가교를 다중으로 추가하고, 이 과정에서 교차가 발생하는 잉여 가교를 가진 섬의 가교는 삭제하는 방법을 적용하였다.

제안된 알고리즘을 24개의 다양한 유형의 벤치마킹 데이터들에 적용한 결과 모든 데이터에 대해 정확한 해를 찾을 수 있음을 보였다. 따라서 본 논문은 가교 퍼즐에 관해 다항시간으로 해를 찾을 수 있는 알고리즘이 존재하는 P-문제가 될 수 있는 가능성을 보였다는데 그 의미를 찾을 수 있다.

References

  1. Puzzle-bridges, "Hashi," https://www.puzzle-bridges.com/, Retrieved Jul. 2023.
  2. S. Pahor, "NP-completeness of Mind Games and Puzzles.," EngD Thesis, pp. 1-52, Faculty of Computer and Information Science, University of Ljubljana, Feb. 2016.
  3. G. Kendall, A. J. Parkes, and K. Spoerer, "A Survey of NP-Complete Puzzles," ICGA journal, Vol. 31, No. 1, pp. 13-34, Mar. 2008, https://doi.org/10.3233/ICG2008-31103
  4. C. Wilson, H. Xu, Y. Zhan, and Y. Aborahama, "Solving NP-complete Puzzles with Quantum Annealing," University of Toronto Department of Computer Science CSC2451 Course Project, pp. 1-12,
  5. M. Maarse, "The NP-Completeness of Some Lesser Known Logic Puzzles," Bachelor Kunstmatige Intelligentie Utrecht University, pp. 1-19, Jun. 2019.
  6. Wikipedia, "Hashiwokakero," https://en.wikipedia.org/wiki/Hashiwokakero, Retrieved Jul. 2023.
  7. J. Ruiter, "Spokes," http://puzzlepicnic.com/genre?id=12, Retrieved Jul. 2023.
  8. Kaynak, "Hashi," https://tbm.metu.edu.tr/storage/2020/12/07_Hashi_Oyunu_Tanitim_Belgesi.pdf, Retrieved Jul. 2023.
  9. Any Puzzle Media, "Hashi Logic Puzzles," https://www.anypuzzle.com/Hashi, Retrieved Jul. 2023.