Logische programmeerkenmerken en voorbeelden

Logische programmeerkenmerken en voorbeelden

De Logische programmering Het is een programmeerparadigma dat logische circuits gebruikt in plaats van alleen wiskundige functies om te bepalen hoe de feiten en regels worden vermeld.

In plaats van een zorgvuldig gestructureerde controlestroom die bepaalt wanneer ze moeten worden uitgevoerd en hoe oproepen naar functies of andere instructies te evalueren, worden de logische regels van het programma geschreven als logische clausules of predicaten.

Voorbeelden van logische programmering in prolog. Bron: door KulDeepsheoran1 - Screenshot, CC door -SA 3.0, Wikimedia Commons

Deze benadering, die vaak wordt gebruikt in genetische en evolutionaire programmering, vertelt over het algemeen een model welk doel te bereiken, in plaats van hoe deze te bereiken.

Elke regel bevat een koptekst en een lichaam met een geformaliseerde logica, in plaats van een uitvoerbare wiskundige functie. Bijvoorbeeld: "En het is waar (kop): als C1, C2 en C3 waar zijn (lichaam)". De feiten of resultaten worden uitgedrukt zonder een lichaam, zoals "en is waar".

Met enkele programmeertalen zoals prolog echter, zoals proloog. Bijvoorbeeld "om C1, C2 en C3 op te lossen en toe te voegen".

[TOC]

Kenmerken van logisch programmeren

Logische programmering verschilt aanzienlijk van de andere bestaande programmeerstrategieën. In plaats van instructies voor een computer met het programma, worden relaties tussen objecten gevestigd. Op deze manier kan de computer deze relaties redeneren en dus logische oplossingen bereiken.

Binnen een logisch programma zijn er twee hoofdsets van code: feiten en regels. De regels zijn van toepassing op de feiten om kennis over de omgeving te verkrijgen.

Waarheid en logische aftrek

Logische programma's kunnen worden ontcijferd door twee belangrijke concepten: waarheid en logische aftrek. De waarheid komt als de berekening in het programma waar is of niet, onder de implementatie van de programmasymbolen. Logische aftrek bepaalt of een logische clausule een gevolg is van het programma.

Kan u van dienst zijn: soorten toepassingssoftware

Deze instructies zullen altijd worden geïnterpreteerd als logische zinnen en clausules, het resultaat van de uitvoering ervan is een logisch gevolg van de berekeningen die bevatten.

Eerste bestelling Logica

Het is een tak van propositionele logica. Overweeg of objecten waar of onwaar zijn vanuit een gedeeltelijk perspectief van de wereld, Domein genoemd. Logische programmering is gebaseerd op een generalisatie van de eerste logica van de eerste orde.

Deze logica bestaat uit syntaxis en semantiek. Syntaxis is de formele taal die wordt gebruikt om concepten uit te drukken. Aan de andere kant geeft de semantiek van de eerste -order logische formules aan hoe de werkelijke waarde van elke formule te bepalen.

Deze logica is gebaseerd op een alfabet en een eerste -ordertaal, naast een reeks axioma's en regels van inferentie.

Clausale vorm

Het is een subset van de eerste logica van de eerste orde. Het heeft een genormaliseerde vorm waarbij een zin wordt gedefinieerd door een universeel voorvoegsel of keten van universele kwantificaties, en een vrije set van clausule kwantificatoren.

Bij het aanvragen van een consult van het programma zal de hoofdtekst van de clausule wiens kopje samenvallen worden overwogen. Dit is hetzelfde als het toepassen van een inferentieregel in logica.

Als een overgang van gevolgtrekking worden twee clausules gekozen die als een eigenschap hebben dat de ene een X -dilemma bevat (een positief letterlijk) en de andere bevat een dilemma ¬x (een negatief letterlijk). Dit dilemma staat bekend als complementair.

Uit deze twee eerste clausules wordt een nieuwe resolutieve clausule geconstrueerd met behulp van alle literalen, behalve de complementaire.

Kunstmatige intelligentie

Logische programmering is een methode die wordt gebruikt om computers te zoeken om af te leiden, omdat het nuttig is om kennis weer te geven. Logica wordt gebruikt om kennis en gevolgtrekking weer te geven om ermee om te gaan.

Kan u van dienst zijn: nticx

De logica die wordt gebruikt om kennis weer te geven, is de clausule vorm. Het wordt gebruikt omdat de eerste logica goed wordt begrepen en in staat is om alle rekenproblemen weer te geven.

Prolog is een programmeertaal die is gebaseerd op ideeën voor logische programmering. Het idee van prolog is om logica een programmeertaal te laten lijken.

Logische programmeervoorbeelden

voorbeeld 1

- Feit: Rubí is een kat.

- Regel: alle katten hebben tanden.

- Overleg: Rubí heeft tanden?

- Conclusie: ja.

De regel "alle katten hebben tanden" kan worden toegepast op Rubí, omdat er een feit is dat zegt "Rubí is een kat". Dit voorbeeld is niet geschreven met een syntaxis van een echte programmeertaal.

Voorbeeld 2

Dit voorbeeld kan in Prolog worden geschreven, omdat het een van de bekendste logische programmeertalen is:

- Vrouw (Alissa).

- man (Bobby).

- man (Carlos).

- Vrouw (Doris).

- SON_ (Doris, Carlos).

- Son_ (Carlos, Bobby).

- SON_ (Doris, Alissa).

- Vader_ (f, p):- man (f), son_ (p, f).

Dit programma is moeilijk te lezen, omdat Prolog opmerkelijk verschilt van andere talen. Elk onderdeel van de code die lijkt op 'Vrouw (Alissa)." het is een feit.

Een regel is "vader_ (f, p):- man (f), son_ (p, f)". Het symbool ":-" kan worden gelezen als "het is waar als". De hoofdletters betekenen dat de variabelen op elk object kunnen worden toegepast, zodat F kan betekenen dat Carlos, Doris, Alissa of Bobby. Deze code kan worden vertaald als:

- Alissa is een vrouw.

- Bobby is een man.

- Carlos is een man.

- Doris is een vrouw.

Het kan u van dienst zijn: Output -apparaten: kenmerken, wat zijn het gebruik, typen, voorbeelden

- Doris is de dochter van Carlos.

- Carlos is de zoon van Bobby.

- Doris is de dochter van Alissa.

- "F is de vader van P" is waar als f een man is en als p de zoon van f is.

Overleg

Stel dat u het programma wilt raadplegen voor meer informatie. Je kunt proberen te vragen dat je uit wie vader Bobby is met: ?- Vader_ (Bobby, x). Het systeem geeft het volgende antwoord aan: x = Carlos.

In dit geval gebeurt er een relatie waarbij een van de waarden een variabele is. Wat hij deed was verschillende objecten toepassen op deze relatie totdat een van hen logisch solide was.

Carlos 'enige vader is Bobby, en Bobby is een man. Dit bevredigde de regel.". Wanneer X gelijk is aan "Carlos", is de logica solide.

Andere overleg

Andere meer algemene overleg kunnen worden gedaan aan Prolog, waardoor het systeem meerdere resultaten genereert:

- ?- Vader_ (vader, kind).

- Vader = Bobby

- Kind = Carlos

- Vader = Carlos

- Kind = doris

Zoals kan worden waargenomen, vereist logische programmering geen informatie dat Alissa of Bobby mensen zijn om kennis over hen te verkrijgen. In feite is het niet nodig om aan te geven dat er een concept is dat persoon wordt genoemd.

In de meeste niet -logische programmeertalen moeten deze concepten eerst worden gedefinieerd voordat ze programma's schrijven die informatie over mensen verwerken.

Referenties

  1. Deep AI (2020). Logische programmering. Genomen van: Deepai.borg.
  2. Wikiversity (2020). Theorie van programmeertalen/logische programmering. Genomen van: in.Wikiversity.borg.
  3. Imperial College London (2006). Logische programmering. Genomen uit: Doc.IC.AC.Uk.
  4. Jia-Huai You (2020). Inleiding tot logisch programmmmmm. Universiteit van Alberta. Genomen van: Eng.Ucy.AC.Cy.
  5. C2 Wiki (2020). Logische programmering. Genomen van: Wiki.C2.com.