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 ...

econ.pol.unisi.it
from econ.pol.unisi.it More from this publisher
11.06.2013 Views

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

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!