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
varcontient au moins une valeur satisfaisant la contrainte.
Retourne: Trues’il existe au moins une valeur satisfaisant la contrainte.
ContrainteAvecPropagation.est_valide(var, val)¶Teste si la contrainte est valide quand la variable
var(soitvar1, soitvar2) prend la valeurval.La contrainte unaire est respectée si l’opérateur appliqué aux opérandes
val, var2.val(lorsquevarestvar1) ouvar1.val, val(lorsquevarestvar2) retourneTrue.
Retourne: Truesi 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: Truesi 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: Truesi 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'.
-