università degli studi di siena facoltà di scienze matematiche, fisiche ...
università degli studi di siena facoltà di scienze matematiche, fisiche ... università degli studi di siena facoltà di scienze matematiche, fisiche ...
Cambiamo argomento per vedere come sia possibile costruire ”algoritmi” più complessi. Premettiamo innanzitutto la constatazione, fin qui sottintesa, che un vincolo applicato ad un elemento, cosí come un quantificatore di un vincolo su un insieme, sono entrambi predicati logici. Nella definizione 13 di pagina 20 avevamo considerato la composizione di predicati per mezzo di generici operatori n-arî. Allo stesso modo sarà possibile comporre i vincoli ed i vincoli quantificati. A questo scopo saranno molto utili i nostri 14 operatori binarî: I ◦ , II ◦ , . . . e XV I ◦ . É possibile quindi costruire formule complesse con i predicati (siano essi vincoli, come in questo paragrafo, o predicati sui records, come nel precedente) dando pari dignità a tutti gli operatori binarî. Useremo le lettere greche (ϕ, ψ, . . .) per indicare le formule. Esempio 27 . Solitamente gli unici connettivi logici ammessi nella costruzione di formule sono i classici ∧, ∨ e ¬. I primi due sono equivalenti agli operatori II V III ◦ e ◦ , la negazione invece è formalmente un operatore unario, ma esistono due operatori che equivalgono alla negazione del primo o del secondo XIII XI operando: P1 ◦ P2 = ¬P1 mentre P1 ◦ P2 = ¬P2. In questo modo è facile trasformare qualsiasi tipo di formula con connettivi: (P1 ∨ P2) ∧ ¬P3 equivale a (P1 V III ◦ P2) II XIII ◦ (P3 ◦ 1) . ♦ Esempio 28 . Nell’esempio precedente abbiamo citato solo quattro dei nostri quattordici possibili operatori, tanto da far sembrare inutili tutti gli altri, non è cosí. V II L’operatore ◦ equivale al drastico AUT AUT latino, è vero se solo uno dei due operandi è vero, con i normali connettivi la sua scrittura non è cosí V II semplice: P1 ◦ P2 = (P1 ∧ ¬P2) ∨ (P2 ∧ ¬P1) . Proponiamo un altro caso significativo, scrivere P1 =⇒ P2 è equivalente a porre ¬(¬P2 ∧ P1); cioè non può essere che P1 = 1 mentre P2 = 0, tutti gli altri casi vanno bene. Questa esigenza è soddisfatta dall’operatore XIV ◦ : XIV (P1 =⇒ P2) = (P1 ◦ P2) . Questi due casi per evidenziare come in realtà quasi ogni operatore abbia una sua precisa utilità. ♦ Concludiamo il paragrafo con una constatazione. 34
Proposizione 8 . Nell’esempio 19 di pagina 24 avevamo proposto un vincolo derivato sulla potenza che desse 1 se la maggioranza degli elementi dava 1 con il vincolo originale. Non esiste un operatore binario che possa risolvere questo vincolo per derivazione sulla potenza. Dimostrazione - Ammettiamo che esista (chiamiamo la sua derivazione Q?). Chiamiamo V il vincolo originale e immaginiamo di avere un sottoinsieme A con gli ”1” che superano di più di una unità gli ”0”, avremo Q?(A) = 1. Prendiamo due nuovi insiemi: A a cui si è aggiunto uno ”0” (chiamiamo il nuovo insieme A0), ed A con un ”1” (A1), se Q? funziona, avremo sempre Q?(A0) = 1 e Q?(A0) = 0 , cioè: Q? V (A0) = b ? ◦ ( a∈A ? e Q? V (A1) = b ? ◦ ( ○ V (a) ) ? ◦ 0 = 1 ? ◦ 0 = 1 , a∈A ? ○ V (a) ) ? ◦ 1 = 1 ? ◦ 1 = 1 . Allora 1 è un elemento finale di ? ◦ . Potremo aggiungere ad A un numero indefinito di ”0” senza alterare il risultato di Q?. Assurdo! ♦ 6 . Vincoli sulle istanze. A questo punto, una volta introdotti i vincoli e tutte le loro possibili derivazioni ed estensioni, possiamo tornare specificatamente ai dominî, ai records ed alle istanze. In particolare, per cominciare, riprenderemo le due definizioni sulla derivazione e la quantificazione dei vincoli (la 16 di pagina 22, e la 19 di pagina 28) per vedere come sia possibile passare da un vincolo su di un singolo dominio, ad un vincolo su di un’intera istanza. Definizione 23 . Dati: un dominio Di ∈ {D1, D2, . . .,Dn}, un vincolo V su Di, un quantificatore Q, ed un’istanza I sul prodotto cartesiano D1 × D2 × . . . × Dn , si definisce vincolo quantificato dal dominio 35
- Page 1 and 2: UNIVERSITÀ DEGLI STUDI DI SIENA FA
- Page 3 and 4: Presentazione L’algebra relaziona
- Page 5 and 6: 1 . Un esempio introduttivo. Incomi
- Page 7 and 8: in riga (per quanto possa apparire
- Page 9 and 10: 2 . Una presentazione algebrica del
- Page 11 and 12: Chiameremo i records con le lettere
- Page 13 and 14: Nomi × Numeri di telefono. I due d
- Page 15 and 16: π{Di ,Di ,...,Dim 1 2 } (s[d1, d2,
- Page 17 and 18: Esempio 10 . Poniamo un problema ba
- Page 19 and 20: La selezione è cosí un operatore
- Page 21 and 22: I casi possibili sono quattro: l’
- Page 23 and 24: Nell’esempio 13 abbiamo composto
- Page 25 and 26: Per ora la definizione è solo intu
- Page 27 and 28: II V II V III ◦, ◦ , ◦ , X
- Page 29 and 30: A è vuoto? Scriveremo: Q∅ per Q
- Page 31 and 32: Esempio 22 . Diventa immediato appl
- Page 33: Esempio 25 . Riprendiamo la definiz
- Page 37 and 38: Definizione 26 . Dato un prodotto c
- Page 39 and 40: come operatore binario, ma può ess
- Page 41 and 42: ( T 1 2 > T 2 2 ) ∧ ( T 1 3 < T 2
- Page 43 and 44: Q∀×VT , con VT = 1 se ( ti = nul
- Page 45 and 46: I è tale che, per ogni j, Q mj ∃
- Page 47 and 48: in copie diverse e gestite indipend
- Page 49 and 50: Abbiamo visto, anche a scapito dell
Cambiamo argomento per vedere come sia possibile costruire ”algoritmi”<br />
più complessi.<br />
Premettiamo innanzitutto la constatazione, fin qui sottintesa, che un vincolo<br />
applicato ad un elemento, cosí come un quantificatore <strong>di</strong> un vincolo su un<br />
insieme, sono entrambi pre<strong>di</strong>cati logici.<br />
Nella definizione 13 <strong>di</strong> pagina 20 avevamo considerato la composizione <strong>di</strong><br />
pre<strong>di</strong>cati per mezzo <strong>di</strong> generici operatori n-arî. Allo stesso modo sarà possibile<br />
comporre i vincoli ed i vincoli quantificati.<br />
A questo scopo saranno molto utili i nostri 14 operatori binarî: I ◦ , II<br />
◦ , . . . e<br />
XV I<br />
◦ .<br />
É possibile quin<strong>di</strong> costruire formule complesse con i pre<strong>di</strong>cati (siano essi<br />
vincoli, come in questo paragrafo, o pre<strong>di</strong>cati sui records, come nel precedente)<br />
dando pari <strong>di</strong>gnità a tutti gli operatori binarî.<br />
Useremo le lettere greche (ϕ, ψ, . . .) per in<strong>di</strong>care le formule.<br />
Esempio 27 . Solitamente gli unici connettivi logici ammessi nella costruzione<br />
<strong>di</strong> formule sono i classici ∧, ∨ e ¬. I primi due sono equivalenti agli operatori<br />
II V III<br />
◦ e ◦ , la negazione invece è formalmente un operatore unario, ma<br />
esistono due operatori che equivalgono alla negazione del primo o del secondo<br />
XIII<br />
XI<br />
operando: P1 ◦ P2 = ¬P1 mentre P1 ◦ P2 = ¬P2.<br />
In questo modo è facile trasformare qualsiasi tipo <strong>di</strong> formula con connettivi:<br />
(P1 ∨ P2) ∧ ¬P3 equivale a (P1<br />
V III<br />
◦ P2) II XIII<br />
◦ (P3 ◦ 1) . ♦<br />
Esempio 28 . Nell’esempio precedente abbiamo citato solo quattro dei<br />
nostri quattor<strong>di</strong>ci possibili operatori, tanto da far sembrare inutili tutti gli<br />
altri, non è cosí.<br />
V II<br />
L’operatore ◦ equivale al drastico AUT AUT latino, è vero se solo uno<br />
dei due operan<strong>di</strong> è vero, con i normali connettivi la sua scrittura non è cosí<br />
V II<br />
semplice: P1 ◦ P2 = (P1 ∧ ¬P2) ∨ (P2 ∧ ¬P1) .<br />
Proponiamo un altro caso significativo, scrivere P1 =⇒ P2 è equivalente a<br />
porre ¬(¬P2 ∧ P1); cioè non può essere che P1 = 1 mentre P2 = 0, tutti<br />
gli altri casi vanno bene. Questa esigenza è sod<strong>di</strong>sfatta dall’operatore XIV<br />
◦ :<br />
XIV<br />
(P1 =⇒ P2) = (P1 ◦ P2) .<br />
Questi due casi per evidenziare come in realtà quasi ogni operatore abbia una<br />
sua precisa utilità. ♦<br />
Conclu<strong>di</strong>amo il paragrafo con una constatazione.<br />
34