OUTILS MATHÉMATIQUES REGLES D’INFERENCE Modus Ponens : [P & (P ⇒ Q)] → Q Modus Tollens : [¬Q & (P ⇒ Q)] → ¬P Addition : [P] → P ∨ Q Simplification : [P ∧ Q] → P Syllogisme par hypothèse : [(P ⇒ Q) & (Q ⇒ R)] → (Q ⇒ R) Syllogisme disjonctif : [(P ∨ Q) & ¬P] → Q Conjonction : [P & Q] → P ∧ Q Dilemme constructif : [(P ⇒ Q) ∧ (R ⇒ S) & (P ∨ R)] → (Q ∨ S) Instantiation universelle : [∀ x , P(x)] → P(c) Généralisation universelle : [P(.)] → ∀ x , P(x) Instantiation existentielle : [∃ x , P(x)] → P(c) Généralisation existentielle : [P(c)] → ∃ x , P(x) RELATION DANS UN ENSEMBLE Propriétés d’une relation : Réflexive : x ℛ x Transitive : (x ℛ y) ∧ (y ℛ z) ⇒ x ℛ z Symétrique : x ℛ y ⇒ y ℛ x Antisymétrique : (x ℛ y) ∧ (y ℛ x) ⇒ x = y Relation d’équivalence : Une relation dans un ensemble A est une relation d’équivalence si elle est réflexive, symétrique et transitive. Classe d’équivalence : [x]ℛ = {y , x ℛ y} [a]ℛ = [b]ℛ ⇔ a ℛ b ⇔[a]ℛ ∩ [b]ℛ ≠ ∅ Relation d’ordre : Une relation R dans un ensemble S est appelée une relation de préordre ou d’ordre partiel si elle est réflexive, antisymétrique et transitive. Ordre total : Si (S, ≼) est un ensemble partiellement ordonné et que tous les deux éléments quelconques de S sont comparables, alors S est appelé un ensemble totalement ordonné et ≼, un ordre total. Un ensemble totalement ordonné est également appelé une chaîne. FONCTIONS Fonction injective : f(x) = f(y) ⇒ x = y ou x ≠ y ⇒ f(x) = f(y) Fonction surjective : ∀ b, ∃ a, b = f(a) Fonction bijective : injective & surjective Cardinalité : Les ensembles A et B sont de même cardinalité si et seulement si il existe une bijection de A dans B. Suites : Progression géométrique : a, a⋅r, a.r² ... n ∑ ar j = a(n + 1) si r = 1 j=0 n n+1 ∑ ar j = a r r−1−1 sinon j=0 Comportement asymptotique f = O(g) : pour x assez grand, |f(x)| ≤C|g(x)| Mult. scalaire : si f = O(g), alors a⋅f = O(g) Addition : si f = O(h) et g = O(h), alors f+g = O(h) Transitivité : si f = O(g) et g = O(h), alors f = O(h) Produit et somme : Si f1 = O(g1), f2 = O(g2), f1⋅f2 = O(g1⋅g2) f1 + f2 = O(max(g1 , g2)) f ∼ g : f = O(g) et g = O(f) Classement de la complexité : O(1) ⊆ O(logn) ⊆ O(n) ⊆ O(n⋅logn) ⊆ O(n²) ⊆ O(ni) ⊆ O(cn) ⊆ O(n!) (pour i > 2, c > 1) Ensemble totalement ordonné Un ensemble totalement ordonné (S, R) est bien ordonné si et seulement si tout sous-ensemble de S a un plus petit élément. INDUCTION MATHÉMATIQUE Premier principe de l’induction : [P(0) & ∀ n, P(n) ⇒ P(n+1) ] → ∀ n, P(n) Principe généralisé : [P(0) & (∀ n, P(0) ∧ … ∧ P(n) ⇒ P(n+1)) ] → ∀ n, P(n) RÉCURSIVITÉ ET ITÉRATION ÉTAPE DE BASE: On précise la valeur de la fonction en zéro. ÉTAPE INDUCTIVE: On donne la règle pour trouver la valeur de la fonction pour de nouveaux entiers à partir de la valeur de la fonction pour des entiers plus petits. FERMETURE D’UNE RELATION ℛ relation, admet ou non la propriété P S relation qui admet P, qui contient ℛ, telle que S est un sous-ensemble de chaque relation avec la propriété P qui contient ℛ. Alors S : fermeture ou clôture convenable de ℛ par rapport à P. COMPOSITION DE RELATIONS Produit booléen : Soit A = [ai,j] une matrice booléenne m×k et B= [bi,j] une matrice booléenne k×n. Alors, le produit booléen de A par B, symbolisé par A⊙B, est la matrice m×n avec comme (i, j)-ième élément[ci,j], où ci,j= (ai,1∧b1,j)∨(ai,2∧b2,j)∨...∨(ai,k∧bk,j) Note : MS∘R = MR ⊙ MS Disjonction booléenne : Soit A = [ai,j] et B = [bi,j] les matrices booléennes m×n. Alors, la disjonction booléenne de A et de B, symbolisée par A∨B, est la matrice booléenne m×n avec comme (i, j)-ième élément ai,j∨bi,j Propriété des relations transitives : Une relation ℛ dans un ensemble A est transitive si et seulement si ℛn⊆ ℛ pour n > 0. Relation de connexité : Soit ℛ une relation dans un ensemble A. La relation de connexité ℛ∗ est constituée des couples (a, b) de telle sorte qu’il existe un chemin entre a et b dans ℛ. La fermeture transitive d’une relation ℛ est égale à la relation de connexité ℛ∗. Si A a n éléments, Mℛ* = Mℛ ∨ Mℛ1 ∨ ... ∨ Mℛn ORDRES Ordre lexicographique (alphabétique et numérique) Diagramme de Hasse Étape 1 : On enlève les boucles dues à la réflexivité Étape 2 : On enlève les arcs dues à la transitivité Étape 3 : On dispose chaque arc pour que son sommet initial se situe en dessous de son sommet final Étape 4 : On retire toutes les flèches sur les arcs orientés puisque tous les arcs pointent vers le haut THÉORIE DES GRAPHES TERMINOLOGIE DES GRAPHES Degré d’un sommet : nombre d’arcs incidents à ce sommets (une boucle contribue deux fois) Sommet isolé : degré 0 / Sommet pendant : degré 1 THÉORÈME DES POIGNÉES DE MAIN G = (V,E) avec e arcs 2⋅e = ∑ deg(v) v εV Corollaire : Un graphe non-orienté a un nombre pair de sommets de degré Degré intérieur : deg-(v) = nombre d’arcs qui ont v comme extrémité finale Degré extérieur : deg+(v) = nombre d’arcs qui ont v comme initiale ∑ deg − (v) = v εV ∑ deg + (v) = |E| v εV DÉFINITIONS Graphe complet : graphe simple, exactement un arc entre chaque paire de sommets distincts Graphe biparti : l’ensemble V de ses sommets peut être partitionné en deux ensembles non vides et disjoints V1 et V2 de telle façon que chaque arc du graphe relie un sommet de V1 à un sommet de V2. Graphe biparti complet : Le graphe biparti complet Km,n est un graphe dont l’ensemble des sommets est partitionné en deux sous-ensembles qui ont respectivement m et n sommets. Il y a un arc entre deux sommets si et seulement si un sommet est dans le premier sous ensemble et que l’autre sommet est dans le second sous-ensemble. Graphe régulier : tous les sommets sont de même degré REPRÉSENTATION DES GRAPHES Liste d’adjacence : Matrice d’adjacence : Matrice d’incidence : Tri topologique Relation d’ordre total à partir d’une relation de préordre triTopo (S: ensemble partiellement ordonné fini) : |k=1 | Tant Que S ≠ ∅ | | ak = elt_minimal(S) | | S = S − {ak} | | k = k+1 | Retourne {a1, a2, …} Isomorphisme de graphes : Même nombre de sommets Même nombre d’arcs Même degré pour les sommets PARCOURS DE GRAPHES Chaîne simple : ne passe pas deux fois par le même arc Connexité : un arc entre chaques sommets distincts Un graphe non-connexe est l’union de sous-graphes connexes. Il existe une chaîne simple entre n’importe quelle paire de sommets distincts d’un graphe non orienté connexe. Un sommet est appelé un point de coupure ou point d’articulation si le retrait de ce sommet et de tous les arcs incidents à ce sommet conduit à former un sous-graphe ayant plus de composantes connexes que le graphe initial. Un arc est appelé un séparateur ou un pont si le retrait de cet arc conduit à former un sous-graphe ayant plus de composantes connexes que le graphe initial. Un graphe orienté est fortement connexe si, pour tout couple de sommets (a, b) du graphe, il existe un chemin de a à b et de b à a. Un graphe orienté est faiblement connexe s’il existe une chaîne entre n’importe quelle paire de sommets dans le graphe non orienté sous-jacent. Existence d’un cycle simple de longueur k : invariant pour l’isomorphisme. Dénombrement des chemins : nombre de chemins différents de longueur p de vi à vj : [Ap]i,j, A matrice d’adjacence. Chaînes et cycles particuliers Chaîne/cycle eulérien : chaîne/cycle simple contenant tous les arcs du graphe. Chaîne/cycle hamiltonien : chaîne/cycle simple passant par tous les sommets du graphe une seule fois. Graphe connexe eulérien : contient un cycle eulérien (ssi chacun de ses sommets est de degré pair). Un multigraphe admet une chaîne eulérienne ssi exactement deux sommets de degré impair. Existence de cycle hamiltonien : (CN) Pas de sommet de degré 1. Si un sommet de degré 2, les deux arcs incidents appartiennent au cycle. (CS) Graphe simple connexe avec n ≥ 3 sommets, degré de chaque sommet ≥ n/2. ARBRES Arbre m-aire : chaque sommet a au plus m fils. Un arbre à n sommets comporte n-1 arcs. Un arbre m-aire complet ayant : > n sommets comporte i = n−1 sommets internes et m l= n(m−1)+1 m PARCOURS D’ARBRES Parcours préfixe : Sommet → Fils a-b-e-j-k-n-o-p-f-c-d-g-l-m-h-i Parcours postfixe : Fils → Sommet j-n-o-p-k-e-f-b-c-l-m-g-h-i-d-a Parcours infixe : Fils gauche → Sommet → Fils droites j-e-n-k-o-p-b-f-a-c-l-g-m-d-h DÉNOMBREMENT Nombre de r-permutations (ordonnées) dans un ensemble de n éléments distincts : n! P (n, r) = (n−r)! Conversion toujours possible entre une machine de Moore et de Mealy AUTOMATES À ÉTATS FINIS SANS SORTIE Fermeture de Kleene de A : A * = +∞ Ak ∪ k=0 Automate fini M = (S, I, f, s0, F) où : S ensemble fini d’états, s0 : état initial Nombre de r-combinaisons (non ordonnées) dans un I alphabet d’entrée fini f : S×I → S fonction de transition ensemble de n éléments distincts : n! F : sous-ensemble de S d’états finaux C (n, r) = r!(n−r)! = (nr ) Chaîne reconnue si elle fait passer de s0 à un état final Rq : C(n+ 1, k) = C(n, k−1) + C(n, k) (pour un AFN : si un état final inclus dans les sorties) Suites récurrentes linéaires : Langage reconnu L(M) : ensemble des chaînes un+2 = k1⋅un+1+k0⋅un | (EC) r² - k1⋅r - k0 = 0 reconnues n n Si r1, r2 deux racines distinctes : un = a1⋅r1 + a2⋅r2 Automates équivalents : reconnaissent le même langage (généralisable pour k racines distinctes) Automate fini non-déterministe : Si r0 racine double : un = (a1+ a2⋅n)⋅r0n THÉORIE DES LANGAGES TYPES DE GRAMMAIRES Grammaire syntagmatique : G = (V,T,S,P) où : V : Vocabulaire (ensemble des symboles), T : Symboles terminaux, S : Symbole de départ, P : Productions Automate fini déterministe : (0 : généralisée - 1 : contextuelle - 2 : algébrique ou hors-contexte - 3 : régulière) Langage : L(G) = { w∈T∗ | S➩w} MACHINE À ÉTATS FINIS Machine de Mealy M = (S, I, O, f, g, s0) où : S : ensemble fini d’états, s0 : état initial I alphabet d’entrée fini, O alphabet de sortie fini f : S×I → S fonction de transition qui attribue un nouvel état à chaque couple (état,entrée) g : S×I → O fonction de sortie qui attribue une sortie à chaque couple (état, entrée) feuilles > i sommets internes comporte n = m · i + 1 sommets Machine de Moore M = (S, I, O, f, g, s ) où : 0 et l = i(m − 1) + 1 feuilles S ensemble fini d’états, s0 : état initial l−1 > l feuilles comporte n = m·l−1 sommets et i = m−1 I alphabet d’entrée fini, O alphabet de sortie fini m−1 sommets internes f : S×I → S fonction de transition qui attribue un nouvel Au plus mh feuilles dans un arbre m-aire de hauteur h. état à chaque couple (état,entrée) Si un arbre m-aire de hauteur h comporte l feuilles, alors g : S → O fonction de sortie qui attribue une sortie à h≥⌈logml⌉. Si l’arbre m-aire est complet et équilibré, alors chaque état h=⌈logml⌉ Déterminisation : Pour tout AFN M0 défini sur S, il existe un AFD M1 équivalent à M0. Si M0 a n états, alors M1 a au plus 2n états. GRAMMAIRES RÉGULIÈRES Les expressions régulières dans un ensemble I sont définies récursivement comme suit : Le symbole ∅ est une expression régulière, Le symbole ε est une expression régulière Le symbole x est une expression régulière pour tout x ∈ I Si A et B sont des expressions régulières, alors (A.B) , (A∪B) et A∗ sont des expressions régulières. Les expressions régulières dénotent des ensembles appelés ensembles réguliers. Théorème de Kleene : Un ensemble est régulier ssi cet ensemble est reconnu par un automate fini. Théorème : Un ensemble est généré par une grammaire régulière si et seulement s’il constitue un ensemble régulier. LEMME DE POMPAGE Soit L un langage régulier reconnu par un automate à p états. Soit z un mot de L de longueur ≥ p. Alors z se factorise en z = u.v.w, où : |u.v| ≤ p , v ≠ ε (variante : |v| ≤ p , v ≠ ε) Pour tout i ≥ 0, on a u.vi.w ∈ L.