Satisfação de restrição aberta ou interativa

17

No passado, implementei modelos de coordenação usando SAT e satisfação regular de restrições como o cavalo de batalha principal em seus motores. Continuando nesta linha de trabalho, gostaria de tornar os modelos mais interativos, e a melhor maneira de fazer isso é abrir o solucionador de restrições para que ele não seja mais uma caixa preta.

Portanto, estou interessado em aprender mais sobre a satisfação de restrições, onde as restrições têm o que chamarei de variáveis , predicados e funções externas , ou seja, a linguagem da restrição pode ter predicados como que só podem ser satisfeitos consultando alguns agente externo ao solucionador e somente quando x estiver aterrado. Um cenário em que isso é útil é sempre que P corresponde a algum processo de decisão externo que não pode ser incorporado ao solucionador de restrições. Esses solucionadores de restrições podem ser chamados de abertos (como as restrições não são totalmente conhecidas) ou interativosP(x)xP (como a interação é necessária para prosseguir com a satisfação da restrição).

Eu gostaria de conhecer os dois:

  • pesquisa teórica realizada nessa direção
  • ferramentas ou bibliotecas que implementam solucionadores de restrições que permitem a interação com o mundo externo durante o processo de resolução de restrições.
Dave Clarke
fonte

Respostas:

9

Não estou totalmente convencido pelo trabalho anterior sobre restrições abertas e interativas.

Uma tentativa de estudar as questões de tratabilidade foi:

embora este artigo deixe várias questões importantes sem resposta. A abordagem via propagadores neste documento está intimamente relacionada às implementações existentes do solucionador de restrições.

Acho que o trabalho em SMT (teorias de módulo de satisfação) também está intimamente relacionado à sua pergunta. As teorias SMT geralmente são motivadas por problemas de verificação de software e hardware, mas existem teorias com sabor de IA. Estou ansioso por mais aplicativos criados com o SMT como a tecnologia principal e por mais trabalho com restrições na aplicação de idéias do SMT.

András Salamon
fonte
11
Esse artigo certamente parece interessante. Eu nunca pensei nos solucionadores SMT como fazendo o que eu preciso. É certamente uma avenida para explorar.
21810 Dave Clarke
Estou confuso com o último comentário. Os solucionadores SMT são para lógicas e teorias, não para predicados específicos. As pessoas são bem-vindas a contribuir com novas teorias e referências. Eu sei que os desenvolvedores do MathSAT estudaram a IA e os problemas de planejamento.
Vijay D
@Vijay D: você está certo, esta frase é indevidamente tendenciosa e vou revisá-la. Uma implementação eficiente do INJETIVO como uma teoria SMT foi publicada em 2010 por Banković e Marić ( argo.matf.bg.ac.rs/publications/2010/alldiff-smt2010.pdf ).
András Salamon
7

Lendo sua pergunta, também concordo em dizer que as Teorias do Módulo de Satisfação estão intimamente relacionadas às suas necessidades. Sugiro que leia o livro Procedimentos de Decisão - Um Ponto de Vista Algorítmico .

Giorgio Camerani
fonte
Quão relacionado / interessante é o livro O Cálculo da Computação: Procedimentos de Decisão com Aplicações à Verificação por Aaron R. Bradley e Zohar Manna? Eu sei onde uma cópia disso está a uma curta distância.
Dave Clarke
@ Dave: Isenção de responsabilidade: Minha experiência pessoal no SMT está no começo ;-) Acabei de ler o Sumário desse livro; parece haver uma grande interseção entre ela e a que eu indiquei. No último, o que você chama aqui de funções externas é chamado de funções não interpretadas e é amplamente coberto. Não consegui encontrar funções não interpretadas no sumário dos procedimentos de decisão com pedidos de verificação ; no entanto, parece ser um livro muito bom e talvez possa ser útil.
Giorgio Camerani 19/10/10
@ Dave: Nestes dias, eu estou lendo procedimentos de decisão - um ponto de vista algorítmico . Ainda não cheguei ao capítulo sobre funções não interpretadas , mas, se não estou errado, fórmulas com funções não interpretadas são convertidas em fórmulas na Teoria da Igualdade. É o caso de a Teoria da Igualdade ser abordada em Procedimentos de Decisão com Pedidos de Verificação (Capítulo 9).
Giorgio Camerani 19/10/10
11
Eu acho que a Amazon está ligando.
Dave Clarke
@ Dave: OK, excelente! ;-)
Giorgio Camerani
7

P(x)

Evgenij Thorstensen
fonte
4

Estou um pouco confuso sobre o termo interativo. Vou conversar com os outros e acrescentar que um solucionador de SMT pode ser útil. Para adicionar ao comentário de Walter Bishop, lâminas para os procedimentos de decisão (Kroening e Strichman) livro estão disponíveis. O tratamento completo de John Harrison no Manual de lógica prática e raciocínio automatizado também pode lhe interessar. Código de exemplo está disponível online.

A princesa de Philipp Ruemmer suporta aritmética com predicados não interpretados, que podem se encaixar no que você entende por aberto. Está escrito em Scala, usa correspondência E no manuseio de quantificação e fornece interpolantes.

Vijay D
fonte
0

E quanto às ferramentas, se você escolher o Prolog como linguagem de escolha, posso sugerir algumas abordagens de implementação:

  • GNU Prolog com é uma biblioteca de programação C. Você pode chamar as funções C do Prolog e Prolog do C. Isso abre muitas possibilidades para ampliar a funcionalidade. Pro: Gnu Prolog é um dos compiladores Prolog mais rápidos disponíveis gratuitamente. Nota: Algumas pessoas reclamam da falta de alguns predicados incorporados ... na verdade, a maioria deles pode ser implementada, consulte as camadas de compatibilidade do Prolog @SO
  • SWI-Prolog possui uma biblioteca de programação interessante, incluindo comunicação em rede, suporte a buffers de protocolo, etc. E é bastante popular.
  • XSB Prolog algumas pessoas afirmam que é o projeto mais interessante em termos de interoperabilidade - incluindo: interfaces de bancos de dados etc.

Prolog é uma linguagem de programação adequada para a execução de muitos tipos de solucionadores (e a maioria deles possui solucionadores de domínio finito).

Grzegorz Wierzowiecki
fonte