29.01.2015 Views

Raisonemment temporelle - PRIMA

Raisonemment temporelle - PRIMA

Raisonemment temporelle - PRIMA

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Programmation des Systèmes Experts<br />

James L. Crowley<br />

Deuxième Année ENSIMAG Troisième Bimestre 2001/2002<br />

Séance 8 : 18 mars 2002<br />

La Logique Temporelle d'Allen<br />

Le système d'Allen :...................................................................2<br />

Les Rélations...........................................................................3<br />

l'Incertain :.............................................................................4<br />

Table de Transitivité................................................................5<br />

Propagation de Contraintes.......................................................6<br />

Les intervalles de référence :....................................................8<br />

Exemples................................................................................9<br />

Buts :<br />

Voir une technique de raisonnement pratique dérivée d'une analyse formelle.<br />

Voir une technique de représentation de l'incertain.<br />

Voir une technique de réduction de la complexité par décomposition hiérarchique.


La Logique Termporelle d'Allen Séance 8<br />

Le système d'Allen :<br />

Les buts du système:<br />

1) Exprimer la connaissance relative et imprécise.<br />

2) Permettre l'incertitude (expression des contraintes).<br />

3) Supporter le raisonnement dans des échelles variables<br />

4) Supporter la persistance (raisonnement par défaut).<br />

(ex : si j'ai garé ce matin ma voiture dans le parking,<br />

elle doit toujours être là, même si on ne peut le prouver).<br />

Dans le système d'Allen le temps est représenté par des intervalles :<br />

Intervalle : Un ensemble T = {t} ordonné de points tel que<br />

(∃ t- ) ( ∀ t ∈ T ) ( t- < t) et<br />

(∃ t+) ( ∀ t ∈ T ) ( t+ > t)<br />

la paire t-, t+ sont des points limites ("end-points").<br />

Il y a 13 relations qui peuvent être définies entre deux intervalles.<br />

Il y a 7 relations de base, et leurs inverses :<br />

8-2


La Logique Termporelle d'Allen Séance 8<br />

Les Rélations<br />

Pour les intervalles t et s, les 7 relations de base sont :<br />

nom anglais notation Schéma définition<br />

égal equal t = s |-t-| (t- = s-) ^ (t+ = s+)<br />

|-s-|<br />

avant before t < s |-t-| t+ < s-<br />

|-s-|<br />

recouvrement overlap t o s |-t-| (t- < s-) ^ (t+ > s-) ^ (t+ < s+)<br />

|-s-|<br />

rencontre meets t m s |-t-| t+ = s-<br />

|-s-|<br />

pendant during t d s |-t-| (t- > s-) ^ (t+ < s+)<br />

|---s---|<br />

départ starts t s s |-t-| (t- = s-) ^ (t+ < s+)<br />

|---s---|<br />

fin finishes t f s |-t-| (t- > s-) ^ (t+ = s+)<br />

|---s---|<br />

8-3


La Logique Termporelle d'Allen Séance 8<br />

Les relations inverses sont notées :<br />

Relation Inverse<br />

t < s<br />

t > s<br />

t = s t = s (Nota : = est symétrique)<br />

t o s<br />

t oi s<br />

t m s<br />

t mi s<br />

t d s<br />

t di s<br />

t s s<br />

t si s<br />

t f s<br />

t fi s<br />

Les relations entre des intervalles sont représentées par un réseau de symboles.<br />

Les flèches entre les intervalles sont étiquetées par la liste des relations possibles.<br />

Il est possible de simplifier par remplacant pendant, départ et fin<br />

par une relation "dur"<br />

et de remplacer leur inverses par<br />

pendant inverse, départ inverse et fin inverse par "cont"<br />

l'Incertain :<br />

L'utilisation d'une liste permet de gérer l'incertitude par des contraintes.<br />

Exemples :<br />

t1 d t2 t1 --(d)--> t2<br />

(t1 d t2) ou (t2 d t1) ou (t1 < t2) t1 --(d, di, < )--> t2<br />

(t1 < t2) ou (t1 < t2) ou (t1 m t2) t1 --(, m )--> t2<br />

Quand un nouvel intervalle est introduit dans le réseau, toutes ses conséquences<br />

sont calculées par propagation des contraintes par transitivité :<br />

par exemple, soit :<br />

B ---( C<br />

^ ^<br />

( d ) ( d )<br />

| |<br />

A D<br />

on a tout de suite A --(< )--> D<br />

8-4


La Logique Termporelle d'Allen Séance 8<br />

Table de Transitivité<br />

La propagation est définie par un tableau 12 x 12 des relations de "transitivité".<br />

(= est omis).<br />

exemple : pour (A < B) et (B C)<br />

(B C) Contrainte sur (B C)<br />

(A < B) ( B < C) ( C) No Info<br />

(A < B) ( B d C) (< o m d s)<br />

(A < B) ( B di C) (< )<br />

(A < B) ( B o C) (< )<br />

(A < B) ( B oi C) (< o m d s)<br />

(A < B) ( B m C) (< )<br />

(A < B) ( B mi C) (< o m d s)<br />

(A < B) ( B s C) (< )<br />

(A < B) ( B si C) (< )<br />

(A < B) ( B f C) (< o m d s)<br />

(A < B) ( B fi C) (


La Logique Termporelle d'Allen Séance 8<br />

Pour K intervalles, on peut voir le reseau comme une tableau de K x K relations.<br />

Chaque entre du tableau est la liste de relations d'intervalle i vers intervalle j.<br />

1<br />

1<br />

j<br />

K<br />

i<br />

R ij<br />

K<br />

L'affirmation d'un nouveau relation permet de reduire les listes de relations<br />

possible.<br />

Par exemple, s'il est affirmé que les relations possible entre i et j est la liste<br />

NewR ij , on remplace R ij par NewR ij .<br />

Ceci impose les nouveau contraints sur R ik.<br />

Soient A --(R Ax )--> x --(R xC )--> C<br />

Relations Possible de A--(R AC )--> C<br />

Constraint ( Intervalle A, Intervalle C)<br />

R AC


La Logique Termporelle d'Allen Séance 8<br />

Pour le réduire, Allen applique une structure hiérarchique sur les intervalles.<br />

Les intervalles de référence :<br />

Un intervalle de référence est un "ensemble" d' intervalles<br />

tel que les relations avec les autres "ensembles" sont complètement déterminées.<br />

Il s'agit d'une hiérarchie d' intervalles.<br />

Notation :<br />

A(Ri) : intervalle A appartient à l' intervalle de référence Ri.<br />

Les relations sont aussi codées.<br />

Exemple :<br />

R 31<br />

(d, s, f) (d, s, f)<br />

R 21 (R 31 ) (m) R 22 (R 31 )<br />

(d, s, f)<br />

(d, s, f)<br />

(d, s, f)<br />

(d, s, f)<br />

R 11 (R 21 )<br />

(m)<br />

R 12 (R 21 )<br />

R 13 (R 22 ) (m) R 14 (R 22 )<br />

Si deux intervalles ne sont pas liés directement, il suffit de parcourir le graphe pour<br />

chercher un chemin entre eux.<br />

8-7


La Logique Termporelle d'Allen Séance 8<br />

Exemples<br />

1) : Soient les relations suivantes dans une logique de relations <strong>temporelle</strong>s<br />

Événement A rencontre événement B : (A m B)<br />

Événement B rencontre événement C : (B m C)<br />

Événement D est après événement A : (D > A)<br />

Événement D est avant événement C : (D < C)<br />

a) Quelles sont les relations possibles entre D et B obtenues par transitivité avec A<br />

T( D > A, A m B) = ( d, f, oi, mi, >)<br />

b) Quelles sont les relations possibles entre D et B obtenues par transitivité avec C<br />

T(D < C, C mi B) = (


La Logique Termporelle d'Allen Séance 8<br />

(progn$ (e r1)<br />

(if (not (member e r2)) then (bind r2 (insert$ r2 1 e))))<br />

(return r2)<br />

)<br />

(deffunction INTERSECTION (r1 r2)<br />

(bind r3 (create$))<br />

(progn$ (e r1)<br />

(if (member e r2) then (bind r3 (insert$ r3 1 e)) ))<br />

(return r3)<br />

)<br />

Soit trois intervalles A, B et C et une liste de relations possibles RAB entre A<br />

et B et une liste de relations possibles RBC entre B et C. La génération de la<br />

liste de relations entre A et C peut se faire avec trois règles : R1, R2 et R3.<br />

a) Pour chaque couple de relations (rab, rbc) tel que rab ∈ RAB et rbc ∈<br />

RBC, la règle R1 génère un fact de type X en utilisant la table de transitivité.<br />

Ecrire la règle R1.<br />

b) Quand il existe deux facts de type X avec la même valeur pour int1 et int2, mais<br />

ayant les noms différents il faut les combiner. Ecrire la règle R2 qui effectue cette<br />

combinaison. (aide : supprimer les deux facts et créer un nouveau fact de type X<br />

avec une liste de relations qui est l'UNION des relations des deux facts)<br />

c) (Une fois que tous les facts de type X sont combinés, il faut recopier la liste de<br />

RELATIONS dans un fact de type RELATIONS et supprimer le fact de type X.<br />

Ecrire la règle R3 qui effectue cette opération. (aide : assurez-vous que R2 a fini<br />

de générer tous les facts de type X avant que R3 s'exécute. )<br />

d) Ecrire la règle R4 qui détecte quand deux listes de relations sont générées pour<br />

une paire d'intervalles. Cette règle doit supprimer les deux facts de type<br />

RELATIONS et créer un nouveau fact de type RELATIONS qui contient<br />

l'intersection des listes de relations.<br />

8-9

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

Saved successfully!

Ooh no, something went wrong!