Documentation du code

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

Modélisation d’une variable dans un système de contraintes.

__init__(nom, domaine, val=None)
Paramètres:
  • nom (str) – nom de la variable.
  • domaine (list) – le domaine de définition de la variable.
  • val – valeur de départ.
taille_domaine()

La taille du domaine de définition de la variable.

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

Bases: object

Modélisation d’une contrainte abstraite.

Contrainte.__init__(variables)
Paramètres:variables (list) – les variables concernées par la contrainte.
Contrainte.dimension()
Retourne:le nombre de variables concernées par la contrainte.
Contrainte.est_valide()

Teste si la contrainte est respectée par les valeurs actuelles.

Retourne:True si la contrainte est valide.
class moteur_psc.contrainte.ContrainteBinaire(var1, var2, op)

Bases: moteur_psc.contrainte.Contrainte

Contrainte imposant une restriction sur deux variables.

Exemple: x > y.

ContrainteBinaire.__init__(var1, var2, op)

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

Paramètres:
  • var1 – première variable concernée par la contrainte.
  • var2 – deuxième variable concernée par la contrainte.
  • op – fonction ou expression lambda permettant de vérifier la contrainte.
ContrainteBinaire.dimension()
Retourne:le nombre de variables concernées par la contrainte.
ContrainteBinaire.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.
ContrainteBinaire.est_valide(var, val)

Teste si la contrainte est valide quand la variable var (soit var1, soit var2) prend la valeur val.

La contrainte unaire est respectée si l’opérateur appliqué aux opérandes val, var2.val (lorsque var est var1) ou var1.val, val (lorsque var est var2) retourne True.

Retourne:True si la contrainte est valide.
ContrainteBinaire.reviser()

Algorithme de révision des domaines.

Pour chaque variable, vérifie chaque valeur du domaine. Supprime les valeurs qui empêchent la contrainte d’être satisfaite dans le domaine.

Retourne:True si un des domaines a été modifié.
class moteur_psc.contrainte.ContrainteUnaire(var, op)

Bases: moteur_psc.contrainte.Contrainte

Contrainte imposant une restriction sur la valeur d’une variable.

Exemples: x > 0, y = 5.

ContrainteUnaire.__init__(var, op)

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

Paramètres:
  • var – variable concernée par la contrainte.
  • op – fonction ou expression lambda permettant de vérifier la contrainte.
ContrainteUnaire.dimension()
Retourne:le nombre de variables concernées par la contrainte.
ContrainteUnaire.est_valide(val)

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

La contrainte unaire est respectée si l’opérateur appliqué à l’opérande val retourne True.

Retourne:True si la contrainte est valide.