Documentation du code¶
Fonctions utilitaires pour gérer des propositions sans ou avec variables dans un moteur d’inférence.
-
moteur_avec_variables.proposition_avec_variables.corps(proposition)¶ Coupe la proposition courante et retourne la portion située après le premier élément.
A noter que dans le cas d’une proposition atomique, la méthode soulève une exception.
Paramètres: proposition – une proposition. Retourne: le corps de la proposition composée.
-
moteur_avec_variables.proposition_avec_variables.est_atomique(proposition)¶ Vérifie si la proposition courante est un atome (c’est le cas s’il s’agit d’un string).
Paramètres: proposition – une proposition. Retourne: Truesi la proposition est de type string.
-
moteur_avec_variables.proposition_avec_variables.est_une_variable(proposition, marqueur='?')¶ Vérifie si la proposition courante est une variable (c’est le cas s’il s’agit d’un atome dont la description commence par le marqueur de variables).
Paramètres: - proposition – une proposition.
- marqueur – marqueur de variable avec valeur par défaut :
'?'.
Retourne: Truesi l’argument est un atome et commence par le marqueur de variables.
-
moteur_avec_variables.proposition_avec_variables.lister_variables(proposition)¶ Retourne un ensemble (de type
set) contenant les variables mentionnées dans la proposition courante.Paramètres: proposition – une proposition. Retourne: la liste des variables apparaissant dans la proposition.
-
moteur_avec_variables.proposition_avec_variables.tete(proposition)¶ Coupe la proposition courante et retourne son premier élément.
A noter que dans le cas d’une proposition atomique, la méthode soulève une exception.
Paramètres: proposition – une proposition. Retourne: la tête de la proposition composée.
-
class
moteur_avec_variables.regle_avec_variables.RegleAvecVariables(conditions, conclusion)¶ Représentation d’une règle d’inférence pour le chaînage avec variables.
-
__init__(conditions, conclusion)¶ Construit une règle étant donné une liste de conditions et une conclusion.
Paramètres: - conditions (list) – une collection de propositions (pouvant contenir des variables) nécessaires à déclencher la règle.
- conclusion – la proposition (pouvant contenir des variables) résultant du déclenchement de la règle.
-
__repr__()¶ Représentation d’une règle sous forme de string.
-
depend_de(fait, methode)¶ Vérifie qu’un fait fait partie, sous réserve de substitution, des conditions de la règle.
Paramètres: - fait – un fait qui doit faire partie des conditions de déclenchement.
- methode –
FiltreouUnificateur, détermine le type de pattern match à appliquer.
Retourne: un dictionnaire qui attribue un environnement à chaque condition qui peut être satisfaite par le fait pasée en paramètre.
Falsesi aucune condition n’est satisfaite par le fait.
-
satisfaite_par(faits, cond, env, methode)¶ Vérifie que des faits suffisent, sous réserve de substitution, à déclencher la règle.
Paramètres: - faits (list) – une liste de faits.
- cond – la condition qui a donné lieu à
envpar le pattern match. - env (dict) – un environnement de départ déjà établi par
depend_de. - methode –
FiltreouUnificateur, détermine le type de pattern match à appliquer.
Retourne: une liste d’environnements qui correspondent à toutes les substitutions possibles entre les conditions de la règle et les propositions. On retourne une liste vide si au moins une condition ne peut être satisfaite.
-
-
class
moteur_avec_variables.filtre.Filtre¶ Classe implémentant les méthodes de filtrage de propositions avec variables.
-
filtre(datum, pattern)¶ Effectue le filtrage entre un datum et un pattern.
Paramètres: - datum – une proposition sans variables.
- pattern – une proposition pouvant contenir des variables.
Retourne: un environnment c’est-à-dire un dictionnaire de substitutions
{variable : valeur}, ou'échec'si le filtrage échoue.
-
pattern_match(datum, pattern, env=None)¶ Effectue le filtrage en tenant compte d’un environnement initial.
Paramètres: - datum – une proposition sans variables.
- pattern – une proposition pouvant contenir des variables.
- env (dict) – l’environnement initial à prendre en compte.
Retourne: un nouvel environnment ou
'échec'.
-
substitue(pattern, env)¶ Effectue des substitutions de variables par leurs valeurs dans un pattern.
Paramètres: - pattern – une proposition dont les variables doivent être remplacées par des valeurs. Une proposition est soit un atome, soit une liste contenant des atomes et / ou d’autre listes.
- env (dict) – un environnment, c’est-à-dire un dictionnaire de substitutions
{variable : valeur}.
Retourne: le pattern dont les variables ont été remplacées par leurs valeurs dans l’environnment.
-
-
class
moteur_avec_variables.unificateur.Unificateur¶ Classe implémentant les méthodes de l’unification de propositions avec variables.
-
pattern_match(prop1, prop2, env=None)¶ Effectue l’unification en tenant compte d’un environnement initial.
Paramètres: - prop1 – une proposition pouvant contenir des variables.
- prop2 – une proposition pouvant contenir des variables.
- env (dict) – l’environnement initial à prendre en compte.
Retourne: un nouvel environnment ou
'échec'.
-
substitue(pattern, env)¶ Effectue des substitutions de variables dans un pattern.
Paramètres: - pattern – une proposition dont les variables doivent être remplacées par d’autres propositions.
- env (dict) – un environnment, c’est-à-dire un dictionnaire de substitutions
{variable : proposition}.
Retourne: le pattern dont les variables ont été remplacées les propositions qui leur sont associées dans l’environnement.
-
unifie(prop1, prop2)¶ Effectue l’unification entre deux propositions.
Paramètres: - prop1 – une proposition pouvant contenir des variables.
- prop2 – une proposition pouvant contenir des variables.
Retourne: un environnment, c’est-à-dire un dictionnaire de substitutions
{variable : proposition}, ou'échec'si l’unification a échoué.
-
-
class
moteur_avec_variables.chainage_avant_avec_variables.ChainageAvantAvecVariables(connaissances, methode=None)¶
Bases: moteur_sans_variables.chainage.Chainage
Un moteur d’inférence à chaînage avant avec variables.
ChainageAvantAvecVariables.__init__(connaissances, methode=None)¶
Paramètres: methode – FiltreouUnificateur, détermine le type de pattern match à appliquer.Filtrepar défaut.
ChainageAvantAvecVariables.affiche_solutions(indent=None)¶Affiche les solutions d’un chaînage après l’appel à
chaine.
Paramètres: indent (str) – l’identation souhaitée au début de chaque ligne (quatre espaces par défaut).
ChainageAvantAvecVariables.affiche_trace(indent=None)¶Affiche la trace d’un chaînage après l’appel à
chaine.
Paramètres: indent (str) – l’identation souhaitée au début de chaque ligne (quatre espaces par défaut).
ChainageAvantAvecVariables.chaine()¶Effectue le chaînage avant sur les faits et les règles contenus dans la base de connaissances.
ChainageAvantAvecVariables.instancie_conclusion(regle, envs)¶Instancie la conclusion d’une règle pour tous les environnements.
Paramètres:
- regle – la règle dont la conclusion doit être instanciée.
- envs (list) – les environnements servant à instancier la conclusion.
Retourne: une liste de propositions correspondant aux différentes instanciations de la conclusion.
ChainageAvantAvecVariables.reinitialise()¶Réinitialise le moteur.
La trace et les solutions sont à nouveau vides après l’appel à cette méthode.