Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
i
hopcroft 2009/1/30 11:37 page iii #3
John E. Hopcroft
Rajeev Motwani
Jeffrey D. Ullman
i
i
i
hopcroft 2009/1/11 22:35 page iv #4
Anno
09 10 11 12 13
i
i
i
hopcroft 2009/1/11 22:35 page v #5
Sommario
xv
Prefazione
1
xvii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
2
4
5
5
6
8
9
13
13
13
15
16
17
18
18
21
22
25
27
27
28
29
30
i
i
i
hopcroft 2009/1/11 22:35 page vi #6
vi Sommario
1.6
1.7
2
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Bibliograa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
36
36
37
39
40
42
43
43
44
45
46
50
50
53
53
54
55
56
58
62
63
65
66
66
67
69
69
70
71
71
73
74
77
77
78
i
i
i
hopcroft 2009/1/11 22:35 page vii #7
Sommario vii
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
79
79
80
82
84
85
86
86
91
97
101
103
103
104
106
108
109
109
110
110
111
112
112
114
116
117
117
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
119
119
120
121
123
124
125
130
132
133
138
141
142
144
145
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
i
i
hopcroft 2009/1/11 22:35 page viii #8
viii Sommario
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
146
146
146
149
151
154
156
156
157
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
159
159
160
161
163
165
167
168
169
171
171
173
174
175
176
180
181
182
182
184
185
188
194
195
195
197
200
201
203
204
205
4.4
4.5
4.6
5
4.3.4 Esercizi . . . . . . . . . . . . . . . . . . . . . .
Equivalenza e minimizzazione di automi . . . . . . . . .
4.4.1 Verica dellequivalenza di stati . . . . . . . . .
4.4.2 Equivalenza di linguaggi regolari . . . . . . . . .
4.4.3 Minimizzazione di DFA . . . . . . . . . . . . . .
4.4.4 Perch il DFA minimo non pu essere migliorato
4.4.5 Esercizi . . . . . . . . . . . . . . . . . . . . . .
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliograa . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
i
i
hopcroft 2009/1/11 22:35 page ix #9
Sommario ix
6
Automi a pila
6.1
Denizione di automa a pila . . . . . . . . . . .
6.1.1 Introduzione informale . . . . . . . . .
6.1.2 Denizione formale di automa a pila . .
6.1.3 Una notazione graca per i PDA . . . .
6.1.4 Descrizioni istantanee di un PDA . . . .
6.1.5 Esercizi . . . . . . . . . . . . . . . . .
6.2
I linguaggi di un PDA . . . . . . . . . . . . . .
6.2.1 Accettazione per stato nale . . . . . .
6.2.2 Accettazione per stack vuoto . . . . . .
6.2.3 Da stack vuoto a stato nale . . . . . .
6.2.4 Da stato nale a stack vuoto . . . . . .
6.2.5 Esercizi . . . . . . . . . . . . . . . . .
6.3
Equivalenza di PDA e CFG . . . . . . . . . . .
6.3.1 Dalle grammatiche agli automi a pila . .
6.3.2 Dai PDA alle grammatiche . . . . . . .
6.3.3 Esercizi . . . . . . . . . . . . . . . . .
6.4
Automi a pila deterministici . . . . . . . . . . .
6.4.1 Denizione di PDA deterministico . . .
6.4.2 Linguaggi regolari e PDA deterministici
6.4.3 DPDA e linguaggi liberi dal contesto . .
6.4.4 DPDA e grammatiche ambigue . . . . .
6.4.5 Esercizi . . . . . . . . . . . . . . . . .
6.5
Riepilogo . . . . . . . . . . . . . . . . . . . . .
6.6
Bibliograa . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
207
207
207
209
211
212
215
216
217
218
218
221
223
224
225
228
232
233
234
234
236
236
237
238
239
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
241
241
242
243
244
248
252
255
259
259
260
262
264
266
266
268
269
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
i
i
hopcroft 2009/1/11 22:35 page x #10
x Sommario
7.4
7.5
7.6
8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
269
273
275
277
277
279
280
281
285
285
286
287
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
289
289
290
292
295
298
298
299
300
301
304
308
308
309
311
311
312
314
315
317
317
318
319
321
322
325
325
328
330
331
i
i
i
hopcroft 2009/1/11 22:35 page xi #11
Sommario xi
8.6
8.7
8.8
9
8.5.5 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le macchine di Turing e i computer . . . . . . . . . . . . . . . . . . . . . . .
8.6.1 Simulazione di una macchina di Turing da parte di un computer . . .
8.6.2 Simulazione di un computer da parte di una macchina di Turing . . .
8.6.3 Confronto dei tempi di esecuzione dei computer e delle macchine di
Turing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliograa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Indecidibilit
9.1
Un linguaggio non ricorsivamente enumerabile . . . . . . . . . .
9.1.1 Enumerazione delle stringhe binarie . . . . . . . . . . .
9.1.2 Codici per le macchine di Turing . . . . . . . . . . . . .
9.1.3 Il linguaggio di diagonalizzazione . . . . . . . . . . . .
9.1.4 Dimostrazione che Ld non ricorsivamente enumerabile
9.1.5 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2
Un problema indecidibile ma ricorsivamente enumerabile . . . .
9.2.1 Linguaggi ricorsivi . . . . . . . . . . . . . . . . . . . .
9.2.2 Complementi di linguaggi ricorsivi e RE . . . . . . . . .
9.2.3 Il linguaggio universale . . . . . . . . . . . . . . . . . .
9.2.4 Indecidibilit del linguaggio universale . . . . . . . . . .
9.2.5 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3
Problemi indecidibili relativi alle macchine di Turing . . . . . .
9.3.1 Riduzioni . . . . . . . . . . . . . . . . . . . . . . . . .
9.3.2 Macchine di Turing che accettano il linguaggio vuoto . .
9.3.3 Il teorema di Rice e le propriet dei linguaggi RE . . . .
9.3.4 Problemi sulle speciche di macchine di Turing . . . . .
9.3.5 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4
Il problema di corrispondenza di Post . . . . . . . . . . . . . . .
9.4.1 Denizione del problema di corrispondenza di Post . . .
9.4.2 PCP modicato . . . . . . . . . . . . . . . . . . . . . .
9.4.3 Dimostrazione di indecidibilit di PCP: conclusione . . .
9.4.4 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . .
9.5
Altri problemi indecidibili . . . . . . . . . . . . . . . . . . . . .
9.5.1 Problemi relativi a programmi . . . . . . . . . . . . . .
9.5.2 Indecidibilit dellambiguit delle CFG . . . . . . . . .
9.5.3 Il complemento di un linguaggio associato a una lista . .
9.5.4 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . .
9.6
Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7
Bibliograa . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
333
334
334
336
. 340
. 342
. 344
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
347
348
349
349
350
351
352
353
353
354
357
359
360
362
362
364
366
369
369
371
371
373
376
381
382
382
382
384
387
388
389
i
i
i
hopcroft 2009/1/11 22:35 page xii #12
xii Sommario
10 Problemi intrattabili
10.1 Le classi P e N P . . . . . . . . . . . . . . . . . . . . . . . . . .
10.1.1 Problemi risolvibili in tempo polinomiale . . . . . . . . .
10.1.2 Un esempio: lalgoritmo di Kruskal . . . . . . . . . . . .
10.1.3 Tempo polinomiale nondeterministico . . . . . . . . . . .
10.1.4 Un esempio in N P: il problema del commesso viaggiatore
10.1.5 Riduzioni polinomiali . . . . . . . . . . . . . . . . . . . .
10.1.6 Problemi NP-completi . . . . . . . . . . . . . . . . . . .
10.1.7 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2 Un problema NP-completo . . . . . . . . . . . . . . . . . . . . .
10.2.1 Il problema della soddisfacibilit . . . . . . . . . . . . . .
10.2.2 Rappresentazione di istanze di SAT . . . . . . . . . . . . .
10.2.3 NP-completezza del problema SAT . . . . . . . . . . . . .
10.2.4 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3 Una versione ristretta di soddisfacibilit . . . . . . . . . . . . . .
10.3.1 Forme normali di espressioni booleane . . . . . . . . . . .
10.3.2 Conversione in CNF di espressioni booleane . . . . . . . .
10.3.3 NP-completezza di CSAT . . . . . . . . . . . . . . . . . .
10.3.4 NP-completezza di 3SAT . . . . . . . . . . . . . . . . . .
10.3.5 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.4 Altri problemi NP-completi . . . . . . . . . . . . . . . . . . . . .
10.4.1 Descrivere problemi NP-completi . . . . . . . . . . . . .
10.4.2 Il problema dellinsieme indipendente . . . . . . . . . . .
10.4.3 Il problema della copertura per nodi . . . . . . . . . . . .
10.4.4 Il problema del circuito hamiltoniano orientato . . . . . . .
10.4.5 Circuiti hamiltoniani non orientati e TSP . . . . . . . . . .
10.4.6 Riepilogo dei problemi NP-completi . . . . . . . . . . . .
10.4.7 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.5 Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.6 Bibliograa . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
391
392
393
393
396
397
398
399
401
403
403
405
406
411
412
413
414
416
421
422
423
423
424
427
429
435
436
437
441
441
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
443
444
444
445
446
447
447
448
449
451
451
453
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
i
i
hopcroft 2009/1/11 22:35 page xiii #13
Sommario xiii
11.4
11.5
11.6
11.7
A La gerarchia di Chomsky
A.1 Grammatiche . . . . . . . . . . . . . . . . . . . . . .
A.1.1 Denizione di grammatica . . . . . . . . . .
A.1.2 Derivazioni e linguaggi . . . . . . . . . . . .
A.2 Tipi di grammatiche e gerarchia di Chomsky . . . . .
A.2.1 Linguaggi di tipo 0 . . . . . . . . . . . . . .
A.2.2 Linguaggi di tipo 1 o dipendenti dal contesto .
A.2.3 Linguaggi di tipo 2 e di tipo 3 . . . . . . . . .
A.3 Bibliograa . . . . . . . . . . . . . . . . . . . . . .
Indice analitico
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
454
456
460
461
461
462
463
465
467
468
469
470
470
471
473
475
476
477
480
480
482
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
485
485
486
487
488
490
490
491
492
493
i
i
i
hopcroft 2009/1/11 22:35 page xv #15
Questo libro ha una lunga storia. Nel 1969, John E. Hopcroft e Jeffrey D. Ullman pubblicarono
per Addison-Wesley Formal Languages and Their Relation to Automata, uno dei primi libri
dedicati alla presentazione sistematica della teoria dei linguaggi formali e degli automi. Il volume, completamente rivisto e notevolmente arricchito, venne riproposto nel 1979 dagli stessi
autori e per lo stesso editore con il titolo Introduction to Automata Theory, Languages, and
Computation. Dopo pi di ventanni, nel 2001, venne pubblicata una nuova edizione, questa
volta anche con il contributo di Rajeev Motwani, profondamente modicata sia per la scelta dei
contenuti (in gran parte ridotti rispetto alle edizioni precedenti), sia per lo stile della presentazione, meno formale. Rimandiamo alla prefazione degli Autori per le motivazioni che li hanno
indotti a questa scelta.
sorprendente che questo famoso libro sia apparso in edizione italiana solo nel 2003, grazie a Pearson Education che ha tradotto la seconda edizione. Questo volume, seconda edizione italiana, frutto di una completa revisione della edizione italiana precedente, nonch di un
aggiornamento alla terza edizione americana, pubblicata nel 2007.
Per completezza, ho ritenuto utile integrare questa edizione scrivendo una breve appendice
relativa alle grammatiche e alla gerarchia di Chomsky. Questo argomento, forse snobbato negli
Stati Uniti, in genere presentato nei corsi di Linguaggi Formali delle universit italiane ed
utile per fornire un inquadramento pi preciso e completo di queste tematiche. Inoltre ritengo
che sia un interessante arricchimento (che tra laltro non richiede molto spazio n molto tempo
per la presentazione in un corso) alla formazione culturale degli studenti, che pu fornire uno
stimolo per ulteriori letture e approfondimenti a chi sia pi interessato a questi argomenti.
Come affermato dagli Autori nella prefazione, il ruolo della teoria degli automi e dei linguaggi cambiato negli ultimi venti anni. La disciplina ampiamente riconosciuta come fondazionale
nellinformatica. Gli automi e i linguaggi sono gli strumenti formali di riferimento per svariati
settori e applicazioni. Tuttavia, a differenza di quanto affermato nella prefazione scritta dagli
Autori, voglio sottolineare che esiste tuttora una fervida attivit di ricerca in questarea, che ha
ricevuto proprio in questi ultimi anni nuovi signicativi contributi. Allo stesso tempo, doveroso
segnalare che molti problemi rilevanti sono tuttora aperti.1
1 Per approfondimenti su questi punti, si veda ad esempio S. Yu A renaissance of Automata Theory?, Bulletin
of EATCS 72 (2000), pp. 270-272, e J. Hromkovi Descriptional complexity of nite automata: concepts and open
c
problems, Journal of Automata, Languages and Combinatorics 7 (2002), pp. 519-531.
i
i
i
hopcroft 2009/1/11 22:35 page xvi #16
Ringraziamenti
Desidero ringraziare Pearson Education per la ducia con la quale mi ha afdato la revisione
di questo libro. Ringrazio in particolare Marlene Farina che ha dato lavvio a questo progetto
e Alessandra Piccardo che ne ha curato la prosecuzione, Micaela Guerra per la gestione precisa e puntuale delle questioni organizzative e per la tempestivit nel rispondere a ogni genere di domanda, Federica Sonzogno per gli utili e preziosi suggerimenti riguardanti lo stile e
limpaginazione.
Giovanni Pighizzini
Milano, febbraio 2009
i
i
i
hopcroft 2009/1/11 22:35 page xvii #17
Prefazione
Nella prefazione alledizione del 1979 di questo libro, Hopcroft e Ullman si mostravano sorpresi
di fronte al orire degli studi sugli automi rispetto alla situazione del 1969, anno in cui veniva
pubblicato il loro primo volume. In effetti il libro del 1979 trattava numerosi argomenti nuovi
ed era lungo circa il doppio. Paragonata a quella del 1979, si scopre che la presente edizione,
come le automobili degli anni 70, pi grande fuori e pi piccola dentro. Pu sembrare
uninvoluzione, ma questa nuova veste ci soddisfa per diverse ragioni.
Innanzitutto nel 1979 la teoria degli automi e dei linguaggi era ancora unarea vitale di ricerca, e quel libro aveva anche lo scopo di incoraggiare gli studenti tagliati per la matematica a dare
un contributo attivo. Rispetto alle applicazioni, la ricerca pura nella teoria degli automi attualmente limitata; non c pi motivo, quindi, di conservare lo stile conciso e pi matematico del
libro del 1979.
In secondo luogo il ruolo della teoria degli automi e dei linguaggi negli ultimi ventanni
cambiato. Nel 1979 lo studio degli automi era riservato perlopi a studenti degli ultimi anni di un
corso di laurea che avevano intrapreso un indirizzo specico; essi formavano perci il pubblico
di riferimento, soprattutto per gli ultimi capitoli. Oggi questo tipo di studi parte integrante del
curriculum di base di un corso di laurea. Di conseguenza la scelta dei contenuti deve presupporre
che lo studente abbia un bagaglio di conoscenze inferiore, e fornire pi nozioni fondamentali e
maggiori dettagli nelle dimostrazioni.
Un terzo cambiamento riguarda il contesto: negli ultimi ventanni linformatica ha raggiunto
un livello quasi inimmaginabile. Nel 1979 era spesso difcile trovare argomenti in grado di
superare la successiva ondata di progresso tecnologico e sufcienti a riempire un piano di studi;
oggi lo spazio limitato del piano di studi di un corso di laurea conteso da un numero elevato di
discipline.
Un quarto motivo che la scelta di studiare informatica appare sempre pi legata a obiettivi
concreti e fra gli studenti si diffuso un rigido pragmatismo. Siamo ancora convinti che certi
aspetti della teoria degli automi siano strumenti essenziali per diverse nuove discipline e che gli
esercizi di natura teorica e creativa che fanno parte di un tipico corso sugli automi restino utili,
per quanto gli studenti preferiscano apprendere solo le tecniche immediatamente monetizzabili.
Daltra parte, se vogliamo che la materia conservi il suo ruolo tra le discipline proposte agli studenti di informatica, riteniamo indispensabile sottolinearne le applicazioni, accanto agli aspetti
matematici. Abbiamo perci sostituito alcuni fra gli argomenti pi avanzati delledizione pre-
i
i
i
hopcroft 2009/1/11 22:35 page xviii #18
xviii Prefazione
cedente con esempi di come i concetti possono essere applicati nella pratica. Le applicazioni
della teoria degli automi e dei linguaggi formali ai compilatori sono ormai talmente consolidate
da essere di norma trattate nei corsi sui compilatori, ma ci sono impieghi pi recenti, tra cui gli
algoritmi di model-checking per vericare protocolli, e i linguaggi di descrizione di documenti,
strutturati in modo simile alle grammatiche libere dal contesto.
Unultima spiegazione dellampliamento e al contempo riduzione del libro risiede nellimA
piego di due sistemi di composizione tipograca, TEX e LTEX, sviluppati da Don Knuth e Les
Lamport. Uno stile aperto di composizione, che produce libri di mole maggiore, ma di pi
A
agevole lettura, favorito in particolare da LTEX. Gli sforzi dei loro ideatori meritano il nostro
apprezzamento.
Prerequisiti
Per sfruttare al meglio il libro lo studente dovrebbe aver seguito un corso di matematica discreta
e aver acquisito nozioni sui gra, gli alberi, la logica formale e le tecniche di dimostrazione.
Presumiamo inoltre che abbia seguito un corso di programmazione e che conosca le strutture dati
pi comuni, la ricorsione e il ruolo dei componenti pi importanti di un sistema di elaborazione,
tra cui i compilatori. Di solito queste nozioni di base si acquisiscono nei primi due anni di un
corso universitario di informatica.
Esercizi
Il libro contiene numerosi esercizi, distribuiti in quasi tutti i paragra. Gli esercizi, o parti di
esercizi, pi difcili sono indicati da un punto esclamativo o, per i pi ardui, da un doppio punto
esclamativo.
Altri esercizi sono segnalati da un asterisco: le loro soluzioni sono disponibili nella pagina
web del libro e possono servire per valutare il proprio livello di preparazione. In alcuni casi un
esercizio B chiede di modicare o adattare la soluzione di un altro esercizio A. Se alcune parti di
A ammettono soluzione, ci si pu aspettare che lo stesso valga anche per le corrispondenti parti
di B.
Supporto in rete
La home page del libro
http://www-db.stanford.edu/~ullman/ialc.html
Vi si trovano le soluzioni degli esercizi segnalati da un asterisco, gli errata corrige e altro materiale utile. A mano a mano che le lezioni procedono intendiamo pubblicare le dispense del nostro
corso, inclusi esercizi e testi desame.
i
i
i
hopcroft 2009/1/11 22:35 page xix #19
Prefazione xix
Ringraziamenti
La stesura di parte del primo capitolo stata inuenzata da una dispensa di Craig Silverstein
su come scrivere le dimostrazioni. Commenti e segnalazioni di errori sulle bozze della seconda
edizione del libro (2000) sono giunti da Zoe Abrams, George Candea, Haowen Chen, Byong-Gun
Chun, Jeffrey Shallit, Bret Taylor, Jason Townsend ed Erik Uzureau. Abbiamo anche ricevuto
diverse e-mail che segnalavano errori nella seconda edizione di questo libro. Ringraziamo tutti
coloro che ci hanno fatto queste segnalazioni. I loro nomi sono indicati negli errata corrige
pubblicati on-line. Un particolare ringraziamento per le numerose e signicative segnalazioni a
Zeki Bayram, Sebastian Hick, Kang-Rae Lee, Christian Lemburg, Nezam Mahdavi-Amiri, Dave
Maier, A. P. Marathe, Mark Meuleman, Mustafa Sait-Ametov, Alexey Sarytchev, Jukka Suomela,
Rod Topor, Po-Lian Tsai, Tom Whaley, Aaron Windsor, e Jacinth H.T. Wu.
Riconosciamo volentieri il loro contributo. Gli errori che restano sono, ovviamente, da
imputare a noi.
John E. Hopcroft
Rajeev Motwani
Jeffrey D. Ullman
Ithaca NY e Stanford CA, febbraio 2006
i
i