Ok,
vedete?
Vabbò, vediamo di riuscirà a fare
qualcosa oggi.
Teorema di Rice. Ok, allora
tra le varie cose che abbiamo visto e
purtroppo oggi è niente pausa e mi
spiace non è dipesa da me.
Vediamo che riusciamo a combinare.
Allora, tra i vari linguaggi che abbiamo
visto, abbiamo visto il linguaggio vuoto
e il linguaggio non vuoto,
per cui abbiamo quindi abbiamo che il
linguaggio vuoto, è il linguaggio delle
macchine e M per cui il linguaggio di M
è il linguaggio vuoto,
il linguaggio non vuoto,
il linguaggio delle macchine m che è
diverso dal linguaggio vuoto. Ok?
Allora, questi linguaggi hanno la voi
vedete? Sì, avete la peculiarità che
sono linguaggi che contengono codifiche
di macchine di touring in cui
linguaggio,
ok? Ha una certa proprietà. Ok? In
questo caso può essere vuoto, può essere
non vuoto, no?
Allora, sostanzialmente noi abbiamo
trovato che questi linguaggi sono
indecidibili, ma il fatto che questi
linguaggi siano indecidibili è solamente
un caso particolare
di una proprietà, di un risultato molto
più generale che riguarda i linguaggi
che hanno questa forma, cioè i linguaggi
caratterizzati da codifiche di macchine
di Touring che devono soddisfare una
qualche proprietà. Ok?
Allora, noi possiamo definire quindi
questo concetto che è il concetto di
proprietà di macchine di Touring, quindi
è più o meno un'intuizione, no? Una
macchina di Touring ha una certa
proprietà, se
ha una certa proprietà se se ha delle
caratteristiche. Ok? Però per riuscire a
formalizzare questa cosa, quello che noi
possiamo fare è che definiamo
formalmente una proprietà
di macchine di touring
come
quindi una proprietà P come un insieme
di macchine di codifiche di macchine di
quindi noi semplicemente no se abbiamo
una proprietà P che è un insieme
Una macchina di touring ha una certa
proprietà, se si trova qua dentro, eh,
tutto qui. Ok, adesso può essere la
proprietà di avere 10 stati, la
proprietà di, che ne so,
fare 100 passi prima di accettare le
proprie stringhe, la proprietà che
il linguaggio accettato, sia vuoto, sia
non vuoto e così via. Cioè, quindi noi
possiamo caratterizzare le proprietà
delle macchine di touring in questo
modo.
Associato a questo set, di conseguenza
noi abbiamo che il linguaggio della
proprietà P è semplicemente l'insieme
delle codifiche di macchine di Touring
Male per cui M appartiene a P. Ok?
Allora, una cosa che noi dobbiamo però
verificare, cioè a cui dobbiamo stare
attenti, è la seguente, che una
proprietà per una macchina di touring
può fare riferimento essenzialmente a
due grosse categorie di caratteristiche
della macchina, cioè può essere una
proprietà che riguarda
il com'è fatta la macchina, cioè quanti
stati ha o come computa, cose di questo.
questo tipo e proprietà che riguardano
invece i linguaggi delle macchine. Ok?
Quindi da un lato abbiamo la famiglia di
proprietà che riguardano
la struttura delle macchine, cosa fa la
macchina, ok? e c'è proprio che ne so
fisicamente come si comporta e
dall'altro abbiamo la grande famiglia
delle proprietà di macchine che
riguardano invece i linguaggi
riconosciuti dalla macchina. Cioè,
quindi le proprietà dei linguaggi di
macchine sono proprietà un po' più
astratte, nel senso che non vanno sulla
macchina specifica, ma vanno più sul
linguaggio riconosciuto. Quindi noi
possiamo distinguere due grandi
famiglie, proprietà di macchine e la
proprietà dei linguaggi delle macchine.
la proprietà
dei linguaggi. Questo lo mettiamo dopo.
Ok.
Quindi questa è la grossa
categorizzazione che facciamo in queste
due grandi famiglie. Poi daremo un nome
particolare a queste cose.
una proprietà
P è banale
se
o contiene
tutte le macchine
o
o non ne contiene nessuna.
Ok? Quindi una proprietà è banale
essenzialmente se o ce l'hanno tutte le
macchine o non ce l'ha nessuno. Ok?
Secondo voi quanto difficile è decidere
una proprietà banale, stabilire se una
macchina ha una proprietà banale?
Mh. È una proprietà banale
costante. Sì, è banale. Ecco perché le
chiamo banali, perché date una
proprietà, se sappiamo che ce l'hanno
tutte le macchine, rispondiamo sempre di
sì. Se la proprietà è banale, nel senso
che è vuota, che non ce l'ha nessuna
macchina, allora noi rispondiamo sempre
di no. Ok? Quindi le proprietà banali,
scusatemi,
le proprietà banali sono proprietà per
le quali è semplicissimo rispondere
semplicemente per il fatto che o ce
l'hanno tutte o non ce l'hanno nessuna.
Ok? Allora, vediamo un paio di esempi.
Proprietà uno,
l'insieme delle macchine di Touring M
tale che M
cinque stati. Ok?
Questa, per esempio, può essere una
proprietà, no? Allora, come questa
decidere questa proprietà secondo voi è
qualcosa che si può fare o meno?
Sì. Cioè, basta che noi andiamo a
guardare la codifica della macchina,
andiamo a contare quanti sono i suoi
stati che ci sta là dentro perché
l'abbiamo codificata, no? E se sono
cinque rispondiamo sì, se sono
diversi da cinque rispondiamo no.
oppure questo qua. Quindi questa qui è
una proprietà che riguarda la forma, la
struttura della macchina, no? Un'altra
proprietà potrebbe essere P2 che è
l'insieme M dei linguaggi,
l'insieme M delle macchine, il cui
linguaggio
contiene
solo
stringhe
di lunghezza
pari.
Ok? Questa, per esempio, è un'altra
proprietà, ma questa proprietà, a
differenza di P1, è una proprietà che
riguarda il linguaggio riconosciuto
dalla
eh
dalla macchina, oppure P
insieme delle macchine di Turini L M
tale che il linguaggio di M è il
linguaggio vuoto. La riconosciate questa
proprietà? È il linguaggio L. Quindi e
lei sostanzialmente era un linguaggio di
una proprietà, un linguaggio della
proprietà
della vuotezza, cioè che questa macchina
non accetta assolutamente niente. Ok?
Allora,
noi questi linguaggi qui, questo qua e
questo qua, P2 e P, che riguardano
solamente
eh il linguaggio, ok? Riconosciuto dalla
macchina, le chiamiamo proprietà
semantiche,
ok?
Quindi proprietà
semantiche.
Quindi le proprietà semantiche sono
quelle proprietà di macchine tale per
cui viene caratterizzato più che la
macchina in sé, il suo numero di stati,
il suo modo di funzionare, se si stanca
o non si stanca quando fa la
computazione. La proprietà semantica è
una proprietà che raccoglie al suo
interno macchine di touring o le esclude
basate esclusivamente sul linguaggio che
riconoscono. Ok?
Allora, formalmente
una proprietà,
quindi una
proprietà
P di macchine
si dice
semantica
se
per ogni coppia di macchine m1 ed m2
tale che il linguaggio di m1 è uguale al
linguaggio di m2.
[Musica]
Se
m1
appartiene a p, allora
m2 appartiene a p. Ok? Cioè questa è
semplicemente una definizione formale
del fatto che l'appartenenza o meno di
macchine ha una proprietà semantica P è
caratterizzata solamente dal linguaggio
che riconosce, non da quanto tempo ci
mette, non se è deterministica o non
deterministica, non dal numero di stati,
eccetera. Ok? Nel momento in cui due
macchine distinte, che magari lavorano
in modo differente, una deterministica e
l'altra non deterministica, se hanno lo
stesso linguaggio, loro faranno
contemporaneamente parte di una propria
semantica o contemporaneamente ne
saranno fuori. Ok? Perché quelle che
caratterizza l'appartenenza a una
proprietà semantica
di una certa macchina è solamente il suo
linguaggio. Per questa ragione le
proprietà semantiche le chiamiamo anche
proprietà di linguaggi.
Ok? Allora, vi sto facendo questa
introduzione perché questo topic delle
proprietà dei linguaggi, proprietà delle
semantiche eccetera, su libri diversi
viene trattato in maniera diversa. Tipo
sugli appunti di Calautti, se
guarderete, lui c'ha usa le definizioni
di proprietà semantiche. Se leggete il
libro di Offcroft, loro parlano di
proprietà di linguaggi. Allora, questo è
il legame. Il legame è che le proprietà
semantiche, penso che pure sul testo di
Sipser parli di proprietà semantiche.
Quando si parla di proprietà semantiche
su quei testi è la stessa cosa che sul
libro di Hopcroft si chiamano proprietà
di linguaggi. Ok? Che cos'è una
proprietà di un linguaggio?
proprietà
dei linguaggi
re
una proprietà
P di linguaggio.
R e è semplicemente
un sottoinsieme
di R.
Quindi P è una proprietà di linguaggi se
è un sottoinsieme di R. Ok?
Come facciamo ad avere Ecco, ora c'è la
connessione fra proprietà di linguaggi e
proprietà semantiche che eh ne parla poi
sul libro di Hopcroft viene trattato in
questo modo. Se noi abbiamo che un
insieme P è un insieme di linguaggi,
cioè non è che noi possiamo andare a
ficcare i linguaggi dentro Pché non
abbiamo modo di rappresentarli. Ok?
Quello che noi possiamo fare è che un
linguaggio viene rappresentato, siccome
stiamo parlando di linguaggi di RE,
possiamo identificarlo, descriverlo in
maniera compatta tramite la macchina di
Turing che lo riconosce. Quindi ecco
perché c'è la connessione fra proprietà
di linguaggi e proprietà semantiche,
perché
da un lato una proprietà di linguaggi è
l'insieme
delle macchine di Touring. Facciamo
così.
M Allora, supponiamo che P sia una
proprietà di linguaggi, ok?
Il linguaggio della proprietà P è
semplicemente l'insieme delle macchine
di Touring L
M tale per cui il linguaggio di M
appartiene a P. Ok?
Ecco perché noi abbiamo il collegamento
fra proprietà semantiche e proprietà di
linguaggi, perché le proprietà
semantiche sono anche quelle insieme di
macchine. Da un lato abbiamo un insieme
di macchine il cui linguaggio sia
caratterizzato in un certo modo.
Dall'altro abbiamo l'insieme di macchine
il cui linguaggio appartiene alla
proprietà di P. Ecco, quindi si
sovrappongono i concetti, cioè proprietà
di linguaggi e proprietà semantiche sono
la stessa cosa. Io preferisco parlare di
proprietà di linguaggi perché è più
semplice ragionarci, tutto quanto. Ok?
Adesso in delle dimostrazioni che
vedremo stamattina vedrete che farò più
spesso riferimento alle proprietà dei
linguaggi che non alle proprietà
semantiche, ok? Però sono
sostanzialmente la stessa cosa. Ehm Ok.
Alri. Allora, una cosa interessante,
quindi noi abbiamo proprietà di
macchine, proprietà semantiche e le
proprietà semantiche sono le proprietà
di linguaggi, quindi sono insiemi di
linguaggi rappresentati come tramite
l'insieme dei codici di macchina di
Touring che riconoscono i linguaggi di
quella proprietà. Anche per le proprietà
di linguaggi abbiamo le proprietà
banali. Ok?
una proprietà P,
una proprietà
P
di linguaggi
di re è
banale
Se
o P è l'insieme vuoto, quindi nessun
linguaggio ha quella proprietà, o è
uguale a r, cioè tutti i linguaggi hanno
quella proprietà, ok? Quindi è
l'estensione della definizione di
proprietà banale per le macchine, la
trasportiamo su proprietà banale dei
linguaggi, ok? Quindi una proprietà è
banale, una proprietà di linguaggi è
banale se o tutti i linguaggi ce
l'hanno, quindi tutti i linguaggi fanno
parte di P e quindi tutto il resto sta
dentro P o se P è vuoto, cioè non ce
l'ha nessuno. Ok? In quel caso decidere
il linguaggio della proprietà P
significa stabilire se dato una modifica
di macchina e Touring il linguaggio
riconosciuto da quella macchina di
Touring fa parte della proprietà o meno.
Ok?
ad esempio per il linguaggio L
e sarebbe la proprietà del di essere il
linguaggio vuoto. Ok? Quindi stabilire
se una macchina appartiene a e le è
essenzialmente stabilire se il
linguaggio riconosciuto da quella
macchina ha la proprietà di essere il
linguaggio vuoto. Ok? Questa è la
connessione.
Noi avevamo visto che L ed LNE
e sono dei linguaggi indecidibili, ma
quei linguaggi indecidibili sono in
realtà un caso particolare di un
risultato molto più generale che è il
seguente teorema.
Questo è il teorema di Rise
[Musica]
che dice questo: ogni
proprietà
non banale
dei linguaggi G
R è è indecidibile.
Ok?
Cioè questo questo risultato ci dice che
qualsiasi sia un linguaggio che andiamo
a considerare che si può configurare
come un linguaggio di una proprietà non
banale, per questo teorema noi sappiamo
che è indecidibile, non dobbiamo nemmeno
andare a fare riduzioni o dimostrare
chissà che cosa. Se il linguaggio che
stiamo considerando è una proprietà non
banale, allora per il teorema di Rise è
indecisibile. Ok?
Adesso però dobbiamo dimostrare questo
teorema. Ok?
Eh, spazio ne abbiamo
più o meno.
Ok, dimostrazione.
Quindi P sia P
sia P
una proprietà
[Musica]
non banale
di R dei linguaggi di R. Ok?
Ci sono due possibili casi,
quindi due casi.
Caso A,
il linguaggio vuoto non appartiene a P.
Caso B,
il linguaggio vuoto appartiene a P. Ok?
Quindi sono le due possibili scenarie,
ok? O il vuoto sta dentro P o il vuoto
non sta dentro P. Partiamo da A.
Ok?
Se P è una proprietà non banale di RE,
quindi abbiamo che P è un sottoinsieme
di R, ok? Noi abbiamo che P è una
proprietà non banale
da cui P non può essere vuota, ok? Cioè
ci deve essere qualcosa di dentro.
E siccome il linguaggio vuoto non sta
dentro P, lo stiamo assumendo per il
caso A, che il linguaggio vuoto non sta
dentro P, allora dentro P deve starci un
linguaggio Lorsivamente
numerabile perché P è un sottinsieme di
RE che sia diverso dal linguaggio vuoto.
Ok? Quindi esiste
un linguaggio
L appartenente ad R tale che L Sì,
L è diverso da vuoto e L appartiene a P.
Ok?
È chiaro?
Bene.
Ah, lo spazio è già finito. Ok.
Eh. Ok. Allora, se L è un linguaggio di
R
ed Linguaggio
vuoto,
abbiamo che esiste una macchina di
Touring ML che accetta il linguaggio L.
Ok? Lo sappiamo dal fatto che L
appartiene a R, quindi esiste
esiste m serve spazio. Andiamo all'altra
pagina.
Quindi esiste
una macchina
ML
tale che
il linguaggio di ML è uguale ad L che è
diverso da vuoto. Ok?
È chiaro? Quindi fino fino ad ora
abbiamo fatto solamente delle
considerazioni su cosa ci sta dentro P.
Abbiamo detto che dentro P stiamo
assumendo che il linguaggio vuoto non ci
sta, però P è una proprietà non banale,
di conseguenza deve contenere qualcosa.
Questo qualcosa che contiene deve essere
un linguaggio L, ma siccome P è una
proprietà dei linguaggi ricorsivamente
numerabili, L deve essere ricorsivamente
numerabile da cui esiste una macchina ML
che riconosce L in particolare L è vuoto
perché essendo che L appartiene a P e P
non contiene un linguaggio vuoto, deve
essere per forza diverso da vuoto. Ok?
Chiaro?
A questo punto noi possiamo dimostrare
l'indecidibilità
del linguaggio
LP della proprietà tramite una riduzione
da Lu. Ok? Allora, noi abbiamo
LP è il linguaggio della proprietà che è
semplice, l'insieme delle macchine di
Touring M tale che il linguaggio di M
appartiene alla proprietà P. Ok?
Quello che facciamo ora è una riduzione
da LU a LP. Ok? Che cos'è un'istanza per
LU?
Una coppia macchina stringa. Ma stringa.
Ok. Che cos'è un'istanza per il P? È una
macchina. Gli diamo un nome diverso per
non confonderci. Ok. Quindi noi da
MW tramite la funzione f vogliamo
costruire una macchina n che è il
trasformato secondo F di M. Ok?
Alright.
Allora, come abbiamo visto in altre
riduzioni, quello che dobbiamo fare è
partire dalla coppia MW e tirare fuori,
inventarci sta macchina N, tale per cui
N
voi là non vedete, ok? Così vedete
N deve essere una macchina che ha la
deve essere una macchina in cui
linguaggia la proprietà P se è solo se M
eccet W. Ok? Questa è l'idea. Allora, la
riduzione si può fare in questo modo.
Abbiamo le nostre solite macchine
giganti in questa N che è il trasformato
di M
e funziona così.
Come prima cosa N simula
M su w, cioè proprio lo esegue, ok?
esegue m su w
nel momento in cui m
accetta
l'accettazione da parte di m su w
M
questa è NFM
dà
il segnale di avvio a un altro pezzo di
questa macchina che sta dentro che è ML,
che è proprio quella ML che abbiamo
menzionato prima. Eh, è esattamente
questa qui, eh.
ed ml viene eseguito sull'input della
macchina,
ok? Dopodiché restituisce la stessa
cosa.
Chiaro? Quindi, come funziona la
macchina N? La macchina N come prima
cosa esegue M su w.
Semmai m su w arriva a fermarsi a dire
sì, parte la computazione di ML, che è
proprio quell ML che abbiamo detto
prima, eh, non è un'altra, sull'input X
della macchina N. Dopodiché la macchina
n dà la stessa risposta di ml su X. Ok?
Questo è il comportamento di questa
macchina. Dobbiamo ora dimostrare che
questa è effettivamente una riduzione da
lu ad LP. Ok.
Alright.
Primo verso della riduzione.
Supponiamo
che
MW
appartiene ad Luu, da cui
M accetta w.
Ok.
Allora, guardate questa macchina.
Ok? Che cosa succede se M accetta w?
Sì. Allora, guardate, questa è una cosa
importante. Dentro la macchina N
M M di Milano, dentro la macchina
Napoli, la macchina Milano
viene sempre eseguita su W. Quindi, se
la riduzione ha trasformato una coppia
MW in quella N particolare, quel
pezzariello della macchina N accetta
sempre perché W sta proprio infilata
nella funzione di transizione di N. Ok?
Di conseguenza noi avremo che
indipendentemente dall'input x la
macchina n sua prima fase arriverà
sempre ad aver visto l'accettazione di m
su w. A quel punto che fa? si esegue ML
su X e fa la stessa cosa. Di conseguenza
il linguaggio di N è
L.
Sì, perché perché la parte iniziale
della macchina fa sempre la stessa cosa
perché m e w la funzione f li ha
schiaffati dentro così come sono. Quindi
non è che può succedere qualcosa di
strano. Nella fase iniziale la macchina
n simula m su w indipendentemente da x.
Quindi, nel caso in cui M accetti w, il
primo pezzo di esecuzione è determinato,
fa sempre quello. A quel punto N si
comporta come ML e quindi accetta,
riconosce lo stesso linguaggio. Ok?
Segue
che il linguaggio di N è L.
Ma L abbiamo supposto essere il
linguaggio un linguaggio di P,
quindi
N appartiene a LP. Ok?
Quindi se partiamo da un'istanza Sì MW
di Lu, la macchina N sputata fuori dalla
funzione di transizione F è una macchina
il cui linguaggio appartiene alla
proprietà P. Ok? Abbiamo trasformato
unistanza s in un'istanza sì. Chiaro?
Dobbiamo adesso vedere. Sì, prego.
[Musica]
Ma FDM
FDM Ah, qua hai sbagliato. FM FDM. Sì,
qui ho sbagliato. Eh,
sì, perché prende tutto l'input. Ok, lì
mi ero perso un pezzetto. Ok.
Alright.
Altro verso della dimostrazione.
Supponiamo
che
MW
non appartenga a Lu, da cui
M non accetta W. Ok,
riandiamo a guardare il nostro
disegnino.
Se M
non accetta
V,
la seconda fase della computazione non
parte mai e quindi la macchina si blocca
prima dello start di ML e quindi non
risponde mai di sì. Qual è il linguaggio
di N in questo caso? Vuote. Vuoto.
Quindi segue
il linguaggio di N è il linguaggio
vuoto.
Ma il linguaggio vuoto lo stiamo
assumendo dentro o fuori la proprietà?
Nel caso A che stiamo ancora analizzando
è fuori,
poiché
il linguaggio vuoto non appartiene a P.
Allora,
il linguaggio di n che è uguale al
linguaggio vuoto, non appartiene a P nem
meno,
quindi
Nartiene
a LP. Ok? Questa cosa ci dimostra che
cosa? ci dimostra che
questa riduzione trasforma istanze sì di
LU in istanze sì di LP e istanze no di
lu istanze no di LP dal quale abbiamo
che cosa? Abbiamo che il linguaggio LP è
indecidibile perché Lu è indecidibile.
Ok? Questo non ci conclude la
dimostrazione perché noi a cosa abbiamo
dimostrato finora? Abbiamo dimostrato
che se P è una proprietà non banale che
esclude il linguaggio vuoto, allora è
indecidibile. Però quello che noi
vogliamo mostrare è che se P è una
qualsiasi proprietà non banale sia
indecidibile,
indipendentemente dal fatto se il
linguaggio vuoto ci sta di dentro o
meno. Quindi adesso dobbiamo considerare
il caso B.
Caso
B
abbiamo
che il linguaggio vuoto appartiene alla
proprietà P. Ok?
Consideriamo
eh
sorry questa
sì
consideriamo
il complemento di P
definito come re - P. Ok? Quella quello
slash là è il differenza fra insiemi,
eh?
Ok? Quindi abbiamo che il complemento di
P è il complemento di P rispetto a R.
Quindi prendiamo R, gli togliamo P. Ok?
Se il linguaggio vuoto sta dentro P, il
linguaggio vuoto può stare dentro il
complemento di P? No. Quindi, prima
cosa, il linguaggio vuoto non sta dentro
il complemento di P. Ok?
Se P
se P è non banale per assunzione,
cosa possiamo dire del complemento di P?
Attenzione,
che significa che P è non banale, che
non è vuoto e non è una Ah, quindi il
suo complemento è banale. È banale. Ah,
è banale.
Non banale, è banale. Eh, così si fa.
Eh, fammi pensare il miglior modo per
disegnarlo.
Ok. No, vabbò così.
Qua c'è re, questo è P.
Pere banale è o niente o tutto il re.
Se io prendo il suo complemento, che è
questa cosa qua,
siccome lui qua dentro non è schiacciato
e non è tutto, vuol dire che qua fuori
non possa essere né niente né tutto.
Quindi il complemento di P è esso stesso
non banale.
Se P è non banale, allora
il complemento di P è non banale.
Quindi, che cos'è P? È il complemento di
P. P segnato. P segnato è una proprietà
non banale che contiene il linguaggio
vuoto.
Ci siamo? Questa proprietà è decidibile
o indecidibile?
L di P segnato è indecidibile perché
per il caso di prima. Ripetiamo. P
soprasegnato che cos'è?
è una proprietà
non banale che non contiene il il
linguaggio vuoto. Quindi per il caso A,
che è quello che abbiamo dimostrato
prima,
il linguaggio
di P soprasegnato è indecidibile.
Ok?
Alri, adesso focalizziamoci su questo.
Prendiamo il complemento
di LP soprasegnato. Ok?
Siccome stiamo considerando
proprietà di linguaggi in re,
ok? Tutti i linguaggi o stanno in piso
prasegnato o stanno fuori piso
prasegnato. E se stanno fuori piso
frasegnato stanno in Pcho,
sono tutte e due all'interno della
classe re dei linguaggi. Di conseguenza
questo linguaggio è LP.
È chiaro?
Adesso
se
LDP
fosse decidibile
lo sarebbe
anche
L di P soprasegnato. Soprasegnato perché
sono lo stesso linguaggio.
Se L di P soprasegnato soprassegnato
fosse
decidibile,
cioè in R
lo sarebbe
anche chi?
LP soprasegnato, anche LP soprasegnato,
ma non lo può essere perché abbiamo
prima visto che è indecidibile, ma ciò
non è possibile
da cui
LP è indecidibile.
È chiaro? Ok,
quindi con questa dimostrazione,
ho fatto tutto qua. Yes. Yes.
Abbiamo quindi questo risultato molto
generale, questo risultato
sostanzialmente che il teorema di Rice
ci dice che ogni qualvolta noi siamo di
fronte a un linguaggio che si configura
come il linguaggio di una proprietà non
banale. Per questa ragione il linguaggio
è indecidibile, cioè decidere proprietà
non banali di linguaggi è una cosa che
non possiamo mai fare, cioè solo le cose
banali siamo in grado di rispondere,
cioè solo le proprietà per cui diciamo
sempre di sì o le proprietà per cui
diciamo sempre di no. Solo su quelle
siamo in grado di rispondere in maniera
automatica. Per le altre per le altre
proprietà, tutte le altre proprietà che
siano non banali, noi abbiamo che è
impossibile trovare algoritmi che
decidano quelle proprietà, ok?
non si può fare. E questa cosa noi la
possiamo sfruttare per vedere varie
indecidibilità di linguaggio. Un
primissimo esempio è,
per esempio, la coppia di linguaggi L e
L l L n. Noi abbiamo fatto delle
dimostrazioni tayor per mostrare che
siano indecidibili. Abbiamo fatto delle
riduzioni, ok, per dimostrare che siano
indecidibili, ma in realtà
l'indecidibilità di L e di lne
discende anche in maniera abbastanza
semplice a questo punto dal teorema di
Rice. Ok? Per esempio, focalizziamoci su
LE per vedere un po' di applicazioni del
teorema di Rice. Poi ne vedremo nella
restante parte della lezione, ne vedremo
un po'.
Allora, L
che cos'è? È l'insieme di codici di
macchine di touring tale che il
linguaggio di M è il linguaggio vuoto.
Ok?
Allora, siccome
L è un linguaggio che contiene codifiche
di macchine di Touring, si configura
come proprietà proprietà di macchine.
Ok?
Adesso, come potete vedere dalla
definizione, questa è una proprietà di
macchine, sì, ma è una proprietà che
riguarda i linguaggi delle macchine,
quindi è una proprietà semantica o una
proprietà di linguaggi. Ok?
Come facciamo? Per esempio, se volessimo
dimostrare che L
è una proprietà semantica di macchine,
come si potrebbe fare?
Consideriamo due macchine, m1 ed m2 tali
che il linguaggio di m1 è uguale al
linguaggio di m.
Se m sta dentro le è perché il suo
linguaggio è vuoto. Ma allora se m ha un
linguaggio che è uguale a quello di m1,
anche m2 deve stare dentro le da cui le
è una propietà semantica. Ok? Quindi noi
abbiamo che L
è una proprietà
semantica
o di linguagge.
Ok? Quello che ora ci chiediamo è L è
una proprietà banale o non banale?
Per essere una proprietà non banale non
deve
essere né vuota
né essere l'intero re. Ok? Quindi le
sarà una proprietà non banale.
Le è non banale
se L è diverso da vuoto e L è diverso da
Re. Ok?
Adesso L
è banale o no?
Yeah. Perché ci sono
che riconoscono laud è non banale perché
ci sono macchine che riconoscono solo il
pad vuoto e altre macchine Sì. E non
banale perché
non è vuota, cioè contiene un linguaggio
al suo interno che è il linguaggio
vuoto.
Ok? Cioè, è chiara per voi la
differenza? Un conto che L sia vuota, un
conto che L contienga il linguaggio
vuoto, cioè L è vuota perché contiene
qualcosa. Che cosa? Un linguaggio vuoto.
Ok? Quindi L
è questa cosa qua,
ok? È una busta che contiene una busta
vuota. La busta di fuori è non vuota,
ok? Che contiene una busta che contiene
niente, ok?
Quindi L è non vuoto perché c'è il
linguaggio vuoto al suo interno. È
banale perché tutti i linguaggi diversi
dal vuoto non stanno in L. Quindi L è
non è tutto R. Da ciò noi ricaviamo che
L è non banale,
quindi L è una proprietà di linguaggi
non banale
da cui per il teorema di Rise L è
indecidibile. Ok? È molto è molto più
lineare in questo modo. Ok?
e per ln
lne
è l'insieme delle macchine m tale che il
linguaggio di m è diverso da linguaggio
vuoto. Ok? Che possiamo dire di lne?
Possiamo dire sicuramente, questo ve lo
dico io, che è la parte facile che è una
proprietà di macchine, ok? Perché è un
linguaggio che contiene codifiche di
macchine. Quindi ogni volta che un
linguaggio contiene codifiche di
macchine è una proprietà di macchine.
Poi la questione è se la proprietà è
semantica o non semantica. Ok?
Il teorema di Rise è un teorema che si
applica solo se la proprietà è di
linguaggi, se la è una proprietà
semantica. proprietà non semantiche
di linguaggi, cioè quindi di di
macchine. Il teorema di Rice non dice
niente, ok? Il teorema di Ris ha come
premessa che si deve applicare su
proprietà semantiche. Se la proprietà
non è semantica, ma riguarda una
caratteristica della macchina, il
teorema di R non dice niente. Quella
proprietà può essere decidibile, può
essere indecidibile. Uno si deve andare
a guardare eh la definizione del del
linguaggio stesso.
Ad esempio,
questo è un po' tricky.
La proprietà
che la macchina abbia cinque stati è una
proprietà di macchine non semantiche
decidibili, andiamo, le contiamo,
eccetera.
Il linguaggio che abbiamo visto ieri,
halt per ogni, quello è un linguaggio di
macchine, quindi è una proprietà di
macchine. Il problema è, ok, se c'ho
tempo ve lo mostro, che quella proprietà
è non semantica perché quella proprietà
dice la macchina si arresta su tutti gli
input, ok? Però noi potremmo avere
macchine
che riconoscono lo stesso linguaggio
perché una si arresta su tutto e dice di
no. L'altra deliberatamente invece di
dire no, inizia a luppare. Queste due
macchine
hanno lo stesso linguaggio, però una sta
in halt per ogni e l'altra no. Quindi
halt per ogni non è una proprietà
semantica. Ok? Se abbiamo tempo ve la
rispiego sta cosa, però per dirvi quella
proprietà là mi arresto su tutte le su
tutte le stringhe. Quella è una
proprietà di macchine è una proprietà
non semantica.
È una proprietà indecidibile,
ma non discende dal teorema di Ris
indecidibilità, perché il teorema di Ris
implica l'indecidibilità solamente di
proprietà semantiche. Ok? sulle
proprietà non semantiche ci dobbiamo
andare a guardare il linguaggio e
cercare di capire che succede. Ok?
Alri. Qui avevo un po' di esempi.
Ok. Avevamo vi avevo tra gli appunti che
avevo messo prima, partiamo da P2. Mh.
Dove sta? Dove sta P2?
Questo l'avevamo scritto all'inizio, eh.
La proprietà P2, l'insieme delle
macchine M tali che il linguaggio di M
contiene solo stringhe di lunghezza
pari. Ok?
Adesso noi vogliamo capire se questo
linguaggio se questa proprietà P2 il
linguaggio relativo alla proprietà P2
sia decidibile o meno. Ok? Allora,
prima domanda. Questo linguaggio è una
proprietà di macchine?
Sì, perché perché è un linguaggio che
contiene codifiche di macchine, ok? E
quindi è una proprietà di macchine.
Questo proprietà è una proprietà di
linguaggi,
una proprietà o equivalentemente una
proprietà semantica di macchine. Sì,
perché è relativa solamente al
linguaggio che la macchina riconosce.
Ok?
Bene,
questa quindi abbiamo che questa P2 è
una proprietà di linguaggi o
equivalentemente una proprietà semantica
di macchine.
Questa proprietà è banale o non banale?
Non banale, perché chi ci sta dentro P2?
[Musica]
L'insieme vuoto ci sta. L'insieme vuoto
ci sta.
Poi
xy
sì, tipo 00 sta là dentro. Ok.
E così via. Ce ne stanno tante qua, eh.
Questa proprietà
è infinita, cioè c'ha infiniti
linguaggi, ok? Quindi questa proprietà è
sicuramente non vuota. Questa proprietà
contiene tutto il re? No, no, perché i
linguaggi costring dispari non stanno
dentro du. Quindi i linguaggi
con stringhe dispari
non stanno
[Musica]
dentro
P2.
Di conseguenza, P2 è una proprietà
di linguaggi
non banale.
Per questa ragione,
per il teorema di Rice, decidere P2 è
indecidibile, ok? direttamente, possiamo
dire, senza stare là a fare altre
dimostrazioni. Nel momento in cui noi
riconosciamo che un linguaggio è una
proprietà semantica non banale, per il
teorema di Rice, quella proprietà è
indecidibile. Ok?
Eh, + 1, come l'avevo definito?
E qua c'ho esatto due cose diverse,
no? Ok. La proprietà P1 invece, come
dicevamo, è una proprietà di macchina
non semantica.
Eh, perché non semantica? Ok,
perché non semantica la proprietà +1? Un
attimo che la scriviamo qua, così lo
vediamo formalmente.
Quindi P1 è una proprietà di macchine
che non semantica perché
ok dalla descrizione vediamo che non è
non è non fa riferimento al linguaggio
di quella macchina, quindi dice ah è
intuitivo. Ma se noi volessimo
dimostrarle che non semantica, dovremmo
trovare due macchine che conoscono lo
stesso linguaggio,
però il fatto che la prima partita uno
non impulsa, che è la seconda partita.
Sì, quindi dovremmo per dimostrare che è
non semantico, è una proprietà non
semantica. Dobbiamo trovare un
controesempio, cioè due macchine
che abbiano lo stesso linguaggio,
una macchina appartiene a +1 e l'altra
macchina appartiene non appartiene a +1.
Come facciamo? Prendiamo una macchina
con cinque stati che riconosca un certo
linguaggio e la chiamiamo m1.
Ok? Da m generiamo una macchina m2 in
cui aggiungiamo un sesto stato che non
fa niente, è uno stato irraggiungibile,
non è attaccato a nulla. Quindi quella
che cos'è? È una macchina m2 che ha lo
stesso linguaggio di m1, ma il suo
numero di stati è differente. Avremo che
m1 appartiene a +1 ed m2 non appartiene
a a +1. Di conseguenza la proprietà è
non semantica, cioè è relativa a com'è
fatta la macchina più che al linguaggio
che che le macchine riconoscono. Ok?
Alright.
Ok. Vediamo alcuni esempi di
applicazione.
Come siamo messi?
Esempi
di applicazione.
Primo,
data una macchina M.
Decidere
se
L
è finito.
Ok?
Per finito il linguaggio è finito. Se ha
un numero finito di stringa, eh? Ok.
Quindi data M, chiamiamola quindi L, ad
esempio, è l'insieme
di macchine M, tale per cui il
linguaggio di M è finito.
Ok? LDA è una proprietà di macchine o
no?
Sì, perché le sue stringhe sono
codifinghe di macchine. Ok?
è una proprietà semantica o no?
Semantica. È una proprietà semantica,
quindi una proprietà che è relativa al
linguaggio.
Ok?
Questa proprietà è banale o non banale?
Non banale o banale?
Per essere banale deve o non averci
niente di dentro o deve avere di dentro
tutti i linguaggi. Ok? Per avere per
quindi per provare che sia non banale
dobbiamo trovare un linguaggio che sta
dentro e un linguaggio che sta fuori.
Ok? In questo modo siamo sicuri che
qualcosa ci sta e quindi è non vuota e
che qualcosa non ci sta e quindi non è
tutto il re. Qual è un linguaggio che
sta dentro la
il linguaggio vuoto o il linguaggio che
contiene una stringa sola? Ok? Qualsiasi
linguaggio con un numero finito di
stringhe sta dentro la proprietà eh di
la. Ok?
E un linguaggio che sta fuori L?
Il linguaggio di tutte le stringhe. Il
linguaggio di tutte le stringhe, ad
esempio. Ok? cioè qualsiasi cosa che ha
un numero infinito di stringe. Per
esempio a elev n con n > 0. Ok? Quello è
un linguaggio infinito. Quindi l a
proprietà semantica o equivalentemente
una proprietà di linguaggi
non banale.
Per il teorema di Ris è indecisibile.
Ok?
B
data una macchina M. decidere
se LM
è infinito.
Ok? Questo è speculare.
Quindi
è vero che LB
è una proprietà di macchine? Sì. Sì. È
una proprietà semantica o una proprietà
di struttura? Com'è? chiamiamo la
proprietà semantica o non semantica?
Semantica. È una proprietà semantica
perché è una proprietà che riguarda il
linguaggio riconosciuto dalla macchina.
Ok? È banale o non banale? Non banale. È
banale perché è lo speculare di quella
di prima, quindi qualcosa starà dentro,
qualcosa starà fuori. Quindi LDB,
poiché è una proprietà di linguaggi non
banale, per il teorema di Rise è
indecidibile.
Ok?
C. Ok. C
data una macchina
data una macchina M.
e decidere se il linguaggio di M, LDM,
è un linguaggio
[Musica]
accettato
[Musica]
solo
da macchine
con cinque
stati.
Ok, questo è è una variazione di di
quello che abbiamo visto prima.
Attenzione qua. Quindi abbiamo LDC
è il linguaggio delle macchine touring
tale che il LDM
è riconosciuto da macchine
solamente da macchine con cinque stati.
Ok.
Alri, questa qui è una proprietà di
macchine o non è una proprietà di
macchine? È una proprietà di macchine.
Ci focalizziamo ora su un altro elemento
prima. Questa qui è una proprietà banale
o non banale?
È banale.
Perché è banale?
Per quello che vi ho detto prima, se una
macchina cinque state cingo si fa
cercare anche con se uno stato m m E
quindi chi sono i linguaggi riconosciuti
solamente da macchine con cinque stati?
nessuno. Quindi NDC è una proprietà
banale. Ripeto,
ogni linguaggio
può essere riconosciuto da macchine di
Turing con un numero qualsivoglia di
stati, perché nel momento in cui abbiamo
una macchina che riconosca un
linguaggio, noi la possiamo inflazionare
di stati inutili e quindi lo stesso
linguaggio viene riconosciuto da
macchine di touring con un altro numero
di stati. Di conseguenza, i linguaggi
che vengono riconosciuti da che vengono
riconosciuti solamente da macchine di
touring con cinque stati non ci stanno
perché nessun linguaggio che sia
riconosciuto dalla macchina di Touring
cinque stati non può essere riconosciuto
dalla macchina di Touring con 15.
Quindi LDC
in realtà è vuota, non c'ha niente lì
dentro, ok? Quindi è una proprietà
banale
e per questa ragione è decidibile.
Ok?
Alright.
Eh, questo li abbiamo visti. 5
6
Ah, qua c'avevo l'esentino, però
non so se ce la facciamo a vederlo.
Ok, vediamo.
Ce la dovremmo fare, insomma. Allora,
supponiamo di avere questo linguaggio L
=
W cancelletto A
tali che W appartiene a 0 1+
a = w
oppure
A è UG = Aw reverse.
Ok?
Qua. Boh, non vi chiederò altri perché
no.
Allora,
proprietà uno
e l'insieme di macchine di Touring M.
No, vai, dai che ce la facciamo.
Per infrensarci un po' la memoria,
scriviamo una macchina di Turing che fa
questo, ok? Che riconosca questo
linguaggio.
Alright.
Allora, come ce la organizziamo? Ricop
su un secondo nastro. Noi non stiamo
vedendo queste macchine ormai da qualche
lezione, però ci saranno alla fine, eh,
quindi riprendetele, inventatevi
esercizi, risolvete cose strane, eh,
così vi vi preparate un po'. Ok. Allora,
che abbiamo?
Eh, ah facciamo due nastri sulla quale
sul primo c'abbiamo l'input,
sul secondo io mi ci ricopio w B in
maniera tale poi da verificare che A sia
o uguale a W o a W reverse. Ok?
Si può fare sia deterministica che non
deterministica. La facciamo non
deterministica per semplificità, non è
che la semplificherebbe più di tanto.
Ok? Allora, che abbiamo Q0
qua, quindi iniziamo a ricopiare W sul
secondo nastro. Sul primo c'è alfa,
lascio alfa e vado avanti. Sul secondo
c'è blank, scrivo alfa e vado avanti. Lo
faccio per tutti.
Sul primo c'è alfa, alfa e vado avanti.
Sul secondo c'è blank, scrivo alfa. Vado
avanti
fino a quando sul primo c'è cancelletto,
lascio cancelletto e vado avanti. Sul
secondo c'è blank, lascio blank e torno
dietro.
V2.
A quel punto noi non deterministicamente
decidiamo se A è W o W reversa. Ok?
Questo ramo si occupa del caso che A si
addoppia a V reverse, quindi è Q3.
E abbiamo sul primo nastro c'è alfa,
lascio alfa e vado avanti. Sul secondo
nastro c'è alfa, lascio alfa e torno
dietro.
Lo facciamo per tutti. Sul primo nastro
c'è alfa, lascio alfa e vado avanti. Sul
secondo nastro c'è alfa, lascio alfa e
torno dietro.
Fino a quando
sul primo c'è blank, lascio blank e sto
fermo. Sul secondo c'è blank, lascio
blank e sto fermo e accettiamo
U4
dall'altro lato
e se invece a è uguale proprio a W.
Quindi andiamo qua.
Sul secondo nastro c'è Black, cioè no,
non c'è Blank, c'è alfa.
C'è alfa la alfa e torno dietro riavvgo
tutto quei cinque
sul secondo as alfa lascio alfa e torno
dietro
fino a quando
e va avanti.
Sul primo c'è alfa, la scalfa e va
davanti. Sul secondo c'è Alfa, lascio
Alfa e vado avanti. Quando accettiamo e
sul primo c'è Blank, lascio blank, sto
fermo. Sul secondo c'è Blank, lascio
Blank e sto fermo. Ok, quindi questa è
una macchina, ok, ci mancava un pezzino
qua. Questa è una macchina che riconosce
quel linguaggio là. Ok.
Alright.
Proprietà 1,
questa qua l'insieme delle macchine tali
che il linguaggio DM è uguale al
linguaggio L, che è questo L che abbiamo
scritto qua. Eh, è proprio lui.
Allora,
questo qui è il problema di decidere se
una macchina ha come linguaggio un
linguaggio fissato.
Questo problema è decidibile o
indecidibile?
Voci nuove, voci nuove. Un attimo
qualche volto nuovo,
qualche nuovo talento. Su,
voi vedete? Eh,
questa è una L. Eh,
allora, decidere se il linguaggio di una
certa macchina è un linguaggio dato è un
problema decidibile o indecidibile?
Guys, lì sopra che non vi ho sentito per
nulla oggi.
Eh,
prego. È indecidibile. è indecidibile
perché è indecidibile
è una prospetà di macchine, una prosetà
sistematica e non è banale perché ci
sono
cioè l dentro, cioè R dentro e gli altri
non stanno for. Ok, avete sentito?
Quindi il problema di data una macchina,
ok? Stabilire se il linguaggio di questa
macchina è un certo linguaggio L è un
problema indecidibile perché perché
equivale a decidere una proprietà di
linguaggio non banale. Qual è questa
proprietà? È la proprietà di essere
uguale al linguaggio L. Allora, P1,
questo linguaggio è un linguaggio di
macchine, quindi è una proprietà di
macchine, è una proprietà semantica
perché riguarda i linguaggi delle
macchine, è una proprietà non banale
perché dentro di sé c'ha L e fuori di sé
c'ha le cose diverse da L, quindi questa
proprietà non è né vuota né tutto il re.
Quindi per il teorema di Rice questa
proprietà è indecidibile. Ok? Quindi, ad
esempio,
questo ci dice varie cose, no? Il
problema di date due macchine m1 ed m2.
No, quella è un'altra cosa. Ok.
Eh, altro esempio. P2
M l'insieme delle macchine M tale che il
linguaggio di M è L
è
ogni stringa
di L
M la accetta.
in al più
100 passi.
Ok.
Ok. Questa qui è una proprietà di
macchine o non è una proprietà di
macchine?
È una proprietà di macchine perché
contiene codici di macchinatori.
Questa qui è una proprietà banale o non
banale? Vi ricordo che la distinzione
noi abbiamo proprietà di macchine e
proprietà di linguaggi. Una proprietà di
macchine è banale se o contiene tutte le
macchine o non contiene nessuna
macchina. Una proprietà di linguaggi è
banale se o non contiene nessun
linguaggio o contiene tutti i linguaggi,
ok? Sono similari. Quindi la proprietà
P2 è una proprietà di macchine. Questa
questa proprietà è banale o non banale?
È banale perché abbiamo detto che la
proprietà per una è indecidibile. Di
conseguenza io sto chiedendo che m
accetti in altri 100 passi che non so.
Eh, ma questo è Ok, questo è non lo
sappiamo. Una un conto è se una cosa non
lo sappiamo, un'altra cosa è se è vero o
meno. Nel senso è vero o no che
l'espansione di pi greco decimale a un
certo punto c'ha 100 zeri di fila.
Noi non lo sappiamo, però di principio
questa cosa è o vera o falsa. Ok? Quindi
è un'altra cosa, cioè un'altra cosa. P2
è una proprietà di macchine banale o non
banale?
Moralmente
sarebbe da dire banale in quanto, cioè è
coloni che ci frega, cioè ogni stringa
di L perché ogni stringa di L ècta con
100 passi, quindi abbiamo una ceramica
strica che viene accettata un numero
pico di passi, però sarà un numero fisso
e noi possiamo permetterci guardando
semplicemente per ciò che è andato suo
Sì. Sì. Eh, soprattutto sono dei loop
che sono della stringa possiamo ottenere
doc una stringa che vada oltre c passi
indipendentemente la traccia anche se
modifichiamo possiamo costruire possiamo
andare oltre. Quindi il per ogni ah è
una cioè ci multifica tutto quanto. E
quindi P2 è vuoto. P2 è vuota. Recap, P2
non contiene nessuna macchina perché non
c'è nessuna macchina che ci dia garanzia
di di riconoscere L in 100 passi, perché
sulle stringhe lunghe che W è lunga 200,
quella macchina non ha meno nemmeno il
tempo di leggerla W, ok? Quindi non sarà
in grado di riconoscere L. Quella
proprietà è vuota, è una proprietà
banale, quindi è decidibile perché
rispondiamo sempre di no. Ok?
Eh, alright. P3,
l'insieme delle macchine di Touring M
tali che M non accetta.
Non accetta che cosa?
L intersecato
01
cancelletto all 100.
Ok?
Che significa questo? Che in P3 ci
stanno quelle macchine di touring che
non accettano questo linguaggio. Qual è
questo linguaggio? È il linguaggio
delle stringhe che stanno in L e sono
lunghe. 100 caratteri. Ok,
ripetiamo. P3 è l'insieme delle macchine
e l'insieme delle macchine che non
accettano quel linguaggio particolare
lì. Ok?
Allora, quello che vogliamo capire è se
questo linguaggio sia decidibile o meno.
Allora, P3
è una proprietà di macchine o no? Sì, è
una proprietà di macchine. Ok.
Poi ci chiediamo P3
è banale o non banale?
è non banale perché
perché ci sono macchine che accettano
e
esattamente. Quindi qualche macchina sta
in P3, qualche macchina non sta in P3.
Quindi P3 è una proprietà di macchine ed
è una proprietà non banale. Ok?
Quello che dobbiamo capire ora per poter
applicare il teorema di Rice è se questa
proprietà P3 sia semantica o meno. La
proprietà P3 è semantica o no?
Sì.
di sì perché scritta M non accettacato.
Può essere scritto come lm diverso da
secato. E a questo punto transverso.
Vabbè, sono hanno lo stesso L. Hanno lo
stesso L diversi. Sì, sì. Questa è una
proprietà semantica perché è una
proprietà che riguarda i linguaggi. Se
volessimo essere un pelino più formali,
noi avremmo siano m1 ed m2 due macchine,
ok?
Che abbiano lo stesso linguaggio.
Supponiamo che m1 appartiene alla alla
proprietà P3.
Se m1 appartiene alla proprietà P3,
allora il linguaggio di m1 deve essere
diverso da questa.
Ma m che l'abbiamo presa apposta avere
lo stesso linguaggio di m1, ok?
Avrà anch'essa un linguaggio diverso da
lui, quindi nemmeno M2 sta in P3. Quindi
questa è una proprietà di macchi, una
proprietà non banale, una proprietà
semantica e quindi è decidibile o
indecidibile? è indecidibile per il
teorema di Rice. Ok?
E va bene. Con questo chiudiamo per
oggi. Grazie mille. Dalla settimana
prossima cambiamo argomenti, iniziamo
complessità. Ok?
Di nuovo, per complessità ci servono le
riduzioni, quindi se il concetto di
riduzione ancora non vi è chiaro, andate
a riguardar, cercate di appropriarvene
perché ne vedremo a non finire di
riduzione. Ok, babbo giornata, buon
weekend.