Skip to main content
QUICK REVIEW

[논문 리뷰] Calculating a backtracking algorithm: an exercise in monadic program derivation

Shin-Cheng Mu|arXiv (Cornell University)|2021. 01. 23.
Logic, programming, and type systems참고 문헌 12인용 수 5
한 줄 요약

이 논문은 비결정성과 국소 상태의 상호작용에 중점을 두어, 단항 프로그램 계산을 사용하여 백트래킹 알고리즘의 형식적 유도를 제시한다. 비결정성과 국소 상태의 상호작용을 고려하여, 단항 전개와 scanl 유사 필터링을 융합하는 하이로모르피즘을 도출함으로써, 사양에서 효율적인 백트래킹 프로그램으로의 변환을 수학적으로 엄밀하고 등식적인 방법으로 제공한다. n-크기 체스판에서 퀸을 놓는 문제에 대해 적용되었으며, 모나드 법칙과 구조적 귀납법을 통해 정확성이 보장된다.

ABSTRACT

Equational reasoning is among the most important tools that functional programming provides us. Curiously, relatively less attention has been paid to reasoning about monadic programs. In this report we derive a backtracking algorithm for problem specifications that use a monadic unfold to generate possible solutions, which are filtered using a $\mathit{scanl}$-like predicate. We develop theorems that convert a variation of $\mathit{scanl}$ to a $\mathit{foldr}$ that uses the state monad, as well as theorems constructing hylomorphism. The algorithm is used to solve the $n$-queens puzzle, our running example. The aim is to develop theorems and patterns useful for the derivation of monadic programs, focusing on the intricate interaction between state and non-determinism.

연구 동기 및 목표

  • 비결정성과 상태를 모두 포함하는 단항 프로그램을 등식적 방법으로 유도하는 형식적이고 엄밀한 방법을 개발하기 위해.
  • 특히 백트래킹 알고리즘과 같이 효과가 복합적으로 얽힌 프로그램에 대한 추론에 도전하기 위해.
  • 문제 사양을 효율적이고 정확한 구현으로 변환하기 위한 재사용 가능한 정리와 패tern을 제공하기 위해.
  • 백트래킹의 표준 예로서 상태 기반 제약 조건을 가진 n-퀸 문제에 이 방법을 적용하기 위해.

제안 방법

  • 등식적 추론과 모나드 법칙을 사용하여, 상태 모나드 위에서의 foldr에 대한 scanl의 변형을 도출한다.
  • 상태 업데이트와 비결정적 선택을 상태 기반 환경에서 결합하기 위한 새로운 단항 연산자 ⊙를 도입한다.
  • 후보 해의 생성(단항 전개를 통해)과 필터링(상태 기반 scanl 유사 조건을 통해)을 융합하는 하이로모르피즘을 구성한다.
  • 유도된 정리를 적용하여 n-퀸 문제의 사양을 효율적인 백트래킹 프로그램으로 변환한다.
  • 구조적 귀납법과 모나드 법칙을 사용하여 정확성을 증명하며, 국소 상태 법칙(우측 분배성 및 우측 항등원)이 성립한다고 가정한다.
  • 최종 알고리즘에서 상태 초기화와 전파의 정확성을 보장하기 위해 protect 커서모나드를 사용한다.

실험 결과

연구 질문

  • RQ1비결정성과 상태를 모두 포함하는 단항 프로그램을 등식적 추론을 통해 어떻게 유도할 수 있는가?
  • RQ2scanl 유사 필터링 연산을 상태 모나드 위의 foldr로 변환하기 위한 정리를 어떻게 수립할 수 있는가?
  • RQ3상태와 비결정성의 상호작용을 수학적으로 다룰 수 있는 방법은 무엇인가?
  • RQ4유도된 백트래킹 알고리즘이 정확하고 효율적임을 보장하기 위한 조건는 무엇인가?
  • RQ5전개와 필터링의 하이로모르피즘 기반 융합이 다른 제약 만족 문제로 일반화될 수 있는가?

주요 결과

  • 논문은 n-퀸 문제에 대해 정확하고 효율적인 백트래킹 알고리즘을 단항 프로그램 유도를 통해 성공적으로 도출하였다.
  • 핵심 기여는 단항 전개와 상태 기반 필터링을 융합하는 하이로모르피즘으로, 이는 연산자 ⊙와 solve 함수를 통해 표현된다.
  • 유도 과정은 국소 상태 법칙(우측 분배성 및 우측 항등원)에 의존하며, 이는 각 비결정적 분지가 독립적인 상태를 가지게 하여 추론을 단순화한다.
  • 문제 관계의 정렬성과 상태 및 비결정성의 교환법칙이 성립한다고 가정할 경우, 알고리즘이 형식적으로 정확함을 증명하였다.
  • 최종 구현인 queens n은 solve null select ok (⊕) (0, [], []) [0..n-1]과 동일하며, put과 get을 통한 명시적 상태 관리가 포함되어 있다.
  • 필요한 대수 법칙이 성립한다면, 문제 사양이 unfoldM p f z >>= filter (all ok · scanl+ (⊕) st)로 표현되는 다른 문제들에도 이 방법이 일반화 가능하다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.