Risolviamo giochi, problemi ed enigmi con il linguaggio Prolog

Il computer, si sa, è la macchina logica per eccellenza. Esso riesce a valutare e a risolvere qualsiasi tipo di problema logico. Il problema principale è quello di fargli capire come farlo, ossia di come insegnarli la tecnica e le regole per arrivare ad una conclusione. Se i tradizionali linguaggi di programmazione non sono proprio il massimo per questo scopo e non danno molto aiuto al programmatore, il Prolog è, senza dubbio, uno dei migliori strumenti per approcciarsi al mondo della logica. In questo articolo, peraltro abbastanza divertente e distensivo, spazieremo nella conoscenza di questo fantastico linguaggio di programmazione, focalizzando soprattutto l'attenzione sulla risoluzione di giochi logici, quiz e problemi matematici e divertenti.

Per spiegare il linguaggio Prolog in maniera approfondita ed esauriente non basterebbero migliaia di pagine di letteratura. Per fortuna oggi, con Internet, l'approccio a tale linguaggio è reso molto abbordabile e semplice.

Lo scopo dell'articolo che stiamo andando ad illustrare è quello di applicare il sistema dell'intelligenza artificiale ai fini della risoluzione dei classici giochi matematici e logici. Tutto ciò sarà fatto con semplici esempi e quiz di ogni genere. Ci limitiamo a dare, inizialmente, qualche breve, ma essenziale premessa, per meglio comprendere i successivi contenuti.

Le basi del Prolog

Si tratta di un linguaggio di programmazione orientato all'intelligenza artificiale, con cui si possono creare programmi e applicazioni di ogni genere. Il suo approccio è decisamente differente dagli altri linguaggi, come il C o il Basic. I listati, infatti, sono strutturati in maniera diversa e un tipico programma in Prolog deve contenere i seguenti elementi:

  • Esplicitazione dei fatti;
  • Definizione delle regole;
  • Formulazione delle domande.

I fatti sono l'elencazione delle proprietà di un oggetto, al fine di farle conoscere al sistema e di formare, in tal modo, la base della conoscenza (database).

Le regole servono per definire le relazioni tra gli oggetti. Con esse il sistema deduce nuove regole logiche, in maniera estremamente affidabile ed efficiente.

Le domande (obiettivi o goal) permettono di interrogare il database per ottenere le risposte desiderate, sulla base delle conoscenze acquisite.

Con un esempio basilare e semplice vediamo come il Prolog riesca ad acquisire le informazioni utili (ma indispensabili) a dedurre nuove informazioni e a visualizzare quanto richiesto dall'operatore.

Primo esempio basilare: Albero genealogico

Il linguaggio in oggetto è specializzato per gestire e risolvere anche problemi di questo tipo. Si tratta di una interessante applicazione che raccoglie i nomi di una famiglia, imposta i ruoli e le figure, infine deduce i rapporti di parentela tra i membri. Ovviamente occorre insegnare al computer le regole per arrivare a tali conclusioni. Il tutto è relativamente semplice.

alberoIl primo passo da affrontare è quello di "dare in pasto" al sistema l'elenco delle persone che compongono la dinastia. Per questo scopo abbiamo creato due predicati:

  • maschio(X).
  • femmina(Y).

Con questi due predicati si creano le basi di conoscenza, elencando tutte le persone che fanno parte della famiglia. Ad esempio, scrivendo:

maschio(giovanni).

si afferma che Giovanni è un maschio (l'argomento tra parentesi deve essere scritto in minuscolo).

Quando si elencano i nominativi, occorre prestare attenzione a non ripetere gli stessi, in caso contrario il compilatore darebbe dei risultati ripetuti e duplicati. Al limite si possono inserire i dati tra doppie virgolette, sotto forma di stringa, diversificandoli in qualche modo. [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 5283 parole ed è riservato agli abbonati PLATINUM. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici MAKER e PLATINUM e potrai fare il download (PDF) di tutti gli EOS-Book, Firmware e degli speciali MONOTEMATICI. ABBONATI ORA, è semplice e sicuro.

Abbonati alle riviste di elettronica

5 Commenti

  1. Maurizio Di Paolo Emilio Maurizio 17 dicembre 2015
  2. Giovanni Di Maria Giovanni Di Maria 18 dicembre 2015
  3. Giovanni Di Maria Giovanni Di Maria 24 dicembre 2017
  4. MassimoSito 29 settembre 2019
    • Giovanni Di Maria Giovanni Di Maria 2 ottobre 2019

Scrivi un commento