자동추론
자동추론(Automatic Deduction)은 컴퓨터 프로그램에 의한 수학적 이론의 증명 문제를 다루는 자동화된 추론과 수학 논리(logic)의 하위 분야다. 수학적 증거에 대한 자동화된 추론은 컴퓨터 과학의 발전에 주요한 자극제였다. 인공지능(AI) 연구에 있어 핵심이기도 하다.[1]
목차
자동추론의 논리적 기초
19세기 말과 20세기 초의 논리는 현대 논리와 정형화(formalised)된 수학의 발달이 이었다. 1879년, 고틀로프 프레게(Gottlob Frege)는 자신의 저서 베그리프시크리프트(Begriffsschrift)에서 '완전한 명제로 이뤄진 미적분'과 '근본적인 현대 논리'를 모두 소개했다. 1884년엔 수학을 형식 논리로 표현한 산술 기초(Foundations of Arithmetic)를 출간했다. 이러한 접근은 러셀(Russell Bertrand)과 화이트헤드(Whitehead Alfred North)가 1910~1913년에 처음 출간한 수학 원리(Principia Mathematica)에 큰 영향을 주었다. 그 뒤로도 1927년에 개정된 수학 원리로 접근을 시도했다. 러셀과 화이트헤드는 사회에서 두루 통하는 진리나 도리인 '공리'와 형식논리의 '추론규칙'을 사용해서 수학적인 진리를 도출할 수 있다고 생각했고, 이로 인해 '자동화'란 것에 접근할 수 있게 된다. 1929년, 모히제스 프레스버거(Mojżesz Presburger)는 덧셈과 등호가 있는 자연수 이론(현, 프레스버거 산술(Presburger arithmetic))을 해독할 수 있다는 것을 보여주고, 그 언어에서 주어진 문장이 참인지 거짓인지를 판단할 수 있는 알고리즘을 주었다.
그러나, 이런 좋은 결과가 나온 직후, 1931년에 커트 괴델(Kurt Gödel)은 '프린키니아 매스매티카 및 관련 시스템의 확인되지 않은 문제들에 대하여(On Formally Undecidable Propositions of Principia Mathematica and Related Systems)'를 발표하여, 충분히 자명론 시스템에는 증명할 수 없는 참된 진술들이 있음을 보여주었다. 이 주장은 1930년대에 알론조 처치(Alonzo Church)와 앨런 튜링에 의해 더욱 발전하게 된다.[1]
첫 구현
제2차 세계대전 직후, 최초의 범용 컴퓨터(general purpose computer)가 보급되었다. 1954년, 마틴 데이비스(Martin Davis)는 프린스턴 고등연구소(Princeton Institute)에서 JOHNICA 진공관 컴퓨터를 위한 Presburger의 알고리즘을 프로그래밍(programming) 했다.[1]
문제의 결정 가능성
관련 문제
더 단순하지만 관련 있는 문제는 정리에 대한 기존 증거가 유효한 증명 검증이다. 이를 위해, 일반적으로 원시적인 재귀 기능이나 프로그램에 의해 각각의 증명 단계를 검증할 수 있어야 하며, 따라서 문제는 항상 해독이 가능하다. 자동화된 정리 증명자에 의해 생성되는 증명들은 전형적으로 매우 크기 때문에, 증명 압축의 문제는 매우 중요하며, 결과적으로 더 쉽게 이해할 수 있고 체크할 수 있게 하는 것을 목표로 하는 다양한 기술들이 개발되었다.
교정 보조원은 시스템에 힌트를 줄 수 있는 인간 사용자를 요구한다. 자동화의 정도에 따라 프로베러는 본질적으로 증명 체커로 축소될 수 있으며, 사용자는 형식적인 방법으로 증명을 제공하거나 중요한 증명 작업을 자동으로 수행할 수 있다. 대화형 프로버들은 다양한 작업에 사용되지만, 심지어 완전히 자동화된 시스템조차도 오랫동안 인간의 수학자들을 따돌린 것, 즉 로빈스 추측을 포함한 많은 흥미롭고 어려운 이론들을 증명했다. 그러나 이러한 성공은 산발적으로 이루어지며, 어려운 문제를 해결하기 위해서는 대개 숙련된 사용자가 필요하다.
산업용
자동화된 정리 증명의 상업적 이용은 대부분 집적회로 설계와 검증에 집중되어 있다. 펜티엄 부동 소수점(FDIV) 버그 이후, 현대 마이크로프로세서의 복잡한 부동 소수점 단위는 추가적인 정밀도로 설계되었다. 어드밴스트 마이크로 디바이시스(AMD), 인텔(Intel) 등은 분할 및 기타 운영이 프로세서에서 올바르게 구현되었는지 검증하기 위해 자동화된 정리를 사용한다.[1]
1차 정리 증명
벤치 마크, 경쟁 및 소스
인기있는 기술
소프트웨어 시스템
자유 소프트웨어
독점 소프트웨어
각주
- ↑ 1.0 1.1 1.2 1.3 Automated theorem proving - https://en.wikipedia.org/wiki/Automated_theorem_proving
참고자료
- Automated theorem proving - https://en.wikipedia.org/wiki/Automated_theorem_proving
같이 보기