suivant: Implémentation et expérimentations
monter: Fermeture d'une instance
précédent: Filtrage d'une instance complète
Table des matières
Calcul de la fermeture avec filtrage à la volée
Dans leur étude du problème de conformation moléculaire, Crippen et Havel [4], utilisent
une méthode nommée bound-smoothing qui réalise cette opération de fermeture.
Pour chaque arète du graphe, l'algorithme parcours tous les triangles du graphe contenant cette arète,
en mettant à jour les bornes du domaine de sa longueur.
C'est une modification de l'algorithme du plus court
chemin pour tout couple de sommets de Floyd qui a une complexité en temps de
.
Une preuve et une analyse de cet algorithme se trouve dans le livre de Cormen, Leiserson
et Rivest [18].
Notre idée est d'incorporer au traitement d'une arète,
le filtrage des coordonnées de ses extrémités, en projetant simplement chacun des domaines
sur la contrainte liée à cette arête.
L'algorithme ci-dessous réalise cette opération de fermeture en filtrant à la volée les domaines des variables.
L'opération de projection se faisant en temps linéaire de la dimension de l'espace de travail,
),
l'algorithme de fermeture-filtrage a une complexité en temps de
.
Algorithme abstrait :
procedure CLOSE-FILTER(
)
pour k
1 à
faire
pour j
1 à
faire
pour i
1 à
faire
si
alors
si
alors
sinon si
alors
si
alors Erreur
FILTER-DOMAINS(
)
finpour
finpour
finpour
retourner
La fonction FILTER-DOMAINS(
) utilise la contrainte
de la forme :
pour les filtrer les domaines
des coordonnées des points
et
en faisant une projection des domaines :
La dimension de l'espace de travail étant en général très petit pour de nombreuses
applications, on peut considérer que le filtrage des domaines est en temps constant.
Sous-sections
suivant: Implémentation et expérimentations
monter: Fermeture d'une instance
précédent: Filtrage d'une instance complète
Table des matières
Heikel Batnini
2002-10-22