• 제목/요약/키워드: 퍼즐 풀이

검색결과 13건 처리시간 0.022초

숫자 연결 퍼즐에 관한 교차 회피 우회 경로 알고리즘 (Algorithm for Cross-avoidance Bypass Routing in Numberlink Puzzle)

  • 이상운
    • 한국인터넷방송통신학회논문지
    • /
    • 제24권3호
    • /
    • pp.95-101
    • /
    • 2024
  • 주어진 숫자 쌍 간에 빈 셀을 경유하는 선을 연결함에 있어 다른 숫자의 연결선과 교차가 발생하지 않도록 하는 숫자 연결 퍼즐은 다항시간으로 퍼즐을 풀 수 있는 방법이 알려져 있지 않은 NP-완전 문제이다. 지금까지는 임의의 숫자를 선정하여 시행착오 법으로 퍼즐을 풀고 있다. 본 논문은 주어진 문제에 대해 빈 셀을 정점으로, 인접 셀들 간에 간선으로 연결한 격자 그래프로 변환하였다. 다음으로 숫자 쌍 들 간에 직선을 긋고, 교차가 발생한 숫자 그룹으로 분할하였다. 교차 숫자 그룹에서 교차를 회피하는 우회 경로를 설정하였다. 제안된 알고리즘을 18개의 벤치마킹 데이터들에 적용한 결과 모든 데이터에 대해 퍼즐을 O(n)의 선형시간 복잡도로 풀 수 있음을 보였다.

SAT 처리기를 위한 수도쿠 퍼즐의 최적화된 인코딩 (Optimized Encoding of Sudoku Puzzle for SAT Solvers)

  • 권기현
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제34권7호
    • /
    • pp.616-624
    • /
    • 2007
  • SAT을 이용해서 수도쿠 퍼즐을 풀기 위해서는 수도쿠를 SAT 처리기의 표준 입력 언어인 CNF 논리식으로 인코딩 해야 한다. 기존에 제시된 인코딩 알고리즘으로 크기가 큰 수도쿠를 인코딩하면 현재 SAT 처리기의 처리 수준을 넘을 정도로 많은 논리식이 생성된다. 본 논문에서는 크기가 큰 수도쿠를 다루기 위해서 수도쿠의 고정 셀을 이용하여 최적화된 CNF 논리식을 생성하는 방법을 제시한다. 고정 셀에 배정된 숫자는 불변이기 때문에 이를 이용해서 일부 변수의 값을 인코딩 단계에서 미리 결정할 수 있고, 이들 변수의 값을 이용해서 SAT 처리에 영향을 주지 않는 절과 리터럴을 인코딩 단계에서 제거할 수 있다. 다양한 크기의 수도쿠 퍼즐에 적용한 결과 기존 인코딩 알고리즘에 비해서 우수한 성능을 보였다.

스도쿠 퍼즐을 위한 이진역추적 알고리즘 (Binary Backtracking Algorithm for Sudoku)

  • 이상운
    • 한국인터넷방송통신학회논문지
    • /
    • 제17권4호
    • /
    • pp.155-161
    • /
    • 2017
  • 본 논문은 지금까지 NP-완전 문제로 다항시간 알고리즘이 존재하지 않는 스도쿠 퍼즐 문제의 해를 다항시간으로 구하는 알고리즘을 제안하였다. 제안된 알고리즘은 빈칸들에 [$1,2,{\cdots},9$] 중에서 행, 열과 블록에 존재하는 실마리 숫자를 제외한 후보 집합을 초기치로 설정하였다. 빈칸의 후보 집합에 대해 Stuart이 제시한 기본적인 규칙들과 더불어 2개의 추가 규칙을 제시하고, 마지막으로 이진 역추적 기법(BBT)을 적용하였다. 다양한 부류의 해를 갖는 실험데이터들에 대해 적용한 결과 제안된 BBT 알고리즘은 어떠한 부류의 해를 갖던지에 상관없이 주어진 스도쿠 퍼즐을 풀 수 있음을 보였다.

가꾸로 퍼즐에 관한 마법 규칙 기반 실마리 후보 결정 알고리즘 (Algorithm for Candidate Clue Decision based on Magic Rule in Kakuro Puzzle)

  • 이상운
    • 한국인터넷방송통신학회논문지
    • /
    • 제24권3호
    • /
    • pp.103-108
    • /
    • 2024
  • 가꾸로 퍼즐은 다항시간으로 퍼즐을 풀 수 있는 방법이 알려져 있지 않은 NP-완전 문제이다. 지금까지는 가능한 모든 경우수를 대입해 보는 전수탐색 법이나 선형계획법을 적용하고 있다. 본 논문은 박스 크기와 합 실마리에 따른 들어갈 수 없는 숫자들에 대한 규칙인 마법의 규칙을 찾아내었다. 마법의 규칙에 기반하여 빈 셀에 들어갈 수 없는 숫자들을 행과 열 합 실마리에 대한 박스에서 삭제하였다. 다음으로 합 실마리 값에 기반하여 박스에 들어갈 수 없는 숫자들을 삭제하였다. 최종적으로 단일 숫자만 존재하는 셀을 실마리로 확정하였다. 제안된 알고리즘을 7개의 벤치마킹 실험 데이터에 적용한 결과 모든 문제에 대해 해를 구할 수 있음을 보였다.

수도쿠 풀이를 위한 새로운 SAT 인코딩 (A New SAT Encoding for Solving Sudoku)

  • 박준길;최진영
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2007년도 한국컴퓨터종합학술대회논문집 Vol.34 No.1 (B)
    • /
    • pp.487-492
    • /
    • 2007
  • 수도쿠를 푸는 것은 오락으로서 뿐 아니라 컴퓨터 계산 문제로서도 흥미롭다. 수도쿠는 minimal과 extended 인코딩을 통해 SAT로 변환되고, 탐색이 아닌 추론기술의 반복 적용을 통해 다항시간에 해를 찾을 수 있다. minimal과 extended 인코딩은 직관적이지만 고차 수도쿠($16\times16$ 이상)를 풀기에 충분하지 못하다. 이 논문에서는 extended 인코딩을 개선한 블록 인코딩을 제안한다. 블록 인코딩을 $16\times16$$25\times25$ 퍼즐 집합에 적용 했을 때 extended 인코딩에 비해 추론기술에 따라 1%에서 12% 더 많은 수의 퍼즐을 푸는 것을 실험을 통하여 보인다.

  • PDF

유전 알고리즘을 이용한 스도쿠 퍼즐 생성 및 풀이 방법 (Applying Genetic Algorithm To Randomly Creating And Solving A Sudoku Puzzle)

  • 황윤찬
    • EDISON SW 활용 경진대회 논문집
    • /
    • 제4회(2015년)
    • /
    • pp.521-526
    • /
    • 2015
  • A Sudoku puzzle is a kind of magic square puzzle which requires a non-repeated series of numbers from 1 to 9 in each 9 rows and 9 columns. Furthermore it contains total of 9 small three-by-three matrices, which need non-repeated numbers from 1 to 9 as well. Therefore the total number of possible cases of Sudoku puzzle is finite, even though that of creating nine-by-nine square is exponentially great. Accordingly a certain set of way is need not only for solving the puzzle, but also creating a new one. In this study, the method for creating a Sudoku puzzle applying genetic algorithm is suggested and will be demonstrated. Also, it will be shown that a Sudoku puzzle can be solved by genetic algorithm.

  • PDF

유전 알고리즘을 이용한 스도쿠 퍼즐 생성 및 풀이 방법

  • 황윤찬
    • 한국CDE학회지
    • /
    • 제21권2호
    • /
    • pp.69-74
    • /
    • 2015
  • A Sudoku puzzle is a kind of magic square puzzle which requires a non-repeated series of numbers from 1 to 9 in each 9 rows and 9 columns. Furthermore it contains total of 9 small three-by-three matrices, which need non-repeated numbers from 1 to 9 as well. Therefore the total number of possible cases of Sudoku puzzle is finite, even though that of creating nine-by-nine square is exponentially great. Accordingly a certain set of way is need not only for solving the puzzle, but also creating a new one. In this study, the method for creating a Sudoku puzzle applying genetic algorithm is suggested and will be demonstrated. Also, it will be shown that a Sudoku puzzle can be solved by genetic algorithm.

  • PDF

미로 퍼즐 풀이를 통한 모델 체킹 도구의 특성 분석 (Analysis of Model Checking Tools with Maze Puzzles)

  • 박사천;이건수;권기현
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2008년도 춘계학술발표대회
    • /
    • pp.382-385
    • /
    • 2008
  • 본 논문은 게임 풀이를 통해서 모델 체킹 도구의 특징을 분석한다. 도망자-추적자 게임은 격자 모양의 미로에서 도망자가 추적자를 따돌리고 탈출하는 게임이다. 도망자가 격자 상에서 한 칸 움직일 때, 추적자는 일정한 패턴을 가지고 두 칸 움직인다. 이 문제를 SMV와 SPIN 모델 체커로 모델링하고 검증하는 과정을 통해서 SMV와 Spin 모델 체커의 특징을 분석한다. 실험을 통해서 우리는 최단 경로를 찾을 경우는 SMV 모델 체커를 사용해야 하고, 가능한 경로를 빨리 찾는 경우는 Spin 모델 체커가 더 적합함을 확인할 수 있었다.

만족가능성 처리기를 이용한 이진 변수 서브시퀀스 추출 (Extracting Subsequence of Boolean Variables using SAT-solver)

  • 박사천;권기현
    • 정보처리학회논문지D
    • /
    • 제15D권6호
    • /
    • pp.777-784
    • /
    • 2008
  • 최근 정형 검증 분야에서 상태 폭발 문제를 극복하기 위해 만족가능성(Satisfiability) 처리기를 사용하는 방법이 많이 연구되고 있다. 만족가능성 처리기를 사용하려면 대상을 CNF 식으로 변환해야 하는데, 이진 기수 제약 조건은 시스템을 CNF 식으로 변환하기 위해 많이 사용되는 기법이다. 그러나 이진 기수 제약 조건은 이진 변수들의 집합을 다루기 때문에 이진 변수들의 순서 정보는 변환할 수 없었다. 본 논문에서는 이진 변수의 시퀀스에서 길이가 k인 서브시퀀스 추출 문제에 대한 CNF 변환 방법을 제안한다. 또한 실험을 통해 제안된 방법이 순서정보를 고려치 않고 적용한 변환 방법보다 훨씬 더 좋은 결과를 얻을 수 있었다.

카운팅 문제에 대한 SAT, PB, SMT의 성능 분석 (Performance Analysis on SAT, PB and SMT for Counting Problems)

  • 박호진;박사천;권기현
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2008년도 춘계학술발표대회
    • /
    • pp.371-374
    • /
    • 2008
  • n개의 이진 변수 집합 중에 k개를 선택하는 카운팅 문제(Counting Problem)들은 여러 방법으로 풀이가 가능하다. 본 논문에서는 카운팅 문제를 풀기 위해 SAT, PB, SMT를 소개하고, 칸 칠하기(Fill-a-Pix) 퍼즐을 예로 들어 카운팅 문제의 인코딩 방법을 제시하고 처리 결과를 비교해 보았다. SAT이 상대적으로 인코딩은 가장 복잡했으나, 처리 시 가장 우수한 성능을 보였다. 따라서 본 논문은 카운팅 문제를 다룰 때에는 SAT이 가장 적합하다는 것을 제안한다.