나는 Wikipedia에서 통일 이 만족스러운 문제를 해결하는 과정 이라고 읽었습니다 .
동시에, 그러한 솔버를 "SAT 솔버"또는 "SMT 솔버"라고합니다. 그래서 그들은 같은 것의 다른 이름입니까?
그들이 다르다고 말하면 내 치료에 결함이 있음을 지적하십시오.
나는 Wikipedia에서 통일 이 만족스러운 문제를 해결하는 과정 이라고 읽었습니다 .
동시에, 그러한 솔버를 "SAT 솔버"또는 "SMT 솔버"라고합니다. 그래서 그들은 같은 것의 다른 이름입니까?
그들이 다르다고 말하면 내 치료에 결함이 있음을 지적하십시오.
답변:
SAT 솔버는 부울 만족도 문제를 해결 합니다. 이것은 "공식을 TRUE로 평가하는 방식으로 주어진 부울 수식의 변수를 할당 할 수 있는지를 결정하는 문제"입니다.
예 변수 진리 값의 할당을 찾는 것이다 , B를 , C 되도록 ( A는 ∨ ㄴ ∨ C ) ∧ ( ¬ ∨ ¬ ㄴ ∨ C ) ∧ ( ∨ ¬ ㄴ ∨ ¬ C ) ∧ ( ¬ ∨ b ∨ ¬ c ) 는 사실입니다. SAT 솔버는 a = t r u e 와 같은 솔루션을 반환 할 수 있습니다 . , c = t r u e .
SMT 솔버는보다 일반적인 문제, 즉 만족도 모듈로 이론을 해결합니다 . 이것은 "동일한 1 차 논리로 표현 된 배경 이론의 조합에 관한 논리식의 결정 문제"입니다. 이러한 이론에는 "실수 이론, 정수 이론 및 목록, 배열, 비트 벡터 등과 같은 다양한 데이터 구조 이론"이 포함될 수 있습니다.
예를 들어, 유형이 지정된 변수 및 y : i n t 및 f : i n t → i n t가 주어지면 다음이 f ( x + 2 ) ≠ f ( y − 1 ) ∧ x = ( y - 4 ) 만족할 만하다. SMT 솔버는 솔루션 x = − 2 , y로 예라고 대답합니다. , f ( 0 ) = 1 및 f ( 1 ) = 3 입니다.
통일 은 두 가지 용어를 사용하고 해당 용어를 동일하게 만드는 대체 기법을 찾는 특정 기술입니다. 예를 들어, 및 b o o k ( D. ~ Smith , y , 2010 ) 용어 가 통일되면 통일은 대체 { x ↦ D. Smith , y ↦ "Fishing" } . 통일은 SMT 솔버 내에서 사용될 수 있습니다.