Algoritmi e Principi dell’Informatica - Intranet...

1
Algoritmi e Principi dell’Informatica Appello del 30 Giugno 2016 Esercizio 1 (Punti 8) Scriva una formula logica del prim’ordine che formalizzi la frase seguente: Tutte le volte che mangio del salame entro 24 ore mi viene mal di pancia, a meno che, prima che sopraggiunga il mal di pancia, non prenda una pillola gastroprotettrice. Si supponga, per semplicità, che mangiare salame sia un evento isolato nel tempo e che non possa ripetersi più di una volta nell’arco di 24 ore. Suggerimento (non imposizione!) Si consiglia di far uso, non necessariemtne esclusivo, dei seguenti predicati, tutti parametrici rispetto alla variabile t: Salame(t): mangio del salame al tempo t MalPancia(t): mi viene mal di pancia Pillola(t): assumo una pillola La variabile t può essere interpretata indifferentemente in un dominio discreto o continuo. Esercizio 2 (Punti 7) Siano L 1 , L 2 , .. L k , k > 1 linguaggi definiti su un alfabeto Σ, tali che valgano le seguenti proprietà: i j, L i L j = , L 1 L 2 L k = Σ*, i, L i è ricorsivamente enumerabile. Si dica, giustificando brevemente la risposta se le seguenti affermazioni sono vere o false: Tutti i linguaggi L 1 , L 2 , .. L k sono ricorsivi E’ possibile che alcuni di essi siano regolari Tutti i linguaggi L 1 , L 2 , .. L k sono necessariamente regolari Tracce di soluzioni Esercizio 1 t (salame(t) ( t 1 (t t 1 < t +24 pillola(t 1 ) t 2 ( t t 2 < t+24 ¬malPancia(t 2 ))) t 1 (t t 1 < t +24 malPancia(t 1 ) t 2 ( t t 2 t 1 ¬pillola(t 2 ))) ) ) Esercizio 2 Poiché i linguaggi sono tra loro disgiunti e la loro unione è l’intero Σ*, enumerando tutte stringhe di L 1 , L 2 , .. L k nell’ordine 1, 2, …k, (ossia, una stringa di L 1 , una stringa di L 2 , …) prima o poi una qualsiasi stringa x deve comparire in una e una sola delle sequenze L i , e quindi si può decidere a quale linguaggio appartiene. Ergo tutti i linguaggi sono ricorsivi. E’ certamente possibile che qualche o anche tutti gli L i , siano regolari. Ad esempio, L 1 = {ε} e L 2 = Σ + sono regolari e soddisfano i requisiti del testo. Non è necessario che siano tutti regolari. Ad esempio L 1 = {a n b n } e L 2 = L 2 c non sono regolari e soddisfano i requisiti del testo.

Transcript of Algoritmi e Principi dell’Informatica - Intranet...

Page 1: Algoritmi e Principi dell’Informatica - Intranet DEIBhome.deib.polimi.it/martinen/courses/api2015/API201606… ·  · 2016-07-03Algoritmi e Principi dell’Informatica Appello

Algoritmi e Principi dell’Informatica Appello del 30 Giugno 2016 Esercizio 1 (Punti 8) Scriva una formula logica del prim’ordine che formalizzi la frase seguente: Tutte le volte che mangio del salame entro 24 ore mi viene mal di pancia, a meno che, prima che sopraggiunga il mal di pancia, non prenda una pillola gastroprotettrice. Si supponga, per semplicità, che mangiare salame sia un evento isolato nel tempo e che non possa ripetersi più di una volta nell’arco di 24 ore. Suggerimento (non imposizione!)

Si consiglia di far uso, non necessariemtne esclusivo, dei seguenti predicati, tutti parametrici rispetto alla variabile t:

• Salame(t): mangio del salame al tempo t • MalPancia(t): mi viene mal di pancia • Pillola(t): assumo una pillola

La variabile t può essere interpretata indifferentemente in un dominio discreto o continuo.

Esercizio 2 (Punti 7)

Siano L1, L2, .. Lk, k > 1 linguaggi definiti su un alfabeto Σ, tali che valgano le seguenti proprietà:

− ∀i ≠ j, Li ∩ Lj = ∅, − L1 ∪ L2 ∪ … ∪ Lk = Σ*, − ∀ i, Li è ricorsivamente enumerabile.

Si dica, giustificando brevemente la risposta se le seguenti affermazioni sono vere o false:

• Tutti i linguaggi L1, L2, .. Lk sono ricorsivi • E’ possibile che alcuni di essi siano regolari • Tutti i linguaggi L1, L2, .. Lk sono necessariamente regolari

Tracce di soluzioni Esercizio 1

∀t (salame(t) → (

∃t1 (t ≤ t1 < t +24 ∧ pillola(t1) ∧ ∀t2 ( t ≤ t2 < t+24 → ¬malPancia(t2)))

∃t1 (t ≤ t1 < t +24 ∧ malPancia(t1) ∧ ∀t2 ( t ≤ t2 ≤ t1 → ¬pillola(t2))) ) )

Esercizio 2

• Poiché i linguaggi sono tra loro disgiunti e la loro unione è l’intero Σ*, enumerando tutte stringhe di L1, L2, .. Lk nell’ordine 1, 2, …k, (ossia, una stringa di L1, una stringa di L2, …) prima o poi una qualsiasi stringa x deve comparire in una e una sola delle sequenze Li, e quindi si può decidere a quale linguaggio appartiene. Ergo tutti i linguaggi sono ricorsivi.

• E’ certamente possibile che qualche o anche tutti gli Li, siano regolari. Ad esempio, L1

= {ε} e L2 = Σ+ sono regolari e soddisfano i requisiti del testo. • Non è necessario che siano tutti regolari. Ad esempio L1 = {anbn} e L2 = L2

c non sono regolari e soddisfano i requisiti del testo.