Documentation du code

class moteur_psc_heuristique.variable_avec_label.VariableAvecLabel(nom, domaine, val=None)

Bases: moteur_psc.variable.Variable

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

VariableAvecLabel.__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.
VariableAvecLabel.taille_domaine()

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

Retourne:la taille du domaine.
class moteur_psc_heuristique.contrainte_avec_propagation.ContrainteAvecPropagation(var1, var2, op)

Bases: moteur_psc.contrainte.ContrainteBinaire

Contrainte imposant une restriction sur deux variables avec la méthode propage.

Exemple: x > y.

ContrainteAvecPropagation.__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.
ContrainteAvecPropagation.dimension()
Retourne:le nombre de variables concernées par la contrainte.
ContrainteAvecPropagation.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.
ContrainteAvecPropagation.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.
ContrainteAvecPropagation.propage(var)

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

Paramètres:var – la variable fixée.
Retourne:True si la contrainte est toujours satisfaisable avec la valeur fixée.
ContrainteAvecPropagation.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 sudoku.Sudoku(grille, taille=9, sous_taille=3)

Représentation et résolution d’une grille de Sudoku.

__init__(grille, taille=9, sous_taille=3)
Paramètres:
  • taille – taille de la grille de Sudoku.
  • sous_taille – taille des sous-grilles du problème.
__repr__()

Convertit les variables du problème en grille à afficher.

genere_contraintes()

Génère toutes les contraintes d’une grille de Sudoku.

resoudre(methode)

Lance l’algorithme de résolution choisi sur la grille.

Paramètres:methode – méthode de résolution: 'forward_checking' ou 'backtracking'.