Logikprogrammierfunktionen und Beispiele

1547
Philip Kelley
Logikprogrammierfunktionen und Beispiele

Das Logikprogrammierung ist ein Programmierparadigma, das Logikschaltungen und nicht nur mathematische Funktionen verwendet, um zu steuern, wie Fakten und Regeln angegeben werden.

Anstelle eines sorgfältig strukturierten Kontrollflusses, der vorschreibt, wann Funktionsaufrufe oder andere Anweisungen ausgeführt werden sollen und wie diese ausgewertet werden sollen, werden die logischen Regeln des Programms als Klauseln oder logische Prädikate geschrieben..

Beispiele für die Logikprogrammierung in Prolog. Quelle: Von Kuldeepsheoran1 - Screenshot, CC BY-SA 3.0, Wikimedia Commons

Dieser Ansatz, der häufig in der evolutionären und genetischen Programmierung verwendet wird, sagt einem Modell im Allgemeinen, welches Ziel erreicht werden soll und nicht wie es erreicht werden soll..

Jede Regel enthält einen Header und einen Body mit einer formalisierten Logik anstelle einer ausführbaren mathematischen Funktion. Beispiel: "Und ist wahr (Header): Wenn C1, C2 und C3 wahr sind (Körper)." Die Fakten oder Ergebnisse werden ohne Körper ausgedrückt, wie "Und es ist wahr".

Bei einigen Programmiersprachen wie Prolog kann jedoch auch eine zwingende Programmierung enthalten sein, um dem Modell mitzuteilen, wie bestimmte Probleme zu lösen sind. Beispiel: "Um Y zu lösen, fügen Sie C1, C2 und C3 hinzu.".

Artikelverzeichnis

  • 1 Eigenschaften der Logikprogrammierung
    • 1.1 Wahrheit und logische Folgerung
    • 1.2 Logik erster Ordnung
    • 1.3 Klauselform
    • 1.4 Künstliche Intelligenz
  • 2 Beispiele für die Logikprogrammierung
    • 2.1 Beispiel 1
    • 2.2 Beispiel 2
  • 3 Referenzen

Eigenschaften der Logikprogrammierung

Die Logikprogrammierung unterscheidet sich wesentlich von den anderen vorhandenen Programmierstrategien. Anstatt einem Computer mit dem Programm Anweisungen zu geben, werden Beziehungen zwischen Objekten hergestellt. Auf diese Weise kann der Computer diese Beziehungen begründen und so zu logischen Lösungen gelangen.

Innerhalb eines Logikprogramms gibt es zwei Hauptcodesätze: Fakten und Regeln. Regeln werden auf Fakten angewendet, um Kenntnisse über die Umwelt zu erlangen.

Wahrheit und logische Folgerung

Logikprogramme können durch zwei wichtige Konzepte entschlüsselt werden: Wahrheit und logische Folgerung. Die Wahrheit kommt heraus, ob die Berechnung im Programm wahr ist oder nicht, unter der Implementierung der Symbole des Programms. Der logische Abzug bestimmt, ob eine logische Klausel eine Folge des Programms ist.

Diese Anweisungen werden immer als Anweisungen und logische Klauseln interpretiert, wobei das Ergebnis ihrer Ausführung eine logische Konsequenz der darin enthaltenen Berechnungen ist..

Logik erster Ordnung

Es ist ein Ableger der Aussagenlogik. Überlegen Sie, ob Objekte aus einer partiellen Weltperspektive, die als Domäne bezeichnet wird, wahr oder falsch sind. Die Logikprogrammierung basiert auf einer Verallgemeinerung der Logik erster Ordnung.

Diese Logik besteht aus Syntax und Semantik. Syntax ist die formale Sprache, mit der Konzepte ausgedrückt werden. Andererseits gibt die Semantik logischer Formeln erster Ordnung an, wie der wahre Wert einer Formel bestimmt werden kann.

Diese Logik basiert auf einem Alphabet und einer Sprache erster Ordnung sowie einer Reihe von Axiomen und Inferenzregeln..

Klauselform

Es ist eine Teilmenge der Logik erster Ordnung. Es hat eine normalisierte Form, in der eine Anweisung durch ein universelles Präfix oder eine Kette universeller Quantifizierer und einen freien Satz von Quantifizierern aus der Klausel definiert wird.

Wenn Sie eine Abfrage an das Programm anfordern, wird der Hauptteil der Klausel berücksichtigt, deren Header möglicherweise übereinstimmt. Dies entspricht der Anwendung einer Inferenzregel in der Logik.

Als ein Schritt in der Folgerung werden zwei Klauseln gewählt, die als Eigenschaft haben, dass eine ein Disjunktiv X (ein positives Literal) und die andere ein Disjunktiv ¬X (ein negatives Literal) enthält. Diese Kompromisse werden als komplementär bezeichnet.

Aus diesen beiden Anfangsklauseln wird eine neue Auflösungsklausel erstellt, die alle Literale außer den komplementären verwendet..

Künstliche Intelligenz

Die Logikprogrammierung ist eine Methode, mit der Computer ableiten können, da sie zur Darstellung von Wissen nützlich ist. Logik wird verwendet, um Wissen und Schlussfolgerungen darzustellen, um damit umzugehen.

Die Logik zur Darstellung von Wissen ist die klausale Form. Es wird verwendet, weil die Logik erster Ordnung gut verstanden wird und alle Rechenprobleme darstellen kann.

Prolog ist eine Programmiersprache, die auf den Ideen der Logikprogrammierung basiert. Die Idee von Prolog ist es, Logik wie eine Programmiersprache aussehen zu lassen.

Beispiele für Logikprogrammierung

Beispiel 1

- Fakt: Ruby ist eine Katze.

- Regel: Alle Katzen haben Zähne.

- Frage: Hat Rubí Zähne??

- Fazit: ja.

Die Regel „Alle Katzen haben Zähne“ kann auf Rubí angewendet werden, da es eine Tatsache gibt, die besagt, dass „Rubí eine Katze ist“. Dieses Beispiel wurde nicht mit einer echten Programmiersprachen-Syntax geschrieben.

Beispiel 2

Dieses Beispiel ist in Prolog geschrieben, da es eine der beliebtesten logischen Programmiersprachen ist:

- weiblich (alissa).

- männlich (Bobby).

- männlich (Carlos).

- weiblich (doris).

- son_of (doris, carlos).

- Sohn von (Carlos, Bobby).

- son_of (doris, alissa).

- Vater von (F, P): - männlich (F), Sohn von (P, F).

Dieses Programm ist schwer zu lesen, da sich Prolog deutlich von anderen Sprachen unterscheidet. Jede Codekomponente, die "weiblich (alissa)" ähnelt. es ist eine Tatsache.

Eine Regel ist "Vater von (F, P): - männlich (F), Sohn von (P, F)". Das Symbol ": -" kann als "ist wahr wenn" gelesen werden. Großbuchstaben bedeuten, dass Variablen auf jedes Objekt angewendet werden können, sodass F für Carlos, Doris, Alissa oder Bobby stehen kann. Dieser Code kann übersetzt werden als:

- Alissa ist eine Frau.

- Bobby ist ein Mann.

- Carlos ist ein Mann.

- Doris ist eine Frau.

- Doris ist die Tochter von Carlos.

- Carlos ist Bobbys Sohn.

- Doris ist Alissas Tochter.

- "F ist der Vater von P" ist wahr, wenn F ein Mann ist und wenn P der Sohn von F ist.

Beratung

Angenommen, Sie möchten das Programm für weitere Informationen konsultieren. Sie können nachfragen, um herauszufinden, mit wem Vater Bobby zusammen ist :? - dad_of (bobby, X). Das System zeigt die folgende Antwort an: X = Carlos.

In diesem Fall wird eine Beziehung übergeben, bei der einer ihrer Werte eine Variable ist. Was Prolog tat, war, verschiedene Objekte auf diese Beziehung anzuwenden, bis eines von ihnen logisch solide war.

Carlos 'einziger Vater ist Bobby und Bobby ist männlich. Dies erfüllte die Regel "Vater von (F, P): - männlich (F), Sohn von (P, F)". Wenn X gleich "Carlos" ist, ist die Logik solide.

Andere Anfragen

Andere allgemeinere Abfragen können an Prolog gestellt werden, wodurch das System mehrere Ergebnisse generiert:

- ?- Vater von (Vater, Kind).

- Vater = Bobby

- Kind = Carlos

- Vater = Carlos

- Kind = Doris

Wie beobachtet wurde, erfordert die Logikprogrammierung nicht die Information, dass Alissa oder Bobby Menschen sind, um Wissen über sie zu erlangen. Tatsächlich muss nicht angegeben werden, dass es ein Konzept gibt, das Person genannt wird.

In den meisten nicht logischen Programmiersprachen müssten Sie diese Konzepte zuerst definieren, bevor Sie Programme schreiben können, die Informationen über Personen verarbeiten..

Verweise

  1. Tiefe KI (2020). Logikprogrammierung. Entnommen aus: deepai.org.
  2. Wikiversity (2020). Theorie der Programmiersprachen / Logikprogrammierung. Entnommen aus: en.wikiversity.org.
  3. Imperial College London (2006). Logikprogrammierung. Entnommen aus: doc.ic.ac.uk..
  4. Jia-Huai You (2020). Einführung in die Logikprogrammierung. Universität von Alberta. Entnommen aus: eng.ucy.ac.cy.
  5. C2 Wiki (2020). Logikprogrammierung. Entnommen aus: wiki.c2.com.

Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.