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

Esempio 38 . Nell’esempio 31 a pagina 37 abbiamo parlato del vincolo che impone restrizioni al numero dei records, a meno di non volere imporre che questi siano pari o dispari, si tratta di un vincolo di dimensione 2. Possiamo però esprimerlo grazie ai ”vincoli quantificati sul prodotto cartesiano”. Per semplificare un po’ le cose consideriamo istanze di grado 1 (su un unico dominio), si vedrà come questa riduzione non vada a scapito della generalità. Innanzitutto vediamo come stabilire un limite minimo al numero dei records, immaginiamo di accettare solo istanze I con almeno 3 records, imporremmo sui records di I 3 il vincolo di avere tutti e 3 gli elementi diversi (la formula corrispondente considera le 3 coppie possibili), poi lo estenderemo all’istanza I 3 tramite il quantificatore Q∃, chiamiamo il vincolo ottenuto V≥3 . É chiaro che se I ha cardinalità inferiore a 3 il vincolo V≥3 non sarà soddisfatto. Se invece volessimo solo istanze con al massimo 3 records dovremmo andare a considerare sui records di I 4 il vincolo che impone di avere almeno due elementi uguali (non tutti diversi, considerando le 6 possibili coppie), a questo vincolo adatteremo il quantificatore Q∀, cosí da ottenere su I il vincolo V≤3 . Per mezzo di questi vincoli si possono costruire tutti gli intervalli sull’insieme dei numeri naturali, ad esempio il vincolo (V≥3 ∧ V≤3) accetterà solo istanze con tre elementi. Il metodo proposto rispetta i limiti dell’algebra relazionale ma ha un costo molto elevato, il fatto di dover considerare tutte le possibili coppie fa crescere in maniera esponenziale il numero di controlli da effettuare. Oltretutto avevamo semplificato il tutto limitando a 1 il grado di I, altrimenti il controllo sarebbe stato, uno per uno, su tutti i dominî di I. É chiaro che con metodi meno ortodossi (semplicemente contando i records) si potrebbero avere algoritmi molto più efficaci. Metodi poi assai più efficaci si possono ottenere considerando la costruzione dinamica di prodotti cartesiani in relazione con l’esistenza di elementi finali. ♦ Come abbiamo fatto nell’esempio precedente, sarà possibile comporre anche i vincoli quantificati sul prodotto cartesiano, cosí come gli altri vincoli, per mezzo delle formule possibili con tutti i 14 operatori binarî. Una formula con vincoli quantificati sul prodotto cartesiano sarà tale se ne conterrà almeno uno. Esempio 39 . Nei varî esempi abbiamo trovato alcuni vincoli per l’ormai arcinota istanza sul palio (Contrade × T1 × T2 × . . . × T8): la richiesta di avere almeno un vincitore: VV ittoria = Q∃×V[t8=null] ; il vincolo sulle istanze che impone di avere tempi progressivi: 42

Q∀×VT , con VT = 1 se ( ti = null ∨ ti ≥ tj, ∀ 1 ≤ i < j ≤ 8 ) ; la ”chiave” sulle contrade: VChiave[Contrade] ; il limite massimo di 10 al numero dei records: V≤10 . Il primo è un vincolo di dimensione 0, il secondo di dimensione 1, gli altri due di dimensione 2, esprimibili come vincoli quantificati sul prodotto cartesiano. La semplice formula che ne consegue è: ( VV ittoria ∧ VT ∧ VChiave[Contrade] ∧ V≤10 ) . L’intera formula può essere vista come un unico vincolo di dimensione 2. ♦ A questo punto è doveroso un riepilogo. In sostanza la nostra analisi ci porta a classificare i vincoli sulle istanze nella seguente gerarchia: - vincoli di dimensione 0: si ottengono da vincoli Vi su dominî Di derivando rispetto alle proiezioni πDi e quantificando rispetto a quantificatori Qi ; - vincoli di dimensione 1: si ottengono da un vincolo V sul prodotto cartesiano D1 × D2 × . . . × Dn (che non sia ottenibile, tramite derivazione, da una proiezione) mediante un quantificatore Q, o da composizioni di tali vincoli (almeno uno) e di vincoli di dimensione 0; - vincoli di dimensione 2: tutti gli altri. Fra questi distinguiamo: - vincoli quantificati sul prodotto cartesiano: sono i vincoli Q m V di dimensione 2 che provengono da vincoli V di dimensione 1 sul prodotto cartesiano I m di una istanza, quantificati rispetto a un quantificatore Q; - tutti gli altri, che saranno detti vincoli ”puri” di dimensione 2. Rimanendo agganciati agli aspetti pratici di ogni vincolo, se interpretato come un algoritmo, è spontaneo ritenere che il costo computazionale di un vincolo sia strettamente connesso alla sua dimensione. Per ora tutti i vincoli di dimensione 2 che abbiamo visto sono esprimibili grazie a formule con vincoli quantificati sul prodotto cartesiano. Nasce allora spontaneo un interrogativo: dato un vincolo di dimensione 2 sulle istanze, è sempre possibile trovare una formula, con vincoli quantificati sul prodotto cartesiano, che lo esprima? Il ché vuol dire: esistono vincoli ”puri” di dimensione 2? Limitiamoci a rispondere a questa domanda riducendo il numero dei quantificatori, eliminiamo quei sei che valutano parità e disparità: Q0 , Q|0 , Q1 , Q|1 , Q e Q| . 43

Q∀×VT , con VT = 1 se ( ti = null ∨ ti ≥ tj, ∀ 1 ≤ i < j ≤ 8 ) ;<br />

la ”chiave” sulle contrade: VChiave[Contrade] ;<br />

il limite massimo <strong>di</strong> 10 al numero dei records: V≤10 .<br />

Il primo è un vincolo <strong>di</strong> <strong>di</strong>mensione 0, il secondo <strong>di</strong> <strong>di</strong>mensione 1, gli altri due<br />

<strong>di</strong> <strong>di</strong>mensione 2, esprimibili come vincoli quantificati sul prodotto cartesiano.<br />

La semplice formula che ne consegue è:<br />

( VV ittoria ∧ VT ∧ VChiave[Contrade] ∧ V≤10 ) .<br />

L’intera formula può essere vista come un unico vincolo <strong>di</strong> <strong>di</strong>mensione 2.<br />

♦<br />

A questo punto è doveroso un riepilogo. In sostanza la nostra analisi ci<br />

porta a classificare i vincoli sulle istanze nella seguente gerarchia:<br />

- vincoli <strong>di</strong> <strong>di</strong>mensione 0: si ottengono da vincoli Vi su dominî Di derivando<br />

rispetto alle proiezioni πDi e quantificando rispetto a quantificatori Qi ;<br />

- vincoli <strong>di</strong> <strong>di</strong>mensione 1: si ottengono da un vincolo V sul prodotto cartesiano<br />

D1 × D2 × . . . × Dn (che non sia ottenibile, tramite derivazione,<br />

da una proiezione) me<strong>di</strong>ante un quantificatore Q, o da composizioni <strong>di</strong><br />

tali vincoli (almeno uno) e <strong>di</strong> vincoli <strong>di</strong> <strong>di</strong>mensione 0;<br />

- vincoli <strong>di</strong> <strong>di</strong>mensione 2: tutti gli altri. Fra questi <strong>di</strong>stinguiamo:<br />

- vincoli quantificati sul prodotto cartesiano: sono i vincoli Q m V <strong>di</strong><br />

<strong>di</strong>mensione 2 che provengono da vincoli V <strong>di</strong> <strong>di</strong>mensione 1 sul<br />

prodotto cartesiano I m <strong>di</strong> una istanza, quantificati rispetto a un<br />

quantificatore Q;<br />

- tutti gli altri, che saranno detti vincoli ”puri” <strong>di</strong> <strong>di</strong>mensione 2.<br />

Rimanendo agganciati agli aspetti pratici <strong>di</strong> ogni vincolo, se interpretato<br />

come un algoritmo, è spontaneo ritenere che il costo computazionale <strong>di</strong> un<br />

vincolo sia strettamente connesso alla sua <strong>di</strong>mensione.<br />

Per ora tutti i vincoli <strong>di</strong> <strong>di</strong>mensione 2 che abbiamo visto sono esprimibili<br />

grazie a formule con vincoli quantificati sul prodotto cartesiano. Nasce allora<br />

spontaneo un interrogativo: dato un vincolo <strong>di</strong> <strong>di</strong>mensione 2 sulle istanze,<br />

è sempre possibile trovare una formula, con vincoli quantificati sul prodotto<br />

cartesiano, che lo esprima?<br />

Il ché vuol <strong>di</strong>re: esistono vincoli ”puri” <strong>di</strong> <strong>di</strong>mensione 2?<br />

Limitiamoci a rispondere a questa domanda riducendo il numero dei quantificatori,<br />

eliminiamo quei sei che valutano parità e <strong>di</strong>sparità: Q0 , Q|0 , Q1 ,<br />

Q|1 , Q e Q| .<br />

43

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

Saved successfully!

Ooh no, something went wrong!