Caratteristiche ed esempi di programmazione logica

Caratteristiche ed esempi di programmazione logica

IL Programmazione logica È un paradigma di programmazione che utilizza circuiti logici anziché solo funzioni matematiche per controllare come sono indicati i fatti e le regole.

Invece di un flusso di controllo attentamente strutturato che impone quando eseguire e come valutare le chiamate a funzioni o altre istruzioni, le regole logiche del programma sono scritte come clausole logiche o predicati.

Esempi di programmazione logica in Prolog. Fonte: di Kuldeepsheoran1 - Screenshot, CC di -sa 3.0, Wikimedia Commons

Questo approccio, che viene spesso utilizzato nella programmazione genetica ed evolutiva, dice generalmente a un modello quale obiettivo raggiungere, anziché come raggiungerlo.

Ogni regola contiene un'intestazione e un corpo con una logica formalizzata, anziché una funzione matematica eseguibile. Ad esempio, "ed è vero (testato): se C1, C2 e C3 sono veri (corpo)". I fatti o i risultati sono espressi senza un corpo, come "ed è vero".

Tuttavia, con alcuni linguaggi di programmazione come Prolog. Ad esempio, "Per risolvere e aggiungere C1, C2 e C3".

[TOC]

Caratteristiche della programmazione logica

La programmazione logica è sostanzialmente diversa dalle altre strategie di programmazione esistenti. Invece di istruzioni per un computer con il programma, vengono stabilite le relazioni tra oggetti. In questo modo il computer può ragionare queste relazioni e quindi raggiungere soluzioni logiche.

All'interno di un programma logico ci sono due principali set di codice: fatti e regole. Le regole si applicano ai fatti al fine di ottenere conoscenza dell'ambiente.

Verità e detrazione logica

I programmi logici possono essere decifrati attraverso due concetti importanti: verità e detrazione logica. La verità arriva se il calcolo nel programma è vero o no, sotto l'implementazione dei simboli del programma. La detrazione logica determina se una clausola logica è una conseguenza del programma.

Può servirti: tipi di software applicativo

Queste istruzioni saranno sempre interpretate come frasi logiche e clausole, il risultato della sua esecuzione è una conseguenza logica dei calcoli contenenti.

Logica del primo ordine

È un ramo della logica proposizionale. Considera se gli oggetti sono veri o falsi da una prospettiva parziale del mondo, chiamato dominio. La programmazione logica si basa su una generalizzazione della logica del primo ordine.

Questa logica è composta da sintassi e semantica. La sintassi è il linguaggio formale usato per esprimere concetti. D'altra parte, la semantica delle formule logiche del primo ordine indica come determinare il valore reale di qualsiasi formula.

Questa logica si basa su un alfabeto e un linguaggio di primo ordine, oltre a un insieme di assiomi e regole di inferenza.

Forma clausale

È un sottoinsieme di logica di primo ordine. Ha una forma normalizzata in cui una frase è definita da un prefisso universale o una catena di quantificatori universali e un set libero di quantificatori della clausola.

Quando si richiede una consultazione dal programma, verrà considerato il corpo della clausola la cui intestazione può coincidere. Questo è lo stesso dell'applicazione di una regola di inferenza nella logica.

Come passaggio di inferenza, vengono scelte due clausole che hanno come proprietà che uno contiene un dilemma X (un letterale positivo) e l'altro contiene un dilemma ¬X (un letterale negativo). Questi dilemma sono noti come complementari.

Da queste due clausole iniziali, una nuova clausola risolutiva è costruita usando tutti i letterali, tranne quelli complementari.

Intelligenza artificiale

La programmazione logica è una metodologia che viene utilizzata per cercare computer da dedurre, perché è utile rappresentare la conoscenza. La logica viene utilizzata per rappresentare la conoscenza e l'inferenza per gestirla.

Può servirti: nticx

La logica utilizzata per rappresentare la conoscenza è la forma della clausola. È usato perché la prima logica di ordine è ben compresa ed è in grado di rappresentare tutti i problemi computazionali.

Prolog è un linguaggio di programmazione basato su idee di programmazione logica. L'idea di Prolog è far sembrare la logica un linguaggio di programmazione.

Esempi di programmazione logica

Esempio 1

- Fatto: Rubí è un gatto.

- Regola: tutti i gatti hanno i denti.

- Consultazione: Rubí ha i denti?

- Conclusione: sì.

La regola "Tutti i gatti hanno i denti" può essere applicata a Rubí, perché c'è un fatto che dice "Rubí è un gatto". Questo esempio non è scritto con alcuna sintassi di un linguaggio di programmazione reale.

Esempio 2

Questo esempio può essere scritto in Prolog, per essere uno dei linguaggi di programmazione logica più noti:

- femmina (Alissa).

- maschio (Bobby).

- maschio (Carlos).

- femmina (Doris).

- Son_ (Doris, Carlos).

- Son_ (Carlos, Bobby).

- Son_ (Doris, Alissa).

- Padre_ (f, p):- maschio (f), son_ (p, f).

Questo programma è difficile da leggere, perché Prolog è notevolmente diverso dalle altre lingue. Qualsiasi componente del codice che ricorda “Female (Alissa)." è un fatto.

Una regola è "padre_ (f, p):- maschio (f), son_ (p, f)". Il simbolo ":-" può essere letto come "è vero se". Le lettere maiuscole indicano che le variabili possono essere applicate a qualsiasi oggetto, quindi F potrebbe significare Carlos, Doris, Alissa o Bobby. Questo codice può essere tradotto come:

- Alissa è una donna.

- Bobby è un uomo.

- Carlos è un uomo.

- Doris è una donna.

Può servirti: dispositivi di output: caratteristiche, quali sono l'uso, tipi, esempi

- Doris è la figlia di Carlos.

- Carlos è il figlio di Bobby.

- Doris è la figlia di Alissa.

- "F è il padre di P" è vero se F è un uomo e se P è il figlio di F.

Consultazione

Supponiamo di voler consultare il programma per ulteriori informazioni. Puoi cercare di chiederti da chi è padre Bobby: ?- Padre_ (Bobby, x). Il sistema indicherà la seguente risposta: x = Carlos.

In questo caso sta avvenendo una relazione in cui uno dei suoi valori è una variabile. Quello che ha fatto è stato applicare oggetti diversi a questa relazione fino a quando uno di essi era logicamente solido.

L'unico padre di Carlos è Bobby e Bobby è un uomo. Questo ha soddisfatto la regola.". Quando x è uguale a "Carlos", la logica è solida.

Altre consultazioni

Altre consultazioni più generali possono essere fatte a Prolog, che rendono il sistema generare risultati multipli:

- ?- Padre_ (padre, bambino).

- Padre = Bobby

- Child = Carlos

- Padre = Carlos

- Child = Doris

Come si potrebbe osservare, la programmazione logica non richiede informazioni sul fatto che Alissa o Bobby siano persone per ottenere conoscenze su di loro. In effetti, non è necessario indicare che esiste un concetto chiamato persona.

Nella maggior parte dei linguaggi di programmazione non collegati, questi concetti dovrebbero prima essere definiti prima di scrivere programmi che elaborano informazioni sulle persone.

Riferimenti

  1. Deep AI (2020). Programmazione logica. Preso da: Deepai.org.
  2. Wikiversity (2020). Teoria dei linguaggi di programmazione/programmazione logica. Preso da: in.Wikiversity.org.
  3. Imperial College London (2006). Programmazione logica. Tratto da: Doc.CIRCUITO INTEGRATO.AC.UK.
  4. Jia-Huai You (2020). Introduzione a logic Programmmm. Università di Alberta. Tratto da: Eng.Ucy.AC.Cy.
  5. C2 Wiki (2020). Programmazione logica. Preso da: wiki.C2.com.