Domanda

Sto imparando Automated teoremi / SMT risolutori / Assistenti prova da me e inviare una serie di domande sul processo, a partire da qui .

Continuo a leggere su dell'Unità Algoritmo .

  • Che cos'è e perché è così importante per inferenza Motori ?
  • Perché è così importante per Computer Science?
È stato utile?

Soluzione

L'unificazione è un concetto così fondamentale in informatica che forse al momento abbiamo anche lo diamo per scontato. Ogni volta che abbiamo una regola o un'equazione o un modello e vogliamo applicarla ad alcuni dati, l'unificazione è utilizzato per specializzarsi la regola per i dati. O se vogliamo unire due regole generali, ma si sovrappongono, l'unificazione ci fornisce la più regola combinato generale. Unificazione è al centro di

  • sperimentatori Teorema e assistenti prova, comprendono alcune sulla base di ordine superiore unificazione.
  • implementazioni Prolog (come Resolution).
  • Tipo algoritmi di inferenza.
  • Linguistica computazionale / elaborazione del linguaggio naturale.
  • Term sistemi come Maude, che può essere utilizzato come base di programmare semantica del linguaggio riscrittura.
  • database deduttivi.
  • I sistemi esperti o più in generale l'intelligenza artificiale.
  • sistemi di computer algebra.
  • Il pattern matching in linguaggi funzionali (almeno in parte ... solo corrispondenza).
  • Alcune analisi si avvicina.
  • Alcuni linguaggi di interrogazione, in particolare che coinvolgono il Semantic Web.

Altri suggerimenti

assistenti di prova come il lavoro Isabelle / HOL a livello sintattico su un calcolo logico. Immaginate di avere la modus ponens regola (MP)

$ \ qquad \ displaystyle P \ Q, P \ \ Longrightarrow \ Q $

e l'obiettivo a prova

$ \ qquad \ displaystyle (un \ lor b) \ a (c \ terre d), un \ lor b \ \ overset {!} {\ Longrightarrow} c \ terra d $

Noi esseri umani vede subito che questo segue con modus ponens, ma la macchina deve corrispondere obiettivo di regola sintatticamente (wether si fa apply rule mp o apply simp), e questo è ciò che fa l'unificazione. L'algoritmo trova $ \ varphi $ con $ \ varphi (P) = a \ lor b $ e $ \ varphi (Q) = c \ terre d $, un'istanza la regola e l'applica.

La cosa buona di metodi assistenti come simp ora è che se il tuo obiettivo è

$ \ qquad \ displaystyle (un \ lor b) \ a (c \ terre d), un \ \ overset {!} {\ Longrightarrow} d $

che troveranno una opportuna sequenza di applicazioni di regole MP, $ P \ terra Q \ Longrightarrow P $ e $ P \ Longrightarrow P \ lor Q $ con unificazioni compatibili per le rispettive fasi e risolvere l'obiettivo.


Notazione: con $ \ Gamma = \ {\ varphi_1, \ dots, \ varphi_n \} $ un insieme di formule logiche, la notazione

$ \ qquad \ Gamma \ Longrightarrow \ psi $

significa quanto segue:

Se ho derivato / dimostrato tutte le formule in $ \ Gamma $ (cioè esse sono valida ), allora questa regola afferma che $ \ psi $ è anche valido.

In un certo senso, la regola $ \ Gamma \ Longrightarrow \ psi $ è l'ultimo passo di un (lungo) la prova a $ \ psi $. Le prove non sono altro che le catene di tali applicazioni regola.

Si noti che regole di solito contengono variabili schematici ($ P $ e $ Q $ nel di cui sopra) che possono essere sostituiti da arbitraria formule fino a quando la stessa variabile è sostituito con la stessa formula in tutti i casi; il risultato di tale formato è l'istanza regola concreta (o intuitivamente, un passo a prova). Questa sostituzione è sopra indicato con $ \ varphi $ che è stato trovato per l'unificazione.

Spesso le persone usano $ \ modelli $ invece di $ \ Longrightarrow $.

Non credo sia importante motore inferenziale . L'algoritmo di unificazione è comunque molto utile per inferenza di tipo . Si tratta di due tipi molto diversi di inferenza.

Tipo inferenza è importante per l'informatica perché tipo sono importanti nella teoria dei linguaggi di programmazione, che è una parte significativa di informatica. Tipi sono anche vicino alla logica e sono ampiamente utilizzati in lievitazione teorema automatizzato. Ci sono implementazioni di algoritmi di unificazione in molti, se non tutti, gli assistenti di prova e risolutori di SMT.

motori

??inferenza sono legate all'intelligenza artificiale, che è anche importante, ma molto diverso. (Ho visto i legami tra l'apprendimento e la logica, ma questo sembra inverosimile.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top