Por que a unificação é tão importante para os mecanismos de inferência?


17

Estou aprendendo sozinho os provedores de teoremas automatizados / solucionadores de SMT / assistentes de prova e postar uma série de perguntas sobre o processo, começando aqui .

Eu continuo lendo sobre o Algoritmo de Unificação .

  • O que é e por que é tão importante para os motores de inferência ?
  • Por que é tão importante para a Ciência da Computação?

Respostas:


11

A unificação é um conceito tão fundamental na ciência da computação que talvez às vezes até tomemos como garantido. Sempre que temos uma regra ou equação ou padrão e queremos aplicá-lo a alguns dados, a unificação é usada para especializar a regra nos dados. Ou, se queremos combinar duas regras gerais, mas que se sobrepõem, a unificação nos fornece a regra combinada mais geral. A unificação está no cerne da

  • Os provadores de teoremas e assistentes de provas incluem alguns baseados na unificação de ordem superior.
  • Implementações de prólogo (como Resolução).
  • Digite algoritmos de inferência.
  • Linguística computacional / processamento de linguagem natural.
  • Sistemas de reescrita de termos como Maude, que podem ser usados ​​como base da semântica da linguagem de programação.
  • Bancos de dados dedutivos.
  • Sistemas especialistas ou mais geralmente Inteligência artificial.
  • Sistemas de álgebra computacional.
  • Correspondência de padrões em linguagens funcionais (pelo menos em parte ... apenas correspondência).
  • Algumas abordagens de análise.
  • Algumas linguagens de consulta, especialmente envolvendo a Web Semântica.

8

Assistentes de prova como Isabelle / HOL trabalham em um nível sintático em um cálculo lógico. Imagine que você tem a regra do modus ponens (MP)

PQ,P  Q

e o objetivo da prova

(ab)(cd),ab !cd

Nós, humanos, vemos imediatamente que isso ocorre com o modus ponens, mas a máquina precisa corresponder à meta para governar sintaticamente (seja você apply rule mpou não apply simp), e é isso que a unificação faz. Os achados algoritmo com φ ( P ) = um b e φ ( Q ) = c d , instancia a regra e aplica-lo.φφ(P)=abφ(Q)=cd

O lado bom dos métodos dos assistentes simpagora é que, se seu objetivo é

(ab)(cd),a !d

PQPPPQ


Γ={φ1,,φn}

Γψ

significa o seguinte:

Γψ

Γψ é a última etapa de uma (longa) prova de ψ. As provas não passam de cadeias de aplicativos de regras.

Observe que as regras geralmente contêm variáveis ​​esquemáticas (P e Qna acima) que pode ser substituído por arbitrárias fórmulas desde que a mesma variável é substituída com a mesma fórmula em todas as ocorrências; o resultado desse formato é a instância de regra concreta (ou intuitivamente, uma etapa de prova). Esta substituição é acima indicada porφ que foi encontrado pela unificação.

Muitas vezes as pessoas usam ao invés de .


3
é freqüentemente usado para semântica, enquanto essa é uma manipulação sintática, para a qual é geralmente usado. Pode depender da comunidade, no entanto.
30512 Dave Clarke

2

Eu não acho que seja importante para os mecanismos de inferência . O algoritmo de unificação é, no entanto, muito útil para inferência de tipo . Esses são dois tipos muito diferentes de inferência.

A inferência de tipos é importante para a ciência da computação, porque os tipos são importantes na teoria das linguagens de programação, que é uma parte significativa da ciência da computação. Os tipos também estão próximos da lógica e são intensivamente usados ​​na prova automatizada de teoremas. Existem implementações de algoritmos de unificação em muitos, se não em todos, assistentes de provas e solucionadores de SMT.

Os mecanismos de inferência estão relacionados à inteligência artificial, que também é importante, mas muito diferente. (Vi links entre aprendizado e lógica, mas isso parece buscado.)


Não acho que a primeira frase seja válida; veja minha resposta.
Raphael

11
Também não concordo com a primeira frase. A resolução (uma especialização da unificação) é o núcleo do Prolog, que é uma das linguagens de implementação mais comuns para sistemas especialistas e outros mecanismos de inferência.
Dave Clarke

@ Rafael e Dave: então você diz que o algoritmo de unificação é usado diretamente nos mecanismos de inferência?
Jmad

@ jmad: Não tenho certeza de que exista o algoritmo de unificação, e também não tenho certeza de que tipo de sistema é chamado de "mecanismo de inferência". Eu sei que a unificação é amplamente usada sempre que surgem lógicas e / ou semânticas formais; veja a resposta de Dave para uma lista.
Raphael

@ Rafael: essa é praticamente a questão que eu queria abordar: parece que os mecanismos de inferência não são sobre a inferência que eu sei sobre tipo e lógica.
Jmad
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.