Documentation du code

class psc.variable.Variable(nom, domaine, val=None)

Modelisation d’une variable dans un systeme de contraintes

__init__(nom, domaine, val=None)
Paramètres:
  • nom – nom de la variable
  • domaine (list) – le domain de definition de la variable
  • val – valeur de depart
taille_domaine()

La taille du domaine de definition de la variable

Retourne:la taille du domaine
class psc.contrainte.Contrainte(variables)

Modelisation d’une contrainte (abstraite)

__init__(variables)
Paramètres:variables (list) – les variables concernees par la contrainte
dimension()
Retourne:le nombre de variables concernees par la contrainte
est_valide()

Teste si la contrainte est repectee par les valeurs actuelles

Retourne:True si la contrainte e valide
class psc.contrainte.ContrainteBinaire(x1, x2, op)

Contrainte imposant une restriction sur deux variables

Exemple: x > y

__init__(x1, x2, op)

Exemples d’op: lambda x,y: x != y, lambda x,y: x < y

Paramètres:
  • x1 – premiere variable concernee par la contrainte
  • x2 – deuxieme variable concernee par la contrainte
  • op – fonction ou lambda expression permettant de verifier la contrainte
est_possible(var)

Teste si le domaine de var contient au moins une valeur satisfaisant la contrainte

Retourne:True s’il existe au moins une valeur satisfaisant la contrainte
est_valide(var, val)

Teste si la contrainte est valide quand la variable var (une de x1 ou x2) prend la valeur val

Note:La contrainte unaire est respectee si l’operateur applique aux operands val, x2.val (si var est x1) ou x1.val, val (si var est x2) retourne True
Retourne:True si la contrainte e valide
propage(var)

Propage l’assignation d’une variable au label de la seconde.

Paramètres:var – la variable fixee
Retourne:True si la contrainte est toujours satisfiable avec la valeur fixee
reviser()

Algorithme de revision des domaines

Pour chaque variable, verifie chaque valeur du domaine. Supprime les valeurs qui empechent la contrainte d’etre satisfaite du domaine. (cf: Algorithme de Waltz et REVISER dans le livre du cours)

Retourne:True si un des domaines a ete modifie
class psc.contrainte.ContrainteUnaire(var, op)

Contrainte imposant une restriction sur la valeur d’une variable

Exemples: x > 0, y = 5, etc.

__init__(var, op)

Exemples d’op: lambda x: x > 5, lambda x: x > 5 and x < 10

Paramètres:
  • var – variable concernee par la contrainte
  • op – fonction ou lambda expression permettant de verifier la contrainte
est_valide(val)

Teste si la contrainte est valide quand la variable var prend la valeur val

Note:La contrainte unaire est respectee si l’operateur applique au operand val retourne True
Retourne:True si la contrainte e valide