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

La loro influenza è infatti difficilmente valutabile con l’aumento esponenziale dei records nel prodotto cartesiano. Rimaniamo cosí con i 6 non banali: Q∀ , Q∃ , Q∃ , Q∃¬∅ , Q∅ e Q¬∅ . Ma ne possiamo eliminare ancora uno. Lemma 1 . Ogni vincolo V col quantificatore Q∃ impone lo stesso vincolo quantificato del vincolo ¬V col quantificatore Q∀ : Q∃(V ) = Q∀(¬V ) . ♦ Possiamo cosí eliminare, in una qualsiasi formula, il quantificatore Q∃ . Nella prossima dimostrazione, come si vedrà non compare mai neanche l’insieme vuoto: possiamo eliminare anche Q∃¬∅ , Q∅ e Q¬∅ . Proposizione 9 . Se ci si limita ai quantificatori Q∃ , Q∀ , esiste almeno un vincolo ”puro” di dimensione 2, cioè un vincolo sulle istanze per il quale non esiste una formula, con vincoli quantificati sul prodotto cartesiano, che lo esprime. Dimostrazione - Consideriamo records di grado 1 sul solo dominio N dei numeri naturali, le istanze saranno insiemi finiti di numeri naturali. Immaginiamo il seguente vincolo sulle istanze: tutti i numeri sono consecutivi, non vi appartengono cioè due numeri, n ed n+2, senza che vi sia anche n + 1. Immaginiamo per assurdo che esista una formula ϕ, con vincoli quantificati sul prodotto cartesiano, che soddisfa questo vincolo. Questa formula ϕ sarà composta da un numero finito h di vincoli quantificati con Q∃, e da un numero finito k di vincoli quantificati con Q∀, ognuno con la sua molteplicità, e da operatori binarî. Scriviamo ϕ ( Q m1 ∃ 1 (V1), . . ., Q mh ∃ h (Vh), Q mh+1 ∀ h+1 (Vh+1), . . ., Q mh+k ∀ h+k (Vh+k) ) per indicarla. Per ogni vincolo quantificato Q mj ∃ j (Vj) (con 1 ≤ j ≤ h) ci sono due possibi- lità: Vj è banale e Q mj ∃ j (Vj) = 0 per ogni mj-upla di numeri naturali; esiste una mj-upla (a j 1, . . .,a j mj ) per la quale Vj = 1 , chiamiamo aj = max{a j 1, . . .,a j mj } . Analogamente, per ogni Q mj ∀ j (Vj) (con h + 1 ≤ j ≤ h + k), o Vj è banale e si ha sempre 1, oppure esiste una mj-upla (a j 1, . . .,a j mj ) per la quale Vj = 0 , e chiamiamo aj = max{a j 1, . . .,a j mj } . Consideriamo l’istanza I = {1, 2, . . ., (a − 1), a} con a = max{a1 , . . .,a j }, questa istanza soddisfa il vincolo proposto (elementi tutti consecutivi), la formula di vincoli ϕ applicata ad I deve dare come risultato 1 (ϕ(I) = 1). 44

I è tale che, per ogni j, Q mj ∃ j (Vj)(I) = 0 se e solo se Vj è banale, altrimenti Q mj ∃ j (Vj)(I) = 1, cosí come Q mj ∀ j (Vj)(I) = 1 se e solo se Vj è banale, altri- menti Q mj ∀ j (Vj)(I) = 0. La stessa cosa di I vale però anche per I ′ = {1, 2, . . ., (a −1), a, (a+2)}, cioè ϕ(I ′ ) = ϕ(I) = 1. Ma gli elementi di I ′ non sono tutti consecutivi. Assurdo! ♦ Un’ultima considerazione finale. Noi ci siamo imposti fin dall’inizio di considerare solo vincoli ed operatori binarî. Questa scelta è dovuta a coerenza con il funzionamento dei calcolatori elettronici, la cui algebra di base è, per forza di cose, dicotomica. Esempio 40 . Con un vincolo ed un operatore ternario si potrebbe ad esempio ottenere il resto modulo 3 del numero di elementi di un insieme, cosí come avevamo trovato il quantificatore Q| (che può essere visto anche come il resto modulo 2). Si consideri infatti il seguente operatore ternario: ◦ = 0 1 2 0 1 1 1 1 2 2 2 2 0 0 0 Il quantificatore inizializzato a 0, chiamiamolo Qmod3, soddisferà l’esigenza richiesta, impossibile per una formula binaria, se non altro per il numero di risposte possibili. ♦ Si ricaverebbe un vero salto di qualità qualora si accettassero vincoli ed operatori N-arî, cioè non ristretti ad un numero finito di possibilità. In effetti quando (esempio 38 a pagina 42) abbiamo parlato della possibilità di contare la cardinalità di un’istanza, ci riferivamo proprio a questo, ed è quanto normalmente fanno molti software per la gestione di databases. Esempio 41 Immaginiamo una funzione dalle istanze ad N che conta il numero dei records, chiamiamo questa funzione count (come è spesso definita nei gestori di databases in commercio). Se poi ammettiamo di costruire vincoli binarî inserendo nelle formule il risultato di count, si possono ottenere risultati molto più ampi. Molti vincoli si potevano ottenere anche senza questo ausilio, come (count(I) è pari) o (count(I) ≤ 10) , altri no: (count(I) è multiplo di 3) . Con l’aggiunta di count nelle formule si può facilmente costruire un vincolo 45

I è tale che, per ogni j, Q mj<br />

∃ j (Vj)(I) = 0 se e solo se Vj è banale, altrimenti<br />

Q mj<br />

∃ j (Vj)(I) = 1, cosí come Q mj<br />

∀ j (Vj)(I) = 1 se e solo se Vj è banale, altri-<br />

menti Q mj<br />

∀ j (Vj)(I) = 0.<br />

La stessa cosa <strong>di</strong> I vale però anche per I ′ = {1, 2, . . ., (a −1), a, (a+2)}, cioè<br />

ϕ(I ′ ) = ϕ(I) = 1. Ma gli elementi <strong>di</strong> I ′ non sono tutti consecutivi.<br />

Assurdo! ♦<br />

Un’ultima considerazione finale. Noi ci siamo imposti fin dall’inizio <strong>di</strong><br />

considerare solo vincoli ed operatori binarî.<br />

Questa scelta è dovuta a coerenza con il funzionamento dei calcolatori elettronici,<br />

la cui algebra <strong>di</strong> base è, per forza <strong>di</strong> cose, <strong>di</strong>cotomica.<br />

Esempio 40 . Con un vincolo ed un operatore ternario si potrebbe ad<br />

esempio ottenere il resto modulo 3 del numero <strong>di</strong> elementi <strong>di</strong> un insieme,<br />

cosí come avevamo trovato il quantificatore Q| (che può essere visto anche<br />

come il resto modulo 2).<br />

Si consideri infatti il seguente operatore ternario:<br />

◦ =<br />

0 1 2<br />

0 1 1 1<br />

1 2 2 2<br />

2 0 0 0<br />

Il quantificatore inizializzato a 0, chiamiamolo Qmod3, sod<strong>di</strong>sferà l’esigenza<br />

richiesta, impossibile per una formula binaria, se non altro per il numero<br />

<strong>di</strong> risposte possibili. ♦<br />

Si ricaverebbe un vero salto <strong>di</strong> qualità qualora si accettassero vincoli ed<br />

operatori N-arî, cioè non ristretti ad un numero finito <strong>di</strong> possibilità.<br />

In effetti quando (esempio 38 a pagina 42) abbiamo parlato della possibilità<br />

<strong>di</strong> contare la car<strong>di</strong>nalità <strong>di</strong> un’istanza, ci riferivamo proprio a questo, ed è<br />

quanto normalmente fanno molti software per la gestione <strong>di</strong> databases.<br />

Esempio 41 Immaginiamo una funzione dalle istanze ad N che conta il numero<br />

dei records, chiamiamo questa funzione count (come è spesso definita<br />

nei gestori <strong>di</strong> databases in commercio).<br />

Se poi ammettiamo <strong>di</strong> costruire vincoli binarî inserendo nelle formule il risultato<br />

<strong>di</strong> count, si possono ottenere risultati molto più ampi.<br />

Molti vincoli si potevano ottenere anche senza questo ausilio, come (count(I)<br />

è pari) o (count(I) ≤ 10) , altri no: (count(I) è multiplo <strong>di</strong> 3) .<br />

Con l’aggiunta <strong>di</strong> count nelle formule si può facilmente costruire un vincolo<br />

45

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

Saved successfully!

Ooh no, something went wrong!