Simile alla i-consistenza
Si vuole la consistenza con un singolo vincolo, non con tutti quelli rilevanti
Arc consistency di un vincolo (binario)= ogni assegnamento consistente ad una variabile del vincolo si può estendere all'altra in modo che il vincolo fra loro sia soddisfatto
Riformulazione:
Su vincoli binari, è la stessa cosa
Su vincoli non binari, la prima è hyperarc consistency, la seconda è relational consistency
Relational arc consistency=ogni assegnamento consistente a tutte le variabili del vincolo tranne una si può estendere all'altra
Si può vedere come una estensione della arc consistency a vincoli non binari
Differenza: dato un vincolo:
Consistenza relazionale del vincolo C con la variabile x
Esempio: problema con questo ipergrafo:
Il vincolo C è su quattro variabili
Per le tre a sinistra della freccia, ci sono valutazioni che soddisfano gli altri vincoli
Queste si devono poter estendere a x in modo che C sia soddisfatto
Notare che il vincolo fra la variabile in alto a sinistra e x non viene considerato affatto; viene invece considerato da i-consistency
Conta solo se C è soddisfatto o no
Un vincolo C=(S,R) è relazionalmente arc consistent in un problema se:
Se una valutazione non si può estendere a un'altra variabile in modo che un vincolo sia soddisfatto, non fa parte di nessuna soluzione
Queste valutazioni si possono eliminare
Da dove?
Si rende esplicito il fatto che una valutazione parziale non fa parte di nessuna soluzione
Viene realizzato facendo in modo che la valutazione parziale violi un vincolo
Si assume che ogni insieme di variabili abbia un vincolo
Se una valutazione di S\{x} non fa parte di una soluzione, si può eliminare dal vincolo sulle variabili S\{x}
Se questo vincolo non esiste, si assume quello sempre soddisfatto
Dopo l'eliminazione, non è più un vincolo soddisfatto da tutte le valutazioni
Questo significa che la propagazione può creare vincoli nuovi
Path consistency su vincoli binari: ogni valutazione consistente di due variabili si può estendere ad una terza in modo che i vincoli binari siano soddisfatti
Nella figura sono evidenziati i vincoli che devono essere soddisfatti: Cxz e Cyz
Due vincoli con una variabile in comune
Ogni valutazione a tutte le variabili tranne quella si può estendre a quella in modo che i due vincoli siano soddisfatti
Path consistency relazionale: stessa definizione, con due vincoli qualsiasi e una variabile comune ad essi
Relational path consistency è fra due vincoli e una variabile comune ad essi
Due vincoli sono relazionalmente path consistent con la variabile se ogni assegnamento consistente a tutte le altre variabili dei due vincoli si può estendere alla variabile in modo che i due vincoli siano soddisfatti
Consistenza path-relazionale di C e D con x
Se una valutazione delle tre variabili in colonna a sinistra soddisfa i vincoli relativi (E, F ed H),
allora questa valutazione si può estendre con un valore di x in modo tale che C e D siano soddisfatti
La condizione si estende a più vincoli
Un insieme di m vincoli è relazionalmente
m-consistente con una variabile che si trova nello scope di
tutti loro se:
ogni assegnamento consistente alle altre loro variabili si
può estendere all'altra in modo che tutti i vincoli
siano soddisfatti
Un insieme di m vincoli è m-relazionalmente consistente se lo è rispetto ad ogni possibile variabile nello scope di tutti loro
Un problema è m-relazionalmente consistente se lo è ogni suo sottoinsieme di m vincoli
Un problema è fortemente relazionalmente m-consistente se è relazionalmente k-consistente per ogni k<m
Esiste anche una versione direzionale della consistenza relazionale
Relational directional arc consistency: la variabile a cui si deve estendere l'assegnamento è l'ultima variabile dello scope del vincolo
Se un problema è fortemente m-relational consistent e i domini hanno tutti cardinalità ≤m allora è consistente
Si dimostra facendo vedere che ogni valutazione a k variabili si può estendere ad un'altra variabile
Questo si dimostra per contraddizione
Considero una valutazione x1=a1,...,xk=ak
Assumo che non si possa estendere in nessun modo ad y
Se Dy={a1,...,am}, allora queste valutazioni sono inconsistenti:
x1=a1,...,xk=ak,y=a1 |
x1=a1,...,xk=ak,y=a2 |
... |
x1=a1,...,xk=ak,y=am |
Quindi, ognuna di queste viola un vincolo
Questi sono m vincoli violati (alcuni possono coincidere, per cui sono in effetti al più m vincoli violati)
Quindi, non c'è modo di estendere una valutazione ad un'altra variabile in modo da soddisfare m vincoli
Questo contraddice la assunzione di m-consistenza
Misura dei vincoli (invece che dei domini)
Un vincolo è m-stretto se ogni valutazione di tutte le sue variabili tranne una si può estendere all'altra variabile in modo che il vincolo sia soddisfatto:
Se tutti i vincoli di un problema sono m-stretti e il problema è fortemente relazionalmente m+1-consistente, allora è consistente