개방형 또는 대화 형 구속 조건 만족


17

과거에는 SAT와 규칙적인 제약 조건 만족을 엔진의 핵심 워크로 사용하여 조정 모델을 구현했습니다. 이 작업 라인을 계속하면서 모델을 대화식으로 만들고 싶습니다.이 작업을 수행하는 가장 좋은 방법은 더 이상 블랙 박스가 아닌 제약 조건 솔버를 여는 것입니다.

따라서 제약 조건에 외부 변수 , 술어함수 라고 부르는 제약 조건이있는 제약 조건 만족 , 즉 제약 조건 언어에는 와 같은 술어가있을 수 있습니다. 솔버 외부의 에이전트, 그리고 x 가 접지 된 경우에만 . 이것이 유용한 시나리오는 P 가 제약 조건 솔버에 통합 될 수없는 일부 외부 결정 프로세스에 해당 할 때마다 입니다. 이러한 구속 조건 솔버는 개방형 (제약 조건이 완전히 알려지지 않았으므로) 또는 대화식 으로 호출 될 수 있습니다.(엑스)엑스 (제약 만족을 진행하기 위해서는 상호 작용이 필요하기 때문에).

둘 다 알고 싶습니다.

  • 이 방향으로 수행 된 이론적 연구
  • 구속 조건 해결 프로세스 동안 외부 세계와의 상호 작용을 허용하는 구속 조건 솔버를 구현하는 도구 또는 라이브러리.

답변:


9

개방적이고 대화식 제약 조건에 대한 이전 연구에 완전히 확신하지 못했습니다.

다루기 쉬운 질문을 연구하려는 시도는 다음과 같습니다.

이 백서에서는 몇 가지 주요 질문에 답하지 않습니다. 이 논문에서 전파자를 통한 접근은 기존 구속 조건 솔버 구현과 밀접한 관련이 있습니다.

나는 SMT (만족도 모듈로 이론)에 대한 연구가 귀하의 질문과 밀접한 관련이 있다고 생각합니다. SMT 이론은 종종 소프트웨어 및 하드웨어 검증의 문제에 의해 유발되지만 AI 풍미에 관한 이론이 존재합니다. 저는 SMT를 핵심 기술로 구축 한 더 많은 응용 프로그램을 기대하고 SMT의 아이디어를 적용하는 데 제약을 가하는 더 많은 작업을 기대합니다.


1
그 종이는 확실히 흥미로워 보입니다. 나는 SMT 솔버가 내가 원하는 것을하는 것으로 생각하지 않았습니다. 확실히 탐험의 길입니다.
Dave Clarke

나는 마지막 의견에 혼란스러워합니다. SMT 솔버는 특정 술어가 아니라 논리 및 이론을위한 것입니다. 사람들은 새로운 이론과 벤치 마크에 기여할 수 있습니다. MathSAT 개발자는 AI 및 계획 문제를 연구했습니다.
Vijay D

@ Vijay D : 당신 말이 맞습니다.이 문장은 과도하게 편향되어 있으며 수정하겠습니다. SMT 이론으로서 INJECTIVE의 효율적인 구현은 Banković와 Marić ( argo.matf.bg.ac.rs/publications/2010/alldiff-smt2010.pdf )에 의해 2010 년에 출판되었습니다 .
András Salamon

7

귀하의 질문을 읽고, 또한 만족도 모듈로 이론이 귀하의 요구와 밀접한 관련이 있다는 것에 동의합니다. 나는 Decision Procedures-Algorithmic Point of Book이라는 책을 읽는 것이 좋습니다 .


Aaron R. Bradley와 Zohar Manna의 '계산 미적분 : 검증을위한 결정 절차'책은 얼마나 관련성이 있습니까? 나는 그것의 사본이 도보 거리 내에 어디에 있는지 안다.
Dave Clarke

@Dave : 면책 조항 : SMT에 대한 나의 개인적인 경험은 시작에 불과합니다. ;-) 나는 그 책의 목차를 보았습니다. 그것과 내가 표시 한 것 사이에 큰 교차점이있는 것 같습니다. 후자에서 외부 함수 라고 부르는 것을 해석되지 않은 함수 라고하며 광범위하게 다루고 있습니다. 검증 신청과 의사 결정 절차 의 목차에서 해석되지 않은 기능 을 찾을 수 없었습니다 . 그러나이 책은 매우 훌륭한 책으로 보이며 아마도 유용 할 수 있습니다.
Giorgio Camerani

@Dave : 요즘에는 의사 결정 절차-알고리즘 관점을 읽습니다 . 아직 해석되지 않은 함수 에 관한 장에 도달하지 못했지만 , 잘못 해석 하지 않은 경우 해석되지 않은 함수를 가진 공식은 평등 이론의 공식으로 변환됩니다. 평등 이론은 검증 응용 프로그램의 결정 절차 (9 장) 에서 다룬다 .
Giorgio Camerani

1
아마존이 전화하고 있다고 생각합니다.
Dave Clarke

@ 데이브 : 좋아요, 훌륭합니다! ;-)
Giorgio Camerani


4

대화 형이라는 용어에 대해 약간 혼란 스럽습니다. 나는 다른 사람들과 차임하고 SMT 솔버가 도움이 될 것이라고 덧붙입니다. Walter Bishop의 의견에 추가하기 위해 결정 절차 (Kroening and Strichman) 책의 슬라이드 를 사용할 수 있습니다. Practical Logic and Automated Reasoning 핸드북에서 John Harrison의 철저한 치료 또한 관심을 가질 수 있습니다. 예제 코드 는 온라인으로 제공됩니다.

Philipp Ruemmer의 공주 는 해석되지 않은 술어를 사용하여 산술을 지원하며, 이는 오픈의 의미에 맞을 수 있습니다. 스칼라로 작성되었으며 정량화 처리에 E- 매칭을 사용하며 보간을 제공합니다.


0

툴의 경우, 선택한 언어로 Prolog를 결정하면 몇 가지 구현 방법을 제안 할 수 있습니다.

  • GNU 프롤로그 는 C 프로그래밍 라이브러리입니다. Prolog에서 C 함수를 호출하고 C에서 Prolog를 호출 할 수 있습니다. 이렇게하면 기능을 확장 할 수있는 많은 가능성이 열립니다. Pro : Gnu Prolog는 가장 빠른 무료 프롤로그 컴파일러 중 하나입니다. 참고 : 일부 사람들은 일부 내장 술어가 부족하다고 불평합니다 ... 실제로 대부분 구현할 수 있습니다 .Prolog 호환성 레이어 @SO를 확인하십시오.
  • SWI-Prolog 에는 네트워크 통신, 프로토콜 버퍼 지원 등 흥미로운 프로그래밍 라이브러리가 있습니다.
  • XSB Prolog 일부 사람들은 데이터베이스 인터페이스 등을 포함하여 상호 운용성 측면에서 가장 흥미로운 프로젝트라고 주장합니다.

프롤로그는 프로그래밍 언어로, 많은 종류의 솔버를 수행하는 데 적합합니다 (대부분 유한 도메인 솔버를 갖습니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.