problemi di vincoli temporali luca chittaro and angelo montanari. ``temporal representation and...
TRANSCRIPT
Problemi di Vincoli Temporali
Luca Chittaro and Angelo Montanari.``Temporal Representation and Reasoning in Artificial Intelligence: Issues and Approaches.''Annals of Mathematics and Artificial Intelligence, 28, 2000.Sezione 3
Problemi di vincoli temporali Qualitativi
Variabili relazioni tra entita’ temporali Domini insiemi di relazioni possibili Vincoli restringono l’insieme delle relazioni
permesse Esempio: Algebra degli Intervalli di Allen
Variabile relazione tra due intrevalli I1 e I2 Dominio 13 relazioni permesse {before, meets,
….} Vincolo unario dice quale delle 13 relazioni
possibili sono ammesse tra I1 e I2
Problemi di vincoli temporali Quantitativi (ma anche usato per Qualitativi)
Variabili eventi temporali Domini valori temporali, retta temporale, le 24 ore Vincoli
Unari: restringono l’inisieme degli istanti in cui l’evento puo’ accadere
Binari: restringono le durate o gli intervalli temporali tra due eventi
Esempio: Simple Temporal Poblems (Dechter et al.): Variabile evento (esempio: quando inizia pranzo, arrivo a
casa) Dominio valori temporali (esempio: Ore, minuti, secondi) Vincolo unario dice quando e’ ammissibile che l’evento
accada , binario quanto tempo tra due eventi
Risolvere problemi temporali
Dipende a quale domanda si vuole rispondere
Soddisfacibilita’ (ISAT, da Interval Satisfiability): esiste un modo di assegnare valori a tutte le variabili in modo che tutti i vincoli siano soddisfatti? Decisionale: dire se esiste un tale assegamento SI/NO Costruttiva: dire se e siste e se si esibirne uno
Rete minima (MLP, Minimum Labeling Problem): determinare la piu’ stretta relazione indotta
Trovare tutte le soluzioni (ASP, All Solutions Problem) Trovare tutte le collocazioni temporali che soddisfano
un dato assegnamento
Algebra degli Intervalli o di Allen
1. Allen J. F. Maintaining knowledge about temporal intervals”. Comm . of ACM 26, 832-843
2. Marc Vilain, Henry Kautz, and Peter van Beek. Constraint propagation algorithms for temporal reasoning: A revised report. In Readings in Qualitative Reasoning about Physical Systems, Daniel S. Weld and Johan de Kleer (eds.), Morgan-Kaufman, 373-381, 1989
3. Peter van Beek and Dennis W. Manchak. The design and experimental analysis of algorithms for temporal reasoning. Journal of Artificial Intelligence Research 4:1-18, 1996.
4. Fast Algebraic Methods for Interval Constraint Problems Peter Ladkin and Alexander ReinefeldInvited Paper for Annals of Mathematics and Artificial Intelligence 19:383-411, 1997.
TUTTI DISPONIBILI SUL SITO DEL CORSO
13 realzioni di base tra intervalli
A BA precedes B B after A
A meets B B met-by AA B
AB
A overlaps B B overlapped-by A
A starts B B started-by A
A during B B contains A
A finishes B B finished-by A
A equals B
A
B
B
A
B
A
B
A
EsempiColazione Pranzo
Bob pranza dopo colazione
Ho corretto il compito di TizioSubito dopo quello di Caio
Correzione C
ViaggioFilm
Il film e’ cominciato prima del mio arrivo
I due treni partono alla stessa ora
Ho cenato guardando il film
Siamo arrivati a casa alla Stessa ora
Le due sessioniSono in concomitanza
Viaggio treno 2
Viaggio treno1
Film
Cena
Ritorno a casa di A
Session B
Session A
Correzione T
Ritorno a casa di B
Vincoli qualitativi su intervalli Variabili intervalli Vincoli sottoinsiemi dell’insieme delle
13 relazioni base (vettori) Quanti possibili vincoli diversi? 213 Esempio: Questa mattina John ha iniziato a
leggere l’articolo prima di colazione e ha finito di leggerlo prima di finire il caffe’
IC
IA
? ?
Relazione tra intrevalli
IA IC
(precedes, meets, overlaps)
Vincolo temporale
Interpretazione dei vincoli di Allen Le relazioni contenute nel sottoinsieme (vettore)
caratterizzante un vincolo sono da interpretarsi come una disgiunzione
Esprimere “A prima o dopo B” e’ possibile NON e’ possibile esprimere: “A
prima di B oppure A dopo C” Espressivita’ comunque sufficiente in molti casi
IA IC
(precedes, meets, overlaps)La lettura dell’articolo e’ terminata prima Ocontemporaneamente O dopo l’inizio della colazione
Operazioni su vincoli temporali di Allen Inversione
rovesciare la relazione Dati due vincoli inferire un altro vincolo,
il piu’ lasco compatibile con i vincoli dati
Intersezione
Composizione
Inversione di un vincolo temporale
I1 I2
I1 I2
I1 I2
I1 I2
I1 I2
I1 I2
I1 I2
I1 I2
I1 I2
I1 I2
I1 I2
I1 I2
I1 I2
I1 I2
precedes after
meets met by
overlaps overlapped by
starts started by
during contains
finishes finished-by
equals equals
I1 I2
(x,y,z)
I1 I2
(x-1, y-1 , z-1 )
-1 =inversione
I1 I2
(precedes, meets, overlaps)
I1 I2
(after, met-by, overlapped-by)
Esempio:
Intersezione di due vincoli ∩ Dati due vincoli definiti sugli stessi
intervalli I1 e I2 con vettori di relazioni v e v’, l’intersezione e’ un vincolo su I1 e I2 con vettore di relazione v∩v’
Esempio:
I1 I2
(precedes, meets, overlaps)
I1 I2
(overlaps, starts, during)intersezione I1 I2
(overlaps)
V
V’
v∩v’
Composizione di due vincoli * Dati due vincoli,
primo definito sugli intervalli I1 e I2 con vettore di relazioni v e
secondo definito si I2 e I3 con vettore di relazione v’
La composizione e’ un vincolo su I1 e I3 con vettore v” rappresentante il piu’ grande sottoinsieme di relazioni compatibili per transitivita’ con v e v’
Esempi
I2
I1and
I3I2I1
I2 I3I1 I2p p
composizione
I1 I3p
I2 I3I1 I2o f
composizione
I1 I3d,s,o
I2
I3
I2
I1
I3
I2
I1
I1
I3
I2
I1
I3
I2
and
Posso dover invertire prima di applicare la composizione, ad esempio se mi viene datoil vincolo I3I2
I3I2
Tabella di Allen Tutte le possibili composizioni delle 13
relazioni di base sono contenute nella “cosidetta” Tabella di Allen.
Vedi articolo: J. F. Allen, Maintaning Knowledge about Temporal intervals, 1983.
Path consistency Operazione triangolare
I1
I2
I3
r12 r23
r13
rij= vettore relazioni ammesse tra Ii e Ij
r12 * r23 = r’13, il piu’ grande insieme di relazioni tra I1 e I3 consistente per transitivita’ con r12 e r23.
r’13 e’ un vincolo indotto da r12 e r23 su I1 e I3 e, dunque, deve essere soddisfatto
I1
I2
I3
r12 r23
r13
r’13
Ci puo’ essere anche un altro vincolo tra I1 e I3: r13. r13 e r’13 devono valere entrambi deve valere r”13=r13 ∩r’13
I1
I2
I3
r12 r23
r”13
r13 ∩ (r12 * r23)
Esempi di operazione triangolare
I1
I2
I3
p,m p,m
p=(p,p-1)∩pI1
I2
I3
p,m p,m
p,p-1I1
I2
I3
p,m p,m
p,p-1
p=(p,m)*(p,m)p*p=p
p*m=m*p=p
m*m=p
I1
I2
I3
o,m p,m
I1
I2
I3
o-1,m-1 p,m
1
tutte ammesse
I1
I2
I3
p,m
(e,p,m,o,s,d-1,f-1,s-1)=(o-1,m-1)*(p,m)
1I1
I2
I3
p,m
(e,p,m,o,s,d-1,f-1,s-1)
o-1,m-1 o-1,m-1
Operazione triangolare (2) Def1: Una operazione triangolare e’ stabile
se applicandola il risultato non cambia, cioe’ se r13 ⊆ r12*r23
Def2:Una rete di vincoli temporali e’ path consistent (oppure equiv. 3-consistent) se le tutte le possibili operazioni triangolari sui vincoli sono stabili
Notare che: per ogni triangolo di vincoli si hanno 3 operazioni
triangolari per ogni vincolo vi sono n-1 possibili operazioni
triangolari, dove n e’ il numero delle varibili
Algoritmo di path consistency Allen83
Ho una rete di vincoli path consistent, aggiungo un nuovo vincolo come rispristinare path consistency con il nuovo vincolo.
1. ADD(inputs: PC Allen Network N, nuovo vincolo rij)
2. Coda Q rij
3. While Q ≠Ø do4. rijPop(Q)
5. nij rij //si assume che prima non ci fosse un vincolo su i e j
6. For every node k4. rkj nkj ∩ (nki*rij)
5. If (rkj = Ø) then STOP inconsistenza
6. If (rkj ⊂ nkj) Push(rkj,Q)
7. rik nik ∩ (rij*njk)
8. If (rik = Ø) then STOP inconsistenza
9. If (rik ⊂ nik) Push(rik, Q)
Complessita’ di ADD Tempo :
Stima grossolana (Allen 83): Ogni vincolo ha al massimo 13 relazioni Nel caso pessimo puo’ essere modificato 13 volte (ogni volta tolgo una sola
relazione) Ci sono O(n2) vincoli binari se ho n intervalli In totale: O(13 n2)
Stima piu’ fine (Vilain&Kautz 89) Ogni volta che considero un vincolo estratto dalla coda (righe 6-10) per ogni
altro intervallo k (e ce ne sono n-2) vengono fatte 2 composizioni e due intersezioni.
Assumendo costo intersezione e composizione costante O(1), si ha O(n). Ragionevole, perche’ ogni vettore di relazioni puo’ essere rappresentato con un vettore di 13 bool, l’intersezione come AND di due vettori. La complessita’ della composizione invece e O(|rik| x|rkj|), ma |rij| e’ O(13).
Quindi si hanno O(13 n2) estrazioni dalla coda ciascuna di costo O(n) In totale O(13 n3)
Spazio : O(kn2), k e’ lo spazio costante occupato da un vettore di relazioni
Correttezza di ADD rispetto a ISAT TH: Se durante l’esecuzione
di ADD viene trovata una inconsistenza, allora Nrij non ha soluzione.
DIM: Un vettore di relazioni puo’ diventare vuoto perche’ alla riga 7 o alla riga 10 l’operazione triangolare ha dato l’insieme vuoto. Considero il primo vincolo per cui cio’ accade, e.g. nkj.
Deve essere che l’intersezione dell’operazione triangolare ha dato l’insieme vuoto.
Questo accade sse solo non vi e’ alcun modo di assegnare gli intevalli i e j in modo tale che il vincolo nkj, e il vincolo indotto, rkj, siano soddisfatti. Quindi la rete non ha soluzione.
1. ADD(inputs: Allen Network N, nuovo vincolo rij)
2. Coda Q rij
3. While Q ≠Ø do4. rijPop(Q)5. nij rij
6. For every node k7. rkj nkj ∩ nki*rij
8. If rkj= Ø then stop9. If (rkj ⊂nkj) Push(rkj,Q)
10. rik nik ∩ rij*njk
11. If rik= Ø then stop12. If (rik ⊂ nik) Push(rik, Q)
Ik
Ii
Ij
nki rij
nkj
rkj
Incompletezza di ADD rispetto a ISAT Se ADD non trova inconsistenze NON e’
detto che la rete abbia soluzioni Esempio: Rete path consistent ma senza
soluzioni
I1 I2
I3
I4
od d-1
d d-1
s m
s m
f f-1
Complessita’ di ISAT per problemi di vincoli di Allen(1) Teorema: Determinare la soddisfacibilita’ di un insieme di vincoli
temporali nel formalismo di Allen e’ NP-hard
Prova: Riduzione di 3 SAT problema temporale di Allen Mapping polinomiale di una 3-SAT formula (A v B v C)^…^(X v Y v Z)
in un problema temporale Servono 3 gruppi di intervalli: 1. Intervalli corrispondenti a letterali:
1. ∀ letterale P intervallo P 2. ∀ negazione di un letterale ¬P intervallo notP3. Mutua esclusione (P vero implica ¬P falso) intervallo PXnotP
2. Intervalli corrispondenti a clausole 1. ∀ clausola (P v Q v R) intervallo PorQorR, tre intervalli segnaposto per I
letterali forP, forQ e forR 3. Intervallo ausiliario MIDDLE, gli intervalli che precedono MIDDLE
corrispondono a termini falsi quelli dopo a termini veri
Complessita’ di ISAT per problemi di vincoli di Allen(2) Seguenti vincoliMutua esclusioneMiDDLE (during) PXnotPP (meets,met-by) PXnotP notP (meets,met-by) PXnotPP (precedes,after) notP
Letterali e loro segnapostoforP (contains) PforQ (contains) Q forR (contains) R
Segnaposto o veri o falsiforP(precedes,after) MIDDLEforQ(precedes,after) MIDDLEforR(precedes,after) MIDDLE
Al piu’ 2 falsi in una clausolaforP(meets,starts,after) PorQorRforQ(meets,starts,after) PorQorRforR(meets,starts,after) PorQorRPorQorR (contains) MIDDLEforP(precedes,after,meets,met-by) forQ forQ(precedes,after,meets,met-by) forRforR(precedes,after,meets,met-by) forP
La formula e’ soddisfacibile se e solo se il corrispondente problema ha soluzione.Trasformazione in un problema di Allen polinomiale nella lunghezza della formula.
Complessita’ di ISAT per problemi di vincoli di Allen(2) Teorema: Determinare la soddisfacibilita’
di un insieme di vincoli temporali nel formalismo di Allen e’ NP-completo.
PROVA: E’ NP-hard (Th. Precedente). Basta dimostrare che e’ in NP (cioe’ risolvibile da una Touring machine non deterministica in tempo polinomiale). Infatti, dato un assegnamento a tutti gli intervalli, testare se e’ una soluzione e’ O(n2).
Equivalenza di ISAT e MLP TH: Determinare la soddisfacibilita’ (ISAT) e determinare la
rete minima (MLP) di problemi temporali di Allen sono problemi equivalenti.
PROVA: Da ognuno esiste una mappatura polinomiale all’altro
1. ISATMLP. Assumiamo un oracolo che dato un problema di Allen dice se e’ consistente o no. Per ogni vincolo (O(n2)) chiediamo all’oracolo se la rete in cui quel vincolo e’ sostituito con una sola delle sue relazioni ammesse e’ consistente (O(13)).
2. MLPISAT. Assumiamo di avere un algoritmo che calcoli la rete minima. Perche’ il problema sia soddisfacibile e’ sufficiente controllare che nessun vincolo non ammetta nessuna relazione (O(n2)).
Algoritmo ISAT: path-consistency+backtracking
Input:Allen Temporalproblem
Preporcessing:Pathconsistency
Path-consistent?
Intelligent backtracking
Consistent?
Post-processing:Solution determination
no
no
yes
yes
STOP
STOP
Output: labeling atomico
Output:assegnamentodegli intervalli
Intelligent backtracking1. Int-back(matrice vincoli M, i,j interi)2. M’M //salvo M3. for (ogni relazione lk in Mij) do
4. Mij lk5. if (Path-consistency(M)=true) then6. if (Mij last edge or Int-back(M,next_i,next_j)) 7. return true8. MM’; //backtrack9. endfor10. return false11. End;
Esempio
I1
I2
I3
I4o,m
p,m
p,mp,p-1
o,p,m
Simulando Int-back(M,1,2) dove M:
…viene
I1
I2
I3
I4m
p
pp
p
p
Implementazione: Path-consistency (1)
Vincolo: vettore di 13 bool (2 bytes) Problema di vincoli: matrice di vettori Implementazione della coda:
non si implementa la coda ma si aggiunge un bit ad ogni elemento della
matrice che indica se il vincolo corrisp. deve essere riconsiderato
Implementazione: Path-consistency(2) Operazione triangolare:
Intersezione: AND dei due vettori Composizione:
Metodo di Allen: In memoria Tabella 13x13 composizione relazioni atomiche Ogni composizione nel caso pessimo devo 13x13 lookups
Allen + Hashing Viene mantenuta una hash table con tutte le composizioni
calcolate in precedenza Metodo di Ladkin
In memoria triangolare superiore tabella 213x213 con tutte le possibili combinazioni (l’elemento simmetrico si ottiene scambiando tutti bit perche’ l’inversione si coniuga con la composizione) ~64MB
Ogni composizione un solo lookup (+ una inversione)
Implementazione: Path-consistency (3) …continua composizione Metodo di Hogge
Quattro tabelle in memoria T1 27 x27 (bit 1-7 mij, bit 1-7 mjk) T2 27 x26 (bit 1-7 mij, bit 8-13 mjk) T3 26 x27 (bit 8-13 mij, bit 1-7 mjk) T4 26 x26 (bit 8-13 mij, bit 8-13 mjk)
Ogni composizione 4 accessi + unione dei quattro vettori Memoria necessaria (16KB+8KB+8KB+4KB)=72KB
Variante di Hogge Due tabelle in memoria: T1 213 x27 (composizione con le 7 relazioni di ordine piu’ basso) T2 213 x26 (composizione con le 6 relazioni di ordine piu’ alto) Ogni composizione 2 accessi + unione 2 vettori Memoria necessaria: 1 MB
Implementazione: Path-consistency (4)
Se rij = 1 (tutte le relazioni ammesse) allora non metterlo nella coda. Riga 2.
se (p ∈nki & p-1 ∈rij ) or (p-1 ∈nki & p ∈rij ) or (d ∈nki & d-1 ∈rij ) allora rki*rij=1. Simile per riga 10.
Controllo rkj ⊂nkj durante il calcolo di nki*rij. Simile rik ⊂ nik
1. ADD(inputs: Allen Network N, nuovo vincolo rij)
2. Coda Q rij
3. While Q ≠Ø do4. rijPop(Q)5. nij rij
6. for every node k7. rkj nkj ∩ (nki*rij)8. if (rij = Ø ) then STOP9. if (rkj ⊂nkj) Push(rkj,Q)10. rik nik ∩ (rij*njk)11. if (rik = Ø ) then STOP12. if (rik ⊂ nik) Push(rik, Q)
Implementazione: Path-consistency (5) Euristiche di ordinamento dei vincoli: Peso: Ad ogni vincolo, rij, associo un peso, wij, che piu’ e’ basso e
piu’ stringente e’ la composizione del vincolo con altri vincoli Il peso di un vincolo e’ la somma dei pesi delle sue relazioni atomiche. Tali
pesi sono ottenuti componendo ogni relazione atomica con ogni possibile vincolo e facendo la media delle cardinalita’ ottenute.
Processo I vincoli in ordine crescente di peso Cardinalita’: come sopra ma con peso di tutte le relazioni atomiche
=1 Potere di propagazione: di un vincolo rij, prop(rij)=Σwki+ Σwjk, k≤n,
k≠i,j.
rel p p-1 m m-1 o o-1 s s-1 d s-1 f f-1 e
w 3 3 2 2 4 4 2 2 4 3 2 2 1
Implementazione: Search con bktk (1) Euristiche per ordinare i vincoli durante la
ricerca (calcolo di next_i e next_j in Int-back) Ignorare vincoli atomici: non restringono lo
spazio di ricerca Prima vincoli con l’uguaglianza
se e∈Mij, allora Mij e, ∀k≤n Mik Mik ∩ Mjk
Mjk Mjk ∩ Mik
se {e}=Mij, togliere o le i-sime o le j-sime riga e colonna
Implementazione: Search con bktk (2) Euristiche per scegliere le relazioni in un
vincolo: Prima quelle con composizione piu’ stretta: e.g.
equals, meets, starts, e finishes e loro inversi Generare una statistica delle composizioni che
portano piu’ propagazione per path consistency
Algebra dei Punti1. P. Van Beek Reasoning about Qualitative
Temporal Information. J. of AI, 58:297-326, 1992
2. P. Van Beek and R. Cohen. Exact and Approximate Reasoning about Temporal Relations. Computational Intelligence 6, 132-144,1990
Motivazione Risolvere IA e’ un problema difficile Soluzioni:
Sviluppare algoritmi esponenziali ma efficienti in pratica Individuare dei frammenti di IA trattabili
Intervallo evento Estremo inferiore inizio evento Estremo superiore fine evento Lunghezza intervallo durata
Per un agente che osserva gli eventi, possono essere noti i tempi di inizio (e le loro relazioni) ma vi puo’ essere inceretezza sui punti finali (e sulle loro relazioni)
La parte di IA che modella questa situazione e’ equivalente ad una algebra che considera solo i punti e non gli intervalli Point Algebra (PA)
Poblemi temporali basati sull’Algebra dei Punti Variabili time points, eventi temporali di
durata istantanea Dominio retta reale Vincoli binari e esprimono quali relazioni
sono ammesse tra due time points P1 e P2 3 relazioni atomiche: <, =, > 23 relazioni: (<), (=), (>), (<,=),(=,>), (<,=,>),
(<,>), ()
P1 P2(<,=)
P2
P1
Esempio Fred ha messo giu’ il giornale e ha bevuto
l’ultimo sorso di caffe’
Ps Pe
Cs Ce
<
<
<<
Una soluzione Ps Pe
CeCs
Inversione di un vincolo temporale con punti
P1 P2
P1 P2
P1 P2
P1 P2
P1 P2
P1 P2
P1 P2
P1 P2
P1 P2
<
> <
= =
P1 P2<,> <,>
≤ ≥
P1 P2
(x,y,z)
P1 P2
(x-1, y-1 , z-1 )
-1 =inversione
>
Intersezione di vincoli a punti Intersezione: Dati due
vincoli definiti sugli stessi punti P1 e P2 con vettori di relazioni v e v’, l’intersezione e’ un vincolo su P1 e P2 con vettore di relazione v∩v’
∩ < ≤ > ≥ = ≠ 1
< < < 0 0 0 < <
≤ < ≤ 0 = = < ≤
> 0 0 > > 0 > >
≥ 0 = > ≥ = > ≥
= 0 = 0 = = 0 =
≠ < < > > 0 ≠ ≠
1 < ≤ > ≥ = ≠ 1
P1 P2<,>
P1 P2≥ ∩ P1 P2
>
Composione di vincoli a punti Composizione:Dati due
vincoli, primo definito sui punti P1
e P2 con vettore di relazioni v e
secondo definito si P2 e P3 con vettore di relazione v’
La composizione e’ un vincolo su P1 e P3 con vettore v” rappresentante il piu’ grande sottoinsieme di relazioni compatibili per transitivita’ con v e v’
* < ≤ > ≥ = ≠ 1
< < < 1 1 < 1 1
≤ < ≤ 1 1 ≤ 1 1
> 1 1 > > > 1 1
≥ 1 1 > ≥ ≥ 1 1
= < ≤ > ≥ = ≠ 1
≠ 1 1 1 1 ≠ 1 1
1 1 1 1 1 1 1 1P1 P2<,>
P2 P3≥ * P1 P3
1
SA: il frammento di IA corrispondente a PA
SA ⊂ IA e’ un sottoinsieme di relazioni cosi’ definito:
Data rhk ∈ IA, rhk ∈ SA sse la relazione Ih rhk Ik e’ equivalente ad una congiunzione di relazioni in PA tra i punti iniziali e finali di Ih e Ik (Ih-,Ih+, Ik-,Ik+).
Esempi di relazioni in SA I1 (p,m,o) I2 ∈ SA,
I1 (p,p-1) I2 ∉SA,
I1
I-1 I+1
I2I-2 I+2
I+1 I+1
I2- < I2+ and
I1- < I1+ and
I1- < I2- and
I1- < I2+ and
I1+ <,=,> I2- and
I1+ < I2+
I1
I-1 I+1
I2I-2 I+2
I1
I-1 I+1
I2- < I2+ and
I1- < I1+ and
I1+ < I2- or I2+ < I1-
Non riesco a esprimerlo come congiunzione
Path-consistency su SA ADD (cioe’ applicare path consistency) non
risolve il problema della rete minima per SA. Controesempio
A
D
C
(d,d-1,o,o-1,m, f, f-1)
B
(p,d,o,f,f-1)
(p,d,o,s)
(e,p,d-1,o,s,s-1,f-1)
(d,d-1,o,o-1,m, f, f-1)
(d,d-1,o,o-1,m, f, f-1)
La rete e’ gia PC, ma la relazionetra B e A non e’ minimaPerche’ contiene meets che non e’ in nessuna soluzione
Path-consistency e PA ADD (cioe’ applicare path
consistency) non risolve il problema della rete minima per PA.
Infatti so che non lo risolve per SA. Se lo risolvesse per PA allora potrei per ogni rete SA convertirla in PA, applicare path consistency e ritornare alla rappresentazione SA.
Algebra dei punti continui PAc Def1: la relazione tra due punti e’ continua se presi
due qualunque assegnamenti che soddisfano la relazione anche tutti i punti temporali tra loro la soddisfano
Esempio: A ≤ B, dati due assegnamenti ad A, a1 e a2, tali che a1≤a2 ≤ B, anche per ogni a3 t.c. a1≤a3 ≤a2, si ha che a3≤B. A ≤B ∈ PAc
Esempio A ≠B, dati due assegnamenti ad A, a1 e a2, tali che a1≠ B e a2≠ B non e’ detto che per ogni a3 t.c. a1≤a3 ≤a2 valga a3≠ B. A ≠B ∉ PAc.
Graficamente lo spazio degli assegamenti di A “non deve avere buchi”, continuo
B B
A≤B A≠B
SAc: il frammento di IA corrispondente a PAc ≠ e’ l’unica relazione non continua PAc = PA – {r| r ⊇ {≠}} Le relazioni continue tra punti sono chiuse rispetto
all’inversione, intersezione e alla composizione SAc: il sottoinsieme di relazioni di IA che si
possono esprimere come congiunzione di relazioni in PAc definite sui punti iniziali e finali degli intervalli e’ un sottoinsieme si SA
SAc e’ chiuso rispetto all’inversione, intersezione e alla composizione
PAc e SAc sono due algebre (risp. dei punti e degli intervalli continui)
Esempi di relazioni in SA e SAc I1 (p,m,o) I2 ∈ SAc,
I1 (p,o) I2 ∈(SA-SAc),
I1
I-1 I+1
I2I-2 I+2
I+1 I+1
I2- < I2+ and
I1- < I1+ and
I1- < I2- and
I1- < I2+ and
I1+ <,=,> I2- and
I1+ < I2+
I1
I-1 I+1
I2I-2 I+2
I1
I-1 I+1
Non serve ≠
I2- < I2+ and
I1- < I1+ and
I1- < I2- and
I1- < I2+ and
I1+ ≠ I2- and
I1+ < I2+
Riassumendo
IA
I1 (p,p-1) I2
SAI1 (p,o) I2
I1 (p,m,o) I2
SAc
Nozioni di consistenza Consistenza sui nodi (1-consistenza): ∀ variabile X, ∀ valore w
nel dominio di X, (w rxx w) e’ soddisfatta IA e PA sono sempre consistenti sui nodi visto che per ogni variabile X
rxx e’ la relazione di uguaglianza (e in IA, = in PA) Consistenza sugli archi (2-consistenza): ∀ arco XY (vincolo
rxy), ∀ valore w nel dominio di X, esiste un valore u nel dominio di Y tale che (w rxy u) e’ soddisfatta
Ogni assegnamento consistente a una variabile puo’ essere esteso a un assegnamento consistente a due variabili
IA e PA sono sempre consisteni sugli archi Consistenza sui cammini (3-consistenza): per ogni tripla di
variabili X, Y, Z, per ogni assegnamento w di X e u di Y che soddisfa (w rxy u), esiste un assegnamento z di Z tale che (w rxz z) e (z rzy u) sono soddisfatte
Ogni assegnamento consistente a due variabili puo’ essere esteso a un assegnamento consistente a tre variabili
…k-consistenza: ogni assegnamento consistente a k-1 variabili puo essere esteso ad un assegnamento consistente di k variabili
k-consistenza forte: j-consistenza per ogni j≤k Se una rete N, IA o PA, con n variabili e’ fortemente n-
consistente allora e’ minima.
Path-consistency e SAc (1) ADD (cioe’ applicare path consistency)
risolve il problema della rete minima per SAc
Infatti, mostriamo che se N rete temporale SAc path consistent N
fortemente k-consistente per ogni 1≤k≤n (n=numero variabili) e quindi minima
Induzione: k=1 una rete SAc (ma anche IA) e’ sempre node
consistent fortemente 1-consistent k=2 una rete di vincoli SAc (ma anche IA) e’ sempre
node e arc consistent fortemente 2-consistente k=3. N e’ path consistent (cioe’ 3-consistent) per ipotesi,
e’ sempre node e arc consistent fortemente 3-consistent
Path-consistency e SAc (2) Supponiamo fortemente (k-1)-consistente, mostriamo che
pc implica che e’ anche fortemente (k)-consistente Esiste un modo di instanziare gli intevalli I1,….,Ik-1 in modo
tale che Ii rij Ij sono soddisfatte per i,j=1,…, k-1. Denotiamo con <si,ei>, i=1,…, k-1 tali assegnamenti.
Devo trovare un assegnamento a Ik, <sk,ek> tale che Ii rik Ik sia soddisfatta per i=1,…, k-1
rik ∈ SAc bound sui valori di sk e ek, che corrispondono a insiemi convessi. Per esempio I1 (p,m) Ik induce s1<sk, e1≤sk, s1<ek, e1<ek, sk<ek
L’intersezione di tutti questi insiemi convessi contiene gli assegnamenti a sk e ek che soddisfano tutti i bound. Quindi basta mostrare che tale intersezione non e’ vuota.
e1
s1
e2
s2
s1
e1
e2
s2
Bounds per skBounds per ek
Path-consistency e SAc (3) Per il teorema di Helly’s basta mostare che
l’intersezione di qualunque insieme di 3 bound non e’ vuota
Caso 1, ognuno dei 3 bound contiene o solo sk o solo ek. Basta mostrare che l’intersezione due a due non e’ vuota. Ma dati 2 dei 3 bound essi corrispondono ad un triangolo di intervalli e pc che c’e’ un punto in comune
Caso 2, 2 bounds definiti solo su sk o ek e il bound sk<ek. Ma sk<ek vale in ogni triangolo e dunque sfrutto ancora path consistency
Path-consistency e PAc ADD (cioe’ applicare path
consistency) risolve il problema della rete minima per PAc
Infatti so risolvere per SAc, e posso transformare la rete PAc a una SAc equivalente, applicare ADD e ottenere la SAc minima, e poi tornare ad una rete PAc equivalente e dunque anch’essa minima.
Perche’ ≠ crea problemi ≠ e’ l’unica relazione che e’ in PA ma non
in PAc perche’ non e’ convessa Cerchiamo di capire perche’ questo fa in
modo che path consistency non sia sufficiente per trovare la rete minima
Assegnamento A=a, B=b, C=c e a=b=c
a
c
b
bounds su D
L’intersezione di 2 bound non e’ mai vuota (pc)ma l’intersezione di tutti e 3 si. La rete e’ pc ma non minima, = su AC non appartiene a nessuna soluzione
A
B
C
D
<,=<,=
<,=<,=≠
<,=
Dalla 3-consistenza alla 4-consistenza path consistency rij rij ∩(rik *rkj) assicura
che ogni relazione r che rimane in rij sia consistente in ogni 3-clique (triangolo). Si ottiene componendo archi con un nodo in comune.
Idea (van Beek): si compongono triangoli con un arco in comune in comune e poi si interseca sull’altra diagonale.
Composizione di triangoli
Pi
Pk
Pj
rik=(..P..)
PL
rLj=(..T..)
rkL=(..R..)
rkj∩(R*T)=(..S..)
riL∩(P*R)=(..Q..)
∆ikL*∆kLj ={(P*S)∩(Q*T)}
∆ikL*∆kLj ={(P*S)∩(Q*T)}
Esempio: ∆ikL*∆kLj ={(P*S)∩(Q*T)}
Pi
Pk
Pj
rik=(..P..)
PL
rLj=(..T..)
rkL=(..R..)
rkj∩(R*T)=(..S..)
rjL∩(P*R)=(..Q..)
∆ikL*∆kLj ={(P*S)∩(Q*T)}
A
B
C
D
S∈(<,=)P :<
T:<Q∈(<,=)
R:≠
<,=
A
B
C
D
<,=<,=
<,=<,=≠
<,=
Prima
Dopo
All-to-All Input: temporal IA, PA, SAc, PAc network, indexes i, j Output: Approximation of minimal network1. Queue Q Related-Paths(i,j)2. While Q≠Ø do3. (i,k,l,j) Pop(Q);4. t rij ∩ ∆ikl*∆klj
5. if rij ≠ t
6. rij t
7. rji t-1
8. Q Related-Paths(i,j)
Related-Paths(i,j) return {(k,i,j,l) | 1≤k<l≤n, k,l ≠ i,j} {(i,j,l,k), (k,l,i,j)| 1≤k,l≤n, k ≠l, k,l ≠ i,j}
Analisi di All-to-All Complessita’ : O(n4) Se Input e’ PA oppure SA allora garantisce
4-consistenza forte Se l’input e’ IA allora non garantisce la 4
consistenza Notare che il procedimento si puo’
estendere a k-consistenza ma per k alti non conviene piu’ in termini di tempo rispetto a PC+Bktk
All-to-All e PA All-to-All risolve il problema della rete minima per
PA
Partiamo da una rete PA path consistent. Allora e’ fortemente 3-consistente.
Se non e’ minima vuol dire che esiste k, 4≤k≤n, tale che la rete non e’ k-consistente.
Cioe’ e’ vero che quando provo a instanziare la k-sima variabile:1. l’intersezione di qualunque 2 bounds non e’ vuota (pc) 2. l’intersezione di tutti i bound e’ vuota3. almeno un bound e’ del tipo ≠
Tuttavia l’intersezione contiene al piu’ k-1 buchi, e se e’ vuota deve essere che intersecando 2 bounds ottengo un unico elemento che e’ quello escluso da un bound con ≠
Isomorfismo con l’esempio visto con 4 variabili che viene risolto da All to All
All-to-All e SA All-to-All risolve il problema della
rete minima per SA
N SA N’ PA equiv. All-to-All(N’) PA minima N” SA equiv e dunque minima.
Rete minima di una rete PA (1) All-to-All risolve il problema della rete
minima per PA e dunque per SA in O(n4) Nuovo algoritmo O(max(mn2,n3)),
n=numero variabili e m il numero di relazioni di tipo {≠}
Ricordiamo che ogni quadrupla che genera problemi e’ isomorfa alla seguente
Idea: prima applic. pc e dopo cercare una per una tali quadruple e sistemarle A
P1
C
P2
<,=<,=
<,=<,=≠
<,=
Feasible Input: rete PA N Output: rete minima di N1. Path consistency(N)2. Find-subgraphs(N)
Find-subgraphsInput: rete PAOutput: rete PA1. for ogni arco (P1,P2) tale che P2∈adj≠(P1) do2. S (adj≥(P1)∩adj≥(P2))3. T (adj≤(P1)∩adj≤(P2))4. for each s ∈S and t∈T do5. rst {<}6. rts {>}
adjr(P1)={P2 | r12=r}
s
P1
t
P2
<,=<,=
<,=<,=≠
<,=
Rete minima di una rete PA (2) Sistemare una quadrupla significa
rimpiazzare {<,=} con {<} Una volta fatto questo e’ necessario
riapplicare path consistency? NO.
P1
S
P2
T
<,=<,=
<,=<,=
≠
<,=
Rete minima d una rete PA (2) Supponiamo di avere cambiato rst
Devo ricosiderare tutti i triangoli (s,t,k) e (k,s,t)
Triangolo (s,t,k) Cambiare rst da {<,=} a {<} fa cambiare
rsk in uno dei due seguenti casi
S
T
K
< <,=
<,= S
T
K
< =
<,=
< <
Ma allora anche (s,k)appartiene a una quartupla problematica e Find-subgraphs cambia {<,=} in {<}comunque
Complessita’ di Feasible Path consistency O(n3) Find-subgraphs O(mn2),
n= numero variabili m numero di relazioni {≠}
In totale O(max(mn2,n3))
Riassumendo Feasible risolve il problema delle rete
minima per reti PA e dunque anche per reti SA in tempo polinomiale
Riassumendo
IA
SA
SAc
pc+bktk 4-cons
Pathc
Se basta meno… A volte basta conoscere la relazione tra un
punto o un intervallo e tutti gli altri
Gli algoritmi che abbiamo visto in questo caso fanno troppo lavoro
algoritmo efficiente per risolvere questo tipo di problema basato Single-Source Shortest Path di Dijkstra
74
Algoritmo di Dijkstra
Grafo orientato pesato con pesi non negativi
L’algoritmo di Dijkstra mette i vertici in una coda
con priorità Q ordinata rispetto a d[v].
Algoritmo di Dijkstra
CammMinimiDijkstra(G, s) G grafo pesato sugli archi Inizializza(G, s) Q V[G] while not Empty(Q) do u ExtractMin(Q) for “ogni v Adj[u]” do Rilassa(uv)
75
Il rilassamento può diminuire d[v]. Siccome v è inserito in una coda con priorità per diminuire il valore di d[v] dobbiamo effettuare una chiamata a DecreaseKey. La procedura Rilassa diventa quindi:
Rilassa(uv) if d[v] > d[u] + w(uv) then DecreaseKey(v, d[u]+w(uv) ) π[v] u
One-to-All Input: Matrice di vincoli temporali R, variabile
temporale S Output: approssimazione delle relazioni minime
rsj ,j=1,…,n1. L V-{S}2. While L ≠Ø do3. Select X ∈ L such that rsx minimum4. LL-{X}5. for each Y ∈ L do6. trsy ∩ (rsx * rxy)
7. If (t≠rsy) do
8. rsy t9. L L{Y}
Assegnamento dei pesi Il passo 3 richiede di scegliere X ∈ L tale che rsx sia minimo bisogna assegnare i pesi alle relazioni Con un assegnamento casuale dei pesi l’algoritmo funziona
lo stesso Assegnare i pesi basandosi sull’euristica (gia’ vista) che da’
peso maggiore a relazioni che generano componendosi vettori di relazioni piu’ grandi
In questo modo viene quasi dimezzato il numero di iterazioni
Pesi relazioni atomiche
Il peso di una relazione e’ la somma dei pesi delle relazioni atomiche in essa contenute
rel p p-1 m m-1 o o-1 s s-1 d s-1 f f-1 e
w 3 3 2 2 4 4 2 2 4 3 2 2 1
Cosa calcola One-to-All Se l’input e’ una rete IA, PA oppure SA calcola
una approssimazione delle relazioni minime tra la variabile S e ogni altra variabile
Tuttavia non fa la propagazione su relazioni che non riguardano S
Quindi se confrontiamo l’approssimazione ottenuta sulle relazioni rsx da All-to-All e One-to-All, la seconda e’ peggiore (toglie meno relazioni)
Tuttavia, per le stesse classi su cui path consistency e’ esatta lo e’ anche One-to-All, limitatamente alle relazioni rsx
One-to-All (O2A) e SAc One-to-All applicato ad una rete SAc, N, e a
una variabile S di N, trova le relazioni minime rsx per tutte le X
Sappiamo che pc applicato a una rete SAc calcola la rete minima.
Supponiamo, per assurdo che esista una relazione rst tale che pc(rst)⊂O2A(rst)
Sappiamo che dopo O2A rst ⊆ rsx * rxt per ogni X di N
Ma se pc da’ un vincolo piu’ stretto ci deve essere un cammino X,W1,W2,…,Wm,T tale che
rsx*(rxw1*rw1w2
*…*rwm t∩ rxt) ⊂ rst, da cui prop. distr. rsx*(rxw1
*rw1w2*…*rwm t)∩( rsx *rxt)
(rsx*rxw1)*rw1w2
)*…*rwm t)∩( rsx *rxt)⊇ rst ∩( rsx *rxt)=rst
Assurdo
One-to-All (O2A) e PAc One-to-All applicato ad una rete PAc, N,
e a una variabile S di N, trova tutte le relazioni minime rsx
Come sempre PAc SAc O2A(SAc)PAc
Complessita’ di One-to-All Ogni nodo Y (O(n))
viene rimesso nella lista L solo se la relazione rsy viene modificata, cioe’ al piu’ 13 volte
Per ogni nodo estratto dalla coda viene fatto un lavoro O(n), cioe’ il for su tutte le variabili
In totale O(n2)
Input: Matrice di vincoli temporali R, variabile temporale S
Output: approssimazione delle relazioni minime rsj ,j=1,…,n
1. L V-{S} 2. While L ≠Ø do 3. Select X ∈ L such that rsx
minimum 4. LL-{X} 5. for each Y ∈ V do 6. trsy ∩ (rsx * rxy) 7. If (t≠rsy) do 8. rsy t 9. L L{Y}
ISAT per PA (1) Data una rete PA Def1: scenario consistente la scelta
consistente di una relazione atomica per ogni vincolo
Soluzione: instanziazione delle variabili (cioe’ un assegnamento ai time points)
Problema: data una rete PA trovare uno scenario consistente
ISAT per PA(2) Se ammettiamo solo le relazioni {<,>,1}
la rete rappresenta un ordinamento parziale
Per trovare uno scenario consistente:1. Topological sort O(n2)2. Si assegnano i time points nell’ordine
prodotto
vediamo meglio
ISAT per PA (3)
Se le relazioni ammesse sono {<},{>} oppure {1} allora definiamo il seguente grafo :
Nodi : variabili Se U<V UV Se U {1} V allora non metto nessun arco La rete e’ consistente sse il grafo corrispondente e’ un DAG Per vedere se e’ un DAG basta fare la chiusura transitiva e
vedere se aggiunge archi Se si allora il problema e’ inconsistente Altrimenti, l’ordinamento espresso dalla rete (e dal grafo) e’
un ordinamento parziale (riflessivo, antisimmetrico, transitivo)
ISAT per PA (4) Un ordinamento topologico dei vertici di
un grafo e’ un ordinamento tale che se G contiene l’arco diretto UV allora U precede V nel’ordinamento
Topological-Sort(G)1. Lista L Ø2. Depth-First-Search(G) + Insert(V,L) when
V finished3. Return L reversedO(n2)
Tutti i nodi nella lista delle adiacenze di V sono stati visitati e finiti
Esempio
A
B
C
D
E
F
G
<
<
< <
<
<
<
<
Omessi =1
A
B C
D E
F
G
Topological sort produce : A C G B E D FUn possibile assegnamento 0 1 2 3 4 5 6Altre soluzioni A B E D F C G A C B G D E F
ISAT per PA (5) Se ammettiamo tutte le possibili relazioni
allora topological sort non funziona Le labels che creano problemi sono {=,Ø,
≤,≥,≠} Idea: considerare caso per caso ciascuna
di queste labels escludendole, e dopo applicare topological sort Algoritmo CSPAN
Relazione = Abbiamo una rete PA N Per eliminare = dalla rete si considerano tutte le coppie di punti
che necessariamente devono essere uguali e si condensano in un unico punto
P1 nec. = P2 sse la relazione tra P1 e P2 e’ {=} in ogni scenario consistente
Identificare classi di equivalenza: P1 e P2 sono nella stessa classe sse P1 nec. = P2
Si prova che P1 nec. = P2 sse esiste un ciclo P1≤…≤P2≤…≤P1, cioe’ sse esiste un cammino da P1 a P2 e da P2 a P1, cioe’ sse sono nella stessa componente fortemente connessa
Identificare le componenti fortemente connesse Ogni SCC viene condensata in un unico nodo Si Nuova PA rete, N’, in cui
ogni nodo, Si, rappresenta una componente fortemente connessa (che puo corrispondere a uno o piu’ nodi di N)
Ogni relazione r’sisj e’ cosi definita
r’sisj ∩i,j,X,Y rxy i,j=1,…,m X∈Si Y∈Sj
89
L’algoritmo per il calcolo delle componenti fortemente connesse si compone di tre fasi:
a) usa la ricerca in profondità in G per ordinare i vertici in ordine di tempo di fine f decrescente (come per l’ordinamento topologico);
Alla fine gli alberi della ricerca in profondità in GT rappresentano le componenti fortemente connesse.
b) calcola il grafo trasposto GT del grafo G;
c) esegue una ricerca in profondità in GT usando l’ordine dei vertici calcolato nella prima fase nel ciclo principale;
Esempio
rs1s1 r17∩r18∩r71∩r78∩r81∩r87 {=}
rs2s3 r24∩r25∩r34∩r35{<}
6
2
35
4
8
1
7
<
≤
≤
≤ ≤
≤
≤
< ≠
=
≠
=
N
1,7,8
6
4,5
2,3
≤
≤
< <
≠
N’
S1
S2
S4
S3
Relazione Ø Escludere Ø significa escludere che la rete sia
inconsistente Si prova che la rete e’ inconsistente sse esiste
almeno uno dei seguenti cicli: P1=…=P2≠P1 P1≤…≤P2≤…≤P1 ≠P2 con uno o piu’ = P1≤…≤P2≤…≤P1 con almeno un <
Primi due tipi di ciclo vengono identificati quando si condensano le SCC
Per l’ultimo tipo basta considerare le SCC ammettendo anche la relazione <
Esempio
rs1s1 r17∩r18∩r71∩r78∩r81∩r87 {<}∩{>,=}∩{>}∩{<,=}∩{<,=}∩{>=} Ø
6
2
35
4
8
1
7
<
≥
≤
< ≤
≤
≤
< ≠
=
≠
=
NS1
Relazioni ≤,≥ Per rimuovere le relazioni ≤,≥ Rimpiazziamo
≤ < ≥ >
Si puo’ perche’: Ø e = sono gia’ state rimosse e dunque
nessuna relazione e’ necessariamente {=} Mettere < puo solo forzare {<} oppure {>}
sulle altre relazione e mai {=} e quindi non si creano nuove componenti connesse o inconsistenze
Relazione ≠ Non e’ piu’ necessario rimuoverle Applicando infatti al grafo ottenuto Topological
Sort e assegnando i punti secondo l’ordinamento prodotto non si creano inconsistenze con ≠
Esempio:
1,7,8
6
4,5
2,3
≤
≤
< <
≠
N’
S1
S2
S4
S3
1,7,8
6
4,5
2,3
<
<
< <
≠
N’
S1
S2
S3
S4
Un risultato topological sort:S4 S1 S2 S3 Possibile assegnamentoS4=0 S1=1 S2=2 S3=3Tutti nodi in una SCCstesso valore
CSPANInput: rete PA N Identificazione componenti fortemente connesse
S1, …, Sm, N’ rete ridotta for i,j,=1 ,…,m do r’sisj {<,=,>}
1. for each v∈ Si e w∈ Sj do2. r’sisj r’sisj ∩rvw
3. if r’sisj = Ø return “inconsistent network”
4. Rimpiazzare ovunque in N’ {<,=} con {<}5. Topological sort(N’) solo con labels {<}
Complessita’ di CSPAN
Trovare le componenti connesse O(n2) Condensare le componenti connesse O(n2),
ogni relazione viene considerata al piu’ una volta
Topological Sort O(n2)