[{"id":"l-intelligenza-artificiale-e-risvolti-sociopolitici-ed-economici","title":"Intelligenza Artificiale e risvolti sociopolitici ed economici","description":"","date":"2025-01-12T00:00:00.000Z","tags":["AI","Economy","Politics","Capitalism","Comunism"],"authors":["valerio-di-tommaso"],"collection":"blog","isSubpost":false,"parentTitle":"","url":"/blog/l-intelligenza-artificiale-e-risvolti-sociopolitici-ed-economici","content":"--- L’intelligenza artificiale ha avuto il suo boom a fine 2022 con il rilascio del modello GPT-3.5 dell’azienda OpenAI (allora un’azienda no-profit). Questa tecnologia nella sua forma contemporanea esiste da circa 2 decenni e il suo concetto nel mondo informatico è sempre stato noto da molto prima, tuttavia a seguito di questo “boom” ora è un concetto che è fuori uscito dalla nicchia di professionisti e ricercatori di IA ed ha spopolato a tal punto da diventare persino punto di forza nelle pubblicità, dove viene usato indiscriminatamente (rispetto a prima) il termine “IA” o “Intelligenza artificiale” per attirare curiosità verso un determinato prodotto, al fine di cercare di cavalcare l’onda di questo boom. Come è nato però questo boom? GPT-3.5 è un “Large Language Model” che è stato integrato nel servizio di chat gratuito “ChatGPT” e che ha dimostrato capacità conversazionali mai viste prima di quel momento, risultato capace di svolgere diversi compiti sotto richiesta in modo molto fedele a quello di un umano, riuscendo a velocizzare impressionantemente diversi task lavorativi. Da quel momento sino ad ora, la tecnologia dell’intelligenza artificiale migliora in modo impressionante ogni mese, grazie anche al gigantesco flusso di denaro che ruota attorno alle aziende che la sviluppano. Tant’è che OpenAI, l’azienda madre di ChatGPT, sta attualmente mutando dall’essere una società di tipo no-profit a società a scopo di lucro. L’intelligenza artificiale è diventata argomento di numerose discussioni ed è un tema estremamente divisivo. Certi la definiscono una rivoluzione che porterà solo miglioramenti alla società ed altri (un po' più coi piedi a terra) pensano l’opposto. Ci sono anche diverse figure, tuttavia non realmente conoscenti della materia, che mettono in dubbio l’attuale potenza dell’IA in quanto pensano che ancora non sia una tecnologia pronta a cambiare il mondo (indifferentemente se in modo positivo o negativo). Nello specifico hanno sottovalutato la potenza dell’intelligenza artificiale in quanto committente di diversi errori se paragonati con dei professionisti umani in uno stesso ambito. Certamente l’intelligenza artificiale non è una mente infallibile, tuttavia questo atteggiamento di definire l’IA mai all’altezza, di fatto mette implicitamente alla luce l’unica verità dietro alle espressioni di queste persone, ossia: la paura. Le persone iniziano a temere la capacità dell’IA di semplificare in pochi minuti attività che prima duravano ore, e lo sviluppo rapidissimo che porta l’IA a permettere cose un mese prima impensabili preoccupa. Ma per cosa? Per il lavoro. Diciamocelo chiaramente, viviamo in una società che applica il modello capitalista, dunque detto in parole povere: Persona X lavora per avere soldi con il quale poter comprare beni e bisogni per sopravvivere, persona Y paga la persona X con i soldi ricavati dalla vendita di un bene o servizio permesso dal lavoro della persona X. In questi ultimi anni a seguito del boom delle IA, si sentono numerose notizie di licenziamenti in tutti i tipi di industrie, in quanto non solo grazie all’IA si ha bisogno di meno dipendenti in quanto ogni dipendente può produrre di più, ma intere sezioni in numerose aziende sono state rimpiazzate da un singolo sistema IA. E questo NO, non è un fattore positivo, certamente lo è per l’imprenditore, che riduce ulteriormente i costi aumentando la produttività, ma l’IA per chiunque ne sappia un minimo in materia è chiaramente una tecnologia che sta facendo ADESSO un grande cambiamento storico alla società. L’IA sta attualmente dando l’assaggio del problema che causerà a QUESTA società e sarà INDUBBIAMENTE capace di portarla al totale declino, un capitalismo decadente, praticamente un mondo cyberpunk. Se adesso possiamo osservare in numerose aziende la sostituzione di impiegati con sistemi automatizzati IA in settori che svolgevano compiti lunghi e ripetitivi, come ad esempio: disegnatore, segretaria, assistenza clienti, scrittori tecnici, linguisti, traduttori, copywriter, correttori di bozze, analisti di dati, gestione di campagne marketing, socia media manager, videomaker, grafico, analista di mercato, gestione delle risorse umane, attività editoriali. Nel futuro vedremo anno dopo anno, nascere o evolvere IA capaci di rimpiazzare i lavori più complessi, fino ad arrivare persino a lavori pratici e fisici come ad esempio: l’operaio, disegnatore, regista, attore, cuoco, cameriere, babysitter, autista ecc…, si potrebbe continuare fino a finire tutti i lavori esistenti, forse tranne gli sportivi altrimenti guardare lo sport diventerebbe una barzelletta. Purtroppo questo accadrà: 1. Perché chi conosce bene la materia sa perfettamente che ormai siamo al punto in cui riuscire ad automatizzare tutti i lavori non è più un problema tecnicamente inarrivabile o impensabile, manca solo il tempo (comunque rapidissimo in relazione a quelli di tutte le altre invenzioni e tecnologie fatte dalla specie umana). 2. Ci sono le prove ufficiali di test su IA ancora in sviluppo che saranno capaci di produrre video di stampo cinematografico con dettagli curatissimi oppure capaci di controllare unità robotiche capaci persino di compiere acrobazie (per vantarsi dei progressi e dare dimostrazione delle capacità della tecnologia). 3. Gli imprenditori vorrebbero potersi risparmiare lo stipendio di ogni loro dipendente più di quanto un libanese vorrebbe riavere una casa o i suoi famigliari in vita. Quindi in definitiva, perché la gente teme l’IA nel contesto lavorativo? A parte che se hai seguito il discorso è ovvio, però te lo dico lo stesso per concludere. Persona X non riesce più a trovare lavoro e quindi non può più comprare beni o servizi, che sono prodotti dalle attività della persona Y che dopo aver avuto impennate nei guadagni in quanto tutte le attività lavorative della sua attività sono state sostituite da IA inizia a vedere i suoi guadagni precipitare quasi fino a fermarsi in quanto non vi è più la presenza di clienti. Dunque, rimangono le persone X che muoiono di fame e tornano al baratto, e i clienti Y che hanno quantità di denaro più elevate della quantità di molecole nel pianeta terra e che non possono spendere in niente, se non come moneta in una microeconomia formata dai pochi imprenditori rimasti sul pianeta. Questa è quindi una stagnazione totale dell’economia e quindi di un aumento vertiginoso della povertà globale, tipo 98%. No, non credete alla favola che ci sarà un reddito base per tutta l’umanità, perché allora comunque gli imprenditori si arricchirebbero sempre di più nel cercare di succhiare più soldi in cambio di beni e servizi che producono senza costi grazie a tecnologie che si potrebbero addirittura automantenere. Questa pratica renderebbe in pratica tutte le persone aventi questo reddito paritario solo delle pedine per far diventare sempre più ricche quelli già più ricchi. La soluzione migliore in una situazione del genere sarebbe quella di abbattere la moneta, tanto non ha alcun senso con un mezzo così potente come l’IA. Se devo dare una opinione personale, su quello che ci aspetta nel futuro a causa delle implicazioni nel mondo del lavoro dell’IA, direi letteralmente che “siamo tutti nella merda” ma meglio che mi corregga che mi ci sento io, ovunque mi giro vedo gente esaltata per cose che in realtà le stanno affondando e nemmeno se ne accorgono. Io dinanzi a me vedo un modo destinato ad essere sempre peggio a causa delle strade prese dall’umanità in questi anni e negli scorsi decenni, io non so se combattere o meno in prima linea per avere un mondo migliore, più giusto, non so se ne ho il coraggio o le capacità, rimarrò pero sempre con gli occhi e orecchie aperte per vedere e ascoltare quello che c’è realmente davanti a noi e quello che sta per arrivare. La verità è che una soluzione che mira ad evitare questa stagnazione c’è ma la reputo abbastanza improbabile a causa dell’indottrinamento capitalista che ha ormai creato una fede in questo sistema economico prossimo ormai al suo collasso assieme l’umanità intera. ---"},{"id":"logica-e-reti-logiche/lessons/algebra-di-commutazione","title":"Algebra di Commutazione","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/algebra-di-commutazione","content":"--- ## L'intuizione di Claude Shannon Claude Shannon, durante il suoi studi universitari al MIT (Massachusets Institute of Technology), venne assegnato a lavorare sull'Analizzatore Differenziale di Bush (calcolatore meccanico per il calcolo di equazioni differenziali). Nell'Analizzatore vi era collegato un circuito composto da oltre 100 relè. Così Shannon, alla ricerca di un modo che permettesse la sintesi di tale circuito, intuì come l'Algebra di Boole permettesse di definire un modello formale per l'analisi e la sintesi di un sistema simile al circuito collegato all'analizzatore. Al termine di questi studi, Shannon pubblicò la sua tesi di master, nel quale dimostrò come i simboli logici di Boole potessero essere trattati come una serie di interruttori accesi o spenti, permettendone quindi un'applicazione ai circuiti elettrici. --- ## Definizione dell'Algebra di Commutazione L'**Algebra di Commutazione** (Switching Algebra) è un'Algebra di Boole: $$\\mathcal{B}=\\langle A,+,\\cdot,^{\\prime},0,1\\rangle$$ - Nel quale il supporto $A$ è un insieme costituito dai soli valori: $0$ e $1$ ($2^1$).$$A = \\{ 0, 1 \\}$$ - Ciascuna variabile/ingresso può quindi assumere il valore di $0$ oppure $1$. **Approfondisci: Le [Variabili Booleane](/courses/logica-e-reti-logiche/lessons/variabili-booleane/).** --- ### Gli operatori dell'Algebra di Commutazione: Vediamo di seguito le definizioni degli operatori utilizzati nell'Algebra di Commutazione attraverso sia Tabelle di verità che Mappe di Karnaugh: - **OR**. - **XOR** <--- L'**OR esclusivo**, significa che vale 0 se i due input sono diversi dal valore neutro dell'operatore. Nel caso dell'OR, lo \"XOR\" restituirebbe $0$ anche quando i due input dati all'operatore sono entrambi $1$. - **AND**. - **NOT** - Dal quale derivano logicamente: - **NOR** <--- Un'OR negato (quindi \"specchiato\"). - **XNOR** <--- Uno XOR negato (\"specchiato\"), che sarebbe uguale ad un eventuale \"XAND\" se esistesse. - **NAND** <--- Un AND negato (\"specchiato\"). #### Tabelle di verità: | $a$ | $b$ | $a + b$ (OR) | $a \\oplus b$ (XOR) | $a \\cdot b$ (AND) | | --- | --- | ------------ | ------------------ | ----------------- | | $0$ | $0$ | 0 | 0 | 0 | | $0$ | $1$ | 1 | 1 | 0 | | $1$ | $0$ | 1 | 1 | 0 | | $1$ | $1$ | 1 | 0 | 1 | | $^{\\prime}$ (NOT) | | | ----------------- | --- | | $0$ | 1 | | $1$ | 0 | ##### Mappe di Karnaugh: | $+$ (OR) | $0$ | $1$ | | -------- | --- | --- | | $0$ | 0 | 1 | | $1$ | 1 | 1 | | $\\oplus$ (XOR) | $0$ | $1$ | | -------------- | --- | --- | | $0$ | 0 | 1 | | $1$ | 1 | 0 | | $\\cdot$ (AND) | $0$ | $1$ | | ------------- | --- | --- | | $0$ | 0 | 0 | | $1$ | 0 | 1 | | $^{\\prime}$ (NOT) | | | ----------------- | --- | | $0$ | 1 | | $1$ | 0 | --- Continua con... Le [Proprietà dell'Algebra di Boole](/courses/logica-e-reti-logiche/lessons/proprieta-dell-algebra-di-boole/)."},{"id":"logica-e-reti-logiche/lessons/bistabili","title":"Bistabili","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/bistabili","content":"--- placeholder --- **Reti Logiche terminate.** _Continua con..._ L'[Algebra della Logica](/courses/logica-e-reti-logiche/lessons/algebra-della-logica/)."},{"id":"logica-e-reti-logiche/lessons/circuiti-logici","title":"Circuiti Logici","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/circuiti-logici","content":"--- Un **Circuito Logico** (o rete logica) è semplicemente un insieme di porte logiche collegate tra loro per realizzare una funzione più complessa, che ci permette di **tradurre direttamente qualsiasi espressione booleana in un circuito logico**. --- #### Come si \"traduce\" da espressione a circuito? Si segue l'ordine delle operazioni tenendo conto anche delle priorità secondo l'algebra (ad esempio l'AND che ha priorità rispetto all'OR): 1. Si parte rappresentando gli ingressi (le variabili $x, y, z, ...$). 2. Si rappresentano operazioni più interne come i NOT. 3. Si rappresentano gli AND. 4. Si rappresentano gli OR. _Esempio:_ Espressione: $f = x + y^{\\prime}z$ 1. Prendi gli ingressi $x, y, z$. 2. Usa una porta NOT per creare $y^{\\prime}$. 3. Usa una porta AND con ingressi $y^{\\prime}$ e $z$ per creare il termine $y^{\\prime}z$. 4. Usa una porta OR con ingressi $x$ e $y^{\\prime}z$ per ottenere l'uscita finale $f$. ![Main(2).png](../multimedia/Main(2).png) --- ## Ritardi Nella realtà le porte logiche non sono istantanee, ma hanno un piccolo ritardo tra quando ricevono gli ingressi e quando l'uscita si stabilizza, dovuto ai transistor. Si dice **Cammino Critico (Critical Path)**, il percorso dall'ingresso all'uscita che attraversa il maggior numero di porte logiche (e quindi ritardi) eccetto i negatori in quanto considerati accorpati alle porte logiche degli operatori. Infatti questo percorso determina il **ritardo totale** del circuito. _Esempio:_ ![Pasted image 20251013121017.png](../multimedia/Pasted%20image%2020251013121017.png) _Una Tabella con le _ --- ## Circuiti a Due Livelli Anche le espressioni in **Prima Forma Canonica (SOP)** e **Seconda Forma Canonica (POS)** possono essere tradotte da espressioni booleane a Circuiti Logici. La peculiarità di queste due forme canoniche è che tradotti in Circuiti Logici: **corrispondono sempre a Circuiti a 2 Livelli** e porte logiche ad $n$ ingressi. - **Circuito SOP:** 1. Primo livello di porte **AND** che corrispondono ai **mintermini**. 2. Secondo livello di porte **OR** per sommare i **mintermini** dell'espressione. - **Circuito POS:** 1. Primo livello di porte **OR** che corrispondono ai **maxtermini**. 2. Secondo livello di porte **AND** per moltiplicare i **maxtermini** dell'espressione. --- _Continua con..._ I [Sommatori](/courses/logica-e-reti-logiche/lessons/sommatori/)."},{"id":"logica-e-reti-logiche/lessons/espressioni-booleane","title":"Espressioni Booleane","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/espressioni-booleane","content":"--- Un'espressione booleana è la formula che costruiamo sfruttando le regole dell'Algebra di Boole. Un'espressione booleana è definita da questi 4 princìpi: - **Costanti:** Gli elementi $0$ e $1$ sono espressioni booleane. - **Variabili:** Le variabili (come $x, y, z$ etc...) sono espressioni booleane. - **Combinazioni:** Se $h$ e $g$ sono espressioni, allora lo sono anche: - $h + g$ - $h \\cdot g$ - $h^{\\prime}$ - Non esistono altre espressioni oltre quelle definite iterando i precedenti 3 princìpi appena elencati. Quindi in definitiva: è un'espressione booleana qualsiasi formula che puoi scrivere usando $0$, $1$, $x$, $y$, ... e gli operatori OR, AND e NOT. --- _Approfondisci brevemente anche..._ - [Notazioni e Convenzioni nelle espressioni booleane](/courses/logica-e-reti-logiche/lessons/notazioni-e-convenzioni-nelle-espressioni-booleane/). <--- **Non ancora scritto.** - [Letterali](/courses/logica-e-reti-logiche/lessons/letterali/). <--- **Non ancora scritte.** --- ## Valutazione di un'espressione booleana Fin'ora abbiamo considerato tabelle di verità con funzioni abbastanza semplici, ad esempio funzioni che restituivano $1$ se tutte le variabili erano uguali. Ma nella maggior parte dei casi l'output di una funzione potrebbe esser legato ad una espressione booleana, ad esempio: $$e = z(y + x) + xy$$ In questo caso, osservando l'espressione deduciamo che la funzione booleana in questione ha 3 variabili ($x, y, z$). Quindi per calcolare all'interno della tabella di verità di $f(x, y, z)$ l'output per ogni combinazione di input (ogni riga), dobbiamo sostituire i valori di $x, y, z$ e valutare (ossia calcolare) l'espressione con quei valori sostituiti alle lettere. | $x$ | $y$ | $z$ | $f(x, y, z)$ | | --- | --- | --- | ------------ | | $0$ | $0$ | $0$ | 0 | | $0$ | $0$ | $1$ | | | $0$ | $1$ | $0$ | | | $0$ | $1$ | $1$ | | | $1$ | $0$ | $0$ | | | $1$ | $0$ | $1$ | | | $1$ | $1$ | $0$ | | | $1$ | $1$ | $1$ | | ##### Vediamo la questione in modo più pratico: Consideriamo l'espressione $e = z(y + x) + xy$ Iniziamo dalla prima riga: - Abbiamo da valutare $e(0, 0, 0);$ <-- Ossia $x=0, y=0, z=0$. - $0(0 + 0) + 0 \\cdot 0 =$ - $= 0 \\cdot 0 + 0$ = - $= 0 + 0 =$ - $= 0;$ Ripetendo questo processo per tutte le righe, si ottiene la tabella di verità completa per l'espressione $e = z(y + x) + xy$. --- ## Specifiche su Espressioni e Funzioni - Ad una **singola espressione** corrisponde **una sola funzione**. - Ad una **singola funzione** (tabella di verità) possono corrispondere anche **più espressioni diverse**. - Due o più espressioni si dicono **equivalenti** se generano la stessa tabella di verità (la stessa funzione). - _Esempio:_ - $e_1 = x + x^{\\prime}y$ - $e_2 = x + y$ Queste due funzioni sopra elencate sono diverse, ma producono la stessa tabella di verità (la stessa funzione) e sono quindi **equivalenti**. _Perché?_ - Beh, oltre a verificarlo valutandole entrambe, basta anche notare che sull'espressione $e_1$ è possibile applicare la **proprietà di Semplificazione** e vedere che l'espressione diventa $x + y$, quindi $e_1 = e_2$. --- ## Espressioni Booleane a confronto: Prima di passare al **Teorema di espansione di Shannon** e successivamente alle **forme canoniche**, rimarchiamo certi concetti fondamentali: - Come abbiamo detto, una singola funzione è una tabella di verità che può essere rappresentata da **molte espressioni** equivalenti. Tuttavia il concetto chiave da tenere a mente è che per quanto equivalenti, comunque non sono da considerare uguali solo perché generano la stessa funzione (quindi lo stesso output). **Il nostro obiettivo è allora quello di trovare l'espressione più semplice che restituisca la stessa tabella di verità**. #### _Perché?_ Una formula più semplice (con meno letterali) può creare un circuito logico più semplice, quindi più **ottimizzato**, che costa meno ed è spesso più veloce. Vedremo più avanti i circuiti logici, tuttavia il **Teorema di espansione di Shannon** e le **Forme Canoniche** che vedremo a breve sono il punto di partenza standard nella semplificazione di queste espressioni. --- Continua con... Il [Teorema di Espansione di Shannon](/courses/logica-e-reti-logiche/lessons/teorema-di-espansione-di-shannon/)."},{"id":"logica-e-reti-logiche/lessons/formalizzazione-e-validita","title":"Formalizzazione e Validità","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/formalizzazione-e-validita","content":"--- ## Formalizzazione: Precedentemente abbiamo visto i Connettivi Logici accennando anche al loro significato letterale. Ebbene adesso vediamo la **Formalizzazione**, ossia la \"traduzione\" da frase in linguaggio naturale (italiano) al linguaggio formale (Simboli Logici). È possibile creare una sorta di \"dizionario\" che ci permette di riconoscere i pattern tra alcune frasi o parole diverse, e la loro traduzione in simboli logici: ***\"Dizionario\" della Formalizzazione:*** | **Simbolo** | **Nome** | **Parole Chiave in Italiano** | **Esempio e Traduzione** | | :-------------------: | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | **$\\wedge$** | **Congiunzione** | • E • Ma • Mentre • Tuttavia • Però • Sia... sia... • Anche • Invece | _\"Anna viene **ma** Barbara no\"_ $A \\wedge \\neg B$ --- _\"Piove **mentre** c'è il sole\"_ $P \\wedge S$ | | **$\\vee$** | **Disgiunzione** | • O • Oppure • A meno che (spesso usato come $\\vee$) | _\"Mario arriva secondo **oppure** terzo\"_ $M \\vee T$ | | **$\\neg$** | **Negazione** | • Non • È falso che • Non è vero che • È impossibile che | _\"Non piove\"_ $\\neg p$ --- _\"È falso che Mario mangia\"_ $\\neg M$ | | **$\\rightarrow$** | **Implicazione** _(Attenzione alla direzione!)_ | • Se A, allora B • Se A, B • A implica B • A è condizione **sufficiente** per B | _\"**Se** ti alleni, superi la prova\"_ $A \\rightarrow S$ | | **$\\rightarrow$** | **Implicazione Inversa** _(La freccia parte dalla condizione)_ | • A **se** B • A **a patto che** B • A **purché** B • A **qualora** B | _\"Caterina viene **a patto che** Diletta non ci sia\"_ _(La condizione è che Diletta non ci sia)_ $\\neg D \\rightarrow C$ | | **$\\rightarrow$** | **Condizione Necessaria** _(Trappola classica)_ | • A **solo se** B 8 • A **soltanto se** B • Condizione **necessaria** per A è B 9 | _\"Caterina viene **solo se** Anna non viene\"_ _(Se Caterina è venuta, per forza Anna non c'era)_ $C \\rightarrow \\neg A$ | | **$\\leftrightarrow$** | **Doppia Implicazione** | • Se e solo se • Se e soltanto se • Condizione necessaria e sufficiente | _\"Diletta viene **se e solo se** Caterina viene\"_ $D \\leftrightarrow C$ | Di base delle frasi o affermazioni in linguaggio naturale, esattamente come le formule logiche di conseguenza, hanno: - Delle **Premesse**: [!QUESTION] Cosa sono i Tableux? > Sono un test al contrario chiamato \"Refutazione\" per dimostrare la Validità di una affermazione. > Invece di cercare di dimostrare che un'affermazione è vera, provi disperatamente a dimostrare che sia sbagliata. Per costruire un Tableux ci sono regole precise: 1. Appunta o tieni a mente una lista di tutte le verità della formula in esamina. 2. Riscrivi le Premesse e **Negando la Conclusione** (è la base del test). 3. Metti in discussione tutte le verità della lista delle verità aiutandoti con i Pattern riportati nella tabella sottostante. 4. Per la Validazione, dai precedenza alle formule _Lineari_ e poi quelle con _Bivi_ (vedi in tabella). 5. Quando in un ramo c'è una **Contraddizione**: Metti una **X** su quel ramo. 6. **INFINE:** - **Tutti i rami con X**? (Congiunzione) | ⬇️ **Lineare** _(Fallo subito!)_ | Scrivi sotto in colonna: • **$A$** • **$B$** | Per essere \"A e B\", devono essere veri **tutti e due**. | | **$A \\vee B$** (Disgiunzione) | 🔀 **Bivio** _(Aspetta se puoi)_ | Apri due rami: **Sx:** **$A$** **Dx:** **$B$** | Basta che sia vero uno dei due (o A o B). | | **$A \\rightarrow B$** (Implicazione) | 🔀 **Bivio** _(Aspetta se puoi)_ | Apri due rami: **Sx:** **$\\neg A$** **Dx:** **$B$** | La promessa vale se non l'ho fatta ($\\neg A$) o se l'ho mantenuta ($B$). | | **$\\neg \\neg A$** (Doppia Neg.) | ⬇️ **Lineare** | Scrivi sotto: • **$A$** | \"Non è falso che...\" = È vero. | | **$\\neg(A \\rightarrow B)$** (Impl. Negata) | ⬇️ **Lineare** _(Fallo subito!)_ | Scrivi sotto in colonna: • **$A$** • **$\\neg B$** | **CRUCIALE:** Premessa rotta = Premessa vera ($A$) e Conclusione falsa ($\\neg B$). | | **$\\neg(A \\vee B)$** (Né A né B) | ⬇️ **Lineare** _(Fallo subito!)_ | Scrivi sotto in colonna: • **$\\neg A$** • **$\\neg B$** | Falso che sia \"A o B\" = Falsi **tutti e due**. | | **$\\neg(A \\wedge B)$** (Non \"A e B\") | 🔀 **Bivio** _(Aspetta se puoi)_ | Apri due rami: **Sx:** **$\\neg A$** **Dx:** **$\\neg B$** | Per smentire \"tutti e due\", basta che ne fallisca **uno a caso**. | #### Algoritmo di Valerio per la Validazione: È un algoritmo che ho inventato io dopo una notte di imprecazioni. In realtà non è che io l'abbia propriamente inventato, tuttavia è il metodo che consiglio in quanto è un compromesso tra rapidità ed efficienza. È diviso in 2 fasi: - FASE 1: Il \"Cecchino\": 1. Guarda cosa hai come ultimi rami. 2. Provi ad uccidere i rami continuando ad applicare le regole della tabella sopra mentre segui i collegamenti logici tra quei rami e le Premesse. - FASE 2: Il \"Rambo\": 1. Se la Fase 1 fallisce, o perché non trovi la premessa giusta, o perché quella che hai usato ha portato ad un risultato che non ti ridà: **C'È IL RAMBO!!** 2. Passa ad una metodologia più brutale, ricorda che hai il dovere di usare TUTTE le premesse su TUTTI i rami finché non chiudi tutto o non hai più nulla da usare. Certo, non è consigliato per una cosa veloce, tuttavia è proprio per questa ragione che è posizionata come Fase 2 dell'algoritmo che ti propongo. È una metodologia che si applica generalmente quando una formalizzazione diventa molto complessa o il risultato della tua validazione non ti convince rispetto a quello che hai pensato a mente leggendo la frase in linguaggio naturale. È consigliato svolgere tanti esercizi sulla Formalizzazione e Validità, in quanto i Tableux non sono sempre facili come potrebbe sembrare, ed è necessario prenderci la mano. --- _Continua con..._ La [Logica dei Predicati](/courses/logica-e-reti-logiche/lessons/logica-dei-predicati/)."},{"id":"logica-e-reti-logiche/lessons/forme-canoniche","title":"Forme Canoniche","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/forme-canoniche","content":"--- ## 1. Prima Forma Canonica (SOP) e Mintermini: Questa forma si chiama **SOP (Sum of Products)** o Somma di Prodotti, ed è essenzialmente la somma (OR) di tutti i **Mintermini** per cui la funzione vale $1$. Questo anche perché essendo $1$ l'elemento nullo dell'OR, il risultato è sempre $1$. #### Che cos'è un Mintermine? Un **Mintermine** ($m$), è un termine **prodotto (AND)** che contiene tutte le variabili di una funzione per l'appunto: moltiplicate tra loro. All'interno di una combinazione $f(x, y, z)$: - Se una variabile vale $0$: all'interno del mintermine (quindi dell'AND di variabili) viene messa la stessa variabile negata. - Se una variabile vale $1$: all'interno del mintermine viene messa la stessa variabile. **_Esempio:_** Prendiamo come esempio la funzione con la seguente combinazione: $f(0, 0, 1)$ - $x=0$ --> Nel mintermine è $x^{\\prime}$ . - $y = 0$ --> Nel mintermine è $y^{\\prime}$ . - $z = 1$ --> Nel mintermine rimane $z$ . Il mintermine $m_{(0, 0, 1)}$ è quindi $x^{\\prime}y^{\\prime}z$ . --- ## 2. Seconda Forma Canonica (POS) e Maxtermini: Questa forma si chiama **POS (Product of Sums)** o Prodotto di Somme, ed è essenzialmente il prodotto (AND) di tutti i **Maxtermini** per cui la funzione vale $0$. Questo anche perché essendo $0$ l'elemento nullo dell'AND, il risultato finale è sempre $0$. #### Che cos'è un Maxtermine? Un Maxtermine ($M$), è un termine **somma (OR)** che contiene tutte le variabili di una funzione per l'appunto: sommate tra loro. All'interno di una combinazione $f(x, y, z)$: - Se una variabile vale $0$: all'interno del maxtermine (quindi dell'OR di variabili) viene messa la stessa variabile. - Se una variabile vale $1$: all'interno del maxtermine viene messa la stessa variabile negata. **_Esempio:_** Prendiamo come esempio la funzione con la seguente combinazione: $f(0, 0, 1)$ - $x=0$ --> Nel maxtermine rimane $x$ . - $y = 0$ --> Nel maxtermine rimane $y$ . - $z = 1$ --> Nel maxtermine è $z^{\\prime}$ . Il maxtermine $M_{(0, 0, 1)}$ è quindi $xyz^{\\prime}$ . --- _Continua con..._ Le [Porte Logiche](/courses/logica-e-reti-logiche/lessons/porte-logiche/)."},{"id":"logica-e-reti-logiche/lessons/funzioni-booleane-e-tabelle-di-verita","title":"Funzioni Booleane e Tabelle di verità","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/funzioni-booleane-e-tabelle-di-verita","content":"--- Una Funzione Booleane è una semplice \"relazione\" che definisce un'uscita (output) per ogni possibile combinazione di ingressi (input). ## Definizione formale di Funzione Booleana $$f:A^n↦A$$ Quella soprastante è una funzione booleana $f$ dove $A^n$ è il dominio e $A$ è il codominio. Poiché il nostro contesto è l'Algebra di Commutazione, l'insieme $A$ è sempre e solo $\\{0, 1\\}$, quindi la nostra definizione diventa: $$f : \\{0, 1\\}^n ↦ \\{0, 1\\}$$ _In un linguaggio più semplice:_ Una funzione booleana prende $n$ variabili (che possono essere $0$ o $1$) e restituisce un singolo valore ($0$ o $1$). --- ## Tabelle di verità Il modo più semplice e completo per descrivere una funzione booleana è attraverso la sua tabella di verità. Una **Tabella di verità:** - Ha $n$ colonne per gli ingressi/input (dominio). - Ha una colonna per l'uscita/output (codominio). - Ha $2^n$ righe, per rappresentare ogni singola configurazione possibile degli ingressi. **_Esempio:_** - Funzione: $f(x, y, z)$ - Gli ingressi sono 3 ($x, y, z$), quindi la tabella di verità ha 3 colonne, quindi $n = 3$. - Essendo $n=3$ allora le righe saranno $2^3$, ossia 8, quindi la tabella avrà 8 righe. - La funzione restituisce in output $1$ solo se 2 variabili qualsiasi valgono $1$. | $x$ | $y$ | $z$ | $f(x, y, z)$ | | --- | --- | --- | ------------ | | $0$ | $0$ | $0$ | 0 | | $0$ | $0$ | $1$ | 0 | | $0$ | $1$ | $0$ | 0 | | $0$ | $1$ | $1$ | 1 | | $1$ | $0$ | $0$ | 0 | | $1$ | $0$ | $1$ | 1 | | $1$ | $1$ | $0$ | 1 | | $1$ | $1$ | $1$ | 0 | --- ### Ma quindi alla fine quante combinazioni di funzioni esistono? Per spiegarlo rendendolo comprensibile in modo semplice e veloce, è possibile ricorrere alle tabelle di verità come analogia per le funzioni booleane. 1. In una tabella di verità ci sono $2^n$ righe (possibili configurazioni di input) 2. Per ogni riga, l'output $f$ può essere $0$ oppure $1$ (2 possibilità). Quindi possiamo dedurre che il numero totale di output (funzioni $f$) sia 2 elevato al numero di righe/input ($2^n$). Quindi il numero totale di possibili funzioni booleane con $n$ variabili di ingresso/input, sia $(2^2)^n$. **_Esempio:_** Con una sola variabile $x$ di ingresso ($n=1$), ci sono $(2^2)^n = 2^2 = 4$ funzioni possibili: - Costante $0$: $f(x) = 0$ <-- Dove l'output è sempre 0. - Proiezione dell'input: $f(x) = x$ <-- Dove l'output è la copia dell'input. - Negazione dell'input: $f(x) = x^{\\prime}$ <-- Dove l'output è la negazione dell'input. - **Costante $1$:** $f(x) = 1$ <-- Dove l'output è sempre 1. --- ## Funzioni non completamente specificate: Immagina una tabella di verità dove per alcune righe, l'output è **indifferente**. Questi casi vengono segnati con una **X** o con un **-**. **Perché?** 2 motivi: 1. **Impossibile:** La combinazione di input non può capitare. 2. **Irrilevante:** Non ci interessa cosa succede in quel caso. _Noi possiamo trarre un vantaggio in questi casi:_ Quando andiamo a semplificare la formula della funzione, possiamo trattare l'output di una funzione non completamente specificata come $0$ o $1$, a seconda di quale dei due riteniamo più di nostro aiuto nella semplificazione dell'espressione booleana. _Esempio:_ - $f(x_1, x_2)$ - Assume valore $1$ se $x_1 = 0$ e $x_2 = 0$. - Assume valore $0$ se le variabili sono diverse ($x_1 \\neq x_2$). Ehh fratè, si tu che stai leggendo, non ti accorgi che manca qualcosa? _E se $x_1 = 1$ e $x_2 = 1$?_ <--- Eccoci al caso mancante. **Tabella di verità:** | $x_1$ | $x_2$ | $f(x_1, x_2)$ | | ----- | ----- | ------------- | | $0$ | $0$ | $1$ | | $0$ | $1$ | $0$ | | $1$ | $0$ | $0$ | | $1$ | $1$ | $-$ | Infatti nella tabella di verità, il caso con $x_1 = 1$ e $x_2 = 1$ viene segnato con un trattino. Se andremo a minimizzare questa funzione, come detto prima, possiamo vedere quel trattino come un jolly. --- Continua con... Le [Espressioni Booleane](/courses/logica-e-reti-logiche/lessons/espressioni-booleane/)."},{"id":"logica-e-reti-logiche/lessons/algebra-della-logica","title":"Algebra della Logica","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/algebra-della-logica","content":"--- ## Connettivi Logici Un **connettivo** in logica è un operatore logico che funziona come da \"colla\" o \"grammatica\" per comporre frasi complesse composte da **atomi**. Un **atomo** nella logica proposizionale, è una frase che ci dà informazioni semplici come: \"Piove.\" ($p$), \"Ho l'ombrello.\" ($q$). È dunque importante all'interno della logica proposizionale conoscere tutti i connettivi logici. | **Notazione** | **Nome** | **Significato letterale** | **Regola (nella Tabella di Verità)** | | :-------------------- | ------------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------- | | $p \\wedge q$ | Congiunzione (AND) | \"E anche...\" | È vera (1) **solo se tutte e due** sono vere. | | $p \\vee q$ | Disgiunzione (OR) | \"Oppure...\" | È vera (1) se **almeno una** è vera. | | $\\neg p$ | Negazione (NOT) | \"Non è vero che...\" | Inverte il valore (0 diventa 1, 1 diventa 0). | | $p \\rightarrow q$ | Implicazione (IF) | \"Se... allora...\" | **Attenzione:** È Falsa (0) **solo nel caso** $1 \\rightarrow 0$ (Vero implica Falso). In tutti gli altri casi è $1$! | | $p \\leftrightarrow q$ | Doppia Implicazione | \"Se e solo se\" | È vera (1) se $p$ e $q$ hanno lo **stesso valore**. | _Affermazione Falsa = $0$_ | _Affermazione Vera = $1$._ --- ## Classificazione logica di una formula Per classificare la verità di una formula logica, abbiamo bisogno di capire se è: - **Tautologica (T)** Righe 2, 4, 8. 2. In tutte queste righe $B = 1$, quindi dove $A = 1$ allora $A = B$. 3. Quindi **Si, c'è Conseguenza $A \\models B$. 3. C'è Non Conseguenza ($A \\not\\models B$) ? 1. Ovvio che **No**. 2. Di base, se c'è Conseguenza, non può esserci Non Conseguenza. **Risposta Finale:** Tra la **formula $A$** e la **formula $B$**, c'è **Conseguenza**: $A \\models B$. --- _Continua con..._ La [Formalizzazione e Validità](/courses/logica-e-reti-logiche/lessons/formalizzazione-e-validita/)."},{"id":"logica-e-reti-logiche/lessons","title":"Corso di Logica e Reti Logiche","description":"","date":"2026-02-26T00:00:00.000Z","tags":["Boole","Huntington","Shannon","Computer Science","Algebra","Karnaugh","FSM","Logic","Circuit","Logical Networks","Theorem","University"],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":false,"parentTitle":"","url":"/courses/logica-e-reti-logiche/lessons","content":"--- ### Parte di **Reti Logiche**: 1. [Introduzione all'Algebra di Boole](/courses/logica-e-reti-logiche/lessons/introduzione-all-algebra-di-boole/). 2. [Postulati di Huntington](/courses/logica-e-reti-logiche/lessons/postulati-di-huntington/). 3. [Principio di Dualità](/courses/logica-e-reti-logiche/lessons/principio-di-dualita/). 4. [Teorema di rappresentazione di Stone](/courses/logica-e-reti-logiche/lessons/teorema-di-rappresentazione-di-stone/). 5. [Algebra di Commutazione](/courses/logica-e-reti-logiche/lessons/algebra-di-commutazione/). 1. [Variabili Booleane](/courses/logica-e-reti-logiche/lessons/variabili-booleane/). 6. [Proprietà dell'Algebra di Boole](/courses/logica-e-reti-logiche/lessons/proprieta-dell-algebra-di-boole/). 7. [Funzioni Booleane e Tabelle di verità](/courses/logica-e-reti-logiche/lessons/funzioni-booleane-e-tabelle-di-verita/). 8. [Espressioni Booleane](/courses/logica-e-reti-logiche/lessons/espressioni-booleane/). 1. [Notazioni e Convenzioni nelle espressioni booleane](/courses/logica-e-reti-logiche/lessons/notazioni-e-convenzioni-nelle-espressioni-booleane/). **<--- MANCANTE** 2. [Letterali](/courses/logica-e-reti-logiche/lessons/letterali/). **<--- MANCANTE** 9. [Teorema di Espansione di Shannon](/courses/logica-e-reti-logiche/lessons/teorema-di-espansione-di-shannon/). 10. [Forme Canoniche](/courses/logica-e-reti-logiche/lessons/forme-canoniche/). 11. [Porte Logiche](/courses/logica-e-reti-logiche/lessons/porte-logiche/). 12. [Circuiti Logici](/courses/logica-e-reti-logiche/lessons/circuiti-logici/). 13. [Reti Logiche Combinatorie](/courses/logica-e-reti-logiche/lessons/reti-logiche-combinatorie/). **<--- MANCANTE** 14. [Sommatori](/courses/logica-e-reti-logiche/lessons/sommatori/). 15. [Mappe di Karnaugh](/courses/logica-e-reti-logiche/lessons/mappe-di-karnaugh/). 16. [Reti Logiche Sequenziali](/courses/logica-e-reti-logiche/lessons/reti-logiche-sequenziali/). 17. [Macchine a Stati Finiti](/courses/logica-e-reti-logiche/lessons/macchine-a-stati-finiti/). 18. [Bistabili](/courses/logica-e-reti-logiche/lessons/bistabili/). **<--- MANCANTE** ### Parte di **Logica**: 19. [Algebra della Logica](/courses/logica-e-reti-logiche/lessons/algebra-della-logica/). 20. [Formalizzazione e Validità](/courses/logica-e-reti-logiche/lessons/formalizzazione-e-validita/). 21. [Logica dei Predicati](/courses/logica-e-reti-logiche/lessons/logica-dei-predicati/)."},{"id":"logica-e-reti-logiche/lessons/introduzione-all-algebra-di-boole","title":"Introduzione all'Algebra di Boole","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/introduzione-all-algebra-di-boole","content":"--- È stata inventata da George Boole nel XIX secolo, con l'obiettivo di dimostrare come affermazioni logiche del mondo reale potessero essere trasposte con un linguaggio come la matematica, utilizzando calcoli algebrici. Boole aveva quindi l'obiettivo di associare la logica con la matematica piuttosto che non la filosofia. L'Algebra di Boole è adesso la base su cui sono costruiti tutti i circuiti elettronici di tutte le macchine e computer di tutto il mondo contemporaneo. --- ## Definizione \"formale\": L'Algrebra di Boole è definita come una \"struttura algebrica\" (o definibile anche come \"tupla\"): #### $$\\mathcal{B}=\\langle A,+,\\cdot,^{\\prime},0,1\\rangle$$ Analizzando ogni pezzo della tupla: - **$A$ <--** Definito \"supporto\", è un insieme contenente i valori che gli ingressi possono assumere. Nello specifico nell'algebra booleana sono: $[0, 1]$. - $+$ **<--** L'operatore booleano di disgiunzione (**OR**). - $\\cdot$ **<--** L'operatore booleano di congiunzione (**AND**). - $^{\\prime}$ **<--** L'operatore unario di complementazione (**NOT**). - $0$ e $1$ **<--** Sono _elementi neutri_ in quanto, $0$ è l'elemento neutro per l'operatore $+$ (OR), e $1$ è l'elemento neutro per l'operatore $\\cdot$ (AND). --- _Continua con:_ I [Postulati di Huntington](/courses/logica-e-reti-logiche/lessons/postulati-di-huntington/), ossia le regole fondamentali dell'Algebra di Boole."},{"id":"logica-e-reti-logiche/lessons/letterali","title":"Letterali","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/letterali","content":"--- --- _Riprendi con..._ Le [Espressioni Booleane](/courses/logica-e-reti-logiche/lessons/espressioni-booleane/)."},{"id":"logica-e-reti-logiche/lessons/logica-dei-predicati","title":"Logica dei Predicati","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/logica-dei-predicati","content":"--- Fin'ora avevamo visto come tradurre dalla lingua naturale alla formula logico-matematica, tuttavia adesso allarghiamo lo sguardo verso l'operazione opposta. Come fa una formula matematica, ad esser \"decifrata\" in linguaggio naturale? ## Quantificatori e Predicati: #### I Quantificatori: Sono dei simboli che ci aiutano a dare un senso/significato alle incognite nelle formule matematiche: | Simbolo | Come si legge | | ----------- | ------------------------------------------------------------------------------ | | $\\forall x$ | • \"Per ogni...\" • \"Tutti...\" • \"... Tutto\" • \"Chiunque...\" | | $\\exists x$ | • \"Esiste un...\" • \"C'è almeno un...\" • \"Qualche...\" • \"... qualcosa\" | #### I Predicati: Sono delle funzioni logiche che descrivono in base ad una proprietà o una relazione, una verità, quindi un fatto o una azione. _Esempi:_ - $Studente(x)$ = \"$x$ è uno studente\". - $Ama(x, y)$ = \"$x$ ama $y$\". Come si può notare, la \"proprietà\" di un predicato è intuibile nel nostro caso dal nome dello stesso. --- ## L'Ordine dei Simboli: In situazioni in cui si hanno più incognite (es: $x$ e $y$), l'ordine in cui appaiono i Quantificatori può cambiare radicalmente il senso della frase. _Capiamolo con degli esempi con spiegazioni:_ - $\\forall x \\exists y(Ama(x,y))$ - **Ordine:** Prima \"Tutti\", poi \"Qualcuno\". - **Traduzione:** \"Tutti amano qualcuno.\" - **Senso:** Ognuno ha la sua anima gemella (magari diversa). Io amo Maria, tu ami Luca, egli ama Anna... Nessuno è solo. - $\\exists x \\forall y(Ama(x,y))$ - **Ordine:** Prima \"Esiste uno\", poi \"Tutti\". - **Traduzione:** \"C'è qualcuno che ama tutti.\" - **Senso:** C'è una persona specifica (tipo Madre Teresa) che ha un cuore così grande da amare l'umanità intera. - $\\exists y \\forall x(Ama(x,y))$ - _Ordine:_ Prima \"Esiste uno (che è amato)\", poi \"Tutti (che amano)\". - _Traduzione:_ **\"C'è qualcuno che è amato da tutti.\"** - _Senso:_ C'è una persona super popolare (es. una rockstar) che tutti amano. --- ## Pattern Ricorrenti: Ecco una tabella con alcuni semplici Pattern che potrebbero ripetersi. Non è fondamentale conoscerla o memorizzarla, ma avere la consapevolezza dell'esistenza di possibili Pattern può sempre essere un'opportunità per aiutarci. | **Struttura Simbolica** | **Parole Chiave** | **Esempio** | **Traduzione Italiana** | | :---------------------------------------------------------------------------------------------------: | --------------------- | --------------------------------------------------- | ---------------------------------------------------------------------------------------- | | $\\forall x (A(x) \\rightarrow B(x))$ | Tutti... sono... | $\\forall x (Uomo(x) \\rightarrow Mortale(x))$ | \"Tutti gli uomini sono mortali.\" | | $\\forall x (A(x) \\rightarrow \\neg B(x))$ _oppure_ $\\neg \\exists x (A(x) \\wedge B(x))$) | Nessuno... è... | $\\forall x (Uomo(x) \\rightarrow \\neg Immortale(x))$ | \"Nessun uomo è immortale.\" | | $\\exists x (A(x) \\wedge B(x))$ | Alcuni... sono... | $\\exists x (Studente(x) \\wedge Genio(x))$ | \"Alcuni studenti sono geni.\" _(o \"C'è almeno uno studente genio\")_ | | $\\exists x (A(x) \\wedge \\neg B(x))$ | Alcuni... NON sono... | $\\exists x (Studente(x) \\wedge \\neg Studia(x))$ | \"Alcuni studenti non studiano.\" _(o \"C'è uno studente che non studia\")_ | --- ## Esercizi con soluzioni: 1. $\\forall x(studente(x))$ \"Tutti sono studenti.\" 2. $\\exists x(studente(x))$ \"Esiste uno studente.\" 3. $\\exists x(studente(x) ∧ intelligente(x))$ \"Uno studente è intelligente.\" 4. $\\forall x(studente(x) → \\exists y(studente(y) \\wedge amico(x, y))$ \"Tutti gli studenti hanno almeno uno studente amico con loro.\" 5. $\\exists x(studente(x) \\wedge \\forall y((studente(y) \\wedge x \\neq y) \\rightarrow amico(x,y)))$ \"Esiste uno studente che è amico di tutti **gli altri** studenti.\" ---"},{"id":"logica-e-reti-logiche/lessons/macchine-a-stati-finiti","title":"Macchine a Stati Finiti","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/macchine-a-stati-finiti","content":"--- Le Macchine a Stati Finiti (FSM 2 valori: $s_k/z_k$ - Gli Stati $s_k$ come variabili (non è necessario saperne il valore). - L'Output $z_k$ del sistema (riportato come valore numerico). - Negli Archi --> Riportato l'Input $x_k$ del sistema come condizione per passare allo stato prossimo (riportato come valore numerico). ##### Nella Macchina di Moore: L'Output presente $z_k$ dipende dallo stato attuale: $$z_k = \\lambda(s_k)$$ Lo Stato Prossimo $s_{k+1}$ dipende dallo stato attuale + input: $$s_{k+1} = \\delta(s_k, x_k)$$ #### Qual'è la logica per leggere i Grafi nelle FSM di Moore: 1. Osservare il Cerchio $s_k/z_k$. 2. Calcolare l'Output $z_k = \\lambda(s_k)$. 3. Individuare l'Input $x_k$ sopra l'Arco. 4. Usare l'Arco come freccia per spostarsi sullo Stato Successivo e calcolare $s_{k+1} = \\delta(s_k, x_k)$. --- ## Macchina di Mealy: _Esempio di Grafo con FSM di Mealy:_ ![Pasted image 20251231191419.png](../multimedia/Pasted%20image%2020251231191419.png) _I nomi delle variabili sono imprecisi e discostati dalla parte descritta sotto._ Nelle FSM di Mealy, nel grafo possiamo vedere gli: - Nei Cerchi --> Gli Stati $s_k$ come variabili (non è necessario saperne il valore). - Negli Archi --> 2 valori: $x_k/z_k$ - Riportato l'Input $x_k$ del sistema come condizione per passare allo stato prossimo. (riportato come valore numerico). - L'Output $z_k$ del sistema (riportato come valore numerico). ##### Nella Macchina di Mealy: L'Output presente $z_k$ dipende dallo stato attuale+ input: $$z_k = \\lambda(s_k, x_k)$$ Lo Stato Prossimo $s_{k+1}$ dipende dallo stato attuale + input: $$s_{k+1} = \\delta(s_k, x_k)$$ In questa FSM Output e Stato Prossimo chiedono gli stessi valori per essere calcolati. #### Qual'è la logica per leggere i Grafi nelle FSM di Mealy: 1. Osservare lo stato attuale nel Cerchio $s_k$. 2. Osservare l'Arco. 3. Osservare la notazione dell'Output $z_k$ successivo a quella dell'Input $x_k$, che ci dice di calcolare l'Output 4. Calcolare l'Output $z_k = \\lambda(s_k, x_k)$. 5. Poi usare l'Arco come freccia (ignorando la notazione dell'Output) per spostarsi sullo Stato Successivo e calcolare $s_{k+1} = \\delta(s_k, x_k)$. --- ## Rappresentare le FSM con delle Tabelle: Tra FSM di Moore e Mealy cambia di poco il modo con il quale vengono strutturate le tabelle. ### Tabelle per FSM di Moore: _Ipotizziamo una FSM di Moore:_ ![Pasted image 20260101221109.png](../multimedia/Pasted%20image%2020260101221109.png) Adesso creiamo la tabella composta da: - Le Colonne che indicano nelle prime 2 gli ingressi ($0$ o $1$) e nell'ultima l'Output. - Le Righe che indicano lo stato in cui si trova il sistema. Dunque nelle celle in cui si incrociano queste Righe e Colonne andiamo a inserire prima quali sono gli ingressi e l'output in un determinato stato. _La Tabella corrispondente alla FSM sopra:_ | | $0$ | $1$ | $Output$ | | ----- | ----- | ----- | -------- | | $s_0$ | $s_0$ | $s_1$ | $1$ | | $s_1$ | $s_2$ | $s_1$ | $0$ | | $s_2$ | $s_0$ | $s_0$ | $0$ | ### Tabelle per FSM di Mealy: _Ipotizziamo una FSM di Mealy:_ ![Pasted image 20260101224151.png](../multimedia/Pasted%20image%2020260101224151.png) Adesso creiamo una tabella composta da: - Le Colonne che indicano gli ingressi ($0$ e $1$). - Le Righe che indicano lo stato in cui si trova il sistema. È possibile notare che la differenza con le FSM di Moore è l'assenza di una colonna per gli Output, ma questo è del tutto naturale essendo che anche nei Grafi le FSM di Mealy hanno l'Output rappresentato affianco all'input, quindi anche nelle tabelle, input e output vengono rappresentati insieme. _La Tabella corrispondente alla FSM sopra:_ | | $0$ | $1$ | | ----- | ------- | ------- | | $s_0$ | $s_0/1$ | $s_1/1$ | | $s_1$ | $s_2/0$ | $s_1/0$ | | $s_2$ | $s_0/0$ | $s_0/0$ | --- ## Ricapitolando - Moore e Mealy a confronto: | | Moore | Mealy | | --------------------------------- | ---------------------------------- | ----------------------------------------------------------- | | **Come viene generato l’output?** | Dipende esclusivamente dallo stato | Dipende dallo stato e dagli input | | **Dove si scrive l’output?** | Nello stato | Sulla transizione | | **Quando reagisce?** | Dopo la transizione | Quando viene dato l’input | | **Numero di stati** | Spesso richiede più stati | Generalmente ne usa di meno rispetto alla macchina di Moore | --- ## Convertire da FSM di Moore a Mealy:"},{"id":"logica-e-reti-logiche/lessons/mappe-di-karnaugh","title":"Mappe di Karnaugh","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/mappe-di-karnaugh","content":"--- Le Mappe di Karnaugh sono uno strumento grafico inventato da Maurice Karnaugh nel 1953, con lo scopo di ottimizzare le reti logiche combinatorie. Essenzialmente: sono un'alternativa alle tabelle di verità che risultano efficaci quando si lavora con un massimo di 4 variabili. ## La struttura grazie al Codice di Gray: Nelle Mappe di Karnaugh l'ordine delle combinazione di variabili, sono ordinate seguendo il **Codice di Gray**, detto anche _codice a specchio._ In una tabella di verità, per ogni numero di variabili immagina la colonna di ogni variabile specchiata sotto di lei. **_Proviamo a costruire insieme una mappa di verità specchiata:_** Per il momento abbiamo una sola variabile, quindi una sola colonna: $0, 1$ che andando a specchiare con il Codice di Gray diventerà per intero: $0, 1, 1, 0$. Se adesso aggiungiamo una seconda variabile, nella sua colonna vi sarebbero: $0, 0, 1, 1$, che verrebbe poi specchiata facendo risultare la colonna in totale come: $0, 0, 1, 1, 1, 1, 0, 0$. Assieme a questa verrebbe specchiata anche la colonna della prima variabile già specchiata, portandola così: $0, 1, 1, 0, 0, 1, 1, 0$. ![Pasted image 20251229184223.png](../multimedia/Pasted%20image%2020251229184223.png) Alla fine è possibile notare come leggendo riga per riga **fino al rigo numero $2^n$**, è stato ottenuto un ordine diverso delle combinazioni con adiacenza logica, ossia nel quale tra due combinazioni adiacenti cambia un solo bit alla volta. --- ## Come si utilizzano le mappe di Karnaugh? Abbiamo detto che le mappe di Karnaugh vengono utilizzate per ottimizzare, ma come nello specifico? Ebbene una volta indicati sulla mappa gli $0$ e gli $1$, è necessario raggruppare gli $1$ che compaiono in gruppi di $1$ adiacenti che chiamiamo _k-cubi_. Tuttavia è necessario sapere che la Mappa di Karnaugh **ha una forma Toroide**. ### La Geometria della Mappa di Karnaugh: La Mappa di Karnaugh ha una forma Toroide, è quindi come se fosse arrotolata su se stessa prendendo la forma di una ciambella, così che l'ultima colonna sia adiacente alla prima e che l'ultimo rigo sia adiacente al primo. _Esempio grafico della forma Toroide:_ ![Pasted image 20251229191640.png](../multimedia/Pasted%20image%2020251229191640.png) _Esempi di adiacenza dei lati grazie alla forma Toroide:_ ![Pasted image 20251229192117.png](../multimedia/Pasted%20image%2020251229192117.png) Questa proprietà della Mappa di Karnaugh ci permette di raggruppare in k-cubi tenendo conto e sfruttando anche le adiacenze tra righe e colonne _apparentemente_ opposte. ### Potenze di 2: I gruppi di $1$ per essere k-cubi, devono contenere un numero di $1$ che sia una potenza di $2$. _Ad esempio gruppi da $1, 2, 4, 8 ...$ celle._ ### Massima dimensione: Ogni k-cubo deve essere il più grande possibile, in quanto se il gruppo è più grande ci saranno meno letterali da dover riportare al termine dell'ottimizzazione. ### Copertura totale: Tutti gli $1$ presenti nella Mappa di Karnaugh **devono** essere inclusi in **almeno un** k-cubo. ### Sovrapposizione: È anche permesso inserire uno stesso $1$ all'interno di più k-cubi se questo serve a creare gruppi più grandi ottenendo una maggiore semplificazione. ## Come leggere il risultato finale: Una volta creati i k-cubi, ogni gruppo genera un **implicante**, ossia un termine prodotto (AND), composto **solo** dalle variabili che **mantengono lo stesso valore** in tutte le celle del gruppo. Infine, viene eseguita la **somma degli implicanti** trovati per ottenere l'espressione booleana ottimizzata, che viene di norma rappresentata in Prima Forma Canonica, quindi le variabili su $0$ vengono rappresentate con la variabile negata, mentre le variabili su $1$ vengono rappresentate con la variabile normale. #### Per quale motivo le variabili che non mantengono lo stesso valore vengono cancellate? Il motivo è che in qualunque caso, quelle variabili verrebbero comunque eliminate algebricamente, quindi facendo così automatizziamo in maniera più diretta il processo. Prendiamo d'esempio questi due implicanti: $x_1 x_2^{\\prime} x_3 + x_1 x_2 x_3$ 1. **Proprietà Distributiva:** Possono essere raccolti i termini comuni ($x_1$ e $x_3$), ottenendo l'espressione: $x_1 x_3 (x_2^{\\prime} + x_2)$ 2. **Proprietà dell'Unicità del Complemento e l'Elemento Nullo:** A questo punto, osservando la somma (OR) $x_2^{\\prime} + x_2$ notiamo subito che a prescindere dal valore di $x_2$, sappiamo che almeno uno dei due varrà $1$ in quanto è l'elemento nullo dell'OR. Quindi l'espressione diventa: $x_1 x_3 1$ <-- _Sono tutti in AND (magari non si capisce)._ 3. **Elemento Neutro:** Poiché $1$ è l'elemento neutro dell'AND (quindi non fa variare il risultato), può essere omesso semplificando l'espressione: $x_1 x_3$ . --- _Continua con..._ Le [Reti Logiche Sequenziali](/courses/logica-e-reti-logiche/lessons/reti-logiche-sequenziali/)."},{"id":"logica-e-reti-logiche/lessons/porte-logiche","title":"Porte Logiche","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/porte-logiche","content":"--- Le **Porte Logiche** (_Logic Gates_) sono componenti elettronici di base. Sono la **realizzazione fisica** delle funzioni elementari che abbiamo visto fin'ora. Operano su segnali di ingresso e generano un singolo segnale di uscita, e naturalmente sia ingressi che uscite possono valere solo $0$ o $1$. ### Elenco di tutte le porte logiche: ![Pasted image 20251116003540.png](../multimedia/Pasted%20image%2020251116003540.png) --- ## Porte Logiche ad $n$ ingressi Possono esistere anche porte logiche con più di 2 ingressi/input. In tal caso comunque non ci si deve spaventare in quanto non è un problema, ad esempio in un OR con 4 ingressi, basta che anche un solo ingresso valga $1$ affinché l'output dell'OR sia $1$, in quanto bisogna a prescindere tenere conto degli elementi nulli dell'operatore in questione, perché sono i veri princìpi alla base dell'algebra di commutazione per calcolare l'output di un operatore booleano. --- _Continua con..._ I [Circuiti Logici](/courses/logica-e-reti-logiche/lessons/circuiti-logici/)."},{"id":"logica-e-reti-logiche/lessons/postulati-di-huntington","title":"Postulati di Huntington","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/postulati-di-huntington","content":"--- Sono le regole fondamentali per l'Algebra di Boole, se un sistema rispetta queste regole allora è Algebra di Boole. ### 1. Commutatività di $+$ e $\\cdot$ È praticamente uguale alla commutatività della somma e del prodotto nell'algebra tradizionale. - $a + b = b + a$ - $a \\cdot b = b \\cdot a$ Come si può notare, sia con l'OR che con l'AND il risultato rimane invariato pur cambiando l'ordine. ### 2. Esistenza degli Elementi Neutri È come con l'algebra matematica, ad esempio, nell'addizione normale $0$ è un elemento neutro, in quanto sommandolo ad altri numeri non ci saranno cambiamenti del risultato. Lo stesso vale con l'$1$ che è elemento neutro nella moltiplicazione, infatti moltiplicando qualunque numero per $1$ il risultato non cambia. - $a+0=a$ <--- $0$ con l'OR. - $a⋅1=a$ <--- $1$ con l'AND. ### 3. Distributività di $+$ e $\\cdot$ Gli operatori $+$ e $\\cdot$ sono distributivi in modo simmetrico, cioè non solo l'OR si distribuisce sull'AND, ma anche l'AND si distribuisce sull'OR. Questa è una nota differenza con l'algebra tradizionale, dove la somma non si distribuisce sul prodotto. - L'AND si distribuisce sull'OR (Possibile nell'algebra tradizionale): $$a \\cdot (b+c) = (a \\cdot b) + (a \\cdot c)$$ - L'OR si distribuisce sull'AND (Impossibile nell'algebra tradizionale): $$a + (b \\cdot c) = (a + b) \\cdot (a + c)$$ ### 4. Esistenza del Complemento Questo postulato ci dice che per ogni elemento $a$ esiste anche un elemento $a^{\\prime}$ ($a$ negato), chiamato \"complemento\" o \"NOT\". Quindi: - $a + a^{\\prime} = 1$ - $a \\cdot a^{\\prime} = 0$ _Perché?_ Il motivo è semplice, a prescindere da quale sia il valore di $a$, essendo commutato con la sua negazione, in base all'operatore booleano usato il risultato rimarrà invariato grazie all'esistenza degli elementi neutri. Infatti: - Se $a=0$, il suo complemento $a^{\\prime}$ è $1$. Verifichiamo: - $0+1=1$ <-- In quanto lo $0$ è elemento neutro dell'OR. - $0⋅1=0$ <-- In quanto l'$1$ è l'elemento neutro dell'AND. - Se $a=1$, il suo complemento $a^{\\prime}$ è $0$. Verifichiamo: - $1+0=1$ <-- In quanto lo $0$ è elemento neutro dell'OR. - $1⋅0=0$ <-- In quanto l'$1$ è l'elemento neutro dell'AND. In questi esempi per verificare $a + a^{\\prime} = 1$ e $a \\cdot a^{\\prime} = 0$, viene anche dimostrata la proprietà commutativa dell'OR e dell'AND. --- _Continua con:_ Il [Principio di Dualità](/courses/logica-e-reti-logiche/lessons/principio-di-dualita/)."},{"id":"logica-e-reti-logiche/lessons/notazioni-e-convenzioni-nelle-espressioni-booleane","title":"Notazioni e Convenzioni nelle espressioni booleane","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/notazioni-e-convenzioni-nelle-espressioni-booleane","content":"--- --- _Riprendi con..._ Le [Espressioni Booleane](/courses/logica-e-reti-logiche/lessons/espressioni-booleane/)."},{"id":"logica-e-reti-logiche/lessons/principio-di-dualita","title":"Principio di Dualità","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/principio-di-dualita","content":"--- Il Principio di Dualità è come se fosse una scorciatoia concettuale, in quanto afferma che **ogni affermazione, identità o teorema valido in un'Algebra di Boole, rimane valido anche se vengono scambiati tra di loro gli operatori binari e gli elementi neutri.** --- _Continua con..._ [Teorema di rappresentazione di Stone](/courses/logica-e-reti-logiche/lessons/teorema-di-rappresentazione-di-stone/)."},{"id":"logica-e-reti-logiche/lessons/proprieta-dell-algebra-di-boole","title":"Proprietà dell'Algebra di Boole","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/proprieta-dell-algebra-di-boole","content":"--- Le seguenti proprietà non sono vere e proprie novità oltre ai postulati di Huntington, ma bensì sono conseguenze di questi postulati. Tutte queste proprietà sono dimostrabili, ad esempio è possibile farlo con i diagrammi di Venn. --- ### 1. Associativa: In una catena/espressione di operazioni identiche (es: tutti OR oppure tutti AND), a prescindere dalla posizione delle variabili all'interno di parentesi, il risultato rimane identico. **Formule:** - $x + (y + z) = (x + y) + z$ - $x \\cdot (y \\cdot z) = (x \\cdot y) \\cdot z$ --- ### 2. Idempotenza: \"Idem\" significa \"stesso\". Questa proprietà ci dice che qualsiasi variabile combinata con se stessa attraverso qualunque operatore, restituisce come risultato se stessa. **Formule:** - $x + x = x$ - _Esempi:_ ($0 + 0 = 0$); ($1 + 1 = 1$); - $x \\cdot x = x$ - _Esempi:_ ($0 \\cdot 0 = 0$); ($1 \\cdot 1 = 1$); --- ### 3. Elemento Nullo: È letteralmente l'opposto dell'elemento neutro. Se possiamo dire che un elemento neutro non viene praticamente contato nel calcolo in quanto tale, essendo i supporti soltanto 2 valori ($\\{0$, $1\\}$), possiamo altrettanto affermare che l'altro valore non neutro (quindi l'opposto) \"domina\"/\"forza\" l'operazione a restituire se stesso. Questo valore viene chiamato **Elemento Nullo**. **Formule:** - $x + 1 = 1$ <--- (Basta un solo $1$ in un OR per forzare l'uscita a $1$). - $x \\cdot 0 = 0$ <--- (Basta un solo $0$ in un AND per forzare l'uscita a $0$). --- ### 4. Unicità del Complemento: Ogni variabile $x$ ha un _solo e unico_ opposto $x^{\\prime}$ . --- ### 5. Assorbimento: Se una variabile $x$ appare sia \"da sola\" che in un altro termine dell'espressione, e sono \"operati\" (diciamo così lol) tra di loro, allora la variabile da sola \"assorbe\" (semplifica) la sua gemella presente nell'altro termine. **Formule ed esempi:** - $x + (x \\cdot y) = x$ - _Esempio 1:_ Se ipotizziamo $x = 1$, allora l'espressione sarà: $1 + (1 \\cdot y) = 1;$ Che sfruttando la proprietà di Assorbimento diventa: $1 + y = 1;$ - _Esempio 2:_ Se ipotizziamo $x = 0$, allora l'espressione sarà: $0 + (0 \\cdot y) = 0;$ Che sfruttando la proprietà di Assorbimento diventa: $0 + y = 0;$ - $x \\cdot (x + y) = x$ <--- (Questa formula è la duale della prima). **Funziona esclusivamente con OR ed AND. --- ### 6. Semplificazione: Una variabile $x$ può eliminare (semplificare) il termine contenente la sua versione negata $x^{\\prime}$, quando quest'ultima compare nella stessa espressione con altre variabili, ma esclusivamente se con gli operatori OR ($+$) ed AND ($\\cdot$). **Formule ed esempi:** - $x + x^{\\prime} \\cdot y = x + y$ <-- La variabile $x$ semplifica $x^{\\prime}$ perché essa è in AND con $y$. La proprietà è effettivamente valida se dopo la semplificazione l'espressione ha il valore dell'OR tra $x$ e $y$ . - _Esempio 1:_ Se poniamo $x = 1$ e $y=0$, allora l'espressione sarà: $1 + 0 \\cdot 0;$ Avendo l'AND ($\\cdot$) priorità nell'ordine di calcolo (come il prodotto nell'algebra tradizionale), calcolando nell'espressione, vedremo che $0 \\cdot 0$ è uguale ad $0$, quindi rimane $1 + 0$ che fa $1$. - _Esempio 2:_ Se poniamo $x = 0$ e $y=1$, allora l'espressione sarà: $0 + 1 \\cdot 1;$ Avendo l'AND ($\\cdot$) priorità nell'ordine di calcolo (come il prodotto nell'algebra tradizionale), calcolando nell'espressione, vedremo che $0 \\cdot 1$ è uguale ad $0$, quindi rimane $0 + 1$ che fa $1$. - _Esempio 3:_ Se poniamo $x=0$ e $y=0$, allora l'espressione sarà: $0 + 1 \\cdot 0;$ Avendo l'AND ($\\cdot$) priorità nell'ordine di calcolo (come il prodotto nell'algebra tradizionale), calcolando nell'espressione, vedremo che $1 \\cdot 0$ è uguale a $0$, quindi ci rimane $0 + 0$ che fa $0$. - _Esempio 4:_ Se poniamo $x = 1$ e $y = 1$, allora l'espressione sarà: $1 + 0 \\cdot 1;$ Avendo l'AND ($\\cdot$) priorità nell'ordine di calcolo (come il prodotto nell'algebra tradizionale), calcolando nell'espressione, vedremo che $0 \\cdot 1$ è uguale a $0$, quindi rimane $1 + 0$ che fa $1$. - **La formula della semplificazione ci dice che la proprietà per essere valida, tutta l'espressione deve avere il valore di $x + y$, ebbene in questi esempi è stata dimostrata la formula, mostrando che i risultati di queste espressioni sono uguali all'OR tra i valori delle $x$ e $y$ poste all'inizio di ogni espressione. - $x \\cdot (x^{\\prime} y) = x \\cdot y$ <-- La variabile $x$ semplifica $x^{\\prime}$ perché quest'ultima è in OR con $y$. È la formula duale della prima, che in questo caso rende valida la semplificazione se l'espressione ha il valore dell'AND tra $x$ e $y$ . --- ### 7. Involuzione: È la doppia negazione di una variabile. Negare una negazione riporta alla stessa variabile non negata. **Formula ed esempio:** - $(x^{\\prime})^\\prime = x$ - _Esempio:_ $(1^{\\prime})^{\\prime} = 0^{\\prime} = 1;$ --- ### 8. Leggi di De Morgan: Sono regole fondamentali che permettono di passare da OR ad AND e viceversa attraverso lo \"spezzare\" o \"unire\" delle negazioni. **Regola 1: - $(x + y)^{\\prime} = x^{\\prime} \\cdot y^{\\prime}$ - _Spiegazione:_ Dire \"NON (A o B)\" è come dire \"NON A e NON B\". - $(x \\cdot y)^{\\prime} = x^{\\prime} + y^{\\prime}$ - _Spiegazione:_ Dire \"NON (A e B)\" è come dire \"NON A o NON B\". --- ### 9. Consenso: È una regola di semplificazione di espressioni booleane molto potente, anche se meno intuitiva e a volte difficile da riconoscere. **Formule e spiegazioni: - $x \\cdot y + x^{\\prime} \\cdot z + y \\cdot z = x \\cdot y + x^{\\prime} \\cdot z$ - **Cosa ci dice la formula?** L'espressione dice che il termine $y \\cdot z$ è inutile in quanto _ridondante_ - **Perché?** In qualunque combinazione di valori assegnati a $x, y, z$, questa espressione farà risultare il termine $y \\cdot z$ sempre ridondante, in quanto per ogni combinazione: confrontando il risultato di $x \\cdot y + x^{\\prime} \\cdot z + y \\cdot z$ con quello di $x \\cdot y + x^{\\prime} \\cdot z$ (la stessa espressione ma senza $y \\cdot z$) avremmo lo stesso valore come risultato. - **Come riconoscere il Pattern di questa formula in un'espressione?** - 1° Termine: Una variabile $x$ in AND con qualcos'altro $y$. - 2° Termine: $x^{\\prime}$ in AND con qualcos'altro ancora $z$. - 3° Termine: L'AND delle due altre cose ($y \\cdot z$). - $(x + y) \\cdot (x^{\\prime} + z) \\cdot (y + z) = (x + y) \\cdot (x^{\\prime} + z)$ <-- La forma duale della prima formula. - Le stesse motivazioni che dimostrano il funzionamento della proprietà nella prima formula, valgono anche nella forma duale. - **Come riconoscere il Pattern di questa formula in un'espressione?** - 1° Termine: Una variabile $x$ in OR con qualcos'altro $y$. - 2° Termine: $x^{\\prime}$ in OR con qualcos'altro ancora $z$. - 3° Termine: L'OR delle due altre cose ((y + z)). --- _Continua con..._ Le [Funzioni Booleane e Tabelle di verità](/courses/logica-e-reti-logiche/lessons/funzioni-booleane-e-tabelle-di-verita/)."},{"id":"logica-e-reti-logiche/lessons/reti-logiche-combinatorie","title":"Reti Logiche Combinatorie","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/reti-logiche-combinatorie","content":"--- Placeholder. --- _Continua con..._ Le [Mappe di Karnaugh](/courses/logica-e-reti-logiche/lessons/mappe-di-karnaugh/)."},{"id":"logica-e-reti-logiche/lessons/sommatori","title":"Sommatori","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/sommatori","content":"--- ## Half Adder (HA) È il tipo di sommatore più elementare. L'Half Adder è un circuito che prende in input 2 bit e ne restituisce in output 2: - La Somma $s$. - Il Resto $c$. La tabella di verità dell'Half Adder è così: | $x$ | $y$ | $s$ | $c$ | | --- | --- | :---: | :---: | | $0$ | $0$ | **0** | **0** | | $0$ | $1$ | **1** | **0** | | $1$ | $0$ | **1** | **0** | | $1$ | $1$ | **0** | **1** | Nel pratico: - Viene calcolata la somma $s$ tra gli input $x$ e $y$, utilizzando la porta logica **XOR**. - Viene ricavato il resto $c$ utilizzando l'**AND**. _Rappresentazione grafica del circuito logico:_ ![Pasted image 20251116054153.png](../multimedia/Pasted%20image%2020251116054153.png) --- ## Full Adder (FA) Il Full Adder è un circuito logico che somma 3 bit in input e ne restituisce 2 in output. - **Input:** $x$, $y$ e $z$ <-- La $z$ può essere usata anche come riporto dalla somma precedente $C_{in}$ (come nel caso dell'n-Bit Adder). - **Output:** - $s$ <-- Somma finale. - $c$ <-- Riporto in uscita finale. La tabella di verità del Full Adder è così: | $x$ | $y$ | $z$ | $s$ | $c$ | | --- | --- | --- | :---: | :---: | | $0$ | $0$ | $0$ | **0** | **0** | | $0$ | $0$ | $1$ | **1** | **0** | | $0$ | $1$ | $0$ | **1** | **0** | | $0$ | $1$ | $1$ | **0** | **1** | | $1$ | $0$ | $0$ | **1** | **0** | | $1$ | $0$ | $1$ | **0** | **1** | | $1$ | $1$ | $0$ | **0** | **1** | | $1$ | $1$ | $1$ | **1** | **1** | Nel pratico: 1. Un primo HA somma $x$ e $y$, producendo una somma parziale $s_1$ e un riporto $c_1$. 2. Il secondo HA somma $s_1$ con $z$, producendo la somma finale $s$ e un secondo riporto $c_2$. 3. Una porta logica OR finale, combina i due riporti $c_1$ e $c_2$ producendo il riporto in uscita finale $C_{out}$ . _Rappresentazione grafica del circuito logico:_ ![Pasted image 20251116062709.png](../multimedia/Pasted%20image%2020251116062709.png) --- ## $n$-Bit Adder (Ripple-Carry Adder) L'$n$-Bit Adder permette finalmente di riuscire a sommare anche numeri interi, in quanto somma due numeri di dimensione $n$ bit. La struttura di questo sommatore è composta mettendo in cascata (in catena) una quantità $n$ di Full Adder pari alla dimensione in bit dei numeri da sommare. Entrando nel pratico, ipotizziamo di dover sommare i seguenti due numeri: - $X = x_0, x_1, x_2$ - $Y = y_0, y_1, y_2$ Ipotizziamo adesso di costruire il nostro $n$-Bit Adder concatenando Full Adder da destra verso sinistra: 1. Il primo FA riceve in input $x_0$, $y_0$ e $C_{in}$, ossia il riporto dell'ultima somma, che non essendoci stata è un bit spento di default. 2. Il primo FA restituisce in output la somma $s_0$ svolta tra $x_0$ e $y_0$. 3. Il primo FA restituisce anche il riporto in uscita finale $C_{out}$, che viene collegato al $C_{in}$ del FA successivo (che in questo caso avrà in input $x_1$, $y_1$ e il resto appena ottenuto). 4. Questo processo si ripete, con il FA successivo verso sinistra e così via fino all'ultimo. _Rappresentazione grafica del circuito logico:_ ![Pasted image 20251116065506.png](../multimedia/Pasted%20image%2020251116065506.png) --- _Continua con..._ Le [Reti Logiche Combinatorie](/courses/logica-e-reti-logiche/lessons/reti-logiche-combinatorie/)."},{"id":"logica-e-reti-logiche/lessons/teorema-di-espansione-di-shannon","title":"Teorema di Espansione di Shannon","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/teorema-di-espansione-di-shannon","content":"--- È un teorema che ci è utile ad ottenere in modo iterativo, la formula dell'output di una funzione booleana per ogni combinazione di ingressi (input): $$f(x, y, z) = f(0, 0, 0) + f(0, 0, 1) + f(0, 1, 0)... f(1, 1, 1);$$È come se ci permettesse di analizzare attraverso espressioni booleane una tabella di verità. --- ## Le Forme del Teorema: ### Formula Principale: #### $$f(x_1​, x_2​, ...,x_n​) = x_1^{\\prime}​ \\cdot f(0, x_2​, ..., x_n​) + x_1​ \\cdot f(1, x_2​, ..., x_n​)$$ Analizziamo la formula: **Cofattori:** Sarebbero espressioni come: - $f(0, x_2​, ..., x_n​)$ --> Descritto anche come $f_{x_0^{\\prime}}$ - **_Ma perché?_** Nella formula si vede $x_1^{\\prime}$ moltiplicato (AND) con la funzione nel quale è stato assegnato $x_1 = 0$, in quanto $0$ è una possibile combinazione di quella variabile all'interno della funzione $f(x_1​, x_2​, ...,x_n​)$. È possibile dire che la variabile $x_1^{\\prime}$ è utilizzata come **\"selettore\"** affinché l'affermazione della combinazione con cui è moltiplicata sia vera. Tant'è che infatti se facciamo l'AND tra $x_1^{\\prime}$ e $f(0, x_2, ..., x_n)$, otterremo sempre $0$. Quindi nella formula: $x_1^{\\prime}$ è una variabile necessaria a fare da \"selettore\" verificando la veridicità dell'affermazione secondo le regole dell'algebra di commutazione. - $f(1, x_2​, ..., x_n​)$ --> Descritto anche come $f_{x_1}$ - **_Ma perché?_** Nella formula si vede $x_1$ moltiplicato (AND) con la funzione nel quale è stato assegnato $x_1 = 1$, in quanto $1$ è una possibile combinazione di quella variabile all'interno della funzione $f(x_1​, x_2​, ...,x_n​)$. È possibile dire che la variabile $x_1$ è utilizzata come **\"selettore\"** affinché l'affermazione della combinazione con cui è moltiplicata sia vera. Tant'è che infatti se facciamo l'AND tra $x_1$ e $f(1, x_2, ..., x_n)$, otterremo sempre 1. Quindi nella formula: $x_1$ è una variabile necessaria a fare da \"selettore\" verificando la veridicità dell'affermazione secondo le regole dell'algebra di commutazione. _Esempio con funzione booleana a **2 variabili**:_ $f(x,y)​=x′⋅f(0,y)+x⋅f(1,y)=$ $=x′⋅(y′⋅f(0,0)+y⋅f(0,1))+x⋅(y′⋅f(1,0)+y⋅f(1,1))=$ $=x′y′⋅f(0,0)+x′y⋅f(0,1)+xy′⋅f(1,0)+xy⋅f(1,1)​;$ Questa formula effettua la **Sum of Products (SOP)**, ossia l'OR tra AND svolti tra **cofattori** e i loro **\"selettori\"**. La **Sum of Products (SOP)** è la base su cui è costruita la **Prima Forma Canonica**. ### Formula Duale: #### $$f(x_1​, x_2​, ..., x_n​) = (x_1^{\\prime} + f(1, x_2, ..., x_n​)) \\cdot (x_1 ​+ f(0, x_2, ...,x_n​))$$ Qui nella formula duale a quella principale che abbiamo appena visto, essendo appunto \"duale\", vengono invertiti gli operatori e anche i termini $0$ e $1$, senza però cambiare i \"selettori\". Questo è totalmente normale e anzi ci fa notare anche la veridicità della proprietà di Dualità, in quanto questa volta svolgendo ad esempio l'OR tra $x_1^{\\prime}$ e l'$1$ del primo cofattore, vedremmo come il risultato sarebbe $1$, che ci conferma come l'espressione rispetti le regole dell'algebra di commutazione e come anche il risultato sia duale come la formula. _Esempio con funzione booleana a **2 variabili**:_ $f(x,y)​=(x′+f(1,y))⋅(x+f(0,y))=$ $=(x′+(y′+f(1,1))⋅(y+f(1,0)))⋅(x+(y′+f(0,1))⋅(y+f(0,0)))=$ $=(x′+y′+f(1,1))⋅(x′+y+f(1,0))⋅(x+y′+f(0,1))⋅(x+y+f(0,0))​;$ Questa forma effettua il **Product of Sums (POS)**, ossia l'AND tra OR svolti tra **cofattori** e i loro **\"selettori\"**. La **Product of Sums (POS)** è la base su cui è costruita la **Seconda Forma Canonica**. --- _Continua con..._ Le [Forme Canoniche](/courses/logica-e-reti-logiche/lessons/forme-canoniche/)."},{"id":"logica-e-reti-logiche/lessons/reti-logiche-sequenziali","title":"Reti Logiche Sequenziali","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/reti-logiche-sequenziali","content":"--- Nelle Reti Logiche Combinatorie viste prima d'ora, gli output dipendono esclusivamente dalla configurazione degli ingressi in quell'istante preciso. Ma nelle **Reti Logiche Sequenziali** invece, questa sola configurazione di ingressi presente, non basta, bensì è necessario conoscere un \"riassunto\" degli output precedenti del sistema per decidere l'output presente. _Ad esempio:_ Un semaforo è un sistema sequenziale perché il led che si deve accendere dipende dalla temporizzazione e _dallo stato precedente_ (se era rosso, deve diventare verde, non giallo). ## Concetti chiave: Per modellare le Reti Logiche Sequenziali, sono fondamentali i seguenti 3 concetti chiave: - **Stato:** È la memoria che codifica le informazioni sulla storia passata del sistema, utile a calcolare l'output presente. - **Determinismo:** Una volta fissati gli ingressi e lo stato, l'output presente e quelli successivi diventano prevedibili. - **Modello del Tempo:** L'evoluzione di una FSM (Macchina a Stati Finiti) è dettata da **eventi:** - Macchina **Sincrona**: Se gli eventi sono sincronizzati da un segnale esterno detto **\"clock\"**. - Macchina **Asincrona**: Se gli eventi **non** sono sincronizzati da segnali esterni. --- _Continua con..._ Le [Macchine a Stati Finiti](/courses/logica-e-reti-logiche/lessons/macchine-a-stati-finiti/)."},{"id":"logica-e-reti-logiche/lessons/variabili-booleane","title":"Variabili Booleane","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/variabili-booleane","content":"--- Facendo un'analogia all'algebra tradizionale, una \"$x$\" non è un numero, ma un simbolo che _rappresenta_ un numero. Nell'Algebra di Boole vale lo stesso principio, le variabili booleane sono simboli che rappresentano un valore, che può essere $0$ oppure $1$. Le variabili booleane vengono denotate utilizzando le ultime lettere dell'alfabeto ($..., x, y, z$), e come visto nell'Algebra di Commutazione, una variabile booleana può avere come valore solo uno dei valori contenuti nel supporto $A$ della tupla dell'Algebra di Commutazione $\\mathcal B$ : $$\\mathcal{B}=\\langle A,+,\\cdot,^{\\prime},0,1\\rangle$$$$A = \\{0, 1\\}$$ Quindi una variabile booleana $x$ può avere un valore uguale a $0$ oppure ad $1$. --- _Riprendi con..._ L'[Algebra di Commutazione](/courses/logica-e-reti-logiche/lessons/algebra-di-commutazione/)."},{"id":"logica-e-reti-logiche/lessons/teorema-di-rappresentazione-di-stone","title":"Teorema di rappresentazione di Stone","description":"","date":"2026-02-18T00:00:00.000Z","tags":[],"authors":["valerio-di-tommaso"],"collection":"courses","isSubpost":true,"parentTitle":"Corso di Logica e Reti Logiche","url":"/courses/logica-e-reti-logiche/lessons/teorema-di-rappresentazione-di-stone","content":"--- Immagina l'algebra di Boole e l'algebra degli insiemi come due lingue che descrivono le stesse idee: | Algebra di Boole | Algebra degli insiemi | | ----------------- | --------------------- | | $\\cdot$ (AND) | $\\cap$ | | $+$ (OR) | $\\cup$ | | $^{\\prime}$ (NOT) | $^\\neg$ | | $0$ | $\\emptyset$ | | $1$ | $X$ | Viene dunque detto che per ogni Algebra di Boole $A$ finita, esiste un insieme (altrettanto finito) $X$, tale che allora $A$ è **isomorfa** all'Algebra di Boole. Il termine \"**isomorfa**\", è una parola del cazzo utilizzata dai matematici per dire \"è la stessa identica cosa, ma con nomi diversi\". ## Conseguenze del teorema: #### 1. Il numero di elementi del supporto. La tupla dell'algebra di boole: $$\\mathcal{B}=\\langle A,+,\\cdot,^{\\prime},0,1\\rangle$$ La stessa tupla isomorfa nell'algebra degli insiemi: $$\\mathcal{B}=\\langle P(X),\\cap,\\cup,^\\neg,\\emptyset,X\\rangle$$ Il primo elemento di queste tuple sono rispettivamente: \"$A$\" e \"$P(X)$\", che sono come abbiamo visto in precedenza il supporto dell'algebra di Boole, un insieme contenente i valori che gli ingressi potranno assumere. In questo caso, nell'algebra di Boole questi elementi sono $0$ e $1$, perciò dato che $A$ e $P(X)$ sono isomorfi, devono avere gli stessi elementi. Possiamo dunque affermare che il numero di elementi del supporto è sempre una Potenza di 2 Infatti l'Algebra di Boole ha come elementi: $2^n$ <--- Ossia: $0$ e $1$. #### 2. I Diagrammi di Venn per dimostrare leggi dell'Algebra di Boole. Per dimostrare una proprietà dell'Algebra di Boole è sufficiente dimostrare la validità dell'equivalente isomorfa Algebra degli insiemi (o delle classi), ad esempio, con i diagrammi di Venn. Quindi se vuoi dimostrare una legge astratta come: $a+(a\\cdot b)=a$ (Legge dell'assorbimento), non devi impazzire con i postulati, puoi semplicemente _tradurla_ nel mondo degli insiemi: $$A\\cup(A\\cap B)=A$$ Ora puoi anche disegnare un diagramma di Venn e vedere che l'unione tra $A$ e l'intersezione di $A$ e $B$ è semplicemente l'insieme $A$. Se la versione disegnata con il diagramma di Venn è vera, allora il Teorema di rappresentazione di Stone garantisce che sia vera anche nella versione secondo l'Algebra di Boole. --- _Continua con..._ L'[Algebra di Commutazione](/courses/logica-e-reti-logiche/lessons/algebra-di-commutazione/)."}]