Logiske programmeringsfunksjoner og eksempler

4443
Basil Manning
Logiske programmeringsfunksjoner og eksempler

De logikk programmering er et programmeringsparadigme som bruker logiske kretser i stedet for bare matematiske funksjoner for å kontrollere hvordan fakta og regler er oppgitt.

I stedet for en nøye strukturert strøm av kontroll som dikterer når du skal utføre og hvordan du skal evaluere funksjonsanrop eller andre instruksjoner, er de logiske reglene i programmet skrevet som ledd eller logiske predikater..

Eksempler på logisk programmering i Prolog. Kilde: Av Kuldeepsheoran1 - skjermbilde, CC BY-SA 3.0, wikimedia commons

Denne tilnærmingen, som ofte brukes i evolusjonær og genetisk programmering, forteller generelt en modell hvilket mål å oppnå, snarere enn hvordan man skal oppnå det..

Hver regel inneholder en overskrift og en kropp med en formalisert logikk, snarere enn en kjørbar matematisk funksjon. For eksempel "Og er sant (overskrift): hvis C1, C2 og C3 er sanne (kropp)." Fakta eller resultat uttrykkes uten kropp, for eksempel "Og det er sant".

Imidlertid, med noen programmeringsspråk som Prolog, kan det også inkluderes viktig programmering for å fortelle modellen hvordan visse problemer skal løses. For eksempel "For å løse Y, legg til C1, C2 og C3".

Artikkelindeks

  • 1 Kjennetegn ved logisk programmering
    • 1.1 Sannhet og logisk deduksjon
    • 1.2 Førsteordens logikk
    • 1.3 Klausulskjema
    • 1.4 Kunstig intelligens
  • 2 Eksempler på logisk programmering
    • 2.1 Eksempel 1
    • 2.2 Eksempel 2
  • 3 Referanser

Kjennetegn ved logisk programmering

Logisk programmering er vesentlig forskjellig fra de andre eksisterende programmeringsstrategiene. I stedet for å gi instruksjoner til en datamaskin med programmet, etableres forholdet mellom objekter. På denne måten kan datamaskinen resonnere disse forholdene og dermed nå logiske løsninger.

Innenfor et logikkprogram er det to hovedsett med kode: fakta og regler. Regler brukes på fakta for å få kunnskap om miljøet.

Sannhet og logisk deduksjon

Logiske programmer kan dechifiseres gjennom to viktige begreper: sannhet og logisk deduksjon. Sannheten kommer ut hvis beregningen i programmet er sant eller ikke, under implementeringen av programmets symboler. Logisk deduksjon avgjør om en logisk klausul er en konsekvens av programmet.

Disse instruksjonene vil alltid bli tolket som utsagn og logiske ledd, og resultatet av utførelsen av dem er en logisk konsekvens av beregningene den inneholder..

Første ordens logikk

Det er et utløp av proposisjonslogikk. Vurder om objekter er sanne eller falske fra et delvis verdensperspektiv, kalt et domene. Logikkprogrammering er basert på en generalisering av førsteordens logikk.

Denne logikken består av syntaks og semantikk. Syntaks er det formelle språket som brukes til å uttrykke begreper. På den annen side indikerer semantikken til førsteordens logiske formler hvordan man skal bestemme den sanne verdien av en hvilken som helst formel.

Denne logikken er basert på et alfabet og et førsteordens språk, samt et sett med aksiomer og slutningsregler..

Klausulskjema

Det er en delmengde av førsteordens logikk. Den har en normalisert form der en uttalelse er definert av et universelt prefiks eller kjede av universelle kvantifiserere, og et fritt sett med kvantifiserere fra paragrafen.

Når du ber om et spørsmål til programmet, vil kroppen til klausulen hvis overskrift kan falle sammen, bli vurdert. Dette er det samme som å anvende en slutningsregel i logikken.

Som et ledd i slutningen velges to ledd som har som egenskap at den ene inneholder en disjunktiv X (en positiv bokstavelig) og den andre inneholder en disjunktiv ¬X (en negativ bokstavelig). Disse kompromissene er kjent som komplementære.

Fra disse to innledende punktene er en ny resolusjonsklausul bygget med alle bokstavene, bortsett fra de komplementære..

Kunstig intelligens

Logisk programmering er en metodikk som brukes til å få datamaskiner til å utlede, fordi det er nyttig å representere kunnskap. Logikk brukes til å representere kunnskap og slutning for å håndtere den.

Logikken som brukes til å representere kunnskap er klausulær form. Den brukes fordi førsteordens logikk er godt forstått og i stand til å representere alle beregningsproblemer.

Prolog er et programmeringsspråk som er basert på ideene til logisk programmering. Ideen med Prolog er å få logikken til å se ut som et programmeringsspråk.

Logiske programmeringseksempler

Eksempel 1

- Fakta: Ruby er en katt.

- Regel: alle katter har tenner.

- Spørsmål: Har Rubí tenner?

- Konklusjon: ja.

Regelen "alle katter har tenner" kan brukes på Rubí, fordi det er et faktum som sier "Rubí er en katt". Dette eksemplet er ikke skrevet med noen ekte programmeringsspråksyntaks.

Eksempel 2

Dette eksemplet kan sees skrevet i Prolog, da det er et av de mest populære logiske programmeringsspråkene:

- feminin (alissa).

- maskulin (bobby).

- maskulin (Carlos).

- feminin (doris).

- son_of (doris, carlos).

- son_of (Carlos, Bobby).

- son_of (doris, alissa).

- father_of (F, P): - maskulin (F), son_of (P, F).

Dette programmet blir vanskelig å lese, fordi Prolog er spesielt forskjellig fra andre språk. Enhver kodekomponent som ligner "feminin (alissa)." det er fakta.

En regel er “far_of (F, P): - maskulin (F), son_of (P, F)”. Symbolet ": -" kan leses som "er sant hvis". Store bokstaver betyr at variabler kan brukes på ethvert objekt, slik at F kan stå for carlos, doris, alissa eller bobby. Denne koden kan oversettes som:

- Alissa er en kvinne.

- Bobby er en mann.

- Carlos er en mann.

- Doris er en kvinne.

- Doris er datteren til Carlos.

- Carlos er Bobbys sønn.

- Doris er Alissas datter.

- "F er far til P" er sant hvis F er en mann og hvis P er sønn av F.

Konsultasjon

Anta at du vil konsultere programmet for mer informasjon. Du kan søke og be om å finne faren Bobby er sammen med :? - father_of (bobby, X). Systemet vil indikere følgende svar: X = Carlos.

I dette tilfellet overføres et forhold der en av verdiene er en variabel. Det Prolog gjorde var å bruke forskjellige objekter på dette forholdet til en av dem var logisk solid.

Carlos eneste far er Bobby, og Bobby er mann. Dette tilfredsstilte regelen "far_of (F, P): - maskulin (F), son_of (P, F).". Når X tilsvarer "carlos", er logikken solid.

Andre henvendelser

Andre mer generelle spørsmål kan gjøres til Prolog, som får systemet til å generere flere resultater:

- ?- far_of (far, barn).

- Far = bobby

- Barn = Carlos

- Far = Carlos

- Barn = doris

Som det er observert, krever ikke logisk programmering å ha informasjonen om at alissa eller bobby er mennesker for å få kunnskap om dem. Det er faktisk ikke nødvendig å indikere at det finnes et begrep som kalles person.

I de fleste ikke-logiske programmeringsspråk må du først definere disse begrepene før du kan skrive programmer som behandler informasjon om mennesker..

Referanser

  1. Deep AI (2020). Logisk programmering. Hentet fra: deepai.org.
  2. Wikiversity (2020). Teori om programmeringsspråk / logisk programmering. Hentet fra: en.wikiversity.org.
  3. Imperial College London (2006). Logisk programmering. Hentet fra: doc.ic.ac.uk.
  4. Jia-Huai You (2020). Introduksjon til logisk programmering. University of Alberta. Hentet fra: eng.ucy.ac.cy.
  5. C2 Wiki (2020). Logisk programmering. Hentet fra: wiki.c2.com.

Ingen har kommentert denne artikkelen ennå.