Warum ist die Vereinheitlichung für Inferenzmotoren so wichtig?

Antworten:

11

Vereinheitlichung ist ein so grundlegendes Konzept in der Informatik, dass wir es vielleicht zu gegebener Zeit sogar für selbstverständlich halten. Jedes Mal, wenn wir eine Regel oder Gleichung oder ein Muster haben und es auf einige Daten anwenden möchten, wird die Regel durch Vereinheitlichung auf die Daten spezialisiert. Oder wenn wir zwei allgemeine, sich jedoch überschneidende Regeln kombinieren möchten, liefert uns die Vereinigung die allgemeinste kombinierte Regel. Die Vereinigung ist der Kern von

  • Theorembeweiser und Beweisassistenten umfassen einige, die auf einer Vereinheitlichung höherer Ordnung basieren.
  • Prolog-Implementierungen (als Resolution).
  • Inferenzalgorithmen eingeben.
  • Computerlinguistik / Verarbeitung natürlicher Sprache.
  • Term Rewriting-Systeme wie Maude, die als Grundlage für die Semantik von Programmiersprachen verwendet werden können.
  • Deduktive Datenbanken.
  • Expertensysteme oder allgemeiner Künstliche Intelligenz.
  • Computer-Algebra-Systeme.
  • Pattern Matching in funktionalen Sprachen (zumindest teilweise ... nur Matching).
  • Einige Parsing-Ansätze.
  • Einige Abfragesprachen, insbesondere das Semantic Web.
Dave Clarke
quelle
8

Beweisassistenten wie Isabelle / HOL arbeiten syntaktisch auf einem logischen Kalkül. Stellen Sie sich vor, Sie haben die Modus-Ponens-Regel (MP).

PQ.,P  Q.

und das Beweisziel

(einb)(cd),einb !cd

apply rule mpapply simpφφ(P)=einbφ(Q.)=cd

Das Gute an den Methoden der Assistenten simpist, dass es Ihr Ziel ist

(einb)(cd),ein !d

PQ.PPPQ.


Γ={φ1,,φn}

Γψ

bedeutet folgendes:

Γψ

Γψψ

PQ.φ

Raphael
quelle
3
2

Ich denke nicht, dass es wichtig ist, Motoren abzuleiten . Der Vereinigungsalgorithmus ist jedoch sehr hilfreich für die Typinferenz . Dies sind zwei sehr unterschiedliche Arten von Schlussfolgerungen.

Typinferenz ist für die Informatik wichtig, da Typen in der Theorie der Programmiersprachen, die einen bedeutenden Teil der Informatik ausmacht, wichtig sind. Typen sind auch logisch nah und werden intensiv beim automatisierten Beweis von Theoremen verwendet. Es gibt Implementierungen von Vereinigungsalgorithmen in vielen, wenn nicht allen Proof-Assistenten und SMT-Solvern.

Inferenzmotoren beziehen sich auf künstliche Intelligenz, was ebenfalls wichtig, aber sehr unterschiedlich ist. (Ich habe Zusammenhänge zwischen Lernen und Logik gesehen, aber das scheint herbeigeführt.)

jmad
quelle
Ich denke nicht, dass der erste Satz gültig ist; Siehe meine Antwort.
Raphael
1
Ich bin auch nicht einverstanden mit dem ersten Satz. Resolution (eine Spezialisierung der Vereinheitlichung) ist der Kern von Prolog, einer der häufigsten Implementierungssprachen für Expertensysteme und andere Inferenz-Engines.
Dave Clarke
@Raphael und Dave: Sie sagen also, der Vereinigungsalgorithmus wird direkt in Inferenz-Engines verwendet?
Jmad
@jmad: Ich bin mir nicht sicher, ob es den Vereinigungsalgorithmus gibt, und ich bin mir auch nicht sicher, welche Art von Systemen "Inferenzmaschine" genannt werden. Ich weiß, dass die Vereinheitlichung überall dort weit verbreitet ist, wo Logik und / oder formale Semantik auftauchen. Siehe Daves Antwort für eine Liste.
Raphael
@Raphael: Das ist so ziemlich das Thema, das ich ansprechen wollte: Es scheint, dass es bei Inferenz-Engines nicht um die Inferenz geht, die ich über Typ und Logik kenne.
Jmad