Logiske programmeringsegenskaper og eksempler

Logiske programmeringsegenskaper og eksempler

De Logisk programmering Det er et programmeringsparadigme som bruker logiske kretsløp i stedet for bare matematiske funksjoner for å kontrollere hvordan fakta og regler er oppgitt.

I stedet for en nøye strukturert kontrollstrøm som dikterer når du skal utføre og hvordan du kan evaluere samtaler til funksjoner eller andre instruksjoner, er de logiske reglene i programmet skrevet som logiske klausuler eller predikater.

Eksempler på logisk programmering i prolog. Kilde: av Kuldeepsheoran1 - Screenshot, CC av -sa 3.0, Wikimedia Commons

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

Hver regel inneholder en overskrift og et organ med en formalisert logikk, i stedet for en kjørbar matematisk funksjon. For eksempel "og det er sant (overskrift): Hvis C1, C2 og C3 er sanne (kropp)". Fakta eller resultatene kommer til uttrykk uten kropp, for eksempel "og er sant".

Imidlertid, med noen programmeringsspråk som prolog. For eksempel "for å løse og legge til C1, C2 og C3".

[TOC]

Kjennetegn på logisk programmering

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

Innenfor et logisk program er det to hovedsett med kode: fakta og regler. Reglene gjelder fakta for å få kunnskap om miljøet.

Sannhet og logisk fradrag

Logiske programmer kan dechiffres gjennom to viktige konsepter: Sannhet og logisk fradrag. Sannheten kommer hvis beregningen i programmet er sann eller ikke, under implementering av programsymbolene. Logisk fradrag bestemmer om en logisk klausul er en konsekvens av programmet.

Kan tjene deg: typer applikasjonsprogramvare

Disse instruksjonene vil alltid bli tolket som logiske setninger og klausuler, resultatet av utførelsen er en logisk konsekvens av beregningene som inneholder.

Første ordens logikk

Det er en gren av proposisjonell logikk. Tenk på om objekter er sanne eller usant fra et delvis perspektiv av verden, kalt domene. Logisk programmering er basert på en generalisering av førsteordre logikk.

Denne logikken er sammensatt av syntaks og semantikk. Syntaks er det formelle språket som brukes til å uttrykke konsepter. På den annen side indikerer semantikken i de første ordre -logikkformlene hvordan du kan bestemme den sanne verdien av enhver formel.

Denne logikken er basert på et alfabet og et første -ordensspråk, i tillegg til et sett med aksiomer og inferensregler.

Clausal form

Det er en undergruppe av første -ordenslogikk. Den har en normalisert form der en setning er definert av et universelt prefiks eller kjede av universelle kvantifiserere, og et fritt sett med klausulvantifiserere.

Når du ber om en konsultasjon fra programmet, vil liket av klausulen hvis overskrift kan sammenfalle. Dette er det samme som å anvende en inferensregel i logikken.

Som en gang av inferens er det valgt to klausuler som har som en eiendom som en inneholder et X -dilemma (en positiv bokstavelig) og den andre inneholder et dilemma ¬x (en negativ bokstavelig). Dette dilemmaet er kjent som komplementære.

Fra disse to innledende klausulene er en ny resolutive klausul konstruert ved hjelp av alle bokstaver, bortsett fra de komplementære.

Kunstig intelligens

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

Kan tjene deg: nticx

Logikken som brukes til å representere kunnskap er klausulskjemaet. Det brukes fordi den første ordre -logikken er godt forstått og er i stand til å representere alle beregningsproblemer.

Prolog er et programmeringsspråk som er basert på logiske programmeringsideer. Ideen med prolog er å få logikk til å virke et programmeringsspråk.

Logiske programmeringseksempler

Eksempel 1

- Fakta: Rubí er en katt.

- Regel: Alle katter har tenner.

- Konsultasjon: Rubí har 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 syntaks for et ekte programmeringsspråk.

Eksempel 2

Dette eksemplet kan skrives i Prolog, for å være et av de mest kjente logiske programmeringsspråkene:

- Kvinne (Alissa).

- Mann (Bobby).

- Mann (Carlos).

- Kvinne (Doris).

- Son_ (Doris, Carlos).

- Son_ (Carlos, Bobby).

- Son_ (Doris, Alissa).

- Far_ (f, p):- hann (f), son_ (p, f).

Dette programmet er vanskelig å lese, fordi Prolog er bemerkelsesverdig forskjellig fra andre språk. Enhver komponent i koden som ligner “Kvinne (Alissa)." det er fakta.

En regel er "far_ (f, p):- hann (f), son_ (p, f)". Symbolet ":-" kan leses som "det er sant hvis". De store bokstavene betyr at variablene kan brukes på ethvert objekt, så F kan bety 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.

Det kan tjene deg: Output Devices: Egenskaper, hva er bruk, typer, eksempler

- Doris er Carlos datter.

- Carlos er sønn av Bobby.

- Doris er Alissas datter.

- "F er faren 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 å be om at du er fra hvem som er far Bobby med: ?- Far_ (Bobby, x). Systemet vil indikere følgende svar: x = carlos.

I dette tilfellet skjer det et forhold der en av verdiene er en variabel. Det han gjorde var å bruke forskjellige objekter på dette forholdet til en av dem var logisk solid.

Carlos eneste far er Bobby, og Bobby er en mann. Dette tilfredsstilte regelen."". Når X er lik "Carlos", er logikken solid.

Andre konsultasjoner

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

- ?- Far_ (far, barn).

- Far = Bobby

- Barn = Carlos

- Far = Carlos

- Barn = Doris

Som det kan observeres, krever ikke logisk programmering informasjon om at Alissa eller Bobby er folk for å få kunnskap om dem. Det er faktisk ikke nødvendig å indikere at det er et konsept som heter person.

På de fleste ikke -logiske programmeringsspråk bør disse konseptene først defineres før du skriver programmer som behandler informasjon om mennesker.

Referanser

  1. Deep AI (2020). Logikkprogrammering. Hentet fra: Deepai.org.
  2. Wikiversity (2020). Teori om programmeringsspråk/logikkprogrammering. Hentet fra: i.Wikiversitet.org.
  3. Imperial College London (2006). Logikkprogrammering. Hentet fra: doc.IC.Ac.Storbritannia.
  4. Jia-Huai You (2020). Introduksjon til logikkprogrammmmm. University of Alberta. Hentet fra: Eng.Ucy.Ac.Cy.
  5. C2 Wiki (2020). Logikkprogrammering. Hentet fra: wiki.C2.com.