논리 (컴퓨터 과학)

컴퓨터 과학 내 논리 또는 논리학(logic)은 논리학 분야와 컴퓨터 과학 분야의 중첩되는 부분을 다룬다. 이 주제는 크게 세 가지 주요 영역으로 나눌 수 있다.
 이론적 기초 및 분석
 논리학자를 돕기 위한 컴퓨터 기술의 사용
 컴퓨터 응용을 위한 논리학 개념 사용

 이론적 기초 및 분석 
논리학은 컴퓨터 과학에서 근본적인 역할을 한다. 특히 중요한 논리학의 주요 분야로는 계산 가능성 이론 (이전에는 재귀 이론이라고 불림), 양상 논리 및 범주론이 있다. 계산 이론은 알론조 처치와 앨런 튜링과 같은 논리학자와 수학자가 정의한 개념을 기반으로 한다. 처치는 람다 정의 가능성 개념을 사용하여 알고리즘적으로 해결 불가능한 문제의 존재를 처음으로 보여주었다. 튜링은 기계적 절차라고 불릴 수 있는 것에 대한 첫 번째 설득력 있는 분석을 제시했으며, 쿠르트 괴델은 튜링의 분석이 "완벽하다"고 단언했다. 또한 논리학과 컴퓨터 과학 사이의 이론적 중복의 다른 주요 영역은 다음과 같다.
 괴델의 불완전성 정리는 산술을 특징짓기에 충분히 강력한 모든 논리 시스템은 그 시스템 내에서 증명할 수도 반증할 수도 없는 명제를 포함할 것이라고 증명한다. 이것은 소프트웨어의 완전성과 정확성을 증명하는 것의 실현 가능성과 관련된 이론적 문제에 직접적으로 적용된다.
 사고범위 문제는 인공지능 에이전트의 목표와 환경 상태를 표현하기 위해 1차 논리를 사용할 때 극복해야 할 기본적인 문제이다.

 커리-하워드 대응은 논리 시스템과 프로그래밍 언어 간의 관계이다. 이 이론은 증명과 프로그램 간의 정확한 대응을 확립했다. 특히, 단순형 람다 계산법의 항이 직관 명제 논리의 증명에 해당한다는 것을 보여주었다.
 범주론은 구조 간의 관계를 강조하는 수학적 관점을 나타낸다. 이는 프로그래밍 언어의 자료형 체계, 전이 시스템 이론, 프로그래밍 언어 모델 및 프로그래밍 언어 의미론 이론과 같은 컴퓨터 과학의 여러 측면과 밀접하게 관련되어 있다.
 논리형 프로그래밍은 형식 논리학을 기반으로 하는 프로그래밍 패러다임, 데이터베이스 및 지식 표현 패러다임이다. 논리 프로그램은 특정 문제 도메인에 대한 문장들의 집합이다. 계산은 도메인의 문제를 해결하기 위해 논리적 추론을 적용하여 수행된다. 주요 논리형 프로그래밍 언어 제품군에는 프롤로그, 응답 집합 프로그래밍 (ASP) 및 데이터로그가 포함된다.

 논리학자를 돕기 위한 컴퓨터 
인공지능이라는 용어를 사용한 최초의 응용 프로그램 중 하나는 1956년 앨런 뉴얼, 클리프 쇼, 허버트 사이먼이 개발한 논리 이론가 시스템이었다. 논리학자가 하는 일 중 하나는 논리학에서 일련의 명제를 취하고 논리학의 법칙에 따라 참이어야 하는 결론(추가 명제)을 추론하는 것이다. 예를 들어, "모든 인간은 죽는다"와 "소크라테스는 인간이다"라는 명제가 주어지면 유효한 결론은 "소크라테스는 죽는다"이다. 물론 이것은 사소한 예시이다. 실제 논리 시스템에서는 명제가 수없이 많고 복잡할 수 있다. 이러한 종류의 분석이 컴퓨터 사용에 의해 크게 도움이 될 수 있다는 점은 일찍이 인식되었다. 논리 이론가는 버트런드 러셀과 앨프리드 노스 화이트헤드가 그들의 영향력 있는 수리논리학 저서인 수학 원리에서 수행한 이론적 작업을 검증했다. 또한, 후속 시스템은 논리학자들이 새로운 수학 정리와 증명을 검증하고 발견하는 데 활용되었다.

 컴퓨터를 위한 논리 응용 
수리논리학은 인공지능 (AI) 분야에 항상 강력한 영향을 미쳤다. 이 분야의 초기부터 논리적 추론을 자동화하는 기술이 문제를 해결하고 사실로부터 결론을 도출하는 데 큰 잠재력을 가질 수 있다는 것을 인식했다. 론 브래치맨은 1차 논리 (FOL)를 모든 AI 지식 표현 형식주의가 평가되어야 하는 척도로 설명했다. 1차 논리는 정보를 기술하고 분석하는 일반적이고 강력한 방법이다. FOL 자체가 컴퓨터 언어로 단순히 사용되지 않는 이유는 실제로 너무 표현력이 풍부하기 때문이다. 즉, FOL은 아무리 강력한 컴퓨터라도 해결할 수 없는 명제를 쉽게 표현할 수 있다. 이러한 이유로 모든 형태의 지식 표현은 어떤 의미에서 표현력과 계산 가능성 사이의 절충안이다. 언어가 표현력이 풍부할수록 (즉, FOL에 가까울수록) 느리고 무한 루프에 빠질 가능성이 높다는 널리 퍼진 믿음이 있다. 그러나 헹 장(Heng Zhang) 외 연구진의 최근 연구에서 이 믿음은 엄격하게 도전받았다. 그들의 연구 결과는 모든 보편적 지식 표현 형식주의가 재귀적으로 동형이라는 것을 확립한다. 더욱이, 그들의 증명은 FOL이 계산적으로 실현 가능한 오버헤드, 특히 결정론적 다항 시간 또는 더 낮은 복잡도 내에서 튜링 기계로 정의된 순수 절차적 지식 표현 형식주의로 번역될 수 있음을 보여준다.

예를 들어, 전문가 시스템에서 사용되는 IF–THEN 규칙은 FOL의 매우 제한된 부분 집합에 근접한다. 전체 범위의 논리 연산자를 가진 임의의 공식 대신, 시작점은 논리학자들이 전건 긍정이라고 부르는 것이다. 결과적으로, 규칙 기반 시스템은 특히 최적화 알고리즘과 컴파일을 활용하는 경우 고성능 계산을 지원할 수 있다.

한편, 1차 논리의 혼 절 부분 집합과 비단조 형태의 부정을 결합한 논리형 프로그래밍은 높은 표현력과 효율적인 구현을 모두 가지고 있다. 특히, 논리형 프로그래밍 언어인 프롤로그는 튜링 완전 프로그래밍 언어이다. 데이터로그는 관계형 데이터베이스 모델을 재귀적 관계로 확장하며, 응답 집합 프로그래밍은 어려운 (주로 NP-완전) 탐색 문제에 중점을 둔 논리형 프로그래밍의 한 형태이다.

논리 이론의 또 다른 주요 연구 분야는 소프트웨어 공학이다. 지식 기반 소프트웨어 보조 장치 및 프로그래머 도제 프로그램과 같은 연구 프로젝트는 소프트웨어 사양의 정확성을 검증하기 위해 논리 이론을 적용했다. 또한 논리 도구를 사용하여 사양을 다양한 플랫폼에서 효율적인 코드로 변환하고 구현과 사양 간의 동등성을 증명했다. 이러한 형식 변환 기반 접근 방식은 전통적인 소프트웨어 개발보다 훨씬 더 많은 노력이 필요하다. 그러나 적절한 형식주의와 재사용 가능한 템플릿이 있는 특정 도메인에서는 이 접근 방식이 상업용 제품에 대해 실행 가능하다는 것이 입증되었다. 적절한 도메인은 일반적으로 시스템 오류가 인간 또는 재정적 비용이 과도하게 높은 무기 시스템, 보안 시스템 및 실시간 금융 시스템과 같은 도메인이다. 이러한 도메인의 예로는 초고집적 (VLSI) 설계 – CPU 및 디지털 장치의 기타 중요 구성 요소에 사용되는 칩을 설계하는 프로세스가 있다. 칩의 오류는 치명적일 수 있다. 소프트웨어와 달리 칩은 패치하거나 업데이트할 수 없다. 결과적으로 정형 기법을 사용하여 구현이 사양과 일치함을 증명하는 상업적 정당성이 있다.

컴퓨터 기술에 대한 논리학의 또 다른 중요한 응용 분야는 프레임 언어 및 자동 분류기 영역이다. KL-ONE과 같은 프레임 언어는 집합론 및 1차 논리로 직접 매핑될 수 있다. 이를 통해 분류기라고 불리는 전문화된 정리 증명기가 주어진 모델에서 집합, 부분집합 및 관계 간의 다양한 선언을 분석할 수 있다. 이러한 방식으로 모델의 유효성을 검사하고 일치하지 않는 정의를 플래그 지정할 수 있다. 분류기는 또한 새로운 정보를 추론할 수 있다. 예를 들어, 기존 정보를 기반으로 새로운 집합을 정의하고 새로운 데이터를 기반으로 기존 집합의 정의를 변경할 수 있다. 이러한 유연성 수준은 끊임없이 변화하는 인터넷 세상을 처리하는 데 이상적이다. 분류기 기술은 웹 온톨로지 언어와 같은 언어 위에 구축되어 기존 인터넷 위에 논리적 의미 수준을 허용한다. 이 계층을 시맨틱 웹이라고 한다.

시간 논리는 동시 시스템에서 추론하는 데 사용된다.

 같이 보기 
 자동화된 추론
 계산 논리
 논리형 프로그래밍

 각주 

 더 읽어보기 





 외부 링크 
 스탠퍼드 철학 백과사전의 논리와 인공지능에 관한 글.
 IEEE 컴퓨터 과학 논리학 심포지엄 (LICS)
 Alwen Tiu, ANU Logic Summer School '09에서 강연한 논리학 입문 비디오 녹화 (주로 컴퓨터 과학자를 대상으로 함)


분류:정형 기법