Indice - Home di homes.di.unimi.ithomes.di.unimi.it/~ghilardi/silsis/Trabacca.doc · Web viewUD 4 :...

33
Scuola Interuniversitaria Lombarda di Specializzazione per l’Insegnamento Secondario – Sezione di Milano Indirizzo Fisico-Informatico-Matematico Classe di abilitazione A042 – INFORMATICA Relazione Finale di Tirocinio INTRODUZIONE ALLA LOGICA Docente universitario: Prof. Silvio GHILARDI Insegnante supervisore: Prof. Paolo BARAGGIA Specializzanda: Giuseppa TRABACCA Matricola Y02099

Transcript of Indice - Home di homes.di.unimi.ithomes.di.unimi.it/~ghilardi/silsis/Trabacca.doc · Web viewUD 4 :...

Scuola Interuniversitaria Lombarda di Specializzazione

per l’Insegnamento Secondario – Sezione di Milano

Indirizzo Fisico-Informatico-Matematico

Classe di abilitazione A042 – INFORMATICA

Relazione Finale di Tirocinio

INTRODUZIONE ALLA LOGICA

Docente universitario: Prof. Silvio GHILARDI

Insegnante supervisore: Prof. Paolo BARAGGIA

Specializzanda: Giuseppa TRABACCA

Matricola Y02099

Anno Accademico 2004/2005

Indice

1. Introduzione..........................................................................................................................3

2. Tirocinio osservativo e tirocinio attivo.................................................................................3

Il tirocinio osservativo..........................................................................................................3

La lezione tenuta in classe: prerequisiti, obiettivi, tempi......................................................4

UD 1 : Situazione-stimolo e prime definizioni.....................................................................5

UD 2 : Espressioni logiche, proprietà, soluzione del gioco..................................................6

Verifica, correzione, risultati................................................................................................7

3. Approfondimenti. Obiettivi, prerequisiti, tempi...................................................................7

UD 1 : Calcolo proposizionale e complessità – Problemi NP..............................................8

UD 2 : Uno strumento software per il problema SAT: la procedura DPLL e zChaff..........9

UD 3 : Equivalenza di alcuni formalismi...........................................................................11

UD 4 : La logica proposizionale e i circuiti elettronici – Esercizi......................................13

UD 5 : Equivalenza di circuiti............................................................................................16

Verifica...............................................................................................................................19

Bibliografia...............................................................................................................................20

ALLEGATO I: Verifica in classe.............................................................................................21

2

1.

2. Introduzione

Questo lavoro vuole ripercorrere l’esperienza di tirocinio che ho svolto durante i due anni

della SILSIS presso un istituto tecnico industriale e proporre alcuni spunti per invitare i

ragazzi a studiare la Logica in un’ottica più ampia e con l’uso di uno strumento software.

L’obiettivo è quello di riflettere dapprima sul periodo osservativo vissuto nella prima

fase del tirocinio e di descrivere la parte in cui ho potuto avere un ruolo attivo con la

supervisione del docente accogliente; poi di proporre degli approfondimenti che potrei

utilizzare in una nuova occasione in cui si affronti la Logica. Rivisitando l’esperienza nel suo

insieme, desidero riassumere quegli insegnamenti che potranno aiutarmi a svolgere il mio

futuro ruolo di insegnante con maggiore consapevolezza e preparazione nell’affrontare le

classi e gli argomenti d’insegnamento.

3. Tirocinio osservativo e tirocinio attivo

Il tirocinio osservativo

Ho svolto i due tirocini di Matematica e di Informatica presso un ITIS, nel triennio a indirizzo

Informatica.

Sono entrata in una grande scuola che si è mostrata subito ricca di attività e ben

organizzata, come ho dedotto anche seguendo i Collegi dei Docenti; è dotata di un sito

Internet, utilizzato non solo come vetrina della scuola verso l’esterno, ma anche come utile

strumento di informazione e documentazione per alunni e genitori; molti docenti, inoltre, lo

utilizzano per mettere a disposizione degli studenti il materiale didattico.

Un buon numero di professori insegna in questa scuola da tanti anni, contribuendo a

darle un aspetto di stabilità e serietà.

Il professore accogliente insegna da pochi anni; si nota subito la sua provenienza

aziendale per l’impostazione pratica nella fase di spiegazione. Ho subito apprezzato la sua

ottima organizzazione riguardo alla programmazione e alla gestione delle ore di lezione, sia a

breve termine, sia a lungo termine. Da questo atteggiamento i ragazzi colgono sicurezza e

serietà, sentendosi costantemente motivati allo studio.

3

L’insegnante accogliente insegna nella III, nella IV e nella V classe di una delle

sezioni a indirizzo informatico. Io ho svolto la parte di tirocinio nella III classe, composta da

un buon numero di ragazzi interessati e da alcuni elementi di disturbo.

Il professore svolge durante la settimana tre ore in classe e tre ore in laboratorio.

Durante la maggior parte delle ore in classe, egli spiega quegli argomenti che vengono poi

applicati nelle ore di laboratorio. Per la valutazione dei ragazzi si basa sulle verifiche e

sull’osservazione del lavoro svolto in laboratorio.

Ho colto subito da lui quanto la passione per la materia che si insegna aiuti ad essere

più efficaci nel trasmettere le conoscenze ai ragazzi e ad essere più positivi e più disponibili:

la classe non può che beneficiare di un simile atteggiamento.

L’insegnante segue poco il libro di testo, se non per assegnare i compiti a casa.

Ritengo, invece, che nel mio futuro di insegnante potrei fare un più largo uso del libro di

testo, invitando i ragazzi alla sua lettura. Infatti, se da un lato gli appunti presi in classe

permettono ai ragazzi di focalizzare l’argomento e avere uno schema degli aspetti più

importanti del modulo, dall’altro il libro, oltre a fugare eventuali errori di copiatura, offre la

presentazione dell’argomento in modo più discorsivo, evidenziando con precisione formule,

grafici, algoritmi e offrendo sempre un punto di vista diverso da quello dell’insegnante,

fattore che favorisce una maggiore apertura mentale. Più in generale, reputo molto importante

trasmettere ai ragazzi l’abitudine alla lettura.

La sua impostazione pratica fa sì che le sue spiegazioni vertano sempre su parti di

codice da implementare, scritti in Java oppure in forma di diagrammi a blocchi. Raramente

accenna a concetti puramente teorici, aspetto che mi ha fatto riflettere sull’opportunità di

proporgli un argomento teorico come oggetto del mio tirocinio attivo.

Gli ho proposto quindi di trattare gli elementi fondamentali della logica, argomento

che io reputo importante per gli studenti al fine di contribuire allo sviluppo delle capacità di

analizzare e risolvere problemi di varia natura, indipendentemente dal linguaggio o dallo

strumento utilizzato per la loro formalizzazione.

La lezione tenuta in classe: prerequisiti, obiettivi, tempi

I prerequisiti necessari alla comprensione delle basi della logica sono molto semplici e

consistono nel conoscere il significato delle particelle grammaticali “e”, “o”, “non”, “se” nel

linguaggio comune.

4

Gli obiettivi che, insieme all’insegnante accogliente, mi sono posta sono stati quelli di

far conoscere ai ragazzi i simboli utilizzati nella logica e la definizione delle operazioni tra

proposizioni logiche, in modo da giungere alla capacità di determinare il risultato di

un’operazione tra proposizioni logiche e di compilare una tavola di verità.

La parte teorica, molto interattiva con i ragazzi e sempre ricca di esempi, è stata tenuta

in due lezioni di due ore ciascuna. La verifica di un’ora è stata poi seguita da un’altra ora per

la sua correzione in classe.

Essendo l’argomento completamente slegato dai temi stabiliti nella programmazione

modulare, ho potuto inserire il mio intervento in un qualsiasi momento dell’anno scolastico.

Riporto il contenuto del mio intervento in classe, suddiviso in unità didattiche.

UD 1 : Situazione-stimolo e prime definizioni

Tempo: 2 ore

Al fine di attirare l’attenzione sull’argomento e per prevenire possibili atteggiamenti di

disinteresse causati dalle notazioni formali utilizzate, ho iniziato la lezione ponendo il

seguente quesito-indovinello ai ragazzi.

“Al momento della sua morte, il nostro amico Pippo si trova davanti a due porte

esattamente uguali, una delle quali conduce al Paradiso, l’altra all’Inferno.

Davanti alle due porte ci sono due Angeli esattamente uguali, uno che dice

sempre il Vero, l’altro che dice sempre il Falso.

Il nostro amico Pippo ha la possibilità di porre una sola domanda a uno solo dei

due Angeli. Da tale domanda deve capire quale sia la porta del Paradiso, che

potrà così aprire e varcare.

Qual è la domanda che Pippo pone ad uno degli Angeli per ottenere il suo

scopo?”

I ragazzi si sono subito interessati alla questione, ponendomi delle domande al fine di

comprendere bene il quesito. Nel dare loro dei chiarimenti, ho spiegato che tale quesito è un

quesito di Logica e che “la Logica è la disciplina che si occupa di controllare la correttezza

di un ragionamento, costruito con proposizioni logiche e connettivi logici”. Ho aggiunto poi

le definizioni di proposizione logica, aiutandoli, con molti esempi, a imparare a distinguere tra

enunciati che sono proposizioni ed enunciati che non lo sono.

Sempre arricchendo le spiegazioni con esempi, ho dato le definizioni di variabile

logica, di valore di verità di una proposizione, di proposizione semplice e di proposizione

5

composta. Ho introdotto quindi i connettivi logici not, and, or, implicazione e doppia

implicazione; per ognuno di essi ho mostrato la tavola di verità, che ho introdotto facendo

notare che essa ha 2n righe, dove n è il numero di proposizioni semplici considerate. Ho

concluso così la prima lezione, assegnando alcuni esercizi per casa.

UD 2 : Espressioni logiche, proprietà, soluzione del gioco

Tempo: 2 ore

Dopo aver ripreso velocemente i concetti della lezione precedente, chiedendo e ottenendo dai

ragazzi una buona interazione, ho introdotto il concetto di espressione logica come

composizione di più proposizioni tramite i connettivi logici e, con un esempio, ho mostrato

come valutare il valore di verità delle espressioni logiche per mezzo delle tavole di verità. Ho

dato quindi la seguente definizione di equivalenza tra espressioni logiche: “Due espressioni

logiche nelle stesse variabili si dicono equivalenti quando hanno uguale la relativa colonna

della tavola di verità”.

Corredando sempre la spiegazione di numerosi esempi, ho dato le definizioni di

tautologia e di contraddizione ed elencato i principi fondamentali e le proprietà delle

operazioni logiche: principi di identità, non contraddizione, terzo escluso, leggi della doppia

negazione, di idempotenza, proprietà commutativa, associativa, distributiva, leggi di

assorbimento e di De Morgan.

Siamo passati quindi alla soluzione dell’indovinello proposto all’inizio. I ragazzi

hanno avanzato diverse risposte non corrette, finché due ragazzi, in due passi successivi, sono

giunti alla giusta soluzione, che recita così: “Cosa risponderebbe l’altro Angelo se gli

chiedessi qual è la porta del Paradiso?”.

Per convincerci che tale proposizione è quella corretta, li ho invitati a fare il seguente

ragionamento.

Chiamiamo A1 e A2 gli Angeli, p1 e p2 le porte. Supponiamo di porre la domanda ad

A1: per la simmetria del problema, lo stesso ragionamento varrà per la domanda posta ad A2.

A1 risponderà o “A2 direbbe p1”, o “A2 direbbe p2”.

Consideriamo il caso che risponda “A2 direbbe p1”. Allora se A1 dice il Vero, A2

dice il Falso e p1 è la porta dell’Inferno; se A1 dice il Falso, allora A2 dice il Vero e la

proposizione “A2 dice p1” è Falsa, cioè p1 è anche in questo caso la porta dell’Inferno.

Possiamo ripetere lo stesso ragionamento sulla risposta “A2 direbbe p2”, che ci

porterebbe ad affermare che p2 è la porta dell’Inferno.

La tavola di verità che riassume il ragionamento è la seguente.

6

A1 A2 “A2 direbbe p1” p1 = Paradiso

V F V F

F V F F

Verifica, correzione, risultati

Tempo: 1 ora + 1 ora

Ho voluto strutturare la verifica (riportata in allegato) con esercizi di difficoltà varia, al fine di

permettere a tutti i ragazzi di esprimere il loro livello di preparazione e le loro capacità.

Svolta senza che i ragazzi evidenziassero particolari difficoltà, la verifica ha dato

risultati positivi, poiché sono state ottenute dodici sufficienze contro nove insufficienze.

Dalla correzione sono emersi molti errori di cattiva interpretazione del testo

dell’esercizio, tanto che durante la correzione in classe ho voluto insistere con i ragazzi

sull’importanza in ogni disciplina di leggere ed analizzare i testi con attenzione.

Ho preferito distribuire i compiti corretti con i commenti, ma senza i voti, al fine di

ottenere maggiore attenzione durante la correzione alla lavagna, che io stessa ho svolto

(sempre con l’interazione dei ragazzi). Solo alla fine ho chiamato ogni ragazzo singolarmente

e ho assegnato il voto, invitando ognuno di essi a chiedermi eventuali chiarimenti.

4. Approfondimenti. Obiettivi, prerequisiti, tempi.

A partire dal problema, chiamato SAT, della soddisfacibilità delle proposizioni composte,

presentato durante il mio tirocinio attivo, riporto alcuni approfondimenti, ipotizzando di

poterli utilizzare in classe in una prossima occasione.

Il problema SAT permette infatti di presentare agli studenti di scuola superiore il

concetto di NP-completezza. Inoltre rende immediato il passaggio ad altri problemi analoghi,

quale quello dell’Algebra di Boole.

Tutti questi aspetti teorici possono quindi essere rivisitati in un’ottica più pratica,

utilizzando il programma zChaff, basato sulla procedura DPLL, che fornisce uno strumento

software per il calcolo della soddisfacibilità delle proposizioni alternativo alle tavole di verità.

Tali argomenti richiedono come prerequisito semplicemente la parte teorica già trattata

sulla logica. La conoscenza dei circuiti non è strettamente necessaria, perché può essere

introdotta in modo semplice nel corso della spiegazione. Si presuppone, invece, che gli

7

studenti siano già capaci di lanciare da un computer la finestra MS-DOS e da essa richiamare

e utilizzare un editor di linea.

Gli argomenti vengono qui proposti in forma di unità didattiche e per ognuna di esse

viene indicata la quantità di tempo necessaria per lo svolgimento della lezione. Inoltre si

possono prevedere almeno altre quattro ore in laboratorio per svolgere altri esercizi sui

modelli di quelli proposti.

UD 1 : Calcolo proposizionale e complessità – Problemi NP

Tempo: 2 ore in classe

Data una proposizione composta, i ragazzi sono in grado di costruire la corrispondente tavola

di verità. Come situazione stimolo per introdurre il problema della complessità

computazionale, si può proporre ai ragazzi di verificare tramite la tavola di verità la

soddisfacibilità di una proposizione composta costituita da sette proposizioni semplici. Essi

quindi imposteranno una tavola di verità le cui prime sette colonne conterranno tutte le

possibili combinazioni dei valori di verità delle sette proposizioni. Si accorgeranno subito di

dover preparare ben 27 = 128 righe per tale tavola di verità. Più in generale, essi

verificheranno che a una proposizione composta da n proposizioni semplici corrisponde una

tavola di verità di 2n righe.

I ragazzi vengono quindi invitati a considerare che nel momento in cui si giunge ad

una riga che verifica la soddisfacibilità della clausola, il lavoro è concluso e non è necessario

procedere con il calcolo delle righe rimanenti, poiché è stata trovata una combinazione di

valori di verità delle proposizioni semplici che soddisfa la proposizione composta. Tale riga

potrebbe trovarsi, per pura fortuna, tra le prime computate oppure, più sfortunatamente, più

avanti, e ottenuta dopo molto tempo di lavoro. Finché non viene trovata una riga che soddisfi

la proposizione, bisognerà andare avanti con la computazione e computare tutte le righe prima

di poter affermare che la proposizione composta non è soddisfacibile per nessuna

combinazione di valori di verità delle proposizioni semplici.

Inoltre si fa notare agli studenti che, se è nota una soluzione del problema, cioè una

sequenza ordinata di valori che soddisfa la proposizione composta, è facile e immediato

verificare la sua validità, semplicemente sostituendo tali valori nella proposizione di partenza.

Un esempio di tal genere può essere molto incisivo per far comprendere ai ragazzi

cosa sia un problema NP, in termini descrittivi: un problema appartiene alla classe di

problemi NP se è un problema la cui soluzione richiede molto tempo, ma tale che, nota una

8

soluzione, è facile mostrarne la validità.

Per allargare il discorso, si fa presente agli studenti che molti problemi sono

riconducibili alla soddisfacibilità delle proposizione composte, cioè sono rappresentabili in

tali termini.

Di conseguenza, se un giorno un bravo matematico o logico troverà un metodo, cioè

un algoritmo, per risolvere velocemente il problema SAT, allora esso potrà essere dichiarato

un problema della classe P (risolubile in poco tempo, in tempo Polinomiale) e tutti i problemi

ad esso riconducibili si troveranno anch’essi a far parte della classe P. Poiché non è ancora

dimostrata né l’esistenza, né la non esistenza di tale algoritmo, non possiamo neanche

affermare se il problema SAT appartenga o meno alla classe P.

UD 2 : Uno strumento software per il problema SAT: la procedura DPLL e zChaff

Tempo: 2 ore in classe + 2 ore in laboratorio

Vogliamo fornire agli studenti uno strumento per la risoluzione dei problemi di

soddisfacibilità delle proposizioni logiche che sia alternativo alle tavole di verità, delle quali

essi già conoscono la lunghezza di compilazione e come si prestino facilmente ad errori di

scrittura.

La procedura DPLL è stata sviluppata nel corso degli anni a partire dal 1960 da Davis,

Putnam, Logemann, Loveland, in fasi successive. Essa affronta il problema SAT tramite

alcune tecniche che, grazie alle sofisticate realizzazioni ingegneristiche attuali, rendono

efficacemente affrontabile tale problema anche quando esso contiene ben 10.000 variabili,

come ampi risultati sperimentali hanno dimostrato. Alcune strategie permettono infatti di

ridurre il numero dei casi da trattare o, per usare i termini noti ai ragazzi, permettono di non

effettuare il calcolo di alcune righe della tavola di verità corrispondente al problema in analisi,

che già si possono dire non soddisfacibili per qualche “somiglianza” con righe già trattate. La

procedura agisce ricercando un assegnamento che soddisfa la proposizione e cercando di

propagare ai passaggi successivi i risultati intermedi ottenuti.

La procedura DPLL è in grado di operare solo su proposizioni in forma normale

congiunta, cioè scritte come congiunzioni di altre proposizioni; queste ultime, che chiamiamo

clausole, possono essere costituite da proposizioni semplici, da proposizioni semplici negate,

da disgiunzioni di proposizioni semplici o semplici negate.

Per esempio, se indichiamo con le lettere maiuscole le proposizioni semplici, ecco un

esempio di proposizione composta in forma normale congiunta:

9

.

Lo strumento software che implementa la procedura DPLL si chiama zChaff ed è stato

sviluppato alla Princeton University nel 2001. Esso, quindi, è un risolutore di problemi SAT,

ma chiede che le proposizioni date in input siano in forma normale congiunta e che rispettino

una rigorosa sintassi.

Al fine di usare lo strumento zChaff, i ragazzi devono quindi imparare a manipolare

con facilità le proposizioni logiche, utilizzando le proprietà a loro già note, per poterle

trasformare in proposizioni equivalenti in forma normale congiunta, come richiesto in input

dallo stesso zChaff1; inoltre devono imparare ad usare un formalismo estremamente rigoroso,

ma semplice, per tradurre le proposizioni in forma normale congiunta nella sintassi richiesta

per la scrittura del file di input del programma. Tali regole sono le seguenti:

le righe di commento iniziano con la lettera c;

l’elenco delle clausole deve essere preceduto dalla seguente riga:

p cnf numero_lettere numero_clausole,

dove numero_lettere indica il numero di proposizioni semplici che compongono la

proposizione logica e numero_clausole indica il numero di clausole presenti;

ad ogni proposizione semplice viene associato un numero compreso tra 1 e

numero_lettere;

la proposizione semplice negata viene indicata con il numero assegnatole preceduto

dal segno meno;

ogni clausola viene indicata con i numeri delle proposizioni semplici che la

compongono separati da uno spazio e conclusa con uno 0.

Quindi, assegnando i valori da 1 a 5 alle lettere dalla A alla E, l’esempio riportato prima viene

tradotto nel seguente file di input:

c Esempio 1

p cnf 5 6

1 0

-2 0

3 4 01 Esiste in realtà uno strumento software che, data in input una qualsiasi proposizione logica, la trasforma in una equivalente in forma normale congiunta. Tale strumento è un modulo di SPASS, un dimostratore automatico di teoremi del Max-Plank-Institut in Germania. Può risultare, però, più formativo per i ragazzi imparare a manipolare in modo rigoroso le proposizioni, piuttosto che introdurre un nuovo strumento concettualmente impegnativo.

10

1 -4 0

-5 2 0

-3 -5 0

Gli studenti potranno quindi utilizzare lo strumento zChaff solo dopo aver effettuato le due

trasformazioni delle proposizioni dapprima in forma normale congiunta, poi nella sintassi

richiesta.

Per lanciare il programma, occorre dal PC richiamare una finestra MS-DOS; dopo

essersi spostati nel direttorio che contiene l’eseguibile, bisogna dare il comando “zChaff”

seguito dal nome del file che si vuole dare in input. È opzionale dare un secondo parametro

che indica un limite di tempo: se entro tale tempo il programma non avrà raggiunto una

conclusione, esso terminerà comunque.

Il risultato è formato da più righe, l’ultima delle quali indica se il problema dato in

input è o meno soddisfacibile. In caso affermativo, una delle righe precedenti riporta un

assegnamento che soddisfa il problema di partenza (facilmente riconoscibile perché seguito

dalla dicitura “Random Seed Used”). Ogni numero positivo corrisponde

all’assegnamento uguale a 1 alla proposizione semplice corrispondente a quel numero; se il

numero compare negativo, l’assegnamento è uguale a 0. Nel caso del nostro esempio,

otteniamo che il problema è soddisfacibile; troviamo infatti nell’output le seguenti

indicazioni:

1 -2 3 -4 -5 Random Seed Used

RESULT: SAT

che ci indica che l’assegnamento che soddisfa la proposizione è 1 -1 1 -1 -1 alle proposizioni

semplici A, B, C, D, E.

L’utilità di tale strumento sta anche nel permettere di far conoscere ai ragazzi

l’esistenza di strumenti software realmente utilizzati nell’industria per verificare la correttezza

dei circuiti logici, oppure per applicazioni su grafi che potrebbero riguardare, per esempio, i

percorsi delle ferrovie.

11

UD 3 : Equivalenza di alcuni formalismi

Tempo: 2 ore in classe

Nella scuola in cui ho svolto il tirocinio, un ITIS, gli studenti conoscevano già l’algebra di

Boole e i circuiti logici, perché studiati in Elettronica. Nel nostro contesto, questi due

argomenti possono essere ripresi (o introdotti completamente, nel caso di scuole di altro

genere) perché permettono di mostrare agli studenti in modo semplice ed immediato

l’equivalenza tra i due formalismi e la loro equivalenza con la logica proposizionale. Si può

riprendere anche l’algebra degli insiemi e mostrare che anch’essa è equivalente agli altri tre

formalismi. In questo contesto rimaniamo su un livello qualitativo, ma si può scegliere, anche

in base alla risposta della classe a tali argomenti, se mostrare le equivalenze usando degli

esempi o se enunciare e dimostrare i teoremi relativi. Tali ragionamenti permetterebbero agli

studenti di capire che uno stesso problema può essere scritto in quattro modi diversi, tutti

equivalenti tra loro; e che un problema studiato, per esempio, in Elettronica, può essere

opportunamente riscritto in modo da poterlo sottoporre allo strumento zChaff per ottenerne la

soluzione.

Per affrontare i quattro formalismi, occorre inizialmente riprenderne una semplice

definizione.

Nel caso dell’algebra degli insiemi, si possono introdurre i concetti di insieme, di

unione, di intersezione, di complemento per rapportarli poi ai concetti di proposizione

semplice, di congiunzione, di disgiunzione e di negazione. In generale, per rendere uniforme

la correlazione tra operazione insiemistica e proposizione composta, è opportuno esprimere

quest’ultima in termini dei soli connettivi logici , , , operazione che gli studenti sono

già in grado di fare, utilizzando le proprietà logiche viste nelle prime lezioni.

L’algebra di Boole può essere presentata parlando di un insieme B dotato di due

operazioni binarie e , dell’operazione unitaria ’ e di due elementi distinti 0 e 1 per i quali

valgono le leggi commutative, distributive e gli assiomi seguenti, per ogni x appartenente a B:

Anche in questo caso la corrispondenza biunivoca tra l’espressione booleana e la forma

proposizionale può essere mostrata sostituendo i simboli , e ’ dell’algebra booleana con i

simboli corrispondenti delle proposizioni logiche.

Infine si può parlare di circuito logico. Innanzitutto si introducono dei semplici circuiti

di commutazione, aventi un ingresso, un’uscita e più interruttori del tipo aperto/chiuso,

12

mostrando come si possano considerare gli interruttori analoghi alle proposizioni semplici; la

posizione reciproca degli interruttori, posti in serie o in parallelo, determina la rispettiva

corrispondenza con la congiunzione e la disgiunzione della logica proposizionale, mentre il

nome negato, per esempio , associato ad un interruttore permette la corrispondenza con la

negazione della logica. Come nella logica proposizionale ogni proposizione semplice può

assumere uno dei due valori di verità Vero – Falso, così ciascun interruttore può assumere lo

stato di aperto o chiuso, normalmente indicati con 0 = aperto, 1 = chiuso. Come nella logica

proposizionale vogliamo conoscere il valore della proposizione composta formata dalle

proposizioni semplici legate dai connettivi logici, così nel caso di un circuito che colleghi più

interruttori vogliamo sapere se la corrente passa da un estremo all’altro, in base allo stato di

ciascun interruttore. La figura che segue mostra un esempio di circuito logico e la

corrispondente formulazione in logica proposizionale.

UD 4 : La logica proposizionale e i circuiti elettronici – Esercizi

Tempo: 2 ore in laboratorio

La logica proposizionale afferma che qualsiasi proposizione può essere espressa servendosi di

proposizioni semplici e dei tre connettivi logici di negazione, congiunzione e disgiunzione.

Ciò significa che la realizzazione dei circuiti elettronici corrispondenti a questi tre operatori

permette di realizzare una qualsiasi rete elettronica, in grado di compiere operazioni logiche

su segnali binari, come una opportuna interconnessione dei circuiti fondamentali. Gli

equivalenti elettronici degli operatori logici sono chiamati porte logiche e gli schemi che si

usano per rappresentarle sono quelli in figura, che riportano nell’ordine, il circuito

C

A

¬B

CBA )(

)( BA

13

corrispondente alla negazione, quello della congiunzione e quello della disgiunzione.

Come esercizio per i ragazzi, partendo dal circuito logico del paragrafo precedente, la cui

proposizione logica è già espressa in forma normale congiunta, creiamo il file di input per

zChaff:

c Circuito1

p cnf 3 2

1 -2 0

3 0

Il risulato dell’elaborazione è il seguente:

1 -2 3 Random Seed Used

RESULT: SAT

Vediamo un altro esempio e consideriamo il seguente circuito:

Esso corrisponde alla proposizione logica

A ¬CB

¬C ¬A

14

che può essere trasformata in forma normale congiunta. Applicando infatti la proprietà

distributiva, si ottiene la proposizione equivalente:

Applichiamo ancora la proprietà distributiva:

Poi, per il principio del terzo escluso,

Infine, per la proprietà di Vero e Falso, otteniamo la seguente proposizione equivalente a

quella di partenza:

.

Quest’ultima proposizione corrisponde ad un circuito equivalente al primo, ma più semplice:

La proposizione ottenuta può quindi essere trascritta secondo la sintassi zChaff:

c Circuito2

p cnf 3 2

-3 0

-1 2 0

Il file viene dato in input al programma zChaff, che ritorna il seguente risultato

¬C

B

¬A

15

dell’elaborazione:

-1 2 -3 Random Seed Used

RESULT: SAT

UD 5 : Equivalenza di circuiti

Tempo: 2 ore in classe + 2 ore in laboratorio

Supponiamo ora di voler verificare l’equivalenza logica di due circuiti.

Si tratta di un problema concreto, che si presenta in aziende costruttrici di

microprocessori allorché devono verificare che il complesso circuito costruito equivalga al

problema logico per risolvere il quale tale circuito è stato concepito.

Proponiamo quindi il problema agli studenti sotto forma di verifica di equivalenza di

due circuiti.

A causa della formulazione più complicata che le proposizioni logiche possono

presentare per tali esercizi, introduciamo un metodo, detto metodo strutturale, che permette di

trasformare facilmente una proposizione nella sua forma normale congiunta.

Il metodo strutturale parte da formule che abbiano la negazione presente solo davanti

alle proposizioni semplici (condizione facilmente ottenibile applicando le proprietà già note).

All’interno della proposizione da trasformare, si individua una parte del tipo o

del tipo . Introduciamo una nuova proposizione semplice a e nella

proposizione sostituiamo ogni occorrenza di con a. Aggiungiamo inoltre alla

formula intera i due congiunti .

Per esempio, applicando il metodo strutturale alla formula

,

sostituiamo A1 ad ogni occorrenza di , A2 ad ogni occorrenza di , A3

ad ogni occorrenza di ; otteniamo la seguente forma normale congiunta,

equivalente a quella iniziale, ma contenente una proposizione semplice in più:

.

16

Con l’aiuto di questo strumento, possiamo ora affrontare il problema dell’equivalenza

di due circuiti indicando con e con le proposizioni logiche corrispondenti ai due circuiti.

Se i due circuiti, e quindi le due proposizioni, sono equivalenti, allora deve valere che

è una tautologia. Occorre quindi verificare che siano tautologie entrambe le formule

e .

Le due espressioni, per le note proprietà della logica proposizionale, si possono riscrivere

rispettivamente come

e .

Siccome zChaff agisce per refutazione, esso sa verificare non quando una formula è una

tautologia, ma quando una formula è insoddisfacibile. Tuttavia una formula è una tautologia

se e solo se la sua negazione è insoddisfacibile. Quindi neghiamo entrambe le espressioni e

otteniamo

e .

Se entrambe queste formule sono insoddisfacibili, i due circuiti sono equivalenti, altrimenti

no. Ognuna di queste due formule deve essere trasformata dagli studenti in forma normale

congiunta, riscritta in un file secondo la sintassi opportuna e data in input allo strumento

zChaff. Se zChaff risponde UNSAT per entrambe le elaborazioni, allora essi potranno

concludere che i due circuiti sono equivalenti (perché abbiamo sottoposto a zChaff il

problema negato); se zChaff da come risultato SAT in uno solo dei casi o in entrambi, i

circuiti non sono equivalenti.

Prendiamo come esempio i due circuiti delle pagine 14 e 15, che abbiamo già mostrato

essere equivalenti, e applichiamo il ragionamento. Abbiamo:

17

e ,

da cui

e quindi, negando entrambe,

La prima espressione, riscritta in forma normale congiunta utilizzando il metodo strutturale,

diventa:

La seconda, anch’essa riscritta in forma normale congiunta, diventa:

.

Scriviamo ora il primo file di input per zChaff:

c PrimaImplicazione

p cnf 4 7

-4 -3 0

-3 4 0

-1 4 0

-2 3 0

-4 1 0

-4 2 0

1 3 0

Il file che riporta la seconda espressione è il seguente:

18

c SecondaImplicazione

p cnf 3 4

-1 -2 3 0

-1 2 0

-3 0

1 3 0

Il risultato che zChaff ritorna, dando in input il primo file, è:

RESULT: UNSAT

Per il secondo file, il risultato è esattamente lo stesso:

RESULT: UNSAT

Per le argomentazioni precedenti, possiamo affermare che i due circuiti di partenza, e quindi

le loro proposizioni logiche, sono equivalenti.

Verifica

Tempo: 2 ore in laboratorio

In una possibile verifica da svolgere in laboratorio, si può proporre agli studenti di stabilire

l’equivalenza o meno di due circuiti, al fine di verificare che abbiano compreso le varie fasi

che portano al corretto completamento dell’esercizio. Gli studenti dovranno quindi mostrare

di conoscere i seguenti passi, che ripercorrono le unità didattiche proposte:

dato un circuito, ricavare la proposizione logica corrispondente;

mettere in relazione le due proposizioni logiche dei due circuiti, per sottoporle a

zChaff secondo la sua logica;

trasformare una proposizione logica in un’altra equivalente che sia in forma normale

congiunta;

trasformare una proposizione logica in un file, secondo la sintassi zChaff;

eseguire zChaff e saper leggere il risultato dell’elaborazione;

trarre le dovute conclusioni sull’equivalenza dei circuiti dati.

19

Bibliografia

Per le parti teoriche:

S. Ghilardi, E. Nicolini, D. Zucchelli, Introduzione alla procedura DPLL

M. Maiocchi, Teoria e applicazioni delle macchine calcolatrici, Casa Editrice

Ambrosiana, 1984

D. Mandrioli, C. Ghezzi, Theoretical foundations of computer sciences, John Wiley &

Sons, 1987

E. Mendelson, Algebra di Boole e circuiti di commutazione, Collana Schaum – ETAS

Libri, 1974

Per DPLL, zChaff, SPASS:

S. Ghilardi, E. Nicolini, D. Zucchelli, Introduzione alla procedura DPLL

http://www.dit.unitn.it/%7Erseba/DIDATTICA/Tutorials/Slides_tutorial_cade04.pdf

http://www.princeton.edu/~chaff/zchaff.html

http://spass.mpi-sb.mpg.de/

20

ALLEGATO I: Verifica in classe

1. Date le seguenti proposizioniA. “Roma è la capitale d’Italia”B. “Milano è in Veneto”C. “La Sardegna è un’isola”

scrivi in parole le seguenti proposizioni composte e assegna a ognuna il valore di verità:1.a 1.b 1.c

2. Costruisci la tavola di verità della proposizione .

3. Dopo aver attribuito il valore di verità alle proposizioni semplici che seguono, attribuisci il valore di verità alle proposizioni composte indicate:

A. “Il quadrato è un parallelogramma”B. “Il quadrato è un rettangolo”C. “Il quadrato è un trapezio”

3.a 3.b 3.c 3.d3.e 3.f 3.g 3.h

4. Utilizzando la tavola di verità, verifica che le due proposizioni seguenti sono equivalenti:

________

Dimostra la validità delle seguenti equivalenze senza l’aiuto delle tavole di verità:5.6.7.________

Date le seguenti proposizioni composte, indica ogni proposizione componente con una variabile e riscrivi la proposizione composta in forma simbolica.Esempio: “Se piove o nevica, allora non esco”.

A: “piove”; B: “nevica; C: “io esco”.

(Suggerimento: è utile scrivere ogni proposizione con il suo soggetto, anche se è sottinteso.)8. “Se non studi, non prenderai la sufficienza”.9. “Se un parallelogramma è un quadrato, allora è un rombo e un rettangolo”.10. “Se un numero è multiplo di 10, allora è pari ed è divisibile per 5”.11. Se il mare è calmo e Alessandro scrive romanzi, allora Giacomo scrive poesie”.________

12. Scrivi se ognuna delle seguenti proposizioni è una tautologia o una contraddizione (puoi verificarlo con le tavole di verità o con semplici ragionamenti):

13. Analogamente a come fatto in classe, disegna il circuito con lampadina e interruttori corrispondente alla proposizione .

21