Regole e deduzioni


Per risolvere problemi spesso esistono delle regole che, dai dati del problema, permettono di calcolare o dedurre la soluzione.

Questa situazione si può descrivere col termine regola(<sigla>,<lista degli antecedenti>,<conseguente>) che indica una regola di nome <sigla> che consente di dedurre <conseguente> conoscendo tutti gli elementi contenuti nella <lista degli antecedenti>, detta anche premessa.

Problemi “facili” possono essere risolti con una sola regola; per problemi “difficili” una sola regola non basta a risolverli, ma occorre applicarne diverse in successione.

Si considerino le seguenti regole (a rigore le regole associate ai seguenti termini):

  • regola(1, [e, f], b)
  • regola(2, [m, f], e)
  • regola(3, [m], f)
  • regola(4, [b, f], g)
  • regola(5, [b, g], c)
  • regola(6, [g, f], c)

Per esempio la regola 1 dice che si può calcolare (o dedurre) b conoscendo e ed f (cioè gli elementi della lista [e, f]); conoscendo b ed f (cioè gli elementi della lista [b, f]) è possibile dedurre g con la regola 4.

Quindi, a partire da e ed f è possibile dedurre prima b (con la regola 1) e poi g (con la regola 4).

N.B. I due seguenti termini:

  • regola(1, [e, f], b)
  • regola(1, [f, e], b)

individuano la stessa regola, che permette di dedurre b da e ed f (o da f e da e).

Un procedimento di deduzione (o deduttivo, o di calcolo) è rappresentato da un insieme di regole da applicare in sequenza opportuna per dedurre un certo elemento (incognito) a partire da certi dati: quindi può essere descritto dalla lista delle sigle di queste regole.

Il procedimento [1, 4] descrive la soluzione del problema: “dedurre g a partire da e ed f”.

Una maniera grafica per rappresentare le regole è quella mostrata nella seguente figura:

consiste nell’associare un albero (rovesciato) ad ogni regola: la radice (in alto) è il conseguente, le foglie (in basso) sono gli antecedenti.          

Con questa rappresentazione grafica, risolvere il problema “dedurre g a partire da e ed f” è particolarmente facile; si cerca un “albero” (cioè una regola) che ha come radice l’incognita (cioè g): in questo caso ne esiste solo uno che è la regola 4: si veda la figura a sinistra destra.
Le foglie di questo albero (b ed f) non sono tutte note: quelle note (f in questo caso) sono vere e proprie foglie, quelle incognite (b in questo caso) vanno considerati come “anelli” a cui “appendere” un altro albero; quindi bisogna continuare sviluppando la foglia incognita b, cioè “appendendo” a b l’albero rappresentato dalla regola 1, come illustrato nella figura a sinistra destra. 
Adesso tutte le foglie dell’albero così ottenuto (e ed f) sono note e il problema è risolto.
Si può anche dire che un albero le cui foglie sono tutte note rappresenta un procedimento per dedurre la “radice” a partire dalle “foglie”.
Per costruire la lista corrispondente occorre partire dal basso: prima si applica la regola 1, che utilizza solo i dati; poi si può applicare la regola 4. 
Il procedimento è quindi (individuato dalla lista) [1, 4].

N.B.

Nelle liste richieste occorre elencare le sigle delle regole nell’ordine che corrisponde alla sequenza di applicazione: la prima (a sinistra) della lista deve essere la sigla che corrisponde alla prima regola da applicare (che ha come antecedenti solo dati); l’ultima (a destra) deve essere la sigla della regola che ha come conseguente l’elemento incognito da dedurre.

Nella lista non ci sono regole ripetute (infatti un procedimento di deduzione è un insieme di regole da applicare in opportuna sequenza).

L’applicazione di una regola rende disponibile il conseguente da utilizzare (come antecedente) nell’applicazione di regole successive.

La lista associata a un (ben preciso) procedimento si costruisce quindi per passi successivi a partire dal primo elemento che è la sigla della prima regola da applicare; ad ogni passo, se ci fossero più regole applicabili, occorre dare la precedenza (nella lista) a quella con sigla inferiore (questo per rendere unica la lista associata al procedimento).

N.B.

In alcuni casi esistono più procedimenti deduttivi possibili che permettono di ricavare un certo elemento dagli stessi dati, in maniere diverse (cioè con alberi diversi e quindi con insiemi diversi di regole).

Per esempio il problema “dedurre c a partire da b ed f” (dalle regole viste sopra) ha due distinti procedimenti risolutivi; gli alberi relativi ai due procedimenti sono mostrati nella seguente figura:

Le liste associate sono, rispettivamente, [4, 5] e [4, 6].

In un procedimento deduttivo, il numero di regole differenti coinvolte (e, quindi, anche il numero di elementi della lista corrispondente al procedimento) si dice lunghezza del procedimento.


ESERCIZIO 1

Siano date le seguenti regole:

  • regola(1, [b, c], a)
  • regola(2, [c, d], a)
  • regola(3, [b, c, d], a)
  • regola(4, [b, a], f)

Trovare:

  1. la sigla N della regola che consente di dedurre a da d e c;
  2. la lista L che rappresenta il procedimento per dedurre f da b e c.

SOLUZIONE

Osserva

quindi

Risposte

  1. N = 2
  2. L = [1, 4]

ESERCIZIO 2

Siano date le seguenti regole:

  • regola(1,[u,d],c)
  • regola(2,[q,n],g)
  • regola(3,[p,q],n)
  • regola(4,[c,d],z)
  • regola(5,[u],d)
  • regola(6,[n,u],m)

Trovare:

  1. la lista L1 che descrive il procedimento per dedurre g a partire da p e q;
  2. la lista L2 che descrive il procedimento per dedurre z a partire da u.

SOLUZIONE

Osserva

quindi

e

Risposte

  1. L1 = [3, 2]
  2. L2 = [5, 1, 4]


ESERCIZIO 3

Sono date le seguenti regole:

  • regola(1, [a], b)
  • regola(2, [p, q], v)
  • regola(3, [t], n)
  • regola(4, [v], z)
  • regola(5, [b,c], w)
  • regola(6, [a,b], c)
  • regola(7, [t,n], v)
  • regola(8, [t], v)

Trovare:

  1. la lista L1 che descrive il procedimento per dedurre w conoscendo a;
  2. la lista L2 che descrive il procedimento per dedurre z conoscendo p e q;

SOLUZIONE

Osserva

quindi

e

Risposte

  1. N = 2
  2. L = [1, 4]