DOI QR코드

DOI QR Code

Pruning Algorithm for Spokes 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 spokes puzzle(SP), which connects the spokes(edges) required by the wheel axis (hub, vertex) without intersection to form a network in which all the hubs are connected, can be said to be a wasteland of research. For this problem, there is no algorithm that presents a brute-force search or branch-and-bound method that takes exponential time. This paper proposes an algorithm to plot a lattice graph with cross-diagonal lines of m×n for a given SP and to pruning(delete) the surplus edges(spokes). The proposed algorithm is a simple way to select an edge of a hub whose number of edges matches the hub requirement and delete the edge crossing it. If there is no hub with an edge that meets the hub requirement, a strategy was adopted to preferentially delete(pruning) the edge of the hub with the maximum amount of spare. As a result of applying the proposed algorithm to 20 benchmarking experimental data, it was shown that a solution that minimizes the number of trials and errors can be obtained for all problems.

수레바퀴 중심축(허브, 정점)이 요구하는 살(간선)을 교차없이 연결하여 모든 중심축이 연결된 망을 형성하는 수레바퀴 살 퍼즐 문제는 연구의 불모지라 할 수 있다. 이 문제에 대해서는 지수시간이 소요되는 전수 탐색법이나 분기 한정 법조차도 제시된 알고리즘이 없는 실정이다. 본 논문은 주어진 SP에 대해 m×n의 교차 대각선을 가진 격자 그래프를 작도하고, 잉여 간선을 전정(삭제)하는 알고리즘을 제안하였다. 제안된 알고리즘은 간선 수가 허브 요구량과 일치하는 허브의 간선을 선택하고 이와 교차하는 간선을 삭제하는 단순한 방법이다. 만약 허브 요구량을 충족하는 간선을 가진 허브가 존재하지 않으면 여유 량이 최대인 허브의 간선을 우선하여 삭제(전정)하는 전략을 채택하였다. 제안된 알고리즘을 20개의 벤치마킹 실험 데이터에 적용한 결과 모든 문제에 대해 시행착오 회수를 최소로 하는 해를 구할 수 있음을 보였다.

Keywords

Ⅰ. 서론

수레바퀴 살 퍼즐(spokes puzzle, SP)은 m × n 개의 수레바퀴 중심 축(hub)이 존재하며, 각 수레바퀴 중심축에는 인접한 다른 수레바퀴 중심축과 살(spokes)을 연결해야 하는 숫자가 적혀 있다. 이러한 주어진 숫자만큼의 살을 연결하면서 모든 수레바퀴 중심축들이 연결(connected)되어야만 하며, 살 들이 상호 교차(crossing)되지 않도록 해야 하는 퍼즐 문제이다.[1-5] 이는 물류분야에서 운송 망을 중심축과 살로 연결한 Hub-and-Spokes Network에 적용될 수도 있다.[6,7]

SP에 관한 연구 결과는 알려진 바가 없으며, 굳이 퍼즐을 풀고자 한다면 전수탐색 법(brute-force)으로 지수 시간으로 풀 수 있을 것이다. 왜냐하면 수레바퀴의 중심축은 모서리(vertex)는 3개의 살을, 외곽 경계(boundary)는 5개, 내부(inner)는 8개의 살을 가질 수 있는 관계로 m × n의 중심축에 대해 최대 8mn!회의 가능한 경우 수가 존재하기 때문이다.

본 논문은 지금까지 전혀 연구가 진행되지 않은 SP에 대해 다항시간으로 퍼즐을 풀 수 있는 알고리즘을 제안한다. 2장에서는 SP에 관한 개념을 SP-1 퍼즐 문제를 대상으로 고찰해 본다. 3장에서는 m × n의 교차 대각선을 포함한 그물 망(격자, lattice or grid)의 초기 그래프에 대해 중심축에서 요구하는 살 개수를 충족하도록 불필요한 살을 제거하는 전정 알고리즘(pruning algorithm, PA)을 제안한다. 4장에서는 벤치마킹 실험 데이터를 대상으로 제안된 알고리즘의 적합성을 검증한다.

Ⅱ. 관련 연구와 문제점

x-sheep[1]이 제시한 SP 규칙은 다음과 같다.

⦁ 규칙 1 : 단지 하나의 허브 점에서 시작하여 선(살)을 그을 수 있다.

⦁ 규칙 2 : 두 허브 간에는 단지 하나의 선(살)을 그을 수 있다.

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

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

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

그림 1에서는 SP-1 수레바퀴 살 퍼즐[8]과 정답을 보여주고 있다. SP-1은 3 × 3 = 9개의 수레바퀴 중심축이 존재하며, 여기서 원은 수레바퀴 중심축을, 원 안에 숫자(3+2+1+2+2+4+ 3+3+2=22, 22/2=11)는 연결해야 할 살의 개수를 의미한다. 즉, 20개의 살들 중에서 22/2=11개의 살이 교차 없이 연결되어야 하며, 또한 모든 중심축들이 연결되어야만 한다.

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

Fig. 1. Problem of spokes puzzle SP-1

Ⅲ. 전정 알고리즘

SP를 풀기 위해 본 장에서는 그림 2와 같이 2가지 방법을 연구하였다. 첫 번째는 (a)와 같이 단지 교차가 없는 그물(격자) 그래프(최대 살 개수=4)로부터 불필요한 살은 제거(전정)하고, 부족한 살은 추가하면서 구성하는 데 있어 기존의 살과 교환하는 복잡한 방법이다. 두 번째 방법은 격자 그래프 내에 교차 대각선까지 모두 포함하여 모든 허브들이 요구하는 살의 개수를 충분히 커버할 수 있는 여유 량을 가진 상태에서 단지 불필요한 살을 제거(전정)하는 방법이다. (b)의 방법은 교환의 복잡성이 없이 단지 전정만을 수행하는 단순성으로 본 논문에서는 이 방법을 채택한다. 단지 이 방법은 간단한 반면에 제거(전정)할 살들의 개수가 많다는 단점이 있다. 따라서 어떤 허브 순서로 알고리즘을 수행해야만 시행착오의 횟수를 최대로 줄일 수 있느냐가 알고리즘의 핵심이다.

그림 2. SP-1 해결 방법

Fig. 2. Solving method of SP-1

본 장에서 제안하는 알고리즘은 주어진 문제의 허브를 정점으로, 이웃하는 정점(대각선 포함)간 간선(살)을 연결한 m × n 격자 그래프를 작도한다. 여기서 허브의 용량(capacity, c)인 간선 수는 3,5,8을 갖는다. 교차 대각선을 가진 격자 그래프의 허브 살 요구량(required, r)에 대해 모든 허브들은 하나의 연결된 그룹을 형성해야 하는 (규칙 5)를 충족하기 위해 r = 0인 허브를 삭제하고, r이 (1,1)인 허브 쌍 간 간선은 삭제한다. 본격적인 알고리즘은 허브들 중에서 r = c인 허브들의 간선을 모두 선택한다. 선택된 간선과 교차하는 간선은 삭제하여 (규칙 4)를 충족시킨다. ∀r ≠ c이면 다음의 4가지 우선순위로 불필요한 간선을 제거(삭제)한다.

⦁ Priority #1 : 상대 Hub가 충족하는 한 ∀(1, 2ndmin(c-r)) 쌍 간선 삭제

⦁ Priority #2 :‘7’은 인접 Hub들 중 ‘1’이 2개 이상이면 2 이상의 min r 삭제

⦁ Priority #3 : 대각선은 min {(r11+r22), (r12+r21)} 삭제

⦁ Priority #4 : (2,3rd max), (3,4th max),⋯ 순으로 간선 삭제.

제안된 알고리즘을 전정 알고리즘(PA)이라 하며, 그림 3과 같이 수행된다.

그림 3. 전정 알고리즘

Fig. 3. Pruning algorithm

그림 1의 SP-1에 대해 제안된 PA를 적용한 결과는 그림 2의 (b)와 같다. 3 × 3 격자 그래프 내부에 교차 대각선을 작도한 다음, r = c(or e)로 완전 충족한 허브(S)는 좌측 변의 양 끝단 모서리 2개로 이 허브들의 간선을 모두 선택하고, 교차하는 간선을 삭제하였다. 이 결과 양모서리에 인접한 r = 2 허브 2개의 간선이 모두 선택되어 이들 허브의 선택되지 않은 간선을 모두 삭제(전정)하였다. 이 결과 우측 아래의 r = 2, 3, 4 허브의 r = c를 충족하여 이들 허브의 간선을 연결한 결과 모든 허브들이 연결된 상태에서 모든 허브들의 r을 충족할 수 있었다.

Ⅳ. 실험 결과 및 분석

본 장에서는 그림 4의 실험 데이터들을 대상으로 3장에서 제안된 PA를 적용하여 본다. 실험에 적용된 대부분의 데이터는 Ruiter[9]에서 인용되었으며, 레벨 1,2,3,4의 예제 문제들중에서 본 논문에서는 풀기 어려운 레벨 3과 4를 실험 대상으로 선정하였다.

그림 4. 실험 데이터

Fig. 4. Experimental data

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

그림 5. 실험 데이터에 관한 PA

Fig. 5. PA for Experimental data

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

Ⅴ. 결론

본 논문에서는 지수시간이 소요되는 전수탐색 법이나 분기 한정 법도 알려져 있지 않은 m × n의 수레바퀴 중심 축(허브)이 요구하는 살(spokes)을 교차없이 연결하여 모든 수레바퀴의 중심축들이 연결된 형태의 망을 얻는 문제에 대해 O(mn) 수행 복잡도의 정확한 해를 얻는 알고리즘을 제안하였다.

제안된 알고리즘은 모든 허브가 요구하는 살의 개수를 충족하고 여유가 있도록 m × n의 교차 대각선을 가진 격자 그래프를 작도하고, 허브가 요구하는 살의 개수를 충족시키기 위해 여분의 살(간선)을 전정(삭제, 제거)하는 알고리즘을 제안하였다. 제안된 알고리즘은 허브 요구살의 개수가 허브 용량과 일치하는 허브의 살(간선)을 모두 최우선적으로 선택하고, 교차 간선을 삭제하는 방법을 채택하였다. 만약 이 조건을 충족시키지 못하면 여유량 내림차순으로 여유 량이 최대인 허브 살 요구량이 최소(1개)인 허브의 간선을 우선하여 제거(전정)하는 전략을 채택하였다.

제안된 알고리즘을 20개의 레벨 3와 레벨 4의 벤치마킹 실험 데이터에 적용한 결과 모든 퍼즐에 대해 시행착오 횟수를 최소화 하면서 퍼즐을 풀 수 있음을 보였다.

References

  1. x-sheep, "Spokes," https://github.com/x-sheep/puzzlesunreleased/blob/master/docs/spokes.md, Retrieved Jul. 2023. 
  2. SherlockHolmes, "Connect the Nodes," https://puzzlefry.com/puzzles/connect-the-nodes/, Retrieved Jul. 2023. 
  3. J. Ruiter, "Puzzle ZDIE," https://www.brainbashers.com/showpuzzles.asp?puzzle=zdie, Retrieved Jul. 2023. 
  4. T. Snyder, "The Art of Puzzles: Those Who Live in Glass Houses ...," https://motris.livejournal.com/tag/spokes, Jun. 2006. 
  5. r/puzzles, "Weird puzzle involving spokes?," https://www.reddit.com/r/puzzles/comments/4apwb3/weird_puzzle_involving_spokes/, Retrieved Jul. 2023. 
  6. M. E O'Kelly, "A Geographer's Analysis of Hub-and-Spoke Networks," Journal of Transport Geography, Vol. 6, No. 3, pp. 171-186, Sept. 1998, https://doi.org/10.1016/S0966-6923(98)00010-6 
  7. W. Xu , J. C. Huang, and Y. Z. Qiu, "A Study on the Optimization of Hub-and-Spoke Logistics Network regarding Traffic Congestion," Journal of Advanced Transportation, Vol. 2021, Article No. 8711964, pp. 1-16, Nov. 2021, https://doi.org/10.1155/2021/8711964 
  8. J. Ruiter, "Spokes," http://puzzlepicnic.com/genre?id=12, Retrieved Jul. 2023. 
  9. J. Ruiter, "Spokes," http://puzzlepicnic.com/puzzle?4840, Retrieved Jul. 2023.