Fondamenti di informatica

Docenti: Giorgio Gambosi, Miriam Di Ianni

Comunicazioni

Modalità d'esame, aggiornamento

19-08-2015 23:11

In considerazione di richieste pervenute e al fine di facilitare per quanto possibile lo svolgimento dell'esame, è consentito sostenere le tre prove dell'esame stesso (due scritti e un orale) nell'arco di (al più) tre appelli di esame consecutivi. Prove scritte superate, in mancanza di superamento della prova orale (e quindi dell'esame) entro i due appelli successivi, dovranno essere quindi sostenute di nuovo. Gli scritti superati nelle prove di esonero saranno considerati come sostenuti nel primo appello estivo.


17-07-2015 19:07

Pubblicato il testo della prova scritta, primo modulo, del 15-7-2015, con soluzioni.


17-07-2015 19:06

Pubblicati i risultati della prova scritta, primo modulo, del 15-7-2015.


15-06-2015 20:16

Pubblicati i risultati della prova scritta, primo modulo, del 15-6-2015.


15-06-2015 20:15

Pubblicato il testo della prova scritta, primo modulo, del 15-6-2015, con soluzioni.


Lezione del 01/06 annullata

27-05-2015 13:38

Si avvisano gli studenti che, contrariamente a quanto comunicato a lezione, la lezione di lunedì 1 giugno non avrà luogo. Detta lezione è rimandata al giorno 3 giugno.


Mdalità d'esame

20-05-2015 12:04

1) ORARI. Si informano gli studenti che, salvo diversa comunicazione, le prove scritte dei due moduli avranno sempre luogo nella stessa data: la prova scritta del PRIMO modulo avrà inizio alle ore 14 e la prova scritta del SECONDO modulo avrà inizio alle ore 10.

 

2) PROVA ORALE. La prova orale avviene congiuntamente per i due moduli. In generale, la prova orale deve aver luogo nello stesso appello in cui si sostiene la prova scritta. Fanno eccezione i due appelli della sessione estiva.

Più precisamente:

  • scritto nell'appello di giugno: orale nell'appello di giugno o in quello di luglio;
  • scritto nell'appello di luglio: orale nell'appello di luglio o in quello di settembre;
  • scritto nell'appello di settembre:  orale nell'appello di settembre;
  • scritto nell'appello di febbraio:  orale nell'appello di febbraio.

15-03-2015 18:29

Si avvisano gli studenti che, per motivi di salute della docente, la lezione del 16/03/2015 non avrà luogo.


26-02-2015 15:06

Pubblicato i risultati dell'esonero del 25-2-2015.


25-02-2015 11:51

Pubblicato il testo dell'esonero del 25-2-2015, con soluzioni.


11-02-2015 20:05

Pubblicato i risultati dell'esonero del 10-2-2015.


11-02-2015 10:21

Pubblicato il testo dell'esonero del 10-2-2015, con soluzioni.


04-02-2015 13:28

La prova di esonero del 10-2-2015 è posticipata dalle ore 16 alle ore 16.30


Prove di esonero

23-01-2015 15:43

Le due prove di esonero relative alla parte di corso svolta nel primo semestre si terranno il 10-2-2015 alle ore 16 e il 25-2-2015 alle ore 10, in aula T5 in entrambi i casi.

Si prega, per motivi organizzativi, di comunicare al docente via email, entro 2 giorni prima della data dell'esonero, la propria intenzione di sostenere la prova, specificando nome, cognome e numero di matricola.

 

IMPORTANTE. La prova di esonero è riservata agli studenti che dovranno sostenere, a partire dalla sessione estiva, l'esame per il corso di FO da 12 cfu: gli studenti che abbiano nel loro piano di studi il precedente insegnamento di FO da 6 cfu devono sostenere l'esame per tale corso nel relativo appello, con il Prof. Intrigila.


09-12-2014 11:10

La lezione di oggi, 9-12, è rimandata a data da definire.


05-11-2014 18:45

All'indirizzo http://www.idt.mdh.se/kurser/cd5560/14_11/examination/KOMPENDIER/Regular/kompendium_engl.pdf è disponibile un utile elenco di problemi e soluzioni sui linguaggi regolari e i diversi modelli ad essi associati (ASF, Grammatiche regolari, ER). In inglese.


17-10-2014 11:52

Pubblicata una breve nota sull'algebra delle espressioni regolari.


07-10-2014 19:41

Messo a disposizione documento pdf con problemi sulle conoscenze richieste per il corso (logica, teoria degli insiemi, relazioni e funzioni, dimostrazioni induttive e per assurdo, insiemi numerabili e non numerabili).


Lezioni

4803-06-2015

Il problema Dominating Set (definizione). Esercitazione.

4727-05-2015

Il problema Partizione: problemi numerici, algoritmi pseudo-polinomiali e NP-completezza in senso debole. Tsp e NP-completezza in senso forte. Restrizioni polinomiali e non: la questione delle costanti.

4625-05-2015

Prove di NP-completezza: problemi di colorabilità, Hamiltonoan Circuit (solo enunciato), Hamiltonian Path, Longest Path, TSP

4520-05-2015

Prove di NP-completezza: i problemi Vertex Cover, Independent set, Clique

4418-05-2015

Dimostrazioni di NP-completezza. NP-completezza di 3SAT. Esistenza di problemi NP-intermedi: il teorema di Ladner (solo enunciato)

4313-05-2015

Il teorema di Cook-Levin

4211-05-2015

La classe NP: algoritmi non deterministici e definizione alternativa della classe NP

4106-05-2015

Problemi decisionali complemento. Complessità dell'insieme delle istanze. La classe P.

4004-05-2015

Tipi di problemi. Problemi decisionali. Codifiche, codifiche ragionevoli. Problemi decisionali e linguaggi: decisione dell'insieme delle istanze.

3929-04-2015

Classi complemento. P=coP e congettura NP diverso da coNP. Ciusura di NP e coNP rispetto alla riducibilità polinomiale. Linguaggi coNP-completi.

3827-04-2015

Pricipali classi di complessità e loro relazioni di inclusione debole. Separazione di P e EXPTIME. Congettura "P diverso da NP". Riduzioni polinomiali, chiusura di P e linguaggi NP-completi.

3722-04-2015

Esempi di funzioni time-constructible. Teoremi di compressione e di accelerazione

3620-04-2015

Classi di complessità non deterministiche. Relazioni fra classi di complessità. Gap theorem e funzioni space- e time-constructible

3515-04-2015

Misure di complessità e loro relazioni. Relazione fra i diversi modelli di calcolo rispetto alle misure di complessità spazio e tempo. Classi di complessità deterministiche

3413-04-2015

Accettabilità, decidibilità e riduzioni. Esercitazione: simulazione di una macchina di Turing non deterministica mediante un programma scritto in linguaggio PacalMinimo

3308-04-2015

L'Halting Problem

3201-04-2015

Insiemi numerabili e non numerabili e il Teorema di Cantor

3130-03-2015

La tesi di Church Turing. Il modello di calcolo PascalMinimo e la sua equivalenza con il modello macchina di Turing

3025-03-2015

Linguaggi accettabili, linguaggi decidibili, funzioni calcolabili

2923-03-2015

La Macchina di Turing Universale.

2818-03-2015

Modelli equivalenti di macchine di Turing: macchine deterministiche e non deterministiche, macchine a k nastri e ad un solo nastro, macchine definite su un alfabeto qualsiasi e macchine definite su un alfabeto binario.

2711-03-2015

Stati globali, transizioni, computazioni di una macchina di Turing. Struttura dell'insieme delle quintuple: totalità e non determinismo.

2609-03-2015

Esempio: macchine di Turing (ad uno e tre nastri) che calcolano la somma di due numeri binari.

2504-03-2015

Introduzione alla calcolabilità: relazione fra calcolabilità e linguaggio formale. Dal concetto di operazione elementare alla macchina di Turing: una macchina che decide se una parola è palindroma.

2416-01-2015

Macchine di Turing non deterministiche. Equivalenza tra MdT e NMdT. Equivalenza tra linguaggi accettati da MdT e linguaggi di tipo 0.

2313-01-2015

Macchine di Turing multitraccia e multinastro. Simulazione mediante MdT ad un nastro e una traccia.

2210-01-2015

Definizione di macchina di Turing. Esempi di MdT. Accettazione e decisione su MdT.

2119-12-2014

Analisi sintattica. Parsing a discesa ricorsiva (cenni). L'algoritmo Cocke- Yunger-Kasami.

2016-12-2014

Analisi sintattica. Grammatiche e linguaggi ambigui. XML come esempio di formalismo basato su grammatiche CF

1912-12-2014

Forma normale di Greibach. Equivalenza tra grammatiche CF e automi a pila non deterministici. Esistenza di linguaggi accettati da NPDA e non accettati da DPDA.

1805-12-2014

Pumping lemma per i linguaggi CF. Proprietà di chiusura dei linguaggi CF.

1702-12-2014

Automi a pila (PDA) deterministici e non deterministici. Accettazione per pila vuota e per stato finale: equivalenza.

1628-11-2014

Grammatiche CF in forma ridotta. Eliminazione di produzioni unitarie e di simboli inutili. Forma normale di Chomsky.

1525-11-2014

Esempio di minimizzazione di un ASF. Linguaggi context-free. Alberi sintattici. Grammatiche in forma ridotta.

1421-11-2014

Minimizzazione di automi a stati finiti. Il teorema di Myhill-Nerode.

1318-11-2014

Esempio di derivazione di ER da ASF. Predicati decidibili su linguaggi regolari.

1214-11-2014

Esempi di uso del pumping lemma per linguaggi regolari. Equivalenza tra ASF ed espressioni regolari.

1111-11-2014

Pumping lemma per linguaggi regolari. Proprietà di chiusura dei linguaggi regolari

1007-11-2014

Esempi di riduzione ASFND-ASFD. Equivalenza tra ASF e grammatiche di tipo 3.

904-11-2014

Esempi di ASFD e ASFND. Equivalenza tra ASFD e ASFND.

831-10-2014

Esempi di ASFD. Automi a stati finiti non deterministici. Configurazioni di un ASFND. Stringhe accettate da un ASFND. Linguaggi accettati da ASFND.

728-10-2014

Automi a stati finiti deterministici. Stato interno. Configurazioni di un ASFD. Computazioni di un ASFD. 

624-10-2014

 

Gerarchia di Chomsky. Automi: definizioni generali. Stato interno, configurazioni di un automa, funzione di transizione.

521-10-2014

 

Grammatiche e linguaggi. Simboli terminali e non terminali. Produzioni. Derivazioni. Tipi di grammatiche.

417-10-2014

Espressioni regolari. Esempi ed esercizi.

314-10-2014

Linguaggi formali. Operazioni sui linguaggi formali (unione, intersezione, complemento, concatenazione, potenza, stella di Kleene). Espressioni regolari.

210-10-2014

Richiami di teoria degli insiemi. Dimostrazioni per induzione. Insiemi infiniti, numerabili e non numerabili. Diagonalizzazione. Definizione di linguaggio formale.

107-10-2014

Introduzione al corso. Richiami di calcolo proposizionale.


Materiale didattico

Informazioni

Anno accademico2014-2015
Crediti12
SettoreINF/01
Anno2
Semestre1-2
PropedeuticitàMatematica discreta.

Programma

Il programma enunciato di seguito è solo approssimativo. Argomenti ulteriori potrebbero essere inseriti durante il corso e/o, corrispondentemente, argomenti di minor rilevanza, elencati sotto, potrebbero essere omessi.

 

Modulo 1

- Fondamenti matematici: logica, insiemi, relazioni, funzioni, strutture algebriche fondamentali

- Insiemi finiti e infiniti; numerabilità e non numerabilità di insiemi

- Caratteristiche elementari dei linguaggi

- Grammatiche di Chomsky e loro gerarchia

- Generazione ed accettazione di linguaggi

- Riconoscimento di linguaggi: automi

- Automi a stati finiti determinitici e non deterministici; equivalenza tra essi

- Relazioni tra automi a stati finiti e grammatiche di tipo 3 (regolari)

- Pumping lemma per i linguaggi regolari

- Proprietà di chiusura dei linguaggi regolari

- Predicati decidibili sui linguaggi regolari

- Espressioni regolari e loro equivalenza con gli automi a stati finiti e con le grammatiche regolari

- Minimizzazione di automi a stati finiti

- Linguaggi context free

- Grammatiche di tipo 2: forme ridotte e forme normali (Chomsky, Greibach)

- Pumping lemma per i linguaggi context free

- Automi a pila e linguaggi context free

- Automi a pila deterministici 

- Ambiguità

- Analisi lessicale e sintattica

- Introduzione alle Macchine di Turing

- Linguaggi di tipo 1 e automi lineari

- Linguaggi di tipo 0 (ricorsivamente enumerabili) e Macchine di Turing

 

Modulo 2

Parte 1, calcolabilità:

- Ancora sulle Macchine di Turing: trasduttori e riconoscitori, Macchine ad un nastro e a k nastri, Macchine  deterministiche e non deterministiche. Macchina di Turing universale.
- Linguaggi e funzioni. Linguaggi e linguaggi complemento. Accettabilità e decidibilità di linguaggi. Calcolabilità di funzioni. La tesi di Church-Turing e modello di calcolo equivalenti alla macchina di Turing.

- Cardinalità di insiemi. Insiemi numerabili e non numerabili. Diagonalizzazione.
- Linguaggi non decidibili. 

- Riducibilità tra linguaggi

Parte 2, complessità:

- Misure di complessità: DTIME, DSPACE, NTIME, NSPACE.
- Classi di linguaggi. Gap theorem e funzioni time-constructible. Teoremi di compressione e di accelerazione. Definizione delle classi di complessità spaziale e temporale: P, NP, PSPACE, NPSPACE, EXP, coNP. Inclusione, inclusione propria, coincidenza. Completezza.

- Problemi e codifiche. Problemi decisionali e loro complemento.
- La classe P. Riducibilità polinomiale e chiusura di P rispetto alla riducibilità polinomiale. Problemi in P: 2-SAT, 2-COLORABILITA'. Funzioni in FP: trasformazione di una funzione booleana in forma congiuntiva normale.
- La classe NP. Linguaggi NP-completi e Teorema di Cook. Chiusura rispetto alla riduzione polinomiale. Esempi di dimostrazioni di NP-completezza: 3-SAT, Vertex Cover, 3-Colorability, Colorability, Independent Set, Clique, Hamiltonian Circuit/Path, Longest Path, Commesso Viaggiatore. Problemi NP-intermedi: il teorema di Ladner.

- Algoritmi pseudo-polinomiali, problemi numerici e NP-completezza in senso forte; il problema PARTIZIONE.


Testi di riferimento

G. Ausiello, F. D'Amore, G. Gambosi, L. Laura "Linguaggi, Modelli, Complessità" nuova edizione. Franco Angeli, 2014. ISBN 978-88-917-0553-2.

 

Materiale a cura del docente.

 

Per il secondo modulo: materiale didattico a cura del docente.


Ricevimento studenti

Al termine delle lezioni. E' possibile inoltre richiedere un appuntamento via mail.


Modalità di esame

Scritto e orale. E' prevista una prova di esonero (opzionale) scritto relativo alla prima parte del corso. Per l'iscrizione all'esame è richiesta la prenotazione sul sito delphi.uniroma2.it