Antiunificação (ciências da computação)
Antiunificação é o processo de construção de uma generalização comum a duas expressões simbólicas. Como na unificação, várias estruturas são distinguidas dependendo de qual das expressões (também denominado termos) são permitidas e quais expressões são consideradas iguais. Se as variáveis que representam funções são permitidas em uma expressão, o processo é chamado de antiunificação de ordem superior, caso contrário, de antiunificação de primeira ordem. Se a generalização requer a existência de uma instância literalmente igual para cada expressão de entrada, o processo é chamado de antiunificação sintática, caso contrário, de E-antiunificação, ou módulo da teoria da antiunificação.
Um algoritmo de antiunificação deve calcular, para expressões dadas, uma generalização completa e mínima de um conjunto, isto é, um conjunto, abrangendo todas as generalizações, e que não contenha membros redundantes, respectivamente. Dependendo da estrutura, uma generalização completa e mínima pode ter um, finitamente muitos, ou, possivelmente, um número infinito de membros, ou pode não existir;[note 1] ela não pode ser vazia, uma vez que uma generalização trivial existe em qualquer caso. Para a antiunificação de primeira-ordem sintática, Gordon Plotkin[1][2] apresentou um algoritmo que calcula uma generalização completa e mínima de um conjunto unitário, o chamado menor generalização geral (mgg).
Antiunificação não deve ser confundido com o desunificação. O segundo significa o processo de resolução de sistemas deinequações, que é de encontrar valores para as variáveis de tal forma que todas as inequações sejam satisfeitas.[note 2] Esta tarefa é bastante diferente da busca de generalizações.
Pré-requisitos
editarFormalmente, uma abordagem de antiunificação pressupõe
- Um conjunto infinito V de variáveis. Para antiunificação de ordem superior, é conveniente escolher V disjunto do conjunto de variáveis ligadas em termos lambda.
- Um conjunto T de termos tal que V ⊆ T. Para antiunificação de primeira ordem ou de ordem superior, T é usualmente o conjunto de termos de primeira ordem (termos construídos a partir de variáveis e símbolos de função) e termos lambda (termos contendo variáveis de ordem superior), respectivamente.
- Uma relação de equivalência em , indicando quais termos são considerados iguais. Para antiunificação de ordem superior, usualmente se e são alpha equivalentes. Para primeira ordem E-antiunificação, reflete o conhecimento base sobre certos símbolos de função; por examplo, se é considerado comutativo, se resulta de trocando os argumentos de em algumas(possivelmente todas) ocorrências.[note 3] Se não houver nenhum conhecimento base, então apenas literalmente, ou sintaticamente, termos idênticos são considerados iguais.
Termo de primeira ordem
editarDado um conjunto de símbolos variáveis, um conjunto de símbolos de constante e conjuntos de símbolos de funções -árias, também chamado de operador de símbolos, para cada número natural o conjunto de (não-ordenado de primeira ordem) termos é definido recursivamente para ser o menor conjunto com as seguintes propriedades:[3]
- cada símbolo de variável é um termo: V ⊆ T,
- cada símbolo de constante é um termo: C ⊆ T,
- para todos os n termos t1,...,tn, e a cada símbolo de função n-ária f ∈ Fn, um termo maior pode ser construído.
Por exemplo, se x ∈ V é um símbolo de variável, 1 ∈ C é um símbolo de constante, e add ∈ F2 é um símbolo de função binária e, então, x ∈ T, 1 ∈ T, e (por isso) add(x,1) ∈ T pela primeira, segunda e terceira regra de construção do termo, respectivamente. O último termo é normalmente escrito como x+1, usando notação infixa e o mais comum símbolo operador + por conveniência.
Termo de ordem superior
editarSubstituição
editarUma substituição é um mapeamento de variáveis para termos; a notação se refere a uma substituição mapeando cada variável para o termo , para , e cada outra variável para ela mesma. Aplicando essa substitutição a um termo t é escrito em notação pós-fixa como ; isso significa (simultaneamente) realocar cada ocorrência de cada variável no termo t por . O resultado tσ de aplicar uma substituição σ a um termo t é chamada uma instância daquele termo t. Como um exemplo de primeira ordem, aplicando a substituição ao termo
f( x , a, g( z ), y) resulta em f( h(a,y) , a, g( b ), y) .
Generalização, especialização
editarSe um termo possui uma instância equivalente a um termo , isto é, se para alguma substituição , então é chamado de mais geral que , e é chamado de mais especial que, ou subsumido por, . Por exemplo, é mais geral que se é comutativo, desde então .
Se é a identidade literal (sintática) dos termos, um termo pode ser tanto mais geral como mais especial que outro somente se ambos os termos diferem apenas nos nomes de suas variáveis, não em suas estruturas sintáticas; tais termos são chamados variantes, ou renomeados de cada outro. Por exemplo, é um variante , desde que e . Contudo, não é um variante de , já que nenhuma substituição pode transformar o último termo no primeiro, embora atinge a direção inversa. O último termo é, portanto, mais especial do que o anterior.
Uma substituição é mais especial que, ou subsumida por, uma substituição se é mais especial que para cada variável . Por exemplo, é mais especial , desde que e seam mais especiais que e , respectivamente.
Problema de antiunificação, conjunto de generalização
editarUm problema de antiunificação é um par de termos. Um termo é uma generalização comum, ou antiunificador, de e se e para alguma substituição . Para um dado problema de antiunificação, um conjunto de antiunificadores é chamado completo se cada generalização subsume algum termo ; o conjunto é chamado mínimo se nenhum de seus membros subsume outro.
Antiunificação sintática de primeira ordem
editarA estrutura de antiunificação sintática de primeira ordem é baseada em sendo o conjunto de termos de primeira ordem (sobre dado algum conjunto de variáveis, de constantes e de símbolos de função -ária) e em sendo igualdade sintática. Nesta estrutura, cada problema de antiunificação tem uma completo, e obviamente mínimo, conjunto unitário solução . Seu membro é chamado de menor generalização geral (mgg) do problema, ele tem uma instância sintaticamente igual a e uma outra sintaticamente igual a . Qualquer generalização comum de e subsume . O mgg é único para cada variante: se e são ambos conjuntos solução completos e mínimos do mesmo problema de antiunificação sintática, então e para algum termo e , que sãorenomeados de cada outro.
Plotkin[1][2] tem dado um algoritmo para computar o lgg de dois termos dados. Isso pressupõe um mapeamento injetivo , isto é, um mapeamento atribuindo cada par de termos uma própria variável , tal que dois pares não compartilham da mesma variável. [note 4] O algoritmo consiste em duas regras:
se a regra anterior não for aplicável
Por exemplo, ; esta menor generalização geral reflete a propriedade comum de ambas entradas serem números quadrados.
Plotkin usou seu algoritmo para computar o "menor generalização geral relativa (mggr)" de dois conjuntos de cláusulas na lógica de primeira ordem, que foi a base da abordagem Golem para programação de lógica indutiva.
Módulo da teoria da antiunificação de primeira ordem
editar- Jacobson, Erik (junho de 1991), Unification and Anti-Unification, Technical Report
- Østvold, Bjarte M. (abril de 2004), A Functional Reconstruction of Anti-Unification, NR Note, DART/04/04, Norwegian Computing Center
- Boytcheva, Svetla; Markov, Zdravko (2002). "An Algorithm for Inducing Least Generalization Under Relative Implication".
- Kutsia, Temur; Levy, Jordi; Villaret, Mateu (2014). "Anti-Unification for Unranked Terms and Hedges" (PDF). Journal of Automated Reasoning. Springer. 52 (2): 155–190. doi:10.1007/s10817-013-9285-6. Software.
Teorias equacionais
editar- Uma operação associativa e comutativa: Pottier, Loic (fevereiro de 1989), Algorithms des completion et generalisation en logic du premier ordre; Pottier, Loic (1989), Generalisation de termes en theorie equationelle – Cas associatif-commutatif, INRIA Report, 1056, INRIA
- Teoria comutativa: Franz Baader (1991). "Unification, Weak Unification, Upper Bound, Lower Bound, and Generalization Problems". Proc. 4th Conf. on Rewriting Techniques and Applications (RTA). LNCS. 488. Springer. pp. 86–91.
- Monóides livres: Biere, A. (1993), Normalisierung, Unifikation und Antiunifikation in Freien Monoiden (PDF), Univ. Karlsruhe, Germany
- Classes regulares de congruência: Heinz, Birgit (dezembro de 1995), Anti-Unifikation modulo Gleichungstheorie und deren Anwendung zur Lemmagenerierung, ISBN 3-486-23873-6, GMD Berichte, 261, TU Berlin6; Burghardt, Jochen (2005). "E-Generalization Using Grammars[ligação inativa]" (PDF). Artificial Intelligence Journal. Elsevier. 165 (1): 1–35. doi:10.1016/j.artint.2005.01.008.
- A-, C-, AC-, ACU- Teorias com tipos ordenados: Alpuente, Maria; Escobar, Santiago; Espert, Javier; Meseguer, Jose (2014). "A modular order-sorted equational generalization algorithm" (PDF). Information and Computation. Elsevier. 235: 98–136. doi:10.1016/j.ic.2014.01.006.
Antiunificação ordenada de primeira ordem
editar- Tipos taxonômicos: Frisch, Alan M.; Page, David (1990). "Generalisation with Taxonomic Information". AAAI: 755–761.; Frisch, Alan M.; Page Jr., C. David (1991). "Generalizing Atoms in Constraint Logic". Proc. Conf. on Knowledge Representation.; Frisch, A.M.; Page, C.D. (1995). "Building Theories into Instantiation". In Mellish, C.S. Proc. 14th IJCAI. Morgan Kaufmann. pp. 1210–1216.
- Termos de destaque: Plaza, E. (1995). "Cases as Terms: A Feature Term Approach to the Structured Representation of Cases". Proc. 1st International Conference on Case-Based Reasoning (ICCBR). LNCS. 1010. Springer. pp. 265–276. ISSN 0302-9743.
- Idestam-Almquist, Peter (Jun 1993). "Generalization under Implication by Recursive Anti-Unification". Proc. 10th Conf. on Machine Learning. Morgan Kaufmann. pp. 151–158.
- Fischer, Cornelia (May 1994), PAntUDE – An Anti-Unification Algorithm for Expressing Refined Generalizations, Research Report, TM-94-04, DFKI
- A-, C-, AC-, ACU-theories with ordered sorts: ver acima
Antiunificação nominal
editar- Baumgartner, Alexander; Kutsia, Temur; Levy, Jordi; Villaret, Mateu (Jun 2013). Nominal Anti-Unification. Proc. RTA 2015. Vol. 36 of LIPIcs. Schloss Dagstuhl, 57-73. Software.
Aplicações
editar- Análise do programa: Bulychev, Peter; Minea, Marius (2008). "Duplicate Code Detection Using Anti-Unification".; Bulychev, Peter E.; Kostylev, Egor V.; Zakharov, Vladimir A. (2009). "Anti-Unification Algorithms and their Applications in Program Analysis".
- Fatoração de código: Cottrell, Rylan (Sep 2008), Semi-automating Small-Scale Source Code Reuse via Structural Correspondence, Univ. Calgary
- Prova indutiva: Heinz, Birgit (1994), Lemma Discovery by Anti-Unification of Regular Sorts, Technical Report, 94-21, TU Berlin
- Extração de informação: Thomas, Bernd (1999). "Anti-Unification Based Learning of T-Wrappers for Information Extraction". AAAI Technical Report. WS-99-11: 15–20.
- Raciocínio baseado em casos: Armengol, Eva; Plaza, Enric (2005). "Using Symbolic Descriptions to Explain Similarity on CBR".
Antiunificação de árvores e aplicações linguísticas
editar- Árvores sintáticas para sentenças podem ser sujeitas a menor generalização geral para derivar uma subárvore sintática máxima comum para aprendizado de línguas. Existem aplicações em busca e classificação de texto.[4]
- Florestas sintáticas para parágrafos como grafos podem ser sujeitas a menor generalização geral.[5]
- Operação de generalização comuta com a operação de transição de um nível sintático (árvores sintáticas) a um semântico (expressões simbólicas). O último pode ser sujeito à antiunificação convencional.[6][7]
Antiunificação de ordem superior
editar- Cálculos de construções: Frank Pfenning (Jul 1991). "Unification and Anti-Unification in the Calculus of Constructions" (PDF). Proc. 6th LICS. Springer. pp. 74–85.
- Cálculo lambda simplesmente digitado (Entrada: Termos na eta-longa beta-normal forma. Saída: padrões de ordem superior): Baumgartner, Alexander; Kutsia, Temur; Levy, Jordi; Villaret, Mateu (Jun 2013). A Variant of Higher-Order Anti-Unification. Proc. RTA 2013. Vol. 21 of LIPIcs. Schloss Dagstuhl, 113-127. Software.
- Substituições restritas de ordem superior: Wagner, Ulrich (abril de 2002), Combinatorically Restricted Higher Order Anti-Unification, TU Berlin; Schmidt, Martin (setembro de 2010), Restricted Higher-Order Anti-Unification for Heuristic-Driven Theory Projection (PDF), Univ. Osnabrück, Germany, ISSN 1610-5389, PICS-Report, 31-2010
Notas
editarReferências
- ↑ Complete generalization sets always exist, but it may be the case that every complete generalization set is non-minimal.
- ↑ Comon referred in 1986 to inequation-solving as "anti-unification", which nowadays has become quite unusual.
- ↑ E.g.
- ↑ From a theoretical viewpoint, such a mapping exists, since both and are countably infinite sets; for practical purposes, can be built up as needed, remembering assigned mappings in a hash table.
Referências
- ↑ a b Plotkin, Gordon D. (1970). Meltzer, B.; Michie, D., eds. «A Note on Inductive Generalization». Edinburgh University Press. Machine Intelligence. 5: 153–163
- ↑ a b Plotkin, Gordon D. (1971). Meltzer, B.; Michie, D., eds. «A Further Note on Inductive Generalization». Edinburgh University Press. Machine Intelligence. 6: 101–124
- ↑ C.C. Chang; H. Jerome Keisler (1977). A. Heyting; H.J. Keisler; A. Mostowski; A. Robinson; P. Suppes, eds. Model Theory. Col: Studies in Logic and the Foundation of Mathematics. 73. [S.l.]: North Holland
- ↑ Boris Galitsky; Josep Lluís de la Rose; Gabor Dobrocsi (2011). "Mapping Syntactic to Semantic Generalizations of Linguistic Parse Trees". FLAIRS Conference.
- ↑ Boris Galitsky; Kuznetsov SO; Usikov DA (2013). "Parse Thicket Representation for Multi-sentence Search". Lecture Notes in Computer Science. 7735: 1072–1091. doi:10.1007/978-3-642-35786-2_12
- ↑ Boris Galitsky; Gabor Dobrocsi; Josep Lluís de la Rosa; Sergei O. Kuznetsov (2010). "From Generalization of Syntactic Parse Trees to Conceptual Graphs". Lecture Notes in Computer Science. 6208: 185–190. doi:10.1007/978-3-642-14197-3_19
- ↑ Boris Galitsky; de la Rosa JL; Dobrocsi G. (2012). "Inferring the semantic properties of sentences by mining syntactic parse trees". Data & Knowledge Engineering. 81-82: 21–45. doi:10.1016/j.datak.2012.07.003.