• Non ci sono risultati.

Materiali e Risorse

N/A
N/A
Protected

Academic year: 2021

Condividi "Materiali e Risorse"

Copied!
2
0
0

Testo completo

(1)

Elementi di Teoria della Computazione

Prof.ssa De Felice

Laurea in Informatica - Matricole pari

Preliminari. Introduzione alla teoria della calcolabilit`a, degli automi e della complessit`a. Insiemi. Definizioni induttive e dimostrazioni per induzione. Cardinalit`a di un insieme. Relazioni e Operazioni. Unione, intersezione, differenza e complemento. Sequenze e tuple. Prodotto Cartesiano. Insieme potenza. Concetti fondamentali della teoria della computa-zione: alfabeti, stringhe, concatenazione di stringhe, linguaggi. Sottostringa. Inversione di stringhe.

Riferimenti: [2], Cap. 0 e [1], Sez. 1.5.

Automi Finiti, linguaggi ed espressioni regolari. Automi finiti deterministici. Estensione della funzione di transizione alle stringhe. Il linguaggio riconosciuto da un automa finito deterministico. I linguaggi regolari. Le operazioni regolari. Automi finiti non deterministici. Epsilon-chiusure. Estensione della funzione di transizione alle stringhe. Il linguaggio ricono-sciuto da un automa finito non deterministico. Equivalenza tra automi finiti deterministici e non deterministici. Operazioni sui linguaggi: unione, intersezione, complemento, differenza, concatenazione, chiusura di Kleene. Chiusura dei linguaggi regolari rispetto alle operazioni booleane e alle operazioni regolari. Espressioni regolari e linguaggi denotati da espressio-ni regolari. Teorema di Kleene (senza dimostrazione). Il pumping lemma per i linguaggi regolari (senza dimostrazione). Linguaggi non regolari.

Riferimenti: [2], Cap. 1, Sezz. 1.1, 1.2, 1.3 (fino all’enunciato del Teorema 1.54, pag. 69), 1.4 (escludendo la dimostrazione del Teorema 1.70) e [1], Cap. 2, Sezz. 2.2.4, 2.2.5, 2.5.3, 2.5.4.

Macchine di Turing. Definizione di macchina di Turing deterministica a nastro singolo. Configurazioni di una macchina di Turing. Computazione di una macchina di Turing. Il linguaggio riconosciuto da una macchina di Turing. Funzioni calcolabili, linguaggi deci-dibili e linguaggi Turing riconoscibili. Varianti di Macchine di Turing: macchina di Turing multinastro, macchina di Turing non deterministica. Equivalenza tra macchine di Turing de-terministiche a nastro singolo e macchine di Turing multinastro. Equivalenza tra macchine di Turing deterministiche e macchine di Turing non deterministiche. La tesi di Church-Turing.

Riferimenti: [2], Cap. 3, Sezz. 3.1, 3.2, 3.3 (escludendo il paragrafo “Enumeratori”, pag. 189).

Decidibilit`a. Linguaggi decidibili. Il problema della fermata. La macchina di Turing uni-versale. Il metodo della diagonalizzazione. Indecidibilit`a di AT M. Un linguaggio che non `e

Turing riconoscibile.

Riferimenti: [2], Cap. 4, Sez. 4.2.

Riducibilit`a. I linguaggi HALTT M, REGU LART M, ET M, EQT M. Riducibilit`a mediante

funzione. Funzioni calcolabili. Riduzioni. Teorema di Rice (senza dimostrazione).

(2)

Riferimenti: [2], Cap. 5, Sezz. 5.1 (solo le definizioni dei linguaggi HALTT M, REGU LART M,

ET M, EQT M), 5.3 ed Esercizio 5.16.

Complessit`a temporale. Misure di complessit`a: complessit`a in tempo deterministico e non deterministico. Relazioni di complessit`a tra varianti di macchine di Turing. La classe P . La classe N P . Riducibilit`a in tempo polinomiale. Definizione di N P -completezza. Teorema di Cook-Levin (senza dimostrazione). Esempi di linguaggi N P -completi: SAT , 3-SAT , CLIQU E, V ERT EX-COV ER, HAM P AT H, U HAM P AT H, SU BSET -SU M .

Riferimenti: [2], Cap. 7 (escludendo la Definizione 7.5, le dimostrazioni dei Teoremi 7.8 e 7.11, il Teorema 7.16, la dimostrazione del Teorema 7.37).

Riferimenti bibliografici.

[1 ] J. Hopcroft, R. Motwani, J. Ullman, Automi, Linguaggi e Calcolabilit`a, Addison Wesley Pearson Education Italia s.r.l, terza edizione, 2009.

[2 ] M. Sipser, Introduzione alla teoria della computazione, Maggioli Editore, 2016.

Riferimenti

Documenti correlati

La specifica %c legge 1 carattere ( anche se è uno spazio o un ritorno a capo , ossia non li salta come le altre specifiche di conversione della scanf) e lo mette (o meglio mette

The substring begins at the specified beginIndex and extends to the character at index endIndex - 1. Thus the length of the substring is endIndex

int indexOf(String str, int fromIndex) : Returns the index within this string of the first occurrence of the specified substring, starting at the specified index. boolean isEmpty()

I Quando si dichiara una funzione che prende come parametro un array multi-dimensionale, solo la prima dimensione pu` o essere lasciata non specificata..

Valutazione di codice con

Prima di chiamare la free sull'array chiamarla su ogni

strncpy() Copia i primi n caratteri di una stringa in un’altra stringa strcat() Concatena due stringhe. strncat() Concatena i primi n caratteri di una stringa ad un’altra

¨  Nell’input di stringhe, la scanf scarta automaticamente i white space iniziali e continua a leggere fino a quando incontra un white space (quindi non si può usare la scanf