Une introduction aux (semi-)groupes d'automate - Cours d'informatique

Une introduction aux (semi-)groupes d'automate - Cours d'informatique - Revenir à l'accueil

 

Voir également :

[TXT]

 Cours-Interconnexion..> 03-Jan-2015 15:15  3.0M  

[TXT]

 Intelligence-Artific..> 03-Jan-2015 15:16  2.5M  

[TXT]

 Lecture1_Linear_SVM_..> 03-Jan-2015 14:57  2.4M  

[TXT]

 Lecture2_Linear_SVM_..> 03-Jan-2015 14:56  2.4M  

[TXT]

 Lecture3_Linear_SVM_..> 03-Jan-2015 14:56  2.4M  

[TXT]

 Lecture4_Kenrels_Fun..> 03-Jan-2015 14:55  2.4M  

[TXT]

 Lecture5_Kernel_SVM...> 03-Jan-2015 14:55  2.4M  

[TXT]

 Lecture6_SVDD.pdf.htm   03-Jan-2015 14:54  2.4M  

[TXT]

 Lecture7_Cross_Valid..> 03-Jan-2015 14:54  2.4M  

[TXT]

 Lecture8_Multi_Class..> 03-Jan-2015 14:57  2.4M  

[TXT]

 Lecture9_Multi_Kerne..> 03-Jan-2015 14:53  2.5M  

[TXT]

 Lecture10_Outilier_L..> 03-Jan-2015 14:53  2.5M  

[TXT]

 Les-reseaux-sans-fil..> 03-Jan-2015 15:17  2.5M  

[TXT]

 Outils-Logiques-pour..> 03-Jan-2015 15:15  2.8M  

[TXT]

 Projet-IP-SIG-Signal..> 03-Jan-2015 15:16  2.5M  

[TXT]

 Robotique-Mobile-PDF..> 03-Jan-2015 15:16  2.6M  

[TXT]

 Systeme-informatique..> 03-Jan-2015 15:17  2.5M  

[TXT]

 Tutoriel-Android-TP-..> 03-Jan-2015 14:57  2.3M  

[TXT]

 Understanding-SVM-th..> 03-Jan-2015 14:57  2.4M  
Une introduction aux (semi-)groupes d’automate Ines Klimann To cite this version: Ines Klimann. Une introduction aux (semi-)groupes d’automate. Master. Une introduction aux (semi-)groupes d’automate, MPRI, 2013, pp.21. HAL Id: cel-01058503 https://cel.archives-ouvertes.fr/cel-01058503 Submitted on 27 Aug 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Une introduction aux (semi-)groupes d’automate Ines Klimann klimann@liafa.univ-paris-diderot.fr MPRI 2012/2013 - filière “Modélisation par automates finis” 1 Introduction Les groupes d’automate ont été introduits dans les années 1960-1970 par des mathématiciens spécialistes de la théorie des groupes. Ils ont permis dans les années qui ont suivi de répondre à des conjectures importantes de théorie des groupes, notamment le problème de Burnside (exemples d’automates très simples engendrant des groupes de torsion infinis finiment engendrés, c’est-à-dire des groupes infinis finiment engendrés dont tous les éléments sont d’ordres finis [stage proposé sur cette thématique, encadré par Matthieu Picantin]) et le problème de Milnor (existence de groupes à croissance intermédiaire). Les (semi-)groupes d’automate sont un objet d’étude en soi et, comme pour toute famille de (semi-)groupes, on peut se poser des questions de décidabilité concernant les (semi-)groupes d’automate. Le but de ce cours est d’explorer une partie de l’existant sur la décidabilité de la finitude de tels (semi-)groupes. Nous nous centrerons en particulier sur les résultats liés à la structure de l’automate. Il existe d’autres critères provenant de la théorie géométrique des groupes, que nous n’aborderons pas ici. Pierre Gillibert a montré très récemment que le problème de finitude des semi-groupes d’automate est indécidable [5], tandis que le problème de finitude des groupes sur des automates inversibles-réversibles sur 2 lettres est décidable [7]. Il y a donc deux directions de recherche concernant la finitude des (semi-)groupes d’automates : – trouver la frontière entre décidable et indécidable [stage proposé sur ce sujet], – trouver des semi-algorithmes efficaces en moyenne pour tester la finitude ou l’infinitude. Dans ce cours, nous allons nous concentrer sur le deuxième point : je donnerai des conditions nécessaires ou suffisantes de finitude et nous verrons comment accélérer les calculs pour les semi-algorithmes existant déjà [2, 1, 8]. Pour illustrer la difficulté de l’étude de la finitude des (semi-)groupes d’automates, regardons la figure 1 : ce petit automate engendre un groupe d’ordre 1 494 186 269 970 473 680 896 = 264 · 3 4 ≈ 1.5 × 1021 . 1 2 3 1|3 2|2 3|1 3|1 1|3 2|2 1|2 2|3 3|1 Figure 1 – Automate de Mealy engendrant un groupe d’ordre 1 494 186 269 970 473 680 896. 12 Premiers éléments 2.1 Automates de Mealy Soit S un ensemble fini non vide. On note TS l’ensemble des applications de S dans S et SS l’ensemble des permutations de S. automate Définition 1. En oubliant les états initiaux et finaux, un automate (fini, déterministe et complet) est la donnée d’un triplet A, Σ, δ = (δi : A → A)i∈Σ  , où – l’ensemble des états A est un ensemble fini non vide, – l’alphabet Σ est un ensemble fini non vide, – les fonctions de transition δi sont des applicationss : δi ∈ TA. On identifie cet automate à un élément de T Σ A. automate de Définition 2. Un automate de Mealy est un quadruple Mealy A, Σ, δ = (δi : A → A)i∈Σ, ρ = (ρx : Σ → Σ)x∈A  , tel que (A, Σ, δ) et (Σ, A, ρ) sont des automates. Les applications ρx sont les fonctions de production de l’automate. La terminologie standard vue jusqu’à présent est transducteur lettre-à-lettre séquentiel et complet (avec même alphabet d’entrée et de sortie). Un automate de Mealy est identifié à un élément de T Σ A × T A Σ. Les transitions d’un automate de Mealy sont les x i | ρx(i) −−−−−→ δi(x). Un automate de Mealy est identifié à son ensemble de transitions. On utilise la notation graphique usuelle des automates : un graphe dont les sommets sont les états et les arcs correspondent aux transitions de l’automate, voir figure 2. 0 1 0|0 1|1 1|0 0|1 Figure 2 – Un automate de Mealy. 2.2 (Semi-)groupe engendré par un automate de Mealy et propriétés structurelles de certains automates Soit A = (A, Σ, δ, ρ) un automate de Mealy. Cet automate peut être vu comme un automate à deux bandes définissant une application de Σ ∗ vers Σ ∗ . Plus formellement, on construit les fonctions de production étendues ρx : Σ∗ → Σ ∗ à partir des fonctions fcts prod. étendues 2de production ρx : Σ → Σ. Pour cela, on écrit x u|v −−→ y avec u = u1 · · · un et v = v1 · · · vn pour décrire l’existence d’un chemin x u1|v1 −−−→ x1 u2|v2 −−−→ x2 −→ · · · −→ xn−1 un|vn −−−−→ y dans A. Par convention, l’image du mot vide est lui-même. L’application ρx préserve la longueur et les préfixes et satisfait ∀u ∈ Σ, ∀v ∈ Σ ∗ , ρx(uv) = ρx(u)ρδu(x)(v) . (1) On peut aussi définir les fonctions de production étendues ρx : Σ∗ → Σ ∗ par récurrence à l’aide de la formule (1). Par ailleurs, on peut aussi étendre ces fonctions sur A∗ par composition : ρu = ρu1···un = ρun ◦ · · · ◦ ρu1 . On peut bien entendu faire de même avec les applications δi : A∗ → A∗ . semi-groupe Définition 3. Le semi-groupe hAi+ engendré par A = (A, Σ, δ, ρ) est le semi-groupe des applications engendré Σ ∗ → Σ ∗ engendré par les fonctions de production étendues ρx, x ∈ A. Un semi-groupe est un semi-groupe d’automate s’il existe un automate qui l’engendre. Exemple 1. L’automate de la figure 2 engendre le semi-groupe N. Soit un mot u ∈ {0, 1} ∗ . On interprète u comme le miroir de l’écriture en base 2 d’un entier, notons u¯ cet entier. Alors : ρ0(u) = u et ρ1(u) = v, où v¯ = ¯u + 1. L’application associée à l’état 0 est donc l’identité et l’application associée à l’état 1 est l’incrémentation. Le semi-groupe engendré est donc isomorphe à N. Si les fonctions de production sont des permutations de Σ, alors les fonctions de production étendues sont des permutations de Σ ∗ . Elles sont donc inversibles et on peut envisager d’engendrer un groupe. automate Définition 4. Un automate de Mealy est inversible si ses fonctions de production sont des permutations. inversible Un automate inversible est identifié à un élément de T Σ A × S A Σ. groupe Définition 5. Le groupe hAi engendré par un automate de Mealy inversible A = (A, Σ, δ, ρ) est le engendré groupe des permutations de Σ ∗ engendré par les fonctions de production étendues ρx, x ∈ A. Un groupe est un groupe d’automate s’il existe un automate qui l’engendre. Exemple 2. L’automate de la figure 2 engendre le groupe Z. automate Définition 6. Un automate de Mealy est réversible si ses fonctions de transition sont des permutations. réversible Un automate réversible est identifié à un élément de S Σ A × T A Σ. Le terme employé habituellement en théorie des automates est automate à groupe. Un automate inversible-réversible est identifié à un élément de S Σ A × S A Σ. 32.3 Opérations sur les automates et liens entre les (semi-)groupes engendrés 2.3.1 Automate inverse Définition 7. Soit un automate de Mealy inversible A ∈ T Σ A × S A Σ. Soit A−1 = {x −1 automate , x ∈ A} une copie inverse disjointe de l’ensemble A des états. L’automate (de Mealy) inverse A−1 de A est défini par l’ensemble de transitions x −1 j|i −→ y −1 ∈ A−1 ⇐⇒ x i|j −→ y ∈ A . (2) La fonction de production ρx associée à l’état x de A est une bijection de Σ ∗ sur Σ ∗ , on peut donc considérer son inverse ρ −1 x : Σ∗ → Σ ∗ associée à l’état x −1 de A−1 . On a alors hAi+ = {ρu, u ∈ A ∗ }, hAi = {ρu, u ∈ (A ⊔ A −1 ) ∗ } . A noter qu’on peut toujours, à partir d’un automate de Mealy, considérer l’ensemble des transitions inverses de ses transitions (telles que définies par (2)). On note i cette opération. Par i, on obtient toujours un transducteur lettre-à-lettre avec même alphabet d’entrée et de sortie, mais ce n’est pas nécessairement un automate de Mealy : c’est un automate de Mealy si et seulement l’automate de départ est inversible, dans ce cas bien entendu : i(A) = A−1 . automate Définition 8. Un automate de Mealy inversible est biréversible si lui et son inverse sont réversibles. biréversible En particulier, et de façon immédiate, un automate biréversible est inversible-réversible. Proposition 1. Soit A un automate inversible-réversible. On a hAi = hA−1 i = hA ⊔ A−1 i = hA ⊔ A−1 i+, où A ⊔ A−1 est l’automate de Mealy dont l’ensemble des transitions est l’union des ensembles de transitions de A et A−1 . De plus, si hAi ou hAi+ est fini, on a hAi = hAi+. Démonstration. Le premier point découle directement des définitions. Supposons que le semi-groupe hAi+ soit fini et soit x un de ses éléments : il existe deux entiers k et n tels que x k+n = x k . On a donc x n = 1 dans le groupe hAi. L’inverse x n−1 de x appartient donc au semi-groupe hAi+ et on a égalité entre groupe et semi-groupe. (À noter que cette démonstration est valable pour tout semi-groupe qui est sous-semi-groupe d’un groupe : un tel semi-groupe fini est toujours un groupe.) 2.3.2 Automate dual La définition d’un automate de Mealy introduit une symétrie forte entre l’ensemble des états et l’alphabet de l’automate. De fait on peut inverser leurs rôles. automate Définition 9. L’automate dual de A = (A, Σ, δ, ρ) est l’automate de Mealy d(A) dont les transitions dual sont décrites par i x|y −−→ j ∈ d(A) ⇐⇒ x i|j −→ y ∈ A . (3) 4Cette définition est consistante : le dual d’un automate de Mealy est bien toujours un automate de Mealy (c’est-à-dire un transducteur lettre-à-lettre séquentiel et complet). Un automate est réversible si et seulement si son dual est inversible. Les propositions 2 et 3 suivantes sont complémentaires l’une de l’autre et nous donnent nos premières propriétés liées à la finitude sur les (semi-)groupes d’automate. Proposition 2 ([1]). Soit deux semi-groupes finis G et H. Il existe un automate de Mealy A tel que hAi+ = G et hd(A)i+ = H. On a un énoncé similaire sur les groupes. Démonstration. La preuve est faite dans le cadre des groupes. Elle est similaire pour les semi-groupes. Commençons par une preuve avec les mains pour comprendre ce qui se passe. On construit en parallèle l’automate A qui engendre G et l’automate d(A) qui engendre H. On procède par étape en s’assurant à chaque instant que A et d(A) sont duaux, que A est bien un automate de Mealy inversible et bien entendu en s’assurant que A engendre G et d(A) engendre H. Le groupe G étant fini, il est isomorphe à un sous-groupe de Sm pour un certain m. De même, le groupe H est isomorphe à un sous-groupe de Sn pour un certain n. A ρg ∈ Sm g d(A) δh ∈ Sn h Par dualisation on obtient : A ρg ∈ Sm g i δh(i) idH d(A) δh ∈ Sn h i ρg(i) idG Les états de A agissent tous sur les éléments de H et de même les états de d(A) sur les éléments de G, donc : A g ρg ∈ Sm idH i δh(i) idH d(A) h δh ∈ Sn idG i ρg(i) idG Les états de A agissent tous sur les éléments de {1, . . . , m} et de même du côté du dual, donc : 5A g ρg ∈ Sm idH i δh(i) id d(A) h δh ∈ Sn idG i ρg(i) id Formalisons la preuve précédente. Tout groupe fini est un sous-groupe d’un groupe de permutations. Soit Σ1 et A2 deux ensembles finis tels que G est un sous-groupe de SΣ1 et H est un sous-groupe de SA2 . Soit A1 ⊆ SΣ1 un ensemble de générateurs de G et Σ2 ⊆ SA2 un ensemble de générateurs de H. On pose A = A1 × A2 et Σ = Σ1 × Σ2 et on considère l’automate de Mealy d’ensemble d’états A sur l’alphabet Σ dont les transitions sont données par (a, b) (i,j)|(a(i),j) −−−−−−−−→ (a, j(b)). On note δ et ρ les fonctions de transition et de production correspondantes. Clairement pour (a, b) ∈ A1 × A2 et (a, b′ ) ∈ A1 × A2, on a ρ(a,b) = ρ(a,b′) et on peut noter cette fonction ρa : Σ∗ → Σ ∗ . On a alors pour tout a ∈ A1 et tout (i1, j1), . . . ,(in, jn) ∈ Σ ∗ : ρa (i1, j1)· · ·(in, jn)  = (a(i1), j1) (a(i2), j2) · · · (a(in), jn) . Ainsi le groupe engendré par (ρa : Σ∗ → Σ ∗ )a∈A1 est isomorphe au groupe engendré par (a : Σ1 → Σ1)a∈A1 , c’est-à-dire hAi = G. De la même façon hd(A)i = H. Proposition 3 ([10, 12, 1]). Le (semi-)groupe engendré par A est fini si et seulement si le (semi-)groupe engendré par son dual d(A) est fini. Démonstration. La preuve est faite pour les semi-groupes, elle s’étend aux groupes directement par la proposition 1. Soit un automate de Mealy A = (A, Σ, δ, ρ). On suppose que le semi-groupe engendré par son dual est fini. Fixons un mot w ∈ A∗ , on a : ρw(u1u2 · · · un) := ρw(u1)ρδu1 (w)(u2)ρδu1u2 (w)(u3)· · · ρδu1u2···un−1 (w)(un) , pour tout u1u2 · · · un ∈ Σ ∗ . La fonction de production ρw peut donc être vue comme la fonction de production d’un transducteur lettre-à-lettre sur le graphe de Cayley de hd(A)i+ par rapport aux lettres de Σ : δu δui δu δui i i|ρδu(w)(i) Or il n’y a qu’un nombre fini de tels transducteurs, égal au nombre d’applications de hd(A)i+ vers TΣ. On en conclut #hAi+ ≤ #Σ(#Σ) (#hd(A)i+) . 62.3.3 Automates étendus Soit A un automate inversible-réversible. On a vu en proposition 1 que hAi = hA ⊔ A−1 i, c’est-à-dire qu’on ne modifie pas le groupe engendré en considérant les états et leurs inverses. On peut de même considérer les lettres et leurs inverses. automate Définition 10. Soit A un automate inversible-réversible. L’automate étendu A˜ de A est son extension à étendu l’ensemble d’états A ⊔ A−1 et à l’alphabet Σ ⊔ Σ −1 : A˜ = A ′ ⊔ (A ′ ) −1 où A ′ = d(d(A) ⊔ d(A) −1 ). Le corollaire suivant est une conséquence des propositions 1 et 3. Corollaire 1. Soit A un automate inversible-réversible. Les groupes hAi et hAi˜ sont tous deux finis ou tous deux infinis. À noter que ces deux groupes ne sont pas nécessairement isomorphes. Par exemple si on considère l’automate de la figure 3, il engendre un groupe d’ordre 16 et son automate étendu engendre un groupe d’ordre 64. a b 0|1 2|3 0|3 2|1 1|0 3|2 1|0 3|2 Figure 3 – Automate inversible-réversible engendrant le groupe K4 ⋊ Z2 d’ordre 16. 2.3.4 Automates d’ordres supérieurs Définition 11. Soit un automate de Mealy A = (A, Σ, δ, ρ) ∈ T Σ A × T A aut. d’ordre Σ et deux entiers n, k > 0. supérieur L’automate de Mealy An,k = A n , Σ k ,(δx : A n → A n )x∈Σk ,(ρu : Σk → Σ k )u∈An  (4) est l’automate de Mealy d’ordre (n, k) associé à A. Il s’identifie à un élément de T Σ k An × T A n Σk . Dans l’équation (4), ρu : An → An est la restriction de ρu : A∗ → A∗ à An, et de même pour δx. On a en particulier A1,1 = A. Graphiquement, An,k est un automate dont les états sont des mots de longueur n sur A dans le semigroupe engendré par A et les actions de ces états correspondent aux actions des éléments du semi-groupe sur des mots de longueur k sur Σ. Le semi-groupe engendré par l’automate d’ordre (n, 1) associé à A est un sous-semi-groupe de hAi+. Le semi-groupe engendré par l’automate d’ordre (1, k) associé à A est isomorphe à hAi+. Le semi-groupe engendré par l’automate d’ordre (n, k) associé à A est donc isomorphe à un sous-semi-groupe de hAi+. L’automate An,1 est parfois noté An et appelé puissance n-ème de A. puissance d’un aut. 73 Problème du mot Le premier problème de décision qu’on aborde avec les (semi-)groupes est le problème du mot : peuton décider si deux mots représentent le même élément du (semi-)groupe ? Ce problème est en général indécidable [11]. Ce problème est décidable dans le cadre des semi-groupes d’automate, comme montré en proposition 4, ce qui rend le problème de finitude semi-décidable par énumération. Lemme 1. Étant donné un automate de Mealy, on peut décider si les fonctions de production étendues de deux de ses états sont égales. Je ne détaille pas la preuve ici, mais il suffit de regarder la procédure de minimisation introduite en section 4 pour s’en convaincre. Proposition 4. Le problème du mot est décidable pour les (semi-)groupes d’automate. Démonstration. Soit un automate de Mealy A = (A, Σ, δ, ρ). Si l’identité de Σ ∗ n’est pas une des fonctions de production étendues des états de A, on peut ajouter un état qui boucle sur lui-même et dont la fonction de production est l’identité de Σ. Sans perte de généralité on peut donc supposer qu’un des générateurs du groupe est l’identité, ce qui permet de considérer le problème du mot sur des mots de même longueur. Soit les générateurs u1, u2, . . . , un, v1, v2, . . . , vn ∈ A pour lesquels on se demande si u1u2 · · · un ?= v1v2 · · · vn. On se place dans l’automate puissance An : u1u2 · · · un et v1v2 · · · vn sont des états de cet automate. On applique donc le lemme 1 pour obtenir le résultat. Cependant, même pour de petits automates, les (semi-)groupes engendrés peuvent être grands, comme montré dans l’introduction avec l’automate de la figure 1. Dans la suite, on s’intéresse à des constructions permettant de décider de la finitude ou de l’infinitude d’un (semi-)groupe engendré par automate. 4 Critère de finitude : la md-réduction On construit ici un critère reposant sur la notion de minimisation d’un automate. congruence Définition 12. Soit un automate de Mealy A = (A, Σ, δ, ρ). Une équivalence ≡ sur A est une congruence pour A si ∀x, y ∈ A,  [x ≡ y] =⇒ [∀i ∈ Σ, ρx(i) = ρy(i) et δi(x) ≡ δi(y)] . L’équivalence de Nérode sur A est la congruence la plus fine pour A. équivalence de Nérode L’équivalence de Nérode est la limite de la suite d’équivalences de plus en plus fines (≡k) définie par ∀x, y ∈ A, x ≡0 y ⇐⇒ ∀i ∈ Σ, ρx(i) = ρy(i), ∀k > 0, x ≡k+1 y ⇐⇒ x ≡k y et ∀i ∈ Σ, δi(x) ≡k δi(y). L’ensemble des états A étant fini, cette suite est ultimement constante ; de plus, elle est constante dès que deux termes consécutifs sont égaux. Sa limite est donc calculable. On note [x] la classe d’équivalence d’un état x ∈ A pour l’équivalence de Nérode. 8automate Définition 13. Soit un automate de Mealy A = (A, Σ, δ, ρ) et ≡ l’équivalence de Nérode associée à A. minimisé Le minimisé de A est l’automate de Mealy A/≡ = (A/≡, Σ, ˜δ, ρ˜), où, pour tout état x ∈ A et toute lettre i ∈ Σ, on a : ˜δi([x]) = [δi(x)] et ρ˜[x](i) = ρx(i). Un automate est minimal s’il est équivalent à son minimisé. La définition est consistante avec la définition classique de minimisation sur les automates booléens : la partition initiale a lieu ici en fonction des fonctions de production ; pour rappel, dans le cas des automates booléens elle se fait sur le critère états finaux / états non finaux. Proposition 5. Un automate de Mealy et son minimisé engendrent le même semi-groupe. Démonstration. On montre par récurrence sur n que ρx et ρ˜[x] sont égaux sur Σ n. Laissé en exercice. On remarque que le dual d’un minimisé n’est pas nécessairement minimal. On introduit ici une notion de minimalité symétrique entre un automate et son dual. Définition 14. Une paire d’automates duaux est md-réduite si chacun des deux automates de la paire est paire / aut. md-réduit(e) minimal. Par extension, on dira qu’un automate est md-réduit si la paire qu’il forme avec son dual est md-réduite. La md-réduction d’une paire d’automates duaux consiste à réduire alternativement chacun des deux auto- md-réduction mates jusqu’à ce que la paire soit md-réduite. Exemple 3. Un exemple de md-réduction est donné en figure 4. Même si elle ne le semble pas au premier abord, la md-réduction est confluente [1]. Ce fait n’est pas crucial pour la suite, mais facilitera les tournures de phrase en nous permettant de donner la définition suivante. Définition 15. La paire d’automates de Mealy obtenue par md-réduction d’un couple d’automates duaux md-réduit est appelée son md-réduit. Théorème 1 ([1]). Une paire d’automates duaux engendre des (semi-)groupes finis si et seulement si son md-réduit engendre des (semi-)groupes finis. Démonstration. Laissée en exercice. On note par ailleurs que dmd(A) est un quotient de A. Donc si le groupe engendré par A est fini, celui engendré par dmd(A) est plus petit. Le théorème 1 n’est pas en lui-même un critère de finitude puisqu’il faut savoir si le md-réduit obtenu engendre des groupes finis. Néanmoins il peut être efficacement combiné à d’autres critères de finitude. On déduit de ce théorème une condition suffisante de finitude effective donnée par le corollaire 2, en remarquant que l’automate trivial engendre le groupe trivial. Corollaire 2 ([1]). Si la md-réduction d’une paire d’automates de Mealy duaux aboutit à une paire d’automates triviaux, les automates de départ engendrent des (semi-)groupes finis. La démonstration de la proposition 6 ci-dessous est une application directe de ce critère. Il existe des paires md-réduites non triviales d’automates duaux qui engendrent des (semi-)groupes finis. Un exemple est donné en figure 5. 9a b 0|1 2|3 0|3 2|1 1|0 3|2 1|0 3|2 d 0 1 3 2 a|a b | b a| b a|a b | b a| b b |a b |a m 13 02 a|a b | b a| b b |a d a b 02|13 02|13 13|02 13|02 m ab 13|02 02|13 d 13 02 ab |ab ab |ab m 0123 ab |ab d ab 0123|0123 Figure 4 – La md-réduction d’une paire d’automates de Mealy duaux. a b 1|0 0|1 1|1 0|1 Figure 5 – Automate md-réduit (non trivial) qui engendre un semi-groupe de taille 6. 5 Critère structurel de finitude : branchement limité Antonenko [2] s’est intéressé au problème suivant : quels sont les automates de Mealy tels que pour toutes les fonctions de production possibles, le semi-groupe engendré est fini ? Les critères développés dans [2] reposent sur la structure de l’automate. La proposition 7 donne le résultat général. Il est cependant plus intuitif d’étudier en premier la proposition 6. état sans Définition 16. Dans un automate de Mealy A = (A, Σ, δ, ρ), l’état x ∈ A est sans branchement si son branchement image par une fonction de transition ne dépend pas de la lettre lue, c’est-à-dire : ∀i, j ∈ Σ, δi(x) = δj(x). Graphiquement cela signifie qu’une seule transition part de l’état x, étiquetée par toutes les lettres de l’alphabet Σ. 10aut. sans Définition 17. Un automate de Mealy A = (A, Σ, δ, ρ) est sans branchement si tous ses états sont sans branchement branchement. On pourra alors en abusant légèrement noter δ(x) l’image d’un état x ∈ A par une des fonctions de transition δi . Proposition 6 ([2]). Un automate de Mealy sans branchement engendre un (semi-)groupe fini. Démonstration. Soit un automate de Mealy sans branchement. Tous les états de son dual sont équivalents, le md-réduit de la paire est donc une paire d’automates triviaux et on peut conclure par le corollaire 2. [Ce n’est pas la démonstration donnée dans [2].] Le résultat de la proposition 6 s’étend aux automates dont aucun branchement n’est suivi d’un cycle. aut. à branch Définition 18. Un automate de Mealy A = (A, Σ, δ, ρ) est à branchement limité si tous ses états t limité atteignables à partir d’un cycle sont sans branchement. Proposition 7 ([2]). Un automate de Mealy à branchement limité engendre un (semi-)groupe fini. Démonstration. avec les mains Quitte à dérouler un peu les cycles, on peut supposer que toutes les branches qui précèdent l’entrée dans un cycle ont même longueur b. En s’autorisant à agrandir ces mêmes cycles (en les parcourant un certain nombre de fois), on peut également supposer que tous les cycles ont même longueur ℓ. On découpe alors un mot en ses b premières lettres, puis en paquets de ℓ lettres consécutives. Sur les b premières lettres, il n’y a qu’un nombre fini d’actions possibles. Sur la suite du mot : sur chaque paquet de ℓ lettres, il n’y a qu’un nombre fini d’actions possibles et au bout d’un moment on a forcément vu toutes les actions qui devaient apparaître. Formalisation laissée en exercice. Bien entendu ce critère ne couvre pas tous les automates engendrant des (semi-)groupes finis. Par exemple, l’automate de la figure 1 n’est pas à branchement limité et engendre un semi-groupe fini. Ce critère est maximal dans le sens où pour tout automate qui n’est pas à branchement limité, il existe une fonction de production telle que le groupe engendré est infini. La démonstration se fait en traitant séparément les trois cas suivants : (i) il existe un cycle C étiqueté uniquement par des 0 et tel qu’un des états de ce cycle branche vers un état extérieur à C ; (ii) il existe un cycle C étiqueté uniquement par des 0 et tel qu’un des états de ce cycle branche vers un état de C ; (iii) les cycles qui possèdent des états qui branchent ne sont pas uniquement étiquetés par des 0. Montrons le cas (i) pour donner une idée : x1 x2 x0 xn−1 xn−2 x ′ 0|0 0|0 0|0 0|0 0|0 0|0 i|1 1|0 0|0 11Soit deux entiers k et ℓ tels que k + ℓ soit divisible par n. Alors ρxk (0ℓ1v) = 0ℓ+11v ′ . On montre que l’élément suivant du groupe engendré par l’automate est d’ordre infini : ρ¯ = ρx1 ◦ ρx2 ◦ · · · ◦ ρxn−1 ◦ ρx0 . En effet pour un entier k quelconque, on a ρ¯(0kn1 · · ·) = ρx1 ◦ ρx2 ◦ · · · ◦ ρxn−1 ◦ ρx0 (0kn1 · · ·) = ρx1 ◦ ρx2 ◦ · · · ◦ ρxn−1 (0kn+11 · · ·) = . . . = 0(k+1)n 1 · · · Donc au final : ρ¯ k (1ω ) = 0kn1 · · · . 6 Critère d’infinitude : graphe en hélice Dans cette partie nous travaillons exclusivement sur des automates inversibles-réversibles. Nous introduisons de nouvelles représentations d’automates de Mealy permettant de considérer un automate et son dual simultanément. graphe en Définition 19. On appelle graphe en hélice d’un automate de Mealy A = (A, Σ, δ, ρ) le graphe de hélice sommets A × Σ et d’arcs les (x, i) → (δi(x), ρx(i)). On remarque qu’on peut définir un graphe en hélice pour tout transducteur lettre-à-lettre ayant même alphabet d’entrée et de sortie. Un tel transducteur est un automate de Mealy si et seulement si de tout sommet part un unique arc. Proposition 8. Si le groupe engendré par un automate inversible-réversible est fini, alors son graphe en hélice est une union de cycles disjoints. Pour montrer ce résultat, nous avons besoin d’une autre représentation d’une paire d’automates duaux. La transition x i | ρx(i) −−−−−→ δi(x) est notée i x δi(x) ρx(i) . Cette notation est appelée transition en croix. Un automate de Mealy est identifié à l’ensemble de ses transition en croix transitions en croix (de cardinalité |A| × |Σ|). Un chemin dans un automate de Mealy A (resp. dans son dual d(A)) peut être représenté par un diagramme en croix horizontal (resp. vertical). On peut également considérer des diagrammes en croix diagramme en croix rectangulaires de dimension n × k sur lesquels on peut lire les fonctions de production de l’automate associé An,k d’ordre (n, k) et de son dual. Par exemple, le diagramme en croix suivant : i1 ik x1 . . . y1 . . . . . . xn . . . yn j1 jk correspond dans An,k à ρx1···xn (i1 · · ·ik) = j1 · · · jk, δi1···ik (x1 · · · xn) = y1 · · · yn . 12Démonstration de la proposition 8. Soit A = (A, Σ, δ, ρ) un automate inversible-réversible qui engendre un groupe fini. La proposition 3 nous permet d’affirmer que l’automate dual d(A) engendre également un groupe fini. Si on considère l’application qui va de l’ensemble fini des sommets d’un graphe en hélice dans lui-même et qui à un sommet associe son unique successeur dans ce graphe, le graphe en hélice est une union de cycles disjoints si et seulement si cette application est bijective, donc si et seulement si elle est surjective, c’est-à-dire qu’un graphe en hélice est une union de cycles disjoints si et seulement si chaque sommet de ce graphe possède un prédécesseur. Soit un état x ∈ A et une lettre i ∈ Σ. Montrons que le sommet (x, i) du graphe en hélice possède un prédécesseur. Il existe deux entiers m, n > 0 tels que ρ m x = ρxm = idhAi et δ n i = δin = idhd(A)i . Cela implique l’existence d’une transition x m i n|i n −−−→ x m dans l’automate associé d’ordre (m, n). Le diagramme en croix correspondant s’écrit : n i i x . . . x m . . . . . . x . . . x i i . Le coin sud-est donne un prédécesseur à (x, i). La condition de la proposition 8 n’est pas suffisante : il existe des automates dont le graphe en hélice est une union de cycles disjoints et dont on sait par ailleurs qu’ils engendrent un groupe infini, comme par exemple l’automate d’Alešin donné en figure 6. a b c 0|1 1|0 0|1 1|0 0|0 1|1 Figure 6 – L’automate d’Alešin engendre un groupe infini. Son graphe en hélice est un cycle. De fait, la proposition 9 caractérise de façon très simple l’ensemble des automates inversibles-réversibles dont le graphe en hélice est une union de cycles disjoints. Proposition 9. Soit A un automate inversible-réversible. Les propriétés suivantes sont équivalents : (i) A est biréversible, (ii) didi(A) est un automate de Mealy, (iii) le graphe en hélice de A est une union de cycles disjoints. Démonstration. (i) ⇒ (ii) A est biréversible, cela signifie qu’il est inversible et i(A) est réversible, ce qui entraîne que di(A) est inversible. A nouveau, on peut donc prendre l’inverse puis le dual et on obtient que didi(A) est un automate de Mealy. 13(ii) ⇒ (i) L’automate A étant supposé inversible-réversible, di(A) est bien un automate de Mealy. Par ailleurs, didi(A) étant un automate de Mealy, idi(A) est également un automate de Mealy. Comme c’est l’inverse de di(A), on en déduit que di(A) est inversible, donc i(A) réversible. Ce qui entraîne que A est biréversible. (ii) ⇔ (iii) Dans le graphe en hélice d’un automate de Mealy, il part exactement un arc de chaque sommet. Le graphe en hélice d’un automate de Mealy est donc une union de cycles disjoints si et seulement s’il arrive au plus un arc par sommet. On définit le graphe G d’ensemble de sommets A−1 × Σ −1 et d’arcs (y −1 , j−1 ) → (x −1 , i−1 ) si (x, i) → (y, j) appartient au graphe en hélice H de A. Le graphe G est le graphe en hélice de didi(A) : – si didi(A) est un automate de Mealy, chaque sommet de G possède un successeur, donc chaque sommet de H possède un prédecesseur et H est une union de cycles disjoints, – si H est une union de cycles disjoints, il en est de même pour G et on déduit de la remarque qui suit la définition 19 que didi(A) est un automate de Mealy. On en déduit un critère d’infinitude structurel, très simple à vérifier : Corollaire 3. Tout automate inversible-réversible qui n’est pas biréversible engendre un groupe infini. 7 Condition nécessaire et suffisante de finitude (non effective) Dans cette partie nous travaillons exclusivement sur des automates inversibles-réversibles. Le critère pré- senté ici n’est à ce jour pas effectif, cette section sert donc quelque peu du cadre général de ce cours, mais les techniques utilisées dans les preuves peuvent s’avérer intéressantes dans d’autres occasions. graphes en Définition 20. Soit un automate de Mealy A et deux entiers n, k > 0. Le graphe en hélice d’ordre (n, k) hélice de A est le graphe en hélice de l’automate de Mealy d’ordre (n, k) associé à A. On parle des graphes en hélice de A pour désigner l’ensemble de ses graphes en hélice d’ordre quelconque. On peut noter que le graphe en hélice de A tel que défini à la définition 19 est le graphe en hélice d’ordre (1, 1) de A. Théorème 2. Le groupe engendré par un automate inversible-réversible est fini si et seulement si les graphes en hélice de son automate étendu sont des unions de cycles disjoints uniformément bornés. Pour montrer le théorème 2, nous allons utiliser des résultats intermédiaires. Lemme 2. Les graphes en hélice d’un automate de Mealy sont des unions de cycles disjoints si et seulement si son graphe en hélice d’ordre (1, 1) est une union de cycles disjoints. La démonstration de ce lemme repose sur le même type d’argument que celle de la proposition 8 et est laissée en exercice. Proposition 10. Si un automate inversible-réversible engendre un groupe fini, alors les cycles des graphes en hélices de son automate étendu sont uniformément bornés. Démonstration. Soit A un automate inversible-réversible engendrant un groupe fini et A˜ son automate étendu. D’après le corollaire 1, le groupe engendré par A˜ est fini et d’après le lemme 2, ses graphes en hélices sont des unions de cycles disjoints. D’après la proposition 3, le groupe hd(A˜)i est également fini. 14Soit C, un cycle d’un graphe en hélice de A˜ et (u, v) ∈ (A ⊔ A−1 ) ∗ × (Σ ⊔ Σ −1 ) ∗ un sommet de ce cycle. Chaque sommet de C est de la forme (h(u), g(v)), où g (resp. h) est un élément de hAi˜ (resp. hd(A˜)i). Comme les sommets sont deux à deux distincts, la longueur du cycle C est bornée par #hAi × ˜ #hd(A˜)i. Proposition 11. Si les cycles des graphes en hélice de l’automate étendu d’un automate inversible-réversible sont uniformément bornés, alors le groupe engendré par cet automate est fini. Démonstration. La démonstration de cette proposition repose sur un résultat poussé de théorie des groupes qui permet d’affirmer qu’un groupe d’automate dont les ordres des éléments sont bornés1 est fini. On dit qu’un mot sur les générateurs d’un groupe est unitaire s’il représente l’identité dans le groupe. mot unitaire Le groupe hAi˜ étant infini, les ordres de ses éléments ne sont pas bornés : soit il existe un mot x ∈ (A ⊔ A−1 ) ∗ tel que ρx est d’ordre infini, soit il existe une suite de mots (xn)n∈N ⊆ (A ⊔ A−1 ) ∗ telle que la suite des ordres des (ρxn )n∈N est strictement croissante. Nous allons traiter le deuxième cas (le premier est analogue). On note kn l’ordre de l’élément ρxn : pour tout k, 1 ≤ k < kn, il existe un mot uk ∈ (Σ ⊔ Σ −1 ) ∗ tel que ρ k xn (uk) = u ′ k 6= uk. Comme hd(A˜)i est un groupe, le mot uk peut être étendu en un mot unitaire ukvk. On pose alors wn = u1v1 · · · ukn−1vkn−1. Par construction ρxn (wn) = u ′ 1 · · · 6= wn. Par ailleurs u1v1 étant unitaire, on a également ρ 2 xn (wn) = ρ 2 xn (u1v1)ρ 2 xn (u2v2 · · · ukn−1vkn−1) = ρ 2 xn (u1v1)u ′ 2 · · · 6= wn . De la même façon, on montre que pour tout k < kn, on a ρ k xn (wn) 6= wn. Dans le graphe en hélice de A˜ d’ordre (|xn|, |wn|), on considère le cycle contenant le nœud (xn, wn). Le mot wn étant unitaire, les successeurs de (xn, wn) dans ce cycle sont : (xn, ρxn (wn)), (xn, ρ2 xn (wn)), . . . Ce cycle est donc de longueur kn. Comme (kn)n diverge vers l’infini, les longueurs des cycles des graphes en hélice de A˜ ne sont pas uniformément bornées. Le théorème 2 est alors un corollaire des propositions 10 et 11. 8 Accélération des semi-algorithmes existants Cette section décrit comment la minimisation permet d’accélérer substantiellement les procédures existantes servant à tester la finitude et à caluler la croissance ou l’ordre d’un (semi-)groupe fini [8]. Notre point de départ sont les deux paquets GAP [4] suivants : FR développé par Bartholdi [3] et automgrp développé par Muntyan et Savchuk [9]. 8.1 Croissance d’un (semi-)groupe d’automate La croissance d’un (semi-)groupe correspond à la vitesse à laquelle celui-ci va grossir lorsqu’on compose les éléments au fur et à mesure. Donnons une définition plus formelle. Soient un automate de Mealy 15A = (A, Σ, δ, ρ) et un mot x ∈ A∗ . La longueur de ρx, notée |ρx|, est la longueur minimale d’un mot longueur équivalent à x : |ρx| = min{n | ∃y ∈ A n , ρx = ρy} . La fonction de croissance de l’automate A est la série formelle qui énumère les éléments du semigroupe fonction de croissance en fonction de leur longueur : X g∈hAi+ t |g| = X n∈N #{g ∈ hAi+ ; |g| = n} t n . On s’intéresse au calcul des termes de cette série. Les paquets FR et automgrp utilisent l’énumération ; cette technique fonctionne pour n’importe quel (semi-)groupe dans lequel le problème du mot est résoluble : on part des générateurs et on engendre de nouveaux éléments étape par étape, jusqu’à ne plus en obtenir. Le fait que le groupe soit engendré par un automate ne sert qu’à apporter une solution au problème du mot. On peut en fait utiliser complètement et en permanence la structure d’automate et la puissance de la minimisation pour obtenir de manière globale tous les éléments de longueur n à partir des éléments de longueur n − 1. A chaque entier n, on associe un automate de Mealy An dont les états sont exactement les éléments de longueur au plus n : An = m(An−1 × m(A ′ )) et A1 = m(A) , où A′ = A si l’identité est un générateur de A, et l’union de A et de l’automate trivial sinon. AutomatonGrowth := function ( arg ) local aut , radius , growth , sph , curr , next , r; aut := arg [1]; # automate de Mealy if Length ( arg ) >1 then radius := arg [2]; else radius := infinity ; fi; r := 0; curr := TrivialMealyMachine ([1]); next := Minimized ( aut ); aut := Minimized ( next + TrivialMealyMachine ( Alphabet ( aut ))); sph := aut !. nrstates - 1; # nombre d ’ etats non triviaux growth := [ next !. nrstates - sph ]; while sph >0 and r < radius do Add ( growth , sph ); r := r +1; curr := next ; next := Minimized ( next * aut ); sph := next !. nrstates - curr !. nrstates ; od; return growth ; end; L’appel AutomatonGrowth(aut) permet de calculer la croissance du semi-groupe hauti+, tandis que l’appel AutomatonGrowth(aut+aut^-1) calcule la croissance du groupe hauti. Résultats expérimentaux. Nous commençons par faire tourner AutomatonGrowth et WordGrowth (paquet FR) sur l’automate de Grigorchuk. Pour un rayon de 10, AutomatonGrowth est nettement plus rapide, 76 ms contre 9 912 ms 2 . La raison en est simple : WordGrowth appelle la procédure de minimisation 57 577 fois tandis que AutomatonGrowth ne l’appelle que 12 fois : 1. Il existe des groupes d’automate infinis dont les éléments sont tous d’ordre fini, par exemple le groupe engendré par l’automate de Grigorchuk [6]. 2. Programmes exécutés sur un processeur Intel Core 2 Duo 3,06 GHz. 16gap > aut := GrigorchukMachine ;; f := sgp ( aut );; radius := 10;; gap > ProfileFunctions ([ Minimized ]); gap > WordGrowth (f , radius ); time ; [ 1, 4, 6, 12 , 17 , 28 , 40 , 68 , 95 , 156 , 216 ] 9912 gap > DisplayProfile (); count self / ms chld / ms function 57577 7712 0 Minimized 7712 TOTAL gap > ProfileFunctions ([ Minimized ]); gap > AutomatonGrowth ( aut , radius ); time ; [ 1, 4, 6, 12 , 17 , 28 , 40 , 68 , 95 , 156 , 216 ] 76 gap > DisplayProfile (); count self / ms chld / ms function 12 72 0 Minimized 72 TOTAL Comparons maintenant les temps d’exécution des diverses implémentations pour les premiers termes de la fonction de croissance des 335 automates de Mealy biréversibles à 3 lettres et 3 états (à isomorphisme près). Certains résultats n’apparaissent pas dans la table 1 faute d’avoir pu les obtenir en temps raisonnable. Table 1 – Temps moyen (en ms) rayon 1 2 3 4 5 6 7 WordGrowth – FR 3,4 29,0 555,0 8 616,5 131 091,4 2 530 170,3 ? Growth – automgrp 0,7 2,8 16,9 158,9 1 909,0 22 952,8 ? AutomatonGrowth 0,6 1,8 5,9 28,9 187,3 1 005,9 7 131,4 8.2 Ordre d’un (semi-)groupe FR et automgrp implémentent des procédures de calcul de l’ordre d’un (semi-)groupe d’automate fini. Ces deux paquets utilisent des approches tout à fait orthogonales. L’implémentation décrite ici affine l’approche de FR and reste orthogonale à celle de automgrp. L’implémentation de automgrp. Le paquet GAP automgrp définit la function LevelOfFaithfulAction qui permet de calculer—parfois de façon extrêmement efficace—l’ordre du groupe engendré. Le principe est le suivant : soient A un automate de Mealy inversible sur l’alphabet Σ et Gk le groupe engendré par les restrictions à Σ k des fonctions de productions étendues. Si #Gk = #Gk+1 pour un certain k, alors hAi est fini, d’ordre #Gk. Cette fonction peut être facilement adaptée à un automate de Mealy non inversible. LevelOfFaithfulAction n’est pas utilisable pour calculer la fonction de croissance : à chaque étape on calcule un quotient du semi-groupe. Mais c’est une bonne stratégie pour calculer l’ordre du semi-groupe. De plus cette méthode profite du fait que GAP a en quelque sorte été écrit pour manipuler des permutations de groupes finis. L’implémentation de FR et la nouvelle implémentation. Tout algorithme qui permet de calculer la fonction de croissance peut être utilisé pour calculer l’ordre d’un (semi-)groupe fini. Il suffit de calculer la fonction de croissance jusqu’à trouver un coefficient nul. C’est l’approche utilisée dans FR. Comme nous avons proposé, dans la section précédente, une nouvelle implémentation pour la fonction de croissance, nous obtenons directement une nouvelle procédure pour calculer l’ordre. Appelons-la AutomSGrOrder. 17Résultats expérimentaux. L’orthogonalité des deux approches précédentes peut être illustrée par l’automate de la figure 1. Ni la fonction Order de FR, ni AutomSGrOrder ne sont capables de calculer l’ordre du groupe, alors que automgrp, via LevelOfFaithfulAction, permet d’obtenir le résultat en seulement 14 338 ms. D’un autre côté, AutomSGrOrder calcule l’ordre du semi-groupe engendré par le dual en 17 ms, alors qu’une adaptation de LevelOfFaithfulAction (aux automates de Mealy non inversibles) met 2 193 ms (ce semi-groupe est d’ordre 234). 8.3 Finitude Toute procédure qui calcule l’ordre d’un (semi-)groupe d’automate produit une procédure de semi-décision pour le problème de finitude. Les deux paquets FR and automgrp appliquent un certain nombre de critères de finitude ou d’infinitude puis essayent en dernier recours de calculer l’ordre du groupe. On peut saupoudrer ces procédures de minimisation : on remplace le (semi-)groupe dont on veut dé- cider s’il est fini ou non successivement par d’autres (semi-)groupes qui sont finis si et seulement si le (semi-)groupe d’origine l’était. Il est possible d’incorporer cette astuce pour obtenir deux nouvelles implé- mentations, l’une dans l’esprit de FR et l’autre dans l’esprit de automgrp. Ces nouvelles implémetations sont plus efficaces que les précédentes, de plusieurs ordres de grandeur. Les deux approches restent utiles car selon le cas l’une ou l’autre sera la plus rapide. Les nouvelles impleméntations La conception de la procédure IsFinite1 est consistente avec celle de AutomatonGrowth. Ainsi IsFinite1 est beaucoup plus proche de FR que de automgrp. La version écrite ici fonctionne en parallèle sur l’automate et son dual. IsFinite1 := function ( aut , limit ) local radius , dual , curr1 , next1 , curr2 , next2 ; radius := 0; aut := MDReduced ( Prune ( aut )); # automate elague puis md - reduit dual := DualMachine ( aut ); curr1 := MealyMachine ([[1]] ,[()]); curr2 := curr1 ; next1 := aut ; next2 := dual ; while curr2 !. nrstates <> next2 !. nrstates and radius < limit do radius := radius + 1; curr1 := next1 ; next1 := Minimized ( next1 * aut ); if curr1 !. nrstates <> next1 !. nrstates then curr2 := next2 ; next2 := Minimized ( next2 * dual ); else return true ; fi; od; if curr2 !. nrstates = next2 !. nrstates then return true ; fi; return fail ; end; La procédure IsFinite2 est une amélioration de LevelOfFaithfulAction (automgrp) : la minimisation est faite sur le dual. Cette procédure peut être améliorée en parallélisant son exécution sur l’automate et son dual. IsFinite2 := function ( aut , limit ) local Fonc1 , Fonc2 , next , cs , ns , lev ; aut := MDReduced ( Prune ( aut )); if IsInvertible ( aut ) then Fonc1 := Group ; Fonc2 := PermList ; 18else Fonc1 := Semigroup ; Fonc2 := Transformation ; fi; lev := 0; cs := 1; ns := Order ( Fonc1 ( List ( aut !. output , Fonc2 ))); aut := DualMachine ( aut ); next := aut ; while cs < ns and lev < limit do lev := lev +1; cs := ns ; next := Minimized ( next * aut ); ns := Order ( Fonc1 ( List ( DualMachine ( next )!. output , Fonc2 ))); od; if cs = ns then return true ; else return fail ; fi; end; Table 2 – Temps moyen (en ms) pour détecter la finitude de (semi-)groupes 2 lettres 3 états 2 lettres 4 états 3 lettres 3 états IsFinite – FR 0,68 36,36 1 342,12 IsFinite – automgrp 0,81 1,79 3,78 IsFinite1 0,49 0,52 0,61 IsFinite2 0,49 0,62 0,70 Résultats expérimentaux. La table 2 présente le temps moyen pour détecter la finitude de (semi-)groupes engendrés par des automates de Mealy inversibles ou réversibles sur p lettres et q états, avec p+q ∈ {5, 6}. Pour que ces comparaisons soient équitables, ce qui est donné est le temps minimal pour un automate et son dual. 9 Cas à deux états Si on fixe le nombre d’états et la taille de l’alphabet, le nombre d’automates de Mealy correspondant est potentiellement très grand : il y a q qp(p!)q automates de Mealy inversibles à q états et p lettres. Si on regarde à isomorphisme de structure près, il y a 76 automates de Mealy à 2 états et 2 lettres et 10 766 772 automates de Mealy à 3 états et 3 lettres. Engendrer ces automates est un défi en soi. L’accélération des calculs permet de faire des tests systématiques sur de grandes familles d’automates. Ces tests permettent de vérifier et/ou d’élaborer des conjectures. Voici deux conjectures établies par calculs dans [8] : Conjecture 1. Tout groupe fini engendré par un automate biréversible sur p lettres et q états est d’ordre au plus #hBp,qi = p! q , où : y x ρx = (1, 2, . . . , p) ρy = (1, 3, . . . , p) ∀z 6∈ {x, y}, ρz = ( ) Bp,q : Si cette conjecture se révèle vraie, la problème de finitude serait décidable pour les automates biréversibles. Une autre conjecture (devenue depuis un résultat) obtenue par expérimentation : 19Théorème 3. Un automate de Mealy réversible à deux états engendre un semi-groupe fini ou libre. Nous allons montrer ici une partie de ce résultat. Analysons la structure des composantes connexes des puissances successives de l’automate de Mealy A. Pour m > 0, u, v ∈ Am et x, y ∈ A, s’il existe un chemin de ux vers vy dans Am+1, alors il existe un chemin de u vers v dans Am. Donc si An n’est pas connexe, il en est de même de toutes les puissances suivantes de A. Il existe donc au plus un entier n tel que An est connexe et An+1 ne l’est pas. Appelons-le degré de connexion de A. Par convention, si A n’est pas connexe, son degré de connexion est nul et il a degré de connexion un degré de connexion infini si toutes ses puissances sont connexes. On peut remarquer que l’automate Baby Aleshin (voir figure 7) est réversible, possède trois états et a un degré de connexion égal à 2 ; il engendre le semi-groupe infini non libre Z ∗3 2 = Z2 ∗ Z2 ∗ Z2 [10]. Ainsi le théorème 3 ne s’étend pas à des ensembles d’états plus grands. a b c 0|1 1|0 0|0 1|1 0|0 1|1 Figure 7 – L’automate Baby Aleshin engendre le groupe Z ∗3 2 = Z2 ∗ Z2 ∗ Z2 [10]. Proposition 12. Le degré de connexion d’un automate de Mealy réversible à deux états est fini si et seulement s’il engendre un semi-groupe fini. Ce résultat se montre par une série de petits résultats. Lemme 3. Soit un automate de Mealy réversible A ayant au moins deux états. Si A engendre un semigroupe possédant des éléments de torsion, alors son degré de connexion est fini. Idée. Notons A l’ensemble des états de A. Si hAi+ possède des éléments de torsion, alors il existe un mot u ∈ A+ et deux entiers n ≥ 0 et k > 0 tels que u n et u n+k sont équivalents. On montre que les états de la composante connexe contenant u n+2k sont tous de la forme vw2 , où |v| = |u| n et |w| = |u| k , ce qui entraîne que A(n+2k)|u| n’est pas connexe. Dans la suite de cette sous-section, A = (A, Σ, δ, ρ) est un automate de Mealy réversible à deux états (A = {x, y}), de degré de connexion fini n. Lemme 4. Soit C une composante connexe de Am, pour un certain m et soit u ∈ Am un état de C. La composante connexe de ux est de taille #C si elle ne contient pas uy et 2#C si elle contient uy. Démonstration. Soit D la composante connexe contenant ux : v ∈ Am appartient à C si et seulement s’il existe z ∈ A tel que vz appartienne à D, d’où : N ≤ #D ≤ 2N. Soient v appartenant à C et z, z¯ ∈ A, z 6= ¯z : ux et vz appartiennent à la même composante connexe si et seulement si uy et vz¯ appartiennent à la même composante connexe. D’où le résultat. Lemme 5. Soit un automate de Mealy réversible A, de degré de connexion n. Pour m ≥ n, les composantes connexes de Am sont toutes de taille 2 n. 20Idée. Par récurrence sur m ≥ n. Pour m ∈ {n, n + 1}, la propriété est vraie (en utilisant le lemme 4 pour m = n + 1). Soit m > n + 1. On suppose que les composantes connexes de Am−1 et Am sont de taille 2 n. Si C est une composante connexe de Am+1, le lemme 4 et l’hypothèse de récurrence permettent de conclure que C est de taille 2 n ou 2 n+1. On montre ensuite par l’absurde que C n’est pas de taille 2 n+1, car cela entraînerait, par le lemme 4, l’existence d’une composante connexe de Am−1 de taille 2 n−1 . Preuve de la proposition 12. Soit A un automate de Mealy réversible à deux états. Si le degré de connexion de A est nul, hd(A)i+ est le semi-groupe trivial et hAi+ est fini d’après la proposition 3. Sinon, soit n ≥ 1 le degré de connexion de A : pour un m ≥ n, les composantes connexes de Am sont toutes de taille 2 n. A numérotation des états prêt, il ne peut donc y avoir qu’un nombre fini de composantes connexes distinctes. On en déduit que hAi+ est fini. La réciproque est un cas particulier du lemme 3. Références [1] A. Akhavi, I. Klimann, S. Lombardy, J. Mairesse, and M. Picantin. On the finiteness problem for automaton (semi)groups. International Journal of Algebra and Computation, (accepted), 2011. http://arxiv.org/abs/1105.4725. [2] A. S. Antonenko. On transition functions of Mealy automata of finite growth. Matematychni Studii., 29(1) :3–17, 2008. [3] L. Bartholdi. FR Functionally recursive groups, Self-similar groups — a GAP package, Version 1.2.3, 2011. [4] The GAP Group. GAP – Groups, Algorithms, and Programming, Version 4.4.12, 2008. [5] P. Gillibert. communication personnelle, 2012. [6] R. I. Grigorchuk. On Burnside’s problem on periodic groups. Funktsional. Anal. i Prilozhen., 14(1) :53–54, 1980. [7] I. Klimann. The finiteness of a group generated by a 2-letter invertible-reversible Mealy automaton is decidable. In STACS, 2013. http ://arxiv.org/abs/1208.6324. [8] I. Klimann, J. Mairesse, and M. Picantin. Implementing computatioons in automaton (semi)groups. In N. Moreira and R. Reis, editors, CIAA, number 7381 in LNCS, pages 240–252, 2012. [9] Y. Muntyan and D. Savchuk. automgrp Automata Groups — a GAP package, Version 1.1.4.1, 2008. [10] V. Nekrashevych. Self-similar groups, volume 117 of Mathematical Surveys and Monographs. American Mathematical Society, Providence, RI, 2005. [11] P.S. Novikov. On the algorithmic unsolvability of the word problem in group theory. Trudy Mat. Inst. Steklov, 44 :1–143, 1955. in Russian. [12] D. M Savchuk and Y. Vorobets. Automata generating free produtcs of groups of order 2. J. Algebra, 336(1) :53–66, 2011. 21 Le syst`eme d’information de l’entreprise Badr Benmammar To cite this version: Badr Benmammar. Le syst`eme d’information de l’entreprise. Ecole d’ing´enieur. 2007. ´ HAL Id: cel-00662726 https://cel.archives-ouvertes.fr/cel-00662726 Submitted on 24 Jan 2012 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Le système d’information de l’entreprise Badr Benmammar benmamma@enst.frPlan  Introduction à l’informatique  Domaines d’application de l’informatique  L’informatique industrielle  L’informatique scientifique  L’informatique de gestion  L’informatique communicante  Internet  L’histoire d’Internet  Les services sur Internet  Protocoles et logiciels  Structure de l’ordinateur  Système d’exploitation  Le système d’information de l’entrepriseFormation En Algérie : USTO - ORAN 1999 Ingénieur en Informatique - Option Génie Logiciel Mention : Très bien (Major de la promotion) 2001 Ingénieur Etude et Développement Tlemcen 1994 Tlemcen Baccalauréat Série Sciences Exactes Mention : Bien En France : LaBRI ENSEIRB LIPN 2003 2005 2006 Attaché temporaire d’enseignement et de recherche (demi-service) Ingénieur de recherche Doctorat de l’Université Bordeaux 1 Mention : Très honorable 2001 2002 LIPN Master Recherche en Intelligence Artificielle et Optimisation Combinatoire Post-Doc : Chargé d’études à l’ENST 2007 ENST Le routage externe BGP4 Luc Saccavini To cite this version: Luc Saccavini. Le routage externe BGP4. 2006. HAL Id: inria-00108171 https://cel.archives-ouvertes.fr/inria-00108171 Submitted on 19 Oct 2006 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.1 LE ROUTAGE BGP4(+) / septembre 2006 1/56 V2.0 LE ROUTAGE BGP4(+) Luc.Saccavini@inria.fr septembre 20062 LE ROUTAGE BGP4(+) / septembre 2006 2/56 V2.0 Classification des protocoles de routage R Il existe 2 grandes familles de protocoles de routage R Les protocoles intérieurs (IGP) R Distance-vecteur : RIP, IGRP R État des liens : OSPF, IS-IS R Taille <100 routeurs, 1 autorité d’administration R Échange de routes, granularité = routeur R Les protocoles extérieurs (EGP) R EGP, BGP, IDRP R Taille = Internet, coopération d’entités indépendantes R Échange d’informations de routage, granularité = AS Rappel sommaire sur les types de protocoles de routage : - distance vecteur : la distance est le nombre de routeurs pour joindre une destination, chaque routeur ne connaît que son voisinage et propage les routes qu'il connaît à ses voisins (ex. RIP). - états des liens : chaque routeur connaît la topologie et l'état de l'ensemble des liens du réseau, puis en déduit les chemins optimaux. À chaque interaction les routeurs s'envoient toute leur table de routage (ex. OSPF). Le protocole BGP peut être considéré comme à mi-chemin entre les deux types de protocoles précédents. En effet, l’échange de chemins d’AS permet à chaque routeur de reconstruire une grande partie de la topologie du réseau, ce qui est caractéristique des protocoles de type «état des liens», mais deux routeurs voisins n’échangent que les routes qu’ils connaissent, ce qui est caractéristique d’un protocole de type «distance-vecteur». Références sur les autres protocoles de routage : IPv4 IPv6 -------------------------------------------------------------------------------------------------------------- RIP (Routing Information Protocol) RFC 2453, 11/98 «RIPv2» RFC2080, 01/97 «RIPng» IGRP voir manuel IOS de Cisco EIGRP voir manuel IOS de Cisco OSPF (Open Shortest Path First) RFC 2328, 04/98 «OSPv2» RFC 2740, 12/99 «OSPv3» IS-IS (Intermediate System to Intermediate System ISO/IEC 10589, (ou RFC1142, 02/90) EGP (Exterior Gateway Protoco) RFC 904 04/84 -------- IDRP (Inter Domain Routing Protocol) ISO/IEC IS10747 10/93 BGP (Border Gateway Protocol) RFC 4271, 01/06 «BGP4» RFC 2545, 03/99 «BGP4+»3 LE ROUTAGE BGP4(+) / septembre 2006 3/56 V2.0 Notion de système autonome (AS) R Ensemble de routeurs sous une même entité administrative SYSTÈME AUTONOME R1 R2 R4 R5 Routeurs internes Routeur de bord annonceur BGP R3 Au sein d’un AS plusieurs IGP (et/ou un routage statique) peuvent être utilisés. Fonctionnellement, on distingue 2 types de Systèmes Autonomes : - les AS clients : ils sont les producteurs ou les consommateurs de paquets IP - les AS de transit : ils ne font que transporter les paquets IP qui leurs sont confiés Un AS n’est à priori pas lié à la localisation géographique des différents routeurs qui le constituent.4 LE ROUTAGE BGP4(+) / septembre 2006 4/56 V2.0 Objectifs généraux du protocole BGP R Échanger des routes (du trafic) entre organismes indépendants R Opérateurs R Gros sites mono ou multi connectés R Implémenter la politique de routage de chaque organisme R Respect des contrats passés entre organismes R Sûreté de fonctionnement R Être indépendant des IGP utilisés en interne à un organisme R Supporter un passage à l’échelle (de l’Internet) R Minimiser le trafic induit sur les liens R Donner une bonne stabilité au routage BGP élimine les boucles de routage en examinant le chemin d’AS associé à une route. Les RFC1265 et RFC1774 contiennent une étude des propriétés de mise à l’échelle du protocole BGP. Dans cette étude, si on appelle N le nombre total de préfixes annoncés dans l’Internet, M la distance moyenne entre les AS (exprimée en nombre d’AS), et A le nombre total d’AS de l’Internet, alors, le volume d’information échangé lors du premier échange entre deux voisins BGP est proportionnel à : O(N+M*A). Le volume de mémoire nécessaire dans chaque routeur étant proportionnel à : O((N+M*A)*K), avec K=nombre moyen de voisins BGP par routeur. Nombre de Distance moy. Nombre moy. Nombre moy. Volume initial Volume mém. préfixes (N) inter-AS (M) d’AS (A) de voisins (K) échangé utilisé -------------------------------------------------------------------------------------------------------------- 2100 5 59 3 9000 27000 4000 10 100 6 18000 108000 10000 15 300 10 49000 490000 20000 8 400 86000 40000 15 400 172000 100000 20 3000 20 520000 1040000 La première ligne de ce tableau correspond à la situation de début 1991, la quatrième à celle de fin 1994, la dernière au 1er semestre 2001.5 LE ROUTAGE BGP4(+) / septembre 2006 5/56 V2.0 Principes généraux du protocole BGP R Protocole de type PATH-vecteur R Chaque entité est identifiée par un numéro d’AS R La granularité du routage est le Système Autonome (AS) R Le support de la session BGP est TCP (port 179) R Les sessions BGP sont établies entre les routeurs de bord d’AS R Protocole point à point entre routeurs de bord d’AS R Protocole symétrique R (un annonceur BGP n’est pas forcément un routeur) Le choix de TCP comme support du protocole est important car il le libère du problème de garantir une bonne transmission des informations. C'est ce choix qui a permis aux architectes du protocole de ne plus procéder que par mise à jour des informations modifiées après l'envoi initial de la table complète lors de l'ouverture de la session entre deux routeurs. Cela permet de minimiser le trafic induit. La politique de routage se traduit par le filtrage des routes apprises et annoncées (ne jamais oublier qu’annoncer une route vers un réseau c’est accepter du trafic à destination de ce réseau). Le filtrage (au sens BGP) peut agir en «tout ou rien» sur la route (annonce, prise en compte), mais aussi par modification des attributs de la route pour modifier la préférence accordée à la route comme on le verra plus loin.6 LE ROUTAGE BGP4(+) / septembre 2006 6/56 V2.0 Exemple de connexion BGP (1) R2 AS 200 AS 100 R1 BGP R Client connecté à un seul Fournisseur d’Accès Internet (FAI). Seuls les routeurs de bord de l’AS sont figurés. Client Session BGP AS officiels (enregistrés) : de 1 à 64511 AS privés (non-enregistrés) : de 64512 à 65535 FAI Lien physique Les routeurs qui échangent leurs informations en BGP doivent être directement connectés (liaison point à point ou LAN partagé). C'est la conséquence logique de la frontière administrative qui les sépare et qui empêche que le routage à travers un réseau de routeurs puisse être assuré par un IGP. Exceptionnellement, des routeurs de bord peuvent ne pas être en vis-à-vis (ex. le routeur où arrive le lien externe à l’AS ne connaît pas le protocole BGP). L’utilisation de numéros d’AS privés est à éviter pour des AS terminaux (clients) car une connexion à un deuxième AS de transit (FAI) peut conduire à une configuration illégale. Les numéros d’AS officiels sont attribués par les mêmes organismes qui sont en charge de distribuer les réseaux IP : - RIPE-NCC : zone Europe - APNIC : zone Asie et Pacifique - ARIN : zone Amérique du Nord - AFRINIC : zone Afrique - LACNIC : zone Amérique Latine et îles Caraïbes C ’est le même numéro d’AS qui est utilisé pour les échanges de préfixes IPv4 et IPv6 (car BGP est multi-protocole)..7 LE ROUTAGE BGP4(+) / septembre 2006 7/56 V2.0 Exemple de connexion BGP (2) R3 AS 300 R2 AS 200 BGP BGP R Client connecté à deux fournisseurs : AS 100 R1 Client FAI 1 FAI 2 R1 à deux voisins : R2 et R3 L’AS client peut choisir de faire passer tout son trafic par FAI1 (AS 200) et garder sa liaison vers FAI2 (AS 300) en secours, ou équilibrer son trafic entre FAI1 et FAI2. C’est le cas typique qui amène à utiliser le protocole de routage BGP pour réagir dynamiquement en cas de défaillance d’un lien. Dans le cas précédent, le seul intérêt d ’avoir un protocole de routage dynamique (par rapport à une simple route par défaut) est de pouvoir avoir une alerte (en provenance de la session BGP) en cas de défaillance du FAI.8 LE ROUTAGE BGP4(+) / septembre 2006 8/56 V2.0 Exemple de connexion BGP (3) R3 AS 300 R2 AS 200 R4 AS 100 R1 R Client connecté à 2 fournisseurs par 2 routeurs différents : E-BGP E-BGP I-BGP FAI 2 FAI 1 BGP Externe BGP Interne Client Ce schéma correspond au cas classique d'un client qui se connecte à deux fournisseurs pour s'assurer une protection contre la défaillance de l'un d'entre eux ou de l’un de ses routeurs de bord R1 ou R4. On notera la présence d’une connexion BGP entre les routeurs de bord de l’AS 100. Cette connexion BGP «interne» (notée I-BGP) est nécessaire pour maintenir la cohérence entre ces 2 routeurs qui doivent posséder les mêmes informations de routage (se souvenir qu’en BGP la granularité du routage est l’AS). L’un des principaux intérêts de l’I-BGP est de permettre la redondance des routeurs de bord d’un AS.9 LE ROUTAGE BGP4(+) / septembre 2006 9/56 V2.0 Exemple de connexion BGP (4) R3 AS 300 R2 AS 200 R Client connecté à 3 fournisseurs avec redondance sur l’un : E-BGP E-BGP FAI2 FAI1 BGP Externe BGP Interne R7 AS 400 R8 E-BGP E-BGP R4 AS 100 R1 I-BGP R6 R5 FAI3 Client Noter le maillage complet de sessions I-BGP entre R1, R4, R6, R5 dans l’AS 100. Pour les autres AS, les 4 routeurs de bord de l’AS 100 sont vus, du point de vue fonctionnel comme un seul routeur (avec 4 interfaces). Cet exemple montre aussi une des limitations d'avoir à faire un maillage complet de sessions IBGP entre les routeurs de bord d'un même AS (nombre de sessions = N*(N+1)/2). On verra à la fin de l'exposé qu’il existe des solutions (réflecteurs de routes) qui permettent de diminuer le nombre de sessions I-BGP. Sauf mention explicite, tout ce qui est exposé dans la suite concerne les sessions BGP externes. Dans le cas de deux AS multiplement connectés comme AS400 et AS100 et si l’ensemble des routeurs de bord des deux AS partagent un même LAN, les routeurs de bord ne sont pas forcément des annonceurs BGP, et vice-versa.10 LE ROUTAGE BGP4(+) / septembre 2006 10/56 V2.0 Règles pour les AS multi-connectés R Les routeurs de bord d’un même AS échangent leurs informations de routage en I-BGP R Les connexions en I-BGP forment un maillage complet sur les routeurs de bord d’un AS R Ce sont les IGP internes à l’AS qui assurent et maintiennent la connectivité entre les routeurs de bord qui échangent des informations de routage en I-BGP R Le numéro d’AS est un numéro officiel (si connexions vers 2 AS différents) Attention, dans un même AS, c'est bien l'IGP (ou le routage statique) qui est responsable de la connectivité interne de l'AS. Si un routeur de bord ne peut pas atteindre une route de son AS (qui lui a été annoncée par un voisin interne par exemple), il ne la propagera pas à ses voisins BGP (externes ou internes).11 LE ROUTAGE BGP4(+) / septembre 2006 11/56 V2.0 Les composants d’un annonceur BGP R Une description des politiques de routage (entrée et sortie) R Des tables où sont stockées les informations de routage R En entrée : Adj-RIB-in (informations reçues et non traitées) R En sortie : Adj-RIB-out (informations à annoncer) R En interne : Loc-RIB (informations locales au routeur) R Un automate implémentant le processus de décision R Des sessions avec ses voisins pour échanger les informations de routage L’expression ‘routeur BGP’ est très souvent utilisée à la place de ‘annonceur BGP’ car il est peu fréquent qu’un annonceur ne soit pas aussi un routeur. Le cas pouvant cependant se produire (ex. serveurs de routes), le standard (RFC4271) utilise systématiquement l’expression ‘annonceur BGP’. Concernant les 3 tables où sont stockées les informations de routage, le standard ne spécifie pas qu'elles doivent être physiquement séparées, ce qui impliquerait un gaspillage de mémoire qui est une ressource critique sur les routeurs qui doivent connaître toutes les routes de l'Internet (environ 180 000 en septembre 2006). La spécification de l’expression de la politique de routage dans BGP n'est pas standardisée, elle dépend donc des implémentations du protocole. Une telle standardisation n’est suggérée que dans RFC1786 (status Informational) pour les bases des organismes d’allocation (RIPE-NCC, ARIN, APNIC, LACNIC, AFRINIC).12 LE ROUTAGE BGP4(+) / septembre 2006 12/56 V2.0 Schéma fonctionnel du processus BGP Politique de filtrage d‘annonces en entrée Politique de filtrage d‘annonces sortie Adj-RIB-in Loc-RIB Adj-RIB-out Annonceur BGP Annonces reçues Annonces émises Table de routage locale Configuration locale routeur (+IGP) Processus de décision Noter la flèche à double sens entre la table Loc-RIB et le processus de décision en bas du schéma. En effet, si c'est bien la table Loc-RIB qui permet au final de bâtir la table de routage, elle reçoit aussi des informations sur les routes locales de l'AS à travers des directives du fichier de configuration (annonces statiques ou redistribution des routes apprises par l'IGP dans BGP). Ce schéma ne concerne que les annonces reçues et faites en E-BGP. En I-BGP, le schéma est plus simple (voir fin d’exposé). Quand l’annonceur BGP est aussi un routeur, sa table de routage locale est construite à partir des informations de routage produites par le processus BGP, les autres protocoles de routage, et sa configuration. S’il existe plusieurs routes vers le même réseau, une métrique nouvelle est introduite (la ‘distance administrative’ dans l’implémentation de Cisco) pour régler le choix de la route à installer dans la table de routage.13 LE ROUTAGE BGP4(+) / septembre 2006 13/56 V2.0 La vie du processus BGP R Automate à 6 états, qui réagit sur 13 événements R Il interagit avec les autres processus BGP par échange de 4 types de messages : R OPEN R KEEPALIVE R NOTIFICATION R UPDATE R Taille des messages de 19 à 4096 octets R Éventuellement sécurisés par MD5 Les messages étant de longueur variable, ils sont marqués dans le flot d'octets du canal TCP par une séquence spéciale de trois octets qui repère leur début.14 LE ROUTAGE BGP4(+) / septembre 2006 14/56 V2.0 Le message OPEN R 1er message envoyé après l’ouverture de la session TCP R Informe son voisin de : R Sa version de BGP R Son numéro d’AS R D’un numéro identifiant le processus BGP R Propose une valeur de temps de maintien de la session R Valeur suggérée : 90 secondes R Si 0 : maintien sans limite de durée R Met le processus en attente d’un KEEPALIVE En cas de démarrage simultané de deux sessions BGP par deux voisins, il faut choisir de ne conserver que l'une des deux connexions. Pour cela on ne conserve que celle ouverte par le processus de numéro identifiant le plus petit. Pour déterminer ce numéro identifiant, les implémentations de Cisco et Zebra choisissent par défaut le plus petit numéro IP de interfaces connues.15 LE ROUTAGE BGP4(+) / septembre 2006 15/56 V2.0 Le message KEEPALIVE R Confirme un OPEN R Réarme le minuteur contrôlant le temps de maintien de la session R Si temps de maintien non égal à 0 R Est ré-émis toutes les 30 secondes (suggéré) R Message de taille minimum (19 octets) En cas d'absence de modification de leur table de routage, les routeurs ne s'échangent plus que des messages KEEPALIVE toutes les 30 secondes, ce qui génère un trafic limité à environ 5bits/s au niveau BGP. L'implémentation BGP de Cisco porte par défaut à 60 secondes l'intervalle entre 2 messages KEEPALIVE, celle de Zebra à 30 secondes.16 LE ROUTAGE BGP4(+) / septembre 2006 16/56 V2.0 Le message NOTIFICATION R Ferme la session BGP R Fournit un code et un sous code renseignants sur l’erreur R Ferme aussi la session TCP R Annule toutes les routes apprises par BGP R Émis sur incidents : R Pas de KEEPALIVE pendant 90s () R Message incorrect R Problème dans le processus BGP R …. Le message NOTIFICATION est envoyé au moindre incident lors du déroulement du processus BGP. Le fait de supprimer lors de son arrivée toutes les routes apprises par BGP peut provoquer des instabilités de routage injustifiées (un incident ne veut pas forcément dire que toutes les routes apprises précédemment sont devenues fausses). Dans son implémentation de BGP, Cisco donne la possibilité de supprimer cette fonctionnalité, en conservant telle quelle la table de routage en cas de réception d’un message NOTIFICATION.17 LE ROUTAGE BGP4(+) / septembre 2006 17/56 V2.0 Le message UPDATE R Sert à échanger les informations de routage R Routes à éliminer (éventuellement) R Ensemble des attributs de la route R Ensemble des réseaux accessibles (NLRI) R Chaque réseau est défini par (préfixe, longueur) R Envoyé uniquement si changement R Active le processus BGP R Modification des RIB f(Update, politique de routage, conf.) R Émission d’un message UPDATE vers les autres voisins C'est le message principal du protocole. Lors du paramétrage d'un processus BGP il faut aussi faire un choix entre synchroniser ou pas les annonces de l'IGP et les annonces BGP.18 LE ROUTAGE BGP4(+) / septembre 2006 18/56 V2.0 Le processus BGP R L’automate à états finis du processus BGP (simplifié au chemin principal, sans la gestion des incidents) LIBRE EN CONNEXION OPEN ENVOYÉ Session TCP ouverte Envoi OPEN Envoi KEEPALIVE Démarrage BGP Ouverture session TCP Réception OPEN Traitement, envoi UPDATE SESSION ÉTABLIE OPEN CONFIRMÉ Réception KEEPALIVE Fin initialisation Réception UPDATE Réception KEEPALIVE Réception NOTIFICATION, problème dans UPDATE, etc.. Fermeture session TCP L’état supplémentaire non figuré (ACTIF) sur le schéma se rapporte à la phase d'initialisation de la session BGP et concerne la gestion des incidents au niveau TCP pendant cette phase. La liste complète des événements pouvant arriver est la suivante : 1 : Démarrage BGP 2 : Fin BGP 3 : Session TCP ouverte 4 : Session TCP fermée 5 : Ouverture session TCP échouée 6 : Erreur fatale dans session TCP 7 : Minuteur ConnectRetry expiré 8 : Minuteur Hold Time expiré 9 : Minuteur KeepAlive expiré 10 : Réception d’un message OPEN 11 : Réception d’un message KEEPALIVE 12 : Réception d’un message UPDATE 13 : Réception d’un message NOTIFICATION19 LE ROUTAGE BGP4(+) / septembre 2006 19/56 V2.0 Le message UPDATE : attributs de la route R Classés en 4 catégories : R Reconnus, obligatoires R ORIGIN, AS_PATH, NEXT_HOP R Reconnus, non-obligatoires R LOCAL_PREF, ATOMIC_AGGREGATE R Optionnels, annonçables (transitifs ou non) R MULTI_EXIT_DISC (MED), AGGREGATOR R Optionnels, non-annonçables R WEIGHT (spécifique à Cisco) Tout ces attributs de route concernent le cas principal qui est l’E-BGP. Un seul est spécifique de l’I-BGP, c’est le LOCAL_PREF qui n’est annoncé qu’à l'intérieur de l'AS dans les sessions IBGP. Pour un attribut de route, le fait d’appartenir à la catégorie «reconnu» impose au processus BGP de savoir le traiter s’il est présent dans une annonce. Inversement, s’il appartient à la catégorie «optionnel» un processus BGP n’est pas dans l’obligation de savoir le prendre en compte pour le traiter. Le caractère «transitif» d’un attribut lui donne une portée illimitée. Le caractère «non-transitif» d’un attribut limite sa portée à l’AS (ex. LOCAL_PREF) ou à l’AS voisin (ex. MED).20 LE ROUTAGE BGP4(+) / septembre 2006 20/56 V2.0 Les attributs de route obligatoires (1) R ORIGIN R Donne l’origine de la route, peut prendre 3 valeurs : R IGP : la route est intérieure à l’AS d’origine R EGP : la route a été apprise par le protocole EGP R Incomplète : l’origine de la route est inconnue ou apprise par un autre moyen (redistribution des routes statiques ou connectées dans BGP par exemple) On ne voit dans la pratique que les valeurs "IGP" ou "Incomplete" qui sont positionnées. (même sur des routeurs de points d'échange qui connaissent environ 130 000 routes), le protocole EGP n’étant plus utilisé. Dans les implémentations de Cisco ou de Zebra, les valeurs «IGP», «EGP» ou «incomplete», sont respectivement représentées par les lettres «i», «e» ou «?» dans les représentations des tables d’informations de routage. Exemple (Cisco ou Zebra) : cs7206>sh ip bgp BGP table version is 28403, local router ID is 194.199.17.59 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 129.88.0.0 193.54.188.1 19 0 64515 i *> 129.88.1.250/32 193.54.188.1 19 0 64515 ? *> 129.88.1.254/32 193.54.188.1 11 0 64515 ? *> 129.88.3.0/24 193.54.188.1 18 0 64515 ? *> 129.88.100.0/24 194.199.17.35 0 32768 i *> 129.88.103.0/24 193.54.188.1 20 0 64515 ? *> 129.88.253.0/24 193.54.188.1 20 0 64515 ? *> 132.168.0.0 193.54.188.5 0 0 2063 i21 LE ROUTAGE BGP4(+) / septembre 2006 21/56 V2.0 Les attributs de route obligatoires (2) R AS_PATH R Donne la route sous forme d’une liste de segments d’AS R Les segments sont ordonnés ou non (AS_SET) R Chaque routeur rajoute son numéro d’AS aux AS_PATH des routes qu’il a apprises avant de les ré-annoncer R NEXT_HOP R Donne l’adresse IP du prochain routeur qui devrait être utilisé (peut éviter un rebond si plusieurs routeurs BGP sont sur un même réseau local) Les segments d’AS non ordonnés sont formés par un routeur qui a fait une opération d'agrégation. Ce dernier regroupe dans cet ensemble non ordonné tous les AS associés aux routes qu'il a agrégées. Cela permet aux autres routeurs de continuer à détecter d'éventuelles boucles concernant ces routes. Dans l’implémentation de Cisco, les segments d’AS dans un AS_PATH sont encadrés par des accolades {}.22 LE ROUTAGE BGP4(+) / septembre 2006 22/56 V2.0 Exemple 1 : tables Adj-RIB-in AS 200 R2 2001:660:114:0:2::/64 AS 100 R1 2001:660:114:0:1::/64 2001:660:114:9:1::1 2001:660:114:9:1::2 NLRI 2001:660:114:0:2::/64 ORIGIN i AS_PATH 200 NEXT_HOP 2001:660:114:9:1::2 NLRI 2001:660:114:0:1::/64 ORIGIN i AS_PATH 100 NEXT_HOP 2001:660:114:9:1::123 LE ROUTAGE BGP4(+) / septembre 2006 23/56 V2.0 Exemple 1 : configuration sur ZEBRA(*) AS 200 R2 2001:660:114:0:2::/64 AS 100 R1 2001:660:114:0:1::/64 2001:660:114:9:1::1 2001:660:114:9:1::2 router bgp 200 bgp router-id 0.0.0.200 neighbor 2001:660:114:9:1::1 remote-as 100 address-family ipv6 unicast neighbor 2001:660:114:9:1::1 activate network 2001:660:114:0:2::/64 exit-address-family router bgp 100 bgp router-id 0.0.0.100 neighbor 2001:660:114:9:1::2 remote-as 200 address-family ipv6 unicast neighbor 2001:660:114:9:1::2 activate network 2001:660:114:0:1::/64 exit-address-family (*) version 0.96a Noter que l'annonce des réseaux internes de l'AS se fait par une directive "network" qui positionne aussi l'attribut ORIGIN à la valeur "IGP" (cf. planche précédente). Attention, cette directive n’a pas du tout le même sens qu’avec certains IGP (ex. OSPF), de plus les implémentations de Cisco et Zebra diffèrent sensiblement quand à l’effet d’une directive "network" : Pour Cisco, cette directive ne fait que positionner l’attribut ORIGIN à IGP, mais ne force pas l’annonce de la route concernant ce réseau en BGP. Cette annonce est conditionnée au fait que le routeur sache bien router ce réseau. Ce comportement est normal pour un routeur, mais une instabilité de l’IGP interne à l’AS se propage hors de l’AS et peut s’avérer pénalisant). Pour Zebra, cette directive positionne l’attribut ORIGIN à IGP, et provoque l’annonce de la route concernant ce réseau en BGP. Ce comportement évite les instabilité d’annonces de route, mais peut provoquer un trafic inutile sur le lien inter-AS. Noter aussi que la première directive neighbor (ex neighbor 2001:660:114:9:1::2 remote-as 200) identifie le voisin et le protocole IP de transport (IPv6 dans cet exemple). La deuxième directive neighbor (ex neighbor 2001:660:114:9:1::2 activate) qui est positionnée dans la séquence spécifique au protocole IPv6 (ex address-family ipv6 unicast) active spécifiquement des échanges d’informations de routage concernant le protocole IPv6.24 LE ROUTAGE BGP4(+) / septembre 2006 24/56 V2.0 Exemple 2 : tables Adj-RIB-in AS 300 R3 2001:660:114:0:3::/64 AS 200 R2 2001:660:114:0:2::/64 AS 100 R1 2001:660:114:0:1::/64 AS_PATH 100 100, 300 NLRI 2001:660:114:0:1::/64 2001:660:114:0:3::/64 ORIGIN i i NEXT_HOP 2001:660:114:9:1::1 2001:660:114:9:1::1 2001:660:114:9:1::1 2001:660:114:9:1::2 2001:660:114:9:2::1 2001:660:114:9:2::3 AS_PATH 200 300 NLRI 2001:660:114:0:2::/64 2001:660:114:0:3::/64 ORIGIN i i NEXT_HOP 2001:660:114:9:1::2 2001:660:114:9:2::325 LE ROUTAGE BGP4(+) / septembre 2006 25/56 V2.0 Exemple 2 : configuration sur ZEBRA(*) AS 300 R3 2001:660:114:0:3::/64 AS 200 R2 2001:660:114:0:2::/64 AS 100 R1 2001:660:114:0:1::/64 2001:660:114:9:1::1 2001:660:114:9:1::2 2001:660:114:9:2::1 2001:660:114:9:2::3 router bgp 100 bgp router-id 0.0.0.100 neighbor 2001:660:114:9:1::2 remote-as 200 neighbor 2001:660:114:9:2::3 remote-as 300 address-family ipv6 unicast neighbor 2001:660:114:9:1::2 activate neighbor 2001:660:114:9:2::3 activate network 2001:660:114:0:1::/64 exit-address-family (*) version 0.96a La configuration de R3 est symétrique de celle de R2. L’AS 100 qui sert d’AS de transit pour les AS 200 et 300 doit synchroniser les annonces entre BGP et l’IGP interne à l’AS. Sinon un effet de «trou noir» peut se produire.26 LE ROUTAGE BGP4(+) / septembre 2006 26/56 V2.0 2001:660:114:9:3::2 2001:660:114:9:3::3 Exemple 3 : tables Adj-RIB-in AS 300 R3 2001:660:114:0:3::/64 AS 200 R2 2001:660:114:0:2::/64 AS 100 R1 2001:660:114:0:1::/64 AS_PATH 100 100, 300 300 300, 100 NLRI 2001:660:114:0:1::/64 2001:660:114:0:3::/64 2001:660:114:0:3::/64 2001:660:114:0:1::/64 ORIGIN i i i i NEXT_HOP 2001:660:114:9:1::1 2001:660:114:9:1::1 2001:660:114:9:3::3 2001:660:114:9:3::3 2001:660:114:9:1::1 2001:660:114:9:1::2 2001:660:114:9:2::1 2001:660:114:9:2::3 AS_PATH 200 300 200, 300 300, 200 NLRI 2001:660:114:0:2::/64 2001:660:114:0:3::/64 2001:660:114:0:3::/64 2001:660:114:0:2::/64 ORIGIN i i i i NEXT_HOP 2001:660:114:9:1::2 2001:660:114:9:2::3 2001:660:114:9:1::2 2001:660:114:9:2::3 Noter la présence de plusieurs routes pour le même réseau dans les tables des routeurs R1, R2 (et R3 par symétrie).27 LE ROUTAGE BGP4(+) / septembre 2006 27/56 V2.0 Exemple 3 : configuration sur ZEBRA(*) AS 300 R3 2001:660:114:0:3::/64 AS 200 R2 2001:660:114:0:2::/64 AS 100 R1 2001:660:114:0:1::/64 2001:660:114:9:1::1 2001:660:114:9:1::2 2001:660:114:9:2::1 2001:660:114:9:2::3 router bgp 200 bgp router-id 0.0.0.200 neighbor 2001:660:114:9:1::1 remote-as 100 neighbor 2001:660:114:9:3::3 remote-as 300 address-family ipv6 unicast neighbor 2001:660:114:9:1::1 activate neighbor 2001:660:114:9:3::3 activate network 2001:660:114:0:2::/64 exit-address-family 2001:660:114:9:3::2 2001:660:114:9:3::3 (*) version 0.96a28 LE ROUTAGE BGP4(+) / septembre 2006 28/56 V2.0 Les attributs de route optionnels (1) R LOCAL_PREF (non transitif, discretionary) R Pondère la priorité donnée aux routes en interne à l’AS R Jamais annoncé en E-BGP R ATOMIC_AGGREGATE (transitif, discretionary) R Indicateur d’agrégation R Quand des routes plus précises ne sont pas annoncées R AGGREGATOR (transitif) R Donne l’AS qui a formé la route agrégée R L'adresse IP du routeur qui a fait l’agrégation L’attribut LOCAL_PREF est un puissant outil d’expression de la politique de routage à l’intérieur d’un AS car il est pris en compte avant la longueur de l’AS_PATH dans le choix entres des routes concurrentes. Noter le caractère non-transitif de l’attribut de route LOCAL_PREF qui n’est donc pas transmis hors de l’AS.29 LE ROUTAGE BGP4(+) / septembre 2006 29/56 V2.0 Les attributs de route optionnels (2) R MULTI_EXT_DISC ou MED (non transitif) R Permet de discriminer les différents points de connexion d’un AS multi-connecté (plus faible valeur préférée) R WEIGHT (non transitif, spécifique Cisco) R Pondère localement (au routeur) la priorité des routes BGP R COMMUNITY (transitif) R Pour un ensemble de routeurs ayant une même propriété RTrois valeurs reconnues R no-export : pas annoncé aux voisins de la confédération R no-advertise : pas annoncé aux voisins BGP R no-export-subconfed : pas annoncé en E-BGP Dans la version 3 de BGP, l’attribut MED était appelé Inter-AS_Metric, l’implémentation Cisco de BGP-4 a gardé le terme de Metric pour certaines commandes manipulant le MED. Cette implémentation permet aussi de comparer des MED d’AS différents (bgp always-compare-med sur IOS Cisco). On pourra aussi consulter le RFC4451 ‘BGP MULTI_EXT_DISC (MED) Considerations’ sur l’usage et la pratique de l’attribut MED. Pour l’attribut COMMUNITY, le standard (RFC1997) recommande de coder le numéro d’AS dans les deux premiers octets, les 2 suivants étant laissés à disposition des administrateurs de l’AS. Une communauté de routeurs peut s’étendre sur plusieurs AS. L’implémentation de Cisco connaît une valeur prédéfinie égale à «internet». L’attribut WEIGHT peut varier de 0 à 32768, les plus grandes valeurs sont préférées. Par défaut, il prend les valeurs suivantes : - 32768 si la route est initiée par le routeur - 0 pour les autres routes30 LE ROUTAGE BGP4(+) / septembre 2006 30/56 V2.0 La portée de quelques attributs de route R1 AS 100 AS 300 R3 AS 200 R2 ORIGIN (AS_PATH) NEXT_HOP LOCAL_PREF MULTI_EXT_DISC WEIGHT ORIGIN (100, AS_PATH) NEXT_HOP{R1} MULTI_EXT_DISC ORIGIN (200, 100, AS_PATH) NEXT_HOP {R2} ORIGIN (AS_PATH) NEXT_HOP LOCAL_PREF R1’ L'attribut MED n'est pas annoncé dans l'AS du routeur de bord R1 mais à son voisin extérieur (qui ne le propage pas). L'attribut LOCAL_PREF n'est annoncé que dans l'AS du routeur de bord. L'attribut NEXT_HOP est modifié par chaque traversée d’AS. L'attribut AS_PATH est préfixé du numéro d’AS à chaque traversée d’AS. L'attribut ORIGIN n’est jamais modifié.31 LE ROUTAGE BGP4(+) / septembre 2006 31/56 V2.0 Le processus de décision (1) R Il est enclenché par une annonce de route R Il se déroule en trois phases R Calcul du degré de préférence de chaque route apprise R Choix des meilleures routes à installer dans RIB-Loc R Choix des routes qui vont être annoncées R Il applique aux informations de routage un traitement basé sur RCritères techniques : suppression boucles, optimisations, … RCritères administratifs : application de la politique de routage de l’AS. Pour être prise en compte une annonce de route doit avoir son NEXT_HOP routable. Une route interne n’est annoncée par un routeur que s’il sait la joindre. Une route externe n’est annoncée par un routeur que s’il sait joindre le NEXT_HOP. Une route dont l’attribut NEXT_HOP est l’adresse IP du voisin n’est pas annoncée à ce voisin (qui la connaît déjà !).32 LE ROUTAGE BGP4(+) / septembre 2006 32/56 V2.0 Le processus de décision (2) R Critères de choix entre 2 routes (priorités décroissantes) : RWEIGHT (propriétaire Cisco, plus grand préféré) RLOCAL_PREF le plus grand RRoute initiée par le processus BGP local RAS_PATH minimum RORIGIN minimum (IGP -> EGP -> Incomplete) RMULTI_EXT_DISC minimum RRoute externe préférée à une route interne (à l’AS) RRoute vers le plus proche voisin local (au sens de l’IGP) RRoute vers le routeur BGP de plus petite adresse IP L’installation d’une route dans la table de routage doit prendre en compte le fait qu’une route peut être apprise par plusieurs protocoles de routage différents. L’implémentation de Cisco utilise la notion de distance administrative pour cela. Le choix entre 2 routes se fait en prenant celle qui a la distance administrative la plus faible. Les valeurs par défaut des distances administratives associées aux origines des routes sont : Route directement connectée 0 Route statique 1 Route apprise en E-BGP 20 Route apprise en EIGRP (interne) 90 Route apprise en IGRP 100 Route apprise en OSPF 110 Route apprise en ISIS 115 Route apprise en RIP 120 Route apprise en EGP 140 Route apprise en EIGRP (externe) 170 Route apprise en I-BGP 200 Route apprise en BGP (local) 200 Route d’origine inconnue 25533 LE ROUTAGE BGP4(+) / septembre 2006 33/56 V2.0 Différences entre E-BGP et I-BGP R Une annonce reçue en I-BGP n’est pas ré-annoncée en I-BGP R L’attribut LOCAL_PREF n’est annoncé qu’en I-BGP R Seuls les voisins E-BGP doivent être directement connectés R Les annonces I-BGP ne modifient pas l’AS_PATH R Les annonces I-BGP ne modifient pas le NEXT_HOP R Le MED n’est pas annoncé en I-BGP Le traitement différent appliqué aux attributs de route suivant que le voisin BGP est externe ou interne est résumé dans le tableau suivant : ATTRIBUT E-BGP I-BGP ----------------------------------------------------------------------------------------------------------------- AS_PATH =(local AS+AS_PATH) non modifié si reçu en E-BGP NEXT_HOP =@IP annonceur non modifié MED =métrique non annoncé LOCAL_PREF pas annoncé annoncé ATOMIC_AGGREGATE AGGREGATOR Certains minuteurs (vus plus loin) sont aussi traités différemment : MINUTEUR E-BGP I-BGP ------------------------------------------------------------------------------------------------------------------ MinRouteAdvertisement pris en compte pas pris en compte (pour accélérer la convergence dans l’AS)34 LE ROUTAGE BGP4(+) / septembre 2006 34/56 V2.0 L’annonce des routes internes d’un AS R Statique R Pas d’instabilité de routage, mais trous noirs possibles R Exemples en IOS R redistribute [static|connected] -> ORIGIN: Incomplete R network -> ORIGIN: IGP R Dynamique R Suit au mieux l’état du réseau, nécessite du filtrage R Exemples en IOS R redistribute -> ORIGIN: IGP La redistribution de routes apprises dynamiquement est difficile à contrôler. Il est nécessaire de faire attention à ne pas faire boucler la redistribution de routes entre l’IGP et BGP (notamment la route par défaut !). L’annonce statique est à préférer à priori pour annoncer les routes internes de l’AS par BGP.35 LE ROUTAGE BGP4(+) / septembre 2006 35/56 V2.0 La politique de routage R Elle peut influencer : R Le traitement des routes reçues R Le traitement des routes annoncées R L'interaction avec les IGP de l’AS R En pratique elle s’exprime par : R Du filtrage de réseaux R Du filtrage de routes (AS_PATH) R De la manipulation d’attributs de routes36 LE ROUTAGE BGP4(+) / septembre 2006 36/56 V2.0 Politique de routage : exemple de filtrage de réseaux sur ZEBRA R Filtrage des réseaux annoncés : AS100 ne veut pas servir d’AS de transit pour le réseau 2001:660:114:0:3::/64 de l’AS300 AS 300 R3 2001:660:114:0:3::/64 AS 200 R2 2001:660:114:0:2::/64 AS 100 R1 2001:660:114:0:1::/64 2001:660:114:9:1::1 2001:660:114:9:1::2 2001:660:114:9:2::1 2001:660:114:9:2::3 router bgp 100 bgp router-id 0.0.0.100 neighbor 2001:660:114:9:1::2 remote-as 200 […..] neighbor 2001:660:114:9:1::2 distribute-list 1 out access-list 1 deny 2001:660:114:0:3::/64 le 128 access-list 1 permit ::/0 le 128 Le filtrage BGP s’appuie sur le même mécanisme des access-list qui est utilisé pour le filtrage des paquets IP. L’application de l’access-list à une session BGP (au lieu d’une interface dans le cas de filtrage de paquets IP) permet d’éliminer certains réseaux d’une annonce reçue (paramètre ‘in’) ou faite (paramètre ‘out’). Dans le cas ci-dessus, l’access-list est à appliquer à toutes les autres sessions BGP que pourrait avoir le routeur R1.37 LE ROUTAGE BGP4(+) / septembre 2006 37/56 V2.0 Politique de routage : exemple de filtrage de réseaux sur ZEBRA R Filtrage des réseaux annoncés : AS100 ne veut pas servir d’AS de transit pour le réseau 2001:660:114:0:3::/64 de l’AS300 (variante) AS 300 R3 2001:660:114:0:3::/64 AS 200 R2 2001:660:114:0:2::/64 AS 100 R1 2001:660:114:0:1::/64 2001:660:114:9:1::1 2001:660:114:9:1::2 2001:660:114:9:2::1 2001:660:114:9:2::3 router bgp 100 bgp router-id 0.0.0.100 neighbor 2001:660:114:9:2::3 remote-as 300 […..] neighbor 2001:660:114:9:2::3 distribute-list 1 in access-list 1 deny 2001:660:114:0:3::/64 le 128 access-list 1 permit ::/0 le 128 Dans cette variante, l’élimination de l’annonce du réseau 2001:660:114:0:3::/64/24 empêche bien le transit car ce réseau ne sera pas réannoncé, mais en plus, l’AS 100 ne sera pas capable de router ce réseau.38 LE ROUTAGE BGP4(+) / septembre 2006 38/56 V2.0 Politique de routage : exemple de filtrage de routes sur ZEBRA R Filtrage des AS_PATH annoncés : AS100 ne veut pas servir d’AS de transit pour tous les réseaux internes d’AS300 AS 300 R3 2001:660:114:0:3::/64 AS 200 R2 2001:660:114:0:2::/64 AS 100 R1 2001:660:114:0:1::/64 2001:660:114:9:1::1 2001:660:114:9:1::2 2001:660:114:9:2::1 2001:660:114:9:2::3 router bgp 100 bgp router-id 0.0.0.100 neighbor 2001:660:114:9:1::2 remote-as 200 [….] neighbor 2001:660:114:9:1::2 filter-list 1 out ip as-path access-list 1 deny ^300$ ip as-path access-list 1 permit .* Les AS_PATH étant des chaînes de caractères, l’identification et la localisation d’un AS ou d’un ensemble d’AS se fait par des expressions régulières, en utilisant le sous ensemble suivant de caractères spéciaux : Caractère Symbole Signification --------------------------------------------------------------------------------------------------- Point . Représente n’importe quel caractère Astérisque * Représente 0 ou N fois le caractère précédent Plus + Représente 1 ou N fois le caractère précédent Interrogation ? Représente 0 ou 1 fois le caractère précédent Circonflexe ^ Représente le début de la chaîne de caractères Dollar $ Représente la fin de la chaîne de caractères Souligné _ Représente l’un des 5 caractères servant à délimiter les N° d ’AS soit: ,{}() le début ou fin de chaîne Crochet ouvrant [ Début d’un intervalle Crochet fermant ] Fin d’un intervalle Tiret - Sépare les 2 caractères définissant l’intervalle Les 3 derniers caractères spéciaux s’utilisent conjointement, par exemple l’intervalle noté [1-6] représente un chiffre compris entre 1 et 6 inclus.39 LE ROUTAGE BGP4(+) / septembre 2006 39/56 V2.0 Politique de routage : exemple de manipulation sur ZEBRA R Filtrage par route map : AS100 veut privilégier la route par défaut annoncée par AS300 AS 300 R3 2001:660:114:0:3::/64 AS 200 R2 2001:660:114:0:2::/64 AS 100 R1 2001:660:114:0:1::/64 2001:660:114:9:1::1 2001:660:114:9:1::2 2001:660:114:9:2::1 2001:660:114:9:2::3 router bgp 100 bgp router-id 0.0.0.100 neighbor 2001:660:114:9:2::3 remote-as 300 […..] neighbor 194.9.2.3 route MAP_300 in neighbor 194.9.1.2 route MAP_200 in Nota : confédération de routeurs dans AS10040 LE ROUTAGE BGP4(+) / septembre 2006 40/56 V2.0 Politique de routage : exemple de manipulation sur ZEBRA (suite) R Filtrage par route map : AS100 veut savoir router uniquement 2001:660:114:0:3::/64, mais sans servir d’AS de transit pour AS300 AS 300 R3 2001:660:114:0:3::/64 AS 200 R2 2001:660:114:0:2::/64 AS 100 R1 2001:660:114:0:1::/64 2001:660:114:9:1::1 2001:660:114:9:1::2 2001:660:114:9:2::1 2001:660:114:9:2::3 route map MAP_300 permit 10 match ip address 1 set LOCAL_PREF 150 route map MAP_300 permit 20 set LOCAL_PREF 100 access-list 1 permit 0.0.0.0 0.0.0.0 route map MAP_200 permit 10 match ip address 1 set LOCAL_PREF 100 route map MAP_200 permit 20 set LOCAL_PREF 15041 LE ROUTAGE BGP4(+) / septembre 2006 41/56 V2.0 Optimisations : stabilité du routage (1) R Les routes instables sont pénalisées RÀ chaque instabilité => X points de pénalité RSi Pénalité > limite L1 => route supprimée RSi Pénalité < limite L2 => route rétablie RSi : pas de nouvelle pénalité pendant T1 => Pénalité/2 RSi Pénalité < limite L3 => on oublie tout R Ne concerne que les annonces E-BGP42 LE ROUTAGE BGP4(+) / septembre 2006 42/56 V2.0 Optimisations : stabilité du routage (2) R Allure du facteur de mérite associé à une route instable Facteur de mérite (RFC2439) 0,000 0,500 1,000 1,500 2,000 2,500 3,000 3,500 4,000 4,500 5,000 0,00 0,40 0,80 1,20 1,60 2,00 2,40 2,80 3,20 Temps Valeur Fréquence 1/2 Fréquence 1/3 Fréquence 1/4 Fréquence 1/8 Dans l’implémentation IOS de Cisco, on a : - Pénalité pour une instabilité (X) = 1000 points - Limite de suppression d’une route (L1) = 2000 points - Limite de réutilisation d’une route (L2) = 750 points - Valeur d’oubli des informations de pénalisation (L3) = 350 points - Demie vie de la pénalisation (T1) = 120 secondes Cette technique de pénalisation des routes instables est justifiée et standardisée dans le RFC2439.43 LE ROUTAGE BGP4(+) / septembre 2006 43/56 V2.0 Optimisations : contrôle du trafic BGP R On peut agir sur différents minuteurs R MinRouteAdvertisementInterval R MinASOriginationInterval RLa gigue dans la fréquence des annonces R On peut réduire le volume des informations annoncées RNLRI agrégés RAS_PATH condensés MinRouteAdvertisementInterval est le temps minimum entre 2 annonces de routes vers des voisins externes (uniquement). MinASOriginationInterval est le temps minimum entre 2 annonces résultant d’une mise à jour des routes internes de l’AS (en provenance de l’IGP par exemple). Le facteur de gigue est un paramètre global au routeur. C’est un nombre aléatoire à valeur dans l’intervalle [0,75-1] qui pondère l’ensemble des 5 minuteurs du processus BGP. Rappel des valeurs (en secondes) des minuteurs d’un processus BGP : Minuteur Valeur suggérée implémentation implémentation par le RFC1771 Cisco Zebra ---------------------------------------------------------------------------------------------------- ConnectRetry 120 Hold Time 90 180 180 KeepAlive 30 60 60 MinRouteAdvertisementInterval 30 30 0 MinASOriginationInterval 1544 LE ROUTAGE BGP4(+) / septembre 2006 44/56 V2.0 Optimisation : sécurisation des échanges BGP R Mesures natives au protocole RSession BGP = {@IP1,numéro AS1},{@IP2,numéro AS2} RSignature MD5 de chaque message R Compléments : mesures standard au niveau TCP ou IP RFiltrage du port 179 R MAIS : a toutes les vulnérabilités de TCP ou IP RDéni de service45 LE ROUTAGE BGP4(+) / septembre 2006 45/56 V2.0 Optimisations : les réflecteurs de routes R Permet d’éviter une croissance en N2 des sessions I-BGP R Mais rajoute un point de panne singulier R On met donc plusieurs réflecteurs de route par AS R4 AS 100 R1 I-BGP R6 R5 Schéma sans réflecteur de routes Schéma avec 2 réflecteurs de routes (R4 et R5) R4 AS 100 R1 I-BGP R6 R5 Introduit à titre expérimental en 1996 par le RFC1966, modifié en 2000 par le RFC2756, actuellement défini comme standard par le RFC4456 (d’avril 2006). Si l’on considère un AS avec N routeurs de bord, il aura un nombre de sessions I-BGP qui sera égal à : N(N-1)/2 sans réflecteur de route. Si certains de ces routeurs de bord sont aussi réflecteurs de route, le nombre de sessions I-BGP sera plus faible, mais pourra varier entre 2 valeurs suivant le niveau de redondance que l’on souhaite (noter que tous les réflecteurs de route doivent être complètement maillés en sessions I-BGP). Ainsi le nombre de sessions I-BGP sera compris entre : N-1 et 2N-3 avec 2 réflecteurs de route N et 3(N-2) avec 3 réflecteurs de route N-R + R(R-1)/2 et NR - R(R+1)/2 avec R réflecteurs de route La fonction Fmin(N,R)=N-R + R(R-1)/2 a une valeur minimale pour R=3/2 quel que soit N. Les valeurs entières de R qui la minimisent sont donc 1 et 2. La fonction Fmax(N,R)=NR-R(R+1)/2 a une valeur maximale pour R=N-1/2 donc plus R est petit plus la valeur de Fmax sera faible. Du point de vue de la minimisation du nombre de sessions I-BGP, la valeur optimale de R est donc égale à 2 quel que soit N, si l’on veut assurer une redondance des réflecteurs de route. Dans ce cas on a 2N-3 sessions I-BGP.46 LE ROUTAGE BGP4(+) / septembre 2006 46/56 V2.0 Extensions : les confédérations d’AS R Permet de réduire le nombre de sessions I-BGP R En divisant l’AS en mini-AS (ou sous AS) R Les routeurs de bord d’un mini-AS établissent des sessions RI-BGP entre eux (maillage complet) RE-BGP avec leurs voisins d’autres AS RPseudo E-BGP avec leurs voisins d’autres minis-AS R Vu de l’extérieur, la confédération d’AS apparaît comme un seul et unique AS Pour bien apparaître comme faisant partie d’un même AS vis-à-vis de l’extérieur, les routeurs de bord de deux mini-AS différents échangent des sessions E-BGP (car leurs numéros d’AS sont différents), mais ces sessions suivent les mêmes règles de modification des attributs de route que les sessions I-BGP. Lors de ces sessions, les attributs NEXT_HOP, MED, et LOCAL_PREF ne sont donc pas modifiés. Les confédérations d’AS ont été introduites en 1996 à titre expérimental par le RFC1965, puis standardisées en 2001 par le RFC3065.47 LE ROUTAGE BGP4(+) / septembre 2006 47/56 V2.0 Extensions : les groupements de routeurs R Les routeurs BGP d’un groupement partagent la même politique de routage (ex. routes maps, filtres d’annonces, …) R Cette politique est définie sur l’un des routeurs du groupement R Elle est propagée automatiquement sur les autres routeurs R Un routeur du groupement peut modifier localement sa politique de routage (mais ne la propage pas aux autres)48 LE ROUTAGE BGP4(+) / septembre 2006 48/56 V2.0 Extensions : les serveurs de route R Sur un grand point d’échange on peut avoir : R100 fournisseurs d’accès Internet RPlus de 180 000 routes annoncées (en 2006) R Ce qui pourrait impliquer : RJusqu'à 10 000 sessions TCP ! R Solution : les serveurs de route RRéduit le nombre de sessions (quelques unes par fournisseur d’accès) Introduit à titre expérimental en 1995 par le RFC1863, et classé en historique en 2005 par le RFC4223.49 LE ROUTAGE BGP4(+) / septembre 2006 49/56 V2.0 Extensions : le routage multi-protocole (IPv6) R Dans BGP, seuls 3 attributs de route de dépendent d’IPv4 RNLRI, NEXT_HOP, (AGGREGATOR) R Pour rendre BGP multi-protocole, on introduit 2 attributs de route supplémentaires R MP_REACH_NLRI (optionnel, non-transitif) R MP_UNREACH_NLRI (optionnel, non-transitif) R L’attribut de route MP_REACH_NLRI contient des triplets RAdress_family (ex. IPv4, IPv6, IPX), NEXT_HOP, NLRI R Un message UPDATE contient MP_REACH_NLRI et les autres attributs de route déjà vus (ORIGIN, LOCAL_PREF...) Introduit comme standard par le RFC2858. Les seules modifications de configurations correspondent aux format des adresses IPv6. Exemple de configuration d’une session BGP en IPv6 sous Zebra : router bgp 65400 bgp router-id 192.108.119.167 ipv6 bgp neighbor 2001:660:281:8::1 remote-as 1938 Exemple d’affichage des informations BGP en IPv6 sous Zebra : bgpd# sh ipv6 bgp BGP table version is 0, local router ID is 192.108.119.167 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Metric LocPrf Weight Path *> ::194.182.135.0/120 0 1938 2200 1103 766 278 6435 i 2001:660:281:8::1(fe80::83fe:c80a) *> 2001:200::/35 0 1938 2200 3425 2500 i 2001:660:281:8::1(fe80::83fe:c80a) *> 2001:200:12a::/48 0 1938 2200 5511 3549 ? 2001:660:281:8::1(fe80::83fe:c80a) [….]50 LE ROUTAGE BGP4(+) / septembre 2006 50/56 V2.0 Exemple de configuration BGP en IPv6 (Zebra) router bgp 65400 bgp router-id 192.108.119.167 ipv6 bgp neighbor 2001:660:281:8::1 remote-as 1938 ipv6 bgp neighbor 2001:660:281:8::1 prefix-list filtre_nlri in ipv6 bgp neighbor 2001:660:281:8::1 filter-list filtre_as in ! ipv6 prefix-list filtre_nlri description Refus des annonces de son préfixe et du 2002::/16 ipv6 prefix-list filtre_nlri seq 5 deny 3ffe:305:1014::/48 le 128 ipv6 prefix-list filtre_nlri seq 10 deny 2002::/16 le 128 ipv6 prefix-list filtre_nlri seq 15 permit any ! ip as-path access-list filtre_as deny 1938 2200 5511 * ip as-path access-list filtre_as permit .* Résultat sous Zebra de la configuration ci-dessus (commande ‘sh ipv6 bgp neighbors’) BGP neighbor is 2001:660:281:8::1, remote AS 1938, external link BGP version 4, remote router ID 131.254.200.10 BGP state = Established, up for 00:04:16 Last read 00:00:16, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: Route refresh: advertised and received(old and new) […..] For address family: IPv6 Unicast Community attribute sent to this neighbor Inbound path policy configured Incoming update prefix filter list is *filtre_nlri Incoming update AS path filter list is *filtre_as 225 accepted prefixes Connections established 1; dropped 0 Local host: 2001:660:281:8::2, Local port: 1190 Foreign host: 2001:660:281:8::1, Foreign port: 179 Nexthop: 192.108.119.167 Nexthop global: 2001:660:281:8::2 Nexthop local: :: BGP connection: non shared network Read thread: on Write thread: off51 LE ROUTAGE BGP4(+) / septembre 2006 51/56 V2.0 Extensions : le routage multicast (MBGP) R Vu comme un cas particulier du routage multi-protocole R Utilisation de la notion de sous famille d’adresse R Implémentations récentes (IOS, ….) Introduit comme standard par le RFC2858 en juin 2000.52 LE ROUTAGE BGP4(+) / septembre 2006 52/56 V2.0 Extensions : annonce de capacité R Standardisé initialement en mai 2000 par le RFC2842 (statut PS) R Standardisé définitivement en novembre 2002 par le RFC3392 (DS) R Introduit un paramètre optionnel : capabilities R Annonce les capacités fonctionnelles d’un routeur lors de l’OPEN R Permet une mise à niveau automatique des fonctionnalités utilisées dans cette session BGP R Permettra des mises à niveau des implémentations de BGP non synchrones Exemple sous Ios/Cisco du résultat de la commande ‘sh ipv6 bgp neighbors’ : BGP neighbor is 2001:660:281:1::1, remote AS 1938, external link BGP version 4, remote router ID 131.254.200.10 BGP state = Established, up for 16:42:08 Last read 00:00:08, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: Route refresh: advertised and received Address family IPv6 Unicast: advertised and received Received 5601 messages, 0 notifications, 0 in queue Sent 3785 messages, 0 notifications, 0 in queue Route refresh request: received 0, sent 0 Minimum time between advertisement runs is 30 seconds For address family: IPv6 Unicast BGP table version 3272, neighbor version 3272 Index 1, Offset 0, Mask 0x2 264 accepted prefixes consume 16896 bytes Prefix advertised 4, suppressed 0, withdrawn 053 LE ROUTAGE BGP4(+) / septembre 2006 53/56 V2.0 Bibliographie : principaux RFC sur BGP R RFC1772 Application of the Border Gateway Protocol in the Internet. Y Rekhter, P. Gross. 03/1995. (DS) R RFC1773 Experience with the BGP-4 protocol. P. Traina. 03/1995. (INFO) R RFC1774 BGP-4 Protocol Analysis. P. Traina, Editor. 03/1995. (INFO) R RFC1997 BGP Communities Attribute. R. Chandra, P. Traina & T. Li. 06/1996. (PS) R RFC1998 An Application of the BGP Community Attribute in Multi-home Routing. E. Chen & T. Bates. 06/1996. (INFO) R RFC2042 Registering New BGP Attribute Types. B. Manning. 01/1997. (INFO) R RFC2385 Protection of BGP Sessions via the TCP MD5 Signature Option. A. Heffernan. 08/1998. (PS) R RFC2439 BGP Route Flap Damping. C.Villamizar, R.Chandra, R.Govindan. 11/1998. (PS) R RFC2457 Definitions of Managed Objects for Extended Border Node. B. Clouston, B. Moore. 11/1998. (PS) R RFC2545 Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing. P. Marques, F. Dupont. 03/1999. (PS) R RFC2858 Multiprotocol Extensions for BGP-4. T. Bates, Y. Rekhter, R. Chandra, D. Katz. 06/2000. (PS) Bref historique de l’évolution du protocole BGP (voir RFC1773) BGP-1 : RFC1105, juin 1989 BGP-2 : RFC1163, juin 1990 La hiérarchisation des AS est supprimée (notion de liens inter-AS haut/bas/horizontaux), introduction des attributs de routes, beaucoup de changements dans les formats des messages. BGP-3 : RFC1267, octobre 1991 Détection et gestion des collisions d’ouvertures de sessions BGP, introduction d ’un identifiant de routeur, le NEXT_HOP peut être situé dans un autre AS que celui du routeur qui fait l’annonce. BGP-4 : RFC1771, mars 1995 Ajout des adresses CIDR, introduction des ensembles d’AS (non ordonnés) dans les AS_PATH, et ajout des attributs de route MED (remplace INTER-AS METRIC), LOCAL-PRFERENCE, AGGREGATOR. BGP-4+ : RFC2283 en février 1998, RFC2545 en mars 1999, RFC2858 en juin 2000 Extensions multiprotocoles (RFC2283, remplacé par le RFC2858) Support d’IPv6 (RFC2545) Routage multicast Réflecteurs de routes, RFC2796 en avril 2000 Annonces de capacités, RFC2842 en mai 2000, puis RFC3302 en novembre 2002 Confédérations d’AS RFC3065 en février 2001 Ré-écriture complète du RFC1771 par le RFC4271 en janvier 2006 BGP/MPLS, RFC4364 février 2006 Interaction entre OSPF et BGP/MPLS, RFC4577, juin 200654 LE ROUTAGE BGP4(+) / septembre 2006 54/56 V2.0 Bibliographie : principaux RFC sur BGP R RFC2918 Route Refresh Capability for BGP-4. E. Chen, 09/2000. (PS) R RFC3065 Autonomous System Confederations for BGP. P. Traina, D. McPherson, J. Scudder. 02/2001. (PS) R RFC3107 Carrying Label Information in BGP-4. Y.Rekhter, E.Rosen. 02/2001.(PS) R RFC3345 Border Gateway Protocol (BGP) Persistent Route Oscillation Condition. D. McPherson, V. Gill, D. Walton, A. Retana, 08/2002. (INFO) R RFC3392 Capabilities Advertisement with BGP-4. R. Chandra, J. Scudder. 11/2002. (DS) R RFC4271 A Border Gateway Protocol 4 (BGP-4). Y. Rekhter, T. Li., S. Hares. 01/2006. (DS) R RFC4272 BGP Security Vulnerabilities Analysis. S. Murphy. 01/2006 (INFO) R RFC4273 Definitions of Managed Objects for BGP-4. J. Haas, Ed., S. Hares, Ed.. 01/2006. (PS) R RFC4274 BGP-4 Protocol Analysis. D. Meyer, K. Patel. 01/2006. (INFO) R RFC4276 BGP-4 Implementation Report. S. Hares, A. Retana. 01/2006. (INFO) R RFC4364 BGP/MPLS IP Virtual Private Networks (VPNs). E. Rosen, Y. Rekhter. 02/2006. (PS) R RFC4456 BGP Route Reflection: An Alternative to Full Mesh Internal BGP (IBGP). T. Bates, E. Chen, R. Chandra. 04/2006. (DS)55 LE ROUTAGE BGP4(+) / septembre 2006 55/56 V2.0 Bibliographie : livres R Le routage dans l’Internet, C. Huitema, Eyrolles, 1994 R Interconnections with bridges and routers, R, Perlman, Addison-Wesley, 1996 R Internet Routing Architectures, B.Halabi, Cisco Press, 1997 R BGP4 Inter-Domain Routing in the Internet, J. W. Stewart III, Addison-Wesley, 199956 LE ROUTAGE BGP4(+) / septembre 2006 56/56 V2.0 Bibliographie : Sites web R www.rsng.net : Route Server Next generation Project R www.merit.net : Nombreuses informations sur les points d’échange de trafic entre opérateurs des USA. R www.gated.org : Site de distribution du logiciel gated (payant) qui implemente la plupart des logiciels de routage (dont BGP4) R www.zebra.org : Site de distribution du logiciel zebra (licence GPL) qui implemente la plupart des logiciels de routage (dont BGP4) R www.caida.org : Propose des outils de métrologie réseau, beaucoup de données sur le trafic. R www.merit.edu/~ipma/ : outils de mesure de performances, beaucoup d’informations sur les tables BGP de certains routeurs des points d’échange R www.ep.net : Liste des points déchange R www.ra.net : Routing Arbiter Project R telnet://route-server.cerf.net : Accès en ligne a un routeur BGP R http://www.cisco.com/univercd/cc/td/doc/cisintwk/ics/icsbgp4.htm : Manuel de référence des commandes BGP sur IOS de Cisco. R www.mcvax.org/~jhma/routing/ : nombreuses statistiques sur les tables de routage BGP Pr´esentation de la radio cognitive Badr Benmammar To cite this version: Badr Benmammar. Pr´esentation de la radio cognitive. 3`eme cycle. 2012. HAL Id: cel-00680189 https://cel.archives-ouvertes.fr/cel-00680189v2 Submitted on 25 Mar 2012 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Présentation de la radio cognitive Badr Benmammar badr.benmammar@gmail.com2 Plan  Radio logicielle (software radio)  Radio logicielle restreinte (SDR)  Radio cognitive (RC)  Historique  Définition  Relation entre RC et SDR  Architecture  Cycle de cognition  Composantes  Fonctions Détection du spectre (Spectrum sensing) Gestion du spectre (Spectrum management) Mobilité du spectre (Spectrum mobility)3 Radio logicielle (software radio)  Travaux de Joseph Mitola (1991): définir une classe de radio reprogrammable et reconfigurable.  Définition : La radio logicielle est une radio dans laquelle les fonctions typiques de l’interface radio généralement réalisées en matériel, telles que la fréquence porteuse, la largeur de bande du signal, la modulation et l’accès au réseau sont réalisés sous forme logicielle. La radio logicielle moderne intègre également l’implantation logicielle des procédés de cryptographie, codage correcteur d’erreur, codage source de la voix, de la vidéo ou des données.  Le concept de radio logicielle doit également être considéré comme une manière de rendre les usagers, les fournisseurs de services et les fabricants plus indépendants des normes. Ainsi, avec cette solution, les interfaces radio peuvent, en principe, être adaptées aux besoins d’un service particulier pour un usager particulier dans un environnement donné à un instant donné.4 Radio logicielle restreinte (SDR)  On distingue plusieurs niveaux d’avancement dans le domaine : la radio logicielle est le but ultime intégrant toute les fonctionnalités en logiciel, mais elle impose des phases intermédiaires combinant anciennes et nouvelles techniques, on parle alors de radio logicielle restreinte (software defined radio). Les contraintes de puissance de calcul, de consommation électrique, de coûts, etc. imposent actuellement de passer par cette phase intermédiaire.  La radio logicielle restreinte est un système de communication radio qui peut s’adapter à n’importe quelle bande de fréquence et recevoir n’importe quelle modulation en utilisant le même matériel.  Les opportunités qu’offre le SDR lui permettent de résoudre des problèmes de la gestion dynamique du spectre. Les équipements SDR peuvent fonctionner dans des réseaux sans fil hétérogènes c’est-à-dire qu’un SDR idéal peut s’adapter automatiquement aux nouvelles fréquences et aux nouvelles modulations. 5 Radio cognitive  L’idée de la radio cognitive a été présentée officiellement par Joseph Mitola III à un séminaire à KTH, l'Institut royal de technologie, en 1998, publié plus tard dans un article de Mitola et Gerald Q. Maguire, Jr en 1999.  Mitola combine son expérience de la radio logicielle ainsi que sa passion pour l'apprentissage automatique et l'intelligence artificielle pour mettre en place la technologie de la radio cognitive. D’après lui : Une radio cognitive peut connaître, percevoir et apprendre de son environnement puis agir pour simplifier la vie de l'utilisateur. • Le terme radio cognitive (CR) est utilisé pour décrire un système ayant la capacité de détecter et de reconnaître son cadre d'utilisation, ceci afin de lui permettre d’ajuster ses paramètres de fonctionnement radio de façon dynamique et autonome et d'apprendre des résultats de ses actions et de son cadre environnemental d'exploitation. 6 Radio cognitive  La radio cognitive est une forme de communication sans fil dans laquelle un émetteur/récepteur peut détecter intelligemment les canaux de communication qui sont en cours d'utilisation et ceux qui ne le sont pas, et peut se déplacer dans les canaux inutilisés. Ceci permet d'optimiser l'utilisation des fréquences radio disponibles (RF) du spectre tout en minimisant les interférences avec d'autres utilisateurs.  Cette capacité permet d'adapter chaque appareil aux conditions spectrales du moment et offre donc aux utilisateurs un accès plus souple, efficace et complet à cette ressource. Cette approche peut améliorer considérablement le débit des données et la portée des liaisons sans augmenter la bande passante ni la puissance de transmissions. La radio cognitive offre également une solution équilibrée au problème de l'encombrement du spectre en accordant d'abord l'usage prioritaire au propriétaire du spectre, puis en permettant à d'autres de se servir des portions inutilisées du spectre.7 Radio cognitive  Le principe de la radio cognitive, repris dans la norme IEEE 802.22, nécessite une gestion alternative du spectre qui est la suivante : un mobile dit secondaire pourra à tout moment accéder à des bandes de fréquence qu’il juge libre, c’est-à-dire, non occupées par l’utilisateur dit primaire possédant une licence sur cette bande. L’utilisateur secondaire devra les céder une fois le service terminé ou une fois qu’un utilisateur primaire aura montré des velléités de connexion.  On entreprend actuellement de modifier la norme IEEE 802.16 (WiMAX) par le biais de la norme IEEE 802.16h afin de prendre en charge la coexistence et la collaboration dans le même canal. La norme IEEE 802.22, qui vise la coexistence avec les microphones et les systèmes de télévision, présente des caractéristiques semblables. Les deux normes mettent en application les techniques de la radio cognitive.  Un Réseau Cognitif coordonne les transmissions suivant différentes bandes de fréquences et différentes technologies en exploitant les bandes disponibles à un instant donné et à un endroit donné. Il a besoin d’une station de base capable de travailler sur une large gamme de fréquences afin de reconnaître différents signaux présents dans le réseau et se reconfigurer intelligemment.8 Relation entre RC et SDR  L’une des principales caractéristiques de la radio cognitive est la capacité d’adaptation où les paramètres de la radio (fréquence porteuse, puissance, modulation, bande passante) peuvent être modifiés en fonction de :  L’environnement radio  La situation  Les besoins de l’utilisateur  L’état du réseau  La géo localisation  …  La radio logicielle est capable d’offrir les fonctionnalités de flexibilité, de reconfigurabilité et de portabilité inhérentes à l’aspect d’adaptation de la radio cognitive. Par conséquent, cette dernière doit être mise en œuvre autour d’une radio logicielle. En d’autres termes, la radio logicielle est une "technologie habilitante" pour la radio cognitive.9 Relation entre RC et SDR Chargé de l’optimisation ou du contrôle du module SDR en se basant sur quelques paramètres d’entrée tels que les informations issues de la perception sensorielle ou de l’apprentissage de l’environnement radio, du contexte utilisateur, et de l’état du réseau. Figure 1 : Relation entre la radio cognitive et la radio logicielle restreinte10 Architecture de la RC  Mitola a défini l’architecture d’une radio cognitive par un ensemble cohérent de règles de conception par lequel un ensemble spécifique de composants réalise une série de fonctions de produits et de services. Figure 2 : Architecture de la radio cognitive11 Architecture de la RC  Les six composantes fonctionnelles de l’architecture d’une radio cognitive sont:  La perception sensorielle (Sensory Perception : SP) de l'utilisateur qui inclut l'interface haptique (du toucher), acoustique, la vidéo et les fonctions de détection et de la perception.  Les capteurs de l'environnement local (emplacement, température, accéléromètre, etc.).  Les applications système (les services médias indépendants comme un jeu en réseau).  Les fonctions SDR (qui incluent la détection RF et les applications radio de la SDR).  Les fonctions de la cognition (pour les systèmes de contrôle, de planification, d'apprentissage).  Les fonctions locales effectrices (synthèse de la parole, du texte, des graphiques et des affiches multimédias). 12 Protocoles utilisés par la radio cognitive Figure 3 : Protocoles utilisés par la radio cognitive13 Protocoles utilisés par la radio cognitive  Dans la couche physique, le RF est mis en œuvre à base de radio définie par logiciel. Les protocoles d'adaptation de la couche MAC, réseau, transport, et applications doivent être conscients des variations de l'environnement radio cognitif. En particulier, les protocoles d'adaptation devraient envisager l'activité du trafic des principaux utilisateurs, les exigences de transmission d'utilisateurs secondaires, et les variations de qualité du canal…  Pour relier tous les modules, un contrôle radio cognitif est utilisé pour établir des interfaces entre l'émetteur/récepteur SDR et les applications et services sans fil. Ce module radio cognitif utilise des algorithmes intelligents pour traiter le signal mesuré à partir de la couche physique, et de recevoir des informations sur les conditions de transmission à partir des applications pour contrôler les paramètres de protocole dans les différentes couches. 14 Cycle de cognition  La composante cognitive de l’architecture de la radio cognitive comprend une organisation temporelle, des flux d'inférences et des états de contrôle.  Ce cycle synthétise cette composante de manière évidente. Les stimuli entrent dans la radio cognitive comme des interruptions sensorielles envoyées sur le cycle de la cognition pour une réponse. Une telle radio cognitive observe l'environnement, s’oriente, crée des plans, décide, et puis agit. Figure 4 : Cycle de cognition de Mitola Figure 5 : Cycle de cognition simplifié15 Cycle de cognition  Phase d’observation (détecter et percevoir)  La RC observe son environnement par l'analyse du flux de stimuli entrant. Dans la phase d'observation, la RC associe l’emplacement, la température, le niveau de lumière des capteurs, et ainsi de suite pour en déduire le contexte de communication. Cette phase lie ces stimuli à des expériences antérieures pour discerner les modèles au fil du temps. La radio cognitive rassemble les expériences en se souvenant de tout.  Phase d’orientation  La phase d'orientation détermine l'importance d'une observation en liant à celle-ci une série connue de stimuli. Cette phase fonctionne à l'intérieur des structures de données qui sont analogues à la mémoire à court terme (STM), que les gens emploient pour s’engager dans un dialogue sans forcément se souvenir de tout à la même mesure que dans la mémoire à long terme (LTM). Le milieu naturel fournit la redondance nécessaire pour lancer le transfert de la STM à la LTM. La correspondance entre les stimuli courants et les expériences stockées se fait par reconnaissance des stimuli ou par reliure.16 Cycle de cognition  Phase de planification  La plupart des stimuli sont traités avec délibérative plutôt qu’avec réactivité. Un message entrant du réseau serait normalement traité par la génération d'un plan (dans la phase de plan, la voie normale). Le plan devrait également inclure la phase de raisonnement dans le temps. Généralement, les réponses réactives sont préprogrammées ou apprises en étant dit, tandis que d'autres réactions de délibération sont prévues.  Phase de décision  La phase de décision sélectionne un plan parmi les plans candidats. La radio peut alerter l'utilisateur d’un message entrant ou reporter l'interruption à plus tard en fonction des niveaux de QoI (Quality of Information) statués dans cette phase.  Phase d’action  Cette phase lance les processus sélectionnés qui utilisent les effecteurs sélectionnés qui accèdent au monde extérieur ou aux états internes de la radio cognitive. L'accès au monde extérieur consiste principalement à composer des messages qui doivent être envoyés dans l'environnement en audio ou exprimés dans différents langages appropriés. 17 Cycle de cognition  Phase d’apprentissage  L’apprentissage dépend de la perception, des observations, des décisions et des actions. L'apprentissage initial est réalisé à travers la phase d’observation dans laquelle toutes les perceptions sensorielles sont continuellement comparées à l'ensemble de l'expérience antérieure pour continuellement compter les événements et se souvenir du temps écoulé depuis le dernier événement.  L'apprentissage peut se produire quand un nouveau modèle est créé en réponse à une action. Par exemple, les états internes antérieurs et courants peuvent être comparés avec les attentes pour en apprendre davantage sur l'efficacité d'un mode de communication.18 Composantes de la radio cognitive  Les différentes composantes d'un émetteur/récepteur radio cognitive qui mettent en œuvre ces fonctionnalités sont présentées dans la figure ci-dessous. Figure 6 : Composante de la radio cognitive19 Composantes de la radio cognitive  Emetteur / Récepteur: un émetteur/récepteur SDR sans fil est le composant majeur avec les fonctions du signal de transmission de données et de réception. En outre, un récepteur sans fil est également utilisé pour observer l'activité sur le spectre de fréquence (spectre de détection).  Les paramètres émetteur/récepteur dans le nœud de la radio cognitive peuvent être modifiés dynamiquement comme dicté par les protocoles de couche supérieure.  Analyseur de spectre (Spectrum analyser): L'analyseur de spectre utilise les signaux mesurés pour analyser l'utilisation du spectre (par exemple pour détecter la signature d'un signal provenant d'un utilisateur primaire et trouver les espaces blancs du spectre pour les utilisateurs secondaires).  L'analyseur de spectre doit s'assurer que la transmission d'un utilisateur primaire n'est pas perturbée si un utilisateur secondaire décide d'accéder au spectre. Dans ce cas, diverses techniques de traitement du signal peuvent être utilisées pour obtenir des informations sur l'utilisation du spectre.20 Composantes de la radio cognitive  Extraction de connaissances et apprentissage (Knowledge extraction/learning): L'apprentissage et l'extraction de connaissances utilisent les informations sur l'utilisation du spectre pour comprendre l'environnement ambiant RF (par exemple le comportement des utilisateurs sous licence). Une base de connaissances de l'environnement d'accès au spectre est construite et entretenue, qui est ensuite utilisée pour optimiser et adapter les paramètres de transmission pour atteindre l'objectif désiré sous diverses contraintes. Les algorithmes d'apprentissage peuvent être appliqués pour l'apprentissage et l'extraction de connaissances.  Prise de décision (Decision making): Après que la connaissance de l'utilisation du spectre soit disponible, la décision sur l'accès au spectre doit être faite. La décision optimale dépend du milieu ambiant, elle dépend du comportement coopératif ou compétitif des utilisateurs secondaires. Différentes techniques peuvent être utilisées pour obtenir une solution optimale.21 Fonctions de la radio cognitive  Les principales fonctions de la radio cognitive sont les suivantes:  Détection du spectre (Spectrum sensing)  Détecter le spectre non utilisé et le partager sans interférence avec d'autres utilisateurs. La détection des utilisateurs primaires est la façon la plus efficace pour détecter les espaces blancs du spectre.  L'un des objectifs de la détection du spectre, en particulier pour la détection des interférences, est d'obtenir le statut du spectre (libre /occupé), de sorte que le spectre peut être consulté par un utilisateur secondaires en vertu de la contrainte d'interférence. Le défi réside dans le fait de mesurer l'interférence au niveau du récepteur primaire causée par les transmissions d'utilisateurs secondaires.  Gestion du spectre (Spectrum management)  Capter les meilleures fréquences disponibles pour répondre aux besoins de communication des utilisateurs.  Les radios cognitives devraient décider de la meilleure bande de spectre pour répondre aux exigences de qualité de service sur toutes les bandes de fréquences disponibles, donc les fonctions de gestion du spectre sont nécessaires pour les radios cognitives. Ces fonctions de gestion peuvent être classées comme suit:22 Fonctions de la radio cognitive  Analyse du spectre : Les résultats obtenus de la détection du spectre sont analysés pour estimer la qualité du spectre. Une des questions ici est de savoir comment mesurer la qualité du spectre qui peut être accédée par un utilisateur secondaire. Cette qualité peut être caractérisée par le rapport signal/bruit, la durée moyenne et la corrélation de la disponibilité des espaces blancs du spectre. Les informations sur cette qualité de spectre disponible à un utilisateur par radio cognitive peuvent être imprécises et bruyantes. Des algorithmes d’apprentissage de l’intelligence artificielle sont des techniques qui peuvent être employées par les utilisateurs de la radio cognitive pour l'analyse du spectre.  Décision sur le spectre :  Modèle de décision: un modèle de décision est nécessaire pour l'accès au spectre. La complexité de ce modèle dépend des paramètres considérés lors de l'analyse du spectre.  Le modèle de décision devient plus complexe quand un utilisateur secondaire a des objectifs multiples. Par exemple, un utilisateur secondaire peut avoir l'intention de maximiser son rendement tout en minimisant les perturbations causées à l'usager primaire. Les méthodes d'optimisation stochastique (le processus de décision de Markov) seront un outil intéressant pour modéliser et résoudre le problème d’accès au spectre dans un environnement radio cognitif.23 Fonctions de la radio cognitive  Compétition / coopération dans un environnement multi utilisateurs : Lorsque plusieurs utilisateurs (à la fois primaires et secondaires) sont dans le système, leur préférence va influer sur la décision du spectre d’accès. Ces utilisateurs peuvent être coopératifs ou non coopératifs dans l'accès au spectre.  Dans un environnement non-coopératif, chaque utilisateur a son propre objectif, tandis que dans un environnement coopératif, tous les utilisateurs peuvent collaborer pour atteindre un seul objectif. Par exemple, plusieurs utilisateurs secondaires peuvent entrer en compétition les uns avec les autres pour accéder au spectre radio (par exemple, O1, O2, O3, O4 dans la figure ci-dessous) de sorte que leur débit individuel soit maximisé. Au cours de cette concurrence entre les utilisateurs secondaires, tous veillent à ce que l’interférence causée à l'utilisateur primaire est maintenue en dessous de la limite de température de brouillage correspondante. La théorie des jeux est l'outil le plus approprié pour obtenir la solution d'équilibre pour le problème du spectre dans un tel scénario.  Dans un environnement coopératif, les radios cognitives coopèrent les unes avec les autres pour prendre une décision pour accéder au spectre et de maximiser une fonction objectif commune en tenant compte des contraintes. Dans un tel scénario, un contrôleur central peut coordonner le spectre de gestion. 24 Fonctions de la radio cognitive Figure 7 : Accès au spectre Coopératif et non-coopératif 25 Fonctions de la radio cognitive  Mise en œuvre distribuée du contrôle d’accès au spectre : Dans un environnement multi utilisateur distribué, pour un accès non-coopératif au spectre, chaque utilisateur peut parvenir à une décision optimale de façon indépendante en observant le comportement (historique / action) des autres utilisateurs du système. Par conséquent, un algorithme distribué est nécessaire pour un utilisateur secondaire pour prendre la décision sur l'accès au spectre de manière autonome.  Mobilité du spectre (Spectrum mobility)  C’est le processus qui permet à l’utilisateur de la RC de changer sa fréquence de fonctionnement. Les réseaux radio cognitifs essayent d’utiliser le spectre de manière dynamique en permettant à des terminaux radio de fonctionner dans la meilleure bande de fréquence disponible, de maintenir les exigences de communication transparentes au cours de la transition à une meilleure fréquence.  Recherche des meilleures bandes de fréquence : La RC doit garder une trace des bandes de fréquence disponibles de sorte que si nécessaire (par exemple, un utilisateur autorisé est détecté), il peut passer immédiatement à d'autres bandes de fréquences. Lors de la transmission par un utilisateur secondaire, l'état de la bande de fréquences doit être respecté.  Auto-coexistence et synchronisation : Quand un utilisateur secondaire effectue un transfert du spectre, deux questions doivent être prises en compte. Le canal cible ne doit pas être actuellement utilisé par un autre utilisateur secondaire (l'exigence d'auto-coexistence), et le récepteur de la liaison secondaire correspondant doit être informé de la non-intervention du spectre (la demande de synchronisation). 26 Nos publications dans le domaine de la RC  Asma Amraoui, Fatima zohra Benidris, Badr Benmammar, Francine Krief and Fethi Tarik Bendimerad. "Toward cognitive radio resource management based on multi-agent systems for improvement of real-time application performance". Proceedings of the Fifth IFIP International Conference on New Technologies, Mobility and Security (NTMS'2012). Istanbul, Turkey.7-10 May 2012.  B. Benmammar, A. Amraoui and W. Baghli. "Performance improvement of wireless link reliability in the context of cognitive radio". IJCSNS International Journal of Computer Science and Network Security. VOL.12 No.01, January, 2012, pp. 15-22. ISSN : 1738-7906.  A. Amraoui, W. Baghli and B. Benmammar, "Improving video conferencing application quality for a mobile terminal through cognitive radio", Proceedings of the 14th IEEE International Conference on Communication Technology (ICCT 2012). Chengdu, China, November 9th-11th, 2012.  A. Amraoui, W. Baghli et B. Benmammar, "Amélioration de la fiabilité du lien sans fil pour un terminal radio cognitive mobile". Dans les actes du 12 ème Journées Doctorales en Informatique et Réseau (JDIR'11). Belfort, France, 23-25 Novembre 2011. Pages : 1-6. 27 Publications relatives à nos travaux  Zeina Jrad, Badr Benmammar, Joseph Corréa, Francine Krief, Nader Mbarek. "A User Assistant for QoS Negotiation in a Dynamic Environment Using Agent Technology". Proceedings of the Second IEEE and IFIP International Conference on Wireless and Optical Communications Networks WOCN 2005. March 6 - 8, 2005, Hyatt Regency Hotel, Dubai, United Arab Emirates UAE, Print ISBN: 0-7803-9019-9.  B. Benmammar and F. Krief. “Resource Management for End-to-End QoS in a Mobile Environment”. 2nd IEEE INTERNATIONAL CONFERENCE ON Wireless and Mobile Computing, Networking and Communications (WiMob 2006). Montréal, Canada. June 19-21, 2006.  N. Samaan, B. Benmammar, F. Krief and A. Karmouch. "Prediction-based Advanced Resource Reservation in a Mobile Environment". 18th IEEE Annual Canadian Conference on Electrical and Computer Engineering, CCECE05, May 1-4, 2005, Saskatoon Inn, Saskatoon, Saskatchewan Canada.28 Publications relatives à nos travaux  B. Benmammar and F. Krief. "MQoS NSLP: a mobility profile management based approach for advance resource reservation in a mobile environment". Proceedings of the 7th IFIP IEEE International Conference on Mobile and Wireless Communications Networks (MWCN 2005). Marrakech, Morocco. September 19-21, 2005.  Z. Jrad, F. Krief and B. Benmammar. "An Intelligent User Interface for the Dynamic Negotiation of QoS". Proceedings of the 10th IEEE International Conference on Telecommunications.ICT'2003. Papeete, Tahiti. February 2003, Print ISBN: 0-7803-7661-7.  B. Benmammar et F. Krief. “La Technologie Agent et les Réseaux Sans Fil”. Congrès Des Nouvelles Architectures pour les Communications. DNAC’2003. Paris, France. Octobre 2003. Analyse num´erique Catherine Bolley To cite this version: Catherine Bolley. Analyse num´erique. Ecole d’ing´enieur. Ecole Centrale de Nantes, 2012, ´ pp.97. HAL Id: cel-01066570 https://cel.archives-ouvertes.fr/cel-01066570 Submitted on 21 Sep 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Catherine Bolley Analyse numériqueÉcole Centrale de Nantes — 2012 Ce document est sous licence Creative Commons BY-NC-SA 4.0 France : — attribution ; — pas d’utilisation commerciale ; — partage dans les mêmes conditions. http://creativecommons.org/licenses/by-nc-sa/4.0/deed.frTable des matières 1 Généralités sur les matrices 1.1 Normes matricielles 9 1.2 Suites dans Kn;n 10 2 Résolution numérique de systèmes linéaires 2.1 Méthodes directes 13 2.1.1 Système triangulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.2 Méthodes de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.1.3 Méthode LU ou algorithme de Crout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.1.4 Méthode de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 Méthodes itératives 18 2.2.1 Résultats généraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.2 Principales méthodes itératives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3 Convergence et comparaison des méthodes itératives 21 2.3.1 Matrices à diagonale strictement dominante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3.2 Matrices hermitiennes définies positives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3 Calcul de valeurs et vecteurs propres 3.1 Vecteurs propres d’une matrice triangulaire 23 3.2 Méthodes de la puissance itérée 24 3.2.1 Itérations simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.2.2 Méthode d’accélération de convergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.2.3 Méthode de la puissance itérée inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3 Méthodes issues de transformations matricielles 26 3.3.1 Méthode de Rutishauser ou du LU LR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3.2 Matrices réelles symétriques : méthode de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4 Interpolation polynomiale 4.1 Polynôme d’interpolation de Lagrange 31 4.1.1 Existence et unicité du polynôme d’interpolation de Lagrange . . . . . . . . . . . . . . . . . . . . . . 31 4.1.2 Erreur d’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.1.3 Choix des points d’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.2 Construction du polynôme d’interpolation 33 4.2.1 Différences divisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2.2 Différences finies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.3 Schéma de Hörner 35 5 Approximation de fonctions 5.1 Approximation hilbertienne 375.2 Approximation au sens des moindres carrés 38 5.2.1 Données dans L 2 w .a I b/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.2.2 Données dans R n : approximation au sens des moindres carrés discret . . . . . . . . . . . . . . . . 39 5.2.3 Convergence des approximations au sens des moindres carrés . . . . . . . . . . . . . . . . . . . . . . 39 5.3 Polynômes orthonormés 40 6 Intégration numérique 6.1 Étude générale 43 6.1.1 Formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.1.2 Erreur d’intégration numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.1.3 Convergence des méthodes d’intégration numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.2 Formules d’intégration numérique 44 6.2.1 Formules élémentaires de Newton-Côtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.2.2 Méthodes d’intégration numérique composées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6.2.3 Formules de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 6.3 Intégration numérique en deux dimensions 48 7 Équations différentielles du premier ordre à condition initiale 7.1 Problème de Cauchy 51 7.1.1 Condition de Cauchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7.1.2 Théorème d’existence et d’unicité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.2 Méthodes de résolution numériques à un pas 52 7.2.1 Méthode d’Euler-Cauchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.2.2 Étude générale des méthodes à un pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.3 Méthodes de résolution numérique à pas multiples 56 7.3.1 Méthodes d’Adams-Bashforth à k C 1 pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 7.3.2 Méthodes d’Adams-Moulton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 7.3.3 Formulation générale des méthodes à pas multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8 Systèmes d’équations non linéaires 8.1 Principe de résolution par itérations 61 8.2 Principales méthodes en une dimension 62 8.2.1 Méthode des approximations successives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 8.2.2 Méthode de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.2.3 Méthode de dichotomie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 8.3 Principales méthodes dans R n 64 8.3.1 Méthode des approximations successives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 8.3.2 Méthode de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 8.4 Application aux racines de polynômes : méthode de Bairstow 65 8.4.1 Principe de la méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 8.4.2 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 Exercices A Méthode des éléments finis en dimension 1 A.1 Étude de l’erreur d’approximation 79 A.1.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 A.1.2 Majoration de jju uhjj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 A.1.3 Majoration de ju uhj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 A.1.4 Majoration de ju uhj1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 A.2 Problème approché avec intégration numérique 81 A.2.1 Majoration de jju Quhjj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 A.2.2 Majoration de ju Quhj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 A.2.3 Erreur d’intégration numérique par la méthode des trapèzes . . . . . . . . . . . . . . . . . . . . . . . 83 A.2.4 Majoration de Rh si on utilise la méthode des trapèzes . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 A.3 Tests numériques de résolution de problèmes approchés 84 B Méthode de la puissance itérée pour le calcul de valeurs propres B.1 Itérations simples 85 B.1.1 Résultats généraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 B.1.2 Approximation d’un vecteur propre associé à 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 B.1.3 Approximation de la valeur propre 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 B.1.4 Cas où l’itéré initial est orthogonal à l’espace propre à gauche associé à 1 . . . . . . . . . . . . . 86 B.1.5 Amélioration de la méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 B.1.6 Calcul d’autres éléments propres : méthode de déflation . . . . . . . . . . . . . . . . . . . . . . . . . . 88 B.2 Méthode d’accélération de convergence 88 B.3 Méthode de la puissance itérée inverse 89 C Prérequis d’analyse numérique C.1 Analyse matricielle 91 C.2 Algèbre linéaire 91 C.3 Valeurs propres 92 C.4 Résolution numérique de systèmes linéaires 93 C.5 Analyse 961 Généralités sur les matrices Notations et rappels Dans ce document, l’ensemble K est un corps commutatif, R ou C. Kn est l’espace vectoriel des vecteurs (colonnes) à n lignes à coefficients dans K. Si u 2 Kn , on notera u D .ui/iD1;:::;n où les ui sont les coefficients de u. Kn;m est l’espace vectoriel des matrices à n lignes et m colonnes à coefficients dans K. Si A 2 Kn;m a pour coefficients aij , on notera : A D .aij / i;j ; i D 1; : : : ; n; j D 1; : : : ; m (1.1) où i désigne l’indice de ligne et j , l’indice de colonne. La matrice A > 2 Km;n désigne la transposée de la matrice A et ses coefficients vérifient : a > ij D aj i; i D 1; : : : ; n; j D 1; : : : ; m (1.2) La matrice A 2 Kn;m est l’adjointe de la matrice A : A D AN> (1.3) Matrices carrées On s’intéresse au cas m D n et A 2 C n;n. On note i , i D 1; : : : ; n les n valeurs propres dans C de A. B Définition 1.1 — Rayon spectral. On appelle rayon spectral de A, le réel noté .A/ défini par : .A/ D max iD1;:::;n ji j (1.4) B Définition 1.2 — Trace. La trace de la matrice A est donnée par : tr.A/ D Xn iD1 ai i (1.5) On a en particulier : tr.A/ D Xn iD1 i (1.6) B Définition 1.3 — Matrice diagonale. Une matrice carrée A 2 Kn;n est dite diagonale lorsque aij D 0 pour i ¤ j . CRYPTANALYSE DE RSA Abderrahmane Nitaj To cite this version: Abderrahmane Nitaj. CRYPTANALYSE DE RSA. 3`eme cycle. Oujda (Maroc), 2009, pp.56. HAL Id: cel-00420490 https://cel.archives-ouvertes.fr/cel-00420490v2 Submitted on 12 Jan 2010 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.CRYPTANALYSE DE RSA Abderrahmane Nitaj Laboratoire de Math´ematiques Nicolas Oresme Universit´e de Caen, France http://www.math.unicaen.fr/~nitaj nitaj@math.unicaen.fr c Version du 28 juin 2009Table des mati`eres Contenu i Pr´eface 1 1 Introduction au cryptosyst`eme RSA 3 1.1 Principe de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.1 Le module RSA . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.2 Les cl´es publiques et priv´ees . . . . . . . . . . . . . . . . . . . 5 1.1.3 Envoi d’un message . . . . . . . . . . . . . . . . . . . . . . . . 7 1.1.4 D´echiffrement d’un message . . . . . . . . . . . . . . . . . . . 8 1.1.5 Signature d’un message . . . . . . . . . . . . . . . . . . . . . . 9 1.1.6 Preuve de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2 Un exemple d’utilisation de RSA . . . . . . . . . . . . . . . . . . . . 12 1.2.1 Transformation d’un texte en nombres . . . . . . . . . . . . . 12 1.2.2 L’exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.3 Cryptanalyses ´el´ementaires de RSA . . . . . . . . . . . . . . . . . . 15 1.3.1 Cryptanalyse de RSA connaissant ϕ(N) . . . . . . . . . . . . 15 1.3.2 Utilisation du mˆeme module et deux exposants diff´erents . . . 16 1.3.3 Utilisation de modules diff´erents pour le mˆeme message. . . . 18 1.3.4 Cryptanalyse de RSA si |p − q| < cN1/4 : M´ethode de Fermat 21 2 Cryptanalyse de RSA par les fractions continues 25 2.1 Les fractions continues . . . . . . . . . . . . . . . . . . . . . . . . . . 25 iii TABLE DES MATIERES ` 2.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.1.2 D´efinitions et propri´et´es . . . . . . . . . . . . . . . . . . . . . 26 2.2 Cryptanalyse de RSA par les fractions continues . . . . . . . . . . . . 37 2.2.1 L’attaque de Wiener . . . . . . . . . . . . . . . . . . . . . . . 38 3 Cryptanalyse de RSA par l’algorithme LLL 43 3.1 L’algorithme LLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.1.1 Introduction aux r´eseaux . . . . . . . . . . . . . . . . . . . . . 43 3.1.2 L’algorithme LLL . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.2 Cryptanalyse de RSA par la r´eduction des r´eseaux . . . . . . . . . . . 59 3.2.1 La m´ethode de Coppersmith : polynˆomes `a une variable . . . 59 3.2.2 Factorisation de N . . . . . . . . . . . . . . . . . . . . . . . . 69 Bibliographie 73Pr´eface Si vous enseignez `a un homme, vous n’enseignez qu’`a une personne. Si vous enseignez `a une femme, vous enseignez `a toute une famille. .   éÊ K A « IÒ   Ê« Y  ® ¯   è @QÓ@ IÒ   Ê« @ X@ A  Ó @ , @  XQ ¯ IÒ   Ê« Y  ® ¯ C  g. P IÒ   Ê« @ X@ La cryptographie moderne est bas´ee sur les math´ematiques pour s´ecuriser l’information. On distingue deux types de protocoles cryptographiques : la cryptographie `a cl´e priv´ee et la cryptographie `a cl´e publique. La cryptographie `a cl´e publique `a ´et´e introduite par Whitfield Diffie et Martin Hellman en 1976, marquant ainsi la naissance de la cryptographie moderne. Le principe de la cryptographie `a cl´e publique repose sur deux types de cl´es : une cl´e publique et une cl´e priv´ee. Pour chiffrer un message, on utilise la cl´e publique de son destinataire. Alors, seul le destinataire peut d´echiffrer le message re¸cu avec sa propre cl´e priv´ee. En 1978, Ronald Rivest, Adi Shamir et Leonard Adleman ont propos´e le premier cryptosyst`eme `a cl´e publique, appel´e RSA. Ce cryptosyst`eme est devenu le plus r´epandu dans le monde car il est facile `a r´ealiser mais tr`es difficile `a casser. En effet, sa s´ecurit´e repose sur l’un des probl`emes les plus difficiles en math´ematiques : la factorisation des grand nombres. Dans ce travail, nous introduisons les principes g´en´eraux du cryptosyst`eme RSA ainsi que certaines attaques permettant de le casser, si les param`etres de s´ecurit´e sont mal choisis ou s’il v´erifient des relations permettant `a un attaquant d’en tirer profit. Dans le chapitre 1, nous donnons les principes g´en´eraux du cryptosyst`eme RSA et nous pr´esentons quelques attaques ´el´ementaires permettant de le casser. Dans le chapitre 2, nous pr´esentons une introduction `a la th´eorie des fractions continues et leur utilisation pour attaquer le cryptosyst`eme RSA dans certains cas. Dans le chapitre 3, nous pr´esentons quelques aspects de la r´eduction des r´eseaux, plus pr´ecis´ement l’algorithme LLL et son utilisation pour attaquer le cryptosyst`eme RSA grˆace `a la m´ethode de Coppersmith. Dans ce travail, la plupart des r´esultats sont illustr´es par des algorithmes programm´es `a l’aide des syst`emes de calcul Maple 12 et Magama dont un calculateur 12 TABLE DES MATIERES ` en ligne est `a l’adresse http://magma.maths.usyd.edu.au/calc/.Chapitre 1 Introduction au cryptosyst`eme RSA Celui qui n’aime pas gravir les montagnes, vivra toute sa vie dans les trous. Abou Al Qasim Achabi . Q ® m Ì'@ á  K . Q ë  YË@ Y K . @ ª  K È A J . m . Ì'@ Xñ ª I . m  B á Ó ð ú  G . A ‚Ë@ Õæ…  A  ®Ë@ ñ K . @ 1.1 Principe de RSA Toutes les op´eration du cryptosyst`eme RSA se passe dans un ensemble de nombre entiers. Soient p et q deux nombres premiers assez grands. On note N = pq. Le nombre N est appel´e module RSA. Supposons que deux personnes A et B veulent communiquer de fa¸con sˆure en utilisant le cryptosyst`eme RSA. Pour cela, ils doivent, chacun de son cot´e pr´eparer un module RSA, deux cl´es e et d, ex´ecuter une proc´edure de chiffrement et de signature et une proc´edure de d´echiffrement et de v´erification de la signature. 1.1.1 Le module RSA Avant tout, pour utiliser le cryptosyst`eme RSA, chacun des intervenants A et B doit fabriquer son propre module RSA. L’algorithme 1 peut ˆetre alors utilis´e. 3 Cours Interconnexion et conception de r´eseaux (informatiques) Jean-Luc Archimbaud To cite this version: Jean-Luc Archimbaud. Cours Interconnexion et conception de r´eseaux (informatiques). Ecole ´ d’ing´enieur. A Grenoble `a l’ENSIMAG (cours donn´e 2 fois), 2002, pp.322. HAL Id: cel-00561873 https://cel.archives-ouvertes.fr/cel-00561873 Submitted on 2 Feb 2011 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.1 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 1 Interconnexion et conception de réseaux Cours de 24 h pour 3ième année Ecole d’ingénieurs réseaux 2002 Jean-Luc Archimbaud CNRS/UREC JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 2 Interconnexion et conception de réseaux • Réseau : – Qu’est-ce ? – Plusieurs réseaux interconnectés ? réseau – Dans le cours : réseau informatique d’entreprise – de campus • Concevoir un réseau c’est actuellement : – Faire évoluer l’existant – Réfléchir à toutes les couches • Tranchées ? Applications – Utiliser les services des opérateurs – sous-traitance – Travail de puzzle : assemblage de briques • Matériel - logiciel2 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 3 Concevoir un réseau c’est définir • L’architecture physique (réseau = câble) – Carte des sites – bâtiments – salles à connecter – Les supports physiques – Les équipements actifs • L’architecture logique (réseau = réseau IP) – Les protocoles – Plan adressage – Routage • L’administration des équipements - surveillance • Les services réseaux – DNS (nommage), Messagerie, Web, … • Les outils de sécurité • Les connexions avec l’extérieur : Internet, … Adaptée aux équipements - besoins des utilisateurs Stations – Serveurs – Applications JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 4 Plan du cours • Réseaux locaux - LAN – Liens physiques - câblage : Coax - TP – FO – sans fil – Câblage de bâtiment – Protocoles niveau 1-2 : Ethernets – FDDI • Rappels : caractéristiques du protocole IP • Eléments actifs d’interconnexion Eth-IP – Répéteurs – hubs (Ethernet) – Ponts (Ethernet) – Commutateurs Ethernet – Routeurs (IP) – Commutateurs-routeurs (Ethernet-IP)3 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 5 Plan du cours • Liaisons longues distances – Liaisons physiques • Commutées RTC, RNIS, ADSL, X25, louées LS – Modems • ATM – Objectifs – QoS : Qualité de Service – Couches 1 et 2 – Commutateurs et routage – Architectures LS et LANE – Bilan • Exemples d’architecture JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 6 Plan du cours • Architecture logique IP – Adresses IP – Plan adressage IP – Routage IP – Exemples de répartition d’utilisateurs et de services – Architecture ATM : classical IP • MPLS • Intégration voix-données (téléphonie – informatique) – Pourquoi ? – Différents niveaux d’intégration – Téléphonie sur IP • Services rendus • H323 • SIP – Bilan aujourd’hui4 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 7 Plan du cours • Réseaux virtuels – Pourquoi ? – VLAN – Avec ATM – VPN (PPTP, L2TP, IPsec) • Services d’interconnexion de France Télécom – Interconnexion niveau 2 moyen débit – Interconnexion niveau 2 haut-débit – Services (entreprises) • Services à assurer – couche 7 – Noms – Messagerie – Annuaire – Services Web JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 8 Plan de cours • Qualité de service IP –rappels – RSVP – DiffServ • Fonctions « annexes » de certains équipements actifs – Rappels – NAT – Filtrage – Multicast – Gestion des files d’attente • Administration de réseau • Quoi ? – Equipes, standards – Configuration, surveillance, dépannage – Stations d’administration – Métrologie5 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 9 Plan du cours • Quelques éléments de sécurité • Accès à l’Internet • Accès depuis l’Internet – A l’Intranet – Aux serveurs Internet • Construction d’un réseau « solide » • Etudes de cas – Réseau de petit laboratoire éclaté – Réseau de campus • Gros site d’une entreprise – Réseau Renater (national) • Entreprise multi-sites JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 10 Bibliographie • Computer Networks 3rd edition (Tanenbaum) • TCP/IP Illustrated, Vol 1 - W. Richard Stevens • Constructeurs (white papers) – CISCO : http://www.cisco.com – … • Elements d’interconnexion Ethernet – http://www.unige.ch/dinf/jfl/elem/index.htm • Pointeurs cours, mémoires – http://reseau.plisson.org/ • Cours UREC – http://www.urec.cnrs.fr/cours/ • Moteurs de recherche6 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 11 LAN : dimension • LAN : Local Area Network – Un étage – Un bâtiment – Diamètre < 2 km – Un site géographique : domaine privé – Plusieurs bâtiments (site-campus) • Interconnexion de LAN • MAN : Metropolitan Area Network – Dimension d’une ville – Diamètre < 10 km – Domaine public : service d’opérateurs locaux • WAN : Wide Area Network – Très longues distances : opérateurs (inter)nationaux JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 12 LAN : Liens physiques : critères choix • En théorie : propriétés physiques • En pratique : – Coût • Câble (media) • Connecteurs (connectique) • Emetteurs et récepteurs • Installation : pose (tirer des câbles) – Immunité aux perturbations • Foudre, électromagnétiques, … – Longueur maximum possible entre deux équipements actifs (? minimiser le nb) • Coût équipement • Besoin alimentation électrique, … – Débits possibles (surtout débit max) : bps7 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 13 LAN : liens physiques : câble coaxial • Bande de base : Baseband – 50 ohm – transmissions numériques – quelques kms – Ex : Ethernet câble jaune – bus - prises vampires - 10base5 (500 m) • Large bande : Broadband (LAN, MAN, WAN) – 75 ohm – transmissions analogiques – 100 kms – Plusieurs bandes de fréquences ? plusieurs flux – Ex : câble télévision • Bons débits (Gbits/s) et distances, bonne immunité • Problème : cher – Equipements - encombrement (Ø = 1 cm)– difficulté de la pose • N’est plus utilisé pour le LAN informatique – Il peut rester quelques câbles coaxiaux jaunes Ethernet et Ethernet fin (Bande de base) : 10base2 (185 m) - Prises en T • Utilisé dans le réseau câble des villes – Connexion ordinateur : Carte 10BaseT – Modem – Câble (TV) JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 14 LAN : câble coaxial fin et prise en T8 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 15 LAN : Liens physiques : TP • TP : Twisted Pair : Paire torsadée • Fil de cuivre isolé de diamètre 1 mm • Utilisé depuis très longtemps pour le téléphone • TP catégorie (type de TP mais aussi composants) – 3 : jusqu’à 16 Mhz : très répandu aux USA – 4 : jusqu’à 20 Mhz : peu utilisé – 5 : jusqu’à 125 Mhz : le plus répandu actuellement • Câbles 4 paires avec des pas de torsades différents – 5E : amélioration du câblage 5 (Gigabit Ethernet) – 6 : jusqu’à 250 Mhz – 7 : jusqu’à 600 Mhz • Blindage des câbles : – UTP : Unshielded : pas de blindage – STP : Shielded : blindage avec tresse métallique – FTP : Foiled : entourée d’un feuillard d’aluminium JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 16 LAN : Liens physiques : TP • Nombre de paires utilisées : 2 à 4 suivant l’utilisation • Connexions point à point : architecture en étoile • Connecteurs RJ45 : 4 paires • Avantages : – Câblage universel : informatique et téléphone – Débit : plusieurs Mbits/s et Gbits/s sur 100 m (jusqu’à quelques centaines) – Câble et pose peu chers • Désavantages : – Très sensibles aux perturbations (électromagnétiques, …) – Courtes distances – Beaucoup de câbles : pose par professionnels • C’est le media le plus utilisé à l’intérieur des bâtiments9 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 17 LAN : photos TP et RJ45 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 18 LAN : Liens physiques : FO • FO : Fiber Optic : Fibre Optique • 2 types : multimode - monomode – Multimode : rayons lumineux avec réflexions : dispersion • Cœur optique : diamètre 50 ou 62.5 microns • Gaine optique : 125 microns • Multimode 50 ou 62.5 (le plus courant aujourd’hui) – Monomode (single mode) : rayons lumineux « en ligne droite » • Cœur optique avec un diamètre plus petit : 9 microns • Gaine optique : 125 microns – Monomode pour de plus longues distances et plus haut débits • Plusieurs fenêtres de longueurs d’onde possibles pour le faisceau lumineux émis – Fenêtres d’émission centrées sur : 850, 1300 et 1550 nm10 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 19 LAN : Liens physiques : FO • Connectique : – Epissures (définitif) ~ soudures – Connecteurs : les plus répandus : SC (encliquetage) et ST (baionnette) • Emetteurs : – Photodiodes (LED) : multimode, débits moyens, distances courtes-moyennes, peu chers – Lasers : multi ou monomode , très hauts débits, longues distances, plus chers – Plus faciles à installer sur de la fibre multimode • Unidirectionnel : 2 FO pour une liaison • Câbles généralement de 2 à 40 fibres JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 20 LAN : Liens physiques : FO • Budget optique : – Emetteur-récepteur : quelle « atténuation optique » maximale possible peut-on avoir ? • Ex 12 dB – Affaiblissements dans chaque liaison • Distance : lg de fibre : 3.5 dB/km pour FO 62.5 - 850 nm • Connectique : épissure : 0.2 dB, connecteur : 2 dB, … • Détérioration des éléments – Affaiblissement total de la liaison < budget optique • Multiplexage optique – Multiples longueurs d’ondes sur une même fibre – Protocole DWDM (Dense Wavelengh Division Multiplexing) – Mutiplexeurs, démultiplexeurs, commutateurs optiques – Choix n fibres ou multiplexage optique : coût11 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 21 LAN : Liens physiques : FO • Avantages-inconvénients – Débits possibles très élevés (potentiellement immenses) – Longues distances (dizaines voir centaines de km) – Insensible aux perturbations électromagnétiques – … confidentialité • Utilisation – C’est le support maintenant le plus utilisé en interconnexion de bâtiments, en MAN et WAN – Quelques fois en câblage de stations : cher JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 22 LAN : photos de FO et connecteurs Connecteur SC Connecteur ST12 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 23 LAN : sans fil Liaisons radio LAN (R-LAN - WIFI) : 2.4 GHz • Architecture étoile – Carte sur stations (PC, …) avec antenne – Concentrateur avec antenne : borne • Connecté au réseau câblé : borne • Normes IEEE 802.11 • Même rôle que 802.3 pour Ethernet • Distance max station-borne : entre 50 et 200 m • Débits max • 11 Mbits/s partagés (802.11b) : 10 M à 10 m, 1 M à 50 m • Evolutions : Jusqu’à 54 Mbps (802.11a), 20 Mbps et + (802.11g) JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 24 LAN : R-LAN • Utilisation : intérieur de bâtiment (en R-LAN) – Liaisons provisoires : portables, conférences, … – Locaux anciens et protégés (impossible d’effectuer un câblage) • Problèmes – Débit limité – Sécurité : diffusion • Contrôle de l’espace de diffusion • WEP (Wired Equivalent Privacy) • Fixe les adresses Ethernet • Considère comme « externe » : ajout IPSec, … • Se déploie très fortement actuellement • MAN aussi : boucle locale radio (BLR 8M)13 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 25 LAN : sans fil Liaisons laser • Depuis de nombreuses années • Point à point : interconnexion de réseaux • Distance : 1 ou 2 km sans obstacle • Débits : plusieurs Mbits/s • Utilisation : – Quand coût tranchées trop élevé ou domaine public – Liaison provisoire • Problème : réglage de la direction du faisceau JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 26 LAN-MAN : sans fil • Faisceaux hertziens : de 2.4 à 40 GHz – Pas les mêmes fréquences que R-LAN – Demande une licence à l’ART et une redevance – Maxima de débit : de l’ordre de • 2 - 34 voir 155 Mbits/s jusqu’à plusieurs km – Interconnexion de réseaux (et téléphone) – Utilisation : • Plutôt en MAN • Demande une solide étude préalable (obstacles …) • Interconnexion de sites distants sans besoin d’opérateur • Utilisé par les opérateurs (France Télécom …) • Satellite : pas en LAN ! – Service d’opérateur – Quand FO non disponible14 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 27 LAN : câblage de bâtiment (TP) (vocabulaire) • Construction d’un bâtiment : pré -câblage • TP : câblage courants faibles : informatique et téléphone • Répartiteur : local technique – Nœud de concentration et de brassage – Arrivées-départ des liaisons, équipements actifs • Dans un grand bâtiment – 1 répartiteur général : RG – n sous-répartiteurs : SR – Entre RG et SR : câblage primaire : rocades ou colonnes – Entre SR et prises stations : câblage horizontal – Structure étoilée • Câbles - connecteurs – cordons - jarretières – baies de brassage JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 28 LAN : câblage de bâtiment (TP) • Chemins de câbles : – gaines techniques – faux plafond – goulottes, … • Bureaux : – Prises murales – Recommandation CNRS : 3 prises (tél + info) par personne • Tests après installation : cahier de recette – Certification (classe d’installation : classe D) – Réflectométrie – Etiquetage – plans : obligatoire • Base de données pour le système de câblage ? • Travail de spécialistes Sans bon câblage, pas de bons services Câblage : fondations du réseau15 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 29 LAN : Photo baie de brassage optique – JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 30 LAN : tous les Ethernets • Protocoles pour LAN (au départ) – Gigabit Eth : protocole différent (sauf trame) ? MAN • Trame – Adresse destination (MAC address) : 6 octets 08:00:20:06:D4:E8 – Adresse origine (MAC address) : 6 octets – Type (IP = 0800) ou longueur (IEEE 802.3) : 2 octets – Données : taille variable < 1500 octets • Adresses (6 bytes) – MAC address – Station : unique • 3 premiers octets : constructeur – CISCO 00:00:0C – Sun 08:00:20 – HP 08:00:09 • 3 octets suivants : coupleur – Broadcast : FF:FF:FF:FF:FF:FF – Multicast : 1er octet impair16 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 31 LAN : Ethernet 10 M - 10Base5 • Protocole : Ethernet – IEEE802.3 • Début 1980 • Conçu pour 10Base5 : bus : coaxial : diffusion • Méthode d’accès : CSMA-CD – Carrier Sense Multiple Access-Collision Detection – Accès multiple et écoute de porteuse – Détection de collision JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 32 LAN : Ethernet 10 M - 10Base5 • 10 Mbits/s (partagés) • CSMA-CD : – Emet quand le media est libre – Si autre signal sur le media durant émission : arrête l’émission • RTD : round trip delay < 51.2 µs ? lg max réseau • Taille minimum trame envoyée (correcte) : 64 bytes • Quand trame taille < 64 bytes : collision • 10Base5 : 5 câbles 500 m avec répéteurs : 2.5 km • Problèmes 10Base5 – Coût : câble et connectique – Sensibilité aux perturbations électromagnétiques – Besoin d’une même terre • Solution bas prix : 10Base2 – Thin Ethernet - 185 m - stations en coupure • 10Base5 et 10Base2 ? 10BaseT17 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 33 LAN : Ethernet 10 M - 10BaseT • CSMA-CD, 10 Mbits/s, RTD < 51.2 µs • Câble : paire torsadée : UTP 5 – RJ45 • Architecture étoile : centre : hub (multirépéteur) • Distance max hub-station ou hub-hub : 100 m • 4 hubs max entre 2 stations : 500 m lg max JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 34 LAN : Ethernet 10 M : 10BaseF • Pbs 10BaseT : perturbations – distance – ? 10BaseF • CSMA-CD, 10 Mbps, RTD < 51.2 µs • Liaison : 2 FO multimode 50 ou 62.5 • Connecteurs SC ou ST • Station – Répéteur : 1 km • Répéteur – Répéteur : 2 km18 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 35 LAN : Ethernet 10 M • Réseau au sens Ethernet : domaine de broadcast • Avantage : protocole simple • Problèmes : – Débit limité (10 M partagé) – Distances limitées – Dépendance vis a vis de son voisin (collisions, charge) – Broadcast : charge – Pas de confidentialité (diffusion) JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 36 LAN : Ethernet 100 M – 1000 M • 100BaseT (IEEE802.3U) – Fast Ethernet 1995 – Idem 10BaseT (CSMA/CD, RJ45, …) avec débit x 10 et taille réseau / 10 – TP (100BaseT) ou FO (100BaseF) – Distance max : Hub – Station : 100 m (TP) - 412 m (FO) – Lg max réseau 100BaseTX : 250 m – Utilisation : serveurs ? stations – Auto-négociation débit : 10 ou 100 • 1000Base – Gigabit Ethernet – Idem 100Base avec débit x 10 – Taille min trame : 512 bytes – Câblage FO ou TP de très bonne qualité – Point à point, pas de diffusion – Full duplex possible – Utilisation : Serveurs - Backbone Campus – MAN ATTENTION : toutes les distances max Ethernet citées : réseau uniquement avec répéteurs-hubs19 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 37 LAN : Ethernets • 10Base5 – 10 Mbits/s - Coax jaune - Lg max rép – station : 500 m • 10Base2 – 10 Mbits/s – Coax fin – Lg max rép– station : 185 m • 10BaseT (IEEE802.3 – 1990) – 10 Mbits/s – 2 paires UTP – Lg max hub-station : 100 m – 1 paire pour chaque sens de transmission • 10BaseFL – 10 Mbits/s – 2 FO (1 pour chaque sens) – Lg max répet/ou stations : 2 km avec multimode 62.5 • 100BaseTX – 100Mbits/s - 2 paires UTP catégorie 5 – Lg max hub-station : 100 m (réseau 250 m) • 100BaseT4 (peu utilisé) – 100Mbits/s - 4 paires UTP Catégorie 3 ou 4 – Lg max hub-station : 100 m (réseau 250 m) JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 38 LAN : Ethernets • 100 BaseFX – 100 Mbits/s – 2 FO – 412 m (HD) ou 2 km (FD) multimode 62.5 – 20 km monomode • 1000BaseSX (IEEE802.3z) – Sur 2 FO avec longueurs d’onde 850 nm – Lg max : multimode 50 550 m – 62.5 220 m • 1000BaseLX (IEEE802.3z) – Sur 2 FO avec longueurs d’onde 1300 nm – Lg max : multimode 50 550 m - monomode 5 km et plus • 1000BaseT (IEEE802.3ab – 1999) – Sur 4 paires UTP Cat 5E – Longueur max 100 m20 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 39 LAN : schéma réseau campus de Jussieu JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 40 LAN : FDDI • FDDI : Fiber Distributed Data Interface • Protocole pour réseau local informatique • Débit 100 Mbits/s (partagé) • Anneau 2 FO multimode • Nœud : station (SA/ DA)-concentrateur-routeur • Réseau max : taille 100 km, 500 stations C S S S S R S S S S Ethernet S S21 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 41 LAN : FDDI • Accès au support par jeton (3 octets) • Un jeton circule sur l’anneau • Une station qui veut émettre – Capture le jeton – Envoie les trames de données – Libère le jeton – Retire ses trames au passage suivant • Une station réceptrice – Lit les trames qui lui sont adressées – Modifie un champ des trames (FS) pour indiquer qu’elle a lu la trame JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 42 LAN : FDDI • Trame – Adresse destination (6 octets idem Ethernet) – Adresse source – FS (Frame Status) • Erreur • Adresse reconnue • Trame lue – … – Données : lg max 4500 octets • Pb : station FDDI ? station Ethernet – Taille des trames FDDI jusqu’à 4500 bytes alors que max Ethernet est 1500 – Solution pour IP : fragmentation IP22 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 43 LAN : FDDI • Circulation normale : anneau primaire • Coupure anneau – Rebouclage de l’anneau – Mise en fonction : anneau secondaire C S S S S R S S S S Ethernet S S Anneau primaire Anneau secondaire Fonctionnement normal JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 44 LAN : FDDI C S S S S R S S S S Ethernet S S Anneau primaire Anneau secondaire C S S S S R S S S S Ethernet S S Anneau primaire Anneau secondaire Coupure de lien Arrêt de station23 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 45 LAN : FDDI Possibilité d’avoir des stations prioritaires CDDI : FDDI sur paire torsadée Bilan : FDDI trop cher – pas assez de débit Maintenant remplacé par Ethernet 100 ou Giga Bon example de réseau anneau à jeton C S S S S R S S S S Ethernet S S Anneau primaire Anneau secondaire Coupure lien station simple attachement JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 46 Rappels : caractéristiques IPv4 • Protocole réseau : couche 3 • Mode non connecté • Eléments d’un réseau IP : – Stations, réseaux (sens niv2), routeurs • Informations : datagrammes (paquets) • Entête datagramme : – Version (4) – TOS Type of Service : qualité de service – TTL Time To Live : 60 ? 0 (-1 à chaque routeur) – Identification protocole de transport (TCP, UDP, ICMP, …) – Adresse IP de la station origine – Adresse IP de la station destinataire – … • Taille datagramme < 64 Koctets Souvent de taille d’environ 512 ou 576 bytes24 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 47 IPv4 : couche 4 • Couche 4 :protocole entre stations (pas entre routeurs) • TCP : Transmission Control Protocol – Paquet TCP = segment – Mode connecté – Transport fiable (contrôle d’erreurs, accusés de réception, retransmission, …) – Spécification des applications : numéros de port (origine, destination) dans le segment – Fenêtrage – Slow start: s’adapte à tous les débits • UDP : UserDatagramm Protocol – Pas de contrôle – Mode non connecté – Spécification de l’application : numéros de port (orig, dest) – Protocole léger, permet multicast-broadcast facilement JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 48 IPv4 : ICMP • ICMP : Internet Control Message Protocol • RFC792 • Messages ’de contrôle’ émis par les stations ou les routeurs • Messages : – Ralentir le débit d’émission – Destination inaccessible – Demande d’echo – Réponse echo – « Time To Live » exceeded – Redirection – ….25 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 49 IPv4 : couche 2 • IP / couche 2 : les datagrammes IP peuvent être transportés par tous les types de réseaux : – Ethernet RFC894 et RFC1042 – Liaison série : point à point (PPP RFC1331-1332) – ATM (RFC1577) – FDDI – X25 – … • @ IP ? @ couche 2 ? – Ethernet, FDDI : broadcast : ARP, RARP – ATM : serveur ARP JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 50 IPv4 : exemple trame Ethernet (TCP) Une trame Ethernet avec un segment TCP a la forme : • Entête Ethernet – @ Ethernet destination – @ Ethernet origine – Type = 800 • Entête IP – … – Indication TCP – @ IP origine – @ IP destination – … • Entête TCP – Numéro de port source – Numéro de port destination – … • Données26 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 51 IPv4 : adresses • 4 bytes 194.220.156.3 • Chaque coupleur de station ou de routeur a une adresse • Partie réseau (IP) : 194.220.156 • Partie station (IP) : 3 • Routeur : sépare (interconnecte) 2 réseaux IP • Adresses (IP) de broadcast et de multicast – 194.220.157.255 : broadcast sur réseau IP 194.220.157.0 • Détails dans les cours suivants JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 52 Eléments d’interconnexion Ethernet - IP • Pourquoi ? – Problèmes • Répéteurs – Hubs (Ethernet) • Ponts (Ethernet) • Commutateurs Ethernet • Routeurs (IP) • Commutateurs-Routeurs (Ethernet-IP)27 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 53 Eléments d’interconnexion : pourquoi ? • Ré-amplifier les signaux – Electriques - optiques – ? Augmenter la distance maximale entre 2 stations • Connecter des réseaux différents – Supports : Coax, TP, FO, Radio, Hertzien, … – Protocoles niveau 2 : Ethernet, FDDI, ATM, … rieur • « Limiter » la diffusion (Ethernet) – Diminuer la charge globale • Limiter les broadcast-multicast Ethernet (inutiles) – Diminuer la charge entre stations • Limiter la dépendance / charge des voisins • Objectif in fine : garantir une bande passante disponible (une qualité de service) entre 2 stations – Limiter les problèmes de sécurité • Diffusion ? écoute possible : pas de confidentialité JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 54 Eléments d’interconnexion : pourquoi ? • Restreindre le périmètre de la connectivité désirée – Extérieur ? Intérieur : protection contre attaques (sécurité) – Intérieur ? Extérieur : droits de connexion limités • Segmenter le réseau : – Un sous-réseau / groupe d’utilisateurs : entreprises, directions, services, …) – Séparer l’administration de chaque réseau – Créer des réseaux réseaux virtuels • S’affranchir de la contrainte géographique • Pouvoir choisir des chemins différents dans le transport des données entre 2 points – Autoriser ou interdire d’emprunter certains réseaux ou liaisons à certains trafic28 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 55 Eléments d’interconnexion : problèmes • Eléments conçus pour répondre a des besoins : – Qui ont évolué au cours du temps • Durée de vie courte des équipements • Toujours mieux et moins cher – Rapidement à moindre coût : pragmatique • Chaque élément offre certaines fonctions les « prioritaires » du marché de l’époque • ? Problèmes : – Classification, frontières sont un peu complexes – Terminologie imprécise (dépend du contexte) • Commerciaux rarement techniciens • Attention : le choix est un compromis entre les fonctions désirées et le coût JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 56 Eléments d’interconnexion : répéteur • Répéteur (Ethernet) – Boite noire dédiée – Remise en forme, ré -amplification des signaux (électroniques ou optiques) – But augmenter la taille du réseau (au sens Ethernet) • Exemple : distance maxentre stations A - C : 500 m ? 1000 m Repeteur Station A Station B Station C Coax 1 Coax 229 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 57 Eléments d’interconnexion : répéteur • Travaille au niveau de la couche 1 • Ne regarde pas le contenu de la trame • Il n'a pas d'adresse Ethernet – Transparent pour les stations Ethernet • Entre supports coaxiaux, TP et FO • Avantages – débit 10 Mb/s – pas (ou très peu) d'administration • Désavantages – Ne diminue pas la charge – Ne filtre pas les collisions – N’augmente pas la bande passante – Pas de possibilité de réseau virtuel (VLAN) JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 58 Eléments d’interconnexion : hub • Hub : muti-répéteur : étoile (obligatoire TP) • Idem répéteur pour : – Fonctions, avantages, désavantages • Pour Eth 10 et 100 • Ex : Hub 8 ports TP HUB Station Station Station Station Station Station Station d < 100 m HUB Station Station 10 M 10 M 10 M 10 M 10 M 10 M 10 M 10 M 10 M30 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 59 Eléments d’interconnexion : hub • Fonction annexes : – Affectation d’une @ MAC (@ Eth) à chaque brin : sécurité – « Auto-negotiation » débit hub 10-100 (IEEE 802.3u) – Surveillance SNMP • Nombre maximum sur réseau Ethernet – 10Base5 : 4 répéteurs – 10BaseT : 4 hubs • Distance max entre 2 stations : 500 m – 100BaseT : 4 hubs • Mais distance maxentre 2 stations : 250 m – 1000BaseX : utilise des commutateurs • Utilisation actuelle – En « extrémité » de réseau (stations utilisateurs) – Remplacés par des commutateurs Ethernet • En cœur de réseau, pour serveurs, et même pour stations JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 60 Eléments d’interconnexion :hub • Remarque : borne sans fil 802.11b = hub • Face arrière hub stackable – 3 x 24 ports TP (prises RJ45) – 1 port FO (2 FO)31 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 61 • Aussi appelé répéteur filtrant ou "bridge" • Niveau de la couche 2 – Traitement : valeur @ MAC destinataire ? transmet ou non : trafic A-D ne va pas sur coax 2 – Localisation des @ MAC des stations par écoute (auto-learning) ou fixée – Ignoré des stations (transparent) Elts d’interconnexion : pont (Ethernet) Station A Station D Station C Coax 1 Coax 2 PONT Station B 500 m 500 m JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 62 Elts d’interconnexion : pont • Avantages – Augmente la distance max entre 2 stations Ethernet – Diminue la charge des réseaux et limite les collisions • Le trafic entre A et D ne va pas sur Coax 2 • Remplacés en LAN par les commutateurs • Fonctions supplémentaires : cf commutateurs • Ponts distants – Ethernet – Liaison spécialisée (cuivre ou hertzienne ou laser) – Encore utilisés32 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 63 Elts d’interconnexion : commutateur • Commutateur – Switch Ethernet de niveau 2 – 10, 100, 1000 Mb/s TP ou FO • Fonction : multi-ponts, cœur d’étoile • Commute les trames Ethernet sur un port ou un autre – Matrice de commutation COMM Station Station Station Station Station Station Station d < 100 m HUB Station Station 1 G 10 M 100 M JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 64 Elts d’interconnexion : commutateur • Mêmes fonctions et avantages que le pont + augmentation de la bande passante disponible • Matériels - logiciel – Chassis ou boitier – Cartes : 2 ports FO, 8 ports TP … avec débits 10, 100, 1000 Mb/s – Système d’exploitation – Configuration : telnet, client Web – Surveillance : SNMP • Quelques critères de choix techniques (performances) – Bus interne avec un débit max : 10 Gb/s – Vitesse de commutation nb de trames / s – Bande passante « annoncée » : 24 Gb/s – Nb d’adresses MAC mémorisable / interface33 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 65 Elts d’interconnexion : commutateur • Permet : Ethernet Full duplex (TP ou FO) – Emission et réception en même temps : 2x10 ou 2x100 – « Auto-negotiation» possible (IEEE 802.3u) • Fonctions supplémentaires – Auto-sensing débit (IEEE 802.3u) – Affectation statique d’@ MAC et filtrage au niveau 2 – Spanning Tree : évite les boucles • Construction d’un arbre • A un instant : un seul chemin utilisé – Réseaux virtuels : VLAN – Port d’écoute qui reçoit tout le trafic des autres ports • Analyseur JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 66 Elts d’interconnexion : commutateur • Limitations d’un réseau de commutateurs – Théoriquement pas de distance maximum – Broadcast et multicast diffusés partout – 1 seul réseau IP possible • Très répandu : – Local : workgroup switch – Campus : complété par le routeur (plus « lent » et plus cher) – Remplacé par le commutateur-routeur (plus cher) quand besoin34 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 67 Elts interconnexion : commutateur et hubs JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 68 Elts interconnexion : routeur (IP) • Niveau 3 : aussi appelé commutateur niveau 3 – Il y a des routeurs multi-protocoles • On ne parlera que de IP – Interconnecte 2 ou plus réseaux (ou sous-réseaux) IP Station Station Station hub Routeur Ethernet 192.88.32.0 COMM Eth Station Station Station Station Ethernet 192.99.40.0 COMM ATM Station Station ATM 129.88.0.035 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 69 Elts interconnexion : routeur (IP) • Table de routage / @ IP destination • N’est pas transparent pour les stations – Chaque station doit connaître l’@ IP du coupleur du routeur pour « le traverser » • Pour le protocole Ethernet – C’est une station Ethernet – Chaque port possède une adresse Ethernet • Matériels – Chassis ou boitier – Cartes : 2 ports FO, 8/16/24/32/48/64 ports TP … avec débits 10, 100, 1000 Mb/s, LS, ATM, FDDI … JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 70 Elts interconnexion : routeur (IP) • Logiciel – performances – Système d’exploitation • IOS CISCO – Configuration : avec telnet ou navigateur – Surveillance : SNMP – Performances : • Nb de paquets routés/s • Routage : ASIC – Un PC Linux avec 2 cartes Ethernet peut faire fonction de routeur • Fonctions annexes : chapitre ultérieur du cours 36 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 71 Elts interconnexion : Commutateur-routeur (IP) • Multilayers switch • Réunion des fonctions commutateur et routeur dans une seule « boite » • On peut configurer certains ports en commutation, d’autres en routage • L’équipement à tout faire – Mais pour le configurer il est nécessaire d’avoir défini l’architecture que l’on veut mettre en place • Maintenant très performant avec des prix très compétitifs – Remplace les routeurs et les commutateurs JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 72 Elts interconnexion : commut-routeur • Exemple de réseau de laboratoire COMMUTATEUR-ROUTEUR CAMPUS FO 1G FO Serveur 1 Serveur 2 100 M TP 1 G 100 M TP S1 S2 S3 S4 Mail WWW 10 M TP 10 M TP 10 M TP 10 M TP 10 M TP37 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 73 Elts interconnexion : commut-routeur • Peut-être équivalent à : ROUTEUR CAMPUS Serveur 1 Serveur 2 S1 S2 S3 S4 Mail WWW COMMUT COMMUT COMMUT 3 (sous-)réseaux IP : Serveur 1, Serveur2 – S1, S2, S3, S4 – Mail, WWW JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 74 Elts interconnexion : action /trame Trame Ethernet contenant un datagramme TCP • Entête Ethernet – @ Ethernet destination ? Pont - Commutateur – … • Entête IP – … – @ IP destination ? Routeur – … • Entête TCP – … – Numéro de port destination ? Station (choix du service) – … • Données ? Application38 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 75 Elts interco : Architecture Eth - IP Dans une entreprise • Entre stations utilisateurs d’un service – Hubs ou commutateurs • Entre serveurs ou stations demandant du débit (graphiques, …) d’un service – Commutateurs • Entre services – Commutateurs ou routeurs • Entre l’entreprise et l’extérieur (Internet) – Routeurs JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 76 Ex interconnexion de réseaux Ethernet Station M Station L Station K hub Routeur COMM Eth Station F Station G Station H COMM Eth Station J Station I Station E Station D hub Station C Station A hub Station B Pont Station N Station O hub Pont Station P Station R Station Q 10 M 10 M 10 M 10 M 10 M 100 M 100 M 100 M 100 M 10 M 10 M 100 M 2 M 100 M 10 M 10 M 10 M 10 M 10 M 10 M 10 M 10 M 10 M 10 M 100 M39 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 77 Ex interconnexion de réseaux Ethernet • Trame Eth A ? C. Arrive -t- elle à B ? E ? F ? • Trame Eth P ? O. Arrive -t-elle à N ? M ? • Trame Eth R ? Q. Arrive -t-elle à I ? J ? • Trame Eth A ? L. Arrive -t-elle à K ? • A -> Broadcast Eth. Arrive -t-il à B ? D ? G ? R ? • L ? Broadcast Eth. Arrive -t-il à K ? O ? D ? • Collision possible entre les 2 trames : – A ? B et D ? E ? O ? N et M ? L ? – G ? H et E ? F ? • B a un coupleur défectueux (envoie des trames sans écoute ? collisions). Cette station perturbe –t-elle A ? E ? G ? R ? • F dans le même cas. G est-elle perturbée ? • O dans le même cas. M est-elle perturbée ? JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 78 Ex interconnexion de réseaux Ethernet • B émet un flot de données de 5 M b/s vers A en continu. Quelle bande passante (théorique) reste-t-il à A ? C ? E ? F ? R ? • G émet un flot de données de 5 M b/s vers H en continu. Quelle bande passante (théorique) reste-t-il à F ? E ? • G émet un flot continu de broadcast à 20 Mbps. Quelle bande passante (théorique) reste-t-il à H ? E ? B ? R ? • O émet un flot de broadcast à 2 Mbps. Quelle bande passante reste-til entre N et M ? • Les flots de données en parallèle suivants sont ils possibles ? – 10 Mb/s A-B et 10 Mbps D-E ? – 100 Mb/s R-Q et 10 Mbps I-J ? – 10 Mb/s O-N et 10 Mb/s L-M ? – 10 Mb/s F-G et 10 Mb/s F-H ?40 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 79 Liaisons longues distances - opérateurs • Liaisons – Commutées = temporaires ? partagées • Pb : phase (+ ou - longue) d’établissement de connexion et de déconnexion ? difficile pour un serveur – Permanentes : entre 2 points fixes • LS : Liaisons Spécialisées – Lignes Louées • Opérateurs – Opérateurs Telecom traditionnels : FT, Cegetel, … Mais aussi SNCF, sociétés d’autoroutes, … – Liaisons : FO, câbles cuivre, liaisons hertziennes, … – Equipements : (dé)multiplexeur, commutateurs (en tous genres), … – Offres « sur mesure » - contrats spécifiques – Offres « catalogue » : étudiées ici – Les services « à valeur ajoutée » (d’interconnexion) seront étudiés dans un chapitre ultérieur JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 80 Liaisons longues distances : utilisations • Entreprises : – Liaisons inter-sites – Louent des liaisons spécialisées aux opérateurs – Coût d’installation + coût de location • Particuliers ou petites agences : – Particulier - domicile ? entreprise – Agence ? siège – Utilisent les réseaux commutés – Généralement : coût d’installation + location + utilisation41 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 81 Liaisons commutées : RTC Réseau Téléphonique Commuté • Equipement : modem V90 56.6 Kb/s (réception) – Emission à 33.6 Kb/s • Modem micro : interne, externe sur port série … • Particulier/agence ? LAN Entreprise – Micro - Modem – RTC – Serveur d’accès RTC (pool de modems – Concentrateur - Routeur) – LAN (Ethernet) entreprise • Fonction de ré-appel : coût et sécurité • Authentification des utilisateurs : protocole – serveur RADIUS – Micro – Modem – RTC – Fournisseur d’accès Internet – Connexion Internet –Routeur – (Garde - barrière) - LAN entreprise JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 82 Liaisons commutées : RTC • IP – Protocole niveau 2 SLIP ? PPP (Point to Point Protocol) – Micro : @ IP statique ou dynamique (DHCP) • Liaison non permanente – Le micro ne peut pas être serveur • Toujours très utilisé – Réseau RTC partout – Toujours plus de débit possible sur la paire torsadée42 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 83 Liaisons commutées : RNIS Réseau Numérique à Intégration de Service • ISDN (surtout Europe et Japon) • Réseau national de FT : Numéris • Accès de base (particulier-agence) : 144 Kb/s – 2 canaux B à 64 Kb/s : téléphone + Internet par exemple – 1 canal D à 14 Kb/s : signalisation – Utilisation liaison téléphonique classique – 25,5 E / mois en oct 02 (Numeris Itoo) • Accès primaire (Entreprise : PABX) : ~ 2 Mb/s – 30 canaux B à 64 Kb/s + 1 canal D à 64 Kb/s JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 84 Liaisons commutées : RNIS • Connexion micro (particulier-agence) – « Modem » RNIS : carte micro ou « modem» externe sur port série – Modem RTC - BoitierRNIS avec 2 prises téléphoniques – Chemin : Micro – Modem RNIS – Réseau Numéris – (Modem RNIS) – Serveur d’accès RTC ou PABX - Entreprise • Interconnexion de sites : routeurs RNIS (2B + D) • IP : idem RTC : PPP • L’utilisation n’a jamais vraiment décollé – Européen, surtout français : pas USA - Cher – Encore utilisé en back-up ou pour liaisons provisoires43 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 85 Liaisons longues distance : ADSL • ADSL : Asymmetric Digital Subscriber Line • xDSL : technologie pour transmission à haut débit sur le RTC JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 86 Liaisons longues distances : ADSL • Modems : – 512 Kb/s réception - 128 Kb/s émission – 1 M b/s réception – 256 Kb/s émission (ADSL Pro) • La liaison reste libre pour le téléphone – Bande de fréquences utilisée # fréquences vocales – Filtres : chez particulier et au répartiteur FT • Contraintes : – Poste téléphonique < 5 km d’un répartiteur FT • Le cas de 80 % des foyers français – Que le répartiteur FT soit connecté à un réseau ADSL – Abonnement • ADSL chez FT ou ailleurs • Chez un fournisseur accès Internet • Pack qui inclut les 244 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 87 Liaisons longues distances : ADSL • Liaison particulier – entreprise : – Micro – coupleur Ethernet ou port USB – Modem ADSL – RTC – FAI ADSL – Internet – Routeur – LAN Entreprise • IP : idem Ethernet • Connexion permanente : – Coût installation et mensuel (pas à la consommation) – Possibilité de connecter un routeur côté particulier ou agence mais fournisseur d’accès obligatoire • Offre FT : – Sans Internet : 30 E / mois ou 107 E / mois (ADSL Pro) en oct 02 • De plus en plus utilisé – Pbs : monopole de FT, disponibilité selon le lieu – Devrait devenir l’accès standard JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 88 Liaisons longues distances : X25 • Réseau à commutation de paquets : – Couches 2-3 – Circuits virtuels – Adresses X25 • Opérateur historique : Transpac • Accès jusqu’à 64 Kb/s (ou guère plus) • Les serveurs vidéotex (minitel) ont une connexion X25 • Remplacé par IP sous toutes ses formes45 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 89 Liaisons spécialisées FT • Transfix (nationales) – 2.4 K b/s à 34 Mb/s – STAS : Spécifications Techniques d’Accès au Service – 2.4 K à 19.2 K : interfaces : V24, V28 – 64 K à 34 M : interfaces : X24/V11 ou G703-G704 – Modems fournis par opérateur – Liaisons internationales : idem nationales mais plus difficiles à mettre en place de bout en bout : sur-mesure • Connexions : – Routeurs – Ponts (distants) – Commutateurs ATM – PABX Téléphoniques JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 90 Liaisons longues distances : modems • MOdulateur DEModulateur – Convertisseur digital/analogique ou adaptateur digital/digital destiné à transporter des données sur des lignes point à point • Plusieurs types de modems : – RTC : Liaisons commutées : asynchrones historiquement – LS : Liaisons permanentes : synchrones – RNIS – Câble – ADSL – TV – …46 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 91 Modems RTC • Programmation : – Commandes AT (origine Hayes) • Fonctions : – Contrôle de flux XON/XOFF ou RTS-CTS – Correction d’erreur (MNP 34, V42, ARQ) – Compression (MNP5, MNP7, V42Bis) – Adaptation automatique débits et fonctions JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 92 ATM : plan • Objectifs • QoS : Qualité de Service • Couches 1 et 2 • Commutateurs • Routage • Architectures LS et LANE • Bilan • Exemple47 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 93 ATM : objectifs • ATM : Asynchronous Transfert Mode • Origine : CNET (FT R&D) – Opérateur téléphone à l’origine • Supporter tout type de communication Voix – Vidéo - Données informatiques • Mieux utiliser la bande passante – Téléphonie longue distance • Fonctionner à très hauts débits : Gbits/s • Garantir une qualité de service (QoS) à chaque utilisateur (application) de bout en bout • Démarche très théorique JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 94 ATM : objectifs • Mêmes protocoles et technologies en LAN, MAN et WAN • Caractéristiques des réseaux / services attendus – Bande passante (bps) partagée : garantie si possible – Temps de latence (délai de transmission) : minimum et constant si possible • Dépend distance, éléments actifs, charge (files d’attente) – Jitter (variation temps de latence) : min si possible – Taux de pertes : min si possible – … ATM veut fournir ces services ? Protocoles et technologies complexes48 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 95 ATM : Exemple de QoS : Téléphonie • Entendre tous les mots – Faible taux de pertes • Contrainte : bit error rate < 10-2 – Débit constant garanti • Contrainte : 64 Kbits/s sans compression ---> 5 Kbits/s avec • Recevoir au même rythme que l'émission – Temps de latence fixe : contrainte :jitter < 400 ms • Dialogue possible – Temps de latence faible – Poste avec annulation d'echo • Retransmissions : inutiles • Mode connecté bien adapté • Exemple d'incompatibilité (théorique) Téléphone et Ethernet JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 96 ATM QoS : classes de service • Problème : pour supporter toutes les qualités de service sur tous les réseaux ATM il faudrait surdimensionner : – Les liaisons : bande passante et caractéristiques – Les équipements : performances et fonctionnalités • Solution ATM : – On regroupe les applications qui demandent des qualités de service similaires ? 4 groupes – On définit 4 classes de services que peuvent offrir les réseaux (liens et équipements) ATM qui correspondent aux 4 groupes : UBR, ABR, CBR, VBR 49 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 97 ATM QoS : classes de services • UBR – Unspecified Bit Rate – Les applications peuvent émettre un flux variable jusqu’à un débit maximum – Réseau : aucune garantie – pas de contrôle de flux – Service très dégradé • ABR – Available Bit Rate – Pour supporter des applications qui peuvent utiliser toute la bande passante disponible, avec un service « Best Effort » de type IP – Exemples : applications qui utilisent TCP (FTP, HTTP, …), interconnexion d’Ethernets – Services réseau • Aucune garantie (bande passante, temps de latence, …) • Mais mécanisme de contrôle de flux JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 98 ATM QoS : classes de services • CBR – Constant Bit Rate – Pour supporter les flux à débit constant de données – Exemple d’application : téléphone – Services réseau : bande passante réservée, temps de latence fixe • VBR – Variable Bit Rate – Pour supporter les applications à débit variable mais qui demandent certaines garanties (par exemple une bande passante minimum garantie à tous les instants) – Exemple : multimédia : vidéo compressée à débit variable … – Services réseau : • Bande passante minimum garantie • Bande passante maximum garantie pendant un temps maximum fixé • Temps de latence • …. – ? Très complexe à réaliser50 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 99 ATM 1-2 : mode connecté • Problème : quand demande-t-on une (des) qualité(s) de service au réseau ? • Statiquement : à l’abonnement – (Ou lors de la conception du réseau) • A chaque session : mode connecté – Ouverture d’une connexion de bout en bout • En indiquant ce dont on a besoin – Transfert d’informations – Fermeture d’une connexion • Appel destinataire (ouverture connexion) – Adresse destinataire ? Numéro de VP et de VC JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 100 ATM 1-2 : les cellules • Données dans des cellules • Taille fixe : 53 octets – Compromis • Petite (avantage : faible temps de propagation, …) • Grande (avantage : moins de traitements, …) – Facilite les implémentations hardware – Facilite l'allocation de bande passante • Ni détection, ni récupération d'erreur En Tête Information (Payload) 53 Octets 5 Octets 48 Octets51 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 101 ATM 1-2 : structure de la cellule Champ Information 48 octets GFC VPI VPI VCI VCI VCI PT CLP 8 bits HEC GFC Generic Flow Control VPI Virtual Path Identifier (8 bits : 256) VCI Virtual Channel Identifier (16 bits : 64000 possibilités) PT Payload Type Message d’administration ou d’information Etat de congestion (MAJ par commutateur) CLP Cell Loss Priority "priorité" à la destruction si 1 HEC Header Error Check sur l'en-tête de la cellule JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 102 ATM 1-2 : UNI (standard) • UNI : User to Network Interface – Comment établir une connexion – Comment la rompre – Format des paramètres de qualité de service • Débit, taux d’erreur, temps de latence, … – Format d’adresse : 20 octets Emetteur Réseau Récepteur Début de l'appel Setup Call proceeding Connect Connect Ack, facultatif Setup Connect Connect Ack Call proceeding Appel terminé Appel accepté Appel reçu Etablissement connexion52 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 103 ATM 1-2 : adresses : 3 types AFI : Identificateur de l'autorité et du format HO-DSP : High Order Domain Specific Part, utilisé pour supporter des protocoles de routages hiérarchiques. ESI : End System Identifier, en fait la MAC adresse (idem Ethernet) 1 2 10 6 1 1 2 10 6 1 DCC ATM Format ICD ATM Format AFI 39 AFI 47 DCC ICD HO-DSP HO-DSP ESI SEL ESI SEL 1 8 4 6 1 E.164 ATM Format AFI 45 E.164 HO-DSP ESI SEL Data Country Code Code organisation IDI IDP IDI IDP IDI IDP Initial domain identifier Initial Domain Part JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 104 ATM 1-2 : liaisons • Point à point • Liaisons spécialisées câble cuivre (longues distances) – E1 (2 Mbits/s), E2 (34 Mbits/s) – T1 (1.5 Mbits/s), T3 (45 Mbits/s) – …. • Liaisons FO – FO multimode 155 Mbits/s (OC 3) – FO multimode ou monomode 622 Mbits/s (OC12) – …. • Liaisons TP – 155 Mbps UTP cat5 – 52 Mbps UTP cat3 – ….53 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 105 ATM : commutateurs ATM • Eléments d’interconnexion de niveau 2 • Commutateur ATM – Interconnecte des liaisons ATM (point à point) – Commute les cellules sur une liaison ou une autre / table de routage • Cellule contient les numéros de VP et de VC – Etablissement des VP et VC • Statiquement • Dynamiquement lors de l’ouverture de la connexion JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 106 ATM : commutateurs ATM • Structure d’un réseau ATM COMM ATM Station Station Station Station Station Station COMM ATM Station Station hub Routeur Eth COMM ATM54 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 107 ATM : commutateurs • VP et VC Chemin de transmission VP VP VP VC VC VC VC VC VC VC VC VC VC VC VC VC VC VP VP VP JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 108 ATM : commutateurs • Commutateur de VP et de VC VC Switch VP Switch VP 1 VP 6 VP 2 VP 7 VP 5 VC 1 VC 2 VC 1 VC 2 VC 3 VC 4 VC 1 VC 255 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 109 ATM : routage Switch 1 2 3 Link 1 Routing Table VCI-in Link out VCI-out 1 2 2 2 2 4 3 3 3 4 3 6 Link 2 Routing Table VCI-in Link out VCI-out 2 1 1 4 1 2 Link 3 Routing Table VCI-in Link out VCI-out 3 1 3 6 1 4 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 110 ATM : routage Switch 1 2 3 Link 1 Routing Table VCI-in Link out VCI-out 1 2 2 2 2 4 3 3 3 4 3 6 Link 2 Routing Table VCI-in Link out VCI-out 2 1 1 4 1 2 Link 3 Routing Table VCI-in Link out VCI-out 3 1 3 6 1 4 VCI = 456 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 111 ATM : routage Switch 1 2 3 Link 1 Routing Table VCI-in Link out VCI-out 1 2 2 2 2 4 3 3 3 4 3 6 Link 2 Routing Table VCI-in Link out VCI-out 2 1 1 4 1 2 Link 3 Routing Table VCI-in Link out VCI-out 3 1 3 6 1 4 VCI = 4 VCI = 4 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 112 ATM : routage Switch 1 2 3 Link 1 Routing Table VCI-in Link out VCI-out 1 2 2 2 2 4 3 3 3 4 3 6 Link 2 Routing Table VCI-in Link out VCI-out 2 1 1 4 1 2 Link 3 Routing Table VCI-in Link out VCI-out 3 1 3 6 1 4 VCI = 4 VCI = 4 VCI = 657 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 113 ATM : routage Switch 1 2 3 Link 1 Routing Table VCI-in Link out VCI-out 1 2 2 2 2 4 3 3 3 4 3 6 Link 2 Routing Table VCI-in Link out VCI-out 2 1 1 4 1 2 Link 3 Routing Table VCI-in Link out VCI-out 3 1 3 6 1 4 VCI = 4 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 114 ATM : routage Switch 1 2 3 Link 1 Routing Table VCI-in Link out VCI-out 1 2 2 2 2 4 3 3 3 4 3 6 Link 2 Routing Table VCI-in Link out VCI-out 2 1 1 4 1 2 Link 3 Routing Table VCI-in Link out VCI-out 3 1 3 6 1 4 VCI = 4 VCI = 458 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 115 ATM : routage Switch 1 2 3 Link 1 Routing Table VCI-in Link out VCI-out 1 2 2 2 2 4 3 3 3 4 3 6 Link 2 Routing Table VCI-in Link out VCI-out 2 1 1 4 1 2 Link 3 Routing Table VCI-in Link out VCI-out 3 1 3 6 1 4 VCI = 2 VCI = 4 VCI = 4 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 116 Tables de routage ATM Commutateur port 1 Table de routage Station VCI B 2 C 3 Station A Table de routage port 1 VCI-in Port- out VCI-out 2 2 2 3 3 6 Table de routage Station VCI A 2 C 4 Table de routage Station VCI A 6 B 8 Station B Station C port 2 port 3 Table de routage port 2 VCI-in Port- out VCI-out 2 1 2 4 3 8 Table de routage port 3 VCI-in Port- out VCI-out 6 1 3 8 2 459 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 117 Architectures ATM • On peut bâtir plusieurs types d’architecture sur un réseau ATM – Liaisons spécialisées point à point – Des réseaux LANE : émulation de LAN – Des réseaux classical IP : architecture IP • Traité dans la partie « Architecture IP » • Et on peut mixer l’ensemble – Ce que font les opérateurs JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 118 Architecture ATM : Liaison spécialisée • Utilisation courante : location de VC ou de VP entre 2 sites à un opérateur qui possède un réseau ATM – WAN – Débit demandé pour la liaison – Certaines qualités de service assurées : ABR, CBR, … • Connexion des sites aux extrémités : – Commutateur ATM • S’il y a un réseau ATM sur le site, permet de garantir certaines qualités de service jusqu’à l’intérieur du site. – Routeur IP (fourni par le site) avec une carte ATM • Sur le site : réseaux Ethernets par exemple • Routeur fourni ou non par l’opérateur – Commutateur ou routeur Ethernet • L’opérateur fournit l’équipement ATM ?? Ethernet • ATM est « invisible » pour le site60 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 119 Architecture ATM : LANE : buts • LANE : LAN Emulation – ELAN : EmulatedLAN • Objectifs : – Interconnexions (niveau 2) de réseaux locaux comme Ethernet à travers un réseau ATM – Intégration de stations ATM comme « stations Ethernet » – But : rendre « invisible » les commutateurs ATM aux réseaux Ethernet ? LAN emulation • En LAN mais aussi en MAN JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 120 Architecture ATM : LANE : schéma Commutateur ATM Commutateur ATM Commutateur ATM Réseau ATM Station A ATM A T Routeur IP M Commutateur ATM - Eth Commutateur ATM - Eth Commutateur ATM - Eth hub Station Eth Station Eth Station Eth hub Station ETH Station ETH Station ETH hub Station Eth Station Eth Station Eth hub Station Eth Station Eth Station Eth Station B ATM hub Station Eth Station Eth Serveur LANE61 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 121 Architecture ATM : LANE • Emule un réseau Ethernet (de commutateurs) : – Stations Eth + Stations ATM A et B – Stations ETH ne font pas partie de ce réseau • Sur LANE : interconnexion de niveau 2 – On peut utiliser d’autres protocoles que IP • Logiciels : – Stations Eth : pas de logiciel spécifique • ATM « transparent » – Stations ATM, routeur IP, Commut ATM-Eth : LEC • LAN Emulation Client – Sur réseau ATM : « serveur » LANE • LECS (Configuration Server) • LES (LAN Emulation Server) • BUS (Broadcast and Unknown Server) JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 122 Architecture LANE : pbs à résoudre Transformation @ Eth ? ? @ ATM • Lorsqu’une station ATM se connecte sur le réseau (A, B, commutateur ATM-Eth, routeur ATM IP) – Elle connaît l’adresse ATM du Serveur LANE (config manuelle) – Elle s’enregistre auprès du Serveur LANE : • J’ai telle @ ATM • J’ai, ou je connais les @ Ethernet suivantes … • Lorsqu’une station ATM veut envoyer une trame Ethernet à une station X – Interroge le Serveur LANE : qu’elle est l’adresse ATM de la station Ethernet X ? – Le Serveur lui indique l’adresse ATM – La station ouvre une connexion ATM avec la station ATM – ….62 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 123 Architecture LANE : pbs à résoudre Broadcast Eth ? Réseau mode connecté ATM • Lorsqu’une station ATM veut envoyer un broadcastEthernet – Elle envoie la trame vers le Serveur LANE – Celui-ci ouvre autant de connexions que de stations ATM sur le LANE – Il envoie la trame à toutes les stations ATM • Ouverture-fermeture de connexion ATM – Mécanismes de time -out pour ne pas trop ouvrir ou fermer de connexions ATM • On peut avoir plusieurs ELAN sur un réseau ATM JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 124 ATM : bilan • Très complexe : – Cher – Très délicat à faire fonctionner • Utilisé en MAN et WAN par opérateur : – Location de VC statiques entre 2 points (équivalent de LS) • Reconfiguration lorsque location de nouvelles liaisons • Garantit de bande passante – Création de réseaux virtuels ELAN • Utilisation en LAN – Années 1995-2000 – Remplacé par Gigabit Ethernet maintenant – Avantage restant : peut intégrer le téléphone (PABX) • Utilisation en MAN et WAN – Encore très utilisé – Remplacé par DWDM, IP directement sur FO, … • Bon exemple de réseau multiservices en mode connecté63 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 125 ATM exemple : réseau MAN (C3I2) VPs C3I2 à 10 M, 20, 30, 35, … selon les sites VPs SAFIR à 2, 4 ou 10 M SAFIR France C3I2 Grenoble INRIA Montbonnot Domaine universitaire INPG Felix Viallet CNET Meylan CEA Polygone CNRS Paris Jussieu Lyon La Doua Rouen Crihan Toulouse CICT CEA Saclay Sophia INRIA EDF Clamart Liaison interne au site à 155 M Prise C3I2 à 155 M JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 126 Ex d’architecture : dorsale Jussieu64 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 127 Ex d’architecture : tour JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 128 Ex d’archi : interco 2 bâtiments distants65 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 129 Ex d’archi : interco 2 bâtiments distants JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 130 Ex d’archi : RAP : MAN • Réseau Académique Parisien • Universités, CNRS, INSERM, … – 300 000 étudiants – 40 000 personnels – 99 sites Paris intra-muros • Réseau privé : ART … • 5 POP (Point Of Presence) – Jussieu (27 sites) – Odéon (34 sites) – Auteuil (15 sites) – Malesherbes (10 sites) – CNAM (13 sites) • Ouverture: été 200266 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 131 Ex d’archi : RAP : câbles • Fibre noire : Single Mode G652 – 69 sites – Lg totale (liaison) : 356.1 km – Métro : 312 km – Egouts : 33 km – Génie civil : 0.3 km – Plus petite liaison : 1 km, plus grande : 9.6 km • BLR (Boucle locale radio)/ S-HDSL (« ADSL » particulier) – 23 sites à 2 Mbits/s • Faisceaux hertziens – 2 sites proches de Paris JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 132 DWDM Infrastructure de transport optique Ex d’archi : RAP : services réseau Data, voice, vidéo, multimédia, VPN … ATM SDH/SONET Ethernet IP DWDM Infrastructure de services Services67 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 133 Ex d’archi : RAP : Architecture Odéon W W E E Auteuil Jussieu E dwdm dwdm dwdm cr cr cr s-atm s-atm Site F Eth 100 Gigabit Ethernet ATM OC12 GigaEthernet 8410 m 3100 m W W E E Malesherbes dwdm s-atm cr dwdm cr s-atm Site A Site D Site C c c NRD ATM IP 5082 m 8672 m 5120 m ATM OC3 Eth 100 10 longueurs d’onde 20 réseaux optiques virtuelsSP SP Site B s-atm s-atm gw-rap JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 134 Architecture logique IP : plan Dans ce chapitre : réseau = réseau IP • Adresses IP • Affectation statique ou dynamique (DHCP) • Plan adressage IP • Routage IP • Exemple de répartition d’utilisateurs et de services • Architecture ATM : classical IP68 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 135 Architecture IP : réseaux IP Station M Routeur COMM Eth Station G Station H COMM Eth Station J Routeur Station C Station A hub Station B Station N hub Station O Routeur Station P Station Q Station R LS 1 M 256 Kb/s Station L hub Fournisseur d’accès Internet JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 136 Architecture IP : adresses • Une adresse IP par coupleur (machine, routeur) • Format : 4 octets notation décimale A.B.C.D – Ex : 130.190.5.3 193.32.30.150 • Une adresse doit être unique au monde – Pour l’accès depuis l’Internet • ? Surtout pour les serveurs – Pas obligatoire pour les stations clientes Internet • ? Intervalles d’adresses locales • 2 ou 3 parties dans une adresse IP : – @ de réseau – (@ sous-réseau) - @ machine • Elément qui sépare 2 (ou +) réseaux ou sousréseaux IP : routeur (ou commut-routeur)69 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 137 Archi IP : @ (ancienne classification) • Classe A : A.B.C.D avec A ? 127 – 1er octet : @ de réseau : 126 réseaux possibles – Reste : 254 x 254 x 254 (16 M) machines adressables – Ex : DEC : 16.0.0.0 MIT : 18.0.0.0 • Classe B : 128 ? A ? 191 – 2 premiers octets : @ de réseau • 64 x 254 : 16 000 réseaux possibles – Reste : 254 x 254 (64 000) machines adressables – Ex : IMAG : 129.88.0.0 Jussieu : 134.157.0.0 • Classe C : 192 ? A ? 223 – 3 premiers octets : @ de réseau • 31x 254 x 254 (2 M) de réseaux possibles ) – Dernier octet : 254 adresses de machines • IBP : 192.33.181.0 CITI2 : 192.70.89.0 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 138 Archi IP : sous-réseaux (subnets) • Sous-réseaux : découpage d’un réseau IP (classe A, B, C) • Les sous-réseaux d’un même réseau (subnetté) devaient avoir une taille identique (contrainte routeurs) : – Masque de subnetspécifiait le découpage – Bits qui désignent la partie réseau + sous-réseau = 1 – 192.33.181.0 découpé en 4 sous-réseaux • Masque 255.255.255.192 • 192.33.181.0-192.33.181.63 • 192.33.181.64-192.33.181.127 • 192.33.181.128-192.33.181.191 • 192.33.181.192-192.33.181.255 • Les routeurs permettent maintenant de créer des sousréseaux de tailles différentes • Les sous-réseaux sont connexes – Non séparés par un autre réseau IP – Découpage en sous-réseaux n’est connu que du propriétaire du réseau (site, entreprise, provider, …), pas de l’Internet70 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 139 Archi IP : classless • Pour obtenir une adresse de réseau (unique) – Auprès de son fournisseur d’accès à l’Internet – AFNIC (France) – RIPE (Europe) – Classe A : impossible – Classe B : presque impossible (épuisé) – Classe C ou partie de Classe C : OK • Nouvelle notation et découpage : classless – Réseau 129.88.0.0 ? Réseau 129.88/16 – Réseau 192.33.181.0 ? Réseau 192.33.181/24 – Réseaux (sous-réseaux avant) • 192.33.181.0/26 : 192.33.181.0-192.33.181.63 • 192.33.181.64/26 : 192.33.181.64-192.33.181.127 • 192.33.181.128/26 : 192.33.181.128-192.33.181.191 • 192.33.181.192/27 : 192.33.181.192-192.33.181.223 • 192.33.181.224/27 : 192.33.181.224-192.33.181.255 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 140 Archi IP : @ particulières • Classe D : 224? A ? 239 : multicast – 224.10.15.3 : ? groupe de stations sur l’Internet (n’importe où) • Classe E : 240 ? A ? 254 : utilisation ultérieure • Adresses locales (ne doivent pas sortir sur l’Internet) – 10.0.0.0 à 10.255.255.255 : 10/8 – 172.16.0.0 à 172.31.255.255 : 172.16/12 – 192.168.0.0 à 192.168.255.255 : 192.168/16 • Loopback (soi-même) : 127.0.0.1 • 0.0.0.0 : quand station ne connaît pas son adresse • 130.190.0.0 : le réseau 130.190/16 • 130.190.255.255 : broadcast – Toutes les machines du réseau 130.190/1671 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 141 Archi IP : Affection @ IP à une station • Configuration statique – Unix : commande ifconfig – Windows (2000 pro) : panneau de conf – connexion réseau – TCP/IP • Configuration dynamique : DHCP – Serveur DHCP (Dynamic Host Configuration Protocol) dans un réseau IP avec une plage d’adresses à attribuer – Station sans adresse IP fait une demande DHCPDISCOVER • @ IP source 0000 @IP dest 255.255.255.255 • Contient @ Ethernet et nom de la station – Serveur DHCP répond : • Adresse IP - Masque de sous-réseau – informations de routage • Adresses DNS – Nom de domaine • Durée du bail – Explication simplifiée (plusieurs serveurs DHCP possibles, …) – Avantage : pas de conf sur stations, portables, économie d’@ – Désavantage : qui est qui ? JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 142 Archi IP : pbs adresses IP • Adressage ni hiérarchique, ni géographique – Tables de routages énormes au cœur de l’Internet – Distribution des adresses • Au compte-goutte (maintenant bataille commerciale) • Uniquement 4 bytes (et certaines plages vides) ? Pénurie d’adresses – FAI : adresses dynamiques aux clients – Entreprises – FAI : • Adresses locales sur réseau privé • NAT : Network Address Translation – Et PAT : Port Address Translation – IPv672 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 143 Archi IP : plan d’adressage • Un routeur sépare 2 (ou plus) réseaux ou sous-réseaux IP • Il faut construire un plan d’adressage – Découper l’espace d’adressage dont on dispose en sous-réseaux et le répartir entre les stations • Eléments à prendre en compte : – Les routeurs séparent les sous-réseaux • Proximité géographique des stations • Ou non si VLAN – Dans un sous-réseau on est dépendant de son voisin • Broadcast Ethernet par exemple – On regroupe dans un même sous-réseau les stations qui travaillent entre elles (d’un service par exemple) • La majorité du trafic reste local au sous-réseau (évite de charger les autres sous-réseaux • Profils de connexion et de sécurité identiques JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 144 Archi IP : plan adressage 192.33.181/24 192.33.181.129 Routeur 3 COMM Eth 192.33.181.141 192.33.181.142 COMM Eth 192.33.181.200 Routeur 2 192.33.181.67 192.33.181.65 (B) hub 192.33.181.66 (A) 192.33.181.2 hub 192.33.181.3 Routeur 1 192.33.181.5 192.33.181.201 192.33.181.202 (C) LS 1 M 256 Kb/s 192.33.181.130 hub Fournisseur d’accès Internet 192.33.181.0/26 192.33.181.64/26 192.33.181.128/26 192.33.181.192/27 192.33.181.224/27 Quelles @ manquent ils ?73 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 145 Archi IP : plan adressage 192.33.181/24 192.33.181.129 Routeur 3 COMM Eth 192.33.181.141 192.33.181.142 COMM Eth 192.33.181.200 Routeur 2 192.33.181.67 192.33.181.65 (B) hub 192.33.181.66 (A) 192.33.181.2 hub 192.33.181.3 Routeur 1 192.33.181.5 192.33.181.201 192.33.181.202 (C) LS 1 M 256 Kb/s 192.33.181.130 hub Fournisseur d’accès Internet 192.33.181.0/26 192.33.181.64/26 192.33.181.128/26 192.33.181.192/27 192.33.181.224/27 192.33.181.203 192.33.181.231 192.33.181.10 192.33.181.230 192.33.181.80 192.33.181.150 192.33.181.145 X Pour l’administration des équipements, il en manque d’autres … JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 146 Archi IP : routage IP • A (192.33.181.66) veut envoyer un datagramme IP à B (192.33.181.65) – Pb : A doit envoyer une trame Ethernet mais ne connaît l’@ Eth B – Elle envoie un broadcast Ethernet sur le réseau qui demande : quelle est l’@ eth de B ? (l’@ Eth de A est spécifiée dans la trame Ethernet : @ Eth origine) – B répond à l’@ Eth A en disant : je suis 192.33.181.65 et mon adresse Ethernet est @ Eth B – A peut alors envoyer alors les datagrammes IP dans des trames Ethernet (elle connaît l’@ Eth de B) – Mécanisme : ARP – RARP • A (192.33.181.66) veut envoyer un datagramme à C (192.33.181.202) – Elle doit envoyer une trame Eth au routeur 2 : 192.33.181.80 – Il lui manque cette information ? Information de routage74 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 147 Archi IP : routage IP • Chaque station doit être configurée pour spécifier – Son adresse IP (Commande Unix ifconfig) – L’adresse du sous-réseau sur laquelle elle est (Commande Unix ifconfig) – Une table (de routage) qui indique comment atteindre les autres réseaux (Commande Unix route add) • Exemple A – @ IP : 192.33.181.66 - @ Réseau : 192.33.181.64/26 – Routes (numéro IP du prochain routeur destinataire) : • 192.33.181.128/26 ? 192.33.181.80 • 192.33.181.224/27 ? 192.33.181.80 • 192.33.181.192/27 ? 192.33.181.80 • 192.33.181.0/26 ? 192.33.181.80 • Reste du monde (default route) ? 192.33.181.80 • La route par défaut (default route - default gateway) suffit • Toutes les stations doivent être configurées – Ex : mon PC dans panneau de configuration … JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 148 Archi IP : routage IP • Les routeurs aussi doivent être configurés – Par port : @ IP, @ Réseau (ou sous-réseau) – Table routage • Exemple routeur 3 : – Port 1 : 192.33.181.230 - réseau 192.33.181.224/27 – Port 2 : 192.33.181.145 – réseau 192.33.181.128/26 – Port 3 : 192.33.181.203 – réseau 192.33.181.192/27 – Port 4 : X – réseau Y – Table routage • Route 192.33.181.64/26 ? Port 2 : 192.33.181.150 • Route 192.33.181.0/26 ? Port 1 : 192.33.181.231 • Route default ? Port 4 : routeur du fournisseur d’accès • Exemple : envoi datagramme B ? C75 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 149 Archi IP : routage IP • Routage statique – Mise à jour tables de routage : manuelle – ICMP redirect : Ce n’est pas ici c’est ailleurs – Problème : intervention manuelle • Quand le réseau évolue : modification manuel des tables • Quand plusieurs chemins possibles et coupures – Utilisé généralement au niveau des stations, dans certains routeurs d’extrémités • Routage dynamique – Protocoles entre routeurs et entre routeurs et stations pour mettre à jour automatiquement les tables de routages : annonces de routes – Ex : RIP, OSPF, BGP – Cf cours sur le routage JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 150 Archi IP : routage IP • L’Internet ne fonctionnerait pas sans bons protocoles de routage et sans experts pour les faire fonctionner • C’est une problématique surtout d’opérateurs Internet – A laquelle s’ajoutent les accords de peering • Routeurs doivent être très rapides – Traitement du routage directement en ASIC • Routeurs au cœur de l’Internet : doivent connaître toutes les routes : impossible ? Agrégation de plages d’adresses de réseaux IP • On n’est pas obligé d’avoir une route par défaut sur tous les équipements : sécurité76 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 151 Archi IP : répartition d’utilisateurs JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 152 Architecture ATM : classical IP • Objectif : – Utiliser un réseau ATM pour transporter des datagrammes IP • RFC 1483 – Comment encapsuler (transporter) les datagrammes IP dans des cellules ATM • RFC 1577 – Comment construire un réseau IP sur un réseau ATM – Pb ARP par exemple77 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 153 Architecture ATM : classical IP Commutateur ATM Commutateur ATM Commutateur ATM Réseau ATM Station IP A ATM A T Routeur IP M ATM Routeur IP Routeur IP ATM Routeur IP ATM hub Station IP Eth Station IP Eth Station IP Eth hub Station IP Eth Station IP Eth Station IP Eth hub Station IP Eth Station IP Eth Station IP Eth hub Station IP Eth Station IP Eth Station IP Eth Station IP B ATM hub Station IP Eth Station IP Eth Serveur ARP JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 154 Architecture ATM : classical IP • Un sous-réseau IP dans un réseau ATM – Un serveur ARP – Gère une table @ IP ? ? @ ATM • Lorsqu’une station ATM IP se connecte – Elle connaît l’@ ATM du serveur ARP • Configuration manuelle – Elle s’enregistre auprès du serveur ARP • Indique son adresse ATM et son adresse IP • Lorsqu’une station ATM-IP veut émettre un datagramme IP vers une autre station ATM-IP – Demande au ARP Serveur l’@ ATM de la station IP – Ouvre un VC avec cette station ATM – …78 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 155 Architecture ATM : classical IP • Lacunes : – Pas de broadcast ou multicast IP – Un seul serveur ARP : pas de redondance : pb si panne • On peut avoir plusieurs sous-réseaux IP sur un réseau ATM : – Passe par un routeur ATM-IP pour communiquer • ATM complexe avec IP : – Mode non connecté (IP) avec techno en mode connecté (ATM) • Rq : sur un même réseau ATM on peut avoir : – Des VC ou VP permanents (ouverts en permanence) : • LS informatique : interconnexions LANs • Interconnexions PABX – Des ELAN (plusieurs LANE) – Des sous-réseaux IP JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 156 MPLS : buts • MPLS : Multi Protocol Label Switching • Protocole pour opérateurs de WAN IP • Lacunes d’un réseau WAN IP « classique » – Travail d’un routeur important • Il doit étudier chaque datagramme • Il doit extraire l’@ IP destinatrice du datagramme IP, consulter sa table de routage et agir en conséquence – Pas de partage de charge entre plusieurs liaisons • Il n’y a qu’une route par destination – Pas de routage qui tiendrait compte de qualités de service demandées79 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 157 MPLS • Les routeurs en bordure de réseau ajoutent (et enlèvent) une étiquette aux datagrammes selon : – La route que devra emprunter le datagramme – La classification du datagramme • Prioritaire ou non, pour application avec QoS, … • Les routeurs au cœur du réseau routent selon cette étiquette – Rapide (plutôt de la commutation que du routage) • Protocole pour mettre à jour les tables de routage des routeurs au cœur du réseau : – Une fois par « flot » – Choix de route / étiquette donc / origine, QoS, … – Réservation de bande passante possible JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 158 Intégration téléphonie – informatique • Intégration voix - données • Intégration possible car : – Téléphone et informatique utilisent : • Mêmes câbles (FO, TP) et ondes (hertziennes ou radio) • Eléments actifs similaires : les téléphones sont maintenant numériques – Ordinateurs : • Equipés de microphone et hauts-parleurs • Pourraient remplacer les postes téléphoniques : poste « unique » • Pourquoi intégrer ? : faire des économies – En réseau d’entreprise • Infrastructure et matériel : même réseau (plusieurs sens à réseau) • Même équipe d’administration – Dans les réseaux des opérateurs : mêmes économies – Au niveau des utilisateurs : économies sur les communications téléphoniques longues distances • Le coût d’une communication téléphonique dépend de la distance • Le coût d’une « communication » Internet est indépendante de la distance80 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 159 Intégration voix-données • Pourquoi intégrer ? : apporter des nouveaux services – Evolution des services informatiques • Chat, mail ? mode de communication vocal (téléphonique) – Evolution des services téléphoniques • Communication téléphonique ? transfert de documents, vidéo, … – Intégration des services • Annuaires : « téléphoniques » et informatiques (LDAP) • Messageries : vocales et électroniques • Comment intégrer ? – Normes existent : H323, SIP – Solutions techniques (matériels) existent – Législation s’assouplit : dérégulation du téléphone – Différents niveaux d’intégration : tranchées ? réseau et services • Rappel : contraintes téléphone : – QoS (voir chapitre ATM précédent) difficiles sur réseau IP – Existant qui fonctionne parfaitement : PABX à faire évoluer JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 160 Voix-Données : niveaux d’intégration • Mêmes tranchées, fourreaux, goulottes … (chemins de câbles) sur un site 2 câblages (et équipements actifs) différents – 2 réseaux physiques donc logiques différents – 2 administrations différentes – Fait depuis plusieurs années entre les bâtiments – Maintenant en pré-câblage de bâtiment • Câblage courants faibles • LS longue distance partagée entre 2 sites – Interconnexion de PABX – Interconnexion de LAN (routeurs, commutateurs, ponts) – Ex : LS 2 Mb/s (MIC) ou hertzienne ou laser éclatée (multiplexeur et dé-multiplexeur) • 1 M (16 voix téléphoniques) pour PABX • 1 Mb/s pour interconnexion de LAN81 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 161 Voix-Données : niveaux d’intégration • Partage d’un réseau ATM – VP pour PABX – VP pour informatique (routeurs, commutateurs) – FT et les autres opérateurs le font • Utilisation du réseau téléphonique pour les données – Externe (RTC national) ou interne à l’entreprise – Ordinateur (ou routeur) – Modem – Réseau téléphonique – Modem – Ordinateur (ou concentrateur ou routeur ou …) – V90 (56.6 Kb/s), RNIS (2x64 Kb/s), ADSL (… 1 Mb/s) • Utilisation du réseau IP pour la voix – Téléphonie sur IP JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 162 Voix-Données : Tél / IP : services rendus • Connexion ordinateur – ordinateur (application voix) – Ordinateur – Réseau IP (Eth, PPP) – Ordinateur – Netmeeting par exemple – Un réseau logique différent du réseau téléphonique • Pas de communication possible avec postes t éléphoniques classiques – Intéressant pour longues distances • Economies en coût de communication • Connexion PABX – PABX – Téléphones – PABX – passerelle – Réseau IP (Eth, ATM, PPP) – passerelle – PABX – Téléphones – Pas de communication téléphonique possible avec ordinateur connecté dans le mode précédent – Intéressant si bonne infrastructure IP (beaucoup de débit) • Intégration totale : « le tout IP» – Communications postes téléphoniques - ordinateurs possibles82 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 163 Voix-Données : Tél / IP : H323 • Origine : monde des téléphonistes ITU • Ensemble complet de standards – Architecture et fonctions d’un système de vidéo-conférence – Sur réseaux en mode paquet (sans connexion), sans garantie de QoS comme IP (mais pas uniquement pour IP) • IP : RTP – Real-time Transport Protocol – Transport flux temps réel : vidéo, audio, … dans UDP – Ajoute des informations pour que le récepteur compense : variation latence, arrivée de datagrammes dans le désordre, … • Type de données transport ées • Horodatage • Numéro de séquence JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 164 Voix-Données : Tél / IP : H323 • IP : RTCP – Real-time Transport Control Protocol – Permet d’avertir l’émetteur de la qualité de la transmission : • Le taux de paquets perdus • La variation de la latence • … – Informations sur l’identité des participants (applications multicast) • Eléments (matériels ou logiciels) – Terminal H323 : • Ordinateur avec netmeeting • Téléphone sur IP (H323) • …83 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 165 Voix-Données : Tél / IP : H323 • Eléments (matériels ou logiciels) suite – Passerelle : entre réseau IP et RTC (ou RNIS) • Interfaces : – Ethernet ? réseau IP – Ports TP ? téléphones classiques ou PABX • Codage/décodage voix, mise en paquets, suppression d’écho, … – Garde-barriè re : administration • Gestion des @adresses : IP ?? E164 (téléphoniques) • Contrôle les accès • Peut refuser des appels si bande passante insuffisante • Contrôle une zone (H323) – MCU-Pont : Multicast Control Unit : téléconférence • Gère Multicast – Transmet avec adresse IP multicast si le réseau le permet • Ouvre n « connexions » point à point JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 166 Voix-Données : Tél / IP : H323 • Exemple de réseau H323 (entre 2 sites) Réseau IP (Internet) Routeur Routeur hub Station (H323) Station (H323) Téléphone sur IP (H323) Passerelle PABX Téléphone analogique Téléphone RTC analogique hub Station (H323) Téléphone sur IP (H323) Passerelle PABX Téléphone analogique RTC Garde-barrière84 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 167 Voix-Données : Tél / IP : SIP • SIP : Session Invitation Protocol • Origine : IETF : Informatique • Gestion de sessions multimedia avec 1 ou n participants • Adresses : sip:bob@193.10.3.1 • Utilise RTP au-dessus de UDP ou TCP • Station IP ?? Station IP : le protocole définit – Appel – Négociation des paramètres – Communication – Fermeture de connexion JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 168 Voix-Données : Tél / IP : SIP • Autres services – Location server (registrar) • Pour qu’un client puisse s’enregistrer quand il change d’adresse IP (mobile, ISP avec adresse dynamique par exemple) – Proxy server • Serveur d’un côté (reçoit les appels) • Client de l’autre (émet des appels) • Pourquoi ? : Point de contrôle, de facturation – Redirect server • Reçoit des appels • Indique la bonne destination à laquelle s’adresser : proxy , … • Peut permettre de gérer la répartition de charge entre plusieurs serveurs • SIP beaucoup plus basique que H32385 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 169 Voix-Données : bilan aujourd’hui • Constat : la téléphonie ce n’est pas simple – Besoin de QoS et habitude de bonne qualité – Fonctionnalités des PABX et postes téléphoniques sont maintenant complexes : numéros abrégés, transfert d’appel, téléconférence, messagerie vocale, … – 2 équipes d’exploitation avec des cultures différentes • Téléphonistes - informaticiens • ? Intégration prudente – Années 1999-2000 : on va tout mettre sur IP – Aujourd’hui : on peut basculer certaines parties • Elt nouveau : arrivée massive du téléphone portable – Habitude de communications de moins bonne qualité • Comme le transport de la voix sur un réseau « Best Effort » IP – Portabilité sans comparaison avec ordinateur portable • Ne va pas dans le sens d’un terminal unique : téléphone-ordinateur JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 170 Voix-Données : bilan aujourd’hui • Dans entreprise : – Dépend de l’historique et de la culture – Intégration des 2 équipes d’exploitation ? • Généralement : – L’utilisateur conserve 2 équipements : téléphone et ordinateur – Les infrastructures réseaux d’extrémité (câblage horizontal) sont différentes mais chemins identiques • Poste téléphonique : câblage téléphonique ? PABX • Ordinateur : câblage informatique ? hubs, commutateurs, … – Interconnexion de PABX sur IP : solution de + en + déployée • Car débits du réseau données >> réseau téléphonique • Avec back-up RNIS par exemple86 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 171 Voix - Video : n participants • N vers n : réunions avec participants distants : – Téléconférence (voix uniquement) • Service FT (équivalent d’un MCU) • Poste téléphonique habituel ou matériel dédié – Matériel de visio-conférence (voix + image) • H323 sur RNIS ? H323 sur IP • Matériel dédié • Netmeeting + Webcam – Multicast IP : • V IC-RAT + Webcam • Réseau multicast • Académique surtout • 1 vers n : Visio-conférence (sans question de la salle) – Idem ci-dessus – Streaming : realplayer • Unicast ou multicast IP JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 172 Réseaux virtuels : plan • Pourquoi ? • VLAN :Virtual LAN • Avec ATM • VPN : Virtual Private Network – PPTP – L2TP – IPSEC87 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 173 Réseaux virtuels : pourquoi ? On regroupe dans un même réseau (Ethernet commuté ou IP) les stations qui travaillent ensemble (groupe de travail - workgroup). Conséquences : • Les applications « groupe de travail » : – Qui ont besoin de découvrir les serveurs (contrôleur de domaine, voisinage réseau, imprimantes, serveur DHCP, zone Mac, …) – Et ces serveurs qui ont besoin d’émettre des messages vers toutes les stations du groupe de travail Utilisent les broadcasts Ethernet ou IP • Le groupe qui a les mêmes besoins de sécurité : – Contrôle l’accès entrant sur le réseau à la frontière du réseau (routeur d’accès) – Est assuré de la confidentialité par rapport à l’extérieur du groupe car il n’y a pas diffusion à l’extérieur du réseau JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 174 Réseaux virtuels : pourquoi ? • Le groupe qui à les mêmes besoins de connectivité depuis et vers l’extérieur : – Effectue un contrôle d’accès sortant à la frontière du réseau (sur le routeur d’accès) – Peut mettre en place une limitation de la bande passante utilisée vers l’extérieur au point de sortie • Le groupe peut avoir le même adressage IP et des noms de stations dans le même domaine : – Réalisé de fait dans un réseau IP • Problème : comment peut on avoir les mêmes services avec un groupe géographiquement dispers é ? • Solution : avec des réseaux virtuels88 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 175 Réseaux virtuels : pourquoi ? • Exemples de groupes dispersés – Université UJF sur plusieurs sites à Grenoble et un à Valence • Besoin de regrouper les sites dans un seul réseau logique – Entreprise multi sites interconnectés par Internet : • Même besoin – Formation d’ingénieurs sur 2 sites ENSIMAG-ENSERG • Même besoin – Unité CNRS (UREC) sur 4 villes • Même besoin • Exemples de services dispersés – Services administratifs (DR) du CNRS – Services comptabilité d’une entreprise multi-sites • Mais aussi des groupes mobiles – Ordinateurs mobiles – Déménagements, réorganisations ? éclatements géographiques des équipes JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 176 Réseaux virtuels : principes • Regrouper « logiquement » un groupe de stations dispersées géographiquement – Dans un même réseau : Ethernet ou IP ou … • Buts : – Utilisation d’applications « groupe de travail » – Sécurité – Contrôle de bande passante – Noms et adresses IP – Mobilité • Plusieurs techniques suivant les buts, WAN/LAN, … – VLAN – ELAN – VPN89 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 177 Réseaux virtuels : VLAN • Virtual LAN • But : créer un réseau virtuel de niveau 2 – Un domaine de broadcast (Ethernet) • Possible avec des commutateurs Ethernet – Pas avec des hubs – Intelligence dans les commutateurs (et routeurs) • Différents types de VLANs – Par ports (de commutateur) : niveau 1 – Par adresse MAC (Ethernet) : niveau 2 – Suivant la valeur d’autres champs : niveau 3 • Protocole, @ IP, … JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 178 Réseaux virtuels : VLAN par ports Chaque port de commutateur est affecté à un VLAN Exemple : VLAN 1 : A,B,C,D,E,F,I,J VLAN 2 : G,R,K,M,L VLAN 3 : H,Q Station L Station K hub Commutateur Routeur COMM Eth 1 Station F Station G Station H COMM Eth 2 Station J Station I Station E Station D hub Station C Station A hub Station B Station R Station Q Station M 3 1 2 4 5 1 2 3 4 590 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 179 Réseaux virtuels : VLAN par ports • Configuration VLAN de Eth 1 : 3 VLANS 1-2-3 – Port 1 = VLAN 1 Port 4 = VLAN 3 – Port 2 = VLAN 1 Port 3 = VLAN 2 – Port 5 = Voir après – Quand Eth1 reçoit une trame de A (VLAN 1) : • Envoie vers port 2 (et port 5 : cf après) • Configuration VLAN de Eth 2 : 3 VLANS 1-2- » – Port 1 = VLAN 1 Port 3 = VLAN 3 – Port 2 = VLAN 1 Port 4 = VLAN 2 – Port 5 = Voir après – Quand Eth1 reçoit une trame de I (VLAN 1) : • Envoie vers port 1 (et port 5, cf après) • Configuration commutateur de Eth1 (idem Eth2) : – Port 1 : @ MAC A, B, C, D, E – … JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 180 Réseaux virtuels : VLAN par port • Diffusion – Les équipements Eth1, Eth2 et le commutateurrouteur font en sorte que : • Quand A envoie un broadcast Ethernet ? A,B,C,D,E,F,I,J (VLAN1) mais pas vers les autres stations • Pour communiquer entre Eth1, Eth2, Eth3 – Trame Ethernet F ? G impossible • Datagramme IP : F ? Commutateur-routeur ? G – Passe par routeur ou commutateur-routeur • Remarque – Cette segmentation peut aussi être réalisée par brassage manuel dans le local technique où sont les commutateurs : dans certains cas91 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 181 Réseaux virtuels : VLAN 802.1Q • Problème : numéro de VLAN sur les truncks – Schéma précédent : lorsque le commutateur Eth 2 reçoit une trame Ethernet venant de A, pour savoir vers quelles stations il doit la rediffuser il faut qu’il sache le numéro de VLAN dont A est membre – ? Il faut qu’il trouve cette information dans la trame • Il faut que sur chaque lien entre les commutateurs (truncks) les trames soient marquées (taggées) – Protocoles propriétaires : ISL (CISCO) – IEEE802.1Q • Champ type Eth : 8100 • Champ numéro de VLAN : 12 bits (4096) • Niveau de priorité : 3 bits ? QoS • …. • Informations de la trame initiale • Schéma précédent : 802.1Q est activé entre Eth 1 – Commut-Routeur – Eth 2 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 182 Réseaux virtuels : VLAN par @ MAC Chaque station peut appartenir à un VLAN suivant son adresse MAC Exemple : VLAN 1 : A, C, F, I, J, G VLAN 2 : B, D, K, R VLAN 3 : L, M, E, Q, H Station L Station M hub Commutateur Routeur 3 COMM Eth 1 Station F Station G Station H COMM Eth 2 Station J Station I Station E Station D hub Station C Station A hub Station B Station K Station R Station Q 1 3 2 4 5 1 2 3 4 592 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 183 Réseaux virtuels : VLAN par @ MAC • Configuration VLAN de Eth 1 : 3 VLANS 1-2-3 – VLAN 1 : @ MAC de A, C, F, G – VLAN 2 : @ MAC de B, D, Q, R – VLAN 3 : @ MAC de E, H – Quand Eth1 reçoit une trame de A (VLAN 1) : • Envoie vers port 2 (et port 5 : cf après) • Configuration VLAN de Eth 2 : 3 VLANS 1-2- » – Port 1 = VLAN 1 Port 3 = VLAN 3 – Port 2 = VLAN 1 Port 4 = VLAN 2 – Port 5 = Voir après – Quand Eth1 reçoit une trame de I (VLAN 1) : • Envoie vers port 1 (et port 5, cf après) • Configuration commutateur de Eth1 (idem Eth2) : – Port 1 : @ MAC A, B, C, D, E – … JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 184 VLAN par port ou par @ MAC • Avantages VLAN @MAC / port – Des stations sur des hubs peuvent appartenir à différents VLANs • Mais la diffusion n’est pas sélective selon les branches des hubs – On peut avoir des stations qui sont déplacées (déménagement ou mobiles) sans besoin de reconfiguration – On peut identifier chaque station avec son numéro de carte Ethernet • Sécurité accrue • Si adresse MAC inconnue : appartient au VLAN « visiteurs » • Désavantages VLAN par @ Mac – Administration plus lourde • Répertorier et tenir à jour des tables avec toutes les adresses MAC – Si utilisateur change sa carte Ethernet : modification de configuration93 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 185 Réseaux virtuels : VLAN niveau 3 • Affecter les trames Ethernet dans un VLAN différent selon des champs que l’on trouve dans la trame : – Champ type Ethernet : protocole : IP, IPX, Appletalk, … – L’adresse IP origine : sous-réseau • mais ce n’est pas du routage – … • Peut être utile quand de nombreux protocoles sont utilisés sur un même réseau – Support des « anciennes applications » – De moins en moins utile JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 186 Réseaux virtuels : VLAN • Commutateurs : – Ils conservent leur fonction de base : commutation, sans diffusion inutile – Certains peuvent ne pas avoir de fonctionnalité VLAN – Dans les exemples précédents les commutateurs ont la fonctionnalité d’accepter plusieurs adresses Ethernet et VLAN par port : ce n’est pas toujours le cas • Routeurs : – Peuvent supporter 802.1Q. Si non, il faut autant de cartes Ethernet que de VLAN pour que le routeur route les VLAN • Ex de VLANs dans un laboratoire – 1 / par équipe de recherche pour stations de travail individuelles – Administration (peut inclure la station de chaque secrétaire d’équipe de recherche) – Test : toutes les machines de test des différentes équipes – Serveurs locaux – Serveurs Internet – Visiteurs94 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 187 Réseaux virtuels : VLAN • Le travail d’administration de VLAN n’est pas négligeable ! – Il faut bien connaître le réseau (et être plusieurs à le connaître : pb absence) – Il faut un outil d’administration • Théorie : on peut utiliser des commutateurs de différents constructeurs : IEEE802.1Q • En pratique : commutateurs homogènes – Avec un outil d’administration fourni par le constructeur • Les VLAN sont des réseaux virtuels pour LAN – Pas pour MAN ou WAN JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 188 Réseaux virtuels : ATM • Interconnexion de réseaux Ethernet – ELAN : principe LANE (cf chapitre précédent) • Utilisation de VPs ATM pour interconnecter des bâtiments (LAN) ou des sites (WAN) : – Réseaux Ethernet ou ATM – Réseaux IP – Fonctions : • Sécurité : appelé aussi VPN ATM • Garantie de qualité de service (débit / VP) – Exemple : service ATM de Renater95 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 189 Réseaux virtuels : VPN : but • VPN : Virtual Private Network – Terme générique qui regroupe plusieurs techniques • Relier 2 réseaux distants (ou une station et un réseau) via un réseau ouvert (Internet) en garantissant : • Les services de VLAN pour IP : même réseau logique IP • Etendre le réseau interne • Des services des sécurité : • Confidentialité des informations transmises • Intégrité des données (données non modifiées par un tiers) • Authentification de l’émetteur et du destinataire (au sens station ou routeur) • Sans rechercher une qualité de service particulière (débit …) • Eviter des infrastructures dédiées à base de LS – Réduction de coût en utilisant un réseau partagé • Utilisation du tunneling (tunnelisation) JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 190 Réseaux virtuels : VPN : tunnels • Un tunnel transporte des données entre 2 points sans que les éléments entre les points « perturbent » ce transport – Réseau de transport : transparent • Entre 2 réseaux ou entre station-serveur Réseau 1 Réseau 2 Internet Station A Serveur 1 Station B 96 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 191 Réseaux virtuels : VPN : tunnels • Encapsulation – En entrée de tunnel : données insérées (encapsulées) dans un paquet du protocole de tunnelisation – En sortie : données extraites : retrouvent leur forme initiale – Tunnel IP véhiculant des datagrammes IP • Entête – @ IP Origine : @ IP entrée du tunnel – @ IP Destinatrice : @ IP sortie du tunnel – Protocole : tunnel : par ex : GRE • Données : datagramme initial IP – Entête : @ IP station origine - @ IP station destinatrice – Données • Plusieurs méthodes et protocoles – PPTP (RFC2637) – L2F (RFC2341) – L2TP (RFC2661) – IPSEC JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 192 Réseaux virtuels : VPN : PPP • PPP : Point to Point Protocol – Permet de transporter des datagrammes IP sur une liaison point à point (RTC, LS par exemple) – Mais aussi d’autres protocoles que IP – Fonctionnalités supplémentaires : • Authentification des extrêmités : PAP ou CHAP – Avant tout transfert de données • Chiffrement des données (confidentialité et intégrité) • Adressage IP dynamique • Compression • …97 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 193 Réseaux virtuels : VPN : PPTP • PPTP : Point-to-Point Tunneling Protocol • Origine Microsoft • VPN surtout sur réseau commuté pour accès particulier – Station isolée ? LAN entreprise • Encapsulation IP, IPX, … ? PPP ? GRE ? IP – Pas uniquement IP • La station isolée semble appartenir au LAN de l’entreprise – Elle peut avoir une adresse IP dans le sous-réseau IP du LAN, comme si elle était une station du réseau interne – Elle voit les autres stations du LAN comme si elle était connectée sur le LAN – Elle a les mêmes droits d’accès aux ressources du LAN qu’une station du LAN (serveurs de fichiers, imprimantes, …) – Elle utilisera la sortie Internet de l’entreprise pour accéder à l’Internet JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 194 Réseaux virtuels : VPN : PPTP • Le chemin entre la station et le LAN est sécurisé – En utilisant les fonctions optionnelles de PPP – Authentification – Chiffrement • Mais il faut bien configurer le serveur PPTP pour que des stations pirates ne puissent pas se connecter sur le LAN • Serveur PPTP – Serveur NT, Linux, … – Serveur d’accès PPTP - Routeur • Client PPTP – Windows NT, 95/98 …, Linux, Mac, …98 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 195 Réseaux virtuels : VPN : PPTP 2 utilisations LAN interne 193.51.3/24 Internet Station Client PPTP 193.51.3.2 Serveur 193.51.3.5 Serveur PPTP Station Client PPTP 193.51.3.4 LAN interne 193.51.3/24 Internet Station Client PPP 193.51.3.2 Serveur 193.51.3.5 Serveur PPTP Station Client PPP 193.51.3.4 Serveur d’accès PPP Client PPTP FAI JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 196 Réseaux virtuels : VPN : L2TP • L2TP : Layer 2 Tunneling Protocol – Réunion de PPTP et L2F (CISCO) • Devrait remplacer PPTP • 3 cas de configuration possibles : – Tunnels L2TP : clients L2TP et serveur L2TP (idem PPTP) – PPP : clients PPP et FAI - Tunnels L2TP : FAI et serveur L2TP (idem PPTP) – LAN – Serveur L2TP – Tunnels L2TP – Serveur L2TP - LAN • Sécurité – Utilisation possible des fonctions de PPP – Pour protéger le tunnel : IPSec 99 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 197 Réseaux virtuels : VPN : IPSec • IPSec : IP Security Protocol • IETF : Pour mettre un peu d’ordre dans les différentes méthodes de tunneling et de sécurisation • Sécurisation des échanges au niveau IP – Chaque datagramme est authentifié et/ou chiffré • Inclus dans IPv6 (intégré dans toutes les piles IPv6) • Optionnel dans IPv4 • Evolution majeure de IP • Peut-être mis en œuvre sur tout équipement IP – Routeur, serveur, station de travail, … • Peut-être mis en œuvre de bout en bout ou sur un tronçon du chemin JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 198 Réseaux virtuels : VPN : IPSec • Entêtes ajoutés : – AH : Authentication Header – ESP : Encapsulation Security Payload • Datagramme avec AH – Entête IP – AH – (Entête TCP/UDP – Données) en clair • AH (Authentication Header) – SPI : Security Parameter Index ? SA (Security Association) • Index d’une table qui pointe sur tout ce qui est nécessaire au récepteur pour interpréter cette entête : algorithmes de crypto utilisés … – Numéro de séquence • Evite le rejeu du datagramme – Signature électronique du contenu du datagramme (? entête IP) • Checksum chiffré • Garantit intégrité et authentifie l’origine100 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 199 Réseaux virtuels : VPN : IPSec • Datagramme avec ESP – Entête IP – Entête ESP – (Entête TCP/UDP – Données) chiffrés – [Authentication ESP] • Entête ESP (Encapsulation Security Payload) – SPI : Security Parameter Index ? SA (Security Association) – Numéro de séquence • Authentification ESP – Optionnelle – Signature – authentification : checksum chiffré : similaire AH • AH inclut l’entête IP pas ESP • Utilisé en mode tunnel pour la signature (pas AH) • 2 Modes d’utilisation – Mode transport – Mode tunnel JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 200 Réseaux virtuels : VPN : modes IPSec • Mode transport – L’entête IP d’origine n’est pas contenue dans l’encapsulation – Entête IP – AH – Entête TCP – Données – Entête IP – ESP – (Entête TCP – Données) chiffrées – Entête IP – AH – ESP – (Entête TCP – Données) chiffrés • Mode tunnel – Entête IP (nouveau) – AH – Entête IP (origine) - Entête TCP – Données – Entête IP (nouveau) - ESP - (Entête IP (origine) - Entête TCP - Données) chiffrées - [Authen ESP]101 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 201 Réseaux virtuels : VPN : IPSec tunnel • Le mode tunnel permet les fonctionnalités des VPN que l’on a vues : – Stations distantes ou sous-réseau distant considérés comme une partie du LAN (avec le même adressage) – Sécurité dans le transport Internet Routeur IPSec Routeur IPSec 194.21.2/24 194.21.2.3 194.21.2.5 194.21.2.4 IPSec JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 202 Réseaux virtuels : VPN : IPSec-Sécurité Security associations : SA • IPSec permet d’utiliser différents algorithmes, clés, … de cryptographie – Les 2 extrémités doivent se mettre d’accord • Pour chaque connexion IPSec : 1 ou 2 SA – Une SA pour AH – Une SA pour ESP • SA – Algo d’authentification (MD5, …) – Algo de chiffrement (DES, …) – Clés de chiffrement – Clés d’authentification – Durée de vie des clés – …102 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 203 Réseaux virtuels : VPN : IPSec • Gestion des clés – Manuelle – IKE Internet Key Exchange (ancien nom : ISAKMP) • Procédure pour que les 2 extrémités se mettent d’accord : protocoles, algorithmes, clés • Management des clés : fourniture de clés de manière sécurisée … • IPSec – Très solide, bien conçu et intégré dans toutes les piles IPv6 – Devrait beaucoup se répandre – Distinction Auth / Chiff : OK pour les législations – Mais attention : sécurité IP (pas utilisateur …) JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 204 Services de FT : plan • LS (transfix), RNIS (numeris), ADSL : cf avant • Interconnexion niveau 2 « traditionnelle » moyen débit – Frame Relay – Transrel • Interconnexion niveau 2 haut-débit – Turbo DSL – Intra-Cité – Inter LAN – SMHD – SMHD - Giga – MultiLAN • Services IP (pour entreprises) – Les Classiques Oléane – Global Intranet – Global Extranet – Collecte IP/ADSL103 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 205 Services FT : interconnexion « traditionnelle » moyen débit • Frame Relay – Remplacement de X25 : réseau commuté commuté avec circuits virtuels – Débits de 19.2 Kb/s à 8 Mb/s – Connexion réseaux FR d’entreprise – Réseau international • Transrel – Service point à point – Interconnexion de réseaux Ethernet, Token Ring – Interfaces (équipements : ponts) • Ethernet 10 ou 100 Mb/s • Token Ring 4 ou 16 Mb/s JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 206 Services FT : interco HD : Turbo DSL • Même zone (géographique) • Agences ou particuliers ? Site central • Liaisons permanentes • Raccordement site central – ATM 30, 60, 90 ou 120 Mb/s • Raccordement extrémités – ADSL jusqu’à 2 Mb/s – 320 Kb/s104 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 207 Services FT : interco HD : Intra-Cité • MAN : Voix et données • Boucle locale FT • Connexions point à point (LS virtuelles) de 2 sites équivalents à 2 Mb/s, 10 Mb/s ou 100 Mb/s • Interfaces – G703 : PABX : 2 Mb/s – Ethernet 10 ou 100BaseT : 2 Mb/s, 10 Mb/s, 100 Mb/s • Connexion entreprise – PABX, routeur IP, commutateur Ethernet JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 208 Services FT : interco HD : Inter LAN • MAN : données • Client : PME (petit budget) • Connexions point à point (LS virtuelles) ou multipoint de sites équivalents à 2, 4, 20, 40, 60, 100 Mb/s • Interfaces – Ethernet 10 ou 100BaseT ou GigaEthernet – ATM • Différents niveaux de « qualité de débit » – Débit minimum garanti (on peut avoir plus si réseau peu chargé) – Débit permanent garanti – Débit non garanti (?) • Connexion entreprise – Routeur IP, commutateur Ethernet, commutateur ATM105 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 209 Services FT : interco HD : SMHD • MAN : n sites • SMHD : Service Multisites Haut-débit – Protocole SMDH – Boucle FO MAN dédiée à 155, 622 ou 2.5 Gb/s – Sécurisation : chaque site est raccordé avec 2 parcours différents • Les sites se partagent la bande passante de la boucle • Liaisons permanentes ou temporaires entre sites – 2, n x 2, 34, 45 ou 155 Mb/s • Interfaces – G703, Ethernet 10 et 100 Mb/s JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 210 Services FT : interco HD : SMHD Giga • Nouveau • MAN – 3 sites minimum • Technologie DWDM – Multiplexage optique – Ce n’est donc pas le protocole SMHD • Liaisons (jusqu’à 32 par lien) – 622 Mbps ? 2.5 Gigabit/s – Très hauts débits • Interfaces d’accès – Fast Eth, Giga Eth, Fiber Channel, .. • Bientôt 10 Gigabit/s106 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 211 Services FT : interco HD : MultiLAN • WAN : 92 villes françaises et aussi international • Raccordements (physiques) : 2, 34 ou 155 Mb/s • Connexions point à point (LS virtuelles) de débits de 256 Kb/s à 100 Mb/s • Interfaces – ATM – Ethernet 10 ou 100BaseT – … • Infrastructure de réseau FT : ATM • Connexion entreprise : PABX, commutateur ATM, équipement vidéo, routeur IP, commutateur Ethernet • Applications : voix (PABX), données (LAN), vidéo JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 212 Services FT : IP : Classiques Oleane • Connexion Entreprise à Internet • Types de raccordement – Lien permanent avec possibilité de back-up Numeris – Connexion RTC, Numeris, GSM – ADSL • Equipement de connexion – Routeur IP fourni ou non • Services à valeur ajoutée – Adresses IP – Hébergement, gestion DNS, serveur Web – Boites aux lettres (anti-virus possible) – Proxy Web – ….107 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 213 Services FT : IP : Global Intranet • Créer un réseau privé virtuel pour l’entreprise – Sites : moyen débit – Postes utilisateurs fixes ou mobiles : bas débit • Techniques – CV ATM – Filtrage adresses IP – Tunelling IP – Authentification des utilisateurs • Equipements de connexion – Routeur fourni ou non – Poste utilisateur • Accès – Permanent 64 Kb/s ? 2 Mb/s – Commuté : RTC, Numeris, GSM – ADSL JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 214 Services FT : IP : Global Extranet • Service d’information de l’entreprise (Extranet) accessible par RTC ou Internet – Clients, Partenaires, Fournisseurs • Facture : téléphone particulier – Numéros d’appel réservés • Technique : tunnels IP Réseau IP de FT Réseau Routeur FT Internet Serveur d’accès FT Routeur Entreprise Interface du service FT Micro particulier Micro particulier Micro particulier Serveurs Numéris RTC Serveur d’accès FT RTC108 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 215 Services FT : IP : collecte IP/ADSL • Pour les fournisseurs d’accès Internet (FAI) • Pour collecter le trafic des abonnés ADSL • Routeur FT chez le FAI – Interfaces Ethernet 10, 100 ou 1000 Mb/s – Débits : 10 Mb/s? 4 Gb/s • Les routeurs FT sont transparents : tunneling … Réseau IP de FT Réseau Routeur FT Internet Routeur FT Routeur FT Routeur FAI Interface du service FT Région Y Micro Région X particulier Micro particulier Micro particulier Micro particulier Concentrateur ADSL Concentrateur ADSL ADSL ADSL ADSL ADSL JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 216 Services à assurer : plan Services « obligatoires » à assurer (couche 7) Uniquement aspect architecture – choix -stratégie • Noms (machines) – Principes – Plan de nommage • Messagerie • Annuaires • Services Web109 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 217 Services : noms • Buts techniques – Traduction : nom de machine ? adresse IP – http://www.inpg.fr ? datagramme IP : • Ouverture connexion TCP sur port 80 • Adresse IP destinataire : ? • Comment : www.inpg.fr ? 195.83.76.58 ? – Ping www.inpg.fr • Datagramme ICMP - @ destination 195.83.76.58 – Dans l’autre sens aussi : @ IP ? nom de machine • Configurations, contrôles d’accès, fichiers de trace, … explicités avec des noms – Mais aussi messagerie électronique • jla@urec.cnrs.fr ? serveur messagerie SMTP mail.urec.cnrs.fr JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 218 Services : noms • Pour que cela fonctionne dans l’Internet – Noms uniques – Système très solide : des serveurs DNS « direct» et « reverse » – Dynamique : ajout de noms décentralisé dans les serveurs DNS • Unicité – Nommage hiérarchique arborescent avec des domaines • .com, .edu, .org, …, .fr, .de, .uk, … – Plan de nommage dans les organismes-entreprises • Solidité – Dynamique – N serveurs de noms administrés localement • Un serveur primaire par zone • Plusieurs serveurs secondaires • Copies régulières des informations primaire ? secondaires – Caches • Postes de travail • Serveurs (primaires – secondaires) – Serveurs DNS : machines dédiées, aux bons emplacements110 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 219 Services : plan de nommage • Choix du nom de domaine (pour une entreprise) – Pas technique : image de l’entreprise • Serveurs Web, … • Adresses électroniques • Un nom a maintenant une valeur commerciale – Sous .com • Quelques $ • Pas de vérification – Sous .fr • Plusieurs dizaines (centaines) d’euros • Vérifications • AFNIC : association ? système « sain » – Dérives • Réservation de noms tels que cnrs.com pour revente • Certains pays (en voie de développement) : – Société à but uniquement lucratif qui gère le top level domain du pays JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 220 Services : plan de nommage machines • Choix de sous-domaines : technique – Un sous-domaine • ? un serveur DNS « direct » • ? un administrateur – Un serveur DNS « reverse » • ? un sous-réseau IP • ? un administrateur – On regroupe souvent serveur « direct » et « reverse » • Quand ajout de machine : MAJ des 2 nécessaire – En cas de problèmes : facilité de localisation • Nom ? Où ? – Possibilité d’alias sur les noms • Très souple111 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 221 Services : plan de nommage machines Exemple : UREC (Paris, Grenoble, Lyon, Marseille) • Domaine urec.cnrs.fr – Sous-domaines grenoble.urec.cnrs.fr et paris.urec.cnrs.fr • Un serveur DNS Paris (un administrateur) – Primaire : urec.cnrs.fr, paris.urec.cnrs.fr, reverse réseau IP Paris – Secondaire : grenoble.urec.cnrs.fr, reverse réseau IP Grenoble • Un serveur DNS Grenoble (un autre administrateur) – Primaire pour grenoble.urec.cnrs.fr, reverse réseau IP grenoble – Secondaire : urec.cnrs.fr, paris.urec.cnrs.fr, reverse réseau IP Paris • Lyon, Marseille : nommage machines laboratoires locaux • Alias dans DNS urec.cnrs.fr, … – www.urec.cnrs.fr ? www.paris.urec.cnrs.fr : visibilité – Idem autres services : mail, … – Autres services dans domaine services.cnrs.fr ? urec.cnrs.fr JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 222 Services : plan de nommage machines • Exemple : IMAG (fédération de 8 laboratoires) – Domaine imag.fr - pas de sous-domaine – Un serveur DNS primaire imag.fr – N serveurs DNS secondaires imag.fr • Pour l’extérieur (authoritative) : 3 • En interne, au moins un par laboratoire – Equipe d’administrateurs soudée • Choix des noms de toutes les machines centralisé • Bases de données mise à jour par chaque administrateur de labo – Script de mise à jour automatique du DNS primaire – Serveurs Web de labo : nom du labo le nom : image • www.imag.fr, www-id.imag.fr, www-clips.imag.fr, … – Choix pas de ss-domaine ? visibilité de la fédération • Une autre possibilité aurait été : un sous domaine par laboratoire112 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 223 Services : plan nommage machines • Choix – Divers : image, organisation entreprise, organisation des administrateurs, histoire, … – Qu’ils soient clairs : document de référence : • Comment est-ce organisé ? • Qui fait quoi ? • Visibilité / extérieur – Pour les noms des serveurs – Pour le nom des stations clientes : intérieur : choix technique • Adressage privé - NAT – 2 nommages : 2 DNS : interne – externe – Les noms de stations internes ne sont plus visibles de l’extérieur – Mais il faut néanmoins que les stations internes communiquent entre elles : document de référence toujours utile • Les FAI offrent des services de DNS • Pb : quand rachat … entreprise ? changement de nom ? JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 224 Services : messagerie • Messagerie Internet : protocole SMTP – Messagerie interne dans l’entreprise peut être différence : passerelle nécessaire – Dans ce chapitre : messagerie interne SMTP, logiciel Sendmail ou Postfix • Plan – Choix de la forme des adresses – Répartition des serveurs – Méthodes d’accès aux boites aux lettres – Format des messages113 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 225 Services : messagerie : adresses Adresses de messagerie : quelle stratégie ? • De préférence forme canonique : Prénom.Nom@… – Exemple : Jean-Luc.Archimbaud@urec.cnrs.fr – Avantages • Adresse unique (sauf homonymes) • Adresse « parlante » : peut éviter un annuaire • Faire apparaître sous-domaines ou non ? – Pierre.Durant@etudes.edf.fr ou Pierre.Durant@edf.fr ? – Pérennité de l’adresse et forme simple / centralisation • Utiliser des adresses génériques – webmaster@.., postmaster@…, info@…, … – Peut-être pour des fonctions : direction@…, secrétariat@…, … – Avantage : pérennité quand la personne change de fonction JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 226 Services : messagerie : adresses • « Transformation» d’adresses - redirection – Différents mécanismes peuvent modifier les champs « To» et « From » sur les messages arrivants ou partants – Serveurs-relais de messagerie : messages arrivants • To : Francis.Duval@edf.fr ? Francis.Duval@der.edf.fr – Serveurs-relais de messagerie : messages partants • From : jla ? From : Jean-Luc.Archimbaud@urec.cnrs.fr – Comptes utilisateurs : .forward (messages arrivants) • To : jla@imag.fr ? To : Jean-Luc.Archimbaud@urec.cnrs.fr – Ne pas en abuser • Doit simplement résoudre les cas particuliers • Différencier adresse professionnelle et personnelle ? (au travail) – Probl ème : correspondance privée : débat non tranché • « Cacher » les adresses pour limiter les SPAM ?114 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 227 Services : messagerie : serveurs • 2 services à assurer : – Relais de messages et hébergement de boites aux lettres • Entrant : un seul serveur relais avec les boites aux lettres – Accessible depuis l’Internet – Avec machine back-up quand indisponible • DNS : plusieurs MX records – Probl ème de sécurité : attaque des boites aux lettres • Entrant : un serveur relais sans boite aux lettres – Accessible depuis l’Internet – Redirige vers 1 ou plusieurs serveurs internes suivant l’adresse du destinataire : • Si adresses avec sous-domaine ? le serveur interne du sous-domaine • Sinon, base de données : une adresse ? son serveur interne – Boites aux lettres sur serveurs internes – Serveurs internes non accessibles depuis l’Internet • Sortant : préférable de passer par un seul serveur relais – Canonisation des adresses, surveillance, traces, … JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 228 Services : messagerie : serveurs relais • Service à surveiller de près – Très souvent attaqué – Trace des abus • Interdire le relayage : @ externe ? @ externes – Probl ème SPAM : obligatoire • Installer un anti-virus – Evite MAJ sur chaque poste interne • Lutter contre le SPAM – Outils avec mots clés et/ou black lists (pas de solution miracle) – La solution est la signature électronique • Lutte anti-virus - SPAM : accord du personnel nécessaire • Exemple IMAG – Un relais de messagerie externe (reçoit To : X@imag.fr ) – N serveurs de messagerie internes avec boites : 1 / labo – Table : @ d’une personne ? serveur de messagerie interne – Gestion idem DNS115 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 229 Services : messagerie : accès aux boites • Connexion interactive sur le serveur – Qui contient les boites aux lettres : commande Mail Unix … – Pb : il faut gérer autant de comptes interactifs que de boites • POP - Post Office Protocol – Accès depuis une station personnelle avec outil (navigateur, …) – Les boites aux lettres sont transférées sur la station personnelle • IMAP - Internet Message Access Protocol – Accès depuis une station personnelle (navigateur, …) – Les boites aux lettres restent sur le serveur • IMAP/POP ? – De plus en plus de IMAP – Dépend de l’utilisation : • Veut-on garder sur le serveur les messages (place, sauvegarde, …) ? • Les utilisateurs sont ils connectés lorsqu’ils utilisent la messagerie ? – Versions sécuris ées : POPS – IMAPS • Authentification ou non des clients JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 230 Service : messagerie : formats messages • MIME - Multipurpose Internet Mail Extensions – Standard pour format de messages contenant tous types de données : texte, video, voix, … • S/MIME – Security … – Version sécurisée de MIME – Certificats électroniques – Signature électronique • Authentification • Intégrité – Chiffrement – Concurrent : PGP • Principal pb messagerie : pas authentification expéditeur – SPAM, Virus, pas de valeur juridique, … • Messagerie : service externalisable116 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 231 Annuaires : un standard • LDAP - Lightweight Directory Access Protocol – Communications client-serveur (sécurisées si voulu) – Modèle de données • Arborescence hiérarchique • Classes d’objets • Nommage – Modèle fonctionnel • Recherche, comparaison, ajout, … – API – Réplication – … • Un annuaire LDAP – Peut utiliser un logiciel de base de données : oracle … • LDAP : Interface standard d’accès JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 232 Annuaires LDAP : utilisations • Classique de personnes : adresses électroniques – Accès avec navigateur – complétion d’adresse – Gestionnaire de liste de diffusion, … • De certificats électroniques • De droits d’accès – A des systèmes, des applications, … – Remplacement de NIS, NIS+ • De ressources – Grilles de calcul – Equipements (réseau) • Besoin d’avoir une réflexion sur l’architecture – Un seul annuaire ou n / utilisation ou groupe – Séparer LDAPs publics et privés (internes) – Sécurisation de l’annuaire, pb de SPAM (limitation du nb d’accès), …117 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 233 Services Web • Accès aux serveurs Web externes (Internet) – Autorisation ou non ? • Décision de direction, pas d’administrateur réseau – Proxy ou non ? – Attention aux problèmes de sécurité • Virus dans documents récupérés • Exécution de code localement : javascript, … • ? Proxy utile • Serveurs Web de l’entreprise – Différencier administration technique / contenu – Définir les droits d’accès et une méthode de mise à jour – Pour Intranet • Informations internes • Serveurs dans un sous-réseau non accessible depuis l’extérieur – Pour Extranet – Internet • Information publiques • Serveurs dans un sous-réseau public JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 234 Fonctions «annexes » équipements actifs PLAN • Administration • Tunnels • IPSec • NAT • Filtrage • Multicast • Gestion files d’attente118 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 235 Fonctions «annexes » équipements actifs • Administration – Agent SNMP – Traces ? syslog – Compteurs : charge, nb de datagrammes, de bytes, … • Tunneling – Cf chapitre sur les réseaux virtuels : VPN – Dans les routeurs, stations IP – Pour sécurité mais aussi IPv6 dans IPv4, multicast dans unicast, … • IPSec – Cf chapitre sur les réseaux virtuels – Dans les routeurs, stations IP JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 236 Fcts «annexes » éqts actifs : NAT • NAT – Network Address Translation (traduction) • Fonction dans routeur d’accès (entre site et Internet) • Traduit les adresses IP – Modifie l’entête des datagrammes IP échangés avec l’extérieur – Dans les sens sortant et entrant • Une station du site – Possède une adresse interne 10.1.1.2 • Elle est configurée avec cette adresse • Les machines internes communiquent avec elle avec cette adresse – Connue de l’extérieur avec l’adresse 193.96.49.64 (@ externe) • Les machines de l’Internet communiquent avec elle avec cette adresse – Le système est transparent pour les stations • Le routeur entre le site et l’Internet fait la traduction119 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 237 Fcts «annexes » éqts actifs : NAT Site Extérieur Station 10.1.1.2 Station 129.88.35.3 Routeur NAT Internet Internet LAN Station 10.1.1.4 @ orig 10.1.1.2 @ dest 129.88.35.3 @ orig 193.96.49.64 @ dest 129.88.35.3 @ orig 129.88.35.3 @ dest 10.1.1.2 @ orig 129.88.35.3 @ dest 193.96.49.64 Table de traduction dans le routeur NAT @ interne 10.1.1.2 ?? @ externe 193.96.49.64 @ orig 10.1.1.2 @ dest 10.1.1.4 @ orig 10.1.1.4 @ dest 10.1.1.2 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 238 Fcts «annexes » éqts actifs : NAT • Traduction statique – 10.1.1.2 ?? 193.96.49.64 – 10.1.1.3 ?? 193.96.49.66 – … – ? Besoin autant d’adresses IP officielles que de stations • Traduction dynamique – Pool d’adresses officielles (externes) pouvant être attribués • Ex : 193.96.49.0/24 – Attribution d’une adresse externe lors du premier datagramme reçu par le routeur – Adresse libérée au bout d’un temps d’inactivité • Ex : pas de datagramme avec cette adresse reçu depuis 3 heures – ? On peut avoir plus de stations que d’adresses IP officielles • On mixte : serveurs : statique - clients : dynamique120 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 239 NAT : PAT Port Address Translation Site Extérieur Station 10.1.1.2 Station 129.88.35.3 Routeur NAT Internet Internet LAN Station 10.1.1.4 @ orig 10.1.1.2:1504 @ dest 129.88.35.3:80 @ orig 193.96.49.64:1504 @ dest 129.88.35.3:80 @ orig 129.88.35.3:80 @ dest 10.1.1.2:1504 @ orig 129.88.35.3:80 @ dest 193.96.49.64:1504 Table de traduction dans le routeur NAT (PAT) @ interne 10.1.1.2:1504 ?? @ externe 193.96.49.64:1504 @ interne 10.1.1.4:1580 ?? @ externe 193.96.49.64:1505 @ orig 10.1.1.4:1580 @ dest 129.88.35.3:80 @ orig 129.88.35.3:80 @ dest 10.1.1.4:1580 @ orig 193.96.49.64:1505 @ dest 129.88.35.3:80 @ orig 129.88.35.3:80 @ dest 193.96.49.64:1505 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 240 Fcts «annexes » éqts actifs : NAT • Contenu de datagrammes (données) à modifier – Pour certains services :ICMP, FTP, H323, … • Besoin de 2 serveurs DNS – Un interne : non accessible depuis l’extérieur • Contient toutes les adresses internes – Un externe : dans la DMZ • Contient les adresses externes – Les noms des stations clientes sont « aléatoires » • Serveurs accédés depuis l’Internet – Adresses statiques • L’adressage interne peut s’étendre sur n sites – Avec un VPN – Un routeur NAT pour communiquer avec l’extérieur121 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 241 NAT : pourquoi ? • On manque d’adresses officielles IP (4 bytes) – On ne peut plus numéroter toutes les stations IP de la planète de manière unique – En interne, sur les sites, numérote les stations avec les @ privées • 10/8, 172.16/12, 192.168/16 • Plusieurs sites peuvent utiliser les mêmes adresses • Exemple : site avec une @ réseau officielle 193.96.49.0/24 – 5000 machines internes – Numérote ses stations avec une adresse réseau privée : 10/8 • Peut numéroter des millions de machines – Quelques adresses 193.96.49.0/24 réservées aux serveurs • Accédés depuis l’Internet : DNS externe 193.96.49.1, Web externe 193.96.49.2, Mail 193.96.49.3 (avec PAT ce peut être le même numéro) – Pool d’adresses 193.96.49.[4,254] disponibles (NAT) • Attribuées dynamiquement aux stations locales quand elles communiquent avec l’Internet • 250 machines internes peuvent communiquer avec l’Internet simultanément : beaucoup plus si on utilise PAT JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 242 NAT : plus et moins • Avantages – On dispose d’un espace d’adresses énorme en interne • Pas de limitation dans l’architecture des sous-réseaux • Pas de problème quand nouvelles stations à numéroter – Les stations clientes ont des @ IP dynamiques • Plus difficiles à attaquer : meilleure sécurité • Désavantages – Sécurité : les stations clientes sont « anonymes » • Difficile de savoir quelle station interne a attaqué un site ext erne – Contrôle d’accès / @ IP effectué sur certains serveurs • Impossible sauf si traduction statique – Rompt le principe IP de connectivité de bout en bout • Peut avoir des effets de bord sur certaines applications – Retarde l’arrivée de IPv6122 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 243 NAT : conclusion • De très nombreux sites l’utilisent – Peu universitaires car premiers venus sur Internet, ils disposent de beaucoup d’adresses officielles – Système très bien huilé maintenant • NAT / DHCP – DHCP : autre manière d’économiser des adresses – Mais beaucoup moins d’économie que NAT • DHCP : une station a besoin d’une adresse officielle dès qu’elle communique avec l’extérieur mais aussi avec l’intérieur • Pas de possibilité de PAT – On peut faire les 2 • DHCP : pour ses fonctions de configuration dynamique • NAT : pour ses fonctions de traduction d’adresse JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 244 Fcts «annexes » éqts actifs : filtrage • Consiste à laisser passer ou non certains flux selon les informations trouvées dans – Les entêtes des trames Ethernet – Les entêtes des datagrammes IP – Les entêtes des segments TCP, UDP • Ponts, Commutateurs – Filtrage de niveau 2 – Sur le contenu des entêtes des trames Ethernet • Routeurs – Filtrage de niveau 3 – Sur les entêtes IP, TCP, UDP123 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 245 Filtrage : rappel trame Ethernet – IP • Entête Ethernet – @ Ethernet destination – @ Ethernet origine – Champ type : protocole : 0800 IP, 0806 ARP, … • Entête IP – @ IP origine – @ IP destination – Protocole : 1 ICMP, 6 TCP, 17 UDP, … • Entête TCP ou UDP – Numéro de port source (application station source) – Numéro de port destination (application station destination) JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 246 Filtrage : niveau 2 • Ponts – commutateurs / port – Sur les entêtes Ethernet • Exemple : filtrer sur un port – Certains protocoles : Appletalk, IPX, … • Car il n’y a pas de stations qui utilisent ces procotoles sur ce port • Diminue la charge du côté du port – Filtre les trames multicast ou broadcast de ces protocoles • Evite les erreurs – Des utilisateurs sans compétence qui pourraient lancer ces protocoles sur leur station et perturber les autres stations – Certaines adresses Ethernet origine • Stations trop bavardes, polluantes – Certaines adresses Ethernet destination multicast, broadcast • But principal : diminuer la charge124 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 247 Filtrage : niveau 3 • Dans les routeurs – Sur les entêtes IP, TCP, UDP • But principal – Sécurité (protection de stations, de services, de serveur) – Limitation des flux applicatifs (pas de chat, P2P, …) • Deux politiques : – Par défaut : tout est autorisé (P1) • On interdit ce que l’on ne veut pas – Par défaut : tout est interdit (P2) • On autorise ce que l’on veut • Deux types de filtrages – Sur les adresses IP (de stations ou de (ss-)-réseaux) – Sur les numéros de ports (applications) JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 248 Filtrage : niveau 3 • Filtrage sur @ IP de station ou de (ss-)réseau – Sens entrant (Internet ? Site) / @ IP destination • P1 : interdit l’accès à des stations « à protéger » • P2 : autorise uniquement l’accès à certains serveurs (publics) – Sens entrant / @ IP origine • P1 : interdit l’entrée de datagrammes de stations dangereuses (black-list) • P2 : autorise l’accès que depuis certaines stations – Sens sortant (Site ? Internet) / @ IP origine • P1 : interdit à certaines stations de sortir (sur l’Internet, …) • P2 : autorise uniquement certaines stations à sortir – Sens sortant / @ IP destination • P1 : interdit l’accès à des serveurs à contenu peu recommandable • P2 : n’autorise l’accès que vers des serveurs répertoriés125 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 249 Filtrage : numéros de port • Applications IP : mode client –serveur – Serveur : wellknown ports • HTTP : 80, Telnet : 23, SMTP : 25, … – Client • 1024, 1025, 1026, … pour FTP, Telnet, … • 1023, 1022, 1021 … pour rexec, rlogin, rsh, rcp, … • Exemples de filtre sens entrant (Internet ? Site) – P2 : Laisse passer uniquement les datagrammes avec port destination = 80 vers @IP destination 194.33.2.5 • Autorise uniquement l’accès HTTP sur le serveur Web 194.33.2.5 • Si un autre utilisateur interne installe un serveur Web, il ne sera pas accessible depuis l’extérieur – P1 : Filtre tous les datagrammes avec port destination = 23 • Interdit l’accès en telnet sur toutes les machines internes depuis l’extérieur JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 250 Filtrage : numéros de port • Exemple de filtre sens sortant (Site ? Internet) – P2 : laisse passer tous les datagrammes avec numéros de ports source > 980 ?Autorise toutes les stations à être cliente sur des serveurs Internet – P2 : laisse passer les datagrammes avec port dest=25 uniquement vers station 129.88.32.2 ? Oblige toutes les stations interne à passer par le relais de messagerie 129.88.32.2 pour envoyer du courrier126 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 251 Filtrage : exemple de politique Site 192.56.62/24 Extérieur Routeur Internet Internet LAN 192.56.62.70 Serveur DNS SMTP, Web 192.56.62.80 Serveur Telnet 192.56.62.90 A isoler 192.56.62.X Clientes uniquement Filtres JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 252 Filtrage : ex (simplifié) de politique 2 • Les filtres sont exécutés en séquence (ACL CISCO) – Pour chaque datagramme • Si condition remplie : action - exit • Sinon : continue les filtres • Si @ IP dest = 192.56.62.90 : filtre – Isole 192.56.62.90 • Si @ IP dest = 192.56.62.80 et port dest = 23 : laisse passer – Ouvre accès au serveur telnet : 192.56.62.80 • Si @ IP dest = 192.56.62.70 et port dest = (53 ou 25 ou 80) : laisse passer – Ouvre accès au serveur DNS, SMTP, Web 192.56.62.70 • Si port dest > 980 : laisse passer – Laisse passer le trafic vers stations clientes internes • Reste : filtre – Interdit tous les autres trafics127 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 253 Filtrage : bilan • Les filtres peuvent être installés à l’intérieur du site – Sur les routeurs entre services, équipes, … par exemple – Entre sous-réseaux ou VLAN • Avec l’Internet : politique 2 recommandée – On interdit tout sauf … – Si P1 : nouvelle vulnérabilité découverte ? MAJ des filtres • Si fonction dans une boité dédiée avec interface graphique …? Garde-barrière – Fonction appelé « filtrage statique » dans les gardesbarrières JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 254 Filtrage : bilan • Filtrage dans les routeurs – Beaucoup utilisé en entrée de campus, laboratoires – En entreprise plutôt entre sous-réseaux internes • En entrée (site-Internet) : garde-barrière • Limitations techniques – Basé sur des numéros de port : les applications peuvent utiliser d’autres numéros que les wellknown port (pb cheval de Troie) – Rebonds applicatifs indétectables – Tunnels applicatifs non détectable (HTTP par exemple) – ? filtrage statefull dans garde -barriè re nécessaire128 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 255 Fcts «annexes » éqts actifs : multicast IP • Applications habituelles : unicast – Point à point – 1 émetteur ? 1 récepteur • Le récepteur devenant ensuite émetteur – Adresses Ethernet et IP unicast • Applications multicast – 1 émetteur ? n récepteurs (diffusion ciblée) – Radio (plutôt broadcast) – Télévision • Non cryptée : broadcast • Cryptée (Canal + …) : multicast – Télé-séminaire, télé-réunion, vidéo-conférence, … • Dans ce cas un récepteur peut aussi devenir émetteur JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 256 Multicast IP • Media idéal de transport : air – Ondes radio avec émetteurs terrestres, satellites, … – Pas de problème sauf partage des fréquences Emetteur Récepteur 1 Récepteur 2 Récepteur 5 Récepteur 4 Récepteur 3129 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 257 Multicast IP • Réseau filaire IP avec technique classique – On transporte n fois les mêmes données – On utilise beaucoup de bande passante • Pour ne transporter qu’une fois les données : – Adresses, protocoles, routages, … multicast Emetteur Récepteur 1 Récepteur 2 Récepteur 5 Récepteur 4 R R Récepteur 3 Internet Internet JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 258 Multicast IP • Participants à une appli multicast : groupe multicast • Identification du groupe multicast : @ IP – Une adresse IP de classe D : 224.0.0.0 ? 239.255.255.255 – Emetteur ? groupe : @ IP destination = @ IP multicast • Choix d’une adresse multicast : statique • Choix d’une adresse multicast : dynamique – Annuaire de groupes multicast en cours (ex : application SDR) – Responsable du groupe ? annuaire • Je veux ouvrir une session « cours ARR » pour tel créneau horaire • Fournis moi une adresse multicast – Annuaire • Donne une adresse multicast au responsable : 224.2.0.1 • Publie : « cours ARR » a telle @ multicast – Participants au groupe • Consultent annuaire et récupère l’adresse multicast du groupe130 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 259 Multicast IP • Protocoles : UDP, RTP, RTCP (cf H323), … • L’émetteur émettra ses données – Avec @ IP destination multicast : 224.2.0.1 – @ IP origine : son @ IP (unicast) • Les récepteurs se mettront à l’écoute – Pour recevoir les datagrammes avec cette @ dest • Emetteur-récepteurs sur même réseau Ethernet – Utilisation du multicast Ethernet • Premier octet de l’@ impair • IEEE a attribué 01.00.5E.X.Y.Z pour applications multicast IP – @ Destination Ethernet : 01.00.5E.X.Y.Z • IP : 224.2.0.1 ? Ethernet 01.00.5E.02.00.01 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 260 Multicast IP : routeurs • Pb : quand il y a des routeurs entre émetteur et récepteurs • Les routeurs : @ dest 224.2.0.1 : que faire ? – R3 doit les renvoyer vers R4 et R7 mais pas vers R2 • ? tables de routages et protocoles de routage spécifiques Emetteur Récepteur Récepteur Récepteur Récepteur Récepteur Récepteur hub hub hub hub R2 R4 R6 R8 R1 R5 R7 R3131 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 261 Multicast IP : protocoles de routage Protocole entre stations et premier routeur • Principe : stations : je veux m’abonner – Je veux recevoir le flux multicast 224.2.0.1 – R4, R6, R8 vont recevoir ce message – R2 ne va pas le recevoir • Exemple : IGMP – Internet Group Management Protocol – Le routeur émet un datagramme toutes les minutes • Qui veut s’abonner à des groupes multicast ? – Les stations intéressées répondent – Le routeur le redemande régulièrement • Pour savoir si de nouvelles stations sont intéressées • Pour savoir si les anciennes abonnées sont toujours intéressées JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 262 Multicast IP: protocoles de routage Protocole entre routeurs Exemple PIM Protocol Independant Multicast • But : arriver à un arbre de diffusion : 2 principes • Dense mode – Les routeurs envoient à tous les routeurs tous les flux multicast • Au départ. Exemple : R3 vers R4, R7, R2 – Les routeurs non intéressés demandent d’arrêter l’émission • R2 indique à R3 : il y a personne chez moi d’intéressé par 224.2.0.1 • R3 arrêtera d’émettre vers R2 ce flux : pruning • Sparse mode – Le routeur émetteur s’enregistre auprès du RP • RP : Rendez vous Point • Je vais diffuser vers 224.2.0.1 • Aucun routeur n’émet encore à ce stade – Quand station intéressée : s’enregistre auprès du RP • Celui-ci « avertit » les routeurs concernés d’émettre132 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 263 Multicast IP • Quand partie du réseau non multicast : tunnels – Ex : uniquement les routeurs de sites R1, R4, R6 et R8 supporte le multicast (au cœur réseau d’opérateur) Emetteur Récepteur Récepteur Récepteur Récepteur Récepteur Récepteur hub hub hub hub R2 R4 R6 R8 R1 R5 R7 R3 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 264 Multicast IP • Réseaux (routeurs) : complexe • Travail d’opérateur : très important – En France uniquement Renater offre réellement ce service – On peut faire des tunnels • Aujourd’hui – Beaucoup d’expérimentations autour du multicast – Réseau MBONE (opérationnel) – Télévision sur Internet : idée abandonnée – Radio sur Internet : pas multicast – Vidéoconfé rence : 3 solutions • Multicast IP • H323 • RNIS133 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 265 Fcts «annexes » éqts actifs : gestion des files d’attente • Dans les routeurs : files d’attente – En entrée : généralement gérées basiquement – En sortie, pour chaque interface, choix : • Taille de la file d’attente – Important car quand elle est pleine le routeur jette les datagrammes • La classification – Permet de faire passer en priorité certains datagrammes (voix / FTP par exemple) • Gestion des files d’attente : fondamental dans un réseau en mode non connecté (IP) • Différentes techniques implémentées – FIFO – WFQ – PQ – CQ JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 266 Gestion des files d’attente : FIFO • FIFO – First In First Out – Mécanisme simple : • Une file d’attente / interface de sortie • Emission par ordre d’arrivée – Plus : simple donc logiciels performants – Pas de problème quand réseau peu chargé et files d’attente de taille suffisante • Pas de perte de datagramme • Temps de traitement (latence) court – Dans le cas contraire • Temps de traitement peut-être trop long pour certaines sessions TCP ou autre (par exemple s’il y a un gros transfert FTP en cours, il va bloquer le flux H323 d’une communication voix) – Perte de datagrammes (file d’attente pleine) – Latence trop grande – TCP ? retransmission, slow start, … : service très dégradé134 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 267 Gestion des files d’attente : PQ • PQ : Priority Queuing • Plusieurs files d’attente / interface de sortie – Une file par priorité – La file la plus prioritaire est envoyée avant les autres – Le routeur peut déterminer la priorité selon • Le protocole niveau 3 : IP/IPX • Le protocole niveau 4 : TCP/UDP • Les applications : Telnet/FTP/H323/… • … • Pb : certains types de trafic (priorité trop basse) peuvent ne jamais être émis – Coupures de session, … : catastrophe JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 268 Gestion des files d’attente : CBQ • CBQ : Class Based Queuing – Ou CQ - Custom Queuing – Amélioration du PQ • Exemple : 3 files d’attente / interface de sortie – Haute, moyenne et basse priorité – A chaque « rotation» le routeur envoie 10 datagrammes de la file haute, 6 de ma moyenne, 3 de la basse. • Evite que la basse priorité ne soit jamais émise • Peut être une méthode pour partager une bande passante (entre classes de services) • Pb : nécessite du CPU pour du très haut débit135 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 269 Gestion des files d’attente • WFQ : Weighted Fair Queuing – Modification du CBQ en prenant en compte le volume de données (nb de bytes) dans la répartition – Evite que les flux avec des gros datagrammes d’écrasent ceux avec des petits datagrammes • Exemple d’efficacité de ces mécanismes – Expérience CISCO sur une liaison surchargée – Flux Telnet, FTP, Voix combinés sur un routeur • Sans ces mécanismes : occupation bande passante 57 % • Avec ces mécanismes : occupation bande passante 98 % • Pb : réglage de ces mécanismes – Le constructeur fournit des exemples – Mais ça dépend de l’environnement : flux, … JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 270 Fcts «annexes » éqts actifs : bilan • Les routeurs peuvent être très simples à configurer et administrer – Entre 2 Ethernet, avec uniquement la fonction de routage pour connecter un réseau de classe C avec l’extérieur – Une dizaine de lignes de configuration • Mais aussi très complexes – Si on rajoute : comptabilité, tunnels, IPSec, routage dynamique, filtrage, NAT, multicast, files d’attente, … – Plusieurs centaines, voire milliers de lignes de configuration – Demande des experts : chaque ligne de configuration est importante • Choix lors de l’achat d’un nouveau matériel – Tendance à prendre toujours le même constructeur • Expérience, habitude des ingénieurs – Attention au monopole – Des « Clones » d’OS de routeurs connus existent136 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 271 Qualité de service QoS (IP) • Internet (IP) de base : best effort – Le réseau peut avoir une mauvaise qualité (pertes, …) voire devenir inutilisable • La QoS repose sur quelques paramètres techniques – Débit (bande passante) – Pertes – Latence (délai de transmission) – Variation de la latence : gigue ou jitter Mais impossibles à garantir dans l’Internet entre 2 utilisateurs • QoS pour l’utilisateur : le réseau doit être transparent • QoS où ? – Entre deux sites – Entre deux utilisateurs – Pour un type d’application ? – … • 2 standards (principes) pour Internet : RSVP et DiffServ JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 272 Qualité de service (IP) : RSVP • RSVP : Resource Reservation Protocol • Protocole en // de TCP, UDP – Comme ICMP et les protocoles de routage • Principes – La station (réceptrice) demande une QoS au réseau (bande passante, …) – Tous les routeurs le long du chemin • Prennent en compte cette demande et réservent les ressources nécessaires : CPU, mémoire, … (ils peuvent refuser) • Tiennent à jour une table avec toutes les réservations effectuées • Problème : (trop) complexe – Adapté au mode connecté, pas à IP • Que se passe-t-il quand le routage est dissymétrique ou change ? … • Flux multicast ?137 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 273 Qualité de service (IP) : Diffserv • Diffserv : Differentiated Services • Les datagrammessont marqués / contenu – Champ TOS dans IPv4, Traffic Class dans IPv6 – Par la station / routeur d « entrée » • Chaque routeur traite différemment les datagrammes – Mécanismes dans routeur : gestion files d’attente adaptée au champ TOS ou Traffic Class • Simple mais peu précis – Peut être facilement implémenté – Là ou cela peut être utile (sur une partie du chemin) • Liaisons à moyen, bas débits • Pour certaines applications JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 274 Qualité de service (IP) • Quand bande passante « à profusion» : QoS inutile – Le cas généralement des LAN – La bande passante disponible sur FO devient énorme • Problème – Besoin de QoS quand la bande passante est limitée car chère c’est à dire dans les WAN – Or c’est le plus difficile car présence d’un opérateur et souvent même de plusieurs opérateurs • Comment vérifier que le client respecte le contrat ? – Non traité dans ce cours : policy • On ne pourra pas implémenter un mécanisme de qualité de service global dans tout l’Internet • Les opérateurs utilisent plutôt des mécanismes « légers » – Sur certaines portions, pour certains clients/applications • Entreprises : choisissent des équipements qui supportent DiffServ, au cas où …138 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 275 Administration de réseau : plan • Que faut il administrer ? • Les hommes – Administrateurs et utilisateurs • Les standards – SNMP … • La configuration des équipements • La surveillance – Détection des anomalies • Le dépannage • Les stations d’administration • La sécurité • La métrologie – Qui consomme quoi ? ? Comptabilité – Performances ? Evolution (anticiper) • Remarques JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 276 Administration de réseau : quoi ? • Que faut il administrer ? – Tout ce que l’on a vu, en particulier : • Le câblage – Disposer des plans A JOUR – Garder les cahiers de recette – Disposer de valises de tests pour les grands réseaux • Eléments d’interconnexion – Hubs, ponts, commutateurs, routeurs – Configuration, surveillance, métrologie • Services (couche 7) – DNS • Configurer, mettre à jour – Relais et serveurs de messagerie • Configurer, mettre à jour, surveiller (spool), métrologie – … • Sécurité139 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 277 Administration de réseau : les hommes • Constituer une équipe d’administrateurs – Qui fait quoi ? Sur quoi ? – Opérateurs – Techniciens – Ingénieurs – Gourous • Faut il séparer très strictement les niveaux ? – Difficile car évolution des réseaux très rapide • Selon les stades d’installation : besoins différents de compétences – Exemple entreprise : 3 équipes • Infrastructure : câblage • Ingénierie : configuration équipements d’interco, services, routage • Supervision : surveillance, métrologie, sécurité – Exemple opérateur Internet • NOC : Network Operation Center : fait marcher – Configuration, surveillance, … – Procédures en cas d’incidents : tickets d’incidents, base de données, … • NIC : Network Information Center : interface avec les utilisateurs – Nommage, informations aux utilisateurs, hot line, … JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 278 Administration de réseau : les hommes • Où s’arrête le service d’administration réseau ? – Administration des serveurs Web ? – Installation des clients de messagerie sur les postes utilisateurs ? – …. • Astreinte ? – Selon les besoins de l’entreprise : cela coûte cher – Peut être externalisée • Assistance (hot line) pour les utilisateurs – Ca ne marche pas ! – Obligatoire – Centrale puis dispatching – Locale puis appel à l’assistance centrale si besoin – Difficile pour un utilisateur de séparer réseau / application • Il faut une très bonne organisation humaine – Ne pas hésiter à décentraliser (noms, adresses, …) – Compétences : formation continue obligatoire140 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 279 Administration de réseau : standards • ICMP – Echo, TTL exceeded, Dest unreachable, redirect, … – Utilisé par les outils ping, traceroute par exemple – Avantage : supporté par toute station IP (ordi, routeur, …) – Peut sembler anodin mais en fait très utilisé • SNMP - Simple Network Management Protocol – Agent (serveur) dans hub, commut, routeur, station, … – Manager depuis station d’administration – MIB : informations (@, …) – standard ou constructeur – Fonctions : GET – SET – TRAP sur UDP – Sécurité embryonnaire ? config ne se fait pas avec SNMP • RMON – RMON2 : MIBs pour sondes • Les standards permettent d’avoir un même outil pour administrer des matériels hétérogènes JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 280 Administration de réseau : configuration des équipements • Avec telnet ou interface Web – Pas SNMP – Telnet est souvent plus précis (pour les spécialistes) – Attention aux mots de passe : ajouter filtrage / @ IP • Perte de la configuration quand arrêt de l’équipement ? • Stockage des différentes configurations – Généralement : TFTP • Permet de sauvegarder une configuration sur un serveur • Inversement de charger cette configuration depuis ce serveur dans l’équipement actif – Attention : pas de mot de passe dans TFTP • Outils de constructeurs qui permettent de gérer plusieurs versions de configuration et d’OS …141 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 281 Administration de réseau : surveillance • But : détecter (rapidement) des anomalies • 2 types d’informations utiles – Alarmes : lien coupé, élément arrêté, daemon/service inactif, … – Relevés (courbes, tableaux, …) sur une courte période indiquant des charges, utilisations anormales (inhabituelles) • Longue période ? métrologie • Transport : liens, équipements actifs – Traps SNMP émis par les équipements – Outils à base de ping et/ou traceroute depuis un point – Lors récupération de compteurs SNMP, sondes : courbes inhabituelles • Services : messagerie, … – Daemon (service) inactif, spool plein, … – Ex d’outil : Big Brother • Depuis une station interroge un daemon spécifique sur chaque machine de service • Détecte si service inactif, remonte des alarmes sur des seuils, … JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 282 Administration de réseau : surveillance • Alarmes et relevés – Arrivent sur ou partent de la station d’administration – Alarmes peuvent générer des mails … aux admins • Des éléments de charges, activités anormales permettent de détecter des problèmes de sécurité – Brusque trafic vers une station, d’une application, … • Les construire avec l’expérience – On peut récupérer énormément d’informations – Lesquelles sont pertinentes ? • Les utilisateurs sont souvent plus rapides que les outils – Pour avertir : ça ne marche pas !142 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 283 Administration de réseau : dépannage • Où se situe le problème ? Quand localisé : réponse simple • Faire preuve de logique – Première question : qu’est-ce qui a changé ? – Procéder par élimination • Ex de démarche : telnet www.inpg.fr ne marche pas – Est-ce que la machine est accessible : ping www.inpg.fr ? – Si non, où s’arrête l’accès : traceroute www.inpg.fr ? • Tout de suite : problème très local – Ping machine locale ? pb sur routeur sortant ou sur réseau local – Câblage ? Essai d’une prise voisine … • Si arrêt à un routeur : lequel ? – Sur le site distant : téléphone à l’administrateur distant … – Sur le site local » Est-ce uniquement vers ce site : essaie d’atteindre un autre site de l’Internet » … • … – Si oui, service arrêté ? Problème de filtrage ? – … JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 284 Administration de réseau : dépannage • Demande de connaître – La théorie : protocoles, fonctions des équipements, … – Son réseau, ses utilisateurs et leurs applications • Analyseurs de protocoles – Quand vraiment on ne peut pas faire autrement – Ex de logiciel du domaine public :TcpDump – Station portable avec logiciel commercial – Il faut bien connaître les protocoles • Problèmes logiciels : d’autres ont eu le même pb – Ne pas hésiter à utiliser les moteurs de recherche, news, …143 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 285 Admin réseau : station d’administration • Objectif : disposer d’UNE station qui – Permette de configurer tous les équipements et de stocker toutes les configurations – Reçoive toutes les alarmes (Traps SNMP, …) – Permette d’exécuter des scripts de surveillance développés, … – Dessine (automatiquement) la carte du réseau : liens, stations, équipements actifs, services – Affiche en rouge ce qui ne marche pas – Récupère des données de métrologie, les stocke, les affiche … • Trois types – Stations « générales » (Sun, HP, IBM, …) • Beaucoup de temps pour les maîtriser – Stations de constructeurs d’équipements (CISCO) – Stations « artisanales » avec outils du domaine public • Actuellement personne vise l’unicité (LA station) – Les grands sites ont les 3 types de stations précédentes JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 286 Administration de réseau : sécurité • De plus en plus de problèmes de sécurité liés au réseau – Intrusion depuis l’Internet sur des machines internes – Attaque de serveurs Internet :Web, messagerie, DNS – Virus dans les messages électroniques, SPAM – Vers se propageant par le réseau – Spoofing d’@ IP, d’@ de messagerie – Charge de liens (trafic parasite) ? deny de service – … • Organisation – coopération étroite entre responsable sécurité et administrateur réseau – Surveillance du réseau ? peut indiquer des probl èmes de sécurité – Architecture de réseau ? permet d’appliquer facilement une politique de sécurité • Maintenant la sécurité est un critère de choix important dans l’architecture et les équipements144 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 287 Administration de réseau : métrologie • But : répondre aux questions – A quoi sert le réseau ? A quelles applications ? A qui ? Quand ? – Qui l’utilise ? ? comptabilité si nécessaire – Y-a-t-il des goulots d’étranglement ? Des problèmes de performances ? ? Qualité de service – Quelle évolution ? ? Anticiper les besoins • Commander l’augmentation de débit d’une liaison avant sa saturation • Ensemble de compteurs ? tableaux, courbes, … • Qui fournit les informations ? – Equipements en écoute passive sur le réseau • Sondes RMON, RMON2 • Logiciel IPTrafic • Pb : nb d’équipements nécessaires, où les mettre (pb commutation) – Equipements actifs du réseau : commutateurs, routeurs • Comptent différentes choses ? compteurs sp écifiques ou MIBs • Sont interrogés « par telnet » ou SNMP • Peuvent ne plus compter correctement quand d’autres urgences (charge) JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 288 Administration de réseau : métrologie • Quelles informations ? – Charge et taux de collisions / interface – Issues de comptage de différents champs des datagrammes • @ IP (? numéros de réseaux), ports (? applications) • Exemples d’informations fournies – Le graphe journalier, hebdomadaire … de la charge de chaque brin Ethernet, de chaque liaison, du taux de collision – La répartition entre HTTP, MAIL, FTP, … sur chaque liaison – Les 20 stations les plus consommatrices – Le pourcentage de trafic intra-entreprise et extra-entreprise – Le pourcentage de bande passante de l’accès Internet consommé par chaque service de l’entreprise • MRTG : logiciel graphique – Visualise le trafic sur les interfaces des commutateurs, routeurs, stations – Informations dans MIBs, obtenues par SNMP145 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 289 Administration de réseau : remarques • Fondamentale quand réseau d’envergure • Surveillance : – Confidentialité des relevés – Respect de la vie privée • Constats – Les équipements et les liaisons fonctionnent bien – IP est très solide ? Conséquence négative sur le besoin d’administration • Il faut se construire soi-même sa boite à outils – Pas une seule solution avec un seul produit – Difficile de conduire une approche théorique globale • Beaucoup d’outils du domaine public existent – Mais chaque outil a un but particulier – Un administrateur doit bien savoir ce qu’il veut obtenir JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 290 Administration de réseau : remarques Exemple de choix de logiciels du domaine public • Outil de dépannage : tcpdump – Analyseur sur station Unix • Outil de surveillance de liaison : MTR – Utilise ping et traceroute – Détecte rapidement une anomalie sur une liaison (coupure, engorgement). Sort des statistiques. • Outil de surveillance de trafic : NTOP – Sonde – Indique à quoi est utilisé le réseau : charge, stations les plus bavardes, qui dialogue avec qui, avec quels protocoles, … – Sur une courte période • Outil de surveillance de services : Mon – Services surveillés : messagerie, Web, FTP, SMTP, POP, IMAP, … – Alerte (mail) quand indisponibles • Outil de métrologie : Cricket basé sur MRTG – Interroge des routeurs, commutateurs en SNMP – Charge, trafic sur une longue période • Outil de métrologie orienté comptabilité : acct-cisco – Comptabilité (et répartition de charge) sur un routeur CISCO146 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 291 Eléments de sécurité • De protection contre les agressions externes en provenance de l’Internet (donc via le réseau) • Garde-barrière – Equipement entre l’extérieur (hostile) et l’intérieur (de confiance) : routeur, équipement spécifique – 3 ensembles principaux de contrôle • Filtrage IP « de base » : cf cours sur les fonctions annexes des routeurs • Filtrage IP statefull : analyse des sessions applicatives • Relais applicatifs – Ex telnet : login sur garde-barrière puis login sur machine interne – Permet de concentrer les contrôles sur une machine – Difficile d’avoir des débits très élevés (Gigabits : non) – Fiabilité : prévoir un équipement de secours – Entre réseau interne de l’entreprise et l’Internet JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 292 Eléments de sécurité • Architecture segmentée : un exemple Internet Internet R WWW Relais Mail DNS … DMZ Serveurs Internet G-B R Serveurs internes Mail WWW DNS Calcul Stockage … Service administratif Service R&D Service X NAT Sonde147 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 293 Eléments de sécurité • Un pb de cette architecture : travail à distance – Comment consulter son courrier à distance ? – Comment accéder à l’Intranet à distance ? – Solutions : cf connexion depuis l’Internet • Un autre pb : portables – Où les connecter en interne (peuvent transporter des virus ou vers) ? • Garde-barrière – Ne pas se reposer uniquement sur sa protection • Sonde de détection d’intrusions – Sonde avec bibliothèque de signatures d’attaques • Logiciel de simulation d’intrusions – Test de vulnérabilités à travers le réseau • Rq : jamais de sécurité à 100 % (ne pas connecter ?) JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 294 Accès à l’Internet (Web) • Station interne – LAN entreprise ? Internet • Connexion directe (sans NAT) – @ IP officielle station ? @ IP serveur Web • Connexion directe avec NAT – @ IP privée station ? @ IP serveur Web – NAT – @ IP officielle ? @ IP serveur Web • Proxy-cache Web : serveur dans DMZ – @ IP station ? @ IP proxy Web – @ IP proxy Web ? @ IP serveur Web – 2 sessions TCP (HTTP) : Station–Proxy et Proxy– Serveur Web – Cache, gain bande passante, filtrage, traces, anti-virus • Sécurisé : 3ième méthode > 2nde > 1ère • Accès à l’Internet : autorisation ou non aux salariés ?148 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 295 Accès depuis l’Internet Serveurs Internet – Extranet de l’entreprise • Où les mettre ? – Dans la DMZ • Zone Démilitarisée, semi-ouverte – Chez un fournisseur d’accès ou hébergeur • Stations dédiées • Serveurs aux CNRS – Plutôt apache et Linux – Un peu IIS et Win-NT : bcq trop de pbs de sécurité • Prévoir un mécanisme de MAJ • Bien les sécuriser JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 296 Accès depuis l’Internet au réseau de l’entreprise • Comment travailler à distance ? – Consulter sa messagerie et émettre des messages – Accéder (interactif) aux stations internes – Transférer des fichiers – Accéder globalement à toutes les ressources de l’Intranet (réseau interne) De manière sécurisée (pas de mot de passe en clair sur le réseau) • Consulter sa boite aux lettres – Accès interactif, POP, IMAP trop dangereux – SSL : POPS, IMAPS, Passerelle Web (HTTPS) • Chiffrement uniquement • Chiffrement et authentification du client : certificat client • Emettre des messages – Relais « public » ou Sendmail-TLS149 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 297 Accès depuis l’Internet au réseau de l’entreprise • Accès interactif et transfert de fichiers – Sécurisation niveau application : SSH par exemple – Garde-barrière • Accéder à toutes les ressources internes – VPN – PPT, L2TP, IPSec • Tous ces mécanismes demandent des compétences pointues pour ne pas créer des trous de sécurité • Personnel très mobile : tout sur le portable ? – Attention aux vols – Prévoir sauvegardes JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 298 Construire un réseau « solide » Fiabilité, disponibilité, tolérance aux pannes, … • Faire une architecture (physique et logique) simple – IP est très souple : ne pas abuser des possibilités pointues • Faire des cahiers des charges (pour chaque évolution) – Qu’est-ce qu’on veut comme fonctionnalités ? – Laisser répondre les intégrateurs • Choisir des équipements spécialisés – Un PC avec Linux n’est pas un routeur • Ne pas hésiter à multiplier les machines dédiées /services – Web – FTP – Mail - DNS - … • Services réseaux – Sous Unix ou sous NT ? – Selon compétences – habitudes – schéma directeur150 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 299 Construire un réseau « solide » • Faire en fonction des moyens dont on dispose – Identifier ce qui est vital et non • Cela va dépendre des applications • L’expérience est très utile – De chaque incident on tire une leçon – Il est difficile de travailler uniquement en théorie • Ex de question : les équipements et les liaisons sont ils fiables ? • Comment le savoir sans expérience ? • Les routeurs par exemple sont jusqu’à présent très fiables • Faire appel aux entreprises du métier – Ne pas faire son câblage soi-même – Utiliser les services des opérateurs – … – Mais comprendre et contrôler (le domaine évolue vite) JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 300 Réseau « solide » : disponibilité • Des liaisons – Chaque contrat avec opérateur garantit : • Délai d’intervention • Délai de rétablissement : 4 h par exemple • … – Etablir le même principe en interne • Pb bien connu : « coup de pelleteuse » • Des équipements d’interconnexion (matériel) – Spare – Contrats de maintenance – Garantie : souvent à vie maintenant – Dans locaux réservés et protégés (accès, feu, climatisation ?, …) • Des serveurs – Classique informatique • Ces aspects sont très important (pbs engendrés graves) – Les informaticiens peuvent avoir tendance à le sous-estimé151 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 301 Réseau « solide » : tolérance aux pannes • Pannes – Rupture de liens – Arrêt d’équipements actifs et de services • Liaisons (niveau 1) – Réseau maillé sur site • Câbles mais aussi tranchées • Bâtiment : deux accès différents ? – Liaisons externes LS • 2 LS différentes ? : rare – Opérateurs : assurent le maillage • Back up par réseaux commutés : souvent – Débits inférieurs : est-ce que les applications fonctionnent toujours ? ? Est-ce utile ? • 2 points d’arrivées des liaisons externes différents ? JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 302 Réseau « solide » : tolérance aux pannes Niveau 2 : difficulté : Ethernet = bus (? étoile) • Pas de structure d’anneau ou de maillage : pas de maillage possible en extrémité – (dans réseau capillaire : stations) – Sauf manipulation (changement de prise …) • Au cœur : réseau maillé de commutateurs possible – Algorithme de Spanning Tree – Mais construction d’un arbre • Un seul chemin utilis é à un moment • L’autre inutilis é : « gaspillage »152 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 303 Réseau « solide » : tolérance aux pannes Niveau 3 IP : Routage dynamique sur réseau maillé de routeurs • Fonctionne très bien : permet de basculer d’un chemin à un autre sans intervention manuelle • Pb (similaire à Eth) : à un instant une seule route vers une destination – On peut avoir 2 chemins différents pour une destination mais avec des poids différents • Quand tout va bien : utilise le chemin avec le poids le plus fort • Bascule sur l’autre quand le premier chemin est coupé • Pas de répartition de charge / destination – Mais on peut répartir plusieurs destinations entre des chemins différents • Avec des poids différents permettant de basculer tout le trafic sur un chemin ou l’autre en cas de rupture d’un des chemins JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 304 Réseau « solide » : tolérance aux pannes Services : serveurs secondaires • DNS : ce service doit être très fiable – Bien répartir les serveurs secondaires – Au moins un sur le même site • Pas à côté du primaire (en cas de coupure de lien, …) – 2 autres ailleurs • Messagerie (relais) : serveurs secondaires – DNS : MX records / domaine avec poids différents – Mécanisme supplémentaire de file d’attente sur serveur émetteur • Reste 4 j par défaut si serveur distant ne répond pas • Mais c’est moins que la durée des périodes de fermeture des entreprises • Serveurs Web de l’entreprise – Si service important : image de marque, source de revenue, outil de travail (B2B) avec fournisseur/client … – Réplication de serveurs … : solutions commerciales disponibles153 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 305 Réseau « solide » : sécurité • Problème sécurité souvent très coûteux – Serveurs indisponibles, réseau bloqué, vols d’information, … – Or attaques viennent maintenant du réseau • Outils imparfaits – Disparates (un peu à tous les niveaux …) – Ne colmatent qu’une partie des trous : toujours de nouveaux • IP et Internet : conçus sans souci de sécurité – Principe d’un réseau global, égalitaire, sans frontière • Pas conçu pour modèle réaliste : réseaux internes (entreprises) et un réseau d’interconnexion – Pas de limitation de débit / station ou application – Transport en clair des informations (mot de passe donc) – Pas garantie émetteur dans messagerie électronique – … • Actuellement la sécurité est une partie très importante du travail d’un administrateur de réseaux JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 306 Réseau « solide » : qualité de service • Le réseau est vital pour toutes les activités – On « demande plus » au réseau • Et à ses administrateurs – Pas uniquement de garantir la connectivité • Que le ping marche ne suffit plus – Mais que les applications fonctionnent correctement • ? Qualité de service – Savoir réserver des bandes passantes (avec certaines qualités) à • Des utilisateurs (fonctionnellement à des sous-réseaux IP) • Des applications (fonctionnellement à des numéros de ports) – Mécanismes • Cf chapitres : files d’attente routeurs et QoS154 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 307 La conception de réseaux • Assemblage de briques un peu disparates • Mais l’architecte doit avoir une vision globale – Câbles ? applications – Connaissances dans des domaines très divers • Le réseau demande un budget conséquent – Difficile à faire accepter à la direction – Arguments trop techniques • Métier difficile – A risques • Si le réseau ne marche pas ? catastrophe pour l’entreprise – Forte évolution des technologies • Remise à niveau continuel des connaissances – Sens relationnel obligatoire • Psychonet parfois • Mais intéressant … JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 308 Etudes de cas : plan • Réseau de petit laboratoire éclaté : UREC – Réseau d’une PME sur 2 sites • Réseau de campus – Réseau d’un gros site d’une entreprise • Réseau Renater (national) – Réseau opérateur télécom – Réseau grande entreprise multi-sites155 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 309 Réseau UREC : stations Paris-Grenoble • Paris – 7 personnes – 5 bureaux, salle machines (climatisée) • Grenoble – 4 personnes + stagiaires – 6 bureaux, salle machines (climatisée), local technique • Choix OS – Stations personnelles : bureautique ? Windows – Serveur fichiers interne et sauvegarde ? Windows – Serveurs Internet (DNS, Mail, Web, …) ? Linux – Développement, tests ? Cela dépend JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 310 Réseaux UREC : câblage • Câblages effectués par 2 sociétés spécialisées – Cahier de recette : plans, repérage des prises, résultats tests • TP catégorie 5 : 100 Mbps OK – Post-câblage à Grenoble – Pré-câblage à Paris (nouveaux bureaux) – Lors du déménagement Paris : abandon de la FO – 3 prises par personne : 2 informatiques, 1 téléphone • Cœur étoiles – Local technique à Grenoble, salle machine à Paris – Armoires de brassage • Chemins de câble – Goulottes dans les bureaux et faux plafonds ailleurs • Evolution à court terme – Bornes sans fil : portables, visiteurs156 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 311 Réseaux UREC • Equipements actifs – Paris et Grenoble : un commutateur routeur – 2 ports FO Gbps Ethernet – 48 ports TP 10-100 Mbps Ethernet – Contrat de maintenance – Avant : routeurs, commutateurs Ethernet et ATM, Hub Ethernet, Stations Eth et/ou ATM – Connexion extérieure : prise Giga Eth réseau de campus • Plan d’adressage – 1 numéro de classe C officiel à Paris – 1 numéro de classe C officiel à Grenoble – Sous-réseaux sur les sites : utilisation des VLAN JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 312 Réseaux UREC sur 2 sites : VLAN Commut Routeur • Autre possibilité : faire des VLAN étendus sur 2 sites – Pas vraiment de besoin (serveurs mail … dupliqués) – Trop de dépendance d’un site / l’autre (pb si coupure Renater par exemple) FO Campus Stations utilisateurs Serveurs Internet : DNS, mail, Web, … Serveurs internes : fichiers, log, mail, Web Intranet Stations visiteurs Stations tests157 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 313 Réseau UREC : noms machines (Rappel : déjà expliqué avant) • Domaine urec.cnrs.fr – Ss-domaine grenoble.urec.cnrs.fr : toutes machines de Grenoble – Ss-domaine paris.urec.cnrs.fr : toutes les machines de Paris • Alias – www.urec.fr ? elea.paris.urec.cnrs.fr – mail.urec.cnrs.fr ? thinos.paris.urec.cnrs.fr – … – services.cnrs.fr ? kaki.grenoble.urec.cnrs.fr • Serveur DNS serveur Paris – Primaire urec.cnrs.fr et paris.urec.cnrs.fr – Secondaire grenoble.urec.cnrs.fr • Serveur DNS Grenoble – Primaire grenoble.urec.cnrs.fr – Secondaire paris.urec.cnrs.fr et urec.cnrs.fr • Serveurs DNS secondaires : Jussieu, Grenoble, … JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 314 UREC : messagerie • Objectifs architecture – Adresses standards : Prénom.Nom@urec.cnrs.fr – Utiliser 2 serveurs (back up) : Paris et Grenoble • MX urec.cnrs.fr ? Serveurs : – Mail.paris.urec.cnrs.fr (prioritaire) – Mail.grenoble.urec.cnrs.fr • Alias par personne : – Jean-Luc.Archimbaud@urec.cnrs.fr? JeanLuc.Archimbaud@grenoble.urec.cnrs.fr • Service accès aux boites aux lettres : – IMAP en local – IMAPS avec certificats électroniques à distance158 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 315 UREC : autres services (pour l’UREC) • Web Intranet : – Contrôle d’accès par certificat • Annuaire LDAP : interne • Service listes de diffusion : SYMPA • Multicast : routeurs configurés pour le recevoir • NAT : pas utilisé • Videoconf (actuellement téléconférence) – Etude pour l’achat d’un matériel H323 dédié (écran …) • Administration – Un administrateur à Paris, un à Grenoble – Utilisation de BigBrother JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 316 UREC : sécurité • Basée sur la segmentation et le filtrage • Connexion vers l’extérieur – Tout est possible pour toutes les stations du personnel – Pour les autres (serveurs, machines tests, …) : limitée au maximum • Connexion depuis l’extérieur – Vers certains serveurs locaux, depuis certains réseaux • Filtres IP : aucun accès possible : – Extérieur ? ? machines tests, serveurs internes – Extérieur ? machines utilisateurs – Machines tests ? machines utilisateurs – … • Filtres IP : accès restreints : – Extérieur ? serveur Web : uniquement Web – …159 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 317 UREC : sécurisation accès distants • Actuellement : n applications – Telnet, FTP, IMAP, HTTP vers Intranet – Sécurisation • Filtrage : uniquement depuis certaines stations • Mot de passe ? SSL des applications (telnets, ftps, imps, https) avec utilisation des certificats électroniques • A l’étude : IPSec avec certificats électroniques – Station distante considérée comme station locale – Problèmes : • Paramétrage de IPSec (fragmentation UDP) • Plus de débit nécessaire sur la liaison • Montages en tous sens demande bande passante • LA STATION NOMADE DOIT ETRE DE CONFIANCE – Pas d’autres connexions à l’Internet possible depuis cette station JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 318 Réseau de campus • CNRS Meudon : 10 bâtiments • Câblage : – Interconnexion FO – Intérieur des bâtiments TP Cat5 • Niveau 2-3 – Cœur de réseau : commutateur 100 et GigaEth – A l’entrée de chaque bâtiment : routeur – A l’intérieur des bâtiments : commutateurs – hubs – Sortie vers Renater : routeur • Adressage IP – 3 classes C160 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 319 Réseau de campus : services • Messagerie • Serveur Web – Internet – Intranet : contrôle d’accès par numéro IP • Sécurité – Filtres sur les routeurs – Contrôle d’accès et traces sur les serveurs (tcpwrapper) • Equipe – 2 ingénieurs – Groupe des correspondants de laboratoire JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 320 RENATER : services • REseau NAtional de la Technologie, de l’Enseignement et de la Recherche – GIP : Min Ens Sup, CNRS, INRIA, CEA, … • Service interconnexion IP – Réseaux région – Réseaux métropolitains (MAN) – Gros sites – Autres opérateurs français : GIX : SPHINX – Connexion internationale • Autres services – IPv6 – Multicast – VPN – CERT161 JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 321 RENATER : architecture • Opérateurs – N opérateurs pour les liaisons (FO) – Principaux : TD et FT – Un opérateur pour l’administration des équipements actifs (routeurs) : CS • Architecture – ATM (VC avec IP) ? IP sur SDH – VPN : VC ATM ? IPSec • NRDs : Nœuds de raccordement – Locaux techniques avec routeurs – Dans sites en région JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 322 Outils Logiques pour l’Informatique Roberto M. Amadio To cite this version: Roberto M. Amadio. Outils Logiques pour l’Informatique. Ecole d’ing´enieur. 2006, Universit´e ´ Paris 7, 2007, pp.86. HAL Id: cel-00163821 https://cel.archives-ouvertes.fr/cel-00163821 Submitted on 18 Jul 2007 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Outils Logiques pour l’Informatique∗ Roberto M. Amadio Universit´e Paris 7 18 juillet 2007 R´esum´e Ces notes sont une introduction `a la logique math´ematique et aux techniques de d´eduction automatique dans le cadre du calcul propositionnel classique avec des applications `a la r´esolution de probl`emes combinatoires et `a la mod´elisation et analyse de syst`emes informatiques. 1 Introduction Dans ces notes on aborde les th`emes suivants. – Calcul propositionnel classique. Interpr´etation. Formes normales. M´ethode de Davis Putnam. Fonctions d´efinissables. Relation avec les circuits combinatoires. – Syst`eme de preuve de Gentzen. Correction, compl´etude et compacit´e. M´ethode de preuve par r´esolution. – M´ethodes bas´ees sur les diagrammes de d´ecision binaire. Application `a l’analyse de syst`emes finis. – Langages formels et automates finis. Non-d´eterminisme et d´eterminisation. – Notions de calculabilit´e. Machines de Turing. Enum´erations. D´ecidabilit´e. Th´eor`eme de ´ Rice. – Notions de complexit´e. Classes P et NP. R´eduction en temps polynomial. Le probl`eme SAT et la notion de NP-compl´etude. Th´eor`eme de Cook-Levin. – Ordres bien fond´es et principe d’induction. – M´ethodes de terminaison. Plongement monotone. Ordres produit et lexicographique. Lemme de K¨onig. Ordre sur les multi-ensembles. – Travail Pratique. Mise en oeuvre d’une proc´edure de d´eduction automatique type DavisPutnam, R´esolution, – Travail Pratique. Utilisation d’un SAT solver type SATO ou CHAFF et application `a la r´esolution de probl`emes combinatoires type planification, ordonnancement, programmation lin´eaire sur les entiers,. . . On pourra se r´ef´erer aux textes suivants pour une pr´esentation plus approfondie. – J. Barwise, Handbook of mathematical logic (chapitres r´edig´es par J. Barwise et H. Schwichtenberg), Elsevier. ∗Ces notes sont bas´ees sur un cours que j’ai assur´e `a l’Universit´e de Paris 7 en 2005 et 2006. Elles sont compl´et´ees par une s´election de travaux dirig´es et pratiques. 1– J. Gallier. Logic for computer science (chapitres 1-4), Harper et Row (disponible en ligne). – J. Goubault-Larrecq et I. Mackie. Proof theory and automated deduction (chapitre 1), Kluwer Academic Publishers. – M. Sipser. Introduction to the theory of computation (chapitres 3-7), Thomson. On trouve aussi plusieurs textes d’introduction `a la logique r´edig´es en fran¸cais qui comprennent un chapitre sur le calcul propositionnel. Par exemple : – R. Cori, D. Lascar. Logique math´ematique, tome 1 : calcul propositionnel - cours et exercices, Dunod. Le texte – P. Wolper. Introduction `a la calculabilit´e, InterEditions. comprend une introduction ´el´ementaire aux machines de Turing et `a la complexit´e. 22 Calcul Propositionnel La logique est `a l’origine une r´eflexion sur le discours (logos) et sur sa coh´erence. En particulier, la logique math´ematique s’int´eresse `a l’organisation et `a la coh´erence du discours math´ematique et donc aux notions de validit´e et de preuve. Dans le calcul propositionnel classique, on dispose d’un certain nombre de propositions qui peuvent ˆetre vraies ou fausses et d’un certain nombre d’op´erateurs qui permettent de combiner ces propositions. 2.1 Formules – Soit V = {x1, x2, . . .} un ensemble d´enombrable de variables propositionnelles. – L’ensemble Form des formules est le plus petit ensemble tel que Form ⊇ V et si A, B ∈ Form alors ¬A (n´egation), (A ∧ B) (conjonction) (A ∨ B) (disjonction) sont des formules.1 – Si A ∈ V on dit que A est une formule atomique. – Si A ∈ V ou A = ¬B et B ∈ V on dit que A est un litt´eral. Dans le premier cas on dit que le litt´eral est positif et dans le deuxi`eme qu’il est n´egatif. On d´enote un litt´eral avec `, `0 , . . . – L’ensemble Var (A) des variables pr´esentes dans la formule A est d´efini par : Var (x) = {x}, Var (¬A) = Var (A), Var (A ∧ B) = Var (A ∨ B) = Var (A)∪ Var (B). 2.2 Interpr´etation – 2 = {0, 1} est l’ensemble des valeurs bool´eennes, d’apr`es George Boole. De fa¸con ´equivalente on peut utiliser B = {faux, vrai} avec la convention que faux correspond `a 0 et vrai `a 1. – Une affectation est une fonction partielle v : V * 2 avec domaine de d´efinition dom(v). – Si v est une affectation, x est une variable propositionnelle et b une valeur bool´eenne alors v[b/x] est l’affectation d´efinie par v[b/x](y) = ( b si y = x v(y) autrement – L’interpr´etation [[A]]v d’une formule A par rapport `a l’affectation v est d´efinie par r´ecurrence sur la structure de A en supposant que Var (A) ⊆ dom(v) (autrement l’interpr´etation n’est pas d´efinie) : [[x]]v = v(x) [[¬A]]v = NOT([[A]]v) [[A ∧ B]]v = AND([[A]]v, [[B]]v) [[A ∨ B]]v = OR([[A]]v, [[B]]v). 1 Il s’agit d’un exemple de d´efinition inductive d’un ensemble dont il sera question dans la section 8. 3o`u les fonctions NOT, AND, OR sont d´efinies par : x NOT(x) x y AND(x, y) x y OR(x, y) 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 Parfois, il est pr´ef´erable d’utiliser une notation plus compacte, `a savoir : x = NOT(x), x + y = OR(x, y) et x · y = AND(x, y). – On ´ecrit v |= A si [[A]]v = 1. – On dit que A est satisfiable s’il existe une affectation v telle que v |= A. – On dit que A est valide (ou une tautologie) si pour toute affectation v, v |= A. Exercice 2.1 Montrez que A est valide si et seulement si ¬A n’est pas satisfiable. Exercice 2.2 Si X est un ensemble de variables et v est une affectation alors v|X est la restriction de v `a X. Soit A une formule et X ⊇ Var (A). Montrez que si v|X = v 0 |X alors [[A]]v = [[A]]v 0 . Donc l’interpr´etation [[A]]v est ind´ependante des valeurs de l’affectation v sur les variables propositionnelles qui ne sont pas pr´esentes dans A. 2.3 Substitution La substitution [B/x]A d’une formule B pour une variable propositionnelle x dans la formule A est d´efinie par : [B/x](y) = ( B si y = x y autrement [B/x](¬A) = ¬[B/x]A, [B/x](A ∧ A0 ) = ([B/x]A ∧ [B/x]A0 ) [B/x](A ∨ A0 ) = ([B/x]A ∨ [B/x]A0 ) Proposition 2.3 [[[B/x]A]]v = [[A]]v[[[B]]v/x]. Idee de la preuve ´ . Par r´ecurrence sur la structure de A. • 2.4 Equivalence logique ´ On d´efinit les formules : 0 =def x ∨ ¬x 1 =def x ∧ ¬x (A → B) =def ¬A ∨ B (A ↔ B) =def (A → B) ∧ (B → A) Si |= A ↔ B on dit que A et B sont logiquement ´equivalentes et on ´ecrit aussi A ≡ B. Exercice 2.4 Montrez que A et B sont logiquement ´equivalentes si et seulement si pour toute affectation v, [[A]]v = [[B]]v. Exercice 2.5 Montrez : (A ∨ 0) ≡ A, (A ∨ 1) ≡ 1, (A ∨ B) ≡ (B ∨ A), ((A ∨ B) ∨ C) ≡ (A ∨ (B ∨ C)), (A ∨ A) ≡ A (A ∧ 0) ≡ 0, (A ∧ 1) ≡ A, (A ∧ B) ≡ (B ∧ A), ((A ∧ B) ∧ C) ≡ (A ∧ (B ∧ C)), (A ∧ A) ≡ A, (A ∧ B) ∨ C ≡ (A ∧ C) ∨ (B ∧ C), (A ∨ B) ∧ C ≡ (A ∧ C) ∨ (A ∧ C), ¬¬A ≡ A, ¬(A ∨ B) ≡ ((¬A) ∧ (¬B)), ¬(A ∧ B) ≡ ((¬A) ∨ (¬B)) . 4On appelle les deux derni`eres ´equivalences de l’exercice pr´ec´edent lois de De Morgan. Si {Ai | i ∈ I} est une famille de formules index´ees sur l’ensemble I on peut ´ecrire : V {Ai |i∈I} ou V i∈I Ai , W {Ai |i∈I} ou W i∈I Ai . Comme la disjonction et la conjonction sont associatives et commutatives, cette notation d´efinit une formule unique `a ´equivalence logique pr`es. Par convention, si I est vide on a : ^ ∅ = 1 et _ ∅ = 0 . 2.5 Fonctions d´efinissables et formes normales – Soit x1, . . . , xn une liste de variables distinctes telle que {x1, . . . , xn} ⊇ var (A). Une formule A d´efinit une fonction fA : 2 n → 2 par fA(b1, . . . , bn) = [[A]][b1/x1, . . . , bn/xn] Notez que la fonction fA non seulement d´epend de A mais aussi de la liste de variables x1, . . . , xn. Par exemple, la formule x d´efinit la premi`ere projection par rapport `a la liste x, y et la deuxi`eme projection par rapport `a la liste y, x. – Une formule est en forme normale disjonctive (DNF pour Disjunctive Normal Form) si elle est une disjonction de conjonctions de litt´eraux. – On appelle clause une disjonction de litt´eraux. Une formule est en forme normale conjonctive (CNF pour Conjuctive Normal Form) si elle est une conjonction de clauses. Th´eor`eme 2.6 Toute fonction f : 2 n → 2 est d´efinissable par une formule A en forme normale disjonctive telle que Var (A) = {x1, . . . , xn}. Idee de la preuve ´ . On construit un tableau de v´erit´e avec 2n entr´ees. Si f(b1, . . . , bn) = 1 avec bi ∈ {0, 1} alors on construit un monˆome (`1 ∧ · · · ∧ `n) o`u `i = xi si bi = 1 et `i = ¬xi autrement. La formule A est la disjonction de tous les monˆomes obtenus de cette fa¸con. Par exemple, si f(0, 1) = f(1, 0) = 1 et f(0, 0) = f(1, 1) = 0 alors on obtient A = (¬x1 ∧ x2) ∨ (x1 ∧ ¬x2). • Corollaire 2.7 Toute fonction f : 2 n → 2 est d´efinissable par une formule A en forme normale conjonctive telle que Var (A) = {x1, . . . , xn}. Idee de la preuve ´ . Par le th´eor`eme 2.6 on peut construire une formule A en forme normale disjonctive pour la fonction NOT ◦ f : 2 n → 2. Donc la formule ¬A d´efinit la fonction f. On applique maintenant les lois de De Morgan et on obtient : ¬ _ i∈I ( ^ j∈Ji `i,j ) ≡ ^ i∈I (¬( ^ j∈Ji `i,j )) ≡ ^ i∈I ( _ j∈Ji (¬`i,j ) ) ≡ ^ i∈I ( _ j∈Ji ` 0 i,j ) o`u ` 0 i,j = ¬xi,j si `i,j = xi,j et ` 0 i,j = xi,j si `i,j = ¬xi,j . Bien sˆur, on utilise ici l’´equivalence logique A ≡ ¬¬A. • 5Remarque 2.8 Tout ensemble fini X peut ˆetre cod´e par les ´el´ements d’un ensemble 2 n pour n suffisamment grand. Toute fonction f : 2 n → 2 m se d´ecompose en m fonctions f1 : 2 n → 2, . . . , fm : 2 n → 2. Ainsi toute fonction f : X → Y o`u X et Y sont finis peut ˆetre d´efinie, modulo codage, par un vecteur de formules du calcul propositionnel. Avec un peu de r´eflexion, tout objet fini peut ˆetre repr´esent´e par des formules du calcul propositionnel. Cette puissance de repr´esentation explique en partie la grande vari´et´e d’applications possibles du calcul propositionnel. Exercice 2.9 Montrez que toute formule est logiquement ´equivalente `a une formule compos´ee de n´egations et de conjonctions (ou de n´egations et de disjonctions). Exercice 2.10 La taille |A| d’une formule A peut se d´efinir par : |x| = 1, |¬A| = 1 + |A|, |A ∧ B| = 1 + |A| + |B|, |A ∨ B| = 1 + |A| + |B| . Donnez une borne sup´erieure `a la taille d’une formule qui d´efinit une fonction f : 2 n → 2. Exercice 2.11 (1) Montrez que : _ i=1,...,m ( ^ j=1,...,ni `i,j ) ≡ ^ 1≤i≤m,1≤ki≤ni (`1,k1 ∨ · · · ∨ `m,km) (2) Supposez ni = n pour i = 1, . . . , m. Exprimez la taille des formules dans (1) en fonction de n et m. (3) D´erivez une proc´edure pour transformer une formule en CNF. Exercice 2.12 (1) Montrez l’´equivalence logique : (A ∧ B) ∨ (¬A ∧ B) ≡ B (1) (2) On peut appliquer cette ´equivalence logique pour simplifier une forme normale disjonctive. Par exemple, consid´erez la fonction f(x, y, z) d´efinie par le tableau de v´erit´e : x\yz 00 01 11 10 0 0 1 1 0 1 1 1 1 1 Calculez la forme normale disjonctive de f et essayez de la simplifier en utilisant l’´equivalence logique 1. (3) La pr´esentation du tableau de v´erit´e n’est pas arbitraire. . . Proposez une m´ethode graphique pour calculer une forme normale disjonctive simplifi´ee. Exercice 2.13 Soit f une fonction sur les nombres naturels. Dire qu’un probl`eme est d´ecid´e en O(f), signifie qu’on dispose d’un algorithme A et de n0, k nombres naturels tels que pour toute entr´ee dont la taille n est sup´erieure `a n0, le temps de calcul de A sur l’entr´ee en question est inf´erieure `a k · f(n). (1) Montrez que la satisfaction d’une formule en DNF et la validit´e d’une formule en CNF peuvent ˆetre d´ecid´ees en O(n). (2) Soit pair (x1, . . . , xn) = (Σi=1,...,nxi) mod 2 la fonction qui calcule la parit´e d’un vecteur de bits. Montrez que la repr´esentation en DNF ou CNF de cette fonction est en O(2n ). Peut-on appliquer (1) pour simplifier la repr´esentation ? 6Exercice 2.14 (if-then-else) La fonction ternaire ITE est d´efinie par ITE(1, x, y) = x et ITE(0, x, y) = y. Montrez que toute fonction f : 2 n → 2, n ≥ 0 s’exprime par composition de la fonction ITE et des (fonctions) constantes 0 et 1. Exercice 2.15 (nand,nor) Les fonctions binaires NAND et NOR sont d´efinies par NAND(x, y) = NOT(AND(x, y)) et NOR(x, y) = NOT(OR(x, y)). Montrez que toute fonction f : 2 n → 2, n ≥ 0, s’exprime comme composition de la fonction NAND (ou de la fonction NOR). Montrez que les 4 fonctions unaires possibles n’ont pas cette propri´et´e et que parmi les 16 fonctions binaires possibles il n’y en a pas d’autres qui ont cette propri´et´e. Exercice 2.16 L’or exclusif ⊕ (xor) est d´efini par A ⊕ B ≡ (A ∧ ¬B) ∨ (¬A ∧ B) Montrez que : (1) ⊕ est associatif et commutatif. (2) x ⊕ 0 ≡ x et x ⊕ x ≡ 0. (3) Toute fonction bool´eenne f : 2 n → 2 peut ˆetre repr´esent´ee `a partir de 1, ∧ et ⊕. 2.6 M´ethode de Davis-Putnam La m´ethode de Davis Putnam permet de d´ecider si une formule en forme normale conjonctive est satisfiable. On repr´esente une formule A en CNF comme un ensemble (´eventuellement vide) de clauses {C1, . . . , Cn} et une clause C comme un ensemble (´eventuellement vide) de litt´eraux. Dans cette repr´esentation, on d´efinit la substitution [b/x]A d’une valeur bool´eenne b ∈ {0, 1} dans A comme suit : [b/x]A = {[b/x]C | C ∈ A et [b/x]C 6= 1} [b/x]C =    1 si (b = 1 et x ∈ C) ou (b = 0 et ¬x ∈ C) C\{`} si (b = 1 et ` = ¬x ∈ C) ou (b = 0 et ` = x ∈ C) C autrement On d´efinit une fonction DP qui agit r´ecursivement sur une formule A en CNF dans la repr´esentation d´ecrite ci-dessus : function DP(A) = case (1) A = ∅ : true (2) ∅ ∈ A false (3) {x,¬x} ⊆ C ∈ A : DP(A\{C}) (4) {x} ∈ A : DP([1/x]A) (5) {¬x} ∈ A : DP([0/x]A) (6) else : choisir x dans A; DP([0/x]A) or DP([1/x]A) Dans (1), nous avons une conjonction du vide qui par convention est ´equivalente `a true. Dans (2), A contient une clause vide. La disjonction du vide ´etant ´equivalente `a false, la formule A est aussi ´equivalente `a false. Dans (3), une clause contient un litt´eral et sa n´egation et elle est 7donc ´equivalente `a true. Dans (4) et (5), A contient une clause qui est constitu´ee uniquement d’une variable ou de sa n´egation. Ceci permet de connaˆıtre la valeur de la variable dans toute affectation susceptible de satisfaire la formule. Dans (6), nous sommes oblig´es `a consid´erer les deux valeurs possibles d’une affectation sur une variable. Exercice 2.17 (1) Montrez que si A est une fonction en CNF alors la fonction DP termine. (2) Montrez que DP(A) retourne true (false) si et seulement si A est satisfiable (ne l’est pas). Exercice 2.18 Expliquez comment utiliser la m´ethode de Davis-Putnam pour d´ecider la validit´e d’une formule. Exercice 2.19 Modifiez la fonction DP pour que, si la formule A est satisfiable, elle retourne une affectation v qui satisfait A. Exercice 2.20 R´efl´echissez aux structures de donn´ees et aux op´erations n´ecessaires `a la mise en oeuvre de l’algorithme en Java. Exercice 2.21 En logique classique, on peut d´efinir l’implication A → B comme ¬A ∨ B. Analysez la satisfiabilit´e et la validit´e des formules suivantes : (x → w) → ((y → z) → ((x ∨ y) → w)) (x → y) → ((y → ¬w) → ¬x) Calculez la CNF des deux formules et de leurs n´egations. Appliquez la m´ethode de DavisPutnam pour d´eterminer la satisfiabilit´e des formules obtenues. Exercice 2.22 Une clause de Horn est une clause (c’est-`a-dire une disjonction de litt´eraux) qui contient au plus un litt´eral positif. Une formule de Horn est une formule en CNF dont les clauses sont des clauses de Horn. (1) Montrez que toute formule de Horn est ´equivalente `a la conjonction (´eventuellement vide) de clauses de Horn de la forme : (1) x (2) ¬x1 ∨ · · · ∨ ¬xn (3) ¬x1 ∨ · · · ∨ ¬xn ∨ xn+1 o`u n ≥ 1 et xi 6= xj si i 6= j. Dans ce cas on dit que la formule de Horn est r´eduite. (2) Montrez qu’une formule de Horn r´eduite qui ne contient pas de clauses de la forme (1) ou qui ne contient pas de clauses de la forme (2) est satisfiable. (3) Donnez une m´ethode efficace (temps polynomial) pour d´eterminer si une formule de Horn est satisfiable. 2.7 Circuits Une formule A du calcul propositionnel avec variables x1, . . . , xn peut ˆetre vue comme un arbre. On a vu que A d´efinit une fonction fA : 2 n → 2. Une fa¸con naturelle de calculer la fonction fA est de propager les valeurs de v´erit´e des feuilles vers la racine. On peut mesurer la complexit´e du calcul en comptant le nombre de portes ou en comptant la longueur du chemin le plus long. Intuitivement, la premi`ere mesure correspond `a l’espace occup´e par le calcul alors que la deuxi`eme correspond au temps n´ecessaire au calcul. 82.7.1 Circuits bool´eens Une formule/arbre A peut pr´esenter une certaine redondance. Par exemple, consid´erons la formule : (x3 ∧ ¬((x1 ∨ x2) ∧ (¬x1 ∨ ¬x2))) ∨ (¬x3 ∧ (x1 ∨ x2) ∧ (¬x1 ∨ ¬x2)) Les formules x1, x2, x3, (x1 ∨ x2), (¬x1 ∨ ¬x2) paraissent plusieurs fois dans la formule A. On peut alors envisager de donner une repr´esentation plus compacte de A dans laquelle les sous formules identiques sont partag´ees. On arrive ainsi `a la notion de circuit bool´een. Un circuit bool´een est un graphe dirig´e acyclique G = (N, A) o`u on appelle les noeuds dans N portes logiques. A chaque porte logique on associe une ´etiquette ∧,∨,¬, 0, 1, x1, . . . , xn. Les noeuds avec ´etiquettes ∧,∨ ont 2 arˆetes entrantes, les noeuds avec ´etiquette ¬ ont 1 arˆete entrante et les noeuds avec ´etiquettes 0, 1, x1, . . . , xn n’ont pas d’arˆete entrante. Les noeuds qui n’ont pas d’arˆete entrante correspondent aux entr´ees du circuit. Les noeuds qui n’ont pas d’arˆete sortante correspondent aux sorties du circuit. Chaque sortie correspond `a une fonction (avec entr´ees x1, . . . , xn) repr´esent´ee par le circuit. Les fonctions calcul´ees par le circuit sont obtenues en affectant des valeurs de v´erit´e aux variables x1, . . . , xn et en propageant ces valeurs de v´erit´e des entr´ees vers les sorties. Le fait que le graphe est acyclique assure que ce calcule peut toujours ˆetre effectu´e et que le r´esultat est d´etermin´e de fa¸con unique. 2.7.2 Circuits combinatoires Les circuits bool´eens sont une abstraction math´ematique de dispositifs ´electroniques qu’on appelle circuits combinatoires. Dans les circuits combinatoires, les portes logiques sont r´ealis´ees par des transistors, les arˆetes correspondent `a des interconnexions et les valeurs bool´eennes correspondent `a des tensions. Typiquement, 0 est repr´esent´e par la masse (tension 0V ) et 1 par 5V . Dans les circuits combinatoires les boucles sont interdites, ce qui correspond `a la condition d’acyclicit´e dans les circuits bool´eens. Cette condition permet de garantir que suite `a une variation des tensions en entr´ee, la tension du circuit en sortie se stabilise sur une valeur significative (proche de 0V ou de 5V apr`es un temps qui est li´e `a des variables physiques comme la temp´erature et la longueur des interconnexions). Remarquons que les mesures de complexit´e que nous avons ´evoqu´ees pour les circuits logiques ont une interpr´etation imm´ediate en terme de circuits combinatoires. Le nombre de noeuds du circuit bool´een correspond au nombre de portes logiques, c’est-`a-dire au nombre de transistors n´ecessaires `a la mise en oeuvre du circuit. Coupl´ee avec la topologie des interconnexions, cette mesure d´etermine l’espace occup´e par le circuit. La longueur du chemin le plus long correspond au temps qu’il faut attendre entre une variation du signal en entr´ee et la stabilisation du signal en sortie. La notion de circuit bool´een fait abstraction de la notion de temps (le calcul du r´esultat est instantan´e) et dans une certaine mesure de distance (on compte le nombre de portes mais on ne compte pas la longueur des interconnexions) et il permet de simplifier grandement la conception d’un circuit combinatoire. Dans la suite nous allons consid´erer dans un certain d´etail la conception d’un additionneur. 92.7.3 Additionneur On consid`ere un vecteur bn, . . . , b0 o`u bi ∈ {0, 1} comme un nombre en base 2. Ainsi le nombre repr´esent´e est Σi=0,...,nbi2 i qu’on d´enote aussi avec (bn · · · b0)2. Un multiplexeur est un circuit bool´een avec n + 2n entr´ees cn−1, . . . , c0, x2n−1, . . . , x0 et une sortie y tel que y = x(cn−1···c0)2 Exercice 2.23 Construisez un circuit bool´een qui r´ealise un multiplexeur dont le nombre de portes est proportionnel `a 2 n et dont la longueur du chemin le plus long est proportionnelle `a n. Un additionneur est un circuit bool´een avec 2n entr´ees xn−1, yn−1, . . . , x0, y0 et n + 1 sorties rn, sn−1, . . . , s0 tel que (xn−1 · · · x0)2 + (yn−1 · · · y0)2 = (rnsn−1 · · · s0)2 On peut r´ealiser un additionneur en utilisant l’algorithme standard qui propage la retenue de droite `a gauche. Exercice 2.24 (1) R´ealisez un circuit A avec 3 entr´ees x, y, r et deux sorties s, r0 tel que (r 0 s)2 = (x)2 + (y)2 + (r)2 (2) Expliquez comment inter-connecter n circuits A pour obtenir un additionneur sur n bits. (3) Montrez que dans le circuit en question le nombre de portes et la longueur du chemin le plus long sont proportionnels `a n. Exercice 2.25 Le but de cet exercice est de r´ealiser un additionneur dont le nombre de portes est encore polynomiale en n mais dont la longueur du chemin le plus long est proportionnelle `a lg(n). Pour ´eviter que la retenue se propage `a travers tout le circuit, l’id´ee est d’anticiper sa valeur. Ainsi pour additionner 2 vecteurs de longueur n, on additionne les premiers n/2 bits (ceux de poids faible) et en mˆeme temps on additionne les derniers n/2 bits (ceux de poids fort) deux fois (en parall`ele) une fois avec retenue initiale 0 et une fois avec retenue initiale 1. On applique cette m´ethode r´ecursivement sur les sous-vecteurs de longueur n/4, n/8, . . . selon le principe diviser pour r´egner. (1) Construisez explicitement un tel circuit pour n = 4. (2) D´eterminez en fonction de n le nombre de portes et la longueur du chemin le plus long du circuit obtenu. Exercice 2.26 Un d´ecodeur est un circuit avec n entr´ees xn−1, . . . , x0 et 2 n sorties y2n−1, . . . , y0 tel que yi = 1 ssi i = (xn−1 · · · x0)2 R´ealisez un tel circuit. 10Exercice 2.27 On dispose d’un circuit combinatoire CE avec 2 entr´ees x, y et 2 sorties <, = dont le comportement est sp´ecifi´e par le tableau suivant (bien sˆur, les symboles choisis pour les sorties ne sont pas arbitraires) : x y < = 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 1 Un comparateur n bits est une fonction bool´eenne C avec 2n entr´ees et 1 sortie telle que : C(xn−1, yn−1, . . . , x0, y0) = 1 ssi (xn−1 · · · x0)2 < (yn−1 · · · y0)2 On remarque que : (xn−1 · · · x0)2 < (yn−1 · · · y0)2 ssi (xn−1 < yn−1) ou ((xn−1 = yn−1) et (xn−2 · · · x0)2 < (yn−2 · · · y0)2) Montrez comment construire un circuit combinatoire qui impl´emente un comparateur 4 bits en disposant de : (i) 4 circuits CE , (ii) 8 portes AND binaires (vous n’ˆetes pas oblig´es de les utiliser toutes) et 1 porte OR avec 4 entr´ees. Si vous ˆetes bloqu´e, essayez d’abord le comparateur 2 bits. 113 Syst`emes de preuve Pour l’instant on a consid´er´e un langage logique (la logique propositionnelle classique) et une notion de validit´e. Comment s’assurer qu’une formule est valide ? Dans le cas de la logique propositionnelle, on peut envisager de v´erifier toutes les affectations mais cette m´ethode demande 2n v´erifications pour une formule qui contient n variables. De plus pour v´erifier la validit´e de formules en logique du premier ordre on aurait `a consid´erer une infinit´e de cas car les domaines d’interpr´etation sont infinis. D’o`u l’id´ee de se donner des axiomes et des r`egles pour d´eduire avec un effort fini de calcul des formules valides. Par exemple, on pourrait avoir les axiomes : (A1) A → (B → A) (A2) (A → (B → C)) → ((A → B) → (A → C)) et on pourrait avoir une r`egle : (R) A A → B B A partir des axiomes et des r`egles on peut construire des ` preuves. Une preuve est un arbre dont les feuilles sont ´etiquet´ees par des axiomes et dont les noeuds internes sont ´etiquet´es par des r`egles d’inf´erence. La formule qui se trouve `a la racine de l’arbre est la formule que l’on d´emontre. Par exemple, en prenant B = (A → A) et C = A on peut construire une preuve de A → A par application des axiomes (A1 − 2) et de la r`egle (R) (2 fois). On remarquera qu’axiomes et r`egles sont toujours donn´es en forme sch´ematique. Par exemple, dans l’axiome (A1) il est entendu qu’on peut remplacer les formules A et B par des formules arbitraires. 3.1 Correction et compl´etude On dit qu’un syst`eme de preuve est : correct s’il permet de d´eduire seulement des formules valides, complet si toute formule valide peut ˆetre d´eduite. Il est trivial de construire des syst`emes corrects ou complets mais il est beaucoup plus d´elicat de construire des syst`emes corrects et complets. On va examiner un syst`eme correct et complet propos´e par Gerhard Gentzen en 1930. Une id´ee g´en´erale est d’´ecrire des r`egles d’inf´erence qui permettent de r´eduire la ‘complexit´e structurale (ou logique)’ des formules jusqu’`a une situation qui peut ˆetre trait´ee directement par un axiome. Exercice 3.1 Soit A = `1 ∨ · · · ∨ `n une disjonction de litt´eraux. Montrez que A est valide si et seulement si une variable propositionnelle x et sa n´egation ¬x sont pr´esentes dans A. Ceci sugg`ere un axiome : x ∨ ¬x ∨ B ou plus en g´en´eral A ∨ ¬A ∨ B On consid`ere maintenant la situation pour la conjonction et la disjonction. 12Exercice 3.2 Montrez que : |= A ∧ B ssi |= A et |= B Ceci sugg`ere une r`egle pour la conjonction : A B A ∧ B Exercice 3.3 Montrez que : |= A ∨ B si |= A ou |= B Ceci sugg`ere deux r`egles pour la disjonction : A A ∨ B B A ∨ B Comment traiter la n´egation ? L’exercice suivant montre comment r´eduire la n´egation en faisant passer la formule `a droite ou `a gauche d’une implication. Exercice 3.4 Montrez que : |= B → (¬A ∨ C) ssi |= (B ∧ A) → C |= (B ∧ ¬A) → C ssi |= B → (A ∨ C) Ce type de consid´erations nous m`enent `a la notion de s´equent. D´efinition 3.5 Un s´equent est un couple (Γ, ∆) qu’on ´ecrit Γ ` ∆ d’ensembles finis (´eventuellement vides) de formules. Un s´equent Γ ` ∆ est valide si la formule ( ^ A∈Γ A) → ( _ B∈∆ B) est valide. Par convention, on ´ecrit un s´equent {A1, . . . , An} ` {B1, . . . , Bm} comme A1, . . . , An ` B1, . . . , Bm et un ensemble Γ ∪ {A} comme Γ, A. On remarquera que la virgule ‘,’ est interpr´et´ee comme une conjonction `a gauche et comme une disjonction `a droite du s´equent. On va maintenant reformuler nos id´ees sur la simplification des formules en utilisant la notion de s´equent. (Ax ) A, Γ ` A, ∆ (∧ `) A, B, Γ ` ∆ A ∧ B, Γ ` ∆ (` ∧) Γ ` A, ∆ Γ ` B, ∆ Γ ` A ∧ B, ∆ (∨ `) A, Γ ` ∆ B, Γ ` ∆ A ∨ B, Γ ` ∆ (` ∨) Γ ` A, B, ∆ Γ ` A ∨ B, ∆ (¬ `) Γ ` A, ∆ ¬A, Γ ` ∆ (` ¬) A, Γ ` ∆ Γ ` ¬A, ∆ 13Ce syst`eme est remarquable par sa simplicit´e conceptuelle : il comporte un axiome ‘identit´e’ qui dit que de A on peut d´eriver A et des r`egles d’inf´erence. Pour chaque op´erateur de la logique, on dispose d’une r`egle qui introduit l’op´erateur `a gauche du ` et d’une autre qui l’introduit `a droite. Exercice 3.6 Montrez que : (1) Un s´equent A, Γ ` A, ∆ est valide. (2) Pour chaque r`egle d’inf´erence la conclusion est valide si et seulement si les hypoth`eses sont valides. Th´eor`eme 3.7 Le syst`eme de Gentzen d´erive exactement les s´equents valides. Idee de la preuve ´ . Par l’exercice 3.6 tout s´equent d´erivable est valide. Donc le syst`eme est correct. Soit Γ ` ∆ un s´equent valide. On applique les r`egles jusqu’`a ce que toutes les formules dans les s´equents soient atomiques. Ensuite on remarque qu’un s´equent valide dont toutes les formules sont atomiques peut ˆetre d´eriv´e par application de l’axiome (Ax ). Cette remarque est une simple reformulation de l’exercice 3.1. • D´efinition 3.8 Soit A une formule. L’ensemble sf (A) des sous formules de A est d´efini par sf (A) =    {A} si A atomique {A} ∪ sf (B) si A = ¬B {A} ∪ sf (B1) ∪ sf (B2) si A = B1 ∧ B2 ou A = B1 ∨ B2 Exercice 3.9 (sous-formule) Montrez que si un s´equent est d´erivable alors il y a une preuve du s´equent qui contient seulement des sous formules de formules dans le s´equent. Exercice 3.10 (affaiblissement) Montrez que si le s´equent Γ ` ∆ est d´erivable alors le s´equent Γ ` A, ∆ l’est aussi. Exercice 3.11 (implication) Dans le syst`eme de Gentzen on peut donner un traitement direct de l’implication : (→`) Γ ` A, ∆ B, Γ ` ∆ A → B, Γ ` ∆ (`→) Γ, A ` B, ∆ Γ ` A → B, ∆ Red´emontrez le th´eor`eme 3.7 pour le syst`eme de Gentzen ´etendu avec ces r`egles. Exercice 3.12 Montrez que les r`egles pour la disjonction et l’implication sont d´erivables des r`egles pour la conjonction et la n´egation en utilisant les ´equivalences : A ∨ B ≡ ¬(¬A ∧ ¬B) et A → B ≡ ¬A ∨ B. Exercice 3.13 (1) Ecrire l’axiome et les r`egles d’inf´erence du calcul des s´equents pour les ´ op´erateurs logiques de n´egation ¬ et d’implication →. Rappel : on peut retrouver les r`egles pour l’implication `a partir des r`egles pour la n´egation et la disjonction. (2) Utilisez les syst`eme de preuve d´ecrit pour construire une preuve des s´equents suivants : ` (¬¬A → A) et (A → B),(A → ¬B) ` ¬A 14Exercice 3.14 Trouvez les r`egles (` NAND) et (NAND `) pour l’op´erateur logique NAND en utilisant le fait que NAND(A, B) s’´ecrit comme ¬(A ∧ B). Exercice 3.15 (coupure) La r`egle de coupure (ou cut) est : (coupure) A, Γ ` ∆ Γ ` A, ∆ Γ ` ∆ Montrez que le syst`eme de Gentzen ´etendu avec cette r`egle est toujours correct (et complet). Exercice 3.16 D´erivez du syst`eme de Gentzen un algorithme pour v´erifier si une formule A est valide. Quelle est la complexit´e en temps de votre algorithme ? Exercice 3.17 On consid`ere les formules suivantes : A = (x ∨ z) ∧ (y ∨ w), B = (¬x ∨ ¬y) ∧ (¬z ∨ ¬w), C = (¬x ∨ ¬z) ∧ (¬y ∨ ¬w) 1. Consid´erez le s´equent A, C ` B. S’il est valide, construisez une preuve du s´equent, autrement donnez une affectation des variables x, y, z, w qui montre qu’il ne l’est pas. 2. Mˆeme probl`eme pour le s´equent A, B ` C. 3.2 Compacit´e Un ensemble (´eventuellement infini) de formules T est satisfiable s’il existe une affectation qui satisfait chaque formule dans T. Exercice 3.18 Si T est satisfiable alors chaque sous ensemble fini de T est satisfiable. On va montrer que la r´eciproque est aussi vraie. D´efinition 3.19 (1) Un ensemble T de formules est finement satisfiable si tout sous ensemble fini de T est satisfiable. (2) Un ensemble T de formules finement satisfiable est maximal si pour toute formule A soit A ∈ T soit ¬A ∈ T. Exercice 3.20 Montrez que : (1) Si S est un ensemble finement satisfiable et maximal alors : A ∈ S ssi ¬A /∈ S A ∧ B ∈ S ssi A ∈ S et B ∈ S A ∨ B ∈ S ssi A ∈ S ou B ∈ S (2) Soit S un ensemble de formules finement satisfiable et maximal. On d´efinit une affectation vS par : vS(x) = ( 1 si x ∈ S 0 si ¬ ∈ S Pourquoi cette d´efinition est-elle correcte ? (3) Soit S finement satisfiable et maximal. Montrez que S est satisfiable. (4) Soit T un ensemble de formules. Montrez que s’il existe S ⊇ T finement satisfiable et maximal alors T est satisfiable. 15Exercice 3.21 Soit T un ensemble de formules finement satisfiable et A une formule. Alors, soit T ∪ {A} est finement satisfiable soit T ∪ {¬A} est finement satisfiable. Th´eor`eme 3.22 (compacit´e) Si un ensemble de formules T est finement satisfiable alors il est satisfiable. Idee de la preuve ´ . Soit {An | n ∈ N} une ´enum´eration de toutes les formules. On d´efinit T0 = T et Tn+1 = ( Tn ∪ {An} si Tn ∪ {An} est finement satisfiable Tn ∪ {¬An} autrement S = S n∈N Tn On d´emontre que Tn est finement satisfiable par r´ecurrence sur n en utilisant l’exercice 3.21. On en d´erive que S est finement satisfiable car si X ⊆ S et X est fini alors ∃ n X ⊆ Tn. On v´erifie aussi que S est maximal car pour toute formule A il existe n tel que A = An et donc A ∈ Tn+1 ou ¬A ∈ Tn+1. Donc par l’exercice 3.20, S est satisfiable et donc T l’est aussi. • Exercice 3.23 Soit T un ensemble de formules. On ´ecrit T |= A si pour toute affectation v, si v satisfait T alors v satisfait A. Montrez que si T |= A alors il existe T0 sous-ensemble fini de T tel que T0 |= A. Suggestion : utilisez le th´eor`eme de compacit´e. 3.3 M´ethode de preuve par r´esolution Exercice 3.24 Montrez que la r`egle d’inf´erence suivante est valide : A ∨ ¬C B ∨ C A ∨ B (2) Exercice 3.25 Pour repr´esenter les formules en CNF on adopte la mˆeme notation ensembliste utilis´ee pour d´ecrire la m´ethode de Davis-Putnam. – Une clause C est un ensemble de litt´eraux. – Une formule A est un ensemble de clauses. Nous consid´erons une variante de la r`egle (2) : A ∪ {C ∪ {x}} ∪ {C 0 ∪ {¬x}} x /∈ C ¬x /∈ C 0 A ∪ {C ∪ {x}} ∪ {C 0 ∪ {¬x}} ∪ {C ∪ C 0} (3) Dans la suite on appelle (3) r`egle de r´esolution. 2 L’effet de l’application de la r`egle consiste `a ajouter une nouvelle clause C ∪ C 0 qu’on appelle r´esolvant des deux clauses C ∪ {x} et C 0 ∪ {¬x}. (1) Montrez que l’hypoth`ese est logiquement ´equivalente `a la conclusion. (2) Conclure que si la conclusion n’est pas satisfiable alors l’hypoth`ese n’est pas satisfiable. En particulier, si la conclusion contient la clause vide alors l’hypoth`ese n’est pas satisfiable. 2Sans les conditions x /∈ C et ¬x /∈ C 0 on pourrait par exemple ‘simplifier’ les clauses {x} et {¬x} en {x,¬x}. 16Fait Si une formule A en CNF n’est pas satisfiable alors la r`egle de r´esolution permet de d´eriver une formule A0 avec une clause vide. On dit que la r`egle de r´esolution est compl`ete pour la r´efutation, c’est-`a-dire pour la d´erivation de la clause vide. La m´ethode peut ˆetre impl´ement´ee it´erativement. A chaque it´eration on ajoute toutes les clauses qui sont un r´esolvant de deux clauses. Cette it´eration termine forc´ement car le nombre de clauses qu’on peut construire est fini. Parfois, il convient de repr´esenter la d´erivation comme un graphe dirig´e acyclique (ou DAG pour directed acyclic graph) dont les noeuds sont ´etiquet´es par les clauses. Initialement on a autant de noeuds que de clauses et pas d’arˆetes. Chaque fois qu’on applique la r`egle de r´esolution (3) on introduit un nouveau noeud qui est ´etiquet´e avec la clause r´esolvant C ∪ C 0 et deux nouvelles arˆetes qui vont des noeuds ´etiquet´es avec les clauses C ∪ {x} et C 0 ∪ {¬x} vers le noeud ´etiquet´e avec la clause C ∪ C 0 . Exercice 3.26 Construire la formule A en CNF qui correspond au principe du nid de pigeon avec 2 pigeons et 1 nid. D´erivez la clause vide en utilisant la r`egle de r´esolution. Mˆeme probl`eme avec 3 pigeons et 2 nids (attention le calcul risque d’ˆetre long). Exercice 3.27 Soit A une formule en CNF avec m variables et n clauses. Montrez qu’il y a au plus m · (n · (n − 1)/2) fa¸cons d’appliquer la r`egle de r´esolution. Exercice 3.28 Soit A une formule en CNF et C une clause. Expliquez comment utiliser la m´ethode de r´esolution pour ´etablir si l’implication A → C est valide. Exercice 3.29 Un exercice de r´evision. On consid`ere les formules en CNF suivantes : 1. ¬x ∨ (¬y ∨ x) 2. (x ∨ y ∨ ¬z) ∧ (x ∨ y ∨ z) ∧ (x ∨ ¬y) ∧ ¬x. 3. (x ∨ y) ∧ (z ∨ w) ∧ (¬x ∨ ¬z) ∧ (¬y ∨ ¬w). Pour chaque formule : 1. Si la formule est valide calculez une preuve de la formule dans le syst`eme de Gentzen. 2. Si la formule est satisfiable mais pas valide calculez une affectation qui satisfait la formule en utilisant la m´ethode de Davis-Putnam. 3. Si la formule n’est pas satisfiable d´erivez la clause vide en utilisant la m´ethode par r´esolution. 174 Diagrammes de d´ecision binaire et applications Les diagrammes de d´ecision binaire (BDD pour Binary Decision Diagrams) sont une repr´esentation des fonctions bool´eennes. Cette repr´esentation avait d´ej`a ´et´e remarqu´ee par Lee en 1959 mais son int´erˆet algorithmique a ´et´e r´ealis´e plus r´ecemment par Bryant en 1986. Les BDD repr´esentent une fonction bool´eenne comme un circuit compos´e de multiplexeurs (if-then-else) et de constantes 0 et 1. Une propri´et´e importante de cette repr´esentation est qu’´etant donn´e un ordre sur les variables, le BDD peut ˆetre r´eduit efficacement `a une forme canonique. On parle alors de diagramme de d´ecision binaire ordonn´e et r´eduit (ROBDD pour reduced ordered binary decision diagram). En pratique, la repr´esentation canonique est consid´erablement plus compacte que la repr´esentation explicite dont la taille est exponentielle dans le nombre de variables de la fonction. Une deuxi`eme propri´et´e importante est qu’il est possible de manipuler directement les repr´esentations canoniques pour calculer la conjonction, la disjonction, le compl´ementaire,. . . La situation est similaire `a celle des langages r´eguliers o`u un langage peut ˆetre repr´esent´e par un automate et les op´erations d’union, intersection, compl´ementaire sur les langages peuvent ˆetre calcul´ees directement sur les automates. Aujourd’hui, les BDD sont courrament utilis´es dans la synth`ese et analyse de circuits. 4.1 OBDD Soit f : 2 n → 2 une fonction bool´eenne `a n variables x1, . . . , xn. Si b ∈ {0, 1} est une valeur bool´eenne, on d´enote par [b/xi ]f : 2 (n−1) → 2 la fonction bool´eenne `a n − 1 variables o`u la variable xi est remplac´ee par b. On appelle restriction cette op´eration sur les fonctions. En utilisant la restriction, on peut exprimer une fonction `a n variables comme une combinaison bool´eenne de fonctions `a n − 1 variables. f = xi [1/xi ]f + xi [0/xi ]f On nomme cette transformation expansion de Shannon. On remarquera que la quantification universelle et existentielle sur une variable propositionnelle s’exprime aussi par le biais de la restriction : ∀xi f = ([1/xi ]f)([0/xi ]f) ∃xi f = ([1/xi ]f) + ([0/xi ]f) Cette transformation entraˆıne un doublement de la taille de la formule pour chaque quantifi- cation. On abr`ege l’op´erateur ternaire if then else par → , . Ainsi : x → f, f0 = (xf) + xf0 o`u x est une variable bool´eenne. On utilise cette notation, pour reformuler l’expansion de Shannon : f = xi → [1/xi ]f, [0, xi ]f On fixe un ordre sur les variables, par exemple x1 < · · · < xn. On d´efinit par r´ecurrence l’ensemble des expressions qui d´ependent d’un sous-ensemble de variables : – Les expressions 0 et 1 d´ependent de l’ensemble vide. – Si les expressions e1 et e2 d´ependent de {xi+1, . . . , xn}, alors l’expression xi → e1, e2 d´epend de {xi , xi+1, . . . , xn}. 18– Si l’expression e d´epend de X et X ⊆ X0 alors e d´epend de X0 . A partir de la fonction f on peut it´erer l’expansion de Shannon en commen¸cant par la variable x1 et en terminant avec les fonctions constantes 0 et 1. Ainsi on construit : f = x1 → [1/x1]f, [0/x1]f = x1 → (x2 → [1/x2, 1/x1]f, [0/x2, 1/x1]f),(x2 → [1/x2, 0/x1]f, [0/x2, 0/x1]f) · · · = · · · On peut repr´esenter l’expression comme un arbre binaire complet de profondeur n − 1 o`u les noeuds internes sont ´etiquet´es par les variables et les noeuds terminaux par 0 ou 1, et les deux arˆetes sortantes d’un noeud interne sont ´etiquet´ees par 0 et 1. Cette repr´esentation d´epend de l’ordre des variables et pour cette raison on parle de BDD ordonn´es (OBDD). On remarquera que cette repr´esentation a aussi une taille O(2n ). Cependant, la repr´esentation d’un OBDD comme un arbre binaire est souvent redondante et une repr´esentation plus compacte est possible par partage de sous-arbres communs. Dans ce cas, le BDD est repr´esent´e par un graphe dirig´e acyclique (DAG) connexe et avec une racine. 4.2 Simplification Soit N un ensemble fini de noeuds et V = {x1, . . . , xn} un ensemble de variables ordonn´e par x1 < · · · < xn. On peut repr´esenter un OBDD comme suit : v : N → {0, 1} ∪ V (´etiquette des noeuds) l : N → (N ∪ {↑}) (arˆete sortant ´etiquet´e par 0) h : N → (N ∪ {↑}) (arˆete sortant ´etiquet´e par 1) tel que : – Le graphe r´esultat est acyclique et tous les noeuds sont accessibles `a partir d’un noeud identifi´e comme ´etant la racine. – Les noeuds non-terminaux sont ´etiquet´es par des variables et les noeuds terminaux sont ´etiquet´es par 0 ou 1. En d’autres termes : v(n) ∈ V ⇒ l(n), h(n) ∈ N v(n) ∈ {0, 1} ⇒ l(n) = h(n) =↑ – L’ordre des variables est respect´e : v(n) ∈ V and v(l(n)) ∈ V ⇒ v(n) < v(l(n)) v(n) ∈ V and v(h(n)) ∈ V ⇒ v(n) < v(h(n)) A partir d’un OBDD on applique trois r`egles de simplification : – Soient n et n 0 deux noeuds terminaux distincts avec la mˆeme ´etiquette. Alors tous les pointeurs `a n 0 peuvent ˆetre redirig´es sur n et n 0 peut ˆetre ´elimin´e. – Soit n un noeud non-terminal et l(n) = h(n) = n 0 . Alors tous les pointeurs `a n peuvent ˆetre redirig´es sur n 0 , et n peut ˆetre ´elimin´e. – Soient n et n 0 deux noeuds non-terminaux distincts tels que v(n) = v(n 0 ), l(n) = l(n 0 ) et h(n) = h(n 0 ). Alors tous les pointeurs `a n 0 peuvent ˆetre redirig´es sur n et n 0 peut ˆetre ´elimin´e. On ´ecrit B 7→ B0 si un OBDD B est transform´e en B0 par une des r`egles de simplification. On dit que B est un forme normale s’il ne peut pas ˆetre simplifi´e. 19Th´eor`eme 4.1 (1) Si B est un OBDD bien form´e par rapport `a un ordre donn´e et B 7→ B0 alors B0 est un OBDD bien form´e par rapport au mˆeme ordre. (2) Toute s´equence de simplification termine. (3) Si B 7→ B0 et B 7→ B00 alors ou bien B0 = B00 ou bien il existe B0 1 et B00 1 tels que B0 7→ B0 1 , B00 7→ B00 1 et B0 1 et B00 1 sont ´egaux `a renommage des noeuds pr`es. (4) Tout OBDD peut ˆetre simplifi´e en une forme normale et cette forme est unique `a renommage des noeuds pr`es. Exercice 4.2 Calculez le ROBDD pour la fonction f : 2 3 → 2 avec ordre x < y < z. xyz 000 001 010 011 100 101 110 111 f(x, y, z) 0 0 0 1 0 1 0 1 Exercice 4.3 (1) Calculez le ROBDD pour la fonction (a∧b)∨(c∧d) avec ordre a < b < c. (2) Calculez le ROBDD pour un comparateur de 2-bits ∧i=1,2(ai = bi) en utilisant les ordres a1 < b1 < a2 < b2 et a1 < a2 < b1 < b2. (3) G´en´eraliser `a un comparateur de n-bits et d´eterminez le nombre de noeuds dans le ROBDD pour les ordres a1 < b1 < · · · < an < bn et a1 < · · · an < b1 < · · · < bn. Exercice 4.4 Soit p : 2 n → 2 la fonction pour le contrˆole de parit´e, c’est-`a-dire p(x1, . . . , xn) = (Σi=1,...,nxi) mod 2 Donnez le sch´ema et pr´ecisez le nombre de noeuds du ROBDD (BDD ordonn´e et r´eduit) qui repr´esente la fonction p par rapport `a l’ordre x1 < · · · < xn. Exercice 4.5 Montrez que la satisfaction et la validit´e d’une fonction bool´eenne repr´esent´ee par un ROBDD peut ˆetre d´ecid´ee en O(1). Exercice 4.6 On sait qu’un langage r´egulier (ou rationnel) ´eventuellement infini peut ˆetre repr´esent´e par un graphe ´etiquet´e fini. On pourrait repr´esenter une fonction f : 2 n → 2 par le langage : Lf = {x1 . . . xn | f(x1, . . . , xn) = 1} ⊂ {0, 1} ∗ Comparez l’automate Mf qui reconnaˆıt le langage Lf avec le ROBDD associ´e `a la fonction f. Est-ce-que les deux repr´esentations ont la mˆeme taille ? 4.3 Ordre des variables L’ordre des variables a un effet important sur la taille d’un ROBDD. Par exemple, consid´erons la fonction Σi=1,...,naibi . Avec l’ordre a1 < b1 < · · · < an < bn la taille du ROBDD est O(n) alors qu’avec l’ordre a1 < · · · an < b1 < · · · < bn la taille du ROBDD est O(2n ). Une bonne heuristique est de garder proche dans l’ordre les variables qui interagissent dans le calcul du r´esultat. Il est int´eressant d’´etudier la meilleure et la pire repr´esentation possible pour certaines classes de fonctions. – Pour les fonctions sym´etriques, c’est-`a-dire pour les fonctions dont le r´esultat est invariant par permutation de l’entr´ee, la taille du ROBBD varie entre O(n) et O(n 2 ). – Pour le bit central de la fonction d’addition sur n bits la taille varie entre O(n) et O(2n ). 20– Pour le bit central de la fonction de multiplication sur n bits la taille est toujours O(2n ). Exercice 4.7 (1) Montrez que f : 2 n → 2 est sym´etrique si et seulement si il y a une fonction h : {0, . . . , n} → 2 telle que f(x1, . . . , xn) = h(Σi=1,...,nxi). (2) Conclure qu’une fonction sym´etrique a une repr´esentation comme ROBDD dont la taille est O(n 2 ). 4.4 Restriction Etant donn´e un OBDD pour la fonction ´ f, le calcul de la restriction, par exemple [0/x]f, consiste `a rediriger toute arˆete qui pointe au noeud n tel que v(n) = x vers l(n). Le calcul de [1/x]f est similaire. Exercice 4.8 Montrez que l’application de l’algorithme de restriction sur un ROBDD peut ne pas produire un ROBDD. 4.5 Application On d´efinit un algorithme A pour l’application qui prend l’OBDD de deux fonctions bool´eennes f, g : 2 n → 2 et une op´eration binaire op : 2 2 → 2, et retourne un OBDD pour la fonction (f op g) : 2 n → 2 (par rapport au mˆeme ordre). La remarque fondamentale est que l’op´eration op commute avec l’expansion de Shannon : f op g = x → ([1/x]f op [1/x]g),([0/x]f op [0/x]g) L’algorithme visite les deux OBDD en profondeur d’abord. En supposant que nf et ng soient les racines des deux OBDD, l’appel A(nf , n0 g , op) retournera la racine de l’OBDD pour f op g. L’algorithme r´ecursif est d´ecrit dans la table 1, o`u new est une fonction qui retourne un nouveau noeud. Cet algorithme peut ˆetre amen´e `a ´evaluer plusieurs fois le mˆeme couple de sous-arbres. Pour ´eviter cela, on consid`ere une optimisation qui consiste `a garder dans un tableau de hachage les couples de sous-arbres d´ej`a visit´es. Une deuxi`eme optimisation est d’arrˆeter les appels r´ecursifs chaque fois qu’on arrive `a une feuille d’un des sous-arbres avec la propri´et´e que la valeur de la feuille est suffisante pour d´eterminer le r´esultat de l’op´eration op. Enfin, il est possible de modifier l’algorithme de fa¸con `a ce qu’il recherche `a la vol´ee une des 3 simplifications. De cette fa¸con, on peut g´en´erer directement un ROBDD `a partir de ROBDD. Quand toutes ces optimisations sont mises en oeuvre et ´etant donn´e un tableau d’hachage qui garantit un temps d’acc`es constant en moyenne, il est possible de montrer que la complexit´e de l’op´eration d’application est de l’ordre du produit de la taille des OBDD qui repr´esentent f et g. En gros, une op´eration logique peut au plus ´elever au carr´e la taille de la repr´esentation. Bryant appelle cela une propri´et´e de d´egradation gracieuse (bien sˆur l’it´eration d’un carr´e donne un exponentiel !) Exercice 4.9 On consid`ere la fonction bool´eenne f : 2 2n → 2 telle que f(xn−1, . . . , x0, yn−1, . . . , y0) = 1 ssi (xn−1 · · · x0)2 ≤ (yn−1 · · · y0)2 o`u (zn−1 · · · z0)2 est la valeur en base 2 de la suite zn−1 · · · z0. On ordonne les variables de la fa¸con suivante : xn−1 < yn−1 < · · · < x0 < y0 21A(n, n0 , op) = case v(n) = v(n 0 ) ∈ V : n 00 := new; v(n 00) := v(n); l(n 00) := A(l(n), l(n 0 ), op); h(n 00) := A(h(n), h(n 0 ), op); n 00 v(n) et (iv) les noeuds qui correspondent aux ´etats finaux ont un double contour. Dans la suite, on proc`ede en trois ´etapes : 1. On d´efinit la notion de configuration d’un automate. 2. On d´ecrit comment un automate peut se d´eplacer d’une configuration `a une autre. 3. On sp´ecifie quels mots sont accept´es par l’automate. Une m´ethodologie similaire est utilis´ee dans la suite pour un type d’automate plus g´en´eral qu’on appelle Machine de Turing. D´efinition 5.2 Soit M = (Σ, Q, qo, F, δ) un AFD. Une configuration est un couple (w, q) ∈ Σ ∗ × Q. On d´efinit une relation de r´eduction `M par (aw, q) `M (w, δ(a, q)) et on suppose que ` ∗ M est la clˆoture r´eflexive et transitive de `M. Le langage L(M) reconnu (ou accept´e) par M est d´efini par : L(M) = {w ∈ Σ ∗ | (w, qo) ` ∗ M (, q) and q ∈ F} . Exemple 5.3 Soit M = ({a, b}, {1, 2}, 1, {2}, δ) avec fonction de transition δ sp´ecifi´ee comme suit : Etat ´ Entr´ee a b 1 1 2 2 1 2 Il n’est pas difficile de montrer que L(M) est l’ensemble des mots qui terminent par b. Remarque 5.4 Dans la d´efinition de AFD on insiste pour que pour chaque ´etat q et pour chaque caract`ere a de l’alphabet il y ait exactement une arˆete sortante de q avec ´etiquette a. En pratique, on peut relˆacher cette condition et demander juste qu’il y ait au plus une arˆete sortante de q avec ´etiquette a. Un tel automate peut ˆetre transform´e facilement en un AFD en introduisant un ´etat ‘puits’ qs et en ´etendant la fonction de transition δ de fa¸con telle que δ(a, qs) = qs pour tout a ∈ Σ et δ(a, q) = qs chaque fois que δ(a, q) n’est pas d´efini. Remarque 5.5 (minimisation) Il est facile de construire diff´erents AFD qui acceptent le mˆeme langage. Cependant on peut montrer que parmi ces automates il y en a un qui a un nombre minimum d’´etats. De plus cet automate est unique `a renommage des ´etats pr`es. 255.3 Automates non-d´eterministes Nous consid´erons trois extensions de la notion d’AFD qui nous m`enent `a la notion d’automate fini non-d´eterministe (AFN). 1. On permet de lire plus qu’un caract`ere dans un pas de calcul. 2. On permet de ne pas lire un caract`ere (-transition). 3. Pour un noeud donn´e, on autorise deux ou plus arˆetes sortantes ´etiquet´ees avec le mˆeme mot. D´efinition 5.6 (AFN) Un automate fini non-d´eterministe (AFN) N est un vecteur (Σ, Q, qo, F, δ) o`u Σ est un alphabet, Q est un ensemble fini d’´etats, qo est l’´etat initial, F ⊆ Q est l’ensemble des ´etats finaux et δ : Q × Σ ∗ → 2 Q est une fonction de transition qui s’´evalue dans l’ensemble vide presque partout. Une configuration pour un AFN est un couple (w, q) ∈ Σ ∗ × Q. La relation de r´eduction `N est d´efinie par : (w, q) `N (w 0 , q0 ) si w = w 00w 0 et q 0 ∈ δ(w 00, q) et le langage reconnu L(N) est d´efini par L(N) = {w ∈ Σ ∗ | (w, qo) ` ∗ N (, q) et q ∈ F} . Dans un AFD, ´etant donn´e un mot w on trouve un chemin de calcul unique qui va de (w, qo) `a (, q), pour un certain q. Par opposition, dans un AFN on peut avoir plusieurs chemins, et le w est accept´e si au moins un chemin m`ene `a un ´etat final. Un probl`eme fondamental est de comprendre si et dans quel mesure le calcul non-d´eterministe est plus puissant que le calcul d´eterministe. Th´eor`eme 5.7 (d´eterminisation) Pour tout AFN on peut construire un AFD qui accepte le mˆeme langage. Proof hint. (1) Si un automate peux ex´ecuter le pas de calcul (a1 · · · an, q) ` (, q0 ) avec n ≥ 2 alors on introduit n−1 nouveaux ´etats non-finaux q1, . . . , qn−1 et on red´efinit la fonction de transition pour que : (a1 · · · an, q) ` (a2 · · · an, q1) ` · · · ` (an, qn−1) ` (, q0 ) . (2) On peut donc supposer que dans une transition un automate N = (Σ, Q, qo, F, δ) lit au plus un caract`ere et que la fonction de transition a le type δ : (Σ ∪ {}) × Q → 2 Q. Maintenant, l’id´ee est d’´eliminer les -transitions, en ajoutant une transition ´etiquet´ee par a de q `a q1, chaque fois qu’il y a un chemin de q `a q1 dont toutes les arˆetes sont ´etiquet´ees par  sauf une qui est ´etiquet´ee par a. Formellement, on introduit une notion de -clˆoture d’un ´etat q comme suit : E(q) = {q 0 | (, q) ` ∗ (, q0 )} . Ensuite on construit un nouveau automate N0 = (Σ, Q, qo, F0 , δ0 ) o`u F 0 = {q ∈ Q | E(q)∩F 6= ∅} et δ 0 : Σ × Q → 2 Q est d´efinie par δ 0 (a, q) = [ q 0∈E(q) {E(q 00) | q 00 ∈ δ(a, q0 )} . 26Dans d’autres termes, (a, q) `N0 (, q1) ssi (a, q) ` ∗ N (a, q0 ) `N (, q00) ` ∗ N (, q1) . (3) On peut supposer que l’automate N a une fonction de transition δ avec le type suivant δ : Σ × Q → 2 Q. Supposons que de l’´etat q, en lisant a, l’automate peut aller ou bien dans q1 ou bien dans q2, c.-a.-d., δ(a, q) = {q1, q2}. Pour simuler ce comportement non-d´eterministe avec un AFD M on dit que M plac´e dans l’´etat q, en lisant a, peut aller dans un ‘nouveau ´etat’ {q1, q2} qui est capable de ‘simuler’ le comportement `a la fois de q1 et q2. Formellement, on construit un AFD M = (Σ, 2 Q, {qo}, FM, δM) dont les ´etats sont des sous-ensembles de l’ensemble des ´etats de N et tel que : FM = {X ⊆ Q | X ∩ F 6= ∅} δM(a, X) = S q∈X δ(a, q) . • Exemple 5.8 Consid´erons l’AFN N = ({a, b}, {1, 2, 3}, 1, {2}, δ) avec δ(, 1) = {2} δ(bb, 1) = {3} δ(a, 2) = {2} δ(, 3) = {1} δ(a, 3) = {3} . On ´elimine la transition ´etiquet´ee par bb en introduisant un ´etat auxiliaire, ensuite on ´elimine les -transitions, et enfin on d´eterminise l’automate. Remarque 5.9 (coˆut) Il y a des AFN tels que chaque AFD ´equivalent a un nombre d’´etats qui est exponentiel dans le nombre d’´etats de l’AFN. Remarque 5.10 (langages r´eguliers) On dit qu’un langage accept´e par un automate fini est r´egulier (ou rationnel). La classe des langages r´eguliers a une th´eorie tr`es riche qui sera l’objet d’un cours au deuxi`eme semestre. Exercice 5.11 Montrez que pour tout langage L, L ∗ = (L ∗ ) ∗ . Exercice 5.12 Montrez qu’il existe des langages L1 et L2 tels que (L1 ∪ L2) ∗ 6= L ∗ 1 ∪ L ∗ 2 . Exercice 5.13 Montrez qu’il existe des langages L1 et L2 tels que (L1 · L2) ∗ 6= L ∗ 1 · L ∗ 2 . Exercice 5.14 Consid´erons l’automate fini M = (Q, Σ, δ, q0, F), o`u Q = {q0, q1, q2, q3}, Σ = {0, 1}, F = {q0} et la fonction δ est d´efinie par le tableau suivant : Etat ´ Entr´ee 0 1 q0 q2 q1 q1 q3 q0 q2 q0 q3 q3 q1 q2 V´erifiez si les chaˆınes 1011010 et 101011 sont accept´ees par M. Prouvez que L(M) est l’ensemble des mots compos´es d’un nombre pair de 0 et d’un nombre pair de 1. 27Exercice 5.15 Pour chacun des langages suivants, construire un automate fini non d´eterministe qui l’accepte : 1. Les repr´esentations binaires des nombres pairs. 2. Les repr´esentations d´ecimales des multiples de 3. 3. Le langage des mots sur l’alphabet {a, b} contenant ou bien la chaˆıne aab ou bien la chaˆıne aaab. 4. Le langage des mots sur l’alphabet {0, 1} dont le troisi`eme caract`ere de droite existe et est ´egale `a 1. Construire des automates d´eterministes pour les langages d´ecrits ci-dessus. Exercice 5.16 Soient M un AFD qui accepte un langage L et N1, N2 deux AFN qui acceptent les langages L1, L2, respectivement (sur un alphabet Σ fix´e). 1. Montrez qu’on peut construire un AFD qui accepte le langage compl´ementaire Σ ∗\L. 2. Montrez qu’on peut construire un AFN qui accepte le langage L1 ∪L2 et le langage it´er´e (L1) ∗ . 3. Conclure que la classe des langages accept´es par un AFD est stable par union, intersection, compl´ementaire et it´eration. Exercice 5.17 Soit l’automate fini non-d´eterministe M = (Q, Σ, δ, q0, F), o`u Q = {q0, q1, q2}, Σ = {0, 1, 2}, F = {q0, q2}, et la fonction de transition δ est d´efinie par le tableau suivant : Etat ´ Entr´ee 0 1 2 q0 {q0, q1, q2} {q1, q2} {q2} q1 ∅ {q1, q2} {q2} q2 ∅ ∅ {q2} Transformez cet automate en automate fini d´eterministe. Exercice 5.18 Transformez l’automate M = (Q, Σ, δ, q0, F) suivant en automate fini d´eterministe. On suppose que Q = {q0, q1, q2}, Σ = {0, 1, 2}, F = {q2}, et la fonction de transition δ est d´efinie par le tableau suivant : Etat ´ Entr´ee 0 1 2  q0 {q0} {q1} ∅ {q2} q1 ∅ {q1} ∅ {q2} q2 ∅ ∅ {q2} ∅ 286 Calculabilit´e Certains probl`emes calculatoires demandent une m´emoire qui est fonction de la taille de l’entr´ee (par exemple le tri d’une liste d’´el´ements ou la multiplication de deux matrices). De tels probl`emes ne peuvent pas ˆetre r´esolus par des automates finis dont la m´emoire est born´ee a priori. On consid`ere le probl`eme de formaliser un mod`ele de calcul suffisamment g´en´eral pour calculer tout ce qu’un ‘ordinateur’ pourrait calculer en disposant d’une quantit´e illimit´ee de temps et de m´emoire. Plusieurs mod`eles ´equivalents ont ´et´e propos´es `a partir des ann´ees ’30. On base la pr´esentation sur les machines de Turing (MdT) qui peuvent ˆetre vues comme une simple g´en´eralisation des automates finis. 6.1 Machines de Turing Un automate fini dispose d’un contrˆole fini et d’un ruban sur lequel il peut d´eplacer sa tˆete de lecture de gauche `a droite. Une machine de Turing a en plus la possibilit´e d’´ecrire sur le ruban et de d´eplacer la tˆete de lecture de droite `a gauche. D´efinition 6.1 Une machine de Turing (d´eterministe) M est un vecteur M = (Q, Σ, Γ,t, q0, qa, qr, δ) o`u : – Q est un ensemble fini d’´etats. – Σ est l’alphabet d’entr´ee. – Γ est l’alphabet du ruban. – t ∈ Γ\Σ est un symbole sp´ecial, – q0, qa, qr ∈ Q sont des ´etats. En particulier q0 est l’´etat initial et qa, qr sont deux ´etats finaux distincts qui entraˆınent l’arrˆet du calcul. – δ : Q × Γ → Q × Γ × {L, R} est la fonction (d´eterministe) de transition o`u L pour left et R pour right sont deux symboles. Une configuration de la machine M est un mot wqw0 o`u w, w0 ∈ Γ ∗ et q ∈ Q. Une configuration initiale est un mot q0w o`u w ∈ Σ ∗ repr´esente l’entr´ee de la machine. Une MdT calcule sur un ruban dont la taille n’est pas born´ee `a droite. Soit t ω le mot infini t t t · · · Une configuration wqw0 d´ecrit : (i) le contenu du ruban qui est ww0t ω , (ii) l’´etat q de la machine et (iii) la position de la tˆete de lecture qui lit le premier caract`ere du mot w 0t ω . 4 Un pas de calcul est d´ecrit par la fonction δ. En fonction de l’´etat courant et du symbole en lecture, la machine se d´eplace dans un nouvel ´etat, ´ecrit un symbole `a la place du symbole lu et d´eplace la tˆete de lecture `a gauche ou `a droite. Le d´eplacement de la tˆete de lecture `a gauche est impossible si le mot w de la configuration courante est vide. Dans ce cas la tˆete de lecture reste sur place. 4Remarquez que les configurations wqw0 , wqw0t, wqw0 t t, · · · sont ´equivalentes dans le sens qu’elles d´ecrivent la mˆeme situation. 29Pour formaliser ces id´ees, on d´efinit une relation binaire `M. En supposant que q /∈ {qa, qr}, la relation `M est la plus petite relation sur les configurations qui satisfait : wqaw0 `M wbq0w 0 si δ(q, a) = (q 0 , b, R) wq `M wbq0 si δ(q, t) = (q 0 , b, R) wcqaw0 `M wq0 cbw0 si δ(q, a) = (q 0 , b, L) qaw0 `M q 0 bw0 si δ(q, a) = (q 0 , b, L) wcq `M wq0 cb si δ(q, t) = (q 0 , b, L) q `M q 0 b si δ(q, t) = (q 0 , b, L) On remarque que, la fonction δ ´etant totale, le calcul de M s’arrˆete si et seulement si la machine arrive `a un ´etat final. Exercice 6.2 Examinez la d´efinition de machine de Turing et r´epondez aux questions suivantes : 1. Une MdT peut-elle ´ecrire le symbole t sur le ruban ? 2. L’alphabet d’entr´ee et du ruban peuvent-ils ˆetre ´egaux ? 3. La tˆete de lecture peut-elle rester au mˆeme endroit pendant deux ´etapes cons´ecutives ? 4. Une MdT peut-elle contenir un seul ´etat ? Un automate fini peut accepter ou refuser un mot, une MdT peut aussi boucler. Dans la d´efinition de langage accept´e par une MdT il faut prendre en compte cette troisi`eme possibilit´e. D´efinition 6.3 (1) Un ensemble L ⊆ Σ ∗ est semi-d´ecidable s’il existe une MdT M telle que L = {w | q0w ` ∗ M w 0 qaw 00}. Dans ce cas on dit que M semi-d´ecide (ou accepte) L. (2) Un ensemble L est d´ecidable s’il existe une MdT M dont le calcul termine toujours et qui semi-d´ecide L. Dans ce cas on dit que M d´ecide L. Exemple 6.4 On construit une MdT qui d´ecide {a n b m | n, m ≥ 0}. On a Σ = {a, b}, Γ = Σ∪ {t} et Q = {q0, qa, qr, q1}. On remarque qu’il est inutile de sp´ecifier le comportement de la fonction δ sur les ´etats qa et qr car par d´efinition la MdT s’arrˆete quand elle arrive `a ces ´etats. Par ailleurs, il est aussi inutile de sp´ecifier le caract`ere ´ecrit et le d´eplacement effectu´e par la tˆete de lecture pour toute transition qui va dans les ´etats finaux. En effet, pour les probl`emes de d´ecision on s’int´eresse seulement `a l’´etat final et on ignore le contenu du ruban et la position de la tˆete de lecture. Enfin, on peut interpr´eter l’absence de sp´ecification comme une transition dans l’´etat qr. Avec ces conventions, on peut d´ecrire le comportement de la fonction δ par le tableau : a b t q0 q0, a, R q1, b, R qa, , q1 q1, b, R qa, , Comme dans les automates finis, on peut introduire une notation graphique. Par exemple, on ´ecrira : q a/b,L → q 0 30pour signifier que la MdT dans l’´etat q et en lisant a, ´ecrit b, se d´eplace `a gauche (L) et va dans l’´etat q 0 . On remarquera que dans ce cas notre MdT se comporte comme un automate fini : elle se d´eplace seulement `a droite et elle ne modifie pas le contenu du ruban. Exemple 6.5 On construit une MdT qui d´ecide {a n b n | n ≥ 0}. On a Σ = {a, b}, Γ = Σ ∪ {X, Y,t} et Q = {q0, qa, qr, q1, q2, q3, q4}. La fonction δ est sp´ecifi´ee comme suit : a b X Y t q0 q1, X, R qa, , q1 q1, a, R q2, Y, L q1, Y, R q2 q2, a, L q3, X, R q2, Y, L q3 q1, X, R q4, Y, R q4 q4, Y, R qa, , Exemple 6.6 Soit Σ = {0, 1, ]} et L = {w]w | w ∈ {0, 1} ∗}. On peut construire une MdT qui d´ecide L en prenant Γ = Σ ∪ {t, X}. La machine lit le premier caract`ere b de w, le remplace par X, puis d´eplace sa tˆete de lecture `a droite pour v´erifier que le premier symbole `a droite de ] est b, le remplace par X, puis revient `a gauche du ] et ainsi de suite. Un observateur qui regarderait le contenu du ruban verrait par exemple : 01]01t ω X1]01 t ω · · · X1]X1 t ω · · · XX]X1 t ω · · · XX]XXt ω Exercice 6.7 Donnez la description formelle d’une MdT qui d´ecide le langage {w]w | w ∈ {0, 1} ∗}. Exercice 6.8 (programmation MdT) Pr´esentez le graphe de transition d’une MdT M d´eterministe avec alphabet d’entr´ee Γ = {0, 1,(0, 0),(0, 1),(1, 0),(1, 1)} qui a la propri´et´e suivante : `a partir de la configuration initiale q0(xn−1, yn−1)· · ·(x0, y0), M va parcourir l’entr´ee de gauche `a droite et la remplacer par zn−1 · · · z0 o`u (zn−1 · · · z0)2 = max{(xn−1 · · · x0)2, (yn−1 · · · y0)2} et s’arreter dans un ´etat accepteur qa. En d’autres termes, M doit calculer le maximum des entr´ees. Exercice 6.9 On se propose de programmer une Machine de Turing avec alphabet d’entr´ee Σ = {0, 1, ]} qui a la propri´et´e suivante : `a partir d’une configuration initiale q0]w o`u w est un mot fini compos´e de 0 et 1 la machine s’arrˆete dans un ´etat accepteur qa avec un ruban qui contient le mot ]]w. En d’autres termes, la fonction de la machine est de d´ecaler d’une case vers la droite le mot w en ins´erant le symbole ] dans la case qui est ainsi lib´er´ee. 1. Donnez la repr´esentation graphique d’une Machine de Turing qui impl´emente la fonction de d´ecalage d´ecrite ci-dessus. Suggestion Il est possible de programmer cette tˆache avec une MdT dont la tˆete de lecture se d´eplace toujours `a droite. 2. Tracez le calcul de la machine de la configuration initiale q0]10 `a la configuration finale. Exercice 6.10 Donnez la description formelle d’une MdT qui d´ecide le langage des mots sur l’alphabet {0} dont la longueur est une puissance de 2 : 2 0 , 2 1 , 2 2 , . . . 31Exercice 6.11 D´ecrivez informellement une MdT qui d´ecide le langage : {a i b j c k | i · j = k et i, j, k ≥ 1} . Si un calcul termine on peut aussi voir le ‘contenu du ruban’ comme le r´esultat du calcul. Plus pr´ecis´ement on consid`ere comme ‘r´esultat du calcul’ la concat´enation de tous les symboles dans l’alphabet d’entr´ee qui sont sur le ruban `a la fin du calcul. Par exemple, si le ruban a la forme ta t tbat ω et a, b sont des symboles de l’alphabet d’entr´ee, le r´esultat du calcul est aba. On ´ecrit M(w) ↓ si la MdT M avec entr´ee w termine et M(w) = w 0 si M(w) ↓ avec r´esultat w 0 . D´efinition 6.12 (1) Une fonction partielle f : Σ∗ * Σ ∗ est une fonction partielle r´ecursive s’il existe une MdT M avec alphabet d’entr´ee Σ telle que f(w) = w 0 si et seulement si M(w) = w 0 . (2) Une fonction r´ecursive est une fonction partielle r´ecursive totale, c’est-`a-dire qui est d´efinie sur chaque entr´ee. Exercice 6.13 Soit Σ = {0, 1} et suc : Σ∗ → Σ ∗ la fonction ‘successeur’ en base 2 telle que : (suc(w))2 = (w)2 + 1 Montrez que suc est r´ecursive. 6.2 Enum´erations ´ Une vari´et´e de structures finies comme arbres, graphes, polynˆomes, grammaires, MdT,. . . peuvent ˆetre cod´ees comme mots finis d’un alphabet fini. Exemple 6.14 (probl`emes et langages) Un graphe dirig´e fini est un couple (N, A) o`u N est un ensemble fini de noeuds et A ⊆ N × N est un ensemble d’arˆetes. Deux graphes dirig´es (N, A) et (N0 , A0 ) sont isomorphes s’il existe une bijection f : N → N0 telle que (n, n0 ) ∈ A ssi (f(n), f(n 0 )) ∈ A0 . Notre objectif est de fixer un alphabet fini Σ et de repr´esenter les graphes dirig´es comme un langage sur cet alphabet fini. Plus pr´ecis´ement on va repr´esenter les graphes dirig´es `a ‘isomorphisme pr`es’. Ceci est justifi´e par le fait qu’en g´en´eral on s’int´eresse aux propri´et´es des graphes qui sont invariantes par isomorphisme (connectivit´e, diam`etre, isomorphisme,. . .). On suppose que l’ensemble des noeuds N est un segment initial des nombres naturels cod´es en binaire, par exemple N = 0, 1, 10, 11. En cons´equence, A est maintenant un ensemble de couples de nombres naturels cod´es en binaire. On peut ajouter un symbole ] qui agit comme un s´eparateur. Maintenant le graphe ({0, 1, 2, 3}, {(2, 0),(1, 3),(2, 3)}) peut ˆetre repr´esent´e par le mot fini sur l’alphabet Σ = {0, 1, ]} : ]0]1]10]11]]10]0]1]11]10]11] Par le biais de ce codage, on peut consid´erer `a isomorphisme pr`es l’ensemble des graphes dirig´es comme un certain langage de mots finis sur un alphabet fini. Si G est un graphe dirig´e, on d´enote par hGi son codage. Supposons maintenant qu’on s’int´eresse au probl`eme de savoir si deux graphes dirig´es sont isomorphes.5 On peut reformuler ce probl`eme comme le probl`eme de la reconnaissance du langage : L = {hGi]]]hG 0 i | G et G 0 sont isomorphes} 5Notez qu’on peut avoir plusieurs codages qui repr´esentent le mˆeme graphe `a isomorphisme pr`es. 32Exemple 6.15 (fixer un alphabet) On applique maintenant la mˆeme m´ethode aux MdT. Une MdT est un programme. Il est clair que le ‘nom’ des ´etats n’affecte pas le comportement d’une MdT. Ainsi on peut supposer que les ´etats sont cod´es, par exemple, en binaire. Consid´erons maintenant l’ensemble Γ. Il est possible de simuler le comportement d’une MdT M qui utilise un alphabet Γ avec une autre MdT M0 qui utilise seulement un alphabet {0, 1,t}. Si Γ a n ´el´ements on code chaque ´el´ement de Γ par une suite binaire de longueur k = dlg ne. Pour simuler un pas de calcul de M, M0 doit : (i) lire k symboles cons´ecutifs et en fonction de ces k symboles et de l’´etat courant (ii) ´ecrire k symboles et (iii) d´eplacer la tˆete de lecture de k symboles `a droite ou `a gauche. Donc, `a un codage pr`es, le comportement de toute MdT qui op`ere sur un alphabet arbitraire peut ˆetre simul´e par une MdT qui op`ere sur un alphabet fini qui est fix´e une fois pour toutes. Exemple 6.16 (´enum´eration de MdT) On s’int´eresse maintenant `a la repr´esentation comme mots finis des MdT sur un alphabet donn´e. On peut fixer un codage pour le symbole t, pour les ´etats q0, qa, qr et pour les symboles L, R. Ensuite, la fonction δ peut ˆetre repr´esent´ee en listant son graphe (on peut ´eventuellement ajouter un symbole sp´ecial pour s´eparer les diff´erents ´el´ements de la liste comme on l’a fait dans le cas des graphes). En proc´edant de la sorte toute MdT est repr´esent´ee par un mot fini sur un alphabet fini. Soit MdT(Σ) ⊆ Σ ∗ l’ensemble des codages de MdT sur l’alphabet Σ choisi. Les mots qui composent cet ensemble doivent repr´esenter comme une liste la fonction δ d’une MdT. Il est donc d´ecidable de savoir si un mot appartient `a MdT(Σ). Par ailleurs, on peut d´efinir une fonction r´ecursive et surjective ϕ : Σ∗ → MdT(Σ). Soit w0 le codage d’une MdT. La fonction ϕ est d´efinie par : ϕ(w) = ( w si w code une MdT w0 autrement Mots ou nombres ? On a ´etudi´e la calculabilit´e de langages de mots finis. Une autre possibilit´e aurait ´et´e de consid´erer la calculabilit´e de sous-ensembles de nombres naturels. La th´eorie n’est pas vraiment affect´ee par ce choix car les mots finis peuvent ˆetre cod´es par des nombres naturels et le codage est effectivement calculable comme on va le montrer dans les exercices qui suivent. Exercice 6.17 On peut ´enum´erer les couples de nombres naturels en proc´edant ‘par diagonales’ : (0, 0), (1, 0),(0, 1), (2, 0),(1, 1),(0, 2), (3, 0). . . Montrez que la fonction hm, ni = (m + n)(m + n + 1)/2 + n est une bijection entre N × N et N. D´ecrire un algorithme pour calculer la fonction inverse. Exercice 6.18 On d´efinit les fonctions h ik : Nk → N pour k ≥ 2 : hm, ni2 = hm, ni hn1, . . . , nkik = hhn1, . . . , nk−1ik−1, nki si k ≥ 3 Montrez que les fonctions h ik sont des bijections. Exercice 6.19 On consid`ere l’ensemble N∗ des mots finis de nombres naturels. Notez que N∗ est en correspondance bijective avec S k≥0 Nk . D´efinissez une bijection entre N∗ et N. 33Exercice 6.20 Soit Σ = {a, b, . . . , z} un alphabet fini. On peut ´enum´erer les ´el´ements de Σ ∗ comme suit : , a, b, . . . , z, aa, . . . , az, ba, . . . , bz, za, . . . , zz, aaa, . . . Si Σ contient k ´el´ements on aura k 0 mots de longueur 0, k mots de longueur 1, k 2 mots de longueur 2, . . . D´efinissez une bijection entre Σ ∗ et N. MdT universelle Un corollaire de ces exercices est qu’il y a une bijection h , i : Σ∗×Σ ∗ → Σ. Par le biais de cette bijection, une MdT peut interpr´eter tout mot w comme un couple de mots hw1, w2i. Par ailleurs, par le biais de la fonction ϕ une MdT peut interpr´eter tout mot comme le codage d’une MdT. On peut alors construire une MdT U qu’on appelle MdT universelle telle que U(hw1, w2i) = ϕ(w1)(w2) La machine U –dont on omet les d´etails de construction– re¸coit un mot w qui est interpr´et´e comme un couple de mots w1, w2. Ensuite le mot w2 est interpr´et´e comme l’entr´ee de la MdT d´ecrite par le premier mot w1. La MdT U simule la MdT ϕ(w1) sur l’entr´ee w2. Ainsi, la machine U se comporte comme un interpr`ete qui re¸coit en argument un programme et une entr´ee et calcule le r´esultat du programme sur l’entr´ee. Exercice 6.21 (1) Montrez qu’un langage est semi-d´ecidable si et seulement si il est le domaine de d´efinition d’une fonction partielle r´ecursive. (2) On dit qu’un langage L ⊆ Σ ∗ est r´ecursivement ´enum´erable s’il est l’image d’une fonction partielle r´ecursive. Montrez qu’un langage L est r´ecursivement ´enum´erable si et seulement si il est semi-d´ecidable. Suggestion : Soit M une MdT et w0, w1, w2, . . . une suite d’entr´ees. On peut simuler M sur w0 pour 0 pas, sur w0 pour 1 pas, sur w1 pour 0 pas, sur w0 pour 2 pas, sur w1 pour 1 pas, sur w2 pour 0 pas,. . . Exercice 6.22 (1) Rappel : tout nombre naturel n ≥ 2 admet une d´ecomposition unique comme produit p n1 1 · · · p nk k o`u k ≥ 1, p1 < · · · < pk sont des nombres premiers et n1, . . . , nk ≥ 1. En utilisant ce fait, d´efinissez une fonction surjective de N dans les parties finies de N. (2) On ne peut pas g´en´eraliser aux parties de N ! Supposez une ´enum´eration e : N → 2 N. Consid´erez X = {n | n /∈ e(n)}. Comme e est surjective, il existe nX tel que e(nX) = X et soit nX ∈ X soit nX ∈/ X. Montrez que dans les deux cas on arrive `a une contradiction. (3) On dit qu’un ensemble X est d´enombrable s’il y a une fonction bijective entre X et les nombres naturels N. (3.1) Montrez que l’ensemble des langages sur un alphabet Σ n’est pas d´enombrable. (3.2) Conclure qu’il y a des langages qui ne sont pas semi-d´ecidables. On r´esume ces consid´erations comme suit : – Un probl`eme algorithmique peut ˆetre (souvent) reformul´e comme un probl`eme de reconnaissance d’un langage. – Sans perte de g´en´eralit´e, nous pouvons limiter notre attention aux MdT qui op`erent sur un alphabet Γ fix´e une fois pour toutes. 34– On peut coder une MdT comme un mot fini et on peut ´enum´erer tous les codages de MdT sur un alphabet donn´e. – A un codage pr`es, il y a autant de MdT que de nombres naturels alors que l’ensemble des langages a la cardinalit´e des parties de nombres naturels. Il doit donc y avoir des langages qui ne sont pas d´ecidables. – On peut s’int´eresser de fa¸con ´equivalente `a la calculabilit´e de langages de mots finis, d’ensembles de couples de mots finis, d’ensembles de nombres naturels,. . . – On peut construire une MdT universelle qui re¸coit en entr´ee le codage d’une MdT M et une entr´ee w et simule le calcul de M sur w. 6.3 Temps de calcul Un pas de calcul d’une MdT est une op´eration ´el´ementaire qui demande un effort de calcul born´e : il s’agit de consulter un tableau fini, d’´ecrire un symbole et de d´eplacer d’une position la tˆete de lecture. Il semble donc raisonnable de mesurer le temps de calcul d’une MdT simplement comme le nombre de pas de calcul n´ecessaires pour arriver `a un ´etat final. D´efinition 6.23 Soit M une MdT qui termine sur toute entr´ee. La complexit´e en temps de M est une fonction t : N → N o`u t(n) est le nombre maximal de pas de calcul n´ecessaires `a la machine pour terminer sur une entr´ee de taille n (la taille d’un mot est sa longueur). Souvent on s’int´eresse seulement `a l’ordre de grandeur de la complexit´e. D´efinition 6.24 Soient f, g : N → N deux fonctions sur les nombres naturels. On dit que f est O(g) s’ils existent n0, c ∈ N tels que pour tout n ≥ n0, f(n) ≤ cg(n). En d’autres termes, f est O(g) si presque partout f est domin´ee par g `a une constante multiplicative pr`es. Exercice 6.25 Montrez que : 6n 3 + 2n 2 + 20n + 45 est O(n 3 ). Il est int´eressant d’analyser comment la notation O interagit avec le logarithme et l’exposant. Une premi`ere remarque est qu’on peut n´egliger la base du logarithme et prendre toujours le logarithme en base 2. En effet, logbn = log2n/log2 b. En ce qui concerne l’exposant, on remarquera que la fonction 3n n’est pas O(2n ). Cependant elle est O(2(cn) ) en prenant par exemple c = 2. Pour cette raison, on introduit la notation 2O(f) . Par exemple, la notation 2 O(n) indique une fonction 2cn pour une constante c. Ainsi 745n est 2O(n) . Notez cependant que 2n 2 n’est pas 2O(n) . D´efinition 6.26 Soit g : N → N une fonction sur les nombres naturels et M une MdT. On dit que M est O(g) si la complexit´e en temps t de M est O(g). Par exemple, dire qu’une machine M est O(n) veut dire qu’ils existent n0, c ∈ N tels que pour toute entr´ee w de taille n ≥ n0 le temps de calcul de M sur l’entr´ee w est au plus cn. Exercice 6.27 Montrez qu’il y a une MdT M qui d´ecide le langage L = {w]w | w ∈ {0, 1} ∗} qui est O(n 2 ). 356.4 Variantes de MdT Plusieurs variantes de MdT ont ´et´e consid´er´ees. Ces variantes n’affectent pas la notion de langage semi-d´ecidable ou d´ecidable mais peuvent changer de fa¸con significative la complexit´e du calcul. Machines multi-rubans Une MdT multi-rubans est une MdT qui dispose d’un nombre fini k de rubans. Sa d´efinition formelle suit celle d’une MdT standard modulo le fait que le type de la fonction de transition δ est maintenant δ : Q × Γ k → Q × Γ k × {L, R, S} k Un pas de calcul se d´eroule de la fa¸con suivante : en fonction de l’´etat courant et des symboles lus sur les k rubans, la machine va dans un autre ´etat, remplace les symboles lus par d’autres symboles et d´eplace les tˆetes de lecture. Avec la directive S pour stay on a la possibilit´e de garder une tˆete de lecture `a la mˆeme place. Proposition 6.28 Soit M une MdT multi-rubans. On peut construire une MdT standard M0 qui simule M. Si la complexit´e de M est t(n) ≥ n la complexit´e de M0 est O(t(n) 2 ). Idee de la preuve ´ . Supposons que la MdT M dispose de 3 rubans dont le contenu est 0101t ω , aabt ω et bat ω et dont les tˆetes de lecture sont en deuxi`eme, troisi`eme et premi`ere position respectivement. La MdT M0 m´emorise les trois rubans sur un seul ruban de la fa¸con suivante : ]0101]aab]ba]t ω On notera que M0 dispose d’un nouveau symbole ] pour s´eparer les rubans et que pour chaque symbole a de M on introduit un nouveau symbole a. Le symbole soulign´e indique la position de la tˆete de lecture. Un pas de calcul de M est simul´e de la fa¸con suivante : – M0 commence par parcourir son ruban de gauche `a droite pour calculer les symboles en lecture et d´eterminer les actions `a effectuer. – Ensuite, M0 effectue un deuxi`eme passage dans lequel elle remplace le symbole en lecture (les symboles soulign´es) par des nouveaux symboles et ´eventuellement d´eplace la tˆete de lecture (c’est-`a-dire, remplace un symbole par un symbole soulign´e). – Si le symbole soulign´e pr´ec`ede le symbole ] et le calcul pr´evoit un d´eplacement `a droite il est n´ecessaire d’allouer une nouvelle case. A cette fin, la machine M0 d´ecale `a droite le contenu du ruban. La borne O(t(n) 2 ) sur le temps de calcul de la simulation est obtenue de la fa¸con suivante. D’abord on observe que si la complexit´e de M est t(n), la taille des rubans manipul´es par M ne peut jamais d´epasser t(n). Ensuite on d´etermine le nombre d’op´erations n´ecessaires `a simuler un pas de calcul de M. Le premier passage est O(t(n)). Le deuxi`eme passage est aussi O(t(n)) car le d´ecalage `a droite peut ˆetre effectu´e au plus k fois si la machine M comporte k rubans et chaque d´ecalage peut ˆetre effectu´e en O(t(n)). • Les machines multi-rubans permettent de donner une preuve simple du fait suivant. Proposition 6.29 Un langage L est d´ecidable si et seulement si L et son compl´ementaire L c sont semi-d´ecidables. 36Idee de la preuve ´ . (⇒) Par d´efinition un langage d´ecidable est semi-d´ecidable. D’une MdT M qui d´ecide L on obtient une MdT M0 qui d´ecide L c simplement en ´echangeant les ´etats finaux qa et qr. (⇐) Soient M et M0 les MdT qui d´ecident L et L c , respectivement. On d´erive une MdT N avec 2 rubans qui copie d’abord l’entr´ee w du premier au deuxi`eme ruban et qui simule ensuite alternativement un pas de r´eduction de la machine M et un pas de r´eduction de la machine M0 . La machine N accepte si M arrive `a l’´etat qa et elle refuse si M0 arrive `a l’´etat q 0 a . La machine N termine toujours car tout mot w est accept´e soit par M soit par M0 . • MdT non-d´eterministes Une MdT non-d´eterministe M est une MdT dont la fonction de transition δ a le type : δ : Q × Γ → 2 (Q×Γ×{L,R}) La notion de pas de calcul est adapt´ee imm´ediatement. Par exemple, on ´ecrira wqaw0 `M wbq0w 0 si (q 0 , b, R) ∈ δ(q, a) Exercice 6.30 Compl´etez la d´efinition de pas de calcul d’une machine non-d´eterministe. La d´efinition 6.3 de langage semi-d´ecidable et d´ecidable s’applique directement aux MdT non-d´eterministes.6 On remarquera que pour qu’une entr´ee w soit accept´ee il suffit qu’il existe un calcul qui m`ene de la configuration initiale `a l’´etat qa. Proposition 6.31 Soit N une MdT non-d´eterministe. On peut construire une MdT standard M qui simule N. Si la complexit´e de N est t(n) ≥ n la complexit´e de M est 2 O(t(n)) . Idee de la preuve ´ . Dans une MdT non-d´eterministe N il y a une constante k qui borne le nombre d’alternatives possibles dans la suite du calcul. Ainsi on peut repr´esenter le calcul d’une MdT non-d´eterministe comme un arbre ´eventuellement infini mais dont le branchement est born´e par la constante k. Les noeuds de cet arbre correspondent `a des mots sur {0, . . . , k − 1} ∗ . On peut ´enum´erer tous les noeuds de l’arbre en explorant l’arbre en largeur d’abord : , 0, . . . , k − 1, 00, . . . , 0(k − 1), 10, . . . , 1(k − 1), . . .(k − 1)0, . . . ,(k − 1)(k − 1), 000, . . . Une MdT peut calculer le successeur imm´ediat d’un mot π par rapport `a cette ´enum´eration. Pour simuler la machine N on utilise une MdT M avec 3 rubans. La proposition 6.28 nous assure qu’on peut toujours remplacer M par une MdT standard. Le premier ruban de M contient l’entr´ee w, le deuxi`eme contient le chemin de l’arbre π qui est actuellement explor´e et le troisi`eme contient le ruban de la machine N lorsqu’elle calcule en effectuant les choix selon le chemin π. Pour un chemin donn´e π, la machine M copie l’entr´ee du premier ruban au troisi`eme et effectue ensuite un calcul en simulant l’ex´ecution de N sur le chemin π. – Le calcul peut bloquer car le chemin π ne correspond pas `a un choix possible. Dans ce cas on consid`ere le successeur imm´ediat de π et on it`ere. 6Ce n’est pas le cas pour la notion de fonction partielle r´ecursive car il faut d´ecider d’abord quel est le r´esultat d’une MdT non-d´eterministe. . . 37– Le calcul arrive `a la fin du chemin π mais la machine ne se trouve pas dans l’´etat qa. Dans ce cas aussi on consid`ere le successeur imm´ediat de π et on it`ere. – Le calcul arrive `a la fin du chemin π et la machine se trouve dans l’´etat qa. Dans ce cas on accepte et on arrˆete le calcul. – La simulation peut aussi noter qu’il ne reste plus de chemins `a explorer et dans ce cas elle s’arrˆete et refuse. Si la complexit´e de N est t(n), la taille des chemins `a consid´erer est aussi O(t(n)). Le nombre de chemins `a simuler est 2O(t(n)). Donc la complexit´e de M est 2O(t(n)). Enfin, la MdT standard qui simule M est aussi 2O(t(n)) car (2cn) 2 est 2O(n) . • Exercice 6.32 (1) Montrez que les langages accept´es par un automate fini sont d´ecidables. (2) Montrez que la collection des langages d´ecidables est stable par rapport aux op´erations d’union, compl´ementaire, concat´enation et it´eration. (3) Montrez que la collection des langages semi-d´ecidables est stable par rapport aux op´erations d’union et concat´enation. Suggestion : utilisez le non-d´eterminisme. Th`ese de Church-Turing Il est ´evident que le calcul d’une MdT est effectif dans le sens qu’une personne (une machine ´electronique) peut simuler le calcul d’une MdT `a condition de disposer d’une quantit´e de papier (d’une quantit´e de m´emoire) qui peut ˆetre ´etendue ind´efiniment. La th`ese de Church-Turing affirme que : Tout langage semi-d´ecidable par une “proc´edure effective” est semi-d´ecidable par une MdT. On ne peut pas d´emontrer cette affirmation tant que la notion de “proc´edure effective” n’est pas formalis´ee. Le probl`eme est qu’il n’y a pas de d´efinition g´en´erale de “proc´edure effective”. On dispose seulement d’exemples de “proc´edures effectives” (par exemple les MdT, les programmes assembleurs, les programmes Java, les syst`emes de preuve,. . .) et ce qu’on peut faire est de d´emontrer que ces exemples sont ´equivalents au sens o`u ils permettent de semi-d´ecider le mˆeme ensemble de langages. Nombreuses preuves de ce type ont ´et´e effectu´ees depuis les ann´ees 30 et ceci nous permet d’avoir un certain niveau de confiance dans la validit´e de la th`ese. 6.5 Langages ind´ecidables On rappelle qu’il y a une bijection h , i entre les mots finis et les couples de mots finis et que tout mot w peut ˆetre vu comme la repr´esentation d’une MdT ϕ(w). En particulier, on utilise la notation M, M0 , . . . pour des mots qui sont consid´er´es comme des MdT. On ´ecrit aussi ϕ(M)(w) pour indiquer le r´esultat du calcul de la MdT repr´esent´ee par ϕ(M) sur une entr´ee w. D´efinition 6.33 Le langage H est d´efini par H = {hM, wi | ϕ(M)(w) ↓} 38Le langage H est semi-d´ecidable par la MdT universelle. Le langage H formalise un probl`eme int´eressant qu’on appelle probl`eme de l’arrˆet : ´etant donn´e une MdT (un programme) M et une entr´ee w on se demande si le calcul de M sur l’entr´ee w termine. On peut aussi consid´erer le comportement d’une machine M lorsque elle re¸coit comme entr´ee le codage d’une machine M0 . En particulier, on peut s’int´eresser au r´esultat de l’application de la machine M `a son propre codage. D´efinition 6.34 Le langage K est d´efini par K = {M | ϕ(M)(M) ↓} On va montrer que les langages H et K ne sont pas d´ecidables. Au passage, par la proposition 6.29 cela implique que les langages compl´ementaires Hc et Kc ne sont mˆeme pas semi-d´ecidables. Th´eor`eme 6.35 Le langage K n’est pas d´ecidable. Idee de la preuve ´ . Si K est d´ecidable il devrait y avoir une MdT ϕ(M) telle que ϕ(M)(M0 ) ↓ ssi M0 ∈ Kc Si on applique ϕ(M) `a M on a deux possibilit´es : 1. Si ϕ(M)(M) ↓ alors M ∈ Kc et donc ¬ϕ(M)(M) ↓. 2. Si ¬ϕ(M)(M) ↓ alors M /∈ Kc et donc ϕ(M)(M) ↓. Les deux possibilit´es m`enent `a une contradiction, donc Kc n’est pas semi-d´ecidable.7 • Plutˆot que d´emontrer directement que H n’est pas d´ecidable on va introduire une technique pour r´eduire l’analyse d’un langage `a l’analyse d’un autre langage. D´efinition 6.36 Soient L, L0 deux langages sur un alphabet Σ. On dit que L se r´eduit `a L 0 et on ´ecrit L ≤ L 0 s’il existe une fonction r´ecursive f : Σ∗ → Σ ∗ telle que w ∈ L ssi f(w) ∈ L 0 . Si L ≤ L 0 alors les m´ethodes de d´ecision qu’on d´eveloppe pour L 0 peuvent ˆetre appliqu´ees `a L aussi. Proposition 6.37 Si L ≤ L 0 et L 0 est semi-d´ecidable (d´ecidable) alors L est semi-d´ecidable (d´ecidable). Idee de la preuve ´ . On sait qu’il existe une fonction r´ecursive f telle que w ∈ L ssi f(w) ∈ L 0 . Supposons que Mf soit une MdT qui calcule f et M0 une MdT qui semi-d´ecide L 0 . Pour semid´ecider (d´ecider) L il suffit de composer M0 et Mf . • Exemple 6.38 On obtient que K ≤ H en utilisant la fonction f(M) = hM, Mi. Comme K n’est pas d´ecidable, H ne peut pas ˆetre d´ecidable non plus. 7On appelle cette technique de preuve diagonalisation. On l’a d´ej`a utilis´ee dans l’exercice 6.22. 39Le fait que le probl`eme de l’arrˆet soit ind´ecidable n’est que la pointe de l’iceberg. . . D´efinition 6.39 On dit que deux MdT sont extensionnellement ´equivalentes si elles terminent sur les mˆemes entr´ees en donnant la mˆeme r´eponse (accepter/refuser).8 D´efinition 6.40 On dit qu’un langage P ⊆ Σ ∗ est une propri´et´e extensionnelle si P ne distingue pas les codages de deux machines qui sont extensionnellement ´equivalentes.9 On dit aussi que P est triviale si P ou P c est l’ensemble vide. Th´eor`eme 6.41 (Rice) Toute propri´et´e extensionnelle P non triviale est ind´ecidable. Idee de la preuve ´ . Soit M∅ le codage d’une MdT qui accepte le langage vide. Supposons que M∅ ∈/ P (autrement on montre que P c est ind´ecidable). Supposons aussi que M1 ∈ P. Soit f la fonction qui associe au codage d’une MdT M le codage d’une MdT qui re¸coit une entr´ee w, calcule ϕ(M)(M) et si elle termine calcule M1(w). La machine f(M) est extensionnellement ´equivalente `a M1 (et donc appartient `a P) si et seulement si M ∈ K. Donc la fonction f montre que K ≤ P. • Exercice 6.42 En utilisant le th´eor`eme de Rice, montrez que les langages suivants sont ind´ecidables : (1) L’ensemble K des codages de MdT qui terminent sur l’entr´ee  et acceptent . (2) L’ensemble Tot des codages de MdT qui terminent sur toute entr´ee. (3) L’ensemble Eq des codages de couples de MdT qui sont extensionnellement ´equivalentes. Une cons´equence de (2) est qu’il ne peut pas y avoir un langage de programmation dans lequel on peut programmer exactement les fonctions totales. Il ne serait pas d´ecidable de savoir si un programme de ce langage est bien form´e. Il est donc n´ecessaire de donner des crit`eres d´ecidables qui assurent la terminaison mais qui excluent certains programmes qui terminent. Une cons´equence de (3) est qu’on ne peut pas automatiser le probl`eme de l’´equivalence de deux programmes. Dans ce cas aussi on est amen´e `a faire des approximations. Exercice 6.43 Montrez ou invalidez les assertions suivantes : 1. Il y a une MdT qui accepte les mots sur l’alphabet {0, 1} qui contiennent autant de 0 que de 1 (si la MdT existe, il suffira d’en donner une description informelle). 2. Rappel : si A et B sont deux langages, on ´ecrit A ≤ B s’il existe une r´eduction de A `a B. Si A est s´emi-d´ecidable et A ≤ Ac alors A est d´ecidable. 3. L’ensemble des (codages de) MdT qui reconnaissent un langage fini est d´ecidable. Exercice 6.44 Montrez ou donnez un contre-exemple aux assertions suivantes : 1. L’ensemble des (codages de) MdT qui terminent sur le mot vide est d´ecidable. 2. L’ensemble des (codages de) MdT qui divergent sur le mot vide est semi-d´ecidable. 8 Il y a des variations possibles de cette d´efinition. Par exemple, on peut dire que les machines sont ´equivalentes si elles calculent la mˆeme fonction partielle. 9En d’autres termes, si M et M0 sont extensionnellement ´equivalentes alors soit {M, M0 } ⊆ P soit {M, M0 }∩ P = ∅. 403. L’ensemble des (codages de) MdT qui terminent sur le mot vide en 10100 pas de calcul est d´ecidable. Exemple 6.45 On termine en mentionnant (sans preuve) quelques probl`emes ind´ecidables remarquables. (1) Soit Σ un alphabet et soit (v1, w1)· · ·(vk, wk) une suite finie de couples de mots dans Σ ∗ . Le probl`eme de correspondance de Post (PCP) consiste `a d´eterminer s’ils existent n ≥ 1 et i1, . . . , in ∈ {1, . . . , k} tels que : vi1 · · · vin = wi1 · · · win . Par exemple, consid´erez {(ab, a),(bcc, bb),(c, cc)}. On ne peut pas concevoir un algorithme qui pour tout PCP d´ecide si le probl`eme a une solution. En d’autres termes, le probl`eme de correspondance de Post est ind´ecidable. (2) Soit p(x1, . . . , xn) un polynˆome de degr´e arbitraire avec variables x1, . . . , xn et avec coef- ficients dans Z. Par exemple, p(x, y, z) = 6x 3yz2 + 3xy2 − x 3 − 10. Le dixi`eme probl`eme de Hilbert consiste `a d´eterminer si le polynˆome p a des racines dans Z, c’est-`a-dire : ∃ x1, . . . , xn ∈ Z p(x1, . . . , xn) = 0 Ce probl`eme a ´et´e propos´e comme un challenge parmi d’autres en 1900 par D. Hilbert et il a ´et´e montr´e ind´ecidable par Matijasevich en 1970 (le mˆeme probl`eme sur les r´eels est d´ecidable). (3) La logique du premier ordre est l’extension du calcul propositionnel o`u l’on introduit la quantification. Par exemple, on peut ´ecrire ∀ x ∃ y A(x, y). Une telle formule est valide si pour tout ensemble U 6= ∅ et pour toute relation binaire RA sur U il est vrai que pour tout u ∈ U il existe v ∈ V tel que (u, v) ∈ RA. La validit´e d’une formule du premier ordre est ind´ecidable. (4) On peut s’int´eresser aux formules du premier ordre sur un alphabet particulier qui comprend les symboles +,∗ et < qui sont interpr´et´es comme l’addition, la multiplication et l’in´egalit´e de nombres naturels. De mˆeme, les quantificateurs sont interpr´et´es maintenant sur les nombres naturels. Par exemple, ∀ x ∃ y x < y est une formule qui dit que pour chaque nombre naturel x on peut trouver un nombre naturel y qui est strictement plus grand. La validit´e d’une formule du premier ordre (interpr´et´ee sur les nombres naturels) est (hautement) ind´ecidable.10 10On peut construire une hi´erarchie qu’on appelle hi´erarchie arithm´etique de probl`emes ind´ecidables et toujours ‘plus durs’. 417 Complexit´e : les classes P et NP On s’int´eresse au probl`emes d´ecidables en temps polynomial (d´eterministe ou non-d´eterministe). D´efinition 7.1 P (NP) est la classe des langages qui sont d´ecidables par une MdT d´eterministe (non-d´eterministe) en temps O(n k ) pour un certain k. Il suit de la d´efinition que tout probl`eme dans P est aussi dans NP. Les classes P et NP sont suffisamment robustes pour ne pas ˆetre affect´ees par une modification du mod`ele de calcul. Par exemple, ces classes ne d´ependent pas du fait que les MdT disposent de un ou de plusieurs rubans. On peut mˆeme enrichir le mod`ele de calcul en supposant que la machine dispose d’une m´emoire illimit´ee en acc`es direct (RAM pour random access memory). Dans une telle machine l’acc`es `a une cellule de m´emoire est effectu´e en O(1). On peut d´emontrer qu’une MdT d´eterministe peut simuler une machine avec RAM avec une d´egradation polynomiale des performances, c’est-`a-dire qu’il y a un (petit) nombre k tel que si la machine avec RAM a complexit´e O(t(n)) la MdT qui la simule a complexit´e O(t(n) k ). Une grande partie des probl`emes qui sont consid´er´es dans un cours standard d’algorithmique font partie de la classe P. Par exemple, les probl`emes de tri, la r´esolution de syst`emes d’´equations lin´eaires, les probl`emes de recherche dans un arbre, le probl`eme de la connectivit´e d’un graphe,. . . Dans la suite on va consid´erer un certain nombre de probl`emes qui sont dans la classe NP. Exemple 7.2 (1) Le probl`eme de savoir si une formule du calcul propositionnel est satisfiable est dans NP. Il suffit de deviner une affectation et de v´erifier. (2) Soit G = (V, E) un graphe non-dirig´e. Le probl`eme du circuit hamiltonien consiste `a d´eterminer s’il existe un parcours du graphe qui contient chaque sommet du graphe une et une seule fois. Un algorithme dans NP qui r´epond `a la question devine une permutation des sommets et v´erifie si elle correspond `a un parcours dans le graphe. (2) Soit V un ensemble de villes et d une fonction qui associe `a chaque paire de villes (v, v0 ) la distance d(v, v0 ) ≥ 0 pour aller de v `a v 0 . Le probl`eme du voyageur de commerce11 est de d´eterminer s’il existe un parcours qui traverse chaque ville exactement une fois dont la longueur est inf´erieure `a b. En d’autres termes, dans TSP on consid`ere un graphe non-dirig´e, complet (chaque couple de noeuds est connect´e par une arˆete) et avec une fonction de coˆut sur les arˆetes et on cherche `a d´eterminer si le graphe contient un circuit hamiltonien dont le coˆut est inf´erieur `a b. Un algorithme dans NP qui r´epond `a la question devine une permutation des villes et v´erifie si la somme des distances est inf´erieure `a b. 12 7.1 R´eduction polynomiale Faute de pouvoir d´emontrer que les probl`emes dans l’exemple 7.2 sont ou ne sont pas dans P, on va essayer de les comparer. A cette fin, on reprend la notion de r´eduction entre probl`emes (d´efinition 6.36) en ajoutant la contrainte que la r´eduction est calculable en temps polynomiale (d´eterministe). 11Aussi connu comme TSP pour Travelling Salesman Problem. 12Ce probl`eme est aussi formul´e comme un probl`eme d’optimisation o`u l’on cherche `a minimiser la longueur d’un parcours ferm´e. 42D´efinition 7.3 Soient L, L0 deux langages sur un alphabet Σ. On dit que L se r´eduit `a L 0 en temps polynomial et on ´ecrit L ≤P L 0 s’il existe une fonction r´ecursive f : Σ∗ → Σ ∗ calculable en temps polynomial telle que w ∈ L ssi w ∈ L 0 Exemple 7.4 Il y a une r´eduction polynomiale du probl`eme du circuit hamiltonien au probl`eme du voyageur de commerce. L’ensemble des noeuds correspond `a l’ensemble des villes. La distance d est d´efinie par : d(v, v0 ) = ( 1 si (v, v0 ) arˆete 2 autrement La constante b est ´egale au nombre des villes. Maintenant, on remarque : – S’il existe un parcours de longueur b alors ce parcours ne peut contenir que des chemins entre villes de longueur 1. Donc ce parcours correspond `a un chemin hamiltonien. – Inversement, s’il y a un chemin hamiltonien alors la r´eponse au probl`eme du voyageur de commerce est positive. Exercice 7.5 Une formule est en 3-CNF si elle est en CNF et chaque clause (disjonction de litt´eraux) comporte exactement 3 litt´eraux. Le probl`eme 3-SAT consiste `a d´eterminer si une formule en 3-CNF est satisfiable. Montrez que : (1) 3-SAT est dans NP. (2) Une clause `1 ∨ · · · ∨ `n avec n > 3 peut ˆetre remplac´ee par (`1 ∨ `2 ∨ y1) ∧ (¬y1 ∨ `3 ∨ y2) ∧ · · ·(¬yn−3 ∨ `n−1 ∨ `n) o`u y1, . . . , yn−3 sont des nouvelles variables. (3) Une clause avec 1 ou 2 litt´eraux peut ˆetre remplac´ee par une clause avec 3 litt´eraux. (4) Conclure qu’il y a une r´eduction polynomiale de SAT `a 3-SAT. Exercice 7.6 Montrez que la notion de r´eduction polynomiale est transitive : L1 ≤P L2 et L2 ≤P L3 implique L1 ≤P L3. 7.2 SAT et NP-compl´etude D´efinition 7.7 Un probl`eme L (langage) est NP-complet s’il est dans NP et si tout probl`eme L 0 dans NP admet une r´eduction polynomiale `a L. Dans un certain sens les probl`emes NP-complets sont les plus durs. Si on trouve un algorithme polynomial pour un probl`eme NP-complet alors on a un algorithme polynomial pour tous les probl`emes de la classe NP. Un fait remarquable est que plusieurs probl`emes naturels sont NP-complets. Th´eor`eme 7.8 (Cook-Levin 1971) Le probl`eme SAT est NP-complet. Idee de la preuve ´ . Soit L un langage d´ecid´e par une MdT M non d´eterministe polynomiale en temps p(n). Donc w ∈ L ssi `a partir de la configuration initiale q0w la machine M peut arriver `a l’´etat qa. On d´ecrit une r´eduction polynomiale qui associe `a chaque mot w une 43formule en CNF Aw qui est satisfiable si et seulement si w ∈ L. L’id´ee est que la formule Aw va d´ecrire les calculs possibles (M est non-d´eterministe !) de la machine M sur l’entr´ee w. La remarque fondamentale est qu’un calcul d’une machine de Turing en temps p(n) sur un mot w de taille n peut ˆetre repr´esent´e par un tableau de taille p(n) × p(n) dont la case de coordonn´ees (i, j) contient la valeur du ruban au temps i et `a la position j. Si le calcul termine avant p(n) on peut toujours recopier le ruban jusqu’au temps p(n). On peut associer `a chaque case (i, j) et `a chaque symbole a une variable propositionnelle xi,j,a avec l’id´ee que xi,j,a = 1 si et seulement si la case (i, j) contient le symbole a. Ensuite on peut construire des formules (de taille polynomiale en n) qui assurent que : – Exactement un symbole est dans chaque case. – Les cases (1, j) correspondent `a la configuration initiale. – Chaque case (i + 1, j) est obtenue des cases (i, j − 1),(i, j),(i, j + 1) selon les r`egles de la Machine. – La configuration finale accepte. Exemple 7.9 On construit une CNF qui correspond au calcul de la MdT M dans l’exemple 6.4 sur l’entr´ee aab. 13 Le calcul de la MdT pourrait ˆetre : 1 2 3 4 5 1 q0 a a b t 2 a q0 a b t 3 a a q0 b t 4 a a b q1 t 5 a a b t qa Pour repr´esenter le calcul on introduit les variables xi,j,u o`u i, j ∈ {1, . . . , 5} et u ∈ {a, b, q0, q1, qa}. La configuration initiale est sp´ecifi´ee par : Ainit = x1,1,q0 ∧ x1,2,a ∧ x1,3,a ∧ x1,4,b ∧ x1,5,t On doit imposer la contrainte que `a chaque instant exactement un symbole est pr´esent `a chaque position. Par exemple, pour l’instant i `a la position j on ´ecrira : Ai,j = (xi,j,a ∨ · · · ∨ xi,j,qa ) ∧ (¬xi,j,a ∨ ¬xi,j,b) ∧ · · · ∧ (¬xi,j,q1 ∨ ¬xi,j,qa ) L’objectif est d’arriver `a une configuration qui contient l’´etat qa. Cela revient `a demander : Aaccept = ∨1≤i,j≤5xi,j,qa Enfin on doit d´ecrire les ‘r`egles de calcul’ de la machine M. Par exemple, on pourrait exprimer δ(q0, a) = (q0, a, R) par la conjonction de formules de la forme (xi−1,j−1,q0 ∧ xi−1,j,a) → (xi,j−1,a ∧ xi,j,q0 ) Il est possible de proc´eder d’une fa¸con plus syst´ematique. Une propri´et´e int´eressante des MdT est qu’`a chaque instant le calcul est localis´e dans une r´egion de taille born´ee. Si w1qw2 `M w 0 1 q 0w 0 2 la diff´erence entre les deux configurations est localis´ee dans une r´egion de taille 3 qui 13Il s’agit d’un cas tr`es sp´ecial car la MdT en question se comporte comme un automate fini d´eterministe. Cependant les id´ees se g´en´eralisent. 44comprend l’´etat et les deux symboles contigu¨es. L’id´ee est alors de regarder toutes les fenˆetres de largeur 3 et de hauteur 2 dans le tableau qui repr´esente le calcul (il y en a un nombre polynomial) et de s’assurer que le contenu de chaque fenˆetre est conforme aux r`egles de la machines. La formule en question peut ˆetre exprim´ee en CNF. Par exemple, on pourrait avoir une formule de la forme : ((x1 ∧ x2) → (y1 ∧ y2)) ∨ ((x1 ∧ x2) → (w1 ∧ w2)) ∨ ((x1 ∧ x2) → (z1 ∧ z2)) pour dire que si deux cases contiennent les symboles a1, a2 (variables x1, x2) alors deux autres cases contiennent ou bien les symboles b1, b2 (variables y1, y2) ou bien les symboles c1, c2 (variables w1, w2) ou bien les symboles d1, d2 (variables z1, z2). Une telle formule peut se r´e-´ecrire en CNF comme suit. (¬x1 ∨ ¬x2 ∨ y1 ∨ w1 ∨ z1)∧ (¬x1 ∨ ¬x2 ∨ y1 ∨ w1 ∨ z2)∧ (¬x1 ∨ ¬x2 ∨ y1 ∨ w2 ∨ z1)∧ (¬x1 ∨ ¬x2 ∨ y1 ∨ w2 ∨ z2)∧ (¬x1 ∨ ¬x2 ∨ y2 ∨ w1 ∨ z1)∧ (¬x1 ∨ ¬x2 ∨ y2 ∨ w1 ∨ z2)∧ (¬x1 ∨ ¬x2 ∨ y2 ∨ w2 ∨ z1)∧ (¬x1 ∨ ¬x2 ∨ y2 ∨ w2 ∨ z2) La transformation est exponentielle dans le nombre de possibilit´es (3 dans notre cas), mais pour une MdT donn´ee, ce nombre est born´e par une constante. Exercice 7.10 On dispose d’un ensemble P = {1, . . . , m} de pigeons et d’un ensemble N = {1, . . . , n} de nids. Le principe du nid de pigeon14 est le suivant : 1. Chaque pigeon a un nid. 2. Chaque nid a au plus un pigeon. D´ecrivez le principe par une formule du calcul propositionnel en CNF qui utilise comme formules atomiques oi,j pour i = 1, . . . , m et j = 1, . . . , n o`u la validit´e de oi,j repr´esente le fait que le pigeon i occupe le nid j. La formule en question doit ˆetre satisfiable si et seulement si m ≤ n. Quelle est la taille de la formule en fonction de m, n ? Remarque : si on prend m = n+1 on obtient une formule en CNF qui n’est pas satisfiable. Cette formule est utilis´ee souvent comme un test pour les m´ethodes de preuve (Davis-Putnam, r´esolution,. . .) Exercice 7.11 On dispose d’une grille 4 × 4 qui se d´ecompose en 4 sous-grilles 2 × 2. On d´enote par le couple (i, j), o`u i, j ∈ {1, 2, 3, 4}, les coordonn´ees d’une case de la grille. Chaque case de la grille contient un ensemble de nombres naturels contenu dans {1, 2, 3, 4}. On introduit 64 variables propositionnelles xi,j,k pour i, j, k ∈ {1, 2, 3, 4} avec l’interpr´etation suivante : xi,j,k est ‘vrai’ si et seulement si la case de coordonn´ees (i, j) contient le nombre k. 14Traduction approximative de pigeon principle. 45Soit A une formule qui utilise les variables xi,j,k et P une propri´et´e de la grille. On dit que A exprime P si, dans l’interpr´etation ci-dessus, A est satisfiable si et seulement si P est v´erifi´ee. Par exemple, par la formule A = x1,1,2 ∨ x1,1,3 on exprime la propri´et´e que la case de coordonn´ees (1, 1) contient ou bien 2 ou bien 3. 1. D´efinissez des formules en forme normale conjonctive qui expriment les propri´et´es suivantes : (a) La case de coordonn´ees (2, 2) contient au moins un num´ero compris entre 1 et 4. (b) On ne peut pas trouver deux cases sur la premi`ere ligne qui contiennent le num´ero 4. (c) La case (3, 2) contient au plus un num´ero. 2. Donnez une borne sup´erieure au nombre de litt´eraux contenus dans une formule en forme normale conjonctive qui exprime la propri´et´e suivante : il n’y a pas deux cases sur la mˆeme ligne, sur la mˆeme colonne ou sur la mˆeme sous-grille 2×2 qui contiennent le mˆeme num´ero. Expliquez votre calcul. Exercice 7.12 Pour n ≥ 1 on introduit n 2 variables propositionnelles xi,j avec 1 ≤ i, j ≤ n. (1) Construisez une formule An en forme normale conjonctive qui a la propri´et´e suivante : une affectation v satisfait An exactement quand il existe une permutation π : {1, . . . , n} → {1, . . . , n} telle que v(xi,j ) = 1 si et seulement si π(i) = j. Par exemple, pour n = 2 il n’y a que deux affectations qui peuvent satisfaire A2 `a savoir soit (v(x1,1) = v(x2,2) = 1 et v(x1,2) = v(x2,1) = 0) soit (v(x1,1) = v(x2,2) = 0 et v(x1,2) = v(x2,1) = 1). Ecrivez explicitement ´ An pour n = 3 et ensuite donnez le sch´ema de la formule An pour un n arbitraire. Suggestion : une permutation sur un ensemble fini X est la mˆeme chose qu’une fonction injective sur X. (2) Un graphe fini non-dirig´e G est un couple (N, E) o`u N = {1, . . . , n}, n ≥ 2 est un ensemble qui repr´esente les noeuds du graphe et E est un ensemble de sous-ensembles de N de cardinalit´e 2 qui repr´esente les arˆetes du graphe. On dit que G admet un circuit hamiltonien s’il existe une permutation π : {1, . . . , n} → {1, . . . , n} telle que {π(1), π(2)} ∈ E, . . . , {π(n − 1), π(n)} ∈ E Montrez que le probl`eme de savoir si un graphe admet un circuit hamiltonien a une r´eduction polynomiale au probl`eme de la satisfiabilit´e d’une formule en CNF du calcul propositionnel. Suggestion : on utilise la formule An de l’exercice 7.12 pour sp´ecifier l’existence d’une permutation et on ajoute des variables yi,j , i, j = 1, . . . , n, i 6= j pour sp´ecifier les arˆetes du graphe. Exercice 7.13 On dispose d’un ´echiquier (une matrice carr´ee) n × n. Une reine qui occupe une position de l’´echiquier peut attaquer toutes les positions sur la mˆeme ligne, la mˆeme colonne ou sur les diagonales inclin´ees de 45 d´egr´ees. On cherche `a placer r reines sur l’´echiquier de fa¸con `a ce qu’elles ne puissent pas s’attaquer mutuellement. A cette fin, ´ecrivez une formule en CNF qui est satisfiable si et seulement si le probl`eme a une solution. On utilisera des formules atomiques oi,j pour i = 1, . . . , m et j = 1, . . . , n o`u la validit´e de oi,j repr´esente le fait qu’une reine occupe la position (i, j). Remarque : la formule obtenue est aussi un test int´eressant pour les m´ethodes de preuve. Par exemple, pour n = r = 4 ou n = r = 8 le probl`eme a une solution. 46Exercice 7.14 Soit A une matrice et b un vecteur `a coefficients dans Z. Le probl`eme de programmation lin´eaire enti`ere (ILP pour integer linear programming) consiste `a d´eterminer s’il existe un vecteur ~x `a coefficients dans Nm tel que A~x = ~b. 15 Ce probl`eme est dans NP. On utilise des notions d’alg`ebre lin´eaire pour montrer que si le probl`eme a une solution alors il en a une dont la taille est polynomiale dans la taille de la matrice A. Ensuite on peut appliquer la m´ethode standard qui consiste `a deviner un vecteur ~x et `a v´erifier qu’il est une solution. A partir de ce fait, le but de l’exercice est de montrer que le probl`eme est NP-complet par r´eduction du probl`eme SAT. Il peut ˆetre utile de consid´erer d’abord les probl`emes suivants. – Montrez qu’en introduisant des variables auxiliaires on peut exprimer la satisfaction d’une contrainte d’in´egalit´e comme un probl`eme d’ILP. – Montrez qu’on peut exprimer la contrainte x ∈ {0, 1}. – Montrez qu’on peut exprimer la contrainte x = y o`u x, y ∈ {0, 1}, 0 = 1 et 1 = 0. – Montrez comment coder la validit´e d’une clause (disjonction de litt´eraux). Exercice 7.15 Soit G un graphe non-dirig´e (cf. exercice 8.6). Un k-clique est un ensemble de k noeuds de G qui ont la propri´et´e que chaque couple de noeuds est connect´ee par une arˆete. Le langage CLIQUE est compos´e de couples hG, ki o`u (i) G est le codage d’un graphe, (ii) k est un nombre naturel et (iii) G contient comme sous-graphe un k-clique. Le langage 3-SAT est compos´e de formules en forme normale conjonctive o`u chaque clause contient 3 litt´eraux. 1. Montrez que le langage CLIQUE est dans NP. 2. On souhaite construire une r´eduction polynomiale de 3-SAT `a CLIQUE. Si la formule A contient k clauses alors le graphe associ´e GA contient k groupes de noeuds o`u chaque groupe est compos´e de 3 noeuds et chaque noeud est ´etiquet´e par un litt´eral. Par exemple, si la clause est (x ∨ ¬y ∨ z) alors on aura un groupe de 3 noeuds ´etiquet´es avec x, ¬y et z. (a) D´ecrivez les arˆetes de GA de fa¸con `a ce que le graphe GA contienne une k-clique si et seulement si la formule A est satisfiable et dessinez le graphe GA dans le cas o`u A = (x ∨ y) ∧ (¬x ∨ ¬y) ∧ (¬x ∨ y) ∧ (x ∨ ¬y) (la formule en question comporte seulement deux litt´eraux par clause mais la construction du graphe GA s’applique aussi bien `a ce cas). (b) Quelle conclusion peut-on tirer de la construction pr´ec´edente ? Motivez votre r´eponse : i. Si 3-SAT est un probl`eme polynomiale d´eterministe alors CLIQUE est un probl`eme polynomiale d´eterministe. ii. CLIQUE est un probl`eme NP-complet. Exercice 7.16 Un graphe (non-dirig´e) G est compos´e d’un ensemble fini non-vide de noeuds N et d’un ensemble A d’arˆetes qui connectent les noeuds. Formellement, une arˆete est un ensemble {i, j} de noeuds de cardinalit´e 2. On dit que deux noeuds sont adjacents s’il y a une arˆete qui les connecte. 15Comme pour le probl`eme du voyageur de commerce, le probl`eme ILP est souvent formul´e comme un probl`eme d’optimisation. Par exemple, il s’agit de minimiser une fonction lin´eaire ~cT ~x sous les contraintes A~x = ~b et ~x ≥ 0. 47Probl`eme du coloriage Etant donn´e un graphe ´ G = (N, A) et un nombre naturel k ≥ 2 on d´etermine s’il existe une fonction c : N → {1, . . . , k} telle que si i, j sont deux noeuds adjacents alors c(i) 6= c(j). 16 Probl`eme de l’emploi du temps Etant donn´e (i) un ensemble d’´etudiants ´ E = {1, . . . , n} (n ≥ 2), (ii) un ensemble de cours C = {1, . . . , m} (m ≥ 2), (iii) un ensemble de plages horaires P = {1, . . . , p} (p ≥ 2) et (iv) une relations binaire R telle que (i, j) ∈ R si et seulement si l’´etudiant i suit le cours j on d´etermine s’il existe une fonction emploi du temps edt : C → P telle que si un ´etudiant suit deux cours diff´erents j 6= j 0 alors edt(j) 6= edt(j 0 ). D´emontrez ou donnez un contre-exemple aux assertions suivantes : 1. Le probl`eme de l’emploi du temps se r´eduit au probl`eme du coloriage. 2. Le probl`eme de l’emploi du temps se r´eduit en temps polynomial au probl`eme du coloriage. 3. Le probl`eme du coloriage est dans NP. Remarque 7.17 (1) On connaˆıt un bon millier de probl`emes NP-complets. Cependant, certains probl`emes comme l’isomorphisme de graphes (cf. exemple 6.14) r´esistent `a une classi- fication. A l’´etat de nos connaissances, il est possible que le probl`eme de l’isomorphisme de graphes soit ni NP-complet ni dans P. (2) La question de savoir s’il y a un langage dans NP qui n’est pas dans P est ouverte depuis 1971. C’est un probl`eme naturel de la th´eorie de la complexit´e et il est aussi le probl`eme le plus m´ediatis´e de l’informatique th´eorique. 17 (3) Une autre fa¸con de mesurer la complexit´e du calcul d’une MdT est de compter l’espace, c’est-`a-dire le nombre de cellules du ruban qu’elle utilise. La classe PSPACE (NPSPACE) est la classe des probl`emes qui peuvent ˆetre r´esolus par une MdT d´eterministe (non-d´eterministe) en utilisant un espace polynomial dans la taille de l’entr´ee. Il n’est pas tr`es difficile de montrer que PSPACE=NPSPACE. On en d´eduit imm´ediatement que P ⊆ NP ⊆ PSPACE mais on ne sait pas si une de ces inclusions est stricte. (4) Nombreuses autres classes de complexit´e ont ´et´e introduites. Par exemple : LOGSPACE, la classe des probl`emes qui peuvent ˆetre r´esolus en espace logarithmique (LOGSPACE ⊆ P) et EXPTIME, la classe des probl`emes qui peuvent ˆetre r´esolus en temps exponentiel (PSPACE ⊆ EXPTIME). 16On peut voir les valeurs {1, . . . , k} comme des couleurs qu’on affecte aux noeuds, d’o`u le nom du probl`eme. 17Le probl`eme P vs. NP est cit´e parmi les “7 probl`emes math´ematiques du troisi`eme mill´enaire” par la Clay Foundation `a cot´e de l’hypoth`ese de Riemann, la conjecture de Poincar´e, la r´esolution des ´equations de Navier-Stokes,. . . La preuve de la conjecture de Poincar´e a ´et´e annonc´ee r´ecemment, il ne reste donc que 6 probl`emes. . . 488 Preuves par induction On s’int´eresse d’abord aux d´efinitions inductives. Dans une d´efinition inductive on construit un ensemble ‘inductif’ par stratifications successives et on dispose d’un principe de r´ecurrence ainsi que d’un ordre implicite. Les ensembles librement engendr´es constituent un exemple remarquable d’ensemble inductif. Par ailleurs, on peut g´en´eraliser la notion d’ordre et arriver `a la notion d’ensemble bien fond´e. Les ensembles bien fond´es admettent un principe d’induction qui g´en´eralise le principe de r´ecurrence habituel. 8.1 Ensembles inductifs Soit A un ensemble, X ⊆ A un sous-ensemble, et F = {fi : Ani → A | i ∈ I} un ensemble d’op´erations sur A. A partir de (A, X, F) on voudrait d´efinir inductivement un ensemble Ind(A, X, F) comme le plus petit sous-ensemble de A qui contient X et qui est stable par rapport aux op´erations dans F, c’est-`a-dire pour tout i ∈ I si y1, . . . yni ∈ Y alors fi(y1, . . . , yni ) ∈ Y . Exemple 8.1 Soit Z l’ensemble des nombres entiers et suc et + les op´erations successeur et addition, respectivement. On pourrait d´efinir : (1) L’ensemble des nombres naturels comme le plus petit sous-ensemble de Z qui contient {0} et qui est stable par rapport `a l’op´eration de successeur. (2) L’ensemble des nombres pairs positifs comme le plus petit sous-ensemble de Z qui contient {0, 2} et qui est stable par rapport `a l’op´eration d’addition. Il n’est pas si ´evident qu’une d´efinition inductive d´efinit bien un ensemble. Il faut d’abord s’assurer que le plus petit ensemble dont parle la d´efinition existe. A partir de (A, X, F) on peut d´efinir une fonction F : 2A → 2 A comme suit : F(Z) = X ∪ {fi(z1, . . . , zni ) | i ∈ I, zj ∈ Z, j = 1, . . . , ni} On remarque que la condition F(Z) ⊆ Z est satisfaite si et seulement si X ⊆ Z et Z est stable par rapport aux op´erations dans F. Maintenant consid´erons l’intersection de tous les ensembles Z ⊆ A qui satisfont cette condition : Y = \ {Z ⊆ A | F(Z) ⊆ Z} . (5) Proposition 8.2 Le plus petit ensemble Ind(A, X, F) existe et est ´egale `a Y. Idee de la preuve ´ . Par d´efinition, si F(Z) ⊆ Z alors Y ⊆ Z. Pour s’assurer de l’existence du plus petit ensemble tel que. . . il reste `a d´emontrer que F(Y ) ⊆ Y . D’abord on observe que F est monotone, c’est-`a-dire : X1 ⊆ X2 ⇒ F(X1) ⊆ F(X2) Si F(Z) ⊆ Z par d´efinition de Y on d´erive que Y ⊆ Z et par monotonie que F(Y ) ⊆ F(Z). Donc F(Y ) ⊆ \ {F(Z) | Z ⊆ A, F(Z) ⊆ Z} ⊆ \ {Z | Z ⊆ A, F(Z) ⊆ Z} = Y . • Si F(Z) = Z on dit que Z est un point fixe de F. 49Proposition 8.3 (it´eration) (1) L’ensemble Y d´efini par l’´equation (5) est le plus petit point fixe de F. (2) De plus on peut donner une d´efinition it´erative de Y . Si on d´efinit, F 0 = ∅ Fn+1 = F(F n ) F ω = [ n≥0 F n alors F n ⊆ Fn+1 et F ω = Y . Idee de la preuve ´ . (1) On sait F(Y ) ⊆ Y . Par monotonie, F(F(Y )) ⊆ F(Y ). Par d´efinition de Y , Y ⊆ F(Y ). (2) On observe, F n ⊆ Y implique par monotonie F n+1 ⊆ F(Y ) ⊆ Y . Donc F ω ⊆ Y . Ensuite, on v´erifie que F(F ω ) ⊆ Fω , ce qui implique Y ⊆ Fω . • Proposition 8.4 Tout ensemble Y d´efini inductivement `a partir de (A, X, F) admet le principe d’induction suivant : Z ⊆ Y, F(Z) ⊆ Z Z = Y (6) Si on explicite le principe dans le cas des nombres naturels N, on obtient le principe de r´ecurrence habituel : Z ⊆ N, 0 ∈ Z, ∀ n n ∈ Z → n + 1 ∈ Z Z = N (7) Exercice 8.5 (transitivit´e) Soit R une relation binaire sur un ensemble. Sa clˆoture r´eflexive et transitive R∗ est la plus petite relation qui contient la relation identit´e, la relation R et telle que si (x, y),(y, z) ∈ R∗ alors (x, z) ∈ R∗ . Montrez que R∗ peut ˆetre vu comme un ensemble d´efini inductivement. Exercice 8.6 Un graphe non-dirig´e G est compos´e d’un ensemble fini non-vide de noeuds N et d’un ensemble A d’arˆetes qui connectent les noeuds. Formellement, une arˆete est un ensemble {i, j} de noeuds de cardinalit´e 2. Le degr´e d’un noeud i dans un graphe est le nombre d’arˆetes qui le contiennent. Par exemple, un noeud isol´e a degr´e 0. D´emontrez en utilisant le principe de r´ecurrence l’assertion suivante : Chaque graphe avec au moins 2 noeuds contient 2 noeuds avec le mˆeme degr´e. 8.2 Treillis complets et points fixes Un ordre partiel (L, ≤) est un ensemble L ´equip´e d’une relation r´eflexive, anti-sym´etrique et transitive. Soit X ⊆ L (´eventuellement vide). Un ´el´ement y ∈ L est une borne sup´erieure pour X si ∀ x ∈ X x ≤ y. Un ´el´ement y ∈ L est le sup de X s’il est la plus petite borne sup´erieure. De fa¸con duale, on d´efinit la notion de borne inf´erieure et de inf. D´efinition 8.7 Un treillis complet est un ordre partiel (L, ≤) tel que tout sous-ensemble a un sup. D´efinition 8.8 Une fonction monotone f sur un ordre partiel L est une fonction qui respecte l’ordre. On dit que x est point fixe de f si f(x) = x. 50Proposition 8.9 (Tarski) (1) Les parties d’un ensemble ordonn´ees par inclusion forment un treillis complet. (2) Tout sous-ensemble d’un treillis complet a un inf. (3) Toute fonction monotone sur un treillis complet a un plus grand et un plus petit point fixe qui s’expriment respectivement par sup{x | x ≤ f(x)} et inf {x | f(x) ≤ x}. Idee de la preuve ´ . (1) Le sup est l’union et l’inf est l’intersection d’ensembles. (2) Soit X ⊆ L et BI(X) l’ensemble des bornes inf´erieures de X. On consid`ere z = sup(BI(X)) et on montre que z = inf (X). (3) On pose z = sup{x | x ≤ f(x)}. Si f(y) = y alors y ≤ z. Donc il reste `a montrer que z est un point fixe. On montre d’abord que z ≤ sup{f(x) | x ≤ f(x)} ≤ f(z). Ensuite par monotonie, f(z) ≤ f(f(z)) et par d´efinition de z on arrive `a f(z) ≤ z. • Exercice 8.10 Soit (N∪{∞}, ≤) l’ensemble des nombres naturels avec un ´el´ement maximum ∞, 0 < 1 < 2 < . . . < ∞. Montrez que toute fonction monotone f sur cet ordre admet un point fixe, c’est-`a-dire un ´el´ement x tel que f(x) = x. 8.3 Ensembles librement engendr´es Nous allons consid´erer une forme particuli`erement importante de d´efinition inductive. Soit L un ensemble de symboles `, `0 , . . . avec arit´e ar (`) ∈ N. On peut d´efinir un ensemble T(L) par : T(L)0 = {` ∈ L | ar (`) = 0} T(L)n+1 = T(L)n ∪ {(`, t1, . . . , tn) | ` ∈ L, ar (`) = n, ti ∈ T(L)n, i = 1, . . . , n} T(L) = S n≥0 T(L)n On peut voir les ´el´ements de T(L) comme des arbres finis ordonn´es dont les noeuds sont ´etiquet´es par des symboles dans L de fa¸con compatible avec leur arit´e. Maintenant, on peut associer `a chaque symbole ` ∈ L une fonction `a ar (`) arguments sur T(L) qui est d´efinie par : `(t1, . . . , tn) = (`, t1, . . . , tn) (8) Supposons maintenant X ⊆ {` ∈ L | ar (`) = 0} et Σ ⊆ L avec X ∩ Σ = ∅. On peut d´efinir un ensemble inductif Y = Ind(T(L), X, Σ) qui est compos´e d’arbres finis dans T(L) qui utilisent uniquement les symboles dans X ∪Σ comme ´etiquettes. On dit que l’ensemble Y est librement engendr´e `a partir de X et Σ. Exemple 8.11 L’ensemble des formules du calcul propositionnel peut ˆetre vu comme librement engendr´e `a partir d’un ensemble V de symboles de ‘variables’ d’arit´e 0 et de symboles ‘fonctionnels’ Σ = {¬,∧,∨} o`u ar (¬) = 1 et ar (∧) = ar (∨) = 2. En d’autres termes, Form = Ind(T(L), V, Σ) On peut donc formuler un principe d’induction pour les formules du calcul propositionnel qui s’´enonce de la fa¸con suivante : F ⊆ Form V ⊆ F (A, B ∈ F implique ¬A, A ∧ B, A ∨ B ∈ F) F = Form 51et qui correspond `a l’intuition que Form est le plus petit ensemble tel que. . . 18 Exercice 8.12 On consid`ere l’ensemble de symboles fonctionnels Σ = {, a, b} o`u ar () = 0 et ar (a) = ar (b) = 1. Calculez l’ensemble librement engendr´e associ´e `a Σ. Cet ensemble est-il isomorphe `a un ensemble d´ej`a consid´er´e dans le cours ? 8.4 Ensembles bien fond´es Dans un ensemble inductif on peut d´efinir le rang d’un ´el´ement comme rang(y) = min{n | y ∈ Fn } Ainsi on peut voir un ensemble inductif comme un ensemble stratifi´e (ou ordonn´e) en niveaux 0, 1, 2, . . . On peut imaginer des ensembles avec une structure d’ordre diff´erente. Par exemple, consid´erons N∪ {∞} avec ∞ > n si n ∈ N. Clairement, le principe de r´ecurrence (7) n’est pas valide dans cet ensemble car mˆeme si un ensemble Z contient 0 et est stable par successeur il n’est pas forcement ´egal `a N ∪ {∞}. On va donc consid´erer un principe d’induction plus g´en´eral qui s’applique aussi `a des structures comme N ∪ {∞}. D´efinition 8.13 (ensemble bien fond´e) Un ensemble bien fond´e est un couple (W, >) o`u (1) W est un ensemble, (2) >⊆ W × W est une relation transitive et (3) il n’existe pas de s´equence infinie w0 > w1 > w2 > · · · dans W. 19 Exemple 8.14 L’ensemble des nombres naturels avec l’ordre usuel est bien fond´e. L’ensemble des nombres entiers ou l’ensemble des nombres rationnels positifs ne le sont pas. L’ensemble N ∪ {∞} est bien fond´e. Exemple 8.15 L’ensemble des formules du calcul propositionnel ordonn´ees selon leur taille est bien fond´e. Exercice 8.16 Soient N l’ensemble des nombres naturels, Nk le produit cart´esien N×· · ·×N k fois et A = S {Nk | k ≥ 1}. Soit < une relation binaire sur A telle que : (x1, . . . , xn) < (y1, . . . , ym) ssi il existe k ≤ min(n, m) (x1 = y1, . . . , xk−1 = yk−1, xk < yk) Est-il vrai que < est un ordre bien fond´e ? Donner soit une preuve soit un contre-exemple. Si x ∈ W on d´enote par ↓ (x) l’ensemble {y | x > y} des ´el´ements strictement plus petits que x. D´efinition 8.17 (principe d’induction) Soit (W, >) un ordre bien fond´e et Z ⊆ W. Chaque ordre bien fond´e admet le principe de raisonnement par induction suivant : ∀x(↓ (x) ⊆ Z → x ∈ Z) Z = W (9) 18Si on est p´edant on devrait ´ecrire (¬, A), (∧, A, B) et (∨, A, B). 19Il en suit que > est un ordre strict, c’est-`a-dire pour tout w ∈ W, w 6> w. 52Par exemple, consid´erons W = N∪ {∞}. Maintenant on ne peut pas appliquer le principe `a Z = N car ↓ (∞) ⊆ N mais ∞ ∈/ N. Il est instructif d’expliciter le principe quand W est l’ensemble des nombres naturels avec l’ordre standard >. Dans ce cas la condition ↓ (x) ⊆ Z s’exprime aussi par : ∀ y < x y ∈ Z. Donc pour montrer que Z = N il suffit de montrer : ∀ x ∀ y < x y ∈ Z → x ∈ Z c’est-`a-dire : pour tout nombre x, il faut montrer que le fait que les ´el´ements plus petits que x sont dans Z implique que x est dans Z aussi. On peut reformuler cette condition par : (indN) 0 ∈ Z ∀ x > 0 ((∀ y < x y ∈ Z) → x ∈ Z) Z = N La condition est alors tr`es proche du principe de r´ecurrence standard : (recN) 0 ∈ Z ∀ x > 0 (x − 1 ∈ Z → x ∈ Z) Z = N En effet on peut montrer que les deux principes sont ´equivalents. Le principe d’induction (9) et la notion de bonne fondation sont deux faces de la mˆeme m´edaille. Th´eor`eme 8.18 Soit (W, >) un ordre. (W, >) est bien fond´e si et seulement si le principe d’induction (9) est valide. Idee de la preuve ´ . (⇒) Supposons que le principe (9) ne soit pas valide. Donc il y a un ensemble Z tel que ∀x(↓ (x) ⊆ Z → x ∈ Z) mais x0 ∈/ Z. Mais alors il doit exister x1 ∈↓ (x0) tel que x1 ∈/ Z. Par le mˆeme argument on trouve x2 ∈↓ (x1) tel que x2 ∈/ Z. Donc on trouve une s´equence infinie x0 > x1 > x2 > · · · dans W ce qui contredit l’hypoth`ese de bonne fondation. (⇐) Soit Z = {x | il n’y a pas de suite descendante infinie `a partir de x} L’ensemble Z satisfait la condition ∀x(↓ (x) ⊆ Z → x ∈ Z) ainsi par le principe d’induction (9), Z = W et donc W est bien fond´e. • 539 M´ethodes de terminaison Un probl`eme fondamental en informatique consiste `a d´emontrer la terminaison d’un programme ou d’un syst`eme de r´eduction. D´efinition 9.1 (syst`eme de r´eduction) Un syst`eme de r´eduction est un couple (A,→) o`u A est un ensemble et →⊆ A × A. Exemple 9.2 Un automate fini M = (Σ, Q, q0, F, δ) o`u δ : Σ × Q → 2 Q, d´efinit un syst`eme de r´eduction sur l’ensemble des configurations (Σ∗ × Q×) par (w, q) → (w 0 , q0 ) si w = aw0 et q 0 ∈ δ(q, a). Exemple 9.3 Le comportement d’un programme peut ˆetre d´efini par un syst`eme de r´eduction. Par exemple, consid´erons un langage imp´eratif ´el´ementaire compos´e de :20 Variables v ::= x | y | · · · Expressions e ::= v | t | f | · · · Programmes P ::= skip | v := e | if e then P else P | while e do P | P; P Une m´emoire µ est une fonction qui affecte `a chaque variable une valeur (dans notre cas, true, false, . . .). Maintenant, le comportement d’un programme peut ˆetre d´efini par un syst`eme de r´eduction sur les couples (P, µ). D’abord on d´efinit la valeur [[e]]µ d’une expression e dans une m´emoire µ : 21 [[x]]µ = µ(x), [[t]]µ = true, [[f]]µ = false, · · · Ensuite, on donne des r`egles pour ´evaluer un couple (P, µ). (x := e, µ) → (skip, µ[[[e]]µ/x]) (if e then P else Q, µ) → (Q, µ) si [[e]]µ = false (if e then P else Q, µ) → (P, µ) si [[e]]µ = true (while e do P, µ) → (skip, µ) si [[e]]µ = false (while e do P, µ) → (P; (while e do P), µ) si [[e]]µ = true (skip; P, µ) → (P, µ) (P; Q, µ) → (P 0 ; Q, µ0 ) si (P, µ) → (P 0 , µ0 ) Remarque 9.4 La d´efinition de la relation → est aussi de nature inductive. Soit Prog l’ensemble des programmes et Mem l’ensemble des m´emoires. La relation → est le plus petit ensemble contenu dans (Prog × Mem) 2 qui contient les couples ((P, µ),(P 0 , µ0 )) qui satisfont une des premi`ere 6 conditions (r`egles) et qui est stable par rapport `a une famille de fonctions {fQ | Q ∈ Prog} d´efinie par fQ((P, µ),(P 0 , µ0 )) = ((P; Q, µ),(P 0 ; Q, µ0 )). D´efinition 9.5 (terminaison) Un syst`eme de r´e´ecriture (X, →) termine s’il n’existe pas de suite infinie x0 → x1 → x2 → · · ·. 20On pr´esente ici la grammaire selon la notation BNF (Backus-Naur Form). Comme dans le cas des formules du calcul propositionnel, on pourrait voir les programmes comme les ´el´ements d’un ensemble librement engendr´e. 21On remarquera l’analogie avec l’interpr´etation d’une formule du calcul propositionnel par rapport `a une affectation. 54Soit →+ la clˆoture transitive de la relation →, `a savoir : →1=→ →n+1= (→) ◦ (→n ) →+= [ n≥1 →n Il y a une relation naturelle entre terminaison et ordres bien fond´es. D´efinition 9.6 (plongement monotone) Soit (X, →) un syst`eme de r´e´ecriture et (W, >) un ordre bien fond´e. X admet un plongement monotone dans W s’il existe une fonction µ : X → W telle que x → y implique µ(x) > µ(y). Th´eor`eme 9.7 Soit X = (X, →) un syst`eme de r´e´ecriture. Les assertions suivantes sont ´equivalentes : (1) X termine. (2) (X, →+) est bien fond´e. (3) X admet un plongement monotone dans un ordre bien fond´e. Idee de la preuve ´ . (1) ⇒ (2) Si (X, →+) n’est pas bien fond´e, on a une s´equence x0 →+ x1 →+ x2 →+ · · ·. Donc (X, →) ne termine pas. (2) ⇒ (3) Il suffit de prendre comme ordre bien fond´e (X, →+) et comme plongement l’identit´e. (3) ⇒ (2) Si (X, →) ne termine pas on a une s´equence x0 → x1 → · · · ce qui induit une s´equence µ(x0) > µ(x1) > · · · dans l’ordre bien fond´e. • D´efinition 9.8 Soit (X, →) un syst`eme de r´e´ecriture. (1) L’ensemble des successeurs imm´ediats d’un ´el´ement x ∈ X est d´efini par : suc(x) = {y | x → y} (2) L’ensemble des successeurs d’un ´el´ement x ∈ X est d´efini par : suc+(x) = {y | x →+ y} (3) On dit que le syst`eme est `a branchement fini si pour tout x ∈ X, suc(x) est fini. Proposition 9.9 Soit X = (X, →) un syst`eme de r´e´ecriture `a branchement fini. (1) Si X termine alors pour tout x, suc+(x) est fini. (2) X termine si et seulement si il admet un plongement dans N. Idee de la preuve ´ . (1) Si suc+(x0) est infini alors il existe x1 ∈ suc(x0) tel que suc+(x1) est infini donc il existe x2 ∈ suc(x1) tel que suc+(x2) . . . On obtient ainsi une s´equence x0 → x1 → x2 → · · · qui contredit l’hypoth`ese que le syst`eme termine. (2) (⇐) Par le th´eor`eme 9.7. (⇒) On peut d´efinir µ(x) = ]suc+(x). Alternativement, on peut d´efinir µ(x) comme la longueur de la plus longue s´equence de r´eduction qui commence avec x. Dans les deux cas on v´erifie que si x → y alors µ(x) > µ(y). • 55Exercice 9.10 On consid`ere des programmes imp´eratifs while dont les variables prennent comme valeurs des nombres naturels. Montrez que le programme suivant termine o`u l’on sait que le test Φ termine et n’a pas d’effet de bord (c’est-`a-dire que l’´evaluation du test n’affecte pas la valeur associ´ee aux variables) : while u > l + 1 do (r := (u + l) div 2; if Φ then u := r else l := r) 9.1 Confluence, terminaison et forme normale Soit (X, →) un syst`eme de r´e´ecriture. Soit ∗→ la clˆoture r´eflexive et transitive de →, `a savoir ∗→=→+ ∪Id o`u Id est la relation identit´e. D´efinition 9.11 On dit que le syst`eme est confluent si pour tout x ∈ X x ∗→ y1 et x ∗→ y2 implique ∃ z (y1 ∗→ z et y2 ∗→ z) (10) On dit que le syst`eme est localement confluent si pour tout x ∈ X x → y1 et x → y2 implique ∃ z y1 ∗→ z et y2 ∗→ z On dit que y est une forme normale de x si x ∗→ y et ¬∃ z y → z. Proposition 9.12 (Newman) Soit X = (X, →) un syst`eme de r´e´ecriture. (1) Si X est confluent alors il est localement confluent. (2) Si X termine et est localement confluent alors il est confluent. (3) Si X est confluent alors chaque ´el´ement a au plus une forme normale. (4) Si X termine et est localement confluent alors chaque ´el´ement a exactement une forme normale. Idee de la preuve ´ . (1) Par d´efinition. (2) On montre que tout ´el´ement x est confluent. Si x → x1 ∗→ y1 et x → x2 ∗→ y2, par confluence locale x1 ∗→ y et x2 ∗→ y. Par hypoth`ese inductive x1 et x2 sont confluents et ceci implique que x est confluent aussi. (3) Si x ∗→ y1 et x ∗→ y2 et y1, y2 sont des formes normales alors y1 = y2 car autrement on contredit la confluence. (4) Par (2) si le syst`eme est localement confluent alors il est confluent et donc si x ∗→ x1, x2 et x1, x2 sont des formes normales alors x1 = x2. • Exercice 9.13 Soit ({a, b, c, d},→) un syst`eme de r´e´ecriture o`u →= {(c, a),(c, d),(d, c),(d, b)}. Dire si : le syst`eme termine, est localement confluent, est confluent. 569.2 Ordre lexicographique Il y a des syst`emes de r´e´ecriture qui ne sont pas `a branchement fini et dont la terminaison ne peut pas ˆetre d´emontr´ee par un plongement dans N. Exemple 9.14 On consid`ere le syst`eme de r´e´ecriture (N × N,→) o`u (i + 1, j) → (i, k) (i, j + 1) → (i, j) pour i, j, k ∈ N Ce syst`eme n’est pas `a branchement fini `a cause de la premi`ere r`egle et il n’admet pas de plongement monotone dans N. Si µ : N × N → N est monotone, on devrait avoir : k = µ(1, 1) > µ(0, k) > µ(0, k − 1) > · · · > µ(0, 0) mais on a seulement k nombres naturels sous k alors que la chaˆıne qu’on vient de construire a longueur k + 1. Cependant, on peut montrer sa terminaison par plongement dans un ordre lexicographique que nous allons construire dans la suite. D´efinition 9.15 Soient (A, >A) et (B, >B) deux ordres stricts. L’ordre lexicographique >l sur A × B est d´efini par : (x, y) >l (x 0 , y0 ) si x >A x 0 ou (x = x 0 et y >B y 0 ) Th´eor`eme 9.16 (1) L’ordre lexicographique de deux ordres stricts est encore un ordre strict. (2) L’ordre lexicographique de deux ordres bien fond´es est encore bien fond´e. Idee de la preuve ´ . (1) Il est imm´ediat que (x, y) 6>l (x, y). Supposons (x1, y1) >l (x2, y2) et (x2, y2) >l (x3, y3). • Si x1 > x2 alors x1 > x3 donc (x1, y1) >l (x3, y3). • Si x1 = x2 alors y1 > y2. Si x2 > x3 alors (x1, y1) >l (x3, y3). Si par contre x2 = x3 alors y2 > y3 et donc (x1, y1) >l (x3, y3). (2) Par contradiction. Supposons (x0, y0) >l (x1, y1) >l · · · Ceci implique x0 ≥ x1 ≥ · · · Comme A est bien fond´e il existe i tel que xj = xi pour j ≥ i. Mais ceci implique yi > yi+1 > yi+2 > · · · ce qui est impossible si B est bien fond´e. • Exercice 9.17 (1) Montrez que le syst`eme dans l’exemple 9.14 termine. (2) Montrez que le syst`eme (N × N,→) o`u (i, j + 1) → (i, j) et (i + 1, j) → (i, i) termine. (3) Trouvez (s’il existe) un plongement monotone du syst`eme pr´ec´edent dans (N, >). (4) Utilisez le principe d’induction pour d´emontrer l’existence d’une fonction (r´ecursive) a : N × N → N telle que : a(0, n) = n + 1 a(m + 1, 0) = a(m, 1) a(m + 1, n + 1) = a(m, a(m + 1, n)) 57(5) Calculez `a l’aide d’un programme autant de valeurs a(n, n) que possible. (6) On ´etend l’ordre lexicographique `a un produit A = A1 × · · · × An, n ≥ 3, d’ordres bien fond´es (Ai , >i) : (x1, . . . , xn) > (y1, . . . , yn) si ∃ k ≤ n (x1 = y1, . . . , xk−1 = yk−1 et xk >k yk) Montrez que (A, >) est bien fond´e. Exercice 9.18 Soit A = {a, b, c} ∗ l’ensemble des mots finis sur l’alphabet {a, b, c}. Soit → une relation binaire sur A∗ telle que : w → w 0 ssi (w = w1aaw2 et w 0 = w1bcw2) ou (w = w1bbw2 et w 0 = w1acw2) ou (w = w1cccw2 et w 0 = w1acw2) Donc w se r´eduit `a w 0 si w 0 est obtenu de w en rempla¸cant ou bien un sous-mot aa par bc, ou bien un sous-mot bb par ac ou bien un sous-mot ccc par ac. Construisez un plongement monotone dans un ordre bien fond´e qui montre la terminaison de ce syst`eme de r´eduction. Suggestion : on peut commencer par remarquer que la derni`ere r`egle diminue le nombre de caract`eres. Exercice 9.19 Soit A = {0, 1} ∗ l’ensemble des mots finis sur l’alphabet {0, 1}. Si w est un mot on d´enote par |w| sa longueur. Soit → une relation binaire sur A telle que : w → w 0 ssi ∃ w1, w2 ∈ A (w = w101w2 et w 0 = w1100w2) En d’autres termes, un pas de r´e´ecriture revient `a remplacer un sous-mot 01 par le mot 100. 1. Trouvez deux fonctions fi : N → N, i = 0, 1 sur les nombres naturels N = {0, 1, 2, 3, . . .} telles que : A Si n > n0 alors fi(n) > fi(n 0 ) pour i = 0, 1. B Pour tout n, f1(f0(n)) > f0(f0(f1(n))). 2. On d´efinit une fonction µ : A → N par µ() = 0, µ(wi) = fi(µ(w)) pour i = 0, 1 Montrez que µ est un plongement monotone du syst`eme de r´e´ecriture (A,→) dans l’ordre bien fond´e (N, >). Suggestion Montrez par r´ecurrence sur |w2| que µ(w101w2) > µ(w1100w2). 3. Supposons que : w0 → w1 → · · · → wn et |w0| = m. En d’autres termes, il y a n pas de r´eduction `a partir d’un mot de longueur m. (a) Utilisez le plongement monotone µ pour donner une borne sup´erieure `a n en fonction de m. (b) D´emontrez ou donnez un contre-exemple `a l’assertion suivante : n ≤ 2m3+4m+3. 58Exercice 9.20 (ordre produit) Soient (Ai , >i) pour i = 1, . . . , n des ordres bien fond´es. On d´efinit une relation > sur le produit cart´esien A1 × · · · × An par (a1, . . . , an) > (a 0 1 , . . . , a0 n ) si ai ≥i a 0 i , i = 1, . . . , n et ∃ i ∈ {1, . . . , n} ai >i a 0 i (1) La relation > est-elle un ordre bien fond´e ? (2) Comparez la relation > `a l’ordre lexicographique sur le produit d´efini dans l’exercice 9.17. Exercice 9.21 Consid´erons les programmes while : while m 6= n do if m > n then m := m − n else n := n − m while m 6= n do if m > n then m := m − n else h := m; m := n; n := h Dire si les programmes terminent quand les variables varient sur les nombres naturels positifs. Exercice 9.22 Soit A = {a, b} ∗ l’ensemble des mots finis sur l’alphabet {a, b}. Soit → une relation binaire sur A telle que : w → w 0 ssi w = w1abw2 et w 0 = w1bbaw2 Donc w se r´eduit `a w 0 si w 0 est obtenu de w en rempla¸cant un sous-mot ab avec bba. Montrez ou invalidez les assertions suivantes (il est conseill´e de s’appuyer sur les r´esultats d´emontr´es dans le cours) : 1. Le syst`eme de r´eduction (A,→) est `a branchement fini. 2. Le syst`eme termine. 3. Le syst`eme est localement confluent. 4. Le syst`eme est confluent. 9.3 Lemme de K¨onig Soit N l’ensemble des nombres naturels et N∗ l’ensemble des mots finis de nombres naturels. On va repr´esenter un arbre comme l’ensemble des chemins possibles dans l’arbre. Formellement, on dit qu’un arbre D est un sous-ensemble de N∗ qui satisfait les conditions suivantes : (1) Si w ∈ D et w 0 est un pr´efixe de w (c’est-`a-dire ∃ w 00 w = w 0w 00) alors w 0 ∈ D. (2) Si wi ∈ D et j < i alors wj ∈ D. On peut ainsi repr´esenter des arbres infinis avec un nombre d´enombrable de noeuds et mˆeme des arbres avec des noeuds qui ont un nombre d´enombrable de fils. On dit qu’un arbre est `a branchement fini si chaque noeud a un nombre fini de fils. Remarque 9.23 Parfois il est commode d’ajouter des symboles L sur les noeuds d’un arbre. Dans ce cas on d´efinit un arbre ´etiquet´e comme une fonction partielle t : N∗ * L dont le domaine de d´efinition est un arbre. 59Lemme 9.24 (K¨onig) Tout arbre `a branchement fini qui comporte un nombre infini de noeuds admet un chemin infini. Idee de la preuve ´ . On utilise le mˆeme argument mentionn´e dans la preuve de la proposition 9.9(1). Soit π = i1 · · ·ik ∈ D un chemin tel que le sous-arbre de racine π est infini. Comme D est `a branchement fini il existe un ik+1 tel que πik+1 ∈ D et le sous-arbre de racine πik+1 est infini. En continuant ainsi on peut construire un chemin infini dans D. • 9.4 Ordre sur les mots On donne un premier exemple d’application du lemme de K¨onig. Soit (Σ, >) un ensemble bien fond´e. Soit Σ∗ l’ensemble des mots finis sur Σ. On ´ecrit w  w 0 si on peut obtenir w 0 de w en rempla¸cant un caract`ere a ∈ Σ par un mot w 00 tel que tous les caract`eres dans w 00 sont plus petits que a dans la relation >. Par exemple, si a > b > c alors on obtient aab  abcbcb en rempla¸cant le deuxi`eme caract`ere a par bcbc. (1) On remarque que  n’est pas transitive. Par exemple, aab()()bac mais aab 6 bac. Soit donc + la clˆoture transitive de . (2) Ajoutons `a l’alphabet Σ un caract`ere > qui domine tous les autres et un caract`ere ⊥ qui est domin´e par tous les autres. Maintenant, toute suite w0  w1  w2  · · · peut ˆetre r´e´ecrite comme >  w0  w1  w2  · · · en ajoutant > au d´ebut de la suite. Aussi, en supposant l’ordre alphab´etique sur Σ, la suite bc  defc  defg  dhifg  difg se r´e´ecrit en >  bc  defc  defg  dhifg  d⊥ifg . Ainsi le caract`ere h qui est remplac´e par le mot vide dans la premi`ere suite est remplac´e par ⊥ dans la deuxi`eme. (3) On remarquera que le d´eveloppement se repr´esente ais´ement par un arbre ´etiquet´e. En effet on a ajout´e le caract`ere > pour commencer le calcul `a la racine d’un arbre et le caract`ere ⊥ pour couvrir le cas o`u un caract`ere est remplac´e par le mot vide. A partir de cette repr´esentation il est facile de voir que l’ordre + est bien fond´e. Il suffit de montrer que la relation  n’admet pas de suite descendante infinie. Si une telle suite existait, il serait possible de lui associer un arbre comme on vient de le voir. Or cet arbre est `a branchement fini car un caract`ere est remplac´e par un nombre fini de caract`eres. Par K¨onig, l’arbre en question doit comporter un chemin infini. Mais dans ce chemin on devrait trouver une suite infinie de caract`eres a > b > c > · · · ce qui contredit l’hypoth`ese. Exercice 9.25 Soit N∗ l’ensemble des mots finis sur les nombres naturels avec l’ordre habituel. Montrez la terminaison du syst`eme : u(i + 1)v → uiiv pour u, v ∈ N∗ 609.5 Ordre sur les multi-ensembles Un multi-ensemble est un ensemble dont les ´el´ements peuvent apparaˆıtre avec une certaine multiplicit´e. D´efinition 9.26 Un multi-ensemble M sur un ensemble A est une fonction M : A → N. Un multi-ensemble est fini si {x | M(x) 6= 0} est fini. On utilise la notation {| |} pour les multi-ensembles. Par exemple, {|a, b, a|} est le multiensemble compos´e de deux occurrences de a et une de b. Certaines notations, op´erations et relations disponibles sur les ensembles peuvent s’adapter aux multi-ensembles. Par exemple : x ∈ M si M(x) > 0 M ⊆ N si ∀ x ∈ A M(x) ≤ N(x) (M ∪ N)(x) = M(x) + N(x) (M\N)(x) = M(x) . − N(x) o`u n . − m = n − m si n − m ≥ 0 et 0 autrement. Si A est un ensemble on d´enote avec M(A) l’ensemble des multi-ensembles finis sur A. Remarque 9.27 Un multi-ensemble fini sur A peut ˆetre repr´esent´e par un mot fini sur A. Cette repr´esentation est unique si l’on suppose que l’op´eration de concat´enation est commutative. D´efinition 9.28 Soient (A, >) un ordre strict et M, N ∈ M(A). On ´ecrit : M >M(A) N s’ils existent X, Y ∈ M(A) tels que X 6= ∅, X ⊆ M, N = (M\X) ∪ Y et ∀ y ∈ Y ∃ x ∈ X x > y. Par exemple, si A = N avec l’ordre usuel alors {|5, 3, 1, 1|} >M(N) {|4, 3, 3, 1|}. Pour v´erifier l’in´egalit´e on peut choisir X = {|5, 1|} et Y = {|4, 3|} mais on peut aussi choisir X = {|5, 3, 3, 1|} et Y = {|4, 3, 3, 1|}. Proposition 9.29 Si > est un ordre strict sur A alors >M(A) est un ordre strict sur M(A). Idee de la preuve ´ . Il faut v´erifier X 6>M(A) X et que >M(A) est transitif. La deuxi`eme propri´et´e demande un peu de travail. Supposons que : X ∪ {|x1, . . . , xm|} >M(A) X ∪ {|y1, . . . , yn|} = X0 ∪ {|w1, . . . , wp|} >M(A) X0 ∪ {|z1, . . . zq|} On peut d´ecomposer X en X1 ∪ X2 et {|y1, . . . , yn|} en Y1 ∪ Y2 pour que X0 = X1 ∪ Y1 et {|w1, . . . , wp|} = X2 ∪ Y2. Donc on obtient X1 ∪ X2 ∪ {|x1, . . . , xm|} >M(A) X1 ∪ X2 ∪ Y1 ∪ Y2 >M(A) X1 ∪ Y1 ∪ {|z1, . . . , zq|} Maintenant il suffit de v´erifier que chaque ´el´ement dans Y1 ∪ {|z1, . . . , zq|} est domin´e par un ´el´ement dans X2 ∪ {|x1, . . . , xm|}. • Exercice 9.30 On ´ecrit X >1 Y si Y est obtenu de X en rempla¸cant un ´el´ement de X par un multi-ensemble d’´el´ements strictement plus petits. Montrez que : (1) la relation >1 n’est pas transitive (mˆeme si > est total) et (2) la clˆoture transitive de >1 est ´egale `a >M(A) . 61Proposition 9.31 L’ordre (A, >) est bien fond´e si et seulement si l’ordre (M(A), >M(A) ) est bien fond´e. Idee de la preuve ´ . (⇐) Si a0 > a1 > · · · est une suite d´ecroissante dans A alors {|a0|} >M(A) {|a1|} >M(A) . . . en est une dans M(A). (⇒) Il suffit de montrer que >1 est bien fond´e. L’argument est similaire `a celui utilis´e pour l’ordre sur les mots et il fait aussi appel au lemme de K¨onig. • Exercice 9.32 Soit N∗ les mots finis de nombres naturels. Montrez la terminaison du syst`eme : u(i + 1)v → iviui pour u, v ∈ N∗ 62A TD : Calcul propositionnel 1 (m´ethode de Davis Putnam) La m´ethode de Davis Putnam permet de d´ecider si une formule en forme normale conjonctive est satisfiable. On repr´esente une formule A en CNF comme un ensemble (´eventuellement vide) de clauses {C1, . . . , Cn} et une clause C comme un ensemble (´eventuellement vide) de litt´eraux. Dans cette repr´esentation, on d´efinit la substitution [b/x]A d’une valeur bool´eenne b ∈ {0, 1} dans A comme suit : [b/x]A = {[b/x]C | C ∈ A et [b/x]C 6= 1} [b/x]C =    1 si (b = 1 et x ∈ C) ou (b = 0 et ¬x ∈ C) C\{`} si (b = 1 et ` = ¬x ∈ C) ou (b = 0 et ` = x ∈ C) C autrement On d´efinit une fonction DP qui agit r´ecursivement sur une formule A en CNF dans la repr´esentation d´ecrite ci-dessus : function DP(A) = case (1) A = ∅ : true (2) ∅ ∈ A false (3) {x,¬x} ⊆ C ∈ A : DP(A\{C}) (4) {x} ∈ A : DP([1/x]A) (5) {¬x} ∈ A : DP([0/x]A) (6) else : choisir x dans A; DP([0/x]A) or DP([1/x]A) Dans (1), nous avons une conjonction du vide qui par convention est ´equivalente `a true. Dans (2), A contient une clause vide. La disjonction du vide ´etant ´equivalente `a false, la formule A est aussi ´equivalente `a false. Dans (3), une clause contient un litt´eral et sa n´egation et elle est donc ´equivalente `a true. Dans (4) et (5), A contient une clause qui est constitu´ee uniquement d’une variable ou de sa n´egation. Ceci permet de connaˆıtre la valeur de la variable dans toute affectation susceptible de satisfaire la formule. Dans (6), nous consid´erons les deux valeurs possibles d’une affectation d’une variable. Exercice A.1 Appliquez DP aux formules {{x,¬y}, {¬x, y}} et {{x, y}, {¬x, y}, {x,¬y}, {¬x,¬y}}. Exercice A.2 (1) Montrez que si A est une fonction en CNF alors la fonction DP termine. (2) Montrez que DP(A) retourne true (false) si et seulement si A est satisfiable (ne l’est pas). Exercice A.3 Fait : toute formule peut ˆetre transform´ee en CNF. Expliquez comment utiliser la m´ethode de Davis-Putnam pour d´ecider la validit´e d’une formule. Exercice A.4 Modifiez la fonction DP pour que, si la formule A est satisfiable, elle retourne une affectation v qui satisfait A. Exercice∗ A.5 R´efl´echissez aux structures de donn´ees et aux op´erations n´ecessaires `a la mise en oeuvre de l’algorithme en Java. 63B TD : Calcul Propositionnel 2 (´equivalence et d´efinissabilit´e) Exercice B.1 Montrez les ´equivalences logiques : (A ∨ 0) ≡ A, (A ∨ 1) ≡ 1, (A ∨ B) ≡ (B ∨ A), ((A ∨ B) ∨ C) ≡ (A ∨ (B ∨ C)), (A ∨ A) ≡ A (A ∧ 0) ≡ 0, (A ∧ 1) ≡ A, (A ∧ B) ≡ (B ∧ A), ((A ∧ B) ∧ C) ≡ (A ∧ (B ∧ C)), (A ∧ A) ≡ A, (A ∧ B) ∨ C ≡ (A ∨ C) ∧ (B ∨ C), (A ∨ B) ∧ C ≡ (A ∧ C) ∨ (B ∧ C), ¬¬A ≡ A, ¬(A ∨ B) ≡ ((¬A) ∧ (¬B)), ¬(A ∧ B) ≡ ((¬A) ∨ (¬B)) . Exercice B.2 (1) Montrez l’´equivalence logique : (A ∧ B) ∨ (¬A ∧ B) ≡ B (11) (2) On peut appliquer cette ´equivalence logique pour simplifier une forme normale disjonctive. Par exemple, consid´erez la fonction f(x, y, z) d´efinie par le tableau de v´erit´e : x\yz 00 01 11 10 0 0 1 1 0 1 1 1 1 1 Calculez la forme normale disjonctive de f et essayez de la simplifier en utilisant l’´equivalence logique (11). (3) La pr´esentation du tableau de v´erit´e n’est pas arbitraire. . . Proposez une m´ethode graphique pour calculer une forme normale disjonctive simplifi´ee. Exercice B.3 Soit f une fonction sur les nombres naturels. Dire qu’un probl`eme est d´ecid´e en O(f), signifie qu’on dispose d’un algorithme A et de n0, k nombres naturels tels que pour toute entr´ee dont la taille n est sup´erieure `a n0, le temps de calcul de A sur l’entr´ee en question est inf´erieure `a k · f(n). (1) Montrez que la satisfaction d’une formule en DNF et la validit´e d’une formule en CNF peuvent ˆetre d´ecid´ees en O(n). (2) Soit pair (x1, . . . , xn) = (Σi=1,...,nxi) mod 2 la fonction qui calcule la parit´e d’un vecteur de bits. Montrez que la repr´esentation en DNF ou CNF de cette fonction est en O(2n ). Peut-on appliquer l’´equivalence logique (11) pour simplifier la repr´esentation ? Exercice B.4 (if-then-else) La fonction ternaire ITE est d´efinie par ITE(1, x, y) = x et ITE(0, x, y) = y. Montrez que toute fonction f : 2 n → 2, n ≥ 0 s’exprime par composition de la fonction ITE et des (fonctions) constantes 0 et 1. Exercice B.5 L’or exclusif ⊕ (xor) est d´efini par A ⊕ B ≡ (A ∧ ¬B) ∨ (¬A ∧ B). Montrez que : (1) ⊕ est associatif et commutatif. (2) x ⊕ 0 ≡ x et x ⊕ x ≡ 0. (3) Toute fonction bool´eenne f : 2 n → 2 peut ˆetre repr´esent´ee `a partir de 1, ∧ et ⊕. 64Exercice B.6 (nand,nor) Les fonctions binaires NAND et NOR sont d´efinies par NAND(x, y) = NOT(AND(x, y)) et NOR(x, y) = NOT(OR(x, y)). Montrez que toute fonction f : 2 n → 2, n ≥ 0, s’exprime comme composition de la fonction NAND (ou de la fonction NOR). Montrez que les 4 fonctions unaires possibles n’ont pas cette propri´et´e et que que parmi les 16 fonctions binaires possibles il n’y en a pas d’autres qui ont cette propri´et´e. 65C TD : Calcul Propositionnel 3 (clauses de Horn et circuits combinatoires) Exercice C.1 Une clause de (Alfred) Horn est une clause (c’est-`a-dire une disjonction de litt´eraux) qui contient au plus un litt´eral positif. Une formule de Horn est une formule en CNF dont les clauses sont des clauses de Horn. (1) Montrez que toute formule de Horn est ´equivalente `a la conjonction (´eventuellement vide) de clauses de Horn de la forme : (1) x (2) ¬x1 ∨ · · · ∨ ¬xn (3) ¬x1 ∨ · · · ∨ ¬xn ∨ xn+1 o`u n ≥ 1 et xi 6= xj si i 6= j. Dans ce cas on dit que la formule de Horn est r´eduite. (2) Montrez qu’une formule de Horn r´eduite qui ne contient pas de clauses de la forme (1) ou qui ne contient pas de clauses de la forme (2) est satisfiable. (3) Donnez une m´ethode efficace (temps polynomial) pour d´eterminer si une formule de Horn est satisfiable. Exercice C.2 Un d´ecodeur est un circuit avec n entr´ees xn−1, . . . , x0 et 2 n sorties y2n−1, . . . , y0 tel que yi = 1 ssi i = (xn−1 · · · x0)2 R´ealisez un tel circuit. Exercice C.3 Un additionneur est un circuit bool´een avec 2n entr´ees xn−1, yn−1, . . . , x0, y0 et n + 1 sorties rn, sn−1, . . . , s0 tel que (xn−1 · · · x0)2 + (yn−1 · · · y0)2 = (rnsn−1 · · · s0)2 On peut r´ealiser un additionneur en utilisant l’algorithme standard qui propage la retenue de droite `a gauche. (1) R´ealisez un circuit A avec 3 entr´ees x, y, r et deux sorties s, r0 tel que (r 0 s)2 = (x)2 + (y)2 + (r)2 (2) Expliquez comment inter-connecter n circuits A pour obtenir un additionneur sur n bits. (3) Montrez que dans le circuit en question le nombre de portes et la longueur du chemin le plus long sont proportionnels `a n. Exercice∗ C.4 Le but de cet exercice est de r´ealiser un additionneur dont le nombre de portes est encore polynomiale en n mais dont la longueur du chemin le plus long est proportionnelle `a lg(n). Pour ´eviter que la retenue se propage `a travers tout le circuit, l’id´ee est d’anticiper sa valeur. Ainsi pour additionner 2 vecteurs de longueur n, on additionne les premiers n/2 bits (ceux de poids faible) et en mˆeme temps on additionne les derniers n/2 bits (ceux de poids fort) deux fois (en parall`ele) une fois avec retenue initiale 0 et une fois avec retenue initiale 1. On applique cette m´ethode r´ecursivement sur les sous-vecteurs de longueur n/4, n/8, . . . selon le principe diviser pour r´egner. (1) Construisez explicitement un tel circuit pour n = 4. (2) D´eterminez en fonction de n le nombre de portes et la longueur du chemin le plus long du circuit obtenu. 66D TD : Syst`eme de preuve de Gentzen et compacit´e Rappel : voici le syst`eme de preuve de Gentzen. (Ax ) A, Γ ` A, ∆ (∧ `) A, B, Γ ` ∆ A ∧ B, Γ ` ∆ (` ∧) Γ ` A, ∆ Γ ` B, ∆ Γ ` A ∧ B, ∆ (∨ `) A, Γ ` ∆ B, Γ ` ∆ A ∨ B, Γ ` ∆ (` ∨) Γ ` A, B, ∆ Γ ` A ∨ B, ∆ (¬ `) Γ ` A, ∆ ¬A, Γ ` ∆ (` ¬) A, Γ ` ∆ Γ ` ¬A, ∆ Exercice D.1 Montrez que : (1) Un s´equent A, Γ ` A, ∆ est valide. (2) Pour chaque r`egle d’inf´erence la conclusion est valide si et seulement si les hypoth`eses sont valides. Exercice D.2 (sous-formule) Montrez que si un s´equent est d´erivable alors il y a une preuve du s´equent qui contient seulement des sous formules de formules dans le s´equent. Exercice∗ D.3 (affaiblissement) Montrez que si le s´equent Γ ` ∆ est d´erivable alors le s´equent Γ ` A, ∆ l’est aussi. Exercice D.4 (implication) Dans le syst`eme de Gentzen on peut donner un traitement direct de l’implication : (→`) Γ ` A, ∆ B, Γ ` ∆ A → B, Γ ` ∆ (`→) Γ, A ` B, ∆ Γ ` A → B, ∆ D´emontrez la correction et compl´etude du syst`eme de Gentzen ´etendu avec ces r`egles. Exercice D.5 Montrez que les r`egles pour la disjonction et l’implication sont d´erivables des r`egles pour la conjonction et la n´egation en utilisant les ´equivalences : A ∨ B ≡ ¬(¬A ∧ ¬B) et A → B ≡ ¬A ∨ B. Exercice D.6 (coupure) La r`egle de coupure (ou cut) est : (coupure) A, Γ ` ∆ Γ ` A, ∆ Γ ` ∆ Montrez que le syst`eme de Gentzen ´etendu avec cette r`egle est toujours correct (et complet). Exercice D.7 Soit T un ensemble de formules. On ´ecrit T |= A si pour toute affectation v, si v satisfait T alors v satisfait A. Montrez que si T |= A alors il existe T0 sous-ensemble fini de T tel que T0 |= A. Suggestion : utilisez le th´eor`eme de compacit´e. 67E TD : R´esolution Exercice E.1 Montrez que la r`egle d’inf´erence suivante est valide : A ∨ ¬C B ∨ C A ∨ B (12) Exercice E.2 Pour repr´esenter les formules en CNF on adopte la mˆeme notation ensembliste utilis´ee pour d´ecrire la m´ethode de Davis-Putnam. – Une clause C est un ensemble de litt´eraux. – Une formule A est un ensemble de clauses. Nous consid´erons la r`egle : A ∪ {C ∪ {x}} ∪ {C 0 ∪ {¬x}} x /∈ C ¬x /∈ C 0 A ∪ {C ∪ {x}} ∪ {C 0 ∪ {¬x}} ∪ {C ∪ C 0} (13) Dans la suite on appelle (13) r`egle de r´esolution. 22 L’effet de l’application de la r`egle consiste `a ajouter une nouvelle clause C ∪ C 0 qu’on appelle r´esolvant des deux clauses C ∪ {x} et C 0 ∪ {¬x}. (1) Montrez que l’hypoth`ese est logiquement ´equivalente `a la conclusion. (2) Conclure que si la conclusion n’est pas satisfiable alors l’hypoth`ese n’est pas satisfiable. En particulier, si la conclusion contient la clause vide alors l’hypoth`ese n’est pas satisfiable. Fait Si une formule A en CNF n’est pas satisfiable alors la r`egle de r´esolution permet de d´eriver une formule A0 avec une clause vide. On dit que la r`egle de r´esolution est compl`ete pour la r´efutation, c’est-`a-dire pour la d´erivation de la clause vide. La m´ethode peut ˆetre impl´ement´ee it´erativement. A chaque it´eration on ajoute toutes les clauses qui sont un r´esolvant de deux clauses. Cette it´eration termine forcement car le nombre de clauses qu’on peut construire est fini. Parfois, il convient de repr´esenter la d´erivation comme un graphe dirig´e acyclique (ou DAG pour directed acyclic graph) dont les noeuds sont ´etiquet´es par les clauses. Initialement on a autant de noeuds que de clauses et pas d’arˆetes. Chaque fois qu’on applique la r`egle de r´esolution (13) on introduit un nouveau noeud qui est ´etiquet´e avec la clause r´esolvant C ∪ C 0 et deux nouvelles arˆetes qui vont des noeuds ´etiquet´es avec les clauses C ∪ {x} et C 0 ∪ {¬x} vers le noeud ´etiquet´e avec la clause C ∪ C 0 . Exercice E.3 Soit A une formule en CNF et C une clause. Expliquez comment utiliser la m´ethode de r´esolution pour ´etablir si l’implication A → C est valide. Exercice E.4 Construire la formule A en CNF qui correspond au principe du nid de pigeon avec 2 pigeons et 1 nid. Appliquez la r`egle de r´esolution. Mˆeme probl`eme avec 2 pigeons et 2 nids. Exercice E.5 Soit A une formule en CNF avec m variables et n clauses. Montrez qu’il y a au plus m · (n · (n − 1)/2) fa¸cons d’appliquer la r`egle de r´esolution. Exercice E.6 Un exercice de r´evision. On consid`ere les formules en CNF suivantes : 22Sans les conditions x /∈ C et ¬x /∈ C 0 on pourrait par exemple ‘simplifier’ les clauses {x} et {¬x} en {x,¬x}. 681. ¬x ∨ (¬y ∨ x) 2. (x ∨ y ∨ ¬z) ∧ (x ∨ y ∨ z) ∧ (x ∨ ¬y) ∧ ¬x. 3. (x ∨ y) ∧ (z ∨ w) ∧ (¬x ∨ ¬z) ∧ (¬y ∨ ¬w). Pour chaque formule : 1. Si la formule est valide calculez une preuve de la formule dans le syst`eme de Gentzen. 2. Si la formule est satisfiable mais pas valide calculez une affectation qui satisfait la formule en utilisant la m´ethode de Davis-Putnam. 3. Si la formule n’est pas satisfiable d´erivez la clause vide en utilisant la m´ethode par r´esolution. 69F TD : Langages formels et automates finis Exercice F.1 Montrez que pour tout langage L, L ∗ = (L ∗ ) ∗ . Exercice F.2 Montrez qu’il existe des langages L1 et L2 tels que (L1 ∪ L2) ∗ 6= L ∗ 1 ∪ L ∗ 2 . Exercice F.3 Montrez qu’il existe des langages L1 et L2 tels que (L1 · L2) ∗ 6= L ∗ 1 · L ∗ 2 . Exercice F.4 Pour chacun des langages suivants, construire un automate fini non d´eterministe qui l’accepte : 1. Les repr´esentations binaires des nombres pairs. 2. Le langage des mots sur l’alphabet {a, b} contenant ou bien la chaˆıne aab ou bien la chaˆıne aaab. 3. Le langage des mots sur l’alphabet {0, 1} dont le troisi`eme caract`ere de droite existe et est ´egale `a 1. Construire des automates d´eterministes pour les langages d´ecrits ci-dessus. Exercice∗ F.5 Soient M un AFD qui accepte un langage L et N1, N2 deux AFN qui acceptent les langages L1, L2, respectivement (sur un alphabet Σ fix´e). 1. Montrez qu’on peut construire un AFD qui accepte le langage compl´ementaire Σ ∗\L. 2. Montrez qu’on peut construire un AFN qui accepte le langage L1 ∪L2 et le langage it´er´e (L1) ∗ . 3. Conclure que la classe des langages accept´es par un AFD est stable par union, intersection, compl´ementaire et it´eration. 70G TD : Calculabilit´e 1 (machines de Turing et ´enum´erations) Exercice G.1 Donnez la description formelle d’une MdT qui d´ecide le langage {w]w | w ∈ {0, 1} ∗}. Exercice G.2 Donnez la description formelle d’une MdT qui d´ecide le langage des mots sur l’alphabet {0} dont la longueur est une puissance de 2 : 2 0 , 2 1 , 2 2 , . . . Exercice G.3 D´ecrivez informellement une MdT qui d´ecide le langage : {a i b j c k | i · j = k et i, j, k ≥ 1} . Exercice G.4 Soit Σ = {0, 1} et suc : Σ∗ → Σ ∗ la fonction ‘successeur’ en base 2 telle que : (suc(w))2 = (w)2 + 1 Montrez que suc est r´ecursive. Exercice G.5 On peut ´enum´erer les couples de nombres naturels en proc´edant ‘par diagonales’ : (0, 0), (1, 0),(0, 1), (2, 0),(1, 1),(0, 2), (3, 0). . . Montrez que la fonction hm, ni = (m + n)(m + n + 1)/2 + n est une bijection entre N × N et N. D´ecrire un algorithme pour calculer la fonction inverse. Exercice G.6 On d´efinit les fonctions h ik : Nk → N pour k ≥ 2 : hm, ni2 = hm, ni hn1, . . . , nkik = hhn1, . . . , nk−1ik−1, nki si k ≥ 3 Montrez que les fonctions h ik sont des bijections. 71H TD : Calculabilit´e 2 (´enum´erations et ind´ecidabilit´e) Exercice H.1 On consid`ere l’ensemble N∗ des mots finis de nombres naturels. Notez que N∗ est en correspondance bijective avec S k≥0 Nk . D´efinissez une bijection entre N∗ et N. Exercice H.2 Soit Σ = {a, b, . . . , z} un alphabet fini. On peut ´enum´erer les ´el´ements de Σ ∗ comme suit : , a, b, . . . , z, aa, . . . , az, ba, . . . , bz, za, . . . , zz, aaa, . . . Si Σ contient k ´el´ements on aura k 0 mots de longueur 0, k mots de longueur 1, k 2 mots de longueur 2, . . . D´efinissez une bijection entre Σ ∗ et N. Exercice∗ H.3 (1) Montrez qu’un langage est semi-d´ecidable si et seulement si il est le domaine de d´efinition d’une fonction partielle r´ecursive. (2) On dit qu’un langage L ⊆ Σ ∗ est r´ecursivement ´enum´erable s’il est l’image d’une fonction partielle r´ecursive. Montrez qu’un langage L est r´ecursivement ´enum´erable si et seulement si il est semi-d´ecidable. Suggestion : Soit M une MdT et w0, w1, w2, . . . une suite d’entr´ees. On peut simuler M sur w0 pour 0 pas, sur w0 pour 1 pas, sur w1 pour 0 pas, sur w0 pour 2 pas, sur w1 pour 1 pas, sur w2 pour 0 pas,. . . Exercice∗ H.4 (1) Montrez que les langages accept´es par un AFN sont d´ecidables. (2) Montrez que la collection des langages d´ecidables est stable par rapport aux op´erations d’union, compl´ementaire, concat´enation et it´eration. (3) Montrez que la collection des langages semi-d´ecidables est stable par rapport aux op´erations d’union et concat´enation. Suggestion : utilisez le non-d´eterminisme. Exercice H.5 Montrez ou invalidez les assertions suivantes : 1. Il y a une MdT qui accepte les mots sur l’alphabet {0, 1} qui contiennent autant de 0 que de 1 (si la MdT existe, il suffira d’en donner une description informelle). 2. Rappel : si A et B sont deux langages, on ´ecrit A ≤ B s’il existe une r´eduction de A `a B. Si A est semi-d´ecidable et A ≤ Ac alors A est d´ecidable. 3. L’ensemble des (codages de) MdT qui reconnaissent un langage fini est d´ecidable. Exercice H.6 Montrez ou donnez un contre-exemple aux assertions suivantes : 1. L’ensemble des (codages de) MdT qui terminent sur le mot vide est d´ecidable. 2. L’ensemble des (codages de) MdT qui divergent sur le mot vide est semi-d´ecidable. 3. L’ensemble des (codages de) MdT qui terminent sur le mot vide en 10100 pas de calcul est d´ecidable. 72I TD : Complexit´e (r´eductions polynomiales) Exercice I.1 Un graphe (non-dirig´e) G est compos´e d’un ensemble fini non-vide de noeuds N et d’un ensemble A d’arˆetes qui connectent les noeuds. Formellement, une arˆete est un ensemble {i, j} de noeuds de cardinalit´e 2. On dit que deux noeuds sont adjacents s’il y a une arˆete qui les connecte. Probl`eme du coloriage Etant donn´e un graphe ´ G = (N, A) et un nombre naturel k ≥ 2 on d´etermine s’il existe une fonction c : N → {1, . . . , k} telle que si i, j sont deux noeuds adjacents alors c(i) 6= c(j). 23 Probl`eme de l’emploi du temps Etant donn´e (i) un ensemble d’´etudiants ´ E = {1, . . . , n} (n ≥ 2), (ii) un ensemble de cours C = {1, . . . , m} (m ≥ 2), (iii) un ensemble de plages horaires P = {1, . . . , p} (p ≥ 2) et (iv) une relations binaire R telle que (i, j) ∈ R si et seulement si l’´etudiant i suit le cours j on d´etermine s’il existe une fonction emploi du temps edt : C → P telle que si un ´etudiant suit deux cours diff´erents j 6= j 0 alors edt(j) 6= edt(j 0 ). D´emontrez ou donnez un contre-exemple aux assertions suivantes : 1. Le probl`eme de l’emploi du temps se r´eduit au probl`eme du coloriage. 2. Le probl`eme de l’emploi du temps se r´eduit en temps polynomial au probl`eme du coloriage. 3. Le probl`eme du coloriage est dans NP. Exercice I.2 Soit G un graphe non-dirig´e (cf. exercice I.1). Un k-clique est un ensemble de k noeuds de G qui ont la propri´et´e que chaque couple de noeuds est connect´ee par une arˆete. Le langage CLIQUE est compos´e de couples hG, ki o`u (i) G est le codage d’un graphe, (ii) k est un nombre naturel et (iii) G contient comme sous-graphe un k-clique. Le langage 3-SAT est compos´e de formules en forme normale conjonctive o`u chaque clause contient 3 litt´eraux. 1. Montrez que le langage CLIQUE est dans NP. 2. On souhaite construire une r´eduction polynomiale de 3-SAT `a CLIQUE. Si la formule A contient k clauses alors le graphe associ´e GA contient k groupes de noeuds o`u chaque groupe est compos´e de 3 noeuds et chaque noeud est ´etiquet´e par un litt´eral. Par exemple, si la clause est (x ∨ ¬y ∨ z) alors on aura un groupe de 3 noeuds ´etiquet´es avec x, ¬y et z. (a) D´ecrivez les arˆetes de GA de fa¸con `a ce que le graphe GA contienne une k-clique si et seulement si la formule A est satisfiable et dessinez le graphe GA dans le cas o`u A = (x ∨ y) ∧ (¬x ∨ ¬y) ∧ (¬x ∨ y) ∧ (x ∨ ¬y) (la formule en question comporte seulement deux litt´eraux par clause mais la construction du graphe GA s’applique aussi bien `a ce cas). (b) Quelle conclusion peut-on tirer de la construction pr´ec´edente ? Motivez votre r´eponse : 23On peut voir les valeurs {1, . . . , k} comme des couleurs qu’on affecte aux noeuds, d’o`u le nom du probl`eme. 73i. Si 3-SAT est un probl`eme polynomiale d´eterministe alors CLIQUE est un probl`eme polynomiale d´eterministe. ii. CLIQUE est un probl`eme NP-complet. Exercice I.3 Soit A une matrice et b un vecteur `a coefficients dans Z. Le probl`eme de programmation lin´eaire enti`ere (ILP pour integer linear programming) consiste `a d´eterminer s’il existe un vecteur ~x `a coefficients dans Nm tel que A~x = ~b. 24 Ce probl`eme est dans NP. On utilise des notions d’alg`ebre lin´eaire pour montrer que si le probl`eme a une solution alors il en a une dont la taille est polynomiale dans la taille de la matrice A. Ensuite on peut appliquer la m´ethode standard qui consiste `a deviner un vecteur ~x et `a v´erifier qu’il est une solution. A partir de ce fait, le but de l’exercice est de montrer que le probl`eme est NP-complet par r´eduction du probl`eme SAT. Il peut ˆetre utile de consid´erer d’abord les probl`emes suivants. – Montrez qu’en introduisant des variables auxiliaires on peut exprimer la satisfaction d’une contrainte d’in´egalit´e comme un probl`eme d’ILP. – Montrez qu’on peut exprimer la contrainte x ∈ {0, 1}. – Montrez qu’on peut exprimer la contrainte x = y o`u x, y ∈ {0, 1}, 0 = 1 et 1 = 0. – Montrez comment coder la validit´e d’une clause (disjonction de litt´eraux). 24Comme pour le probl`eme du voyageur de commerce, le probl`eme ILP est souvent formul´e comme un probl`eme d’optimisation. Par exemple, il s’agit de minimiser une fonction lin´eaire ~cT ~x sous les contraintes A~x = ~b et ~x ≥ 0. 74J TD : Preuves par induction Exercice J.1 (transitivit´e) Soit R une relation binaire sur un ensemble. Sa clˆoture r´eflexive et transitive R∗ est la plus petite relation qui contient la relation identit´e, la relation R et telle que si (x, y),(y, z) ∈ R∗ alors (x, z) ∈ R∗ . Montrez que R∗ peut ˆetre vu comme un ensemble d´efini inductivement. Exercice J.2 Un graphe non-dirig´e G est compos´e d’un ensemble fini non-vide de noeuds N et d’un ensemble A d’arˆetes qui connectent les noeuds. Formellement, une arˆete est un ensemble {i, j} de noeuds de cardinalit´e 2. Le degr´e d’un noeud i dans un graphe est le nombre d’arˆetes qui le contiennent. Par exemple, un noeud isol´e a degr´e 0. D´emontrez en utilisant le principe de r´ecurrence l’assertion suivante : Chaque graphe avec au moins 2 noeuds contient 2 noeuds avec le mˆeme degr´e. Exercice J.3 Soit (N∪ {∞}, ≤) l’ensemble des nombres naturels avec un ´el´ement maximum ∞, 0 < 1 < 2 < . . . < ∞. Montrez que toute fonction monotone f sur cet ordre admet un point fixe, c’est-`a-dire un ´el´ement x tel que f(x) = x. Exercice J.4 On consid`ere l’ensemble de symboles fonctionnels Σ = {, a, b} o`u ar () = 0 et ar (a) = ar (b) = 1. Calculez l’ensemble librement engendr´e associ´e `a Σ. Cet ensemble est-il isomorphe `a un ensemble d´ej`a consid´er´e dans le cours ? Exercice J.5 Soient N l’ensemble des nombres naturels, Nk le produit cart´esien N×· · ·×N k fois et A = S {Nk | k ≥ 1}. Soit < une relation binaire sur A telle que : (x1, . . . , xn) < (y1, . . . , ym) ssi il existe k ≤ min(n, m) (x1 = y1, . . . , xk−1 = yk−1, xk < yk) Est-il vrai que < est un ordre bien fond´e ? Donner soit une preuve soit un contre-exemple. 75K TD : Terminaison 1 Exercice K.1 On consid`ere des programmes imp´eratifs while dont les variables prennent comme valeurs des nombres naturels. Montrez que le programme suivant termine o`u l’on sait que le test Φ termine et n’a pas d’effet de bord (c’est-`a-dire que l’´evaluation du test n’affecte pas la valeur associ´ee aux variables) : while u > l + 1 do (r := (u + l) div 2; if Φ then u := r else l := r) Exercice K.2 Soit ({a, b, c, d},→) un syst`eme de r´e´ecriture o`u →= {(c, a),(c, d),(d, c),(d, b)}. Dire si le syst`eme termine, est localement confluent, est confluent. Exercice K.3 (1) Utilisez le principe d’induction pour d´emontrer la terminaison de la fonction r´ecursive a telle que : a(0, n) = n + 1 a(m + 1, 0) = a(m, 1) a(m + 1, n + 1) = a(m, a(m + 1, n)) (2) Calculez `a l’aide d’un programme autant de valeurs a(n, n) que possible. Exercice K.4 On ´etend l’ordre lexicographique `a un produit A = A1 × · · · × An, n ≥ 3, d’ordres bien fond´es (Ai , >i) : (x1, . . . , xn) > (y1, . . . , yn) si ∃ k ≤ n (x1 = y1, . . . , xk−1 = yk−1 et xk >k yk) Montrez que (A, >) est bien fond´e. Exercice K.5 (ordre produit) Soient (Ai , >i) pour i = 1, . . . , n des ordres bien fond´es. On d´efinit une relation > sur le produit cart´esien A1 × · · · × An par (a1, . . . , an) > (a 0 1 , . . . , a0 n ) si ai ≥i a 0 i , i = 1, . . . , n et ∃ i ∈ {1, . . . , n} ai >i a 0 i (1) La relation > est-elle un ordre bien fond´e ? (2) Comparez la relation > `a l’ordre lexicographique sur le produit d´efini dans l’exercice K.4. 76L TD : Terminaison 2 Exercice L.1 Consid´erons les programmes while : while m 6= n do if m > n then m := m − n else n := n − m while m 6= n do if m > n then m := m − n else h := m; m := n; n := h Dire si les programmes terminent quand les variables varient sur les nombres naturels positifs. Exercice L.2 Soit A = {a, b} ∗ l’ensemble des mots finis sur l’alphabet {a, b}. Soit → une relation binaire sur A telle que : w → w 0 ssi w = w1abw2 et w 0 = w1bbaw2 Donc w se r´eduit `a w 0 si w 0 est obtenu de w en rempla¸cant un sous-mot ab avec bba. Montrez ou invalidez les assertions suivantes (il est conseill´e de s’appuyer sur les r´esultats d´emontr´es dans le cours) : 1. Le syst`eme de r´eduction (A,→) est `a branchement fini. 2. Le syst`eme termine. 3. Le syst`eme est localement confluent. 4. Le syst`eme est confluent. Exercice∗ L.3 Soient X, Y ∈ M(A). On ´ecrit X >1 Y si Y est obtenu de X en rempla¸cant un ´el´ement de X par un multi-ensemble d’´el´ements strictement plus petits. Montrez que la clˆoture transitive de >1 est ´egale `a >M(A) . Exercice L.4 Soit N∗ les mots finis de nombres naturels. Montrez la terminaison du syst`eme : u(i + 1)v → iviui pour u, v ∈ N∗ 77M TP : M´ethode de Davis-Putnam M.1 Objectifs Le but de ce TP est d’implanter en langage Java la proc´edure de Davis-Putnam : vous devez r´ealiser un programme qui prend en entr´ee une formule A en forme normale conjonctive, puis d´ecide si cette formule est satisfiable et si c’est le cas, renvoie une interpr´etation qui satisfait A. Le programme que vous allez r´ealiser va lire les formules `a traiter dans un fichier. Ce fichier respecte un format particulier : le format DIMACS. Le choix des structures de donn´ees `a employer est de votre ressort. Il est fortement conseill´e de bien r´efl´echir `a l’int´egralit´e de l’algorithme avant d’impl´ementer les classes et les m´ethodes dont vous aurez besoin. M.2 D´efinitions Rappelons quelques d´efinitions : – un litt´eral est une variable propositionnelle x ou sa n´egation ¬x ; – une clause est une disjonction de litt´eraux ; – une clause est une tautologie si et seulement si elle contient une variable x et sa n´egation ¬x. – une clause est dite unitaire si elle contient exactement un litt´eral, – une formule en forme normale conjonctive est une conjonction de clauses, – une affectation v est une fonction partielle des variables aux valeurs bool´eennes. M.3 Format DIMACS (http ://www.satlib.org/Benchmarks/SAT/satformat.ps) Par exemple, la formule : (x1 ∨ x3 ∨ ¬x4) ∧ (x4) ∧ (x2 ∨ ¬x3) peut ˆetre cod´ee par : c Exemple fichier au format CNF p cnf 4 3 1 3 -4 0 4 0 2 -3 – la ligne c est une ligne commentaire, – la ligne p sp´ecifie qu’il s’agit d’une formule en CNF avec 4 variables et 3 clauses, – les lignes suivantes sp´ecifient les clauses. Le litt´eral xi est cod´e par i et le litt´eral ¬xi par −i o`u i ≥ 1 (et dans ce cas i ≤ 4), – les clauses peuvent ˆetre sur plusieurs lignes et elles sont s´epar´ees par 0. Dans la page du cours, nous fournissons les fonctions afficheDimacs et ecrisDimacs, qui sont un exemple de lecture et d’´ecriture de fichiers DIMACS. Vous pourrez vous baser sur ces exemples pour r´ealiser l’interface de votre programme. La r´ealisation de l’algorithme de Davis-Putnam exige la manipulation de formules, de clauses et d’affectations. Vous devrez donc d´efinir les classes correspondantes ainsi que les m´ethodes dont vous aurez besoin. Voici quelques m´ethodes de base (il s’agit de simples suggestions, certaines m´ethodes pourront ˆetre omises ou ajout´ees selon vos besoins). 78Classe formule : – un constructeur qui lit une formule CNF en format DIMACS et construit la formule correspondante, – vide qui teste si la formule est vide, – affiche qui ´ecrit une formule dans un fichier au format DIMACS, – verifie qui prend en argument une affectation et qui renvoie true si la formule est vraie dans cette affectation. Classe clause : – appartient qui prend en argument un litt´eral et qui renvoie true s’il apparaˆıt dans la clause, – unitaire qui renvoie true si la clause ne contient qu’un seul litt´eral, – vide qui renvoie true si la clause est vide, – verifie qui prend en argument une affectation, et qui renvoie true si la clause est vraie dans cette affectation. Classe affectation : – fixe qui prend en argument un litt´eral et un bool´een et qui ajoute le litt´eral `a l’affectation avec la valeur du bool´een, – valeur qui prend en argument un litt´eral et renvoie sa valeur dans l’affectation. M.4 Davis-Putnam La m´ethode de Davis-Putnam permet de d´ecider si une formule en forme normale conjonctive est satisfiable. On repr´esente une formule A en CNF comme un ensemble (´eventuellement vide) de clauses {C1, . . . , Cn} et une clause C comme un ensemble (´eventuellement vide) de litt´eraux. Dans cette repr´esentation, on d´efinit la substitution [b/x]A d’une valeur bool´eenne b dans A comme suit : [b/x]A = {[b/x]C | C ∈ A et [b/x]C 6= 1} [b/x]C =    1 si (b = 1 et x ∈ C) ou (b = 0 et ¬x ∈ C) C\{`} si (b = 1 et ` = ¬x ∈ C) ou (b = 0 et ` = x ∈ C) C autrement La m´ethode de Davis-Putnam fonctionne comme suit. Au d´epart, A est une formule CNF : – si A est vide, retourner true. – si A contient la clause vide, retourner false. – si A contient une clause C qui contient `a la fois les litt´eraux x et ¬x, appeler la fonction davis-putnam sur la formule A \ C. – si A contient une clause {x} (resp. {¬x}), appeler la fonction davis-putnam sur [1/x]A (resp. [0/x]A). – sinon, choisir une variable x dans A. Appliquer la proc´edure DP r´ecursivement sur [1/x]A et [0/x]A. Retourner true si l’un des r´esultats est true, retourner false sinon. Vous devrez d´efinir des m´ethodes pour chacune de ces op´erations. La derni`ere, en particulier, doit ˆetre trait´ee avec attention : si la premi`ere affectation choisie ´echoue, il faut pouvoir revenir `a l’´etat courant pour tester la deuxi`eme ; une forme de sauvegarde ou de duplication sera donc n´ecessaire. 79Exercice M.1 1- Programmez une m´ethode estSatisfiable qui d´ecide si la formule est satis- fiable en utilisant la proc´edure de Davis-Putnam 2- Modifiez la fonction estSatisfiable pour que si la formule est satisfiable, elle affiche une affectation v qui satisfait A. M.5 Test Il s’agit maintenant de tester la correction et l’efficacit´e de votre programme. – Il est facile de v´erifier si une formule A est satisfiable par une affectation v. Exercice M.2 Programmez une m´ethode permettant ce test. – Il est plus compliqu´e de v´erifier qu’une formule n’est pas satisfiable. Une possibilit´e est de g´en´erer de fa¸con al´eatoire un certain nombre d’affectations et de v´erifier qu’elles ne satisfont pas la formule. Exercice M.3 Programmez une m´ethode qui r´ealise ce test sur une centaine d’affectations prises au hasard. – Sur quelles formules tester votre programme ? Il est pratique de disposer d’un g´en´erateur de formules. Par exemple, on peut programmer une fonction G(n, m, p) qui g´en`ere une formule avec n clauses et m variables avec la propri´et´e que : – le litt´eral xj est pr´esent dans la clause Ci avec probabilit´e p/2 ; – le litt´eral ¬xj est pr´esent dans la clause Ci avec probabilit´e p/2 ; – les litt´eraux xj et ¬xj ne sont jamais pr´esents ensemble dans une clause Ci (et donc ils sont absents avec probabilit´e (1 − p)). Exercice M.4 Programmez une proc´edure qui prend les param`etres (n, m, p, k), g´en`ere k formules en utilisant la fonction G(n, m, p), applique la proc´edure DP pour d´eterminer la satisfiabilit´e et applique les m´ethodes d´evelopp´ees dans les exercices M.2 et M.3 pour v´erifier le r´esultat. M.6 Heuristique Le choix d’une variable x dans la derni`ere ´etape peut avoir beaucoup d’influence sur la rapidit´e de la proc´edure. Une heuristique possible est de choisir x de sorte que le nombre de clauses dans lesquelles x apparaˆıt multipli´e par le nombre de clauses dans lesquelles ¬x apparaˆıt est maximal, et de tester DP([1/x]A) d’abord s’il y a plus de clauses contenant x que de clauses contenant ¬x, et DP([0/x]A) sinon. Exercice M.5 1. Implanter cette strat´egie dans la fonction DP . Soit DPH la fonction obtenue. 2. Modifiez le code de la fonction DP et de la fonction DPH pour qu’elles retournent le nombre de fois que le pas de ‘choix’ DP([0/x]A) or DP([1/x]A) est ex´ecut´e. 3. Programmez une proc´edure qui prend les param`etres (n, m, p, k), g´en`ere k formules en utilisant la fonction G(n, m, p), applique les proc´edures DP et DPH aux formules, v´erifie 80qu’elles produisent le mˆeme r´esultat (satisfiable ou pas satisifiable) et pour chaque formule imprime le nombre de fois que le pas de ‘choix’ est ex´ecut´e par DP et DPH. M.7 Le principe du pigeonnier (pigeon principle) On dispose de m pigeons et de n nids. Le probl`eme P(m, n) a une solution si : – Chaque pigeon a un nid. – Chaque nid contient au plus un pigeon. Il est ´evident que le probl`eme n’a de solution que si m est inf´erieur ou ´egal `a n, mais la v´erification de ce fait par la m´ethode de Davis-Putnam peut s’av´erer tr`es coˆuteuse. On ´ecrit le probl`eme du pigeonnier en CNF de la fa¸con suivante : – On introduit les variables oi,j pour i ∈ [1..m], j ∈ [1..n]. On interpr`ete oi,j par le pigeon i occupe le nid j. – On introduit la CNF ^ i=1,...,m ( _ j=1,...,n oi,j ) qui exprime le fait que chaque pigeon doit se trouver dans un nid. – On introduit la CNF ^ j=1,...,n, i,k=1,...,m,i tar xvf sato4.2.tgz – compiler le programme en ex´ecutant dans le dossier de SATO la commande : > make Plus d’informations sont disponibles dans le fichier README `a la mˆeme adresse. Vous pouvez tester le solveur en utilisant par exemple le g´en´erateur programm´e dans le TP1 et comparer les performances avec votre impl´ementation de l’algorithme de DavisPutnam. N.3 Le jeu du Sudoku Le Sudoku est un puzzle en forme de grille. Le but du jeu est de remplir la grille avec des chiffres allant de 1 `a 9 en respectant certaines contraintes, quelques chiffres ´etant d´ej`a dispos´es dans la grille. La grille de jeu est un carr´e de neuf cases de cˆot´e, subdivis´e en autant de carr´es identiques, appel´es r´egions. 5 3 7 9 6 1 9 5 9 8 6 8 6 3 4 8 3 1 7 2 6 6 8 4 1 9 5 8 7 9 La r`egle du jeu est simple : chaque ligne, colonne et r´egion ne doit contenir qu’une seule fois tous les chiffres de 1 `a 9. Formul´e autrement, chacun de ces ensembles doit contenir tous les 82chiffres de 1 `a 9. L’entr´ee de votre programme est un fichier qui repr´esente la grille sous la forme d’une matrice 9×9. Lorsque le chiffre d’une case n’est pas d´efini, on note 0. Ainsi l’exemple pr´ec´edent est repr´esent´e dans ce fichier sous la forme : 835 3 0 0 7 0 9 0 0 6 0 0 1 9 5 0 0 0 0 9 8 0 0 0 0 6 0 8 0 0 0 6 0 0 0 3 4 0 0 8 0 3 0 0 1 7 0 0 0 2 0 0 0 6 0 6 0 0 0 0 0 8 0 0 0 0 4 1 9 0 0 5 0 0 0 0 8 0 0 7 9 N.4 Interface La principale tˆache `a effectuer est l’interfa¸cage entre le Sudoku et SATO. Dans une premier temps on doit traduire le probl`eme du Sudoku vers un probl`eme de satisfiabilit´e. Puis on doit transformer une affectation qui satisfait la formule g´en´er´ee en une solution du Sudoku. Notez qu’en Java, on ne peut faire d’appel syst`eme, il faudra donc ex´ecuter le programme final `a l’aide d’un script de la forme : java Sudoku2SAT fic entree ./sato fic dimacs > fic sol java SAT2Sudoku fic sol O`u fic entree est le fichier qui repr´esente la grille d’entr´ee, fic dimacs est la traduction du probl`eme en format DIMACS produit par le programme Sudoku2SAT et SAT2Sudoku traduit l’affectation retourn´ee par SATO en solution du probl`eme initial. Le but du TP est de programmer Sudoku2SAT et SAT2Sudoku. N.5 Sudoku → SATO Pour chaque case (x, y) de la grille (ligne x et colonne y) et chaque valeur z ∈ [1..9] on introduit une variable propositionnelle sxyz. Le probl`eme du Sudoku peut ˆetre traduit vers une formule CNF de la fa¸con suivante : – Tout d’abord on veut que chaque case (x, y) contienne au moins un chiffre entre 1 9. Par exemple, pour la case (1, 1) la clause g´en´er´ee sera : s111 ∨ s112 ∨ s113 ∨ . . . ∨ s119. – Ensuite, chaque chiffre de 1 `a 9 apparaˆıt au plus une fois dans chaque ligne. Par exemple, le fait que le chiffre 1 apparaˆıt au plus une fois dans la ligne 1 correspond `a l’ensemble de clauses : (¬s111 ∨ ¬s121) ∧ (¬s111 ∨ ¬s131) ∧ . . . ∧ (¬s111 ∨ ¬s191) ∧ (¬s121 ∨ ¬s131) ∧ . . . – De mˆeme, chaque chiffre de 1 `a 9 apparaˆıt au plus une fois dans chaque colonne. – Chaque chiffre de 1 `a 9 apparaˆıt au plus une fois dans chaque r´egion. – Enfin, il faut s’occuper des cases pr´e-remplies dans la grille de d´epart. Chacune de ces cases correspond `a une clause avec un seul litt´eral. 84Notez que si on s’arrˆete l`a le codage est suffisant, mais on peut ajouter les contraintes suivantes : – Chaque case (x, y) contient au plus un chiffre entre 1 et 9. – Chaque chiffre apparaˆıt au moins une fois dans chaque ligne. – Chaque chiffre apparaˆıt au moins une fois dans chaque colonne. – Chaque chiffre apparaˆıt au moins une fois dans chaque r´egion. Exercice N.1 Ecrire un programme qui traduit un probl`eme de Sudoku en une formule CNF ´ sous le format DIMACS. Ce programme prend comme entr´ee un fichier sous la forme d´efinie dans la partie pr´ec´edente et doit ´ecrire le r´esultat de la traduction dans un fichier de sortie. N.6 SATO → Sudoku Il reste `a transformer une affectation renvoy´ee par le solveur en solution pour le Sudoku. Exercice N.2 Ecrire, une fonction qui transforme une affectation qui satisfait la formule en ´ solution du Sudoku et l’affiche. Vous pouvez maintenant tester votre programme en essayant de r´esoudre des grilles propos´ees par exemple aux adresses suivantes : http ://logiciel.sudoku.free.fr/ http ://www.esudoku.fr/ ... Vous pouvez aussi tester dans quelle mesure l’ajout de contraintes suppl´ementaires am´eliore les performances du programme. 85O TP : R´esolution Pour repr´esenter les formules en CNF on adopte la mˆeme notation ensembliste utilis´ee pour d´ecrire la m´ethode de Davis-Putnam. – Une clause C est un ensemble de litt´eraux. – Une formule A en CNF est un ensemble de clauses. Soient C ∪ {x} et C 0 ∪ {¬x} deux clauses o`u l’on suppose que x /∈ C et ¬x /∈ C 0 . On dit que C ∪ C 0 est un r´esolvant des deux clauses. La m´ethode de r´esolution peut ˆetre formul´ee de la fa¸con suivante. Soit A un ensemble fini de clauses. Si X est un ensemble de clauses, on pose FA(X) = A ∪ X ∪ {C | C est un r´esolvant de deux clauses dans X} Soit Res(A) le plus petit point fixe de FA. On peut montrer que la formule A est insatisfiable si et seulement si Res(A) contient la clause vide. Exercice O.1 Montrez (sur papier) que Res(A) est fini et peut ˆetre calcul´e. On rappelle qu’une clause de Horn est une clause qui contient au plus un litt´eral positif. Par ailleurs, une clause unitaire est une clause qui contient un litt´eral. Dans la m´ethode de r´esolution unitaire on se limite `a calculer les r´esolvants de couples de clauses dont au moins une est unitaire. On peut montrer qu’une conjonction de clauses de Horn n’est pas satisfiable si et seulement si la m´ethode de r´esolution unitaire d´erive la clause vide. Exercice O.2 Construire un programme qui re¸coit en entr´ee une formule A qui est une conjonction de clauses de Horn au format dimacs et v´erifie si A est insatisfiable en utilisant la m´ethode de r´esolution unitaire. Le programme imprime Res(A) (adapt´e pour la r´esolution unitaire) s’il n’arrive pas `a g´en´erer la clause vide. Exercice O.3 Estimez (sur papier) la complexit´e de votre programme en fonction de la taille de la formule A. 86 Robotique Mobile David Filliat To cite this version: David Filliat. Robotique Mobile. Ecole d’ing´enieur. Robotique Mobile, ENSTA ParisTech, ´ 2011, pp.175. HAL Id: cel-00655005 https://cel.archives-ouvertes.fr/cel-00655005 Submitted on 24 Dec 2011 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.David FILLIAT École Nationale Supérieure de Techniques Avancées ParisTech Robotique Mobile2Cette création est mise à disposition selon le Contrat Paternité-Pas d’Utilisation CommercialePartage des Conditions Initiales à l’Identique 2.0 France disponible en ligne : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ ou par courrier postal à Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. Ce document évolue régulièrement. La dernière version se trouve sur ma page personnelle : http://www.ensta-paristech.fr/~filliat/ Si vous avez des remarques ou des suggestions pour m’aider à le faire progresser, ou simplement si il vous a été utile, n’hésitez pas à m’écrire : david.filliat@ensta-paristech.fr Dernière mise à jour : 5 octobre 2011Robotique Mobile - david.filliat@ensta-paristech.fr 4TABLE DES MATIÈRES Table des matières 1 Introduction 9 1.1 Robot Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2 Objectifs du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 (Très) Bref aperçu historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 Exemples d’applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.5 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 I Les bases de la navigation 15 2 Les différents types de navigation 19 2.1 Les stratégies de navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 Les architectures de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2.1 Contrôleurs Hiérarchiques . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.2.2 Contrôleurs réactifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2.3 Contrôleurs hybrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.2.4 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3 Les sources d’information 27 3.1 Informations proprioceptives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2 Informations extéroceptives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2.1 Variabilité perceptuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2.2 Perceptual aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2.3 Utilisation directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.4 Utilisation d’un modèle métrique . . . . . . . . . . . . . . . . . . . . . . . 30 3.3 Fusion d’informations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4 Matériels courants en robotique mobile 35 4.1 Les bases mobiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.1 Holonomie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.2 Les plates-formes différentielles . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.3 Les plates-formes omnidirectionnelles . . . . . . . . . . . . . . . . . . . . 36 4.1.4 Les plates-formes non holonomes . . . . . . . . . . . . . . . . . . . . . . 37 4.1.5 Les plates-formes à pattes . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5 Robotique Mobile - david.filliat@ensta-paristech.frTABLE DES MATIÈRES 4.2 Les capteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.1 Les capteurs proprioceptifs . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.2 Les télémètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.3 Les caméras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.2.4 Autres capteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.3 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 II Navigation réactive 53 5 Navigation vers un but 57 5.1 Véhicules de Braitenberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.2 Modèle de Cartwright et Collet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.3 Asservissement visuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6 Évitement d’obstacles 61 6.1 Méthode des champs de potentiel . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.2 Méthode Vector Field Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.3 Méthode de la fenêtre dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . 63 7 Apprentissage par renforcement 67 7.1 Formalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.2 Programmation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 7.2.1 Évaluation d’une politique . . . . . . . . . . . . . . . . . . . . . . . . . . 71 7.2.2 Amélioration d’une politique . . . . . . . . . . . . . . . . . . . . . . . . . 72 7.2.3 Algorithmes d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . 72 7.3 Méthodes de Monte-Carlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 7.3.1 Évaluation d’un politique . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 7.3.2 Besoin d’exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 7.3.3 Algorithmes d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . 74 7.4 Apprentissage par différences temporelles . . . . . . . . . . . . . . . . . . . . . 74 7.5 Traces d’éligibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 7.6 Application pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 7.7 Exemple de mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 7.8 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 III Navigation utilisant une carte 81 8 Localisation, Cartographie et Planification 85 8.1 Les trois problèmes de la navigation par carte . . . . . . . . . . . . . . . . . . . . 85 8.2 Quelques hypothèses de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 8.2.1 Estimation de la position et de la direction . . . . . . . . . . . . . . . . . . 86 8.2.2 Environnements statiques et dynamiques . . . . . . . . . . . . . . . . . . 87 Robotique Mobile - david.filliat@ensta-paristech.fr 6TABLE DES MATIÈRES 9 Les représentations de l’environnement 89 9.1 Cartes topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 9.1.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 9.1.2 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 9.1.3 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 9.1.4 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 9.2 Cartes métriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.2.2 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 9.2.3 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 9.2.4 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 9.3 Représentations hybrides et hiérarchiques . . . . . . . . . . . . . . . . . . . . . . 100 10 Localisation 103 10.1 Différentes capacités de localisation . . . . . . . . . . . . . . . . . . . . . . . . . 103 10.2 Estimation de la position par les perceptions . . . . . . . . . . . . . . . . . . . . 105 10.2.1 Cartes topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 10.2.2 Cartes métriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 10.2.3 Corrélation de cartes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 10.2.4 Limitations de l’estimation de la position par les perceptions . . . . . . . . 110 10.3 Suivi d’une hypothèse unique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 10.3.1 Cartes topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 10.3.2 Cartes métriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 10.3.3 Le filtrage de Kalman pour la localisation . . . . . . . . . . . . . . . . . . . 112 10.3.4 Limitations du suivi de position . . . . . . . . . . . . . . . . . . . . . . . . 119 10.4 Suivi de plusieurs hypothèses . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 10.4.1 Suivi explicite de plusieurs hypothèses . . . . . . . . . . . . . . . . . . . . 120 10.4.2 Le filtrage Bayésien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 10.4.3 Filtrage Bayésien dans le cas discret . . . . . . . . . . . . . . . . . . . . . 126 10.4.4 Filtrage particulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 10.5 Comparaison des méthodes de localisation . . . . . . . . . . . . . . . . . . . . . 133 11 Cartographie 135 11.1 Les problèmes de la cartographie . . . . . . . . . . . . . . . . . . . . . . . . . . 135 11.1.1 Limitation des méthodes de localisation . . . . . . . . . . . . . . . . . . . 135 11.1.2 Fermetures de boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 11.1.3 Cartographie incrémentale et retour en arrière . . . . . . . . . . . . . . . . 136 11.2 Cartographie incrémentale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 11.2.1 Cartes Topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 11.2.2 Cartes métriques : corrélation de scan . . . . . . . . . . . . . . . . . . . . 140 11.2.3 Cartes métriques : grilles d’occupation . . . . . . . . . . . . . . . . . . . . 141 11.2.4 Stratégies d’exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 11.3 Retour sur les modifications passées . . . . . . . . . . . . . . . . . . . . . . . . 144 7 Robotique Mobile - david.filliat@ensta-paristech.frTABLE DES MATIÈRES 11.3.1 Méthodes de relaxation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 11.3.2 Cartographie par filtrage de Kalman étendu . . . . . . . . . . . . . . . . . 147 11.3.3 Fast SLAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 11.4 Comparaison des méthodes de cartographie . . . . . . . . . . . . . . . . . . . . 154 11.5 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 12 Planification 155 12.1 Espace des configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 12.2 Discrétisation de l’espace de recherche . . . . . . . . . . . . . . . . . . . . . . . 156 12.3 Recherche de chemin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 12.3.1 Deux types de plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 12.3.2 Calcul de politique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 12.3.3 Calcul d’un chemin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 12.4 Exemples de politiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 12.5 Choix de l’action avec une position incertaine . . . . . . . . . . . . . . . . . . . . 162 12.6 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Index 164 Bibliographie 165 Robotique Mobile - david.filliat@ensta-paristech.fr 8CHAPITRE 1. INTRODUCTION Chapitre 1 Introduction 1.1 Robot Mobile La robotique est un très bon exemple de domaine pluri-disciplinaire qui implique de nombreuses thématiques telles que la mécanique, la mécatronique, l’électronique, l’automatique, l’informatique ou l’intelligence artificielle. En fonction du domaine d’origine des auteurs, il existe donc diverses définitions du terme robot, mais elles tournent en général autour de celle-ci : Un robot est une machine équipée de capacités de perception, de décision et d’action qui lui permettent d’agir de manière autonome dans son environnement en fonction de la perception qu’il en a. FIGURE 1.1 – Schéma des interactions d’un robot avec son environnement. Selon les approches, un modèle interne de l’environnement peut être utilisé ou non. Cette définition s’illustre par un schéma classique des interactions d’un robot avec son environnement (Figure 1.1). Les différentes notions que nous présenterons dans ce cours sont essentiellement issues de cette vision de la robotique, très orientée sur l’Intelligence Artificielle, qui 9 Robotique Mobile - david.filliat@ensta-paristech.fr1.2. OBJECTIFS DU COURS place au centre des préoccupations l’enchaînement de ce cycle Perception/Décision/Action . La manière dont un robot gère ces différents éléments est définie par son architecture de contrôle, qui la plupart du temps va faire appel à un modèle interne de l’environnement qui lui permettra de planifier ses actions à long terme. 1.2 Objectifs du cours L’objectif de ce cours est de fournir un aperçu des problèmes de la robotique mobile et des solutions actuelles. Ce cours se veut proche de la recherche, en présentant des méthodes apparues dans les dernières années, mais présente également les notions de base nécessaires à leur compréhension, ainsi qu’un panorama de techniques classiques dont la portée va au delà de leur application en robotique mobile. La lecture des nombreuses références à des articles scienti- fiques ou à des ouvrages de référence (la plupart du temps en anglais) n’est évidement pas utile pour la compréhension du cours, mais doit permettre d’approfondir des points particuliers hors de la portée de ce cours. La robotique mobile est un domaine dans lequel l’expérience pratique est particulièrement illustratrice et importante pour la compréhension des problèmes. Au delà des méthodes présentée dans ce texte, les travaux dirigés ou le projet pratique associés que réalisent les étudiants apporteront également leur lot de connaissances irremplaçables. 1.3 (Très) Bref aperçu historique FIGURE 1.2 – La tortue de Grey Walter (nommée “machina speculatrix” et surnommée Elsie) et une illustration de sa trajectoire pour rejoindre sa niche. Le terme de robot apparaît pour la première fois dans une pièce de Karel Capek en 1920 : Rossum’s Universal Robots. Il vient du tchèque ’robota’ (∼ servitude) et présente une vision des robots comme serviteurs dociles et efficaces pour réaliser les taches pénibles mais qui déjà vont se rebeller contre leurs créateurs. Robotique Mobile - david.filliat@ensta-paristech.fr 10CHAPITRE 1. INTRODUCTION La Tortue construite par Grey Walter dans les année 1950 (Figure 1.2), est l’un des premiers robots mobiles autonomes. Grey Walter n’utilise que quelques composants analogiques, dont des tubes à vide, mais son robot est capable de se diriger vers une lumière qui marque un but, de s’arrêter face à des obstacles et de recharger ses batteries lorsqu’il arrive dans sa niche. Toutes ces fonctions sont réalisées dans un environnement entièrement préparé, mais restent des fonctions de base qui sont toujours des sujets de recherche et de développement technologiques pour les rendre de plus en plus génériques et robustes. FIGURE 1.3 – A gauche : Robot "Beast" de l’université John Hopkins dans les années 1960. A droite : Le robot Shakey de Stanford en 1969 a été une plate-forme de démonstration des recherches en intelligence artificielle. Dans les années 60, les recherches en électronique vont conduire, avec l’apparition du transistor, à des robots plus complexes mais qui vont réaliser des tâches similaires. Ainsi le robot "Beast" (Figure 1.3) de l’université John Hopkins est capable de se déplacer au centre des couloirs en utilisant des capteurs ultrason, de chercher des prises électriques (noires sur des murs blanc) en utilisant des photo-diodes et de s’y recharger. Les premier liens entre la recherche en intelligence artificielle et la robotique apparaissent à Stanford en 1969 avec Shakey (Figure 1.3). Ce robot utilise des télémètres à ultrason et une caméra et sert de plate-forme pour la recherche en intelligence artificielle, qui à l’époque travaille essentiellement sur des approches symboliques de la planification. La perception de l’environnement, qui à l’époque est considérée comme un problème séparé, voire secondaire, se révèle particulièrement complexe et conduit là aussi à de fortes contraintes sur l’environnement. Ces développements de poursuivent avec le Stanford Cart dans la fin des années 1970, avec notamment les premières utilisations de la stéréo-vision pour la détection d’obstacles et la modélisation 11 Robotique Mobile - david.filliat@ensta-paristech.fr1.3. (TRÈS) BREF APERÇU HISTORIQUE FIGURE 1.4 – Le Stanford Cart date de la fin des années 1970. Le robot Hilare du LAAS a été construit en 1977. de l’environnement. En France, le robot Hilare est le premier robot construit au LAAS, à Toulouse (Figure 1.4). Une étape importante est à signaler au début des années 1990 avec la mise en avant de la robotique réactive, représentée notamment par Rodney Brooks. Cette nouvelle approche de la robotique, qui met la perception au centre de la problématique, a permis de passer de gros robots très lents à de petits robots (Figure 1.5), beaucoup plus réactifs et adaptés à leur environnement. Ces robots n’utilisent pas ou peu de modélisation du monde, problématique qui s’est avérée être extrêmement complexe. FIGURE 1.5 – Genghis, développé par Rodney Brooks au MIT au début des années 1990. Ces développements ont continué et l’arrivée sur le marché depuis les années 1990 de platesformes intégrées telles que le pioneer de la société Mobile Robots a permis à de très nombreux laboratoires de travailler sur la robotique mobile et à conduit à une explosion de la diversité des thèmes de recherche. Ainsi, même si les problèmes de déplacement dans l’espace et de moRobotique Mobile - david.filliat@ensta-paristech.fr 12CHAPITRE 1. INTRODUCTION délisation de l’environnement restent difficiles et cruciaux, des laboratoires ont pu par exemple travailler sur des approches multi-robot, la problématique de l’apprentissage ou sur les problèmes d’interactions entre les hommes et les robots. 1.4 Exemples d’applications Aujourd’hui, le marché commercial de la robotique mobile est toujours relativement restreint en dehors des robots aspirateurs vendus à plusieurs millions d’exemplaires. Cependant, il existe de nombreuses perspectives de développement qui en feront probablement un domaine important dans le futur. Les applications des robots peuvent se trouver dans de nombreuses activités "ennuyeuses, salissantes ou dangereuses" (3 D’s en anglais pour Dull, Dirty, Dangerous), mais également pour des applications ludiques ou de service, comme l’assistance aux personnes âgées ou handicapées. FIGURE 1.6 – Exemples de robots commerciaux ou de recherche. 13 Robotique Mobile - david.filliat@ensta-paristech.fr1.5. POUR ALLER PLUS LOIN Parmi les domaines d’applications possibles de la robotique, citons : – La robotique de service (hôpital, bureaux, maison), – La robotique de loisir (jouets, robot ’compagnon’), – La robotique industrielle ou agricole (entrepôts logistiques, récolte de productions agricoles, mines), – La robotique en environnement dangereux (spatial, industriel, militaire, catastrophes naturelles). A cela, s’ajoute a l’heure actuelle des nombreuses plates-formes conçues essentiellement pour les laboratoires de recherche. La figure 1.6 montre quelques exemples de robots existants. 1.5 Pour aller plus loin Les illustrations de ce chapitre sont, entre autre, tirées du livre "ROBOT : mere machine to transcendent mind" de Hans Moravec [102], dont les illustrations sont disponibles en ligne 1 . Le livre de Daniel Ichbiah "Robots, Genèse d’un peuple artificiel" [71] donne également un bon aperçu "grand public" de la robotique et de sont histoire 2 . 1. http ://www.frc.ri.cmu.edu/ hpm/book98/ 2. http ://ichbiah.online.fr/pagerobots.htm Robotique Mobile - david.filliat@ensta-paristech.fr 14Première partie Les bases de la navigation 15 Robotique Mobile - david.filliat@ensta-paristech.frDans cette partie, nous présentons les différentes catégories de méthodes de navigation utilisables pour un robot mobile et les architectures de contrôle associées. Nous présentons ensuite les informations qu’un robot pourra utiliser pour se déplacer, ainsi que les capteurs et les platesformes couramment utilisées en robotique. 17 Robotique Mobile - david.filliat@ensta-paristech.frRobotique Mobile - david.filliat@ensta-paristech.fr 18CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION Chapitre 2 Les différents types de navigation 2.1 Les stratégies de navigation Les stratégies de navigation permettant à un robot mobile de se déplacer pour rejoindre un but sont extrêmement diverses, de même que les classifications qui peuvent en être faites. Afin de situer les différentes méthodes de navigation que nous allons étudier dans un contexte géné- ral, nous reprenons ici une classification établie par Trullier et al. [138, 140]. Cette classification a été établie en prenant en compte à la fois les stratégies des robots et des animaux. Elle pré- sente l’avantage de distinguer les stratégies sans modèles internes et les stratégies avec modèle interne. Cette classification comporte cinq catégories, de la plus simple à la plus complexe : – Approche d’un objet : cette capacité de base permet de se diriger vers un objet visible depuis la position courante du robot. Elle est en général réalisée par une remontée de gradient basée sur la perception de l’objet, comme dans l’exemple célèbre des véhicules de Valentino Braitenberg [19] (voir section 5.1) qui utilisent deux capteurs de lumière pour atteindre ou fuir une source lumineuse. Cette stratégie utilise des actions réflexes, dans lesquelles chaque perception est directement associée à une action. C’est une stratégie locale, c’est-à-dire fonctionnelle uniquement dans la zone de l’environnement pour laquelle le but est visible. – Guidage : cette capacité permet d’atteindre un but qui n’est pas un objet matériel directement visible, mais un point de l’espace caractérisé par la configuration spatiale d’un ensemble d’objets remarquables, ou amers, qui l’entourent ou qui en sont voisins. La straté- gie de navigation, souvent une descente de gradient également, consiste alors à se diriger dans la direction qui permet de reproduire cette configuration. Cette capacité semble utilisée par certains insectes, comme les abeilles [26], et a été utilisée sur divers robots [54, 86, 58, 114] (voir sections 5.2 et 5.3). Cette stratégie utilise également des actions ré- flexes et réalise une navigation locale qui requiert que les amers caractérisant le but soient visibles. – Action associée à un lieu : cette capacité est la première capacité réalisant une navigation globale, c’est-à-dire qui permette de rejoindre un but depuis des positions pour lesquelles 19 Robotique Mobile - david.filliat@ensta-paristech.fr2.1. LES STRATÉGIES DE NAVIGATION a D A a a a a a a a a a a Direction à prendre pour atteindre le lieu A Trajectoire suivie par l’animat Obstacles Lieux mémorisés Zone inexplorée FIGURE 2.1 – Action associée à un lieu. En chaque lieu, représenté par un cercle, l’action à accomplir pour rejoindre le but A est représentée par une flèche indiquant la direction à suivre à partir de ce lieu. Cette stratégie permet de rejoindre un but distant dans l’environnement mais repose sur des chemins figés. Dans cet exemple, le chemin joignant le lieu D au lieu A et passant par la droite de l’obstacle a été appris. Rejoindre le lieu A depuis le lieu D ne pourra alors être réalisé que par ce chemin. Le raccourci empruntant le chemin de gauche, par exemple, est inutilisable. ce but ou les amers qui caractérisent son emplacement sont invisibles (par exemple [114]. Elle requiert une représentation interne de l’environnement qui consiste à définir des lieux comme des zones de l’espace dans lesquelles les perceptions restent similaires, et à associer une action à effectuer à chacun de ces lieux (cf. figure 2.1). L’enchaînement des actions associées à chacun des lieux reconnus définit une route qui permet de rejoindre le but. Ces modèles permettent donc une autonomie plus importante mais sont limités à un but fixé. Une route qui permet de rejoindre un but ne pourra en effet pas être utilisée pour rejoindre un but différent. Changer de but entraînera l’apprentissage d’une nouvelle route, indépendante des routes permettant de rejoindre les autres buts. B D A Possibilité de passer d’un lieu à un autre Trajectoire suivie par l’animat Obstacles Lieux mémorisés Zone inexplorée FIGURE 2.2 – Navigation topologique. Cette stratégie permet de mémoriser un ensemble de lieux et les possibilités de passer de l’un à l’autre, indépendamment de tout but. Pour rejoindre un but, il faut alors une étape de planification qui permet de rechercher, parmi tous les chemins possibles, le chemin rejoignant le but. Dans notre exemple, le chemin le plus court entre D et A peut alors être calculé, mais uniquement parmi les lieux et les chemins déjà connus. Cette stratégie permet, par exemple, de contourner l’obstacle par la gauche mais ne permet pas de le traverser en ligne droite de D à A. Robotique Mobile - david.filliat@ensta-paristech.fr 20CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION – Navigation topologique : cette capacité est une extension de la précédente qui mémorise dans le modèle interne les relations spatiales entre les différents lieux. Ces relations indiquent la possibilité de se déplacer d’un lieu à un autre, mais ne sont plus associées à un but particulier. Ainsi le modèle interne est un graphe qui permet de calculer différents chemins entre deux lieux arbitraires. Ce modèle ne permet toutefois que la planification de déplacements parmi les lieux connus et suivant les chemins connus (cf. figure 2.2). B D A Trajectoire suivie par l’animat Possibilité de passer d’un lieu à un autre déduite de leur position relative x y Obstacles Lieux mémorisés Possibilité de passer d’un lieu à un autre Zone inexplorée FIGURE 2.3 – Navigation métrique. Cette stratégie permet de calculer le chemin le plus court entre deux lieux mémorisés, permettant même de planifier des raccourcis au sein de zones inexplorées de l’environnement. Pour cela, la carte mémorise la position métrique relative de chacun des lieux visités par le robot. Ainsi il est possible de prévoir un déplacement entre deux lieux, même si la possibilité de ce déplacement n’est pas enregistrée dans la carte. Dans cet exemple, cette stratégie permet de d’aller du lieu A au lieu D en traversant la zone inexplorée. – Navigation métrique : cette capacité est une extension de la précédente car elle permet au robot de planifier des chemins au sein de zones inexplorées de son environnement. Elle mémorise pour cela les positions métriques relatives des différents lieux, en plus de la possibilité de passer de l’un à l’autre. Ces positions relatives permettent, par simple composition de vecteurs, de calculer une trajectoire allant d’un lieu à un autre, même si la possibilité de ce déplacement n’a pas été mémorisée sous forme d’un lien (cf. figure 2.3). Les modèles des trois premières catégories utilisent des actions réflexes pour guider le robot et se différencient essentiellement par le type de perceptions utilisées pour déclencher ces actions. Ils se regroupent sous le terme générique de navigation réactive dont nous parlerons dans la partie II. Ils peuvent être très simple, ne nécessitent pas de modèle global de l’environnement mais ont un domaine d’application souvent restreint. Dans le monde vivant, ces stratégies sont très répandues, notamment chez les insectes. Les comportements de ce type restent toutefois essentiels dans les robots modernes car, du fait de leur simplicité, il sont généralement exécutés très rapidement et ils permettent de réaliser des taches de bas-niveau, comme l’évitement des obstacles imprévus, essentielles à la sécurité d’un robot. Les modèles des deux dernières catégories autorisent pour leur part une navigation globale et permettent de rejoindre un but arbitraire au sein de l’environnement. Ils s’appuient pour cela sur un modèle interne du monde, une carte, qui supporte une planification. Ce modèle interne mémorise donc la structure spatiale de l’environnement, indépendamment d’un but précis. Cha- 21 Robotique Mobile - david.filliat@ensta-paristech.fr2.2. LES ARCHITECTURES DE CONTRÔLE cune des positions mémorisées dans ce modèle interne peut alors être utilisée comme but par le processus de planification dont le rôle est de calculer une route vers ce but. Ce sont ces deux stratégies qui sont regroupées sous le terme de navigation par carte, objet du chapitre III . Une telle représentation interne est naturelle pour les êtres humains, pour lesquels des processus cognitifs de haut niveau sont utilisés pour créer et utiliser une carte. Ces processus de haut niveau sont toutefois très difficile à copier pour un robot réel qui ne dispose que de systèmes rudimentaires de perception et de traitement des informations en comparaison avec un homme. Par exemple, en environnement urbain, le processus de mise en correspondance de la carte avec l’environnement réel afin de déterminer sa position fait souvent appel, pour l’homme, à la lecture du nom des rues inscrit sur les bâtiments, ce qui est relativement difficile à automatiser, à cause de la diversité des configurations dans lesquelles peuvent ce trouver ces noms. On notera au passage que l’homme a quasiment toujours recours à des aménagements particuliers de l’environnement pour connaitre sa position, par exemple celui qui consiste à nommer les rues ou à lancer des satellites dans l’espace pour bénéficier du GPS. Le système de navigation idéal pour un robot mobile sera probablement celui qui sera capable de tirer partie de toutes ces informations, qui ne lui étaient pas destinées à l’origine. L’utilisation de cartes par un robot mobile comme le font les hommes est probablement hors de notre portée pendant quelques années, cependant il existe également des preuves de l’existence de représentations internes similaires à de telles cartes chez les animaux, par exemple chez les rats. Ces représentations sont identifiables au niveau neurologiques dans certaines parties de leur cerveau, notamment dans l’hippocampe. Cela montre que des cartes sont utilisée par des êtres vivants, sans le support de concept abstraits tels que les utilisent les humains. Ce type de carte qui fait appel à des structures neurologiques de base et probablement à des perceptions relativement simples, est un paradigme intéressant pour les robots mobiles. En robotique mobile, comme pour l’homme ou certains animaux, l’utilisation de cartes est quasiment indispensable pour permettre d’effectuer des tâches de navigation dans des conditions environnementales complexes, qui ne sont pas spécialement adaptées pour le robot. La construction et l’utilisation de telles cartes posent cependant de nombreux problèmes, notamment pour garantir l’adéquation entre la carte et le monde réel. Pour cette raison, la plupart des robots trouvent aujourd’hui un compromis entre une approche réactive et une approche utilisant une carte afin de bénéficier de la rapidité et de la robustesse de la première et de la capacité de déplacement à long terme de la seconde. 2.2 Les architectures de contrôle Un robot est un système complexe qui doit satisfaire à des exigences variées et parfois contradictoires. Un exemple typique pour un robot mobile est l’arbitrage qui doit être fait entre l’exécution la plus précise possible d’un plan préétabli pour atteindre un but et la prise en compte d’éléments imprévus, tels que les obstacles mobiles. Ces arbitrages, que ce soit au niveau du choix de stratégie, ou au niveau de l’utilisation des capteurs, des effecteurs ou des ressources de calcul, sont réglés par un ensemble logiciel appelé architecture de contrôle du robot. Cette architecture permet donc d’organiser les relations entre les trois grandes fonctions que sont la perception, la Robotique Mobile - david.filliat@ensta-paristech.fr 22CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION décision et l’action . Nous pouvons reprendre la définition de Ronald Arkin [4] de l’art de concevoir de telles architectures : Robotic architecture is the discipline devoted to the design of highly specific and individual robots from a collection of common software building blocks. Selon cette définition une architecture doit donc être conçue pour un robot précis, mais en utilisant des modules génériques. De manière plus générale il existe également des règles de conception relativement générales qui permettent de réaliser ces implémentations. En fonction de ces règles, les architectures de contrôle peuvent être classées en trois grandes catégories que nous détaillerons par la suite : les contrôleurs hiérarchiques, les contrôleurs réactifs et les contrôleurs hybrides (Figure 2.4). Comme le précise cette définition, toutes ces architectures ne diffèrent pas forcement par les méthodes élémentaires employées mais plutôt par leur agencement et leur relations. A B C PERCEPTION PLANIFICATION ACTION PERCEPTION ACTION PLANIFICATION PERCEPTION ACTION FIGURE 2.4 – Illustration des architectures classiques des contrôleurs pour les robots mobiles : Hiérarchique (A), Réactive (B) et Hybride (C) (Voir le texte pour la description détaillée). 2.2.1 Contrôleurs Hiérarchiques Historiquement, les premiers robots mobiles dérivés des recherches en intelligence artificielle utilisaient des contrôleurs hiérarchiques (cf. figure 2.4 A) dont le fonctionnement repose essentiellement sur la capacité de décision travaillant sur un modèle du monde supposé quasiment-parfait. Ces architectures fonctionnent selon un cycle rigide de modélisation de l’environnement, planifi- cation des actions au sein de cette représentation, puis exécution du plan. La capacité de décision était issue des premiers travaux en intelligence artificielle et reposait essentiellement sur des traitements de données symboliques. Ces architectures ont rapidement montré leurs limites et leur incapacité à fonctionner dans un environnement qui ne soit pas statique et simplifié à l’extrême. L’essentiel des problèmes de ces architectures provient de l’utilisation d’un modèle interne central qui est le seul pris en compte pour guider le robot. Elles se trouvent confrontées à tout les problèmes des premiers développements de l’intelligence artificielle symbolique. 23 Robotique Mobile - david.filliat@ensta-paristech.fr2.2. LES ARCHITECTURES DE CONTRÔLE Ces architectures supposent premièrement qu’un modèle informatique du monde puisse représenter toutes les informations pertinentes pour le déplacement du robot. Or un tel modèle ne peut être suffisant dans un environnement dynamique car au moment de la réalisation de l’action l’environnement peut avoir suffisamment changé pour que la décision ne soit plus valide. Ce problème était particulièrement crucial au début de la robotique mobile ou les capacités de calcul limitées entraînaient des temps de planification de l’ordre de plusieurs dizaines de minutes. Mais l’augmentation des capacités de calcul ne suffit pas à résoudre ce problème qui ne permet pas de gérer un environnement de travail réaliste. C’est un problème intrinsèque lié d’une part à la trop grande longueur de la boucle qui relie la perception à l’action et d’autre part à l’invalidité de l’hypothèse de monde clos faite en intelligence artificielle 1 . De plus, ces architectures permettent peu de contrôle sur l’exécution des actions. En effet, une fois l’action choisie, elle est exécutée en supposant le modèle du monde correct et il n’y a pas de retour direct de la perception sur l’exécution de l’action. Les écarts modèles/environnement ne peuvent être pris en compte que via un nouveau cycle perception/modélisation/planification, ce qui, par définition, est très peu réactif et conduit rapidement à de graves problèmes. 2.2.2 Contrôleurs réactifs Rodney Brooks [20] a proposé une solution radicale à tous ces problèmes sous la forme d’une architecture réactive (cf. figure 2.4 B). Dans cette architecture, un ensemble de comportements réactifs, fonctionnant en parallèle, contrôle le robot sans utiliser de modèle du monde. Cette architecture supprime évidemment les problèmes dûs aux différences entre la réalité, d’une part, et le modèle de l’environnement du robot, d’autre part, mais limite clairement les tâches que peut effectuer le robot (cf. [77] pour une critique). En effet, sans représentation interne de l’état de l’environnement, il est très difficile de planifier une suite d’actions en fonction d’un but à atteindre. Les robots utilisant cette architecture sont donc en général efficaces pour la tâche précise pour laquelle ils ont été conçus, dans l’environnement pour lequel ils ont été prévus, mais sont souvent difficiles à adapter à une tâche différente. Les réussites de ces architectures sont liées au couplage direct entre la perception et l’action qui permet une prise en compte très rapide des phénomènes dynamiques de l’environnement. En donc une bonne robustesse dans des environnements complexes. Comme nous l’avons mentionné, ces architectures sont en général basées sur plusieurs comportements : évitement d’obstacles, déplacement aléatoire, déplacement vers un but, fuite d’un point... Pour guider le robot, il faut donc choisir à chaque instant lequel de ces comportements activer. Ce problème est connu dans la litérature scientifique sous le nom de sélection de l’action. La solution proposée par Brooks, l’architecture de subsomption [21] est devenue un classique et utilise une hiérarchie des comportements qui se déclenchent donc selon un ordre de priorité en fonction des perceptions du robot. 1. L’hypothèse de monde clos dit que la représentation symbolique d’un problème va être suffisante pour pouvoir représenter toutes les conséquences des actions réalisées dans ce monde. Cela s’avère impossible en pratique pour des problèmes autre que des problèmes jouets (par exemple un monde de cubes posés sur une table). Robotique Mobile - david.filliat@ensta-paristech.fr 24CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION 2.2.3 Contrôleurs hybrides La plupart des contrôleurs actuellement utilisés choisissent une solution intermédiaire entre ces deux approches sous la forme d’une architecture hybride [104, 3] (cf. figure 2.4 C). Cette architecture se compose de deux niveaux. Le premier est chargé des tâches de navigation de haut niveau, telles que la localisation, la cartographie et la planification. Pour cela, il s’appuie sur un second niveau réactif qui est chargé d’exécuter les commandes avec le plus de précision possible et de gérer les éléments non modélisés de l’environnement tels que les obstacles inconnus ou dynamiques. L’action conjointe de ces deux niveaux permet de réagir rapidement face aux variations imprévues de l’environnement, tout en permettant la réalisation d’actions planifiées à plus long terme. Le bas niveau de ces architectures peut être réalisé sous forme de comportements, tels que ceux utilisés dans les architectures réactives. Ces comportements sont des boucles sensorimotrices qui relient les action aux perceptions avec un phase de décision très courte, qui assure la réactivité. Dans le même temps, les informations sensorielles sont utilisées par le haut niveau dans une boucle sensorimotrice à une échelle de temps beaucoup plus longue. C’est la mise en parallèles de ces deux échelles de temps qui fait la force de ces architectures. Les exemples d’architectures hybrides foisonnent (4D/RCS, 3T, Harpic...) car de très nombreux laboratoires et organismes travaillant sur la robotique ont développé leur architecture de ce type. 2.2.4 Pour aller plus loin Deux livres intéressants sur le sujet : – Introduction to AI Robotics de Robin Murphy, MIT Press – Behavior based robotics de Ronald C. Arkin, MIT Press 25 Robotique Mobile - david.filliat@ensta-paristech.fr2.2. LES ARCHITECTURES DE CONTRÔLE Robotique Mobile - david.filliat@ensta-paristech.fr 26CHAPITRE 3. LES SOURCES D’INFORMATION Chapitre 3 Les sources d’information Tous les capteurs utilisés en robotique mobile fournissent des informations appartenant à l’une de deux grandes catégories d’informations : les informations proprioceptives et les informations extéroceptives. – Les informations proprioceptives sont des informations internes au robot qui le renseignent, dans le cas de la navigation, sur son déplacement dans l’espace. Ces informations peuvent provenir de la mesure de la rotation de ses roues ou de la mesure de l’accélération grâce à une centrale inertielle. Un processus d’intégration permet alors, en accumulant ces informations au cours du temps, d’estimer la position relative de deux points par lesquels le robot est passé. – Les informations extéroceptives ou plus simplement les perceptions, sont des informations caractéristiques d’une position que le robot peut acquérir dans son environnement. Ces informations peuvent être de nature très variée. Par exemple, un robot peut mesurer la distance des obstacles avec des capteurs infrarouges ou utiliser une caméra. Ces deux sources d’information ont des propriétés opposées que nous détaillons dans les deux sections suivantes. 3.1 Informations proprioceptives Les informations proprioceptives renseignent sur le déplacement du robot dans l’espace. Elles constituent donc une source d’information très importante pour la navigation. Cependant, la pré- cision de cette information se dégrade continuellement au cours du temps, la rendant inutilisable comme seule référence à long terme. Cette dégradation continuelle provient de l’intégration temporelle des mesures effectuées par les capteurs internes. En effet, chaque capteur produit une mesure bruitée du déplacement instantané, de la vitesse ou de l’accélération du robot. Ce bruit, via le processus d’intégration qui a pour but d’estimer le déplacement, conduit inévitablement à une erreur croissante. Malgré ce défaut important, les informations proprioceptives ont l’avantage de dépendre assez peu des conditions environnementales qui perturbent fortement les informations perceptives. La vision, par exemple sera fortement perturbée si l’environnement est plongé dans le noir, mais 27 Robotique Mobile - david.filliat@ensta-paristech.fr3.2. INFORMATIONS EXTÉROCEPTIVES les informations proprioceptives fourniront une information identique, que l’environnement soit éclairé ou non. De plus, comme nous le verrons dans la section suivante, si deux lieux identiques du point de vue des perceptions se trouvent dans l’environnement, les informations perceptives ne permettent pas de les différencier. Les informations proprioceptives sont alors le seul moyen de les distinguer. En robotique, cette information a de plus l’avantage de la simplicité de manipulation. En effet, le processus d’intégration fournit directement une estimation de la position du robot dans un espace euclidien doté d’un repère cartésien. Dans ce type de repère, tous les outils de la géomé- trie mathématique sont utilisables. Ils permettent, par exemple, d’effectuer des calculs de chemin relativement simples lorsque l’on connaît la position du but et des obstacles. 3.2 Informations extéroceptives Les informations extéroceptives, ou plus simplement les perceptions , fournissent un lien beaucoup plus fort entre le robot et son environnement. En effet, les informations proprioceptives fournissent des informations sur le déplacement du robot, alors que les informations perceptives fournissent des informations directement sur la position du robot dans l’environnement. Ces informations assurent un ancrage dans l’environnement, en permettant de choisir des perceptions qui peuvent être utilisées comme points de repère. Ces points de repère sont indépendants des déplacements du robot et pourront être reconnus quelle que soit l’erreur accumulée par les données proprioceptives. La reconnaissance de ces points est évidemment soumise à une incertitude, mais pas à une erreur cumulative, ce qui les rend utilisables comme référence à long terme. 3.2.1 Variabilité perceptuelle Pour être utile, un système de perception doit donc permettre de distinguer le plus de lieux possible. Pour cela, il doit être capable de distinguer le plus de détails possibles, afin de faire la différence entre deux lieux différents mais d’apparences similaires. Or l’augmentation de cette capacité à distinguer de petites variations dans l’environnement rend le système sensible au problème de la variabilité perceptuelle , c’est à dire au changement de perception au cours du temps pour un lieu donné. Cette variabilité peut être due au bruit inhérent au processus de mesure où à des variations de l’environnement non significatives pour le problème de navigation qui nous concerne, par exemple le changement de luminosité. Pour s’affranchir de ce problème, il faut en général mettre en place des processus de traitement des perceptions qui permettront de ne pas dépendre de ces variations et de correctement identifier un lieu donné. 3.2.2 Perceptual aliasing En cherchant à limiter la dépendance aux variations de l’environnement, le concepteur de robot aboutit en général au problème du perceptual aliasing ou d’Ambiguïté des perceptions. Ce problème désigne l’incapacité d’un système de perception à distinguer de manière unique tous Robotique Mobile - david.filliat@ensta-paristech.fr 28CHAPITRE 3. LES SOURCES D’INFORMATION les lieux d’un environnement. Cette situation est très courante lorsque les robots utilisent des capteurs de distance aux obstacles tels que les capteurs à ultrasons. Dans un environnement intérieur de tels capteurs sont, par exemple, capables de mesurer la position du robot par rapport à un coin, mais ne fournissent aucune information sur la position le long d’un couloir rectiligne. Toutes les positions le long d’un couloir correspondent alors à des perceptions identiques. Il est possible d’utiliser des capteurs qui fournissent des données plus précises ou plus discriminantes. Dans le cas des capteurs de distance, il est, par exemple, possible d’utiliser un télémètre laser qui pourra distinguer les renfoncements des portes et sera ainsi plus précis. Mais même en utilisant des capteurs plus informatifs, comme une caméra, ce problème finit par apparaitre lorsque la taille de l’environnement augmente. Il existe toujours une limite matérielle ou logicielle au delà de laquelle l’identification unique de toutes les positions d’un environnement est impossible. Il n’est donc pas possible, en général, de régler complètement le problème du perceptual aliasing, mais seulement d’en repousser l’apparition. Il faut donc bien étudier les capteurs nécessaires en fonction des traitements réalisables et de l’environnement visé pour limiter ce problème. 3.2.3 Utilisation directe Les capteurs sur un robot mobile peuvent être de nature très variée et être utilisés de nombreuses façons différentes. Il est toutefois possible de distinguer deux utilisations distinctes de leurs données pour la navigation. Ces deux utilisations dépendent de l’utilisation ou non d’un modèle métrique associé au capteur, modèle qui permet de traduire les valeurs brutes du capteur en informations sur la géométrie de l’environnement. Ce modèle permet notamment de prévoir la variation des mesures renvoyées par ce capteur en fonction du déplacement du robot. Les perceptions peuvent être utilisées de manière directe, sans aucun modèle métrique, pour comparer directement deux positions en examinant les perceptions recueillies en ces lieux. Cette méthode ne permet cependant que de reconnaître des lieux de l’environnement préalablement explorés par le robot. Sans modèle de la variation des capteurs, il est en effet impossible de prévoir les valeurs que les capteurs relèveront dans un lieu inexploré, même s’il est proche ou entouré de lieux connus. Pour une telle utilisation directe, seules deux procédures permettant, d’une part, de mémoriser une perception et, d’autre part, de comparer deux perceptions, sont alors nécessaires. Ces procédures peuvent être mises en œuvre à partir de tous les types de capteurs existants. Il est, par exemple, possible d’utiliser la couleur dominante de l’environnement autour du robot, la température (en supposant qu’elle caractérise une zone de l’environnement, comme pour une chambre froide), la force du signal wifi ou le temps de retour d’une onde sonore quand elle est envoyée dans une direction donnée. La seule propriété utilisée est la constance des valeurs mesurées par un capteur pour un lieu donné. Cette constance permet de reconnaître un lieu déjà visité ou d’identifier un lieu nouveau dans l’environnement. 29 Robotique Mobile - david.filliat@ensta-paristech.fr3.2. INFORMATIONS EXTÉROCEPTIVES 3.2.4 Utilisation d’un modèle métrique La seconde méthode d’utilisation d’un capteur consiste à utiliser un modèle métrique associé . Un tel modèle permet de traduire les informations données par le capteur dans un espace métrique qui est en général le même que celui utilisé pour estimer la position du robot grâce à l’odométrie. Il est ainsi possible d’estimer la position d’objets de l’environnement par rapport au robot, et ainsi de prévoir les données que ce capteur relèvera pour des positions différentes du robot. L’utilisation d’un tel modèle n’est toutefois possible que pour certains capteurs. Il est, par exemple, possible d’utiliser un tel modèle associé à un capteur à ultrasons, à un télémètre laser ou à une paire de caméras stéréoscopique, mais pas à un capteur d’odeur. a b FIGURE 3.1 – Un modèle métrique pour un capteur permet deux utilisations de ses données. La première est similaire à celle qui traite de telles données sans modèle métrique et requiert la simple mémorisation de ce qui est perçu en un lieu donné (Partie a). La seconde utilise ces données pour reconstituer les objets rencontrés dans l’environnement, objets qui pourront tous être mémorisés dans un cadre de référence commun, indépendamment de la position depuis laquelle ils ont été perçus (Partie b). Avec un tel modèle, les valeurs des capteurs peuvent être utilisées simplement pour caractériser chaque lieu atteint par le robot (cf. figure 3.1a). La méthode est alors la même que celle mise en place quand les capteurs sont utilisés sans modèle métrique. L’utilisation d’un modèle mé- trique présente toutefois l’avantage que les informations recueillies ont une sémantique plus forte et une certaine indépendance au point de vue du robot. En effet, ces informations caractérisent la structure spatiale locale de l’environnement, en plus de la simple apparence de l’environnement depuis la position du robot. Cette structure spatiale peut alors être utilisée lors de la comparaison de différents lieux. Il est par exemple possible de reconnaître un couloir en fonction de sa largeur, indépendamment de la position du robot dans ce couloir. En effet, sans utilisation de modèles métriques, deux perceptions recueillies en des positions différentes du couloir seront simplement différentes. En utilisant un modèle métrique, il est possible de calculer la largeur du couloir, par exemple, à partir des données recueillies et ainsi de déterminer si ces deux positions peuvent correspondre au même couloir. Cependant, grâce à un modèle métrique, les perceptions peuvent être utilisées de manière différente. En effet, dans l’utilisation précédente, sans modèle métrique, elles sont utilisées pour Robotique Mobile - david.filliat@ensta-paristech.fr 30CHAPITRE 3. LES SOURCES D’INFORMATION y x a b c A1 I1 A2 A3 ? I2 A3 ? A3 I1 A1 A2 I2 ? ? Environnement Odométrie Modèle métrique Pas de modèle métrique Odométrie Mémorisation directe Modèle métrique Cadre de référence commun FIGURE 3.2 – Un modèle métrique des perceptions permettent d’inférer les valeurs qui devraient être perçues pour des positions encore non visitées. Dans cet exemple, les données A1 et A2 sont perçues en deux positions reliées par des données proprioceptives I1 (partie a). L’utilisation d’un modèle métrique permet de fusionner ces informations dans un cadre de référence commun où des objets sont représentés, ici deux murs orthogonaux (partie b, haut). Sans modèle métrique, ces données peuvent seulement être mémorisées de manière séparée (partie b, bas). Dans le cas de l’utilisation d’un modèle métrique, les données peuvent ensuite être utilisées pour estimer la perception A3 pour une nouvelle position reliée à la pré- cédente par les données proprioceptives I2. Ici, le modèle permet d’inférer que les données A3 correspondent à un coin de murs (partie c, haut). Sans un tel modèle, seules les positions visitées peuvent être reconnues, et aucune inférence ne peut être faite pour les positions non visitées (partie c, bas). caractériser l’apparence de l’environnement depuis un lieu. Cette caractérisation ne permet pas d’identifier individuellement des objets distants du robot qui pourraient servir de points de repères, les amers. L’utilisation d’un modèle métrique permet l’identification de tels points (cf. figure 3.1b). La perception de ces amers permet alors, en retour, d’obtenir des informations sur la position du robot. Cette utilisation des perceptions offre l’avantage supplémentaire de permettre au robot d’inférer les valeurs que mesureront les capteurs dans des positions différentes, mais voisines de sa position courante (cf. figure 3.2). Par exemple, si un robot perçoit un mur à cinq mètres devant lui, il peut prédire qu’en avançant d’un mètre, il percevra le mur à quatre mètres. Un autre moyen de présenter cette propriété est de dire que les perceptions seules permettent d’estimer la position métrique relative de deux lieux (cf. figure 3.3). Ainsi, si un robot perçoit deux fois un mur devant lui, d’abord à cinq mètres puis à quatre mètres, il pourra en déduire qu’il a avancé d’un mètre. Cette propriété permet au robot d’estimer sa position avec précision sur une part plus importante de son environnement et ne limite plus la localisation aux lieux déjà visités. Cet avantage est une conséquence directe de la fusion des informations proprioceptives et des perceptions au sein 31 Robotique Mobile - david.filliat@ensta-paristech.fr3.2. INFORMATIONS EXTÉROCEPTIVES d’une même représentation, qui permet le passage d’un type d’information à l’autre. A1 A2 I1 = 0 A1 A2 I1? A2 A1 a b c Environnement Modèle métrique Pas de modèle métrique Correspondance Correspondance DIFFERENT I1 I1 FIGURE 3.3 – Un modèle métrique des capteurs permet d’inférer la position relative I1 de deux lieux depuis lesquelles des perceptions A1 et A2 ont été réalisées (partie a). Cette estimation requiert d’abord la recherche d’un objet de l’environnement commun aux deux perceptions (partie b, haut). L’utilisation de cet objet commun rend alors possible l’estimation de la position relative I1 des deux lieux (partie c, haut). Sans modèle métrique, seule la similarité de deux perceptions peut être mesurée (partie b, bas). Il est alors seulement possible d’estimer si ces deux situations peuvent correspondre au même lieu ou non, c’est-à-dire si I1 est nulle ou non (partie c, bas). Toutefois, la mise au point d’un tel modèle métrique peut être difficile. La relation qui lie la valeur mesurée par un capteur à la position des objets du monde réel peut être, en effet, très complexe. Dans le cas des capteurs à ultrasons, par exemple, si un mur se trouve juste dans l’axe du capteur, sa distance est simplement mesurée par le temps mis par l’onde sonore pour revenir au capteur. Mais, dans le cas où le mur est fortement incliné par rapport au capteur, l’écho peut ne pas revenir en direction du capteur qui ne détectera alors aucun obstacle. Un autre problème vient de la texture des murs. Un mur recouvert de textile ou d’un matériau souple renverra les échos très différemment d’un mur de béton. En conséquence, pour une distance donnée, le capteur percevra des distances différentes suivant le matériau des murs. Ces deux exemples montrent que le modèle métrique associé à un capteur ne dépend pas que du capteur. Il dépend aussi fortement de propriétés locales de l’environnement qui sont difficiles ou impossibles à prendre en compte dans un modèle du capteur seul. Robotique Mobile - david.filliat@ensta-paristech.fr 32CHAPITRE 3. LES SOURCES D’INFORMATION 3.3 Fusion d’informations En résumé, les informations proprioceptives sont simples à utiliser, mais dérivent au cours du temps, tandis que les perceptions ne dérivent pas, mais souffrent des problèmes de variabilité perceptuelle et d’Ambiguïté. La solution pour résoudre ces problèmes est de fusionner ces deux types d’information. Il est par exemple possible d’utiliser les informations proprioceptives afin de distinguer deux positions physiquement différentes mais similaires pour le système perceptif. Ainsi deux lieux, dont la position relative mesurée par les données proprioceptives est non nulle, ne seront pas confondus. Cette solution est celle qui est mise en œuvre dans la majorité des systèmes de navigation, car elle permet d’utiliser les deux sources d’informations en limitant les défauts inhérents à chacune. Ainsi la dégradation progressive des informations proprioceptives est compensée par la reconnaissance de positions de l’environnement grâce aux perceptions. Inversement, le problème de perceptual aliasing est réglé par l’utilisation des données proprioceptives. Comme nous le verrons dans ce cours, il existe de nombreuses méthodes pour utiliser conjointement les deux sources d’informations. Ces méthodes diffèrent par leur capacité à utiliser de manière plus ou moins efficace les avantages des deux types d’informations. D’une manière gé- nérale, la qualité d’un système de navigation dépend fortement de cette capacité. 33 Robotique Mobile - david.filliat@ensta-paristech.fr3.3. FUSION D’INFORMATIONS Robotique Mobile - david.filliat@ensta-paristech.fr 34CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE Chapitre 4 Matériels courants en robotique mobile 4.1 Les bases mobiles Nous présentons rapidement les différents types de bases mobiles utilisées en robotique, en nous focalisant sur les plateformes mobiles terrestres pour le milieu intérieur. Ce cours ne portant pas sur les méthodes de commande, nous ne rentrerons pas en détails dans les modèles cinématiques ou dynamiques associés. Nous ne parlerons pas non plus des effecteurs permettant au robot d’agir sur son environnement, tels que les bras articulés. 4.1.1 Holonomie En robotique, une plateforme est dite holonome lorsque que le nombre de degrés de libertés contrôlables est égal au nombre total de degrés de liberté. Pour un robot se déplaçant sur un plan, il y a 3 degrés de liberté (deux translations et une rotation). A partir d’une position donnée, une plateforme holonome devra donc pouvoir se déplacer en avant, sur le coté et tourner sur elle-même. Cette capacité permet de contrôler très simplement le robot car tous les déplacements imaginables sont réalisables, ce qui simplifie le problème de planification de trajectoire. De nombreuses plateformes simples ne sont pas holonomes. C’est par exemple le cas des voitures, ce qui oblige à manœuvrer pour réaliser certaines trajectoires. Par exemple, il est né- cessaire de faire un créneau pour réaliser un déplacement latéral. Ces contraintes devront donc être prises en compte lors de la planification de trajectoires. Nous allons cependant voir quelques mécanismes permettant d’obtenir des plateformes holonomes, ou s’en approchant. 4.1.2 Les plates-formes différentielles Une des configurations les plus utilisées pour les robots mobiles d’intérieur est la configuration différentielle qui comporte deux roues commandées indépendamment. Une ou plusieurs roues folles sont ajoutées à l’avant ou à l’arrière du robot pour assurer sa stabilité (Figure 4.1). Cette plate-forme est très simple à commander, puisqu’il suffit de spécifier les vitesses des deux roues, 35 Robotique Mobile - david.filliat@ensta-paristech.fr4.1. LES BASES MOBILES et permet de plus au robot de tourner sur place. Cette possibilité permet de traiter dans certains cas le robot comme un robot holonome, ce qui va simplifier la planification de déplacement et la commande du robot. r l v ω ω1 FIGURE 4.1 – Exemple de plate-forme différentielle. Pioneer 2 DX de la société MobileRobots. Urban Robot de la société iRobot. L’estimation du déplacement par odométrie est également très simple à partir de la mesure des vitesses de rotation des deux roues ω1 et ω2. Les vitesses de translation v et de rotation ω sont en effet données par : v = ω1r +ω2r 2 ω = ω1r −ω2r 2l Ce type de plate-forme peut également être utilisé avec des chenilles ce qui fournit une capacité de franchissement de petits obstacles intéressante (Figure 4.1). Ces plates-formes peuvent ainsi être utilisées en extérieur ou dans des décombres. L’utilisation de chenilles conduit cependant à une odométrie très bruitée à cause du contact mal défini entre les chenilles et le sol qui glissent beaucoup, notamment lors des rotations. L’estimation de la direction par l’odométrie sur ce type de plates-formes est donc en général rapidement inutilisable. 4.1.3 Les plates-formes omnidirectionnelles Les plates-formes omnidirectionnelles permettent de découpler de manière plus nette le contrôle de la rotation et de la translation d’un robot et sont donc quasiment holonomes. Il existe différents types de plateformes omnidirectionnelles. Le premier utilise trois ou quatre roues qui tournent à la même vitesse pour fournir une translation et un mécanisme qui permet d’orienter simultanément ces roues dans la direction du déplacement souhaitée (Figure 4.2). Le corps du robot lui-même n’effectue pas de rotation mais uniquement des translations. Ce système permet un contrôle très simple et relativement rapide car les changement de direction ne concernent que les roues et peuvent donc se faire très vite. Par contre ces plates-formes sont relativement limitées en capacité de franchissement et requièrent un sol très plan. Une deuxième catégorie de plateformes utilise des roues dites "suédoises", qui n’offrent pas de résistance au déplacement latéral (Figure 4.3). La plateforme comporte trois roues dont les axes sont fixes. Les déplacements dans toutes les directions et en rotation sont obtenus en faisant varier individuellement les vitesses des roues. La plateforme tourne sur place lorsque les trois Robotique Mobile - david.filliat@ensta-paristech.fr 36CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE FIGURE 4.2 – Exemple de plate-forme omnidirectionnelle à roues orientables. FIGURE 4.3 – Exemple de plate-forme omnidirectionnelle à roues suédoises. roues tournent dans le même sens, à la même vitesse. Lorsque une roue est fixe, et que les deux autres tournent en sens opposé, la plateforme avance en direction de la roue fixe. Différentes combinaisons de vitesses permettent d’obtenir des déplacements quelconques. 4.1.4 Les plates-formes non holonomes Des plates-formes non holonomes, telles que les voitures, sont également utilisées en robotique mobile (Figure 4.4). C’est plus particulièrement le cas dans le domaine des véhicules intelligents. Ces plates-formes sont toutefois plus difficile à commander car elle ne peuvent pas tourner sur place et doivent manœuvrer, ce qui peut être difficile dans des environnements encombrés. La commande de ces plates-formes pour réaliser un déplacement particulier est un problème à part entière que nous n’aborderons pas dans ce cours. Par contre, il est possible de prendre en compte ces contraintes de manière relativement simple dans la planification (voir chapitre III). 37 Robotique Mobile - david.filliat@ensta-paristech.fr4.1. LES BASES MOBILES FIGURE 4.4 – Exemple de plate-forme non holonome de type Ackerman. 4.1.5 Les plates-formes à pattes FIGURE 4.5 – Exemples de robots à pattes. Hexapode de AAI Canada, Aibo de Sony, Nao de Aldebarran Robotics. Des plates-formes à deux, quatre ou six pattes peuvent également être utilisée. Elle ont l’avantage théorique de pouvoir se déplacer sur des terrains assez complexes, même si en pratique la plupart de ces plates-formes ne fonctionnent que sur des sols plans. Les plates-formes à six pattes sont relativement pratiques car le robot peut être en équilibre permanent sur au moins 3 pattes, ce qui facilite le contrôle. Les plates-formes à deux ou quatre pattes sont plus complexes à commander et le simple contrôle de la stabilité et d’une allure de marche correcte reste aujourd’hui difficile, ce qui les rend en général relativement lentes. L’odométrie de ce type de plates-formes est de plus généralement d’assez faible qualité. Ces différents facteurs font que ces plates-formes sont rarement utilisées quand l’application visée a un besoin précis de positionnement et de navigation. De telles plates-formes commencent cependant à apparaître à relativement grande échelle (par exemple le robot Nao de Aldebarran Robotics). Robotique Mobile - david.filliat@ensta-paristech.fr 38CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE 4.2 Les capteurs Nous présentons dans cette section les capteurs les plus couramment utilisés en robotique mobile pour les besoins de la navigation ainsi que des modèles probabilistes associés qui seront utilisés dans plusieurs méthodes de navigation. 4.2.1 Les capteurs proprioceptifs Les capteurs proprioceptifs permettent une mesure du déplacement du robot. Ce sont les capteurs que l’on peut utiliser le plus directement pour la localisation, mais ils souffrent d’une dérive au cours du temps qui ne permet pas en général de les utiliser seuls. Odométrie L’odométrie permet d’estimer le déplacement de la plateforme à partir de la mesure de rotation des roues (ou du déplacement des pattes). La mesure de rotation est en général effectuée par un codeur optique disposé sur l’axe de la roue, ou sur le système de transmission (par exemple sur la sortie de la boite de vitesse pour une voiture). Le problème majeur de cette mesure est que l’estimation du déplacement fournie dépend très fortement de la qualité du contact entre la roue (ou la patte) et le sol. Elle peut être relativement correcte pour une plate-forme à deux roues motrices sur un sol plan de qualité uniforme, mais est en général quasiment inutilisable seule pour un robot à chenille par exemple. Pour limiter ce problème, il peut être intéressant de positionner le codeur optique sur une roue non motrice qui glissera moins. Notons cependant que l’erreur de ces méthodes se retrouve en général principalement sur l’estimation de la direction du robot, tandis que la mesure de la distance parcourue est souvent de meilleure qualité. Modèle probabiliste La majorité des modèles de localisation et de cartographie présentés dans ce cours (voir chapitre III) vont faire appel à un modèle probabiliste de cette mesure. Il existe deux types de modèles : les modèles directs (donnant la probabilité de la mesure en fonction du déplacement réel) et les modèles inverses (donnant la probabilité du déplacement réel en fonction de la mesure). Dans le cas de l’odométrie, la plupart des méthodes utilisent un modèle inverse afin d’interpréter les mesures réalisées. Il existe divers types de modèles, mais les plus simples et les plus utilisés sont des modèles supposant que les paramètres du mouvement (direction θ et longueur d du déplacement, changement de direction φ du robot, cf Figure 4.6, gauche) sont statistiquement indépendants et soumis à un bruit Gaussien : P(d,θ,φ|do,θo,φo) = e −  d−do σd 2 ×e −  θ−θo σθ 2 ×e −  φ−φo σφ 2 où d,θ,φ sont les valeurs réelles et do,θo,φo les valeurs observées. 39 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS FIGURE 4.6 – Modèle probabiliste de l’odométrie. Paramètres du déplacement à gauche. Exemple de densité de probabilité après un déplacement rectiligne à droite. En général, les écarts types de ces différentes gaussiennes (σd,σθ,σφ) dépendent de la valeur de la mesure : l’erreur sur la longueur du déplacement pourra par exemple être proportionnelle à cette longueur : σd = γ×d Il est possible d’utiliser des modèles beaucoup plus fins de l’odométrie reposant sur le processus physique utilisé pour la mesure du déplacement. Il est par exemple possible de faire une hypothèse de bruit gaussien sur le capteur réalisant la mesure de rotation de chaque roue puis, par calcul, d’en déduire l’erreur sur l’estimation du déplacement du robot. Cependant, une telle précision n’est souvent pas nécessaire dans de nombreux algorithmes. Comme nous le verrons au chapitre sur la localisation, ces modèles probabilistes peuvent être utilisés pour générer des positions possibles du robot selon la distribution de probabilité déduite de la mesure de l’odométrie. Les systèmes radar doppler et optiques Au lieu de mesurer le déplacement par des mesures sur les roues, il est possible d’utiliser un radar pointé vers le sol qui permet de mesurer la vitesse du véhicule par effet Doppler. Il existe aussi des systèmes optiques, basés sur le même principe que les souris d’ordinateur, qui mesurent le déplacement du véhicule en analysant le mouvement relatif du sol (figure 4.7). Ces systèmes présentent l’avantage d’être plus précis que la mesure passant par les roues, notamment car ils sont indépendants des dérapages possible de ces roues. Il sont cependant en général relativement chers et encombrants et sont assez rares sur les petites plates-formes. Robotique Mobile - david.filliat@ensta-paristech.fr 40CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE FIGURE 4.7 – Exemple d’odomètre optique Correvit L-CE de CORRSYS- DARTON Sensorsysteme GmbH. Les systèmes inertiels La mesure de déplacement potentiellement la plus fiable provient de la mesure des accélé- rations de la plate-forme par des capteurs inertiels. Cette mesure est potentiellement fiable car elle ne dépend pas de la nature locale de l’environnement, cependant les capteurs inertiels sont tous entachés de bruit de mesure qui produit une dérive de l’estimation de la position au cours du temps. La qualité des mesures inertielles dépend très fortement du type de capteurs utilisées. Historiquement, les premiers capteurs ont été réalisés à base de systèmes mécaniques et peuvent fournir des mesures extrêmement précise, au prix d’un coût et d’une masse très élevés. Ces dernières années ont vu apparaître de nouvelles technologies de capteurs, notamment basés sur les techniques de micro-électronique, qui ont permis la réalisation de capteurs inertiels “bas coût” et l’apparition de ces capteurs dans des produits grand public. La précision de ces capteurs est toutefois de quelques ordres de grandeur plus faible, ce qui rend leur utilisation isolée quasiment impossible. Ces capteurs fournissent toutefois un très bon complément à l’odométrie, notamment pour l’estimation de la direction. L’accélération en translation de la plate-forme est mesurée par des accéléromètres. On dispose en général deux accéléromètres pour prendre des mesures dans deux directions perpendiculaires du plan de déplacement du robot. Un troisième peut être disposé verticalement afin de mesurer l’accélération en trois dimensions. L’accélération angulaire est mesurée par des gyromètres. On dispose en général un gyromètre selon l’axe vertical, qui permet ainsi de mesurer l’angle de lacet du robot. Deux autres gyromètres peuvent être positionnés selon deux axes du plan de déplacement afin d’estimer la direction en trois dimensions. Il est également possible de mesurer la rotation du robot par rapport à un axe de référence en utilisant un gyroscope. Cette mesure s’effectue en général par rapport à un axe de référence mis en rotation et isolé mécaniquement le plus possible du robot, ce qui rend sa direction indépendante de la direction du robot. Cette mesure peut être moins bruitée que l’intégration du signal d’accélération mais dépend très fortement de la qualité de la réalisation mécanique du système, 41 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS qui dépend très directement du prix du gyroscope. Enfin, les magnétomètres permettent, par la mesure du champ magnétique terrestre, de dé- duire la direction du nord. Ces capteurs peuvent utiliser différentes technologies et ont l’avantage de fournir une direction de référence stable au cours du temps (au contraire des gyroscopes qui dérivent). Ces capteurs sont toutefois très délicats à utiliser en intérieur car ils sont très sensibles aux masses métalliques présentes dans les bâtiments et leur structure. En pratique, on les utilise donc principalement en extérieur en apportant le plus grand soin à leur positionnement sur le robot pour éviter les influences des composants du robot, notamment les moteurs électriques. FIGURE 4.8 – Centrale intertielle Crista de Cloud Cap Technology. L’ensemble de ces éléments (accéléromètres, gyromètres, magnétomètres) peut être réuni pour former une centrale inertielle qui permet d’estimer complètement les six degrés de libertés de la position dans un espace à 3 dimensions. Les centrales inertielles “bas coût” sont cependant aujourd’hui de qualité insuffisante pour une utilisation isolée, tandis que les centrales de qualité correcte restent très chères. Ce domaine est cependant en évolution rapide avec l’arrivée de nouvelles technologies et l’apparition de centrales “bas coût” de bonne qualité devrait se faire dans les prochaines années. L’utilisation des données fournies par ce type de senseurs passe aussi en général par un modèle probabiliste, qui peut être du type de celui présenté pour l’odométrie. Cependant, la gestion du bruit interne de ces capteurs demande en général des modèles beaucoup plus précis, qui estiment explicitement la dérive des capteurs afin de la corriger. Ceci permet de bénéficier de modèles plus précis en sortie également. 4.2.2 Les télémètres Il existe différents types de télémètres, qui permettent de mesurer la distance aux éléments de l’environnement, utilisant divers principes physiques. Télémètres à ultrason Les télémètres à ultrason sont historiquement les premiers à avoir été utilisés. Il utilisent la mesure du temps de vol d’une onde sonore réfléchie par les obstacles pour estimer la distance Robotique Mobile - david.filliat@ensta-paristech.fr 42CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE Zone aveugle Obstacle Télémètre Distance mesurée cone de diffusion de l’onde sonore FIGURE 4.9 – Principe du télémètre à ultrasons et exemple de télémètre réel. (Figure 4.9). Ces télémètres sont très simple et peu cher, et sont donc très répandus, mais possèdent de nombreux inconvénients. En premier lieu, deux télémètres voisins ne peuvent être utilisés simultanément, car il est impossible de savoir par lequel des deux télémètres une onde réfléchie a été émise (phénomène de “crosstalk”). Un robot possédant plusieurs télémètres doit donc les activer l’un après l’autre, ce qui entraîne un taux de rafraîchissement global des mesures relativement faible. Ces télémètres possèdent une “zone aveugle”, de quelques centimètres, en dessous de laquelle ils ne peuvent détecter les obstacles. Cette zone est due a une temporisation entre l’émission de l’onde sonore et le début de la détection de l’onde réfléchie qui est nécessaire pour ne pas perturber cette mesure. De plus, l’onde réfléchie est très sensible aux conditions environnementales locales. Ainsi, si l’angle entre l’obstacle et la direction de l’onde sonore est trop faible, il n’y aura pas de retour de l’onde sonore et l’obstacle ne sera pas perçu. L’onde de retour dépend également de la texture de l’obstacle. Un mur couvert de moquette pourra par exemple ne pas être détecté. Les télémètres ultrason détectent les obstacles se situant dans un cône relativement large (d’angle au sommet d’environ 30 degrés). Cette caractéristique peut être à la fois un avantage et un inconvénient. C’est un inconvénient car un obstacle détecté n’est pas localisé en angle à l’intérieur du cône de détection, et on obtient donc une mesure de la position relativement imprécise. C’est par contre un avantage car des éléments relativement fins (les pieds de table ou de chaise par exemple) sont détectés dans ce cône, alors qu’il pourraient ne pas être détectés par des télémètres ayant un angle d’ouverture très fin. Télémètres à infrarouge Les télémètres infrarouges possèdent l’avantage d’avoir un cône de détection beaucoup plus restreint. Il utilisent une lumière infrarouge au lieu d’une onde sonore pour la détection et peuvent être basés sur différentes techniques qui permettent de recueillir plus ou moins d’information. Il est possible de mesurer simplement le retour ou le non-retour d’une impulsion codée, ce 43 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS FIGURE 4.10 – Principe du télémètre infrarouge à triangulation et exemple de télémètre réel (Sharp). qui permet de détecter la présence ou l’absence d’un obstacle dans une certaine portion de l’espace. Il est également possible de réaliser une triangulation sur le faisceau de retour de l’onde lumineuse, ce qui permet d’avoir une mesure de la distance de l’obstacle (figure 4.10). Les inconvénients de ces télémètres sont liés à leur portée, en général relativement restreinte, et à leur sensibilité aux sources de lumières qui contiennent un fort rayonnement infrarouge. Un projecteur du type de ceux utilisés pour la télévision pointé sur le robot, par exemple, sature en général complètement le récepteur et empêche toute détection d’obstacle. Ils sont également très sensibles à la couleur et à la nature de la surface de l’obstacle (par exemple, ils détectent difficilement les vitres et les obstacles noir mats). Télémètres laser Les télémètres les plus utilisés à l’heure actuelle pour des applications de cartographie et de localisation sont les télémètres laser à balayage. Ils utilisent un faisceau laser mis en rotation afin de balayer un plan, en général horizontal, et qui permet de mesurer la distance des objets qui coupent ce plan (Figure 4.11, 4.11). Cette mesure peut être réalisée selon différentes techniques soit en mesurant le temps de vol d’une impulsion laser, soit par triangulation. Les télémètres courants ont une bonne résolution angulaire car ils permettent d’obtenir une mesure de distance tout les demi degrés, sur une zone de 180 ou 360 degrés selon les modèles. La mesure est de plus relativement précise (avec un bruit de l’ordre de quelques centimètres) à une distance relativement grande (plusieurs dizaines de mètres). La fréquence d’acquisition est en général de l’ordre de la dizaine de Hertz, voire proche de la centaine pour certains modèles. Ces télémètres sont très utilisés en environnement intérieur car il fournissent des données abondantes et précises sur la position des objets caractéristiques de l’environnement tels que les murs. Ils possèdent toutefois un certain nombre d’inconvénients. En premier lieu, leur zone de perception est restreinte à un plan et ne permet donc pas de détecter les obstacles situés hors de ce plan (un petit objet posé au sol par exemple). Ils ne peuvent pas non plus détecter les objets ne réfléchissant pas correctement la lumière du laser (en premier lieu les vitres, mais aussi certains objets très réfléchissants, tels que les objets chromés). Pour limiter ces inconvénients, il est possible de les utiliser en conjonction avec des capteurs à ultrason qui ont un cône de Robotique Mobile - david.filliat@ensta-paristech.fr 44CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE Télémètre Mesure obtenue FIGURE 4.11 – Illustration du principe de fonctionnement d’un télémètre Laser et un exemple de Télémètre Laser à balayage, fournissant 720 mesure réparties sur 360 degrés, à 5 Hz (marque Ibeo). détection plus large et qui peuvent détecter les vitres. Enfin, la plupart des algorithmes de cartographie et de localisation existants supposent que le plan de mesure du télémètre laser reste horizontal et à hauteur constante, ce qui n’est plus vrai en cas de sol irrégulier ou, dans la majorité des cas, en extérieur. Il est alors nécessaire de passer à une localisation et une cartographie en 3D. FIGURE 4.12 – Un exemple de télémètre laser à balayage selon 2 axes (à gauche) et de camera permettant d’obtenir une image de profondeur de 320x240 pixels (à droite). Il existe des télémètres laser balayant l’espace selon deux axes 4.12. Ils permettent ainsi d’obtenir une image de distance selon un angle solide de l’ordre de quelques dizaines de degrés dans les deux dimensions. Ces télémètres restent toutefois cher et fragile du fait de la mécanique nécessaire au balayage. De plus, la fréquence d’acquisition est relativement faible (de l’ordre de 45 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS quelques Hertz), ce qui pose problème lorsque le robot est en mouvement. Ces télémètres sont donc plutôt destinés à des applications relativement statiques comme la création de modèles 3D. Il existe également des systèmes sans balayage permettant d’obtenir une image de profondeur de la même manière qu’une caméra couleur standard. Plusieurs technologies sont utilisées, soit par mesure de temps de vol d’une impulsion laser ou infrarouge, soit par triangulation à partir de projecteurs infrarouges. Ces capteurs sont récents, mais sont très intéressants pour la robotique mobile car ils permettent d’obtenir une information dense à une fréquence assez élevée (image de profondeur de 320x240 à 30 Hz pour la caméra Kinect par exemple, figure 4.12). Ces informations peuvent être couplées à une image couleur, on parle alors de caméra RGBD (D pour Depth). Il reste cependant certaines limitations, notamment pour l’emploi en extérieur où l’information de profondeur peut être perdue à cause de la lumière du soleil qui masque la lumière infrarouge. FIGURE 4.13 – Un exemple de télémètre laser à balayage a 64 nappes conçu par Velodyne. Enfin, principalement pour les véhicules intelligents, il existe un compromis qui consiste à utiliser plusieurs nappes laser avec différentes inclinaisons afin d’avoir des modèles assez précis de l’environnement sur 360 degrés (figure 4.13). Ces capteurs restent assez lourds et chers, mais permettent de réaliser quasiment l’ensemble des tâches nécessaires pour un véhicule comme la localisation, la cartographie et la détection de piétons ou de véhicules. Modèle probabiliste Les modèles probabilistes associés aux télémètres permettent de donner la probabilité de la mesure en fonction de la distance réelle de l’obstacle. Pour les capteurs réalisant plusieurs mesures, les probabilités sont en général estimées pour chacune des mesures individuelles prises depuis une position, puis agglomérées par produit en supposant les mesures indépendantes : P(Scan|Obstacles) = M ∏ i=1 P(mesurei |Obstacles) Robotique Mobile - david.filliat@ensta-paristech.fr 46CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE FIGURE 4.14 – Modèle probabiliste de télémètre par composition d’évènements élémentaires et exemple d’application sur des données réelles de sonars ou de télémètres laser (tiré de [135]). Pour estimer la probabilité d’une mesure individuelle, il est possible d’utiliser une simple loi gaussienne autour de la distance réelle comme modèle probabiliste, mais les modèles sont en général un peu plus évolués et utilisent une combinaison de lois qui modélisent plusieurs phénomènes qui peuvent être responsables de la mesure (Figure 4.14) : – la mesure effective de l’obstacle visé, modélisé par une gaussienne en général – la perception d’un obstacle imprévu, par exemple une personne ou un objet dynamique non présent dans la représentation du monde, modélisé par une loi décroissante telle qu’une exponentielle – la non détection d’un écho, qui donne une mesure à la distance maximale du télémètre, modélisé par un pic. Les paramètres de cette combinaison de lois peuvent être réglés manuellement ou estimés à partir d’un ensemble de mesures, par exemple en utilisant un algorithme de maximisation de l’espérance. Ces modèles peuvent être adaptés à tout les types de télémètres (figure 4.14). 47 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS 4.2.3 Les caméras L’utilisation d’une caméra pour percevoir l’environnement est une méthode attractive car elle semble proche des méthodes utilisées par les humains et fournit un grande quantité d’information sur l’environnement. Le traitement des données volumineuses et complexes fournies par ces capteurs est cependant souvent difficile, mais c’est une voie de recherche très explorée et prometteuse pour la robotique. Caméras simples Une caméra standard peut être utilisée de différentes manières pour la navigation d’un robot mobile. Elle peut être utilisée pour détecter des amers visuels (des points particuliers qui servent de repère, tels que des portes ou des affiches) à partir desquels il sera possible de calculer la position du robot. Si ces amers sont simplement ponctuels, ou de petite taille, il sera en général simplement possible d’estimer leur direction. Dans le cas ou les amers sont des objets connus en 2 ou 3 dimensions, il sera en général possible d’estimer complètement la position du robot par rapport à la leur. Elle peut également être utilisée pour détecter des “guides” de navigation pour le robot, tels que des routes ou des couloirs. FIGURE 4.15 – Illustration du principe de base du flot optique. Il est également possible d’utiliser globalement une image pour caractériser une position ou un point de vue dans l’environnement. Il faudra alors comparer cette image aux nouvelles images acquises par le robot pour savoir si le robot est revenu à cette position. Cette comparaison peut faire appel à différentes techniques, notamment celles utilisées dans le domaine de l’indexation d’image. Lorsque le robot est en mouvement, il est également possible de tirer parti du flot optique (le mouvement apparent des objets dans l’image, voir figure 4.15), afin d’avoir une estimation de la distance des objets. En effet, les objets les plus proches ont un déplacement apparent plus important que les objets lointains. Cette méthode permet notamment de réaliser un évitement d’obstacles ou de réaliser une reconstruction tridimensionnelle de l’environnement (par des techniques connues sous le nom de structure from motion, voir section 4.2.3). Robotique Mobile - david.filliat@ensta-paristech.fr 48CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE Caméras stéréoscopiques FIGURE 4.16 – Exemple de données fournies par des caméras stéréoscopiques. Lorsque l’on dispose de deux caméras observant la même partie de l’environnement à partir de deux points de vue différents, il est possible d’estimer la distance des objets et d’avoir ainsi une image de profondeur (Figure 4.16), qui peut être utilisée pour l’évitement d’obstacles ou la cartographie. Cette méthode suppose toutefois un minimum d’éléments saillants dans l’environnement (ou un minimum de texture) et peut être limitée, par exemple dans un environnement dont les murs sont peint de couleurs uniformes. La qualité de la reconstruction risque également de dépendre fortement des conditions de luminosité. La résolution et l’écartement des deux caméras impose également les profondeurs minimum et maximum qui peuvent être perçues, ce qui peut être limitatif pour la vitesse de déplacement du robot. Des techniques similaires peuvent également être utilisées pour estimer la profondeur à partir d’une caméra en mouvement (méthodes de structure from motion, voir par exemple [67]), la difficulté étant alors d’estimer à la fois la profondeur et les positions relatives de la caméra lors de la prise des deux images. Caméras panoramiques Les caméras panoramiques (catadioptriques) sont constituées d’une caméra standard pointant vers un miroir de révolution (par exemple un simple cône, ou un profil plus complexe qui peut s’adapter à la résolution exacte que l’on veut obtenir sur le panorama) (figure 4.17). L’image recueillie permet d’avoir une vision de l’environnement sur 360 degrés autour de la camera. Le secteur angulaire vertical observé dépend de la forme du miroir et peut être adapté aux besoins de chaque application (Figure 4.17). Ce type de caméra est très pratique pour la navigation car une image prise par une camera panoramique orientée verticalement permet de caractériser une position, indépendamment de la direction du robot. En effet, pour une position donnée et pour deux orientations différentes, la même image sera formée par la caméra, à une rotation autour du centre près, tandis que pour une caméra standard, orientée horizontalement, la scène serait différente. Ces caméras sont donc très pratiques lorsque l’on caractérise une position de manière globale, mais peuvent aussi être utilisées pour détecter des amers ou pour estimer le flux optique. Dans ce cas, toutefois, comme la géométrie de l’image formée est relativement complexe et 49 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS FIGURE 4.17 – Principe des caméras panoramiques catadioptriques, exemple d’image obtenue et illustration du flux optique. comme la résolution obtenue varie énormément selon la direction observée, les algorithmes doivent être adaptés, ce qui pose un certain nombre de problèmes. Concernant le flux optique, cependant, les caméras panoramiques possèdent l’avantage de contenir toujours le point d’expansion et le point de contraction dans l’image, ce qui rend l’estimation du mouvement beaucoup plus aisée (figure 4.17). 4.2.4 Autres capteurs Les capteurs tactiles Les robots peuvent être équipés de capteurs tactiles, qui sont le plus souvent utilisés pour des arrêts d’urgence lorsqu’il rencontre un obstacle qui n’avait pas été détecté par le reste du système de perception. Ces capteurs peuvent être de simples contacteurs répartis sur le pourtour du robot. Il ne détectent alors le contact qu’au dernier moment. Il est également possible d’utiliser des petites tiges arquées autour du robot pour servir d’intermédiaire à ces contacteurs, ce qui permet une Robotique Mobile - david.filliat@ensta-paristech.fr 50CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE détection un peu plus précoce et donne ainsi plus de marge pour arrêter le robot. Les balises Dans certaines applications, il est également possible d’utiliser des balises dont on connaît la position, et qui pourront être facilement détectées par le robot, afin de faciliter sa localisation. Des techniques très diverses peuvent être utilisées pour ces balises. On peut par exemple utiliser un signal radio, émis de manière omnidirectionnel par la balise. Le robot sera alors équipé d’une antenne directionnelle qui lui permettra de détecter la direction des différentes balises, afin de déduire sa position par triangulation. On peut également utiliser des codes couleurs ou des codes barres qui pourront être détectés par une caméra. Le GPS Les besoins de localisation étant omniprésents dans de très nombreux secteurs de la vie actuelle, l’idée d’avoir un système de localisation le plus universel possible à donné lieu à l’apparition du Global Positionning System (GPS). C’est un système de balises dont on a placé les balises sur des satellites en orbite terrestre et qui est par conséquent accessible de quasiment partout à la surface du globe. Ce système permet donc d’avoir une mesure de sa position dans un repère global couvrant la terre avec une précision variant de quelques dizaines de mètres à quelques centimètres suivant les équipements. Ce système est cependant loin de résoudre tous les problèmes de localisation des robots mobiles. Il fonctionne en effet difficilement dans des environnements urbains, et n’est pas utilisable à l’intérieur des bâtiments. Sa précision est de plus souvent trop faible pour qu’un robot terrestre puissent utiliser ces informations seules. En pratique, il est souvent couplé à un système inertiel qui permet de palier aux pertes du signal GPS et il ne remplace de toute façon pas les capteurs du robot qui lui permettent de percevoir son environnement immédiat, qui constitue la source d’information principale pour la navigation à court terme (par exemple l’évitement d’obstacles, par opposition à la navigation à long terme qui consiste à rejoindre un but distant). 4.3 Pour aller plus loin Sensors for Mobile Robots : Theory and Application, Everett Une version en ligne est disponible : http://www-personal.engin.umich.edu/~johannb/my_book.htm 51 Robotique Mobile - david.filliat@ensta-paristech.fr4.3. POUR ALLER PLUS LOIN Robotique Mobile - david.filliat@ensta-paristech.fr 52Deuxième partie Navigation réactive 53 Robotique Mobile - david.filliat@ensta-paristech.frDans cette partie, nous présentons différentes stratégies de navigation réactive. Ces stratégies peuvent être utilisées dans des architectures de contrôle purement réactives, mais aussi comme modules de bas-niveau dans une architecture hybride. Par définition, les stratégies de navigation réactives n’utilisent que les valeurs courantes des capteurs (ou des valeurs sur une petite fenêtre temporelle), et non des données provenant d’un modèle interne, pour décider de l’action à effectuer. 55 Robotique Mobile - david.filliat@ensta-paristech.frRobotique Mobile - david.filliat@ensta-paristech.fr 56CHAPITRE 5. NAVIGATION VERS UN BUT Chapitre 5 Navigation vers un but Nous commençons ici par des méthodes de navigation correspondant aux deux premières catégories de stratégies de navigation définies dans le chapitre 2, c’est à dire l’approche d’un but défini par un objet ou une configuration d’amers. 5.1 Véhicules de Braitenberg Dans son livre “Vehicles : Experiments in Synthetic Psychology”, Valentino Braitenberg [19] décrit une série d’expériences dans lesquelles des robots extrêmement simples peuvent montrer des comportements complexes, qu’un observateur humain associe en général à différents types d’émotions telles que la peur ou l’agression. Nous nous intéressons ici simplement à la structure de ces robots, qui permet de réaliser simplement des comportements pour rejoindre un but visible. Cette structure est devenue l’archétype des méthodes réactives simples. But M1 M2 C1 C2 FIGURE 5.1 – Dans les véhicules de Braitenberg, la vitesse de chacun des deux moteurs du robot dépend de la valeurs de deux capteurs qui détectent la lumière émise par le but. Dans le livre de Braitenberg, le but est matérialisé par une lumière, visible depuis tout l’environnement. Le robot est simplement une plate-forme différentielle, constituée de deux roues dont 57 Robotique Mobile - david.filliat@ensta-paristech.fr5.2. MODÈLE DE CARTWRIGHT ET COLLET on commande les vitesses de rotation et munie de deux capteurs de lumière situés de part et d’autre de l’avant du robot (Figure 5.1). L’architecture interne du robot est simplement constituée de liens entre ces capteurs et les moteurs qui permettent de calculer la vitesse des moteurs en fonction des valeurs des capteurs. En faisant varier les paramètres des connexions, il est alors possible de définir différents comportements du robot. Si la vitesse de chaque moteur est reliée à la valeur du capteur du coté opposé avec un coefficient positif, le robot se dirigera naturellement vers le but. Si, par contre, la vitesse de chaque moteur est reliée à la valeur du capteur du même coté avec un coefficient positif, le robot fuira le but. Ces véhicules réalisent simplement une remontée ou une descente de gradient sur l’intensité de la lumière. Ils correspondent à un simple contrôleur proportionnel en automatique et sont donc relativement sujets à des oscillations dans le comportement du robot. Ils supposent de plus que le but est visible depuis tout l’environnement, ce qui est rarement le cas en pratique. Ce modèle est donc intéressant car c’est la méthode la plus simple possible pour réaliser un déplacement vers un but, mais est difficile à utiliser dans une application réelle. 5.2 Modèle de Cartwright et Collet Le “snapshot model” a été conçu pour expliquer comment des abeilles peuvent utiliser des informations visuelles pour rejoindre un point donné de l’environnement. Il permet à un robot de rejoindre un but dont la position est définie par la configuration d’amers de l’environnement autour de ce but. Amer Amer Amer FIGURE 5.2 – Exemple de snapshot caractérisant la position du but. Le robot mémorise un panorama contenant la position et la taille apparente des amers. Le système perceptif du robot doit lui permettre de détecter la direction et la taille des amers autour de lui. Le robot commence par mémoriser le but en enregistrant la configuration des amers vus depuis la position de ce but (un snapshot, Figure 5.2). Robotique Mobile - david.filliat@ensta-paristech.fr 58CHAPITRE 5. NAVIGATION VERS UN BUT Perception courantes Perceptions depuis le but FIGURE 5.3 – Pour atteindre le but, chaque amer perçu est associé à un des amers mémorisés. Pour chaque appariement, on déduit un vecteur tangentiel dont la norme augmente avec l’écart entre amer perçus et mémorisés. La somme de ces vecteurs donne la direction à prendre pour atteindre le but. Lorsque, par la suite, le robot veut rejoindre ce but, il prend une nouvelle image des amers et, par comparaison entre la configuration courante et la configuration mémorisée au but, il peut déduire de manière très simple la direction dans laquelle se déplacer pour atteindre le but. Cette comparaison est basée sur un appariement entre les amers perçus et les amers mémorisés, chaque appariement permettant de calculer un vecteur dont la somme, pour tous les appariements d’amers, donne la direction à prendre pour rejoindre le but (Figure 5.3). Le robot effectue alors un déplacement de longueur fixée dans cette direction puis recommence le processus tant que le but n’est pas atteint. Là encore, le système est très simple et réalise une descente de gradient sur la configuration des amers afin d’atteindre le but. Il ne fonctionne cependant pas sur l’ensemble de l’environnement et la qualité du comportement obtenu dépend beaucoup de la configuration des amers qui sont utilisés, un ensemble d’amers lointains et bien répartis tout autour du robot donnant les meilleurs résultats. La qualité de l’appariement entre les amers est également primordiale, en effet, si un amer perçu est associé au mauvais amer mémorisé, le vecteur de déplacement déduit sera faux. Le modèle original supposait des amers noirs sur fond blanc, sans identité particulière, pour lequel l’appariement est relativement hasardeux. Il n’est donc pas applicable en pratique. D’autres travaux ont utilisé des amers colorés et différentes contraintes sur l’appariement qui permettent une meilleur robustesse et sont donc applicables à des robots réels [58]. La plupart des implantations de ce modèles supposent de plus que la direction du robot est connue afin de faciliter l’appariement. Avoir une estimation correcte de cette direction peut se révéler difficile en pratique. 59 Robotique Mobile - david.filliat@ensta-paristech.fr5.3. ASSERVISSEMENT VISUEL 5.3 Asservissement visuel L’asservissement visuel [30] (document disponible en ligne 1 ) est une technique d’asservissement de la position d’un robot qui est basée directement sur l’information extraite d’une image, sans modélisation intermédiaire de l’environnement. Développées à l’origine pour la commande des robots manipulateurs, ces techniques permettent également la commande de robots mobiles. FIGURE 5.4 – Illustration du principe de l’asservissement visuel : l’erreur entre une image courante et une image but (écart entre les croix rouges et vertes ici) est utilisée pour calculer une commande qui permettra au robot d’atteindre la position correspondant à l’image but. Dans ces approches, le but à atteindre est spécifié par l’image que le robot devra percevoir depuis cette position. Différentes mesures sont réalisées sur cette image (par exemple la détection de points d’intérêts) et la commande du robot est conçue pour amener à 0 l’écart entre la mesure réalisée sur l’image courante et la mesure réalisée sur l’image cible (figure 5.4). Les choix de mesures dans l’image et de la loi de commande peuvent être très variés, et vont conditionner les trajectoires obtenues par le robot, leur stabilité, leur robustesse aux mauvaises perceptions ou aux mauvaises modélisations du système, etc... Nous ne détaillerons pas ici ces approches, mais il existe plusieurs applications intéressantes en robotique mobile [15, 123, 34]. Notons que ces modèles sont souvent étendus pour fournir une navigation à long terme en enchainant des tâches de contrôle local sur des séquences d’images. Par exemple, [15] présente un système permettant de guider un robot en environnement intérieur à partir du suivi de motifs détectés sur le plafond par une caméra pointée à la verticale. En enchaînant des asservissements sur une séquence d’images, ce système permet au robot de refaire une trajectoire qui a été montrée au préalable par un opérateur. De même, [123] et [34] réalisent le guidage d’un véhicule en extérieur à l’aide d’une caméra pointée vers l’avant. 1. http://www.irisa.fr/lagadic/pdf/2002_hermes_chaumette.pdf Robotique Mobile - david.filliat@ensta-paristech.fr 60CHAPITRE 6. ÉVITEMENT D’OBSTACLES Chapitre 6 Évitement d’obstacles L’évitement d’obstacles est un comportement de base présent dans quasiment tous les robots mobiles. Il est indispensable pour permettre au robot de fonctionner dans un environnement dynamique et pour gérer les écarts entre le modèle interne et le monde réel. Les méthodes que nous présentons sont efficaces à condition d’avoir une perception correcte de l’environnement. Elles seront par exemple très efficaces avec un télémètre laser, mais donneront des résultats plus bruités avec des sonars. Pour limiter ce problème, il est possible d’appliquer ces méthodes sur une représentation locale (c’est-à-dire de l’environnement proche du robot et centrée sur le robot) de l’environnement qui sera construite en fonction des données de quelques instants précédents. Cette représentation intermédiaire permettra de filtrer une grande partie du bruit des données individuelles (en particulier pour les sonars). Il faut également faire attention à ce que les capteurs détectent tous les obstacles. Par exemple un laser à balayage ne verra pas les objets au dessous ou au dessus de son plan de balayage, et pourra voir du mal à percevoir les vitres. Pour cette raison, on utilise souvent une nappe laser couplée à des sonars, ou un système de plusieurs nappes laser inclinées. 6.1 Méthode des champs de potentiel Dans la méthode d’évitement d’obstacles par champs de potentiels, on assimile le robot à une particule se déplaçant suivant les lignes de courant d’un potentiel créé en fonction de l’environnement perçu par le robot. Ce potentiel traduit différents objectifs tels que l’évitement d’obstacles ou une direction de déplacement préférée. Il est calculé par sommation de différentes primitives de potentiels traduisant chacun de ces objectifs (Figure 6.1). Ces différents potentiels peuvent avoir une étendue spatiale limitée ou non (par exemple, n’avoir une influence que près des obstacles) et leur intensité peut dépendre ou non de la distance. Le gradient de ce potentiel donne, en chaque point de l’espace, la direction de déplacement du robot (Figure 6.1). Comme c’est ce gradient, et non la valeur absolue du potentiel, qui nous intéresse, il est possible de calculer directement en chaque point sa valeur par une simple somme vectorielle en ajoutant les valeurs issues des différents potentiels primitifs. Ainsi, pour un robot se déplaçant en ligne droite en espace ouvert et évitant les obstacles qu’il peut rencontrer, nous 61 Robotique Mobile - david.filliat@ensta-paristech.fr6.1. MÉTHODE DES CHAMPS DE POTENTIEL Déplacement selon une direction Eloignement d’une paroi Répulsion d’un point Attraction vers un point Potentiel Ligne de courant FIGURE 6.1 – Illustration de potentiels primitifs dont la combinaison guide les déplacements du robot. Le robot se déplacera selon les lignes de courant. FIGURE 6.2 – Illustration de la combinaison de différents potentiels primitifs. obtenons par exemple les lignes de courant illustrées figure 6.2. De plus, dans la pratique, pour l’évitement d’obstacles, le potentiel est en général calculé dans l’espace relatif au robot et ne sert qu’a décider de la vitesse et de la direction courante. Il n’est donc nécessaire de l’estimer que pour la position courante du robot, en sommant simplement la contribution des différents éléments perçus (Figure 6.3). Le principal inconvénient de cette méthode d’évitement d’obstacles est l’existence, pour certaines configurations d’obstacles (relativement courantes) de minimum locaux du potentiel qui ne permettent pas de décider de la direction à prendre (Figure 6.3). Ce problème peut être traité de différentes façons. Il est par exemple possible de déclencher un comportement particulier lorsque l’on rencontre un tel minimum (déplacement aléatoire, suivi de murs ....). Il est aussi possible d’imposer que le potentiel calculé soit une fonction harmonique, ce qui garanti qu’il n’ait pas de minima, mais rend son estimation beaucoup plus lourde en calcul. Le principe de ces champs de potentiels est formalisé sous le nom de schéma moteur par R. Arkin [4]. Pour lui, un schéma moteur est une action définie sous forme de potentiel en fonction des perceptions du robot. Ces schémas sont utilisés comme contrôleur de bas niveau dans une architecture hybride. Robotique Mobile - david.filliat@ensta-paristech.fr 62CHAPITRE 6. ÉVITEMENT D’OBSTACLES FIGURE 6.3 – Gauche : Illustration de la combinaison de différents potentiels primitifs dans l’espace relatif au robot. Droite : Exemple de minimum local dans un champ de potentiel. 6.2 Méthode Vector Field Histogram La méthode "Vector Field Histogram" [17] a été conçue spécifiquement pour utiliser une grille d’occupation locale construite a partir de capteurs à ultrasons. Cette grille est construite de manière très rapide par la méthode "Histogrammic in motion mapping" (voir section 11.2.3) qui produit une grille dont chaque cellule contient un nombre d’autant plus élevé qu’elle a souvent été perçue comme contenant un obstacle (Figure 6.4 haut). Un histogramme représentant l’occupation de l’environnement autour du robot est ensuite construit à partir de cette grille d’occupation locale. Pour cela, l’environnement est discrétisé en secteurs angulaires pour lesquels la somme des valeurs des cellules est calculée (figure 6.4 bas). Un seuil permettant de tolérer un certain bruit est ensuite utilisé pour déterminer les directions possibles pour le robot : toutes les directions dont la valeur est inférieure au seuil sont considé- rées. Le choix de la direction est finalement réalisé parmi les directions possibles en fonction de contraintes externes (par exemple la direction la plus proche de la direction du but). Cette méthode est extrêmement rapide (elle fonctionne sur un PC 386 à 20MHz !) et a permis historiquement un déplacement réactif à des vitesses assez élevées (environ 1 m/s). Diverses améliorations pour permettre le réglage de la vitesse du robot en fonction de la densité des obstacles ou de la largeur de l’espace angulaire libre sont possibles. 6.3 Méthode de la fenêtre dynamique La méthode de la fenêtre dynamique [47] permet de sélectionner une trajectoire locale du robot qui va éviter les obstacles et dont les variations dans le temps vont respecter des contraintes telles que les capacités de freinage maximales du robot. Pour appliquer l’algorithme, les trajectoires locales sont paramétrées et peuvent prendre des formes différentes en fonction des contraintes d’holonomie du robot par exemple. Une méthode simple applicable à de nombreuses plateformes est d’utiliser les vitesses de translation et de rotation du robot. La méthode de la fenêtre dynamique permet donc, à partir de la perception locale de l’environnement, de sélectionner un couple (v,ω) de vitesses de translation et de rotation du robot qui répond à différentes contraintes, dont celle d’éviter les obstacles. Un tel couple de vitesses, 63 Robotique Mobile - david.filliat@ensta-paristech.fr6.3. MÉTHODE DE LA FENÊTRE DYNAMIQUE Obstacle +1 +1 2 6 5 5 3 8 5 3 6 8 1 1 2 6 5 5 3 8 5 3 6 8 1 1 0 1 ... 11 ... 0 11 Seuil Secteur Somme des cellules FIGURE 6.4 – Partie supérieure : Grille d’occupation locale construite par la méthode "Histogrammic in motion mapping". La grille est construite dans le référentiel du robot : un compteur est incrémenté pour chaque cellule appartenant au secteur angulaire dans lequel un obstacle a été détecté et les valeurs sont déplacées d’une cellule à l’autre en fonction des déplacements du robot. Partie Inférieure : Utilisation de l’histogramme des obstacles pour déterminer la direction de déplacement du robot. Robotique Mobile - david.filliat@ensta-paristech.fr 64CHAPITRE 6. ÉVITEMENT D’OBSTACLES lorsqu’il est appliqué au robot, produit une trajectoire circulaire, pour laquelle la satisfaction des différentes contraintes peut être évaluée. A l’issu de l’évaluation de toutes les contraintes pour tous les couples de vitesses possibles, la méthode de la fenêtre dynamique permet de sélectionner le couple le plus pertinent (qui répond le mieux aux contraintes). v2,ω2 = succès v1,ω1 = échec Environnement réel Perceptions du robot v2,ω2 v1,ω1 FIGURE 6.5 – Contrainte d’évitement d’obstacles pour la méthode de la fenêtre dynamique. La première contrainte est la contrainte d’évitement d’obstacles. C’est une contrainte dure au sens ou elle est binaire (succès / échec) et doit obligatoirement être satisfaite. Elle est évaluée pour chacune des trajectoires possibles à partir de la perception locale de l’environnement à un instant donné et de la position estimée du robot à un pas de temps fixé dans le futur pour la trajectoire courante. Si le robot n’a pas rencontré d’obstacles à cet horizon, la contrainte est respectée ; dans le cas contraire, elle ne l’est pas (Figure 6.5). ω v ωmin ωmax vmax Vitesses conduisant à percuter un obstacle Vitesses conduisant à un déplacement sur Vitesses courantes Vitesses accessibles au prochain pas de temps FIGURE 6.6 – Fenêtre de sélection des vitesses tenant compte de la dynamique du robot. Le respect ou le non respect de cette contrainte est reporté dans un graphe des vitesses qui indique, pour chaque couple de vitesses possible (donc chaque trajectoire), si le robot va ou ne va pas rencontrer un obstacle (Figure 6.6). Dans ce graphe, il est alors possible de tracer la fenêtre des vitesses accessibles au prochain pas de temps à partir des vitesses courantes du robot et 65 Robotique Mobile - david.filliat@ensta-paristech.fr6.3. MÉTHODE DE LA FENÊTRE DYNAMIQUE des valeurs d’accélération et décélération maximales. C’est cette fenêtre qui donne son nom à la méthode car elle permet de prendre en compte la dynamique du robot (à travers la capacité de freinage et d’accélération). Il reste alors à choisir, au sein de cette fenêtre, un couple de vitesses qui ne conduise pas à percuter un obstacle pour garantir un déplacement sûr du robot. ω v ωmin ωmax vmax Direction préférentielle FIGURE 6.7 – Contrainte “souple” exprimant une préférence sur la direction à prendre. Pour faire le choix parmi toutes les vitesses possibles au sein de cette fenêtre, il est possible d’utiliser des contraintes “souples” supplémentaires pour exprimer des préférences au sein de cet espace des vitesses accessibles. Ces contraintes s’expriment par une fonction de coût G(v,ω) qui est en général la somme de plusieurs termes. Ces termes peuvent exprimer une préférence a priori sur les vitesses, une préférence pour les trajectoires s’éloignant le plus des obstacles, ou une préférence de direction si l’on dispose par exemple d’une estimation de la direction d’un but à long terme (Figure 6.7). Le couple de vitesses minimisant ce coût au sein de la fenêtre est alors sélectionné. Il garantit un déplacement sans rencontrer d’obstacles et le meilleur respect possible des contraintes souples dans ce cadre. Dans la pratique, les valeurs des différentes contraintes sont évaluées en différents points du graphe des vitesses, le nombre de points dépendant notamment de la puissance de calcul disponible et de la complexité de l’évaluation de chaque contrainte. L’utilisation de la fenêtre dynamique est très intéressante pour un robot se déplaçant rapidement, ou pour un robot ayant des capacités d’accélération et de ralentissement limitées. Elle permet alors de produire un déplacement du robot sûr et régulier. Pour des robots qui ont une forte capacité d’accélération et de décélération (par exemple un robot léger avec de bons moteurs électriques), on peut considérer que toutes les vitesses sont accessibles presque instantanément. Il peut alors être suffisant de ne considérer que la cinématique, et non la dynamique, ce qui se traduit par la prise en compte d’un seul point du graphe, et non d’une fenêtre. La recherche du couple de vitesse est ainsi simplifiée. Robotique Mobile - david.filliat@ensta-paristech.fr 66CHAPITRE 7. APPRENTISSAGE PAR RENFORCEMENT Chapitre 7 Apprentissage par renforcement Les méthodes que nous avons vu jusqu’à présent sont des associations entre perceptions et actions conçues par des ingénieurs. Or il existe des techniques d’apprentissage (notamment l’apprentissage par renforcement) permettant de créer des associations de ce type à partir d’informations d’assez haut niveau sur la tâche à réaliser. L’apprentissage par renforcement est une méthode qui permet de trouver, par un processus d’essais et d’erreurs, l’action optimale à effectuer pour chacune des situations que le robot va percevoir afin de maximiser une récompense. C’est une méthode d’apprentissage orientée objectif qui va conduire à un contrôleur optimal pour la tâche spécifiée par les récompenses. Cette méthode est de plus non supervisée car la récompense ne donne pas l’action optimale à réaliser mais simplement une évaluation de la qualité de l’action choisie. Elle permet enfin de résoudre les problèmes de récompense retardée pour lesquels il faut apprendre a sacrifier une récompense à court terme pour obtenir une plus forte récompense à long terme et donc apprendre de bonnes séquences d’actions qui permettront de maximiser la récompense à long terme. Du fait de toutes ces caractéristiques, l’apprentissage par renforcement est une méthode particulièrement adaptée à la robotique. 7.1 Formalisation Le problème de l’apprentissage par renforcement pour un agent se formalise à partir des éléments suivants : – Un ensemble d’états S correspondant à la perception que l’agent a de l’environnement, – Un ensemble d’actions possibles A , – Une fonction de récompense R : {S,A} → R. L’agent va interagir avec son environnement par pas de temps discrets, en percevant l’état de l’environnement st , en choisissant une action at en fonction de cet état et en recevant la récompense rt+1 associée (Figure 7.1). L’évolution du robot dans son environnement est régi par un Processus de Décision Markovien (MDP en anglais) qui décrit l’évolution de l’état et de la récompense en fonction des actions du robot. Ce MDP (7.2), qui spécifie complètement la tâche du robot par le jeu des récompenses, se 67 Robotique Mobile - david.filliat@ensta-paristech.fr7.1. FORMALISATION Environnement état S récompense R action A FIGURE 7.1 – Formalisation du problème d’apprentissage par renforcement. décrit simplement à l’aide de deux fonctions : – Une fonction de transition P a ss0 = P(st+1 = s 0 |st = s,at = a) qui donne la probabilité de passer dans l’état s 0 lorsque l’agent effectue l’action a dans l’état s, – Une fonction de récompense R a ss0 = E(rt+1|st = s,at = a,st+1 = s 0 ) qui donne la récompense moyenne lorsque l’agent passe de l’état s à s 0 en faisant l’action a. FIGURE 7.2 – Exemple de MDP très simple. Chaque case correspond à un état et, pour chaque état, 4 actions sont possibles qui conduisent aux cases voisines. La récompense est nulle partout, sauf pour les actions qui mènent à la case "S", pour lesquelles la récompense est 1. Le comportement de l’agent est défini par une politique π : {S,A} → [0,1], qui guide l’agent de manière probabiliste en spécifiant, pour chaque état s la probabilité de réaliser l’action a (et donc ∑a π(s,a) = 1). Le but de l’apprentissage par renforcement va être de trouver la politique optimale π ∗ maximisant la récompense à long terme 1 . 1. L’apprentissage par renforcement n’utilise que l’état courant pour prendre une décision, il suppose donc que toute l’information nécessaire est contenue dans cet état. Le problème est donc considéré comme étant Markovien, ce qui est rarement le cas en pratique en robotique. Si le problème est non markovien, c’est a dire si pour un même état deux actions différentes sont optimales en fonction d’une variable inconnue au robot, l’apprentissage par Robotique Mobile - david.filliat@ensta-paristech.fr 68CHAPITRE 7. APPRENTISSAGE PAR RENFORCEMENT La récompense à long terme, que nous appellerons revenu Rt , peut être définie de différentes manières en fonction de la tâche considérée. Si la tâche consiste à répéter des épisodes qui durent un nombre de pas de temps fixe, le revenu pourra être la somme des récompenses instantanées pendant un épisode. Si au contraire la tâche se déroule de manière continue, le revenu pourra se définir comme la somme des récompenses futures pondérées par une exponentielle décroissante : Rt = ∞ ∑ k=0 γ k rt+k+1 où γ ∈ [0,1] est un facteur indiquant l’importance que l’on accorde aux récompenses futures. Les algorithmes d’apprentissage par renforcement que nous verrons plus loin utilisent quasiment tous une fonction de valeur V π (Figure 7.3) qui permet, pour une politique π donnée, d’estimer le revenu moyen (les récompenses futures) pour un état donné si l’on suit la politique considérée : V π (s) = Eπ(Rt |st = s) FIGURE 7.3 – La fonction de valeur optimale dans notre exemple : pour chaque état, le niveau de gris indique la récompense à long terme qui sera obtenue en prenant le chemin le plus court vers le but. Ces fonctions de valeurs peuvent aussi se définir non pas pour un état mais pour un état et une action réalisée dans cet état : Q π (s,a) = Eπ(Rt |st = s,at = a) La fonction de valeur pour un état s étant la moyenne des Q π (s,a), pondérées par la probabilité de chaque action : V π (s) = ∑a π(s,a)Q π (s,a) renforcement fournira la politique optimale, mais seulement dans l’ensemble des politiques “myopes”, n’ayant pas toutes les informations pour une décision optimale. 69 Robotique Mobile - david.filliat@ensta-paristech.fr7.1. FORMALISATION Une propriété essentielle de ces fonctions de valeur va permettre de créer les différents algorithmes d’apprentissage, il s’agit de la relation de récurrence connue sous le nom d’équation de Bellman : V π (s) = ∑a π(s,a)∑ s 0 P a ss0 R a ss0 +γV π (s 0 ) Cette équation traduit une cohérence de la fonction de valeur en reliant la valeur d’un état à la valeur de tous les état qui peuvent lui succéder . Elle se déduit simplement de la définition de v π de la manière suivante : V π (s) = Eπ(Rt |st = s) = Eπ( ∞ ∑ k=0 γ k rt+k+1|st = s) = Eπ(rt+1 +γ ∞ ∑ k=0 γ k rt+k+2|st = s) = ∑a π(s,a)∑ s 0 P a ss0 " R a ss0 +γEπ ∞ ∑ k=0 γ k rt+k+2|st+1 = s 0 !# = ∑a π(s,a)∑ s 0 P a ss0 R a ss0 +γV π (s 0 ) La fonction de valeur permet de caractériser la qualité d’une politique, elle donne, pour chaque état, le revenu futur si l’on suit cette politique. Elle permet également de comparer les politiques en définissant un ordre partiel : π ≥ π 0 ⇔ ∀s,V π (s) ≥ V π 0 (s) Cet ordre permet de définir la fonction de valeur de la politique optimale (Figure 7.3) que l’apprentissage par renforcement va chercher à estimer : V ? (s) = max π V π (s) fonction qui peut aussi s’exprimer pour un couple état-action : Q ? (s,a) = max π Q π (s,a) avec la relation suivante : Q ? (s,a) = E(rt+1 +γV ? (st+1)|st = a,at = a) Il est également possible d’écrire une relation de récurrence pour la fonction de valeur optimale qui sera légèrement différente de l’équation de Bellman. On parle alors d’équation d’optimalité de Bellman, qui peut s’écrire : V ∗ (s) = max a E (rt+1 +γV ∗ (st+1)|st = s,at = a) = max a ∑ s 0 P a ss0 R a ss0 +γV ∗ (s 0 ) Robotique Mobile - david.filliat@ensta-paristech.fr 70 Intelligence Artificielle et Syst`emes Multi-Agents Badr Benmammar To cite this version: Badr Benmammar. Intelligence Artificielle et Syst`emes Multi-Agents. Ecole d’ing´enieur. 2009. ´ HAL Id: cel-00660507 https://cel.archives-ouvertes.fr/cel-00660507 Submitted on 16 Jan 2012 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Intelligence Artificielle et Systèmes Multi-Agents Badr Benmammar bbm@badr-benmammar.comPlan  La première partie : L’intelligence artificielle (IA)  Définition de l’intelligence artificielle (IA)  Domaines d’application de l’IA  La reconnaissance de formes  Le traitement automatique des langues  Les systèmes experts  L’apprentissage automatique  L’intelligence artificielle distribuée (IAD)Plan  La deuxième partie : La technologie Agent  Définition d’un agent  Les agents intelligents et les agents mobiles  Les caractéristiques multidimensionnelles d’un agent  Architecture concrète pour un agent  Les agents logiques  Les agents réactifs  Les agents BDI  Les agents multi-niveaux  Modèle type d’un agentLa première partie : L’intelligence artificielle (IA)Définition de l’intelligence artificielle (IA)  L’IA Désigne la simulation des mécanismes de la pensée par un ordinateur  La faculté de reproduire un raisonnement par des moyens informatiques  Un ensemble de réalisations et de recherches qui essaient d'imiter artificiellement les performances humaines  L'émergence des systèmes ''adaptatifs''Domaines d’application de l’IA Systèmes experts Apprentissage automatique Traitement automatique des langues Reconnaissance des formes, des visages et la vision en généralLa reconnaissance de formesLa reconnaissance de formes RdF  La reconnaissance de formes (ou parfois reconnaissance de motifs) est un ensemble de techniques et méthodes visant à identifier des motifs à partir de données brutes afin de prendre une décision dépendant de la catégorie attribuée à ce motif.Définition  L’homme est le plus parfait des systèmes de RdF.  Reconstitution sur «machine» des fonctions typiquement humaines:  Perception ;  Analyse et représentation ;  Interprétation.Analogies Système de RdF  Composantes d’un système de RdF :  Mécanique (satellite, bras d’un robot, …)  Saisie (caméra, scanner, micro, …)  Electronique (carte mémoire, CPU, …)  ALGORITHMIQUEProcessus de RdF  Les informations issues du monde réel sont généralement :  trop volumineuses  peu pertinentes  Le processus de RdF est un processus de réduction progressive et sélective de l’informationProcessus de RdF  Etapes de traitement d’un processus de RdF:  Prétraitements binarisation, segmentation, élimination du bruit, normalisation, …  Extraction des informations pertinentes parole: fréquence, … image: contours, …  Représentation de ces informations en vue de leur classification vecteur, graphe,  Classification de la forme apprentissage/décision, +_ Quantité d’informationsLe traitement automatique des languesLe traitement automatique des langues  Le Traitement automatique des langues est une discipline à la frontière de :  La linguistique ;  L’informatique ;  L’intelligence artificielle.  Concerne l’application de programmes et techniques informatiques à tous les aspects du langage humain. Applications  La traduction automatique ;  La correction orthographique ;  La recherche d'information et la fouille de textes ;  Le résumé automatique de texte ;  La génération automatique de textes ; Fouille de Texte (Text Mining)Qu’est-ce que le Text Mining ?  Le Text Mining est l’ensemble des :  Technologies et méthodes  … destinées au traitement automatique  … de données textuelles  … disponibles sous forme informatique,  … en assez grande quantité  … en vue d’en dégager et structurer le contenu, les thèmes dans une perspective d’analyse rapide de découverte d’informations cachées ou de prise automatique de décisionDéfinition  Text Mining  Procédé consistant à synthétiser (classer, structurer, résumer, …) les textes en analysant les relations et les règles entre unités textuelles (mots, groupes, phrases, documents) Processus de Text Mining: Vue simplifiée Produit des vecteurs de fréquence des mots importantsAnalyse et Préparation  Corriger l'orthographe  Eliminer les mots vides  Découper les textes en unités  Associer des termes à une catégorie grammaticale ou sémantique  Réduire le nombre de termes à traiterCalculs de fréquence des termesRéduction des dimensions  Réduire les dimensions de la table de fréquences  En déterminant les termes les plus significatifs  En groupant les termes par affinité (profile)Domaines d’application  Exploration du contenu des documents  Questions ouvertes dans une enquête  Commentaires et plaintes des clients  Analyse des réclamations de garantie  Affectation de documents à des thèmes prédéfinis  Traitement des e-mails (redirection, filtrage)  Recherche d’information  Interrogation de textes par concepts, mots-clés, sujets, phrases visant à obtenir des résultats triés par ordre de pertinence, à la GoogleEtapes de la fouille de textes  Sélection de textes  Extraction des termes  Analyse grammaticale  Filtrage des termes extraits  Transformation  Réduction des dimensions  Classification  Visualisation des résultats  Interprétation des résultatsLes systèmes expertsLes systèmes experts  Un système expert est un logiciel capable de répondre à des questions, en effectuant un raisonnement à partir de faits et de règles connus. Il peut servir notamment comme outil d’aide à la décision. Les systèmes experts  Un système expert se compose de 3 parties :  Une base de faits ;  Une base de règles ;  Un moteur d’inférence.Faits et règles  Faits  Ensemble de vérités connues  Règles  Partie condition : prémisses  Partie action : conclusion, calcul, affichage ...  Éventuellement : coefficient de confiance SI condition ALORS action [coefficient]Les systèmes experts  Pour l’essentiel, ils utilisent la règle d'inférence suivante :  Si P est vrai (fait ou prémisse) et si on sait que P implique Q (règle) alors, Q est vrai (nouveau fait ou conclusion). Le moteur d’inférence Le moteur d’inférence est capable d’utiliser faits et règles pour produire de nouveaux faits, jusqu’à parvenir à la réponse à la question experte posée. La plupart des systèmes experts existants reposent sur des mécanismes de logique formelle et utilisent le raisonnement déductif. Pourquoi un SE ?  Problèmes mal formalisés ou dont la formulation évolue  Médecine : nouveaux examens, nouvelles connaissances, nouvelles thérapies  Pas d’algorithme connu (ou algorithme trop complexe)  Reconnaissance de l’écriture  Jeu d’échecs  Affectation des ressources, ordonnancementLes systèmes expertsArchitecture Base de faits Moteur d’inférence Filtrage Sélection Assertion Exécution Base de règlesMode de raisonnements  Il existe de nombreux types de moteurs, capables de traiter différentes formes de règles logiques pour déduire de nouveaux faits à partir de la base de connaissance.  On distingue souvent trois catégories, basées sur la manière dont les problèmes sont résolus :  Les moteurs - dit à « chaînage avant » - qui partent des faits et règles de la base de connaissance, et tentent de s’approcher des faits recherchés par le problème.  Les moteurs - dits à « chaînage arrière » - qui partent des faits recherchés par le problème, et tentent par l’intermédiaire des règles, de « remonter » à des faits connus,  Les moteurs - dits à « chaînage mixte » - qui utilisent une combinaison de ces deux approches chaînage avant et chaînage arrière. Chaînage avant Raisonnement guidé par les données :  Détecter les règles dont les prémisses sont vérifiées (filtrage)  Sélectionner la règle à appliquer  Appliquer la règle  Recommencer jusqu'à ce qu'il n'y ait plus de règle applicableChaînage arrière  But initial placé au sommet d’une pile  Détection des règles qui concluent à ce but  Résolution de conflits  Application de la règles, i.e, les éléments des prémisses deviennent de nouveau sous- buts à atteindre.  Arrêt : pile vide ou aucune règle applicableExercice  Exercice 1  Soit la base de règles suivantes :  R1 : (┐A B) P  R2 : (P et Q) F  R3 : (C A) Q  R4 : F (D K)  R5 : K (M et L)  La base initiale de faits est : (A, D).  Prouvez le fait M par chaînage avant. Projet IP-SIG : Signalisation g´en´erique du monde IP Badr Benmammar To cite this version: Badr Benmammar. Projet IP-SIG : Signalisation g´en´erique du monde IP. 3`eme cycle. 2005. HAL Id: cel-00682308 https://cel.archives-ouvertes.fr/cel-00682308 Submitted on 26 Mar 2012 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Projet IP-SIG Signalisation générique du monde IP 21 Juillet 2005 Badr BENMAMMAR Université Bordeaux 12 PLAN • Présentation du projet – Objectif du projet et motivations – Organisation du projet • Partenaires et durée • Les sous-projets • Échéances et livrables – Rappels sur la signalisation IPSIG • Présentation des travaux – Sous-projet 3 • Réalisation du protocole GiSP • Tests du protocole GiSP • Démonstration – Sous-projet 4 • Définition d’un SLS dynamique • Réalisation de l’environnement dynamique • Démonstration – Etude des travaux en cours à l’IETF • Démonstration 3 Motivations et Objectif • Motivations – Plusieurs protocoles de signalisation existants • RSVP, RSVP-TE, CR-LDP, Radius, Diameter – Support des besoins de QoS, sécurité et mobilité • Objectif – Définition d’une signalisation Universelle • Unifier le processus de signalisation • Définition de SLS et de SLS dynamique 4 Organisation du projet • Projet Exploratoire – 24 mois + 6 mois • Partenaires : • ALCATEL, ENST, ISEP, LIP6, LIPN, UTT et THALES • Quatre sous-projets – SP1 : SLS et protocoles de signalisation • Livrable 1.1 : Définition d'un SLS • Livrable 1.2 : Comparaison des protocoles de signalisation – SP2 : Les briques de base et l'architecture globale • Livrable 2.1 : Architecture du système de signalisation • Livrable 2.2 : Spécification des briques de base – SP3 : Le protocole GiSP (Generic Signaling Protocol) • Livrable 3.1 : Réalisation du démonstrateur • Livrable 3.2 : Tests du démonstrateur – SP4 : Dynamique de l’environnement • Livrable 4.1 : Définition d’un SLS dynamique • Livrable 4.2 : Maquette de l'environnement dynamique5 Livrables et échéances Livrable 3.1 Réalisation T0+20 Septembre 04 Livrable 4.2 Maquette Livrable 3.2 Tests T0+24 Janvier 05 Livrable 4.1 Déf. d’un SLS dynamique Livrable 2.2 Spec des briques de base T0+18 Juillet 04 Livrable 2.1 Arch. du système de signalisation Livrable 1.2 Étude des protocoles T0+12 Livrable 1.1 déf. D’un SLS T0+9 SP4 Dynamique de l’environnement SP3 Le protocole GSP SP2 Architecture globale SP1 Définition d’un SLS et protocoles de signalisation6 Livrables et échéances - Nouvelle planification Livrable 3.1.1 : Réalisation Livrable 3.1.3 : QoS NSLP (NSIS WG) T0+26 Mars 05 Livrable 4.2 : Maquette Livrable 3.1.2 : Emulation GIMPS (NSIS WG) Livrable 3.2 :Tests T0+30 Juillet 05 Livrable 4.1 Déf. d’un SLS dynamique Livrable 2.2 Spec des briques de base T0+18 Juillet 04 Livrable 2.1 Arch. du système de signalisation Livrable 1.2 Étude des protocoles T0+12 Livrable 1.1 déf. D’un SLS T0+9 SP4 Dynamique de l’environnement SP3 Le protocole GSP SP2 Architecture globale SP1 Définition d’un SLS et protocoles de signalisation7 Rappels - Architecture protocolaire • Architecture protocolaire de NSIS NSIS Signaling Layer Protocol “NSLP” NSIS Transport Layer Protocol “NTLP” NSLP pour QoS NSLP pour middlebox NSLP pour … IP layer NSIS Transport Layer Protocol “NTLP” Signalisation IPSIG (GiSP : Generic Service Signaling Protocol)8 Rappels - Besoins du protocole GiSP • Fonctionnalités de signalisation • Deux modes de fonctionnement – Path coupled – Path decoupled • Gestion des états – Installer/modifier/supprimer un état • Sensibilité au changement de routage • Sensibilité à la mobilité • Fonctionnalités de transport • Transport fiable et non fiable • Transport sécurisé • Contrôle de congestion • Fragmentation • Bundling9 Rappels – Le protocole GiSP (Rappels) • Définition d’un format de message – ::= • Définition de l’en-tête – SM Flag : Mode de fonctionnement – M_Type : Type de message – New • Permet d’installer une nouvelle session (rapidement sans vérifier si la session est déjà établie) – Mod • Établit une session dans le sens inverse du flux de données (de New) • Modifier une session établie (sens forward et Backward) • Établit une session dans un nouveau chemin suite à un changement de route – Info • Échange de l’information entre éléments de signalisation – Notification des erreurs • Supporter le management d’état – Rafraîchissement des états – Suppression des états • Définition d’un ensemble d’objets – Transportant les informations nécessaires pour réaliser les fonctionnalités du protocole GiSP10 Rappels – Le protocole GiSP (Rappels) • Caractéristiques – Etablissement rapide d’un état dans un nœud en ½ RTT: • Un message New (ou Mod) contient toute l’information pour établir un état – Réduction du trafic de détection du changement de routage • Au lieu d’envoyer un message complet, GISP envoie seulement l’identification de session – Mobilité: changement de la CoA (Care of Address) • Utiliser l’identification de session et non l’identification de flux pour identifier une session de bout en bout • Mécanismes développés – Proposition d’un mécanisme de rafraîchissement performant • Réduction du trafic de rafraîchissement • Optimisation la gestion des timers – Mise en place d’un transport fiable et non fiable • Les messages sont explicitement acquittés ou non selon le besoin – Mise en place d’un contrôle de congestion • Dans le cas où GISP ne connaît pas le nœud suivant (mode non-connecté) GISP limite le trafic de signalisation traversant une interface • Dans le cas où GISP connaît le nœud suivant (mode connecté) GISP applique un mécanisme de contrôle de congestion qui s’inspire des mécanismes de TCP, SCTP et DDCP (contrôle de congestion par fenêtre en supportant le mode fiable et non fiable).Le projet IPSIG Dynamique de l’environnement12 Dynamique de l’environnement Deux Aspects : I. Négociation dynamique de SLA/SLS II. Impact de la mobilité du terminal sur la QoS13 Introduction I. Négociation dynamique de SLA/SLS – Identification des besoins de l’utilisateur – Agents pour la négociation de SLA/SLS – Protocole de négociation de paramètres de SLS14 Protocole SLN NSLP • Protocole de négociation de paramètres de SLS – Environnement NSIS NSIS Signaling Layer Protocol “NSLP” NSIS Transport Layer Protocol “NTLP” NSLP pour QoS NSLP pour middlebox NSIS Transport Layer Protocol “NTLP” NSLP pour la négociation15 Protocole SLN NSLP - Négociation intra ou inter domaines. • Entités de négociation16 Protocole SLN NSLP • Architecture globale17 Protocole SLN NSLP - Temps de service : période de garantie du niveau de service - Scope : point d’entrée et de sortie d’un domaine - Identification du trafic : @IP, Port source/destination... - Garantie de performance : délai, gigue, taux de perte, bande passante - Description et conformité du trafic : taille des paquets, débit crête, paramètres du Token Bucket. - Traitement d’excès : lissage, marquage, élimination - Mode de négociation : SLS prédéfini ou non - Intervalle de renégociation : dépend du type de négociation. - Priorité et fiabilité : MDT, MTTR • Paramètres du SLS de QoS18 Protocole Messages SLN NSLP - Negotiate : Emis du SNI vers le SNR, permet de spécifier les attributs sur lesquels on veut négocier ainsi que leurs valeurs. - Revision : Emis par le SNR vers le SNI pour proposer une alternative aux attributs et valeurs reçus dans le message Negotiate. - Response : Emis par le SNR ou SNI suite a un message précèdent contenant un objet Response Request. - Modify : Emis par le SNI vers le SNR en spécifiant le SLS ID sur le quel la modification va porter - Notify : Emis par le SNR (ou SNF) pour demander au SNI de dégrader ou rétablir un niveau de service qui a été déjà négocié. - Release : Emis par le SNI vers le SNR pour résilier un SLS déjà négocié. • Messages SLN NSLP19 Protocole SLN NSLP 00 / 30 ms D=100ms ; G=20ms ; P=0,1% ; D= 704 Kbit/s 9h17h LundiJeudi @IP SNI @IP SNR @IP Host A @IP Host B Mode /interv alle Temps de Garantie de Performance Service Identification du Scope trafic 00 / 30 ms D<150ms ; G<30ms ; P<1% ; D= 696 Kbit/s 9h17h LundiJeudi @IP SNI @IP SNR @IP Host A @IP Host B Mode / intervalle Temps de Garantie de Performance Service Identification du Scope trafic SLS Demandé pour la visioconférence SLS accepté par le SNR • Exemples de négociation20 Cas d’une Visioconférence SNI / SIP PROXY SNF SNR Host Negotiate B Communication Host A Negotiate Revision Revision Response {Ack} Response {Ack} Reserve {Qspec} Reserve {Qspec} Reserve {Qspec} Reserve {Qspec} Invite Invite 180 Ringing 180 Ringing ACK 200 OK 200 OK SLN NSLP QoS NSLP SIP21 Cas de la téléphonie IP SNI / SIP PROXY SNF Host B SNR Negotiate Communication Host A Negotiate Response {Ack} Response {Ack} Reserve {Qspec} Reserve {Qspec} Reserve {Qspec} Reserve {Qspec} Invite Invite 180 Ringing 180 Ringing ACK 200 OK 200 OK SLN NSLP QoS NSLP SIP 183 Progress Bye OK Release {SLS ID} Release {SLS ID} 22 Conclusion • SLN NSLP est une proposition de protocole de signalisation dans la bande pour la négociation de niveau de service. • SLN NSLP est indépendant du modèle de QoS grâce a l’architecture de signalisation générique définie dans NSIS. • SLN NSLP est indépendant des objets de négociation donc il est réutilisable.23 Dynamique de l’environnement 2. Impact de la mobilité du terminal sur QoS – Réservation de ressources à l’avance • Messages de QoS NSLP • Profil de mobilité fourni par l’interface utilisateur MSpec = » : the MSpec identifier » : , » : ,, etc. – Procédure de handover • Protocole CTP (Context Transfer Protocol)24 ∑ Pij = 1 = n j 1 ∑ = n i 1 Pi (tr) * Pij Pj (tr+1) = Cj Cn Cn-1 Ci C2 C1 tr+1 tr P1j P2j Pij Pnj Pn-1j P1 Pn Pn-1 Pi P2 Détermination du MSpec • Basée sur les chaînes de Markov en temps continu • Le système est dans l’état i si le terminal mobile est dans la cellule Ci Pij : probabilité de transition de la cellule Ci vers la cellule Cj Pi (tr) : probabilité de localisation du terminal mobile dans la cellule Ci à l’instant tr 25 ∑ = m d 1 Pij Pij = (d) /m Profil de mobilité du terminal - La matrice de transition contenant les Pij M = [Pij] [N*N] Pij(d): probabilité de transition de la cellule i vers la cellule j durant d associations m: nombre d’associations -Le vecteur contenant les Pi (to) V = [Pi(to)] [N] Pi (to): probabilité de localisation du terminal mobile dans la cellule Ci à l’instant to26 { 0: no handover 1: vertical handover UMTS HD [Cell ID, App ID] = Profil de mobilité du terminal - Les futures localisations du terminal mobile MSpec (tr) = {Cj / Pj (tr+1) ≥ x } x : un seuil fixe ou variable utilisé pour sélectionner les cellules - La décision de handover27 • Procédure de réservation de ressources à l’avance - Extension de QoS NSLP • Différents scénarios (environnement HMIPv6) - Réservation à l’initiative du demandeur ou du récepteur - Entre un terminal fixe et un terminal mobile - Entre terminaux mobiles • Procédure de handover - Horizontal - Vertical Protocole MQoS NSLP28 • Impact du seuil x Simulations29 • Protocole de réservation de ressources à l’avance - Dans un environnement NSIS - Extension de QoS NSLP • Réservations basées sur l’objet MSpec - Déterminé par le terminal mobile - Utilisation des chaînes de Markov en continu • Méthode hybride • Validation Conclusion30 Maquette Utilisateur Fournisseur Jade Négociation Gold | prix Silver | prix Bronze | prix Best effort | prix • (Re)négociation à l’initiative de l’utilisateur31 Maquette • (Re)négociation à l’initiative du fournisseur Réseau DiffServ EndUserGenerator New EndUser Utilisateur Fournisseur data Traffic Sender Jade J-Sim Négociation Nouveau Prix fonction de la charge du réseau Decision finale Gold | prix Silver | prix Bronze | prix Best effort | prix32 Architecture de l’interface proposée Fournisseur Réseau Terminal Utilisateur Interface graphique/Messages/Capteurs Couche Gestion de profil Apprentissage (SOM) Couche de Contrôle Couche de négociation Couche protocolaire Profils Propriétés Paramètres de performance SLS33 Identité des personnes : rôles, préférences, permissions, etc. Localisation des personnes : domicile, gare, travail, etc. Période : l’heure, le jour, le mois, etc. Contraintes : des utilisateurs, des applications, etc. Active device : Laptop, PC, cellular Connectivité : LAN, WLAN, cellular network Informations contextuelles Les r´eseaux sans fil et la nouvelle signalisation IP Badr Benmammar To cite this version: Badr Benmammar. Les r´eseaux sans fil et la nouvelle signalisation IP. 3`eme cycle. 2004. HAL Id: cel-00660842 https://cel.archives-ouvertes.fr/cel-00660842 Submitted on 17 Jan 2012 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Les réseaux sans fil et la nouvelle signalisation IP Badr BENMAMMAR Université Bordeaux 1 1 École DNAC d'hiver Sur le Nil, Égypte, du 11 au 18 décembre 20041 PLAN • Introduction • QoS NSLP • Réservation de ressources à l’avance • Format du MSpec • Réservation de ressources à l’avance avec QoS NSLP • Le transfert de contexte • La procédure de handover • Méthodes de prédiction • Conclusion 22 IP-SIG (1/2) Les objectifs de ce projet sont :  La définition d'une architecture de signalisation universelle (les besoins de QoS, de mobilité et de sécurité)  La définition d'un SLS standard  Une étude prospective sur la dynamisation du SLS 1. ENST 2. ALCATEL 3. UTT 4. Université de Paris 13 5. ISEP 6. LIP6 7. THALES Partenaires du projet 33 Quatre sous-projets: Sous-projet 1 – SLA-SLS et protocoles de signalisation (Responsable ALCATEL) Sous-projet 2 – Les briques de base et l'architecture globale (Responsable LIP6) Sous-projet 3 – Le protocole GSP (Generic Signaling Protocol) (Responsable ISEP) Sous-projet 4 – Dynamique de l’environnement (Responsable LIPN) IP-SIG (2/2) Négociation dynamique de SLA/SLS Impact de la mobilité sur la signalisation 44 NSIS (Next Steps In Signaling) • Standardiser une architecture comprenant deux couches: - NTLP : NSIS Transport Layer Protocol - NSLP : NSIS signaling Layer Protocol IP IP Layer Security UDP TCP SCTP DCCP Transport Layer Security GIMPS: Messaging Layer GIMPS Encapsulation GIMPS State Maintenance NTLP Signaling Application 1 Signaling Application 2 Signaling Application 3 NSLP 55 QoS NSLP • QoS NSLP permet de générer une signalisation pour fournir un certain niveau de QoS indépendamment du modèle de QoS (Diffserv, Intserv,...) • QoS NSLP + NTLP RSVP 6 • La création d’un état • Le rafraîchissement d’un état • La modification d’un état • L’élimination d’un état6 Les messages de QoS NSLP • Reserve : le seul à manipuler l’état de la réservation (rafraîchir, créer, supprimer). • Query : demande des informations aux nœuds QNE (les ressources disponibles) • Response : permet d’envoyer un résultat associé à un message antérieur • Notify : permet d’informer un nœud sans demande préalable 77 • Sender Initiated Reservation Réservation de ressources avec QoS NSLP (1/2) RESPONSE NI NF NF NR RESERVE RESERVE RESERVE RESPONSE RESPONSE 88 Réservation de ressources avec QoS NSLP (2/2) • Receiver Initiated Reservation NR NF NF NI RESERVE RESERVE RESERVE RESPONSE RESPONSE RESPONSE QUERY QUERY QUERY 99 • NSIS (Next Steps In Signaling): fournir une signalisation universelle • Objectif: étudier l’impact de la mobilité sur la signalisation NSIS • Proposition : utiliser les messages de QoS NSLP afin de faire des réservations à l’avance • La QoS • La sécurité • La mobilité 10 Proposition10 Réservation de ressources à l’avance • Réservation à l'avance dans tous les endroits que l'utilisateur peut visiter • Un profil de mobilité est déterminée soit par le réseau, soit par le terminal mobile • L’objet MSpec (Mobility Specification) détermine les futures localisations du MH (Mobile Host) • L’objet MSpec est inclus dans les messages de QoS NSLP 1111 Travaux réalisés dans les réseaux mobiles (1/2) • Anup Kumar Talukdar, B. R. Badrinath, Arup Acharya. MRSVP: a resource reservation protocol for an integrated services network with mobile hosts, ACM Journal of Wireless Networks, vol. 7, 2001 12 • MSPEC (Mobility Specification): pas de format, les futures localisations • La réservation active: si les paquets de ce flux passent par ce lien afin d’arriver au récepteur • La réservation passive: si les ressources sont réservées pour ce flux sur le lien, mais les paquets actuels pour ce flux ne sont pas transmis sur ce lien12 • Min-Sun Kim, Young-Joo Suh, Young-Jae Kim, Young Choi. A Resource Reservation Protocol in Wireless Mobile Networks. ICPP Workshops, Valencia, Spain September 03 - 07, 2001 Travaux réalisés dans les réseaux mobiles (2/2) • La classe Free : elle représente les ressources utilisées en BE • La classe Reserved : elle représente les ressources réservées et actuellement utilisées, pour un flux spécifique • La classe Prepared : elle représente les ressources réservées pour un flux spécifique et qui ne sont pas actuellement utilisées 1313 Inconvénients • Le nombre de flux qui peut être supporté par le routeur est réduit • Le MSPEC est très difficile à déterminer à l’avance Avantages • Meilleure QoS (délai et pertes de paquets) • Application en temps réel. 1414 Format du MSpec MSpec = : identificateur unique du MSpec • : , : ,,, etc. 1515 Procédure de réservation de ressources à l’avance avec QoS NSLP (fixe,mobile) -1 : Router Advertissement, un bit Q 0 : Registration Request, bit Q, QSpec et MSpec 1 : NOTIFY: QSpec et MSpec 2 : RESERVE: QSpec 3 : RESERVE 4 : RESPONSE 5 : RESPONSE Réservation de ressources à l’avance avec QoS NSLP CN HA Internet HN MAP AR AR AR MH FN 2 4 5 5 0 -1 3 1 3 NI NF NF NF NF NR 1616 Le Protocole CTP Context Transfer Protocol (WG Seamoby) 17 • Contexte: l'information nécessaire sur l'état actuel d'un service afin de le rétablir sur un nouveau sous-réseau • les services candidats: • Authentication, Authorization et Accounting (AAA) • Header Compression • Quality de Service (QoS) • Point to point protocol (PPP) • Politiques17 Le déclenchement de transfert de contexte (1/3) • Déclenché à l’initiative du : – nœud mobile (mobile controlled). – pAR ou nAR (network controlled). • Exemple : mobile controlled, initié par le nœud mobile MN nAR pAR CT trigger CTAR CT Request CTD 1818 Le déclenchement de transfert de contexte (2/3) MN nAR pAR CT trigger CTAR CTD CTDR • Exemple : network controlled, initié par le pAR 1919 Le déclenchement de transfert de contexte (3/3) MN nAR pAR CT trigger CT Request CTAR CTD CTDR • Exemple : network controlled, initié par le nAR 2020 La procédure de handover 21 La procédure de handover CN HA Internet HN MAP AR AR AR MH FN MH MIPv6 NOTIFY : en incluant le nouveau MSpec RESERVE 1 2 CTD CT Request Analyse le nouveau MSpec21 Exemple 22 AR1 MAP AR2 AR3 AR4 Cell1 Cell2 Cell3 Cell4 MH MSpec1 = {Cell1, Cell3}22 Exemple 23 AR1 MAP AR2 AR3 AR4 Cell1 Cell2 Cell3 Cell4 MSpec1 = {Cell1, Cell3} MH MSpec2 = {Cell2, Cell4}23 Exemple 24 AR1 MAP AR2 AR3 AR4 Cell1 Cell2 Cell3 Cell4 MSpec1 = {Cell1, Cell3} MH MSpec2 = {Cell2, Cell4}24 Exemple 25 AR1 MAP AR2 AR3 AR4 Cell1 Cell2 Cell3 Cell4 MSpec1 = {Cell1, Cell3} MH MSpec2 = {Cell2, Cell4}25 26 i = 1 Ci : cellule courante MSpeci i = 1 ∀ C ∈ MSpec1 : créer une réservation passive pour la cellule C Oui handover après une période t1 passée dans la cellule C1 i = i+1 Non  La réservation dans la cellule Ci devient active  ∀C∈{MSpeci-MSpeci-1-Ci-1} : créer une nouvelle réservation pour la cellule C  ∀C∈{ MSpeci-1- MSpeci-Ci}: supprimer la réservation pour la cellule C Oui La réservation devient passive pour la cellule Ci-1 Supprimer la réservation pour la cellule Ci-1 handover après une période ti passée dans la cellule Ci Non Ci-1∈ MSpeci Les actions réalisées par le MAP dans le cas d’une communication fixe-mobile26 Procédure de réservation de ressources à l’avance avec QoS NSLP (mobile-mobile) 27 Internet HA HN AR AR MAP2 AR AR AR MH1 MAP1 0 MH2 2 AR 1 3 4 5 6 7 7 8 8 9 9 Réservation de ressources à l’avance avec QoS NSLP 0 : Router Advertissement , le bit Q. 1 : Registration Request, QSpec et MSpec2 2 : NOTIFY, QSpec et MSpec2 3 : Router Advertissement, le bit Q 4 : Registration Request, QSpec et MSpec1 5 : NOTIFY, QSpec et MSpec1 6 : RESERVE, QSpec 7 : NOTIFY 8 : RESERVE 9 : RESERVE27 La procédure de handover 28 Internet HA HN AR MAP2 AR MH1 MAP1 4 5 5 6 6 AR AR MH1 MH2 AR 3 CT Request CTD 2 MH2 1 AR MIPv6 MIPv6 La procédure de handover 1 : RESERVE 2 : RESPONSE 3 : NOTIFY 4 : RESERVE 5: NOTIFY, l’ancien MSpec1 et le nouveau MSpec1 6 : RESERVE Analyse le nouveau MSpec228 Modélisation par les chaînes de Markov • Le système est un modèle pouvant évoluer entre n états définis par l’ensemble: C = (C1, C 2, ........Ci........ Cn) • Le système est à l’état i = le terminal mobile se trouve dans la cellule Ci • Pij : la probabilité de transition de la cellule Ci vers la cellule Cj • Pi (t) : la probabilité pour que le terminal mobile se trouve dans la cellule Ci à l’instant t ∑ Pij = 1, i = 1 à n et 0 ≤ Pij ≤ 1 = n j 1 ∑= n i 1 Pi (t) * Pij Pj (t+1) = Cj Cn Cn-1 Ci C 2 C1 t+1 t P1j P2j Pij Pnj Pn-1j P1 Pn Pn-1 Pi P 2 2929 Le profil de mobilité (1/2) • Construire un modèle comportemental pour l’utilisateur • il contient les informations suivantes : - Un identificateur unique de l’utilisateur : user_id - Les informations personnelles de l’utilisateur - nom - prénom - age - adresse - ... - Les préférences de l’utilisateur Exemple : quand l’utilisateur se déplace vers la cellule1, qui couvre le Forum, il commence toujours par le lancement d’un jeu vidéo durant 1h. 3030 Le profil de mobilité (2/2) - M = [Pij] [N*N] : une matrice de transition qui contient les Pij - V = [Pi(0)] [N] : un vecteur qui contient les Pi(0). (Pi (0): la probabilité pour que le terminal mobile se trouve dans la cellule Ci à l’instant 0) - Le MSpec (Mobility Specification): un ensemble dynamique, il est modifié après chaque handover 3131 Calculer la matrice M et le vecteur V (1/2) • Besoin de m connexions afin de déterminer les Pi(0) et les Pij • l(d) : le nombre de transitions dans le système pour la dème connexion (1≤ d ≤ m) • tij(d) : le nombre de transition de la cellule i à la cellule j pendant la dème connexion • li(d) : le nombre de transitions sortantes de la cellule i pendant la dème connexion 32 • M = [Pij] [N*N] • On le calcule de la manière suivante : l i(d) = ∑= n j 1 tij(d) ∑= n i 1 li(d) = l(d)32 Calculer la matrice M et le vecteur V (2/2) 33 • La probabilité de transition de la cellule i à la cellule j pendant la dème connexion (Pij(d)) est calculée de la manière suivante : Pij(d) = tij(d)/l i(d) • Après m connexions, la probabilité de transition de la cellule i à la cellule j est calculée de la manière suivante : ∑= m d 1 Pij Pij = (d) /m. i,j = 1,n • Si à l’instant t = 0, l’utilisateur se connecte k fois dans la cellule i durant les m •connexions alors : Pi(0) = k/m ou (k*100/m)% • V = [Pi(0)] [N]33 Prédire le MSpec à l’aide des chaînes de Markov •Le MSpec est un sous ensemble de C MSpec = {a1 C1, a2 C2,..........., ai Ci,.........., an Cn} / ai = {0, 1} ∑= n i 1 ai Ci / ai MSpec = = {0,1} • On définit θ (0 ≤ θ ≤ 1) : un seuil fixe ou variable, pour sélectionner les cellules de plus grandes probabilités. Le MSpec est défini comme suit : MSpec = {Cj / Pj (t+1) ≥ θ } 3434 Non Fin Consulter le profil de mobilité de l’utilisateur Début Identifier l’utilisateur t = 0, MSpec = { } C = (C1, C2, ........Ci........Cn) Non Utilisateur Oui = ancien Initier la matrice de transition: M = [Pij], {i, j} =1, 2, ..... n Initier Pi (0) i =1, 2, ….. n J=1 ; 0 ≤ θ ≤ 1 MSpec = MSpec ∪ Cj j = j+1 Oui Non Oui j ≤ N Pj (t+1) ≥ θ ∑ = n i 1 Pj (t+1) = Pi (t) * Pij Prédiction du MSpec à l’aide des chaînes de Markov 3535 t0 t1 s0 s1 f1 f0 Temps du handover de la cellule Ci-1 à la cellule Ci Temps du handover de la cellule Ci à la cellule Ci+1 Le temps passé dans la cellule Ci Temps du lancement de la méthode de prédiction Temps de la détermination du MSpec Temps de la détermination du MSpec Temps de la procédure de réservation de ressources à l’avance temps La cellule Ci-1 La cellule Ci La cellule Ci+1 Le temps d’attente dans la cellule Ci ≥ le temps de la détermination du MSpec + le temps de la réservation de ressources à l’avance Simulation 36 Systeme informatique de commande du robot V 80 V. Dupourque To cite this version: V. Dupourque. Systeme informatique de commande du robot V 80. RT-0035, 1984, pp.93. HAL Id: inria-00070123 https://hal.inria.fr/inria-00070123 Submitted on 19 May 2006 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es. Lecture 10: Robust outlier detection with L0-SVDD Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 February 28, 2014Roadmap 1 Robust outlier detection with L0-SVDD L0 SVDD 4 iterations of Adaptive L0 SVDDRecall SVDD    min R,c,ξ R + C Xn i=1 ξi with kxi − ck 2 ≤ R + ξi , i = 1, . . . , n and ξi ≥ 0, i = 1, . . . , n (1) Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 3 / 11SVDD + outlier C =1/16 C =1/8 C =1/4 C = 1/2 (¾') Figure: Example of SVDD solutions with different C values, m = 0 (red) and m = 5 (magenta). The circled data points represent support vectors for both m. Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 4 / 11The L0 norm kξk0 ≤ t    min c∈IRp ,R∈IR,ξ∈IRn R + Ckξk0 with kxi − ck 2 ≤ R+ξi ξi ≥ 0 i = 1, n Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 5 / 11L0 relaxations p norm exponenetial piecewise linear log    min c∈IRp ,R∈IR,ξ∈IRn R + C Xn i=1 log(γ + ξi) with kxi − ck 2 ≤ R+ξi ξi ≥ 0 i = 1, n . Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 6 / 11DC programing log(γ + t) = f (t) − g(t) with f (t) = t and g(t) = t − log(γ + t), both functions f and g being convex. The DC framework consists in minimizing iteratively (R plus a sum of) the following convex term: f (ξ) − g ′ (ξ)ξ = ξ −  1 − 1 γ + ξ old  ξ = ξ γ + ξ old , where ξ old i denotes the solution at the previous iteration. Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 7 / 11The DC idea applied to our L0 SVDD approximation consists in building a sequence of solutions of the following adaptive SVDD:    min c∈IRp ,R∈IR,ξ∈IRn R + C Xn i=1 wi ξi with kxi − ck 2 ≤ R+ξi ξi ≥ 0 i = 1, n with wi = 1 γ + ξ old i . Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 8 / 11Stationary conditions of the KKT give: c = Pn i=1 αi xi and Pn i=1 αi = 1 where the αi are the Lagrange multipliers associated with the inequality constraints kxi − ck 2 ≤ R+ξi . The dual of this problem is ( min α∈IRn α ⊤XX ⊤α − α ⊤diag(XX ⊤) with Pn i=1 αi = 1 0 ≤ αi ≤ Cwi i = 1, n (2) Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 9 / 11Algorithm 1 L0 SVDD for the linear kernel Data: X, y, C , γ Result: R , c, ξ , α wi = 1; i = 1, n while not converged do (α, λ) ← solve_QP(X, C,w) % solve problem (2) c ← X ⊤α R ← λ + c ⊤c ξi ← max(0, kxi − ck 2 − R) i = 1, n wi ← 1/(γ + ξi) i = 1, n end Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 10 / 11Bibliography Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 11 / 11 Lecture 9: Multi Kernel SVM Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 April 16, 2014Roadmap 1 Tuning the kernel: MKL The multiple kernel problem Sparse kernel machines for regression: SVR SimpleMKL: the multiple kernel solutionStandard Learning with Kernels User Learning Machine kernel k data f http://www.cs.nyu.edu/~mohri/icml2011-tutorial/tutorial-icml2011-2.pdf Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 3 / 21Learning Kernel framework User Learning Machine kernel family km data f , k(., .) http://www.cs.nyu.edu/~mohri/icml2011-tutorial/tutorial-icml2011-2.pdf Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 3 / 21from SVM SVM: single kernel k f (x) = Xn i=1 αi k (x, xi) + b = http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 4 / 21from SVM → to Multiple Kernel Learning (MKL) SVM: single kernel k MKL: set of M kernels k1, . . . , km, . . . , kM ◮ learn classier and combination weights ◮ can be cast as a convex optimization problem f (x) = Xn i=1 αi X M m=1 dm km(x, xi) + b X M m=1 dm = 1 and 0 ≤ dm = http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 4 / 21from SVM → to Multiple Kernel Learning (MKL) SVM: single kernel k MKL: set of M kernels k1, . . . , km, . . . , kM ◮ learn classier and combination weights ◮ can be cast as a convex optimization problem f (x) = Xn i=1 αi X M m=1 dm km(x, xi) + b X M m=1 dm = 1 and 0 ≤ dm = Xn i=1 αiK(x, xi) + b with K(x, xi) = X M m=1 dm km(x, xi) http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 4 / 21Multiple Kernel The model f (x) = Xn i=1 αi X M m=1 dmkm(x, xi) + b, X M m=1 dm = 1 and 0 ≤ dm Given M kernel functions k1, . . . , kM that are potentially well suited for a given problem, find a positive linear combination of these kernels such that the resulting kernel k is “optimal” k(x, x ′ ) = X M m=1 dmkm(x, x ′ ), with dm ≥ 0, X m dm = 1 Learning together The kernel coefficients dm and the SVM parameters αi , b. Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 5 / 21Multiple Kernel: illustration Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 6 / 21Multiple Kernel Strategies Wrapper method (Weston et al., 2000; Chapelle et al., 2002) ◮ solve SVM ◮ gradient descent on dm on criterion: ⋆ margin criterion ⋆ span criterion Kernel Learning & Feature Selection ◮ use Kernels as dictionary Embedded Multi Kernel Learning (MKL) Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 7 / 21Multiple Kernel functional Learning The problem (for given C) min f ∈H,b,ξ,d 1 2 kf k 2 H + C X i ξi with yi f (xi) + b  ≥ 1 + ξi ; ξi ≥ 0 ∀i X M m=1 dm = 1 , dm ≥ 0 ∀m , f = X m fm and k(x, x ′ ) = X M m=1 dmkm(x, x ′ ), with dm ≥ 0 The functional framework H = M M m=1 H′ m hf , giH′ m = 1 dm hf , giHm Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 8 / 21Multiple Kernel functional Learning The problem (for given C) min {fm},b,ξ,d 1 2 X m 1 dm kfmk 2 Hm + C X i ξi with yi X m fm(xi) + b  ≥ 1 + ξi ; ξi ≥ 0 ∀i X m dm = 1 , dm ≥ 0 ∀m , Treated as a bi-level optimization task min d∈IRM    min {fm},b,ξ 1 2 X m 1 dm kfmk 2 Hm + C X i ξi with yi X m fm(xi) + b  ≥ 1 + ξi ; ξi ≥ 0 ∀i s.t. X m dm = 1 , dm ≥ 0 ∀m , Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 9 / 21Multiple Kernel representer theorem and dual The Lagrangian: L = 1 2 X m 1 dm kfmk 2 Hm + C X i ξi − X i αi  yi X m fm(xi) + b  − 1 − ξi  − X i βi ξi Associated KKT stationarity conditions: ∇mL = 0 ⇔ 1 dm fm(•) = Xn i=1 αi yikm(•, xi) m = 1, M Representer theorem f (•) = X m fm(•) = Xn i=1 αi yi X m dmkm(•, xi) | {z } K(•,xi ) We have a standard SVM problem with respect to function f and kernel K. Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 10 / 21Multiple Kernel Algorithm Use a Reduced Gradient Algorithm1 min d∈IRM J(d) s.t. X m dm = 1 , dm ≥ 0 ∀m , SimpleMKL algorithm set dm = 1 M for m = 1, . . . , M while stopping criterion not met do compute J(d) using an QP solver with K = P m dmKm compute ∂J ∂dm , and projected gradient as a descent direction D γ ← compute optimal stepsize d ← d + γD end while −→ Improvement reported using the Hessian 1Rakotomamonjy et al. JMLR 08 Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 11 / 21Computing the reduced gradient At the optimal the primal cost = dual cost 1 2 X m 1 dm kfmk 2 Hm + C X i ξi | {z } primal cost = 1 2 α ⊤Gα − e ⊤α | {z } dual cost with G = P m dmGm where Gm,ij = km(xi , xj) Dual cost is easier for the gradient ∇dm J(d) = 1 2 α ⊤Gmα Reduce (or project) to check the constraints P m dm = 1 → P m Dm = 0 Dm = ∇dm J(d) − ∇d1 J(d) and D1 = − X M m=2 Dm Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 12 / 21Complexity For each iteration: SVM training: O(nnsv + n 3 sv). Inverting Ksv,sv is O(n 3 sv), but might already be available as a by-product of the SVM training. Computing H: O(Mn2 sv) Finding d: O(M3 ). The number of iterations is usually less than 10. −→ When M < nsv, computing d is not more expensive than QP. Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 13 / 21MKL on the 101-caltech dataset http://www.robots.ox.ac.uk/~vgg/software/MKL/ Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 14 / 21Support vector regression (SVR) the t-insensitive loss ( min f ∈H 1 2 kf k 2 H with |f (xi) − yi | ≤ t, i = 1, n The support vector regression introduce slack variables (SVR) ( min f ∈H 1 2 kf k 2 H + C P|ξi | with |f (xi) − yi | ≤ t + ξi 0 ≤ ξi i = 1, n a typical multi parametric quadratic program (mpQP) piecewise linear regularization path α(C,t) = α(C0,t0) + ( 1 C − 1 C0 )u + 1 C0 (t − t0)v 2d Pareto’s front (the tube width and the regularity)Support vector regression illustration 0 1 2 3 4 5 6 7 8 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 Support Vector Machine Regression x y 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 −1.5 −1 −0.5 0 0.5 1 1.5 Support Vector Machine Regression x y C large C small there exists other formulations such as LP SVR...Multiple Kernel Learning for regression The problem (for given C and t) min {fm},b,ξ,d 1 2 X m 1 dm kfmk 2 Hm + C X i ξi s.t. X m fm(xi) + b − yi ≤ t + ξi ∀iξi ≥ 0 ∀i X m dm = 1 , dm ≥ 0 ∀m , regularization formulation min {fm},b,d 1 2 X m 1 dm kfmk 2 Hm + C X i max( X m fm(xi) + b − yi − t, 0) X m dm = 1 , dm ≥ 0 ∀m , Equivalently min fm},b,ξ,d X i max X m fm(xi) + b − yi − t, 0  + 1 2C X m 1 dm kfmk 2 Hm + µ X m |dm| Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 17 / 21Multiple Kernel functional Learning The problem (for given C and t) min {fm},b,ξ,d 1 2 X m 1 dm kfmk 2 Hm + C X i ξi s.t. X m fm(xi) + b − yi ≤ t + ξi ∀iξi ≥ 0 ∀i X m dm = 1 , dm ≥ 0 ∀m , Treated as a bi-level optimization task min d∈IRM    min {fm},b,ξ 1 2 X m 1 dm kfmk 2 Hm + C X i ξi s.t. X m fm(xi) + b − yi ≥ t + ξi ∀i ξi ≥ 0 ∀i s.t. X m dm = 1 , dm ≥ 0 ∀m , Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 18 / 21Multiple Kernel experiments 0 0.2 0.4 0.6 0.8 1 −1 −0.5 0 0.5 1 LinChirp 0 0.2 0.4 0.6 0.8 1 −2 −1 0 1 2 x 0 0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1 Wave 0 0.2 0.4 0.6 0.8 1 0 0.5 1 x 0 0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1 Blocks 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 x 0 0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1 Spikes 0 0.2 0.4 0.6 0.8 1 0 0.5 1 x Single Kernel Kernel Dil Kernel Dil-Trans Data Set Norm. MSE (%) #Kernel Norm. MSE #Kernel Norm. MSE LinChirp 1.46 ± 0.28 7.0 1.00 ± 0.15 21.5 0.92 ± 0.20 Wave 0.98 ± 0.06 5.5 0.73 ± 0.10 20.6 0.79 ± 0.07 Blocks 1.96 ± 0.14 6.0 2.11 ± 0.12 19.4 1.94 ± 0.13 Spike 6.85 ± 0.68 6.1 6.97 ± 0.84 12.8 5.58 ± 0.84 Table: Normalized Mean Square error averaged over 20 runs. Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 19 / 21Conclusion on multiple kernel (MKL) MKL: Kernel tuning, variable selection. . . ◮ extention to classification and one class SVM SVM KM: an efficient Matlab toolbox (available at MLOSS)2 Multiple Kernels for Image Classification: Software and Experiments on Caltech-1013 new trend: Multi kernel, Multi task and ∞ number of kernels 2 http://mloss.org/software/view/33/ 3 http://www.robots.ox.ac.uk/~vgg/software/MKL/Bibliography A. Rakotomamonjy, F. Bach, S. Canu & Y. Grandvalet. SimpleMKL. J. Mach. Learn. Res. 2008, 9:2491–2521. M. Gönen & E. Alpaydin Multiple kernel learning algorithms. J. Mach. Learn. Res. 2008;12:2211-2268. http://www.cs.nyu.edu/~mohri/icml2011-tutorial/tutorial-icml2011-2.pdf http://www.robots.ox.ac.uk/~vgg/software/MKL/ http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 21 / 21 Lecture 7: Tuning hyperparameters using cross validation Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 April 4, 2014Roadmap 1 Tuning hyperparameters Motivation Machine learning without data Assessing the quality of a trained SVM Model selection log of the bandwith log of C 1.5 2 2.5 3 3.5 4 4.5 ï1 0 1 2 3 4 “Evaluation is the key to making real progress in data mining”, [Witten & Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Motivation: the influence of C on SVM 0 0.5 1 1.5 2 2.5 3 3.5 4 0.22 0.24 0.26 0.28 0.3 error C (log. scale) 0 0 1 −1 C too small 0 0 0 1 1 1 −1 −1 −1 −1 −1 nice C 0 0 0 0 0 1 1 1 1 1 1 −1 −1 −1 −1 −1 C too largeMotivation: Need for model selection (tuning the hyper parameters) Require a good estimation of the performance on future data Choose a relevant performance measureRoadmap 1 Tuning hyperparameters Motivation Machine learning without data Assessing the quality of a trained SVM Model selection log of the bandwith log of C 1.5 2 2.5 3 3.5 4 4.5 ï1 0 1 2 3 4 “Evaluation is the key to making real progress in data mining”, [Witten & Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Machine learning without data minimizing IP(error)Roadmap 1 Tuning hyperparameters Motivation Machine learning without data Assessing the quality of a trained SVM Model selection log of the bandwith log of C 1.5 2 2.5 3 3.5 4 4.5 ï1 0 1 2 3 4 “Evaluation is the key to making real progress in data mining”, [Witten & Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Training and test data Split dataset into two groups randomly picked (hold out strategy) Training set: used to train the classifier Test set: used to estimate the error rate of the trained classifier (X,y) total available data (Xa,ya) training data (Xt,yt) test data (Xa, ya, Xt, yt) ← split(X, y, option = 1 3 ) Generally, the larger the training data the better the classifier The larger the test data the more accurate the error estimateAssessing the quality of a trained SVM: minimum error rate Definition (The confusion matrix) A matrix showing the predicted and actual classifications. A confusion matrix is of size L × L, where L is the number of different classes. Observed / predicted Positive Negative positive a b negative c d Error rate = 1 - Accuracy = b + c a + b + c + d = b + c n = 1 − a + d n True positive rate (Recall, Sensitivity) d/(c+d). True negative rate (Specificity) a/(a+b). Precision, False positive rate, False negative rate...Other performances measures N. Japkowicz & M. Shah, "Evaluating Learning Algorithms: A Classification Perspective", Cambridge University Press, 2011The learning equation Learning = training + testing + tuning Table: my experimental error rates State of the art my new method Bayes error problem 1 10% ± 1.25 8.5% ± .5 problem 2 5 % (.25) 4 % (.5) is my new method good for problem 1?The learning equation Learning = training + testing + tuning Table: my experimental error rates State of the art my new method Bayes error problem 1 10% ± 1.25 8.5% ± .5 11 % problem 2 5 % (.25) 4 % (.5) 2 % is my new method good for problem 1?Error bars on Bernouilli trials Error rate = bp B(p) with confidence α: (Normal approximation interval) p = IP(error) in bp ± u1−α/2 s bp (1 − bp) nt with confidence α: (improved approximation) p = IP(error) in 1 1 + 1 K u 2 1−α/2  bp ± u1−α/2 s bp (1 − bp) nt   what if bp = 0? http://en.wikipedia.org/wiki/Binomial_proportion_confidence_intervalTo improve the estimate Random Subsampling (The repeated holdout method) K-Fold Cross-Validation (K = 10 or K = 2 or k = n) Leave-one-out Cross-Validation (k = 1) BootstrapError bars: the gaussian approximation ... and to stabilize: iterate K times - do it say K = 10 times The repeated holdout method Holdout estimate can be made more reliable by repeating the process with different subsamples In each iteration, use a different random splitting Average the error rates on the different iterations mean error rate e = 1 K X K k=1 ek variance σb 2 = 1 K − 1 X K k=1 (ek − e) 2 . e + tα/2,K−1 r σb 2 K t0.025,9 = 2.262Cross validation Definition (Cross-validation) A method for estimating the accuracy of an inducer by dividing the data into K mutually exclusive subsets (the “folds”) of approximately equal size. Exemple of K = 3-Fold Cross-Validation training data test data How many folds are needed (K =?) large: small bias, large variance as well as computational time small: computation time reduced, small variance, large bias A common choice for K-Fold Cross Validation is K=5Leave one out cross validation Theoretical guaranteesThe bootstrapComparing results Two different issues what is the best method for my problem? how good is my learning algorithm?Comparing two algorithms: Mc Nemar’s test build the confusion matrix of the two algorithms Algo 1 / Algo 2 right wrong right number of examples well classified by both e01 number of examples well classified by 1 but not by 2 wrong e10 number of examples missclassified by 1 but not by 2 number of examples missclassified by both H0: if the two algorithms are the same (we expect e10 = e01 = e10+e01 2 ) (|e10 − e01| − 1) 2 e10 + e01 ∼ χ 2 1 Beware: if e10 + e01 < 20 better use the sign test Matlab function: http://www.mathworks.com/matlabcentral/fileexchange/189-discrim/content/discrim/ mcnemar.m J. L. Fleiss (1981) Statistical Methods for Rates and Proportions. Second Edition. Wiley.Roadmap 1 Tuning hyperparameters Motivation Machine learning without data Assessing the quality of a trained SVM Model selection log of the bandwith log of C 1.5 2 2.5 3 3.5 4 4.5 ï1 0 1 2 3 4 “Evaluation is the key to making real progress in data mining”, [Witten & Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Model selection strategy Model selection criteria attempt to find a good compromise between The complexity of a model Its prediction accuracy on the training data 1 (Xa, ya, Xt, yt) ← split(X, y, options) 2 (C, b) ← tune(Xa, ya, options) 3 model ← train(Xa, ya, C, b, options) 4 error ← test(Xt, yt, C, b, options) Occam’s Razor: the best theory is the smallest one that describes all the factsModel selection: the tuning function function (C, b) ← tune(Xa, ya, options) 1 (Xℓ, yℓ, Xv, yv) ← split(Xa, ya, options) 2 loop on a grid for C 3 loop on a grid for b 1 model ← train(Xℓ, yℓ, C, b, options) 2 error ← test(Xv, yv, C, b, options) The three sets Training set: a set of examples used for learning: to fit the parameters Validation set: a set of examples used to tune the hyper parameters Test set: independent instances that have played no part in formation of classifierhow to design the grids A grid on b A much simpler trick is to pick, say 1000 pairs (x,x’) at random from your dataset, compute the distance of all such pairs and take the median, the 0.1 and the 0.9 quantile. Now pick b to be the inverse any of these three numbers. http://blog.smola.org/post/940859888/easy-kernel-width-choice A grid on C from Cmin to ∞ to much!The coarse to fine strategy 1 use a large coarse grid on a few data to localize interesting values 2 fine tuning on all data in this zone 1 (Xa, ya, Xt, yt) ← split(X, y) 2 (C, b) ← tune(Xa, ya, coarsegrids,smalltrainingset) 3 finegrids ← fit_grid(C, b) 4 (C, b) ← tune(Xa, ya, finegrids, largetrainingset) 5 model ← train(Xa, ya, C, b, options) 6 error ← test(Xt, yt, C, b, options) The computing time is the key issueEvaluation measures the span boundBibliography http://research.cs.tamu.edu/prism/lectures/iss/iss_l13.pdf http://www.cs.odu.edu/~mukka/cs795sum13dm/Lecturenotes/Day3/Chapter5.pdf http://www.cs.cmu.edu/~epxing/Class/10701-10s/Lecture/lecture8.pdf http://www.mohakshah.com/tutorials/icml2012/Tutorial-ICML2012/Tutorial_at_ICML_ 2012_files/ICML2012-Tutorial.pdf Stéphane Canu (INSA Rouen - LITIS) April 4, 2014 26 / 26 Lecture 6: Minimum encoding ball and Support vector data description (SVDD) Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 May 12, 2014Plan 1 Support Vector Data Description (SVDD) SVDD, the smallest enclosing ball problem The minimum enclosing ball problem with errors The minimum enclosing ball problem in a RKHS The two class Support vector data description (SVDD)The minimum enclosing ball problem [Tax and Duin, 2004] Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 3 / 35The minimum enclosing ball problem [Tax and Duin, 2004] the center Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 3 / 35The minimum enclosing ball problem [Tax and Duin, 2004] the radius Given n points, {xi , i = 1, n} . ( min R∈IR,c∈IRd R 2 with kxi − ck 2 ≤ R 2 , i = 1, . . . , n What is that in the convex programming hierarchy? LP, QP, QCQP, SOCP and SDP Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 3 / 35The convex programming hierarchy (part of) LP    min x f ⊤x with Ax ≤ d and 0 ≤ x QP ( min x 1 2 x ⊤Gx + f ⊤x with Ax ≤ d QCQP    min x 1 2 x ⊤Gx + f ⊤x with x ⊤Bix + a ⊤ i x ≤ di i = 1, n SOCP    min x f ⊤x with kx − aik ≤ b ⊤ i x + di i = 1, n The convex programming hierarchy? Model generality: LP < QP < QCQP < SOCP < SDP Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 4 / 35MEB as a QP in the primal Theorem (MEB as a QP) The two following problems are equivalent, ( min R∈IR,c∈IRd R 2 with kxi − ck 2 ≤ R 2 , i = 1, . . . , n ( min w,ρ 1 2 kwk 2 − ρ with w⊤xi ≥ ρ + 1 2 kxik 2 with ρ = 1 2 (kck 2 − R 2 ) and w = c. Proof: kxi − ck 2 ≤ R 2 kxik 2 − 2x ⊤ i c + kck 2 ≤ R 2 −2x ⊤ i c ≤ R 2 − kxik 2 − kck 2 2x ⊤ i c ≥ −R 2 + kxik 2 + kck 2 x ⊤ i c ≥ 1 2 (kck 2 − R 2 ) | {z } ρ + 1 2 kxik 2 Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 5 / 35MEB and the one class SVM SVDD: ( min w,ρ 1 2 kwk 2 − ρ with w⊤xi ≥ ρ + 1 2 kxik 2 SVDD and linear OCSVM (Supporting Hyperplane) if ∀i = 1, n, kxik 2 = constant, it is the the linear one class SVM (OC SVM) The linear one class SVM [Schölkopf and Smola, 2002] ( min w,ρ′ 1 2 kwk 2 − ρ ′ with w⊤xi ≥ ρ ′ with ρ ′ = ρ + 1 2 kxik 2 ⇒ OC SVM is a particular case of SVDD Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 6 / 35When ∀i = 1, n, kxik 2 = 1 0 c kxi − ck 2 ≤ R 2 ⇔ w ⊤xi ≥ ρ with ρ = 1 2 (kck 2 − R + 1) SVDD and OCSVM "Belonging to the ball" is also "being above" an hyperplane Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 7 / 35MEB: KKT L(c, R, α) = R 2 + Xn i=1 αi kxi − ck 2 − R 2  KKT conditionns : stationarty ◮ 2c Pn i=1 αi − 2 Pn i=1 αixi = 0 ← The representer theorem ◮ 1 − Pn i=1 αi = 0 primal admiss. kxi − ck 2 ≤ R 2 dual admiss. αi ≥ 0 i = 1, n complementarity αi kxi − ck 2 − R 2  = 0 i = 1, n Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 8 / 35MEB: KKT the radius L(c, R, α) = R 2 + Xn i=1 αi kxi − ck 2 − R 2  KKT conditionns : stationarty ◮ 2c Pn i=1 αi − 2 Pn i=1 αixi = 0 ← The representer theorem ◮ 1 − Pn i=1 αi = 0 primal admiss. kxi − ck 2 ≤ R 2 dual admiss. αi ≥ 0 i = 1, n complementarity αi kxi − ck 2 − R 2  = 0 i = 1, n Complementarity tells us: two groups of points the support vectors kxi − ck 2 = R 2 and the insiders αi = 0 Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 8 / 35MEB: Dual The representer theorem: c = Pn i=1 αixi Pn i=1 αi = Xn i=1 αixi L(α) = Xn i=1 αi kxi − Xn j=1 αjxjk 2  Xn i=1 Xn j=1 αiαjx ⊤ i xj = α ⊤Gα and Xn i=1 αi x ⊤ i xi = α ⊤diag(G) with G = XX⊤ the Gram matrix: Gij = x ⊤ i xj ,    min α∈IRn α ⊤Gα − α ⊤diag(G) with e ⊤α = 1 and 0 ≤ αi , i = 1 . . . n Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 9 / 35SVDD primal vs. dual Primal    min R∈IR,c∈IRd R 2 with kxi − ck 2 ≤ R 2 , i = 1, . . . , n d + 1 unknown n constraints can be recast as a QP perfect when d << n Dual    min α α ⊤Gα − α ⊤diag(G) with e ⊤α = 1 and 0 ≤ αi , i = 1 . . . n n unknown with G the pairwise influence Gram matrix n box constraints easy to solve to be used when d > nSVDD primal vs. dual Primal    min R∈IR,c∈IRd R 2 with kxi − ck 2 ≤ R 2 , i = 1, . . . , n d + 1 unknown n constraints can be recast as a QP perfect when d << n Dual    min α α ⊤Gα − α ⊤diag(G) with e ⊤α = 1 and 0 ≤ αi , i = 1 . . . n n unknown with G the pairwise influence Gram matrix n box constraints easy to solve to be used when d > n But where is R 2 ?Looking for R 2 ( min α α ⊤Gα − α ⊤diag(G) with e ⊤α = 1, 0 ≤ αi , i = 1, n The Lagrangian: L(α, µ, β) = α ⊤Gα − α ⊤diag(G) + µ(e ⊤α − 1) − β ⊤α Stationarity cond.: ∇αL(α, µ, β) = 2Gα − diag(G) + µe − β = 0 The bi dual ( min α α ⊤Gα + µ with −2Gα + diag(G) ≤ µe by identification R 2 = µ + α ⊤Gα = µ + kck 2 µ is the Lagrange multiplier associated with the equality constraint Xn i=1 αi = 1 Also, because of the complementarity condition, if xi is a support vector, then βi = 0 implies αi > 0 and R 2 = kxi − ck 2 .Plan 1 Support Vector Data Description (SVDD) SVDD, the smallest enclosing ball problem The minimum enclosing ball problem with errors The minimum enclosing ball problem in a RKHS The two class Support vector data description (SVDD) Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 12 / 35The minimum enclosing ball problem with errors the slack The same road map: initial formuation reformulation (as a QP) Lagrangian, KKT dual formulation bi dual Initial formulation: for a given C    min R,a,ξ R 2 + C Xn i=1 ξi with kxi − ck 2 ≤ R 2 + ξi , i = 1, . . . , n and ξi ≥ 0, i = 1, . . . , n Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 13 / 35The MEB with slack: QP, KKT, dual and R 2 SVDD as a QP:    min w,ρ 1 2 kwk 2 − ρ + C 2 Xn i=1 ξi with w⊤xi ≥ ρ + 1 2 kxik 2 − 1 2 ξi and ξi ≥ 0, i = 1, n again with OC SVM as a particular case. With G = XX ⊤ Dual SVDD:    min α α ⊤Gα − α ⊤diag(G) with e ⊤α = 1 and 0 ≤ αi ≤ C, i = 1, n for a given C ≤ 1. If C is larger than one it is useless (it’s the no slack case) R 2 = µ + c ⊤c with µ denoting the Lagrange multiplier associated with the equality constraint Pn i=1 αi = 1.Variations over SVDD Adaptive SVDD: the weighted error case for given wi , i = 1, n    min c∈IRp,R∈IR,ξ∈IRn R + C Xn i=1 wi ξi with kxi − ck 2 ≤ R+ξi ξi ≥ 0 i = 1, n The dual of this problem is a QP [see for instance Liu et al., 2013] ( min α∈IRn α ⊤XX ⊤α − α ⊤diag(XX ⊤) with Pn i=1 αi = 1 0 ≤ αi ≤ Cwi i = 1, n Density induced SVDD (D-SVDD):    min c∈IRp,R∈IR,ξ∈IRn R + C Xn i=1 ξi with wikxi − ck 2 ≤ R+ξi ξi ≥ 0 i = 1, nPlan 1 Support Vector Data Description (SVDD) SVDD, the smallest enclosing ball problem The minimum enclosing ball problem with errors The minimum enclosing ball problem in a RKHS The two class Support vector data description (SVDD) Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 16 / 35SVDD in a RKHS The feature map: IRp −→ H c −→ f (•) xi −→ k(xi , •) kxi − ckIRp ≤ R 2 −→ kk(xi , •) − f (•)k 2 H ≤ R 2 Kernelized SVDD (in a RKHS) is also a QP    min f ∈H,R∈IR,ξ∈IRn R 2 + C Xn i=1 ξi with kk(xi , •) − f (•)k 2 H ≤ R 2+ξi i = 1, n ξi ≥ 0 i = 1, nSVDD in a RKHS: KKT, Dual and R 2 L = R 2 + C Xn i=1 ξi + Xn i=1 αi kk(xi , .) − f (.)k 2 H − R 2−ξi  − Xn i=1 βi ξi = R 2 + C Xn i=1 ξi + Xn i=1 αi k(xi , xi) − 2f (xi) + kf k 2 H − R 2−ξi  − Xn i=1 βi ξi KKT conditions Stationarity ◮ 2f (.) Pn i=1 αi − 2 Pn i=1 αik(., xi) = 0 ← The representer theorem ◮ 1 − Pn i=1 αi = 0 ◮ C − αi − βi = 0 Primal admissibility: kk(xi , .) − f (.)k 2 ≤ R 2 + ξi , ξi ≥ 0 Dual admissibility: αi ≥ 0 , βi ≥ 0 Complementarity ◮ αi kk(xi , .) − f (.)k 2 − R 2 − ξi  = 0 ◮ βi ξi = 0SVDD in a RKHS: Dual and R 2 L(α) = Xn i=1 αik(xi , xi) − 2 Xn i=1 f (xi) + kf k 2 H with f (.) = Xn j=1 αjk(., xj) = Xn i=1 αik(xi , xi) − Xn i=1 Xn j=1 αiαj k(xi , xj) | {z } Gij Gij = k(xi , xj)    min α α ⊤Gα − α ⊤diag(G) with e ⊤α = 1 and 0 ≤ αi≤ C, i = 1 . . . n As it is in the linear case: R 2 = µ + kf k 2 H with µ denoting the Lagrange multiplier associated with the equality constraint Pn i=1 αi = 1.SVDD train and val in a RKHS Train using the dual form (in: G, C; out: α, µ)    min α α ⊤Gα − α ⊤diag(G) with e ⊤α = 1 and 0 ≤ αi≤ C, i = 1 . . . n Val with the center in the RKHS: f (.) = Pn i=1 αik(., xi) φ(x) = kk(x, .) − f (.)k 2 H − R 2 = kk(x, .)k 2 H − 2hk(x, .), f (.)iH + kf (.)k 2 H − R 2 = k(x, x) − 2f (x) + R 2 − µ − R 2 = −2f (x) + k(x, x) − µ = −2 Xn i=1 αik(x, xi) + k(x, x) − µ φ(x) = 0 is the decision border Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 20 / 35An important theoretical result For a well-calibrated bandwidth, The SVDD estimates the underlying distribution level set [Vert and Vert, 2006] The level sets of a probability density function IP(x) are the set Cp = {x ∈ IRd | IP(x) ≥ p} It is well estimated by the empirical minimum volume set Vp = {x ∈ IRd | kk(x, .) − f (.)k 2 H − R 2 ≥ 0} The frontiers coincidesSVDD: the generalization error For a well-calibrated bandwidth, (x1, . . . , xn) i.i.d. from some fixed but unknown IP(x) Then [Shawe-Taylor and Cristianini, 2004] with probability at least 1 − δ, (∀δ ∈]0, 1[), for any margin m > 0 IP kk(x, .) − f (.)k 2 H ≥ R 2 + m  ≤ 1 mn Xn i=1 ξi + 6R 2 m √ n + 3 r ln(2/δ) 2nEquivalence between SVDD and OCSVM for translation invariant kernels (diagonal constant kernels) Theorem Let H be a RKHS on some domain X endowed with kernel k. If there exists some constant c such that ∀x ∈ X , k(x, x) = c, then the two following problems are equivalent,    min f ,R,ξ R + C Xn i=1 ξi with kk(xi , .) − f (.)k 2 H ≤ R+ξi ξi ≥ 0 i = 1, n    min f ,ρ,ξ 1 2 kf k 2 H − ρ + C Xn i=1 εi with f (xi) ≥ ρ − εi εi ≥ 0 i = 1, n with ρ = 1 2 (c + kf k 2 H − R) and εi = 1 2 ξi .Proof of the Equivalence between SVDD and OCSVM    min f ∈H,R∈IR,ξ∈IRn R + C Xn i=1 ξi with kk(xi , .) − f (.)k 2 H ≤ R+ξi , ξi ≥ 0 i = 1, n since kk(xi , .) − f (.)k 2 H = k(xi , xi) + kf k 2 H − 2f (xi)    min f ∈H,R∈IR,ξ∈IRn R + C Xn i=1 ξi with 2f (xi) ≥ k(xi , xi) + kf k 2 H − R−ξi , ξi ≥ 0 i = 1, n. Introducing ρ = 1 2 (c + kf k 2 H − R) that is R = c + kf k 2 H − 2ρ, and since k(xi , xi) is constant and equals to c the SVDD problem becomes    min f ∈H,ρ∈IR,ξ∈IRn 1 2 kf k 2 H − ρ + C 2 Xn i=1 ξi with f (xi) ≥ ρ− 1 2 ξi , ξi ≥ 0 i = 1, nleading to the classical one class SVM formulation (OCSVM)    min f ∈H,ρ∈IR,ξ∈IRn 1 2 kf k 2 H − ρ + C Xn i=1 εi with f (xi) ≥ ρ − εi , εi ≥ 0 i = 1, n with εi = 1 2 ξi . Note that by putting ν = 1 nC we can get the so called ν formulation of the OCSVM    min f ′∈H,ρ′∈IR,ξ′∈IRn 1 2 kf ′k 2 H − nνρ′ + Xn i=1 ξ ′ i with f ′ (xi) ≥ ρ ′ − ξ ′ i , ξ′ i ≥ 0 i = 1, n with f ′ = Cf , ρ ′ = Cρ, and ξ ′ = Cξ.Duality Note that the dual of the SVDD is ( min α∈IRn α ⊤Gα − α ⊤g with Pn i=1 αi = 1 0 ≤ αi ≤ C i = 1, n where G is the kernel matrix of general term Gi,j = k(xi , xj) and g the diagonal vector such that gi = k(xi , xi) = c. The dual of the OCSVM is the following equivalent QP ( min α∈IRn 1 2 α ⊤Gα with Pn i=1 αi = 1 0 ≤ αi ≤ C i = 1, n Both dual forms provide the same solution α, but not the same Lagrange multipliers. ρ is the Lagrange multiplier of the equality constraint of the dual of the OCSVM and R = c + α ⊤Gα − 2ρ. Using the SVDD dual, it turns out that R = λeq + α ⊤Gα where λeq is the Lagrange multiplier of the equality constraint of the SVDD dual form.Plan 1 Support Vector Data Description (SVDD) SVDD, the smallest enclosing ball problem The minimum enclosing ball problem with errors The minimum enclosing ball problem in a RKHS The two class Support vector data description (SVDD) Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 27 / 35The two class Support vector data description (SVDD) −4 −3 −2 −1 0 1 2 3 −3 −2 −1 0 1 2 3 4 −4 −3 −2 −1 0 1 2 3 −3 −2 −1 0 1 2 3 4 .    min c,R,ξ+,ξ− R 2+C X yi =1 ξ + i + X yi =−1 ξ − i  with kxi − ck 2 ≤ R 2+ξ + i , ξ+ i ≥ 0 i such that yi = 1 and kxi − ck 2 ≥ R 2−ξ − i , ξ− i ≥ 0 i such that yi = −1 Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 28 / 35The two class SVDD as a QP    min c,R,ξ+,ξ− R 2+C X yi =1 ξ + i + X yi =−1 ξ − i  with kxi − ck 2 ≤ R 2+ξ + i , ξ+ i ≥ 0 i such that yi = 1 and kxi − ck 2 ≥ R 2−ξ − i , ξ− i ≥ 0 i such that yi = −1  kxik 2 − 2x ⊤ i c + kck 2 ≤ R 2+ξ + i , ξ+ i ≥ 0 i such that yi = 1 kxik 2 − 2x ⊤ i c + kck 2 ≥ R 2−ξ − i , ξ− i ≥ 0 i such that yi = −1 2x ⊤ i c ≥ kck 2 − R 2 + kxik 2−ξ + i , ξ+ i ≥ 0 i such that yi = 1 −2x ⊤ i c ≥ −kck 2 + R 2 − kxik 2−ξ − i , ξ− i ≥ 0 i such that yi = −1 2yix ⊤ i c ≥ yi(kck 2 − R 2 + kxik 2 )−ξi , ξi ≥ 0 i = 1, n change variable: ρ = kck 2 − R 2    min c,ρ,ξ kck 2 − ρ + C Pn i=1 ξi with 2yixi ⊤c ≥ yi(ρ − kxik 2 )−ξi i = 1, n and ξi ≥ 0 i = 1, nThe dual of the two class SVDD Gij = yi yjxix ⊤ j The dual formulation:    min α∈IRn α ⊤Gα − Pn i=1 αi yikxik 2 with Xn i=1 yiαi = 1 0 ≤ αi ≤ C i = 1, n Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 30 / 35The two class SVDD vs. one class SVDD The two class SVDD (left) vs. the one class SVDD (right) Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 31 / 35Small Sphere and Large Margin (SSLM) approach Support vector data description with margin [Wu and Ye, 2009]    min w,R,ξ∈IRn R 2+C X yi =1 ξ + i + X yi =−1 ξ − i  with kxi − ck 2 ≤ R 2 − 1+ξ + i , ξ+ i ≥ 0 i such that yi = 1 and kxi − ck 2 ≥ R 2 + 1−ξ − i , ξ− i ≥ 0 i such that yi = −1 kxi − ck 2 ≥ R 2 + 1−ξ − i and yi = −1 ⇐⇒ yi kxi − ck 2 ≤ yiR 2 − 1+ξ − i L(c, R, ξ, α, β) = R 2+C Xn i=1 ξi + Xn i=1 αi yikxi − ck 2 − yiR 2 + 1−ξi  − Xn i=1 βi ξi −4 −3 −2 −1 0 1 2 3 −3 −2 −1 0 1 2 3 4SVDD with margin – dual formulation L(c, R, ξ, α, β) = R 2+C Xn i=1 ξi + Xn i=1 αi yikxi − ck 2 − yiR 2 + 1−ξi  − Xn i=1 βi ξi Optimality: c = Xn i=1 αi yixi ; Xn i=1 αi yi = 1 ; 0 ≤ αi ≤ C L(α) = Xn i=1 αi yikxi − Xn j=1 αi yjxjk 2  + Xn i=1 αi = − Xn i=1 Xn j=1 αjαi yi yjx ⊤ j xi + Xn i=1 kxik 2 yiαi + Xn i=1 αi Dual SVDD is also a quadratic program problem D    min α∈IRn α ⊤Gα − e ⊤α − f ⊤α with y ⊤α = 1 and 0 ≤ αi ≤ C i = 1, n with G a symmetric matrix n × n such that Gij = yi yjx ⊤ j xi and fi = kxik 2 yiConclusion Applications ◮ outlier detection ◮ change detection ◮ clustering ◮ large number of classes ◮ variable selection, . . . A clear path ◮ reformulation (to a standart problem) ◮ KKT ◮ Dual ◮ Bidual a lot of variations ◮ L 2 SVDD ◮ two classes non symmetric ◮ two classes in the symmetric classes (SVM) ◮ the multi classes issue practical problems with translation invariant kernels .Bibliography Bo Liu, Yanshan Xiao, Longbing Cao, Zhifeng Hao, and Feiqi Deng. Svdd-based outlier detection on uncertain data. Knowledge and information systems, 34(3):597–618, 2013. B. Schölkopf and A. J. Smola. Learning with Kernels. MIT Press, 2002. John Shawe-Taylor and Nello Cristianini. Kernel methods for pattern analysis. Cambridge university press, 2004. David MJ Tax and Robert PW Duin. Support vector data description. Machine learning, 54(1):45–66, 2004. Régis Vert and Jean-Philippe Vert. Consistency and convergence rates of one-class svms and related algorithms. The Journal of Machine Learning Research, 7:817–854, 2006. Mingrui Wu and Jieping Ye. A small sphere and large margin approach for novelty detection using training data with outliers. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 31(11):2088–2092, 2009. Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 35 / 35 Lecture 5: SVM as a kernel machine Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 April 26, 2014Plan 1 Kernel machines Non sparse kernel machines Sparse kernel machines: SVM SVM: variations on a theme Sparse kernel machines for regression: SVR −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1Interpolation splines find out f ∈ H such that f (xi) = yi , i = 1, ..., n It is an ill posed problemInterpolation splines: minimum norm interpolation ( min f ∈H 1 2 kf k 2 H such that f (xi) = yi , i = 1, ..., n The lagrangian (αi Lagrange multipliers) L(f , α) = 1 2 kf k 2 − Xn i=1 αi f (xi) − yi Interpolation splines: minimum norm interpolation ( min f ∈H 1 2 kf k 2 H such that f (xi) = yi , i = 1, ..., n The lagrangian (αi Lagrange multipliers) L(f , α) = 1 2 kf k 2 − Xn i=1 αi f (xi) − yi  optimality for f : ∇f L(f , α) = 0 ⇔ f (x) = Xn i=1 αik(xi , x)Interpolation splines: minimum norm interpolation ( min f ∈H 1 2 kf k 2 H such that f (xi) = yi , i = 1, ..., n The lagrangian (αi Lagrange multipliers) L(f , α) = 1 2 kf k 2 − Xn i=1 αi f (xi) − yi  optimality for f : ∇f L(f , α) = 0 ⇔ f (x) = Xn i=1 αik(xi , x) dual formulation (remove f from the lagrangian): Q(α) = − 1 2 Xn i=1 Xn j=1 αiαjk(xi , xj) +Xn i=1 αi yi solution: max α∈IRn Q(α) Kα = yRepresenter theorem Theorem (Representer theorem) Let H be a RKHS with kernel k(s,t). Let ℓ be a function from X to IR (loss function) and Φ a non decreasing function from IR to IR. If there exists a function f ∗minimizing: f ∗ = argmin f ∈H Xn i=1 ℓ yi , f (xi)  + Φ kf k 2 H  then there exists a vector α ∈ IRn such that: f ∗ (x) = Xn i=1 αik(x, xi) it can be generalized to the semi parametric case: + Pm j=1 βjφj(x)Elements of a proof 1 Hs = span{k(., x1), ..., k(., xi), ..., k(., xn)} 2 orthogonal decomposition: H = Hs ⊕ H⊥ ⇒ ∀f ∈ H; f = fs + f⊥ 3 pointwise evaluation decomposition f (xi) = fs (xi) + f⊥(xi) = hfs (.), k(., xi)iH + hf⊥(.), k(., xi)iH | {z } =0 = fs (xi) 4 norm decomposition kf k 2 H = kfsk 2 H + kf⊥k 2 H | {z } ≥0 ≥ kfsk 2 H 5 decompose the global cost Xn i=1 ℓ yi , f (xi)  + Φ kf k 2 H  = Xn i=1 ℓ yi , fs (xi)  + Φ kfsk 2 H + kf⊥k 2 H  ≥ Xn i=1 ℓ yi , fs (xi)  + Φ kfsk 2 H  6 argmin f ∈H = argmin f ∈Hs .Smooting splines introducing the error (the slack) ξ = f (xi) − yi (S)    min f ∈H 1 2 kf k 2 H + 1 2λ Xn i=1 ξ 2 i such that f (xi) = yi + ξi , i = 1, n 3 equivalent definitions (S ′ ) min f ∈H 1 2 Xn i=1 f (xi ) − yi 2 + λ 2 kf k 2 H    min f ∈H 1 2 kf k 2 H such that Xn i=1 f (xi ) − yi 2 ≤ C ′    min f ∈H Xn i=1 f (xi ) − yi 2 such that kf k 2 H ≤ C ′′ using the representer theorem (S ′′) min α∈IRn 1 2 kKα − yk 2 + λ 2 α ⊤Kα solution: (S) ⇔ (S ′ ) ⇔ (S ′′) ⇔ α = (K + λI) −1 y 6= ridge regression: min α∈IRn 1 2 kKα − yk 2 + λ 2 α ⊤α with α = (K ⊤K + λI) −1K ⊤yKernel logistic regression inspiration: the Bayes rule D(x) = sign f (x) + α0  =⇒ log  IP(Y =1|x) IP(Y =−1|x)  = f (x) + α0 probabilities: IP(Y = 1|x) = expf (x)+α0 1 + expf (x)+α0 IP(Y = −1|x) = 1 1 + expf (x)+α0 Rademacher distribution L(xi , yi , f , α0) = IP(Y = 1|xi) yi +1 2 (1 − IP(Y = 1|xi)) 1−yi 2 penalized likelihood J(f , α0) = − Xn i=1 log L(xi , yi , f , α0)  + λ 2 kf k 2 H = Xn i=1 log  1 + exp−yi (f (xi )+α0)  + λ 2 kf k 2 HKernel logistic regression (2) (R)    min f ∈H 1 2 kf k 2 H + 1 λ Xn i=1 log 1 + exp−ξi  with ξi = yi (f (xi) + α0), i = 1, n Representer theorem J(α, α0) = 1I⊤ log  1I + expdiag(y)Kα+α0y  + λ 2 α ⊤Kα gradient vector anf Hessian matrix: ∇αJ(α, α0) = K y − (2p − 1I)  + λKα HαJ(α, α0) = Kdiag p(1I − p)  K + λK solve the problem using Newton iterations α new = α old+ Kdiag p(1I − p)  K + λK −1 K y − (2p − 1I) + λαLet’s summarize pros ◮ Universality ◮ from H to IRn using the representer theorem ◮ no (explicit) curse of dimensionality splines O(n 3 ) (can be reduced to O(n 2 )) logistic regression O(kn3 ) (can be reduced to O(kn2 ) no scalability! sparsity comes to the rescue!Roadmap 1 Kernel machines Non sparse kernel machines Sparse kernel machines: SVM SVM: variations on a theme Sparse kernel machines for regression: SVR −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Stéphane Canu (INSA Rouen - LITIS) April 26, 2014 11 / 38SVM in a RKHS: the separable case (no noise)    max f ,b m with yi f (xi) + b  ≥ m and kf k 2 H = 1 ⇔ ( min f ,b 1 2 kf k 2 H with yi f (xi) + b  ≥ 1 3 ways to represent function f f (x) | {z } in the RKHS H = X d j=1 wj φj(x) | {z } d features = Xn i=1 αi yi k(x, xi) | {z } n data points ( min w,b 1 2 kwk 2 IRd = 1 2 w⊤w with yi w⊤φ(xi) + b  ≥ 1 ⇔ ( min α,b 1 2 α ⊤Kα with yi α ⊤K(:, i) + b  ≥ 1using relevant features... a data point becomes a function x −→ k(x, •)Representer theorem for SVM ( min f ,b 1 2 kf k 2 H with yi f (xi) + b  ≥ 1 Lagrangian L(f , b, α) = 1 2 kf k 2 H − Xn i=1 αi yi(f (xi) + b) − 1  α ≥ 0 optimility condition: ∇f L(f , b, α) = 0 ⇔ f (x) = Xn i=1 αi yik(xi , x) Eliminate f from L:    kf k 2 H = Xn i=1 Xn j=1 αiαjyi yjk(xi , xj) Xn i=1 αi yif (xi) = Xn i=1 Xn j=1 αiαjyi yjk(xi , xj) Q(b, α) = − 1 2 Xn i=1 Xn j=1 αiαjyi yjk(xi , xj) − Xn i=1 αi yib − 1 Dual formulation for SVM the intermediate function Q(b, α) = − 1 2 Xn i=1 Xn j=1 αiαjyi yjk(xi , xj) − b Xn i=1 αi yi  + Xn i=1 αi max α min b Q(b, α) b can be seen as the Lagrange multiplier of the following (balanced) constaint Pn i=1 αi yi = 0 which is also the optimality KKT condition on b Dual formulation    max α∈IRn − 1 2 Xn i=1 Xn j=1 αiαjyi yjk(xi , xj) +Xn i=1 αi such that Xn i=1 αi yi = 0 and 0 ≤ αi , i = 1, nSVM dual formulation Dual formulation    max α∈IRn − 1 2 Xn i=1 Xn j=1 αiαjyi yjk(xi , xj) +Xn i=1 αi with Xn i=1 αi yi = 0 and 0 ≤ αi , i = 1, n The dual formulation gives a quadratic program (QP) ( min α∈IRn 1 2 α ⊤Gα − I1 ⊤α with α ⊤y = 0 and 0 ≤ α with Gij = yi yjk(xi , xj) with the linear kernel f (x) = Pn i=1 αi yi(x ⊤xi) = Pd j=1 βjxj when d is small wrt. n primal may be interesting.the general case: C-SVM Primal formulation (P)    min f ∈H,b,ξ∈IRn 1 2 kf k 2 + C p Xn i=1 ξ p i such that yi f (xi) + b  ≥ 1 − ξi , ξi ≥ 0, i = 1, n C is the regularization path parameter (to be tuned) p = 1 , L1 SVM ( max α∈IRn − 1 2 α ⊤Gα + α ⊤1I such that α ⊤y = 0 and 0 ≤ αi ≤ C i = 1, n p = 2, L2 SVM ( max α∈IRn − 1 2 α ⊤ G + 1 C I  α + α ⊤1I such that α ⊤y = 0 and 0 ≤ αi i = 1, n the regularization path: is the set of solutions α(C) when C variesData groups: illustration f (x) = Xn i=1 αi k(x, xi ) D(x) = sign f (x) + b  useless data important data suspicious data well classified support α = 0 0 < α < C α = C the regularization path: is the set of solutions α(C) when C variesThe importance of being support f (x) = Xn i=1 αi yik(xi , x) data point α constraint value set xi useless αi = 0 yi f (xi) + b  > 1 I0 xi support 0 < αi < C yi f (xi) + b  = 1 Iα xi suspicious αi = C yi f (xi) + b  < 1 IC Table : When a data point is « support » it lies exactly on the margin. here lies the efficiency of the algorithm (and its complexity)! sparsity: αi = 0The active set method for SVM (1)    min α∈IRn 1 2 α ⊤Gα − α ⊤1I such that α ⊤y = 0 i = 1, n and 0 ≤ αi i = 1, n    Gα − 1I − β + by = 0 α ⊤y = 0 0 ≤ αi i = 1, n 0 ≤ βi i = 1, n αiβi = 0 i = 1, n αa 0 − − + b 1 1 0 β0 ya y0 = 0 0 G α − − 1I β + b y = 0 Ga Gi G0 G ⊤ i (1) Gaαa − 1Ia + bya = 0 (2) Giαa − 1I0 − β0 + by0 = 0 1 solve (1) (find α together with b) 2 if α < 0 move it from Iα to I0 goto 1 3 else solve (2) if β < 0 move it from I0 to Iα goto 1The active set method for SVM (2) Function (α, b, Iα) ←Solve_QP_Active_Set(G, y) % Solve minα 1/2α⊤Gα − 1I⊤α % s.t. 0 ≤ α and y⊤α = 0 (Iα, I0, α) ← initialization while The_optimal_is_not_reached do (α, b) ← solve  Gaαa − 1Ia + bya y⊤ a αa = 0 if ∃i ∈ Iα such that αi < 0 then α ← projection( αa, α) move i from Iα to I0 else if ∃j ∈ I0 such that βj < 0 then use β0 = y0(Kiαa + b1I0) − 1I0 move j from I0 to Iα else The_optimal_is_not_reached ← FALSE end if end while α α old α new Projection step of the active constraints algorithm d = alpha - alphaold; alpha = alpha + t * d; Caching Strategy Save space and computing time by computing only the needed parts of kernel matrix GTwo more ways to derivate SVM Using the hinge loss min f ∈H,b∈IR 1 p Xn i=1 max 0, 1 − yi(f (xi) + b) p + 1 2C kf k 2 Minimizing the distance between the convex hulls    min α ku − vk 2 H with u(x) = X {i|yi =1} αik(xi , x), v(x) = X {i|yi =−1} αik(xi , x) and X {i|yi =1} αi = 1, X {i|yi =−1} αi = 1, 0 ≤ αi i = 1, n f (x) = 2 ku − vk 2 H u(x) − v(x)  and b = kuk 2 H − kvk 2 H ku − vk 2 H the regularization path: is the set of solutions α(C) when C variesRegularization path for SVM min f ∈H Xn i=1 max(1 − yif (xi), 0) + λo 2 kf k 2 H Iα is the set of support vectors s.t. yi f (xi) = 1; ∂f J(f ) = X i∈Iα γi yiK(xi , •) − X i∈I1 yiK(xi , •) + λo f (•) with γi ∈ ∂H(1) =] − 1, 0[Regularization path for SVM min f ∈H Xn i=1 max(1 − yif (xi), 0) + λo 2 kf k 2 H Iα is the set of support vectors s.t. yi f (xi) = 1; ∂f J(f ) = X i∈Iα γi yiK(xi , •) − X i∈I1 yiK(xi , •) + λo f (•) with γi ∈ ∂H(1) =] − 1, 0[ Let λn a value close enough to λo to keep the sets I0, Iα and IC unchanged In particular at point xj ∈ Iα (fo (xj) = fn(xj) = yj) : ∂f J(f )(xj) = 0 P i∈Iα γioyiK(xi , xj) = P i∈I1 yiK(xi P , xj) − λo yj i∈Iα γinyiK(xi , xj) = P i∈I1 yiK(xi , xj) − λn yj G(γn − γo) = (λo − λn)y avec Gij = yiK(xi , xj) γn = γo + (λo − λn)w w = (G) −1 yExample of regularization path γi ∈] − 1, 0[ yiγi ∈] − 1, −1[ λ = 1 C γi = − 1 C αi ; performing together estimation and data selectionHow to choose ℓ and P to get linear regularization path? the path is piecewise linear ⇔ one is piecewise quadratic and the other is piecewise linear the convex case [Rosset & Zhu, 07] min β∈IRd ℓ(β) + λP(β) 1 piecewise linearity: lim ε→0 β(λ + ε) − β(λ) ε = constant 2 optimality ∇ℓ(β(λ)) + λ∇P(β(λ)) = 0 ∇ℓ(β(λ + ε)) + (λ + ε)∇P(β(λ + ε)) = 0 3 Taylor expension lim ε→0 β(λ + ε) − β(λ) ε = ∇2 ℓ(β(λ)) + λ∇2P(β(λ))−1∇P(β(λ)) ∇2 ℓ(β(λ)) = constant and ∇2P(β(λ)) = 0 Lecture 4: kernels and associated functions Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 March 4, 2014Plan 1 Statistical learning and kernels Kernel machines Kernels Kernel and hypothesis set Functional differentiation in RKHSIntroducing non linearities through the feature map SVM Val f (x) = X d j=1 xjwj + b = Xn i=1 αi(x ⊤ i x) + b  t1 t2  ∈ IR2 x1 x2 x3 x4 x5 linear in x ∈ IR5 Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 3 / 37Introducing non linearities through the feature map SVM Val f (x) = X d j=1 xjwj + b = Xn i=1 αi(x ⊤ i x) + b  t1 t2  ∈ IR2 φ(t) = t1 x1 t 2 1 x2 t2 x3 t 2 2 x4 t1t2 x5 linear in x ∈ IR5 quadratic in t ∈ IR2 The feature map φ : IR2 −→ IR5 t 7−→ φ(t) = x x ⊤ i x = φ(ti) ⊤φ(t) Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 3 / 37Introducing non linearities through the feature map A. Lorena & A. de Carvalho, Uma Introducão às Support Vector Machines, 2007 Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 4 / 37Non linear case: dictionnary vs. kernel in the non linear case: use a dictionary of functions φj(x), j = 1, p with possibly p = ∞ for instance polynomials, wavelets... f (x) = X p j=1 wjφj(x) with wj = Xn i=1 αi yiφj(xi) so that f (x) = Xn i=1 αi yi X p j=1 φj(xi)φj(x) | {z } k(xi ,x) Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 5 / 37Non linear case: dictionnary vs. kernel in the non linear case: use a dictionary of functions φj(x), j = 1, p with possibly p = ∞ for instance polynomials, wavelets... f (x) = X p j=1 wjφj(x) with wj = Xn i=1 αi yiφj(xi) so that f (x) = Xn i=1 αi yi X p j=1 φj(xi)φj(x) | {z } k(xi ,x) p ≥ n so what since k(xi , x) = Pp j=1 φj(xi)φj(x) Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 5 / 37closed form kernel: the quadratic kernel The quadratic dictionary in IRd : Φ : IRd → IRp=1+d+ d(d +1) 2 s 7→ Φ = 1,s1,s2, ...,sd ,s 2 1 ,s 2 2 , ...,s 2 d , ...,sisj , ... in this case Φ(s) ⊤Φ(t) = 1 + s1t1 + s2t2 + ... + sd td + s 2 1 t 2 1 + ... + s 2 d t 2 d + ... + sisjtitj + ... Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 6 / 37closed form kernel: the quadratic kernel The quadratic dictionary in IRd : Φ : IRd → IRp=1+d+ d(d +1) 2 s 7→ Φ = 1,s1,s2, ...,sd ,s 2 1 ,s 2 2 , ...,s 2 d , ...,sisj , ... in this case Φ(s) ⊤Φ(t) = 1 + s1t1 + s2t2 + ... + sd td + s 2 1 t 2 1 + ... + s 2 d t 2 d + ... + sisjtitj + ... The quadratic kenrel: s, t ∈ IRd , k(s, t) = s ⊤t + 1 2 = 1 + 2s ⊤t + s ⊤t 2 computes the dot product of the reweighted dictionary: Φ : IRd → IRp=1+d+ d(d +1) 2 s 7→ Φ = 1, √ 2s1, √ 2s2, ..., √ 2sd ,s 2 1 ,s 2 2 , ...,s 2 d , ..., √ 2sisj , ... Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 6 / 37closed form kernel: the quadratic kernel The quadratic dictionary in IRd : Φ : IRd → IRp=1+d+ d(d +1) 2 s 7→ Φ = 1,s1,s2, ...,sd ,s 2 1 ,s 2 2 , ...,s 2 d , ...,sisj , ... in this case Φ(s) ⊤Φ(t) = 1 + s1t1 + s2t2 + ... + sd td + s 2 1 t 2 1 + ... + s 2 d t 2 d + ... + sisjtitj + ... The quadratic kenrel: s, t ∈ IRd , k(s, t) = s ⊤t + 1 2 = 1 + 2s ⊤t + s ⊤t 2 computes the dot product of the reweighted dictionary: Φ : IRd → IRp=1+d+ d(d +1) 2 s 7→ Φ = 1, √ 2s1, √ 2s2, ..., √ 2sd ,s 2 1 ,s 2 2 , ...,s 2 d , ..., √ 2sisj , ... p = 1 + d + d(d+1) 2 multiplications vs. d + 1 use kernel to save computration Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 6 / 37kernel: features throught pairwise comparizons x φ(x) e.g. a text e.g. BOW K n examples n examples Φ p features n examples k(xi , xj) = X p j=1 φj(xi)φj(xj) K The matrix of pairwise comparizons (O(n 2 )) Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 7 / 37Kenrel machine kernel as a dictionary f (x) = Xn i=1 αik(x, xi) αi influence of example i depends on yi k(x, xi) the kernel do NOT depend on yi Definition (Kernel) Let X be a non empty set (the input space). A kernel is a function k from X × X onto IR. k : X × X 7−→ IR s, t −→ k(s, t)Kenrel machine kernel as a dictionary f (x) = Xn i=1 αik(x, xi) αi influence of example i depends on yi k(x, xi) the kernel do NOT depend on yi Definition (Kernel) Let X be a non empty set (the input space). A kernel is a function k from X × X onto IR. k : X × X 7−→ IR s, t −→ k(s, t) semi-parametric version: given the family qj(x), j = 1, p f (x) = Xn i=1 αik(x, xi)+ X p j=1 βjqj(x)Kernel Machine Definition (Kernel machines) A (xi , yi)i=1,n  (x) = ψ Xn i=1 αik(x, xi) +X p j=1 βjqj(x)  α et β: parameters to be estimated. Exemples A(x) = Xn i=1 αi(x − xi) 3 + + β0 + β1x splines A(x) = signX i∈I αi exp− kx−xi k 2 b +β0  SVM IP(y|x) = 1 Z expX i∈I αi1I{y=yi }(x ⊤xi + b) 2  exponential familyPlan 1 Statistical learning and kernels Kernel machines Kernels Kernel and hypothesis set Functional differentiation in RKHS Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 10 / 37In the beginning was the kernel... Definition (Kernel) a function of two variable k from X × X to IR Definition (Positive kernel) A kernel k(s,t) on X is said to be positive if it is symetric: k(s,t) = k(t,s) an if for any finite positive interger n: ∀{αi}i=1,n ∈ IR, ∀{xi}i=1,n ∈ X , Xn i=1 Xn j=1 αiαjk(xi , xj) ≥ 0 it is strictly positive if for αi 6= 0 Xn i=1 Xn j=1 αiαjk(xi , xj) > 0Examples of positive kernels the linear kernel: s, t ∈ IRd , k(s, t) = s ⊤t symetric: s ⊤t = t ⊤s positive: Xn i=1 Xn j=1 αiαj k(xi , xj ) = Xn i=1 Xn j=1 αiαj x ⊤ i xj = Xn i=1 αi xi !⊤  Xn j=1 αj xj   = Xn i=1 αi xi 2 the product kernel: k(s, t) = g(s)g(t) for some g : IRd → IR, symetric by construction positive: Xn i=1 Xn j=1 αiαj k(xi , xj ) = Xn i=1 Xn j=1 αiαj g(xi )g(xj ) = Xn i=1 αi g(xi ) !  Xn j=1 αj g(xj )   = Xn i=1 αi g(xi ) !2 k is positive ⇔ (its square root exists) ⇔ k(s, t) = hφs, φti J.P. Vert, 2006Example: finite kernel let φj , j = 1, p be a finite dictionary of functions from X to IR (polynomials, wavelets...) the feature map and linear kernel feature map: Φ : X → IRp s 7→ Φ = φ1(s), ..., φp(s)  Linear kernel in the feature space: k(s, t) = φ1(s), ..., φp(s) ⊤ φ1(t), ..., φp(t)  e.g. the quadratic kernel: s, t ∈ IRd , k(s, t) = s ⊤t + b 2 feature map: Φ : IRd → IRp=1+d+ d(d +1) 2 s 7→ Φ = 1, √ 2s1, ..., √ 2sj , ..., √ 2sd ,s 2 1 , ...,s 2 j , ...,s 2 d , ..., √ 2sisj , ...Positive definite Kernel (PDK) algebra (closure) if k1(s,t) and k2(s,t) are two positive kernels DPK are a convex cone: ∀a1 ∈ IR+ a1k1(s, t) + k2(s, t) product kernel k1(s, t)k2(s, t) proofs by linearity: Xn i=1 Xn j=1 αiαj a1k1(i, j) + k2(i, j)  = a1 Xn i=1 Xn j=1 αiαj k1(i, j) +Xn i=1 Xn j=1 αiαj k2(i, j) assuming ∃ψℓ s.t. k1(s, t) = X ℓ ψℓ(s)ψℓ(t) Xn i=1 Xn j=1 αiαj k1(xi , xj )k2(xi , xj ) = Xn i=1 Xn j=1 αiαj X ℓ ψℓ(xi )ψℓ(xj )k2(xi , xj )  = X ℓ Xn i=1 Xn j=1 αiψℓ(xi )  αjψℓ(xj )  k2(xi , xj ) N. Cristianini and J. Shawe Taylor, kernel methods for pattern analysis, 2004Kernel engineering: building PDK for any polynomial with positive coef. φ from IR to IR φ k(s,t)  if Ψis a function from IRd to IRd k Ψ(s), Ψ(t)  if ϕ from IRd to IR+, is minimum in 0 k(s,t) = ϕ(s + t) − ϕ(s − t) convolution of two positive kernels is a positive kernel K1 ⋆ K2 Example : the Gaussian kernel is a PDK exp(−ks − tk 2 ) = exp(−ksk 2 − ktk 2 + 2s ⊤t) = exp(−ksk 2 ) exp(−ktk 2 ) exp(2s ⊤t) s ⊤t is a PDK and function exp as the limit of positive series expansion, so exp(2s ⊤t) is a PDK exp(−ksk 2 ) exp(−ktk 2 ) is a PDK as a product kernel the product of two PDK is a PDK O. Catoni, master lecture, 2005an attempt at classifying PD kernels stationary kernels, (also called translation invariant): k(s,t) = ks (s − t) ◮ radial (isotropic) gaussian: exp  − r 2 b  , r = ks − tk ◮ with compact support c.s. Matèrn : max 0, 1 − r b κ  r b kBk r b  , κ ≥ (d + 1)/2 ◮ locally stationary kernels: k(s,t) = k1(s + t)ks (s − t) K1 is a non negative function and K2 a radial kernel. non stationary (projective kernels): k(s,t) = kp(s ⊤t) ◮ separable kernels k(s,t) = k1(s)k2(t) with k1 and k2(t) PDK in this case K = k1k ⊤ 2 where k1 = (k1(x1), ..., k1(xn)) MG Genton, Classes of Kernels for Machine Learning: A Statistics Perspective - JMLR, 2002some examples of PD kernels... type name k(s,t) radial gaussian exp  − r 2 b  , r = ks − tk radial laplacian exp(−r/b) radial rationnal 1 − r 2 r 2+b radial loc. gauss. max 0, 1 − r 3b d exp(− r 2 b ) non stat. χ 2 exp(−r/b), r = P k (sk−tk ) 2 sk+tk projective polynomial (s ⊤t) p projective affine (s ⊤t + b) p projective cosine s ⊤t/kskktk projective correlation exp  s⊤t kskktk − b  Most of the kernels depends on a quantity b called the bandwidththe importance of the Kernel bandwidth for the affine Kernel: Bandwidth = biais k(s, t) = (s ⊤t + b) p = b p  s ⊤t b + 1 p for the gaussian Kernel: Bandwidth = influence zone k(s, t) = 1 Z exp  − ks − tk 2 2σ 2  b = 2σ 2the importance of the Kernel bandwidth for the affine Kernel: Bandwidth = biais k(s, t) = (s ⊤t + b) p = b p  s ⊤t b + 1 p for the gaussian Kernel: Bandwidth = influence zone k(s, t) = 1 Z exp  − ks − tk 2 2σ 2  b = 2σ 2 Illustration 1 d density estimation b = 1 2 b = 2 + data (x1, x2, ..., xn) – Parzen estimate IPb(x) = 1 Z Xn i=1 k(x, xi)kernels for objects and structures kernels on histograms and probability distributions kernel on strings spectral string kernel k(s, t) = P u φu(s)φu(t) using sub sequences similarities by alignements k(s, t) = P π exp(β(s, t, π)) kernels on graphs the pseudo inverse of the (regularized) graph Laplacian L = D − A A is the adjency matrixD the degree matrix diffusion kernels 1 Z(b) expbL subgraph kernel convolution (using random walks) and kernels on HMM, automata, dynamical system... Shawe-Taylor & Cristianini’s Book, 2004 ; JP Vert, 2006Multiple kernel M. Cuturi, Positive Definite Kernels in Machine Learning, 2009Gram matrix Definition (Gram matrix) let k(s,t) be a positive kernel on X and (xi)i=1,n a sequence on X . the Gram matrix is the square K of dimension n and of general term Kij = k(xi , xj). practical trick to check kernel positivity: K is positive ⇔ λi > 0 its eigenvalues are posivies: if Kui = λiui ; i = 1, n u ⊤ i Kui = λiu ⊤ i ui = λi matrix K is the one to be usedExamples of Gram matrices with different bandwidth raw data Gram matrix for b = 2 b = .5 b = 10different point of view about kernels kernel and scalar product k(s, t) = hφ(s), φ(t)iH kernel and distance d(s, t) 2 = k(s, s) + k(t, t) − 2k(s, t) kernel and covariance: a positive matrix is a covariance matrix IP(f) = 1 Z exp − 1 2 (f − f0) ⊤K −1 (f − f0)  if f0 = 0 and f = Kα, IP(α) = 1 Z exp − 1 2 α⊤Kα Kernel and regularity (green’s function) k(s, t) = P ∗Pδs−t for some operator P (e.g. some differential)Let’s summarize positive kernels there is a lot of them can be rather complex 2 classes: radial / projective the bandwith matters (more than the kernel itself) the Gram matrix summarize the pairwise comparizonsRoadmap 1 Statistical learning and kernels Kernel machines Kernels Kernel and hypothesis set Functional differentiation in RKHS Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 25 / 37From kernel to functions H0 =    f mf < ∞; fj ∈ IR;tj ∈ X , f (x) = Xmf j=1 fjk(x,tj)    let define the bilinear form (g(x) = Pmg i=1 gi k(x, si )) : ∀f , g ∈ H0, hf , giH0 = Xmf j=1 Xmg i=1 fj gi k(tj ,si) Evaluation functional: ∀x ∈ X f (x) = hf (•), k(x, •)iH0 from k to H for any positive kernel, a hypothesis set can be constructed H = H0 with its metricRKHS Definition (reproducing kernel Hibert space (RKHS)) a Hilbert space H embeded with the inner product h•, •iH is said to be with reproducing kernel if it exists a positive kernel k such that ∀s ∈ X , k(•,s) ∈ H ∀f ∈ H, f (s) = hf (•), k(s, •)iH Beware: f = f (•) is a function while f (s) is the real value of f at point s positive kernel ⇔ RKHS any function in H is pointwise defined defines the inner product it defines the regularity (smoothness) of the hypothesis set Exercice: let f (•) = Pn i=1 αik(•, xi). Show that kf k 2 H = α ⊤KαOther kernels (what really matters) finite kernels k(s, t) = φ1(s), ..., φp(s) ⊤ φ1(t), ..., φp(t)  Mercer kernels positive on a compact set ⇔ k(s, t) = Pp j=1 λjφj(s)φj(t) positive kernels positive semi-definite conditionnaly positive (for some functions pj) ∀{xi}i=1,n, ∀αi , Xn i αipj(xi) = 0; j = 1, p, Xn i=1 Xn j=1 αiαjk(xi , xj) ≥ 0 symetric non positive k(s, t) = tanh(s ⊤t + α0) non symetric – non positive the key property: ∇Jt (f ) = k(t, .) holds C. Ong et al, ICML , 2004The kernel map observation: x = (x1, . . . , xj , . . . , xd ) ⊤ ◮ f (x) = w⊤x = hw, xi IRd feature map: x −→ Φ(x) = (φ1(x), . . . , φj(x), . . . , φp(x))⊤ ◮ Φ : IRd 7−→ IRp ◮ f (x) = w⊤Φ(x) = hw, Φ(x)iIRp kernel dictionary: x −→ k(x) = (k(x, x1), . . . , k(x, xi), . . . , k(x, xn))⊤ ◮ k : IRd 7−→ IRn ◮ f (x) = Xn i=1 αik(x, xi) = hα, k(x)iIRn kernel map: x −→ k(•, x) p = ∞ ◮ f (x) = hf (•),K(•, x)iHRoadmap 1 Statistical learning and kernels Kernel machines Kernels Kernel and hypothesis set Functional differentiation in RKHSFunctional differentiation in RKHS Let J be a functional J : H → IR f 7→ J(f ) examples: J1(f ) = kf k 2 H, J2(f ) = f (x), J directional derivative in direction g at point f dJ(f , g) = lim ε → 0 J(f + εg) − J(f ) ε Gradient ∇J (f ) ∇J : H → H f 7→ ∇J (f ) if dJ(f , g) = h∇J (f ), giH exercise: find out ∇J1 (f ) et ∇J2 (f )Hint dJ(f , g) = dJ(f + εg) dε ε=0Solution dJ1(f , g) = lim ε → 0 kf +εgk 2−kf k 2 ε = lim ε → 0 kf k 2+ε 2kgk 2+2εhf ,giH−kf k 2 ε = lim ε → 0 εkgk 2 + 2hf , giH = h2f , giH ⇔ ∇J1 (f ) = 2f dJ2(f , g) = lim ε → 0 f (x)+εg(x)−f (x) ε = g(x) = hk(x, .), giH ⇔ ∇J2 (f ) = k(x, .)Solution dJ1(f , g) = lim ε → 0 kf +εgk 2−kf k 2 ε = lim ε → 0 kf k 2+ε 2kgk 2+2εhf ,giH−kf k 2 ε = lim ε → 0 εkgk 2 + 2hf , giH = h2f , giH ⇔ ∇J1 (f ) = 2f dJ2(f , g) = lim ε → 0 f (x)+εg(x)−f (x) ε = g(x) = hk(x, .), giH ⇔ ∇J2 (f ) = k(x, .) Minimize f ∈H J(f ) ⇔ ∀g ∈ H, dJ(f , g) = 0 ⇔ ∇J (f ) = 0Subdifferential in a RKHS H Definition (Sub gradient) a subgradient of J : H 7−→ IR at f0 is any function g ∈ H such that ∀f ∈ V(f0), J(f ) ≥ J(f0) + hg,(f − f0)iH Definition (Subdifferential) ∂J(f ), the subdifferential of J at f is the set of all subgradients of J at f . H = IR J3(x) = |x| ∂J3(0) = {g ∈ IR | − 1 < g < 1} H = IR J4(x) = max(0, 1 − x) ∂J4(1) = {g ∈ IR | − 1 < g < 0} Theorem (Chain rule for linear Subdifferential) Let T be a linear operator H 7−→ IR and ϕ a function from IR to IR If J(f ) = ϕ(Tf ) Then ∂J(f ) = {T ∗g | g ∈ ∂ϕ(Tf )}, where T ∗ denotes T’s adjoint operatorexample of subdifferential in H evaluation operator and its adjoint T : H −→ IRn f 7−→ Tf = (f (x1), . . . , f (xn))⊤ T ∗ : IRn −→ H α 7−→ T ∗α build the adjoint hTf , αiIRn = hf ,T ∗αiHexample of subdifferential in H evaluation operator and its adjoint T : H −→ IRn f 7−→ Tf = (f (x1), . . . , f (xn))⊤ T ∗ : IRn −→ H α 7−→ T ∗α = Xn i=1 αik(•, xi) build the adjoint hTf , αiIRn = hf ,T ∗αiH hTf , αiIRn = Xn i=1 f (xi)αi = Xn i=1 hf (•), k(•, xi)iHαi = hf (•), Xn i=1 αik(•, xi) | {z } T∗α iHexample of subdifferential in H evaluation operator and its adjoint T : H −→ IRn f 7−→ Tf = (f (x1), . . . , f (xn))⊤ T ∗ : IRn −→ H α 7−→ T ∗α = Xn i=1 αik(•, xi) build the adjoint hTf , αiIRn = hf ,T ∗αiH hTf , αiIRn = Xn i=1 f (xi)αi = Xn i=1 hf (•), k(•, xi)iHαi = hf (•), Xn i=1 αik(•, xi) | {z } T∗α iH TT∗ : IRn −→ IRn α 7−→ TT∗α = Xn j=1 αjk(xj , xi) = Kαexample of subdifferential in H evaluation operator and its adjoint T : H −→ IRn f 7−→ Tf = (f (x1), . . . , f (xn))⊤ T ∗ : IRn −→ H α 7−→ T ∗α = Xn i=1 αik(•, xi) build the adjoint hTf , αiIRn = hf ,T ∗αiH hTf , αiIRn = Xn i=1 f (xi)αi = Xn i=1 hf (•), k(•, xi)iHαi = hf (•), Xn i=1 αik(•, xi) | {z } T∗α iH TT∗ : IRn −→ IRn α 7−→ TT∗α = Xn j=1 αjk(xj , xi) = Kα Example of subdifferentials x given J5(f ) = |f (x)| ∂J5(f0) =  g(•) = αk(•, x) ; −1 < α < 1 x given J6(f ) = max(0, 1 − f (x)) ∂J6(f1) =  g(•) = αk(•, x) ; −1 < α < 0 Optimal conditions Theorem (Fermat optimality criterion) When J(f ) is convex, f ⋆ is a stationary point of problem min f ∈H J(f ) If and only if 0 ∈ ∂J(f ⋆ ) f f ⋆ ⋆ ∂J(f ⋆ ) exercice: find for a given y ∈ IR (from Obozinski) min x∈IR 1 2 (x − y) 2 + λ|x|Let’s summarize positive kernels ⇔ RKHS = H ⇔ regularity kf k 2 H the key property: ∇Jt (f ) = k(t, .) holds not only for positive kernels f (xi) exists (pointwise defined functions) universal consistency in RKHS the Gram matrix summarize the pairwise comparizons Lecture 3: Linear SVM with slack variables Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 March 23, 2014The non separable case −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5 3 −1 −0.5 0 0.5 1 1.5 2 2.5Road map 1 Linear SVM The non separable case The C (L1) SVM The L2 SVM and others “variations on a theme” The hinge loss 0 0 Slack jThe non separable case: a bi criteria optimization problem Modeling potential errors: introducing slack variables ξi (xi , yi)  no error: yi(w⊤xi + b) ≥ 1 ⇒ ξi = 0 error: ξi = 1 − yi(w⊤xi + b) > 0 0 0 Slack j    min w,b,ξ 1 2 kwk 2 min w,b,ξ C p Xn i=1 ξ p i with yi(w⊤xi + b) ≥ 1 − ξi ξi ≥ 0 i = 1, n Our hope: almost all ξi = 0Bi criteria optimization and dominance    L(w) = 1 p Xn i=1 ξ p i P(w) = kwk 2 Dominance w1 dominates w2 if L(w1) ≤ L(w2) and P(w1) ≤ P(w2) Pareto front (or Pareto Efficient Frontier) it is the set of all nondominated solutions P(w) = || w ||2 L(w) = 1/p Y n i=1 j p i admisible set Pareto’s front w = 0 Admissible solution Figure: dominated point (red), non dominated point (purple) and Pareto front (blue). Pareto frontier ⇔ Regularization path Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 5 / 293 equivalent formulations to reach Pareto’s front min w∈IRd 1 p Xn i=1 ξ p i + λ kwk 2 it works for CONVEX criteria! Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 6 / 293 equivalent formulations to reach Pareto’s front min w∈IRd 1 p Xn i=1 ξ p i + λ kwk 2    min w 1 p Xn i=1 ξ p i with kwk 2 ≤ k it works for CONVEX criteria! Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 6 / 293 equivalent formulations to reach Pareto’s front min w∈IRd 1 p Xn i=1 ξ p i + λ kwk 2    min w 1 p Xn i=1 ξ p i with kwk 2 ≤ k    min w kwk 2 with 1 p Xn i=1 ξ p i ≤ k ′ it works for CONVEX criteria! Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 6 / 29The non separable case Modeling potential errors: introducing slack variables ξi (xi , yi)  no error: yi(w⊤xi + b) ≥ 1 ⇒ ξi = 0 error: ξi = 1 − yi(w⊤xi + b) > 0 Minimizing also the slack (the error), for a given C > 0    min w,b,ξ 1 2 kwk 2 + C p Xn i=1 ξ p i with yi(w⊤xi + b) ≥ 1 − ξi i = 1, n ξi ≥ 0 i = 1, n Looking for the saddle point of the lagrangian with the Lagrange multipliers αi ≥ 0 and βi ≥ 0 L(w, b, α, β) = 1 2 kwk 2 + C p Xn i=1 ξ p i − Xn i=1 αi yi(w ⊤xi + b) − 1 + ξi  − Xn i=1 βi ξiThe KKT(p = 1) L(w, b, α, β) = 1 2 kwk 2 + C p Xn i=1 ξ p i − Xn i=1 αi yi(w ⊤xi + b) − 1 + ξi  − Xn i=1 βi ξi stationarity w − Xn i=1 αi yixi = 0 and Xn i=1 αi yi = 0 C − αi − βi = 0 i = 1, . . . , n primal admissibility yi(w⊤xi + b) ≥ 1 i = 1, . . . , n ξi ≥ 0 i = 1, . . . , n dual admissibility αi ≥ 0 i = 1, . . . , n βi ≥ 0 i = 1, . . . , n complementarity αi  yi(w⊤xi + b) − 1 + ξi  = 0 i = 1, . . . , n βi ξi = 0 i = 1, . . . , n Let’s eliminate β!KKT (p = 1) stationarity w − Xn i=1 αi yixi = 0 and Xn i=1 αi yi = 0 primal admissibility yi(w⊤xi + b) ≥ 1 i = 1, . . . , n ξi ≥ 0 i = 1, . . . , n; dual admissibility αi ≥ 0 i = 1, . . . , n C − αi ≥ 0 i = 1, . . . , n; complementarity αi  yi(w⊤xi + b) − 1 + ξi  = 0 i = 1, . . . , n (C − αi) ξi = 0 i = 1, . . . , n sets I0 IA IC αi 0 0 < α < C C βi C C − α 0 ξi 0 0 1 − yi(w⊤xi + b) yi(w⊤xi + b) > 1 yi(w⊤xi + b) = 1 yi(w⊤xi + b) < 1 useless usefull (support vec) suspiciousThe importance of being support −2 −1 0 1 2 3 4 −2 −1 0 1 2 3 4 −2 −1 0 1 2 3 4 −2 −1 0 1 2 3 4 . data point α constraint value set xi useless αi = 0 yi w⊤xi + b  > 1 I0 xi support 0 < αi < C yi w⊤xi + b  = 1 Iα xi suspicious αi = C yi w⊤xi + b  < 1 IC Table: When a data point is « support » it lies exactly on the margin. here lies the efficiency of the algorithm (and its complexity)! sparsity: αi = 0Optimality conditions (p = 1) L(w, b, α, β) = 1 2 kwk 2 + C Xn i=1 ξi − Xn i=1 αi yi(w ⊤xi + b) − 1 + ξi  − Xn i=1 βi ξi Computing the gradients:    ∇wL(w, b, α) = w − Xn i=1 αi yixi ∂L(w, b, α) ∂b = Xn i=1 αi yi ∇ξiL(w, b, α) = C − αi − βi no change for w and b βi ≥ 0 and C − αi − βi = 0 ⇒ αi ≤ C The dual formulation:    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi ≤ C i = 1, nSVM primal vs. dual Primal    min w,b,ξ∈IRn 1 2 kwk 2 + C Xn i=1 ξi with yi(w⊤xi + b) ≥ 1 − ξi ξi ≥ 0 i = 1, n d + n + 1 unknown 2n constraints classical QP to be used when n is too large to build G Dual    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi ≤ C i = 1, n n unknown G Gram matrix (pairwise influence matrix) 2n box constraints easy to solve to be used when n is not too largeThe smallest C C small ⇒ all the points are in IC : αi = C −2 −1 0 1 2 3 4 −3 −2 −1 0 1 2 3 4 5 6 −1 ≤ fj = C Xn i=1 yi(x ⊤ i xj)+b ≤ 1 fM = max(f ) fm = min(f ) Cmax = 2 fM − fmRoad map 1 Linear SVM The non separable case The C (L1) SVM The L2 SVM and others “variations on a theme” The hinge loss 0 0 Slack jL2 SVM: optimality conditions (p = 2) L(w, b, α, β) = 1 2 kwk 2 + C 2 Xn i=1 ξ 2 i − Xn i=1 αi yi(w ⊤xi + b) − 1 + ξi  Computing the gradients:    ∇wL(w, b, α) = w − Xn i=1 αi yixi ∂L(w, b, α) ∂b = Xn i=1 αi yi ∇ξiL(w, b, α) = Cξi − αi no need of the positivity constraint on ξi no change for w and b Cξi − αi = 0 ⇒ C 2 Pn i=1 ξ 2 i − Pn i=1 αi ξi = − 1 2C Pn i=1 α 2 i The dual formulation:    min α∈IRn 1 2 α ⊤(G + 1 C I)α − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, nSVM primal vs. dual Primal    min w,b,ξ∈IRn 1 2 kwk 2 + C 2 Xn i=1 ξ 2 i with yi(w⊤xi + b) ≥ 1 − ξi d + n + 1 unknown n constraints classical QP to be used when n is too large to build G Dual    min α∈IRn 1 2 α ⊤(G + 1 C I)α − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n n unknown G Gram matrix is regularized n box constraints easy to solve to be used when n is not too largeOne more variant: the ν SVM    max v,a m with min i=1,n |v ⊤xi + a| ≥ m kvk 2 = k    min v,a 1 2 kvk 2 − ν m + Pn i=1 ξi with yi(v ⊤xi + a) ≥ m − ξi ξi ≥ 0, m ≥ 0 The dual formulation:    min α∈IRn 1 2 α ⊤Gα with y ⊤α = 0 and 0 ≤ αi ≤ 1/n i = 1, n m ≤ e ⊤αThe convex hull formulation Minimizing the distance between the convex hulls    min α ku − vk with u = X {i|yi =1} αixi , v = X {i|yi =−1} αixi and X {i|yi =1} αi = 1, X {i|yi =−1} αi = 1, 0 ≤ αi ≤ C i = 1, n w ⊤x = 2 ku − vk u ⊤x − v ⊤x  and b = kuk − kvk ku − vkSVM with non symetric costs Problem in the primal (p = 1)    min w,b,ξ∈IRn 1 2 kwk 2 + C + X {i|yi =1} ξi + C − X {i|yi =−1} ξi with yi w⊤xi + b  ≥ 1 − ξi , ξi ≥ 0, i = 1, n for p = 1 the dual formulation is the following: ( max α∈IRn − 1 2 α ⊤Gα + α ⊤e with α ⊤y = 0 and 0 ≤ αi ≤ C + or C − i = 1, n It generalizes to any cost (useful for unbalanced data)Road map 1 Linear SVM The non separable case The C (L1) SVM The L2 SVM and others “variations on a theme” The hinge loss 0 0 Slack jEliminating the slack but not the possible mistakes    min w,b,ξ∈IRn 1 2 kwk 2 + C Xn i=1 ξi with yi(w⊤xi + b) ≥ 1 − ξi ξi ≥ 0 i = 1, n Introducing the hinge loss ξi = max 1 − yi(w ⊤xi + b), 0  min w,b 1 2 kwk 2 + C Xn i=1 max 0, 1 − yi(w ⊤xi + b)  Back to d + 1 variables, but this is no longer an explicit QPOoops! the notion of sub differential Definition (Sub gradient) a subgradient of J : IRd 7−→ IR at f0 is any vector g ∈ IRd such that ∀f ∈ V(f0), J(f ) ≥ J(f0) + g ⊤(f − f0) Definition (Subdifferential) ∂J(f ), the subdifferential of J at f is the set of all subgradients of J at f . IRd = IR J3(x) = |x| ∂J3(0) = {g ∈ IR | − 1 < g < 1} IRd = IR J4(x) = max(0, 1 − x) ∂J4(1) = {g ∈ IR | − 1 < g < 0}Regularization path for SVM min w Xn i=1 max(1 − yiw ⊤xi , 0) + λo 2 kwk 2 Iα is the set of support vectors s.t. yiw⊤xi = 1; ∂wJ(w) = X i∈Iα αi yixi − X i∈I1 yixi + λo w with αi ∈ ∂H(1) =] − 1, 0[Regularization path for SVM min w Xn i=1 max(1 − yiw ⊤xi , 0) + λo 2 kwk 2 Iα is the set of support vectors s.t. yiw⊤xi = 1; ∂wJ(w) = X i∈Iα αi yixi − X i∈I1 yixi + λo w with αi ∈ ∂H(1) =] − 1, 0[ Let λn a value close enough to λo to keep the sets I0, Iα and IC unchanged In particular at point xj ∈ Iα (w ⊤ o xj = w ⊤ n xj = yj) : ∂wJ(w)(xj) = 0 P i∈Iα αioyix ⊤ i xj = P i∈I1 yix ⊤ i P xj − λo yj i∈Iα αinyix ⊤ i xj = P i∈I1 yix ⊤ i xj − λn yj G(αn − αo) = (λo − λn)y with Gij = yix ⊤ i xj αn = αo + (λo − λn)d d = (G) −1 ySolving SVM in the primal min w,b 1 2 kwk 2 + C Xn i=1 max 0, 1 − yi(w ⊤xi + b)  What for: Yahoo!, Twiter, Amazon, Google (Sibyl), Facebook. . . : Big data Data-intensive machine learning systems "on terascale datasets, with trillions of features,1 billions of training examples and millions of parameters in an hour using a cluster of 1000 machines" How: hybrid online+batch approach adaptive gradient updates (stochastic gradient descent) Code available: http://olivier.chapelle.cc/primal/Solving SVM in the primal J(w, b) = 1 2 kwk 2 2 + C 2 Xn i=1 max 1 − yi(w ⊤xi + b), 0 2 = 1 2 kwk 2 2 + C 2 ξ ⊤ξ with Xn ξi = max 1 − yi(w ⊤xi + b), 0  ∇wJ(w, b) = w − C Xn i=1 max 1 − yi(w ⊤xi + b), 0  yixi = w − C (diag(y)X) ⊤ξ HwJ(w, b) = Id + C Xn i∈/I0 xix ⊤ i Optimal step size ρ in the Newton direction: w new = w old − ρ H −1 w ∇wJ(w old , b old)The hinge and other loss Square hinge: (huber/hinge) and Lasso SVM min w,b k w k 1 + C Xni=1 max 1 − yi ( w ⊤ x i + b ) , 0  p Penalized Logistic regression (Maxent) min w,b k w k 22 − C Xni=1 log 1 + exp − 2 yi ( w ⊤ x i + b )  The exponential loss (commonly used in boosting) min w,b k w k 22 + C Xni=1 exp − yi ( w ⊤ x i + b ) The sigmoid loss min w,b k w k 22 − C Xni=1 tanh yi ( w ⊤ x i + b )  − 1 0 1 01 yf(x) classification loss 0/1 loss hinge hinge 2 logistic exponential sigmoidChoosing the data fitting term and the penalty For a given C: controling the tradeoff between loss and penalty min w,b pen(w) + C Xn i=1 Loss yi(w ⊤xi + b)  For a long list of possible penalties: A Antoniadis, I Gijbels, M Nikolova, Penalized likelihood regression for generalized linear models with non-quadratic penalties, 2011. A tentative of classification: convex/non convex differentiable/non differentiable What are we looking for consistency efficiency −→ sparcityConclusion: variables or data point? seeking for a universal learning algorithm ◮ no model for IP(x, y) the linear case: data is separable ◮ the non separable case double objective: minimizing the error together with the regularity of the solution ◮ multi objective optimisation dualiy : variable – example ◮ use the primal when d < n (in the liner case) or when matrix G is hard to compute ◮ otherwise use the dual universality = nonlinearity ◮ kernelsBibliography C. Cortes & V. Vapnik, Support-vector networks, Machine learning, 1995 J. Bi & V. Vapnik, Learning with rigorous SVM, COLT 2003 T. Hastie, S. Rosset, R. Tibshirani, J. Zhu, The entire regularization path for the support vector machine, JMLR, 2004 P. Bartlett, M. Jordan, J. McAuliffe, Convexity, classification, and risk bounds, JASA, 2006. A. Antoniadis, I. Gijbels, M. Nikolova, Penalized likelihood regression for generalized linear models with non-quadratic penalties, 2011. A Agarwal, O Chapelle, M Dudík, J Langford, A reliable effective terascale linear learning system, 2011. informatik.unibas.ch/fileadmin/Lectures/FS2013/CS331/Slides/my_SVM_without_b.pdf http://ttic.uchicago.edu/~gregory/courses/ml2010/lectures/lect12.pdf http://olivier.chapelle.cc/primal/ Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 29 / 29 Lecture 2: Linear SVM in the Dual Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 March 12, 2014Road map 1 Linear SVM Optimization in 10 slides Equality constraints Inequality constraints Dual formulation of the linear SVM Solving the dual Figure from L. Bottou & C.J. Lin, Support vector machine solvers, in Large scale kernel machines, 2007.Linear SVM: the problem Linear SVM are the solution of the following problem (called primal) Let {(xi , yi); i = 1 : n} be a set of labelled data with xi ∈ IRd , yi ∈ {1, −1}. A support vector machine (SVM) is a linear classifier associated with the following decision function: D(x) = sign w⊤x + b  where w ∈ IRd and b ∈ IR a given thought the solution of the following problem: ( min w,b 1 2 kwk 2 = 1 2w⊤w with yi(w⊤xi + b) ≥ 1 i = 1, n This is a quadratic program (QP): ( min z 1 2 z ⊤Az − d ⊤z with Bz ≤ e z = (w, b)⊤, d = (0, . . . , 0)⊤, A =  I 0 0 0  , B = −[diag(y)X, y] et e = −(1, . . . , 1)⊤Road map 1 Linear SVM Optimization in 10 slides Equality constraints Inequality constraints Dual formulation of the linear SVM Solving the dualA simple example (to begin with) ( min x1,x2 J(x) = (x1 − a) 2 + (x2 − b) 2 with x x ⋆ ∇xJ(x) iso cost lines: J(x) = kA simple example (to begin with) ( min x1,x2 J(x) = (x1 − a) 2 + (x2 − b) 2 with H(x) = α(x1 − c) 2 + β(x2 − d) 2 + γx1x2 − 1 Ω = {x|H(x) = 0} x x ⋆ ∇xJ(x) ∆x ∇xH(x) tangent hyperplane iso cost lines: J(x) = k ∇xH(x) = λ ∇xJ(x)The only one equality constraint case ( min x J(x) J(x + εd) ≈ J(x) + ε∇xJ(x) ⊤d with H(x) = 0 H(x + εd) ≈ H(x) + ε∇xH(x) ⊤d Loss J : d is a descent direction if it exists ε0 ∈ IR such that ∀ε ∈ IR, 0 < ε ≤ ε0 J(x + εd) < J(x) ⇒ ∇xJ(x) ⊤d < 0 constraint H : d is a feasible descent direction if it exists ε0 ∈ IR such that ∀ε ∈ IR, 0 < ε ≤ ε0 H(x + εd) = 0 ⇒ ∇xH(x) ⊤d = 0 If at x ⋆ , vectors ∇xJ(x ⋆ ) and ∇xH(x ⋆ ) are collinear there is no feasible descent direction d. Therefore, x ⋆ is a local solution of the problem.Lagrange multipliers Assume J and functions Hi are continuously differentials (and independent) P =    min x∈IRn J(x) avec H1(x) = 0 et H2(x) = 0 . . . Hp(x) = 0Lagrange multipliers Assume J and functions Hi are continuously differentials (and independent) P =    min x∈IRn J(x) avec H1(x) = 0 λ1 et H2(x) = 0 λ2 . . . Hp(x) = 0 λp each constraint is associated with λi : the Lagrange multiplier.Lagrange multipliers Assume J and functions Hi are continuously differentials (and independent) P =    min x∈IRn J(x) avec H1(x) = 0 λ1 et H2(x) = 0 λ2 . . . Hp(x) = 0 λp each constraint is associated with λi : the Lagrange multiplier. Theorem (First order optimality conditions) for x ⋆ being a local minima of P, it is necessary that: ∇x J(x ⋆ ) +X p i=1 λi∇xHi(x ⋆ ) = 0 and Hi(x ⋆ ) = 0, i = 1, pPlan 1 Linear SVM Optimization in 10 slides Equality constraints Inequality constraints Dual formulation of the linear SVM Solving the dual Stéphane Canu (INSA Rouen - LITIS) March 12, 2014 8 / 32The only one inequality constraint case ( min x J(x) J(x + εd) ≈ J(x) + ε∇xJ(x) ⊤d with G(x) ≤ 0 G(x + εd) ≈ G(x) + ε∇xG(x) ⊤d cost J : d is a descent direction if it exists ε0 ∈ IR such that ∀ε ∈ IR, 0 < ε ≤ ε0 J(x + εd) < J(x) ⇒ ∇xJ(x) ⊤d < 0 constraint G : d is a feasible descent direction if it exists ε0 ∈ IR such that ∀ε ∈ IR, 0 < ε ≤ ε0 G(x + εd) ≤ 0 ⇒ G(x) < 0 : no limit here on d G(x) = 0 : ∇xG(x) ⊤d ≤ 0 Two possibilities If x ⋆ lies at the limit of the feasible domain (G(x ⋆ ) = 0) and if vectors ∇xJ(x ⋆ ) and ∇xG(x ⋆ ) are collinear and in opposite directions, there is no feasible descent direction d at that point. Therefore, x ⋆ is a local solution of the problem... Or if ∇xJ(x ⋆ ) = 0Two possibilities for optimality ∇xJ(x ⋆ ) = −µ ∇xG(x ⋆ ) and µ > 0; G(x ⋆ ) = 0 or ∇xJ(x ⋆ ) = 0 and µ = 0; G(x ⋆ ) < 0 This alternative is summarized in the so called complementarity condition: µ G(x ⋆ ) = 0 µ = 0 G(x ⋆ ) < 0 G(x ⋆ ) = 0 µ > 0First order optimality condition (1) problem P =    min x∈IRn J(x) with hj(x) = 0 j = 1, . . . , p and gi(x) ≤ 0 i = 1, . . . , q Definition: Karush, Kuhn and Tucker (KKT) conditions stationarity ∇J(x ⋆ ) +X p j=1 λj∇hj(x ⋆ ) +X q i=1 µi∇gi(x ⋆ ) = 0 primal admissibility hj(x ⋆ ) = 0 j = 1, . . . , p gi(x ⋆ ) ≤ 0 i = 1, . . . , q dual admissibility µi ≥ 0 i = 1, . . . , q complementarity µigi(x ⋆ ) = 0 i = 1, . . . , q λj and µi are called the Lagrange multipliers of problem PFirst order optimality condition (2) Theorem (12.1 Nocedal & Wright pp 321) If a vector x ⋆ is a stationary point of problem P Then there existsa Lagrange multipliers such that x ⋆ , {λj}j=1:p, {µi}i=1:q  fulfill KKT conditions a under some conditions e.g. linear independence constraint qualification If the problem is convex, then a stationary point is the solution of the problem A quadratic program (QP) is convex when. . . (QP) ( min z 1 2 z ⊤Az − d ⊤z with Bz ≤ e . . . when matrix A is positive definiteKKT condition - Lagrangian (3) problem P =    min x∈IRn J(x) with hj(x) = 0 j = 1, . . . , p and gi(x) ≤ 0 i = 1, . . . , q Definition: Lagrangian The lagrangian of problem P is the following function: L(x, λ, µ) = J(x) +X p j=1 λjhj(x) +X q i=1 µigi(x) The importance of being a lagrangian the stationarity condition can be written: ∇L(x ⋆ , λ, µ) = 0 the lagrangian saddle point max λ,µ min x L(x, λ, µ) Primal variables: x and dual variables λ, µ (the Lagrange multipliers)Duality – definitions (1) Primal and (Lagrange) dual problems P =    min x∈IRn J(x) with hj(x) = 0 j = 1, p and gi(x) ≤ 0 i = 1, q D = ( max λ∈IRp,µ∈IRq Q(λ, µ) with µj ≥ 0 j = 1, q Dual objective function: Q(λ, µ) = inf x L(x, λ, µ) = inf x J(x) +X p j=1 λjhj(x) +X q i=1 µigi(x) Wolf dual problem W =    max x,λ∈IRp,µ∈IRq L(x, λ, µ) with µj ≥ 0 j = 1, q and ∇J(x ⋆ ) +X p j=1 λj∇hj(x ⋆ ) +X q i=1 µi∇gi(x ⋆ ) = 0Duality – theorems (2) Theorem (12.12, 12.13 and 12.14 Nocedal & Wright pp 346) If f , g and h are convex and continuously differentiablea , then the solution of the dual problem is the same as the solution of the primal a under some conditions e.g. linear independence constraint qualification (λ ⋆ , µ⋆ ) = solution of problem D x ⋆ = arg min x L(x, λ⋆ , µ⋆ ) Q(λ ⋆ , µ⋆ ) = arg min x L(x, λ⋆ , µ⋆ ) = L(x ⋆ , λ⋆ , µ⋆ ) = J(x ⋆ ) + λ ⋆H(x ⋆ ) + µ ⋆G(x ⋆ ) = J(x ⋆ ) and for any feasible point x Q(λ, µ) ≤ J(x) → 0 ≤ J(x) − Q(λ, µ) The duality gap is the difference between the primal and dual cost functionsRoad map 1 Linear SVM Optimization in 10 slides Equality constraints Inequality constraints Dual formulation of the linear SVM Solving the dual Figure from L. Bottou & C.J. Lin, Support vector machine solvers, in Large scale kernel machines, 2007.Linear SVM dual formulation - The lagrangian ( min w,b 1 2 kwk 2 with yi(w⊤xi + b) ≥ 1 i = 1, n Looking for the lagrangian saddle point max α min w,b L(w, b, α) with so called lagrange multipliers αi ≥ 0 L(w, b, α) = 1 2 kwk 2 − Xn i=1 αi yi(w ⊤xi + b) − 1  αi represents the influence of constraint thus the influence of the training example (xi , yi)Stationarity conditions L(w, b, α) = 1 2 kwk 2 − Xn i=1 αi yi(w ⊤xi + b) − 1  Computing the gradients:    ∇wL(w, b, α) = w − Xn i=1 αi yixi ∂L(w, b, α) ∂b = Pn i=1 αi yi we have the following optimality conditions    ∇wL(w, b, α) = 0 ⇒ w = Xn i=1 αi yixi ∂L(w, b, α) ∂b = 0 ⇒ Xn i=1 αi yi = 0KKT conditions for SVM stationarity w − Xn i=1 αi yixi = 0 and Xn i=1 αi yi = 0 primal admissibility yi(w⊤xi + b) ≥ 1 i = 1, . . . , n dual admissibility αi ≥ 0 i = 1, . . . , n complementarity αi  yi(w⊤xi + b) − 1  = 0 i = 1, . . . , n The complementary condition split the data into two sets A be the set of active constraints: usefull points A = {i ∈ [1, n] yi(w ∗⊤xi + b ∗ ) = 1} its complementary A¯ useless points if i ∈ A/ , αi = 0The KKT conditions for SVM The same KKT but using matrix notations and the active set A stationarity w − X ⊤Dyα = 0 α ⊤y = 0 primal admissibility Dy (Xw + b I1) ≥ I1 dual admissibility α ≥ 0 complementarity Dy (XAw + b I1A) = I1A αA¯ = 0 Knowing A, the solution verifies the following linear system:    w −X ⊤ A DyαA = 0 −DyXAw −byA = −eA −y ⊤ AαA = 0 with Dy = diag(yA), αA = α(A) , yA = y(A) et XA = X(XA; :).The KKT conditions as a linear system    w −X ⊤ A DyαA = 0 −DyXAw −byA = −eA −y ⊤ AαA = 0 with Dy = diag(yA), αA = α(A) , yA = y(A) et XA = X(XA; :). = I −X ⊤ A Dy 0 −DyXA 0 −yA 0 −y ⊤ A 0 w αA b 0 −eA 0 we can work on it to separate w from (αA, b)The SVM dual formulation The SVM Wolfe dual    max w,b,α 1 2 kwk 2 − Xn i=1 αi yi(w ⊤xi + b) − 1  with αi ≥ 0 i = 1, . . . , n and w − Xn i=1 αi yixi = 0 and Xn i=1 αi yi = 0 using the fact: w = Xn i=1 αi yixi The SVM Wolfe dual without w and b    max α − 1 2 Xn i=1 Xn j=1 αjαi yi yjx ⊤ j xi + Xn i=1 αi with αi ≥ 0 i = 1, . . . , n and Xn i=1 αi yi = 0Linear SVM dual formulation L(w, b, α) = 1 2 kwk 2 − Xn i=1 αi yi(w ⊤xi + b) − 1  Optimality: w = Xn i=1 αi yixi Xn i=1 αi yi = 0 L(α) = 1 2 Xn i=1 Xn j=1 αjαi yi yjx ⊤ j xi | {z } w⊤w − Pn i=1 αi yi Xn j=1 αjyjx ⊤ j | {z } w⊤ xi − b Xn i=1 αi yi | {z } =0 + Pn i=1 αi = − 1 2 Xn i=1 Xn j=1 αjαi yi yjx ⊤ j xi + Xn i=1 αi Dual linear SVM is also a quadratic program problem D    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n with G a symmetric matrix n × n such that Gij = yi yjx ⊤ j xiSVM primal vs. dual Primal    min w∈IRd ,b∈IR 1 2 kwk 2 with yi(w⊤xi + b) ≥ 1 i = 1, n d + 1 unknown n constraints classical QP perfect when d << n Dual    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n n unknown G Gram matrix (pairwise influence matrix) n box constraints easy to solve to be used when d > nSVM primal vs. dual Primal    min w∈IRd ,b∈IR 1 2 kwk 2 with yi(w⊤xi + b) ≥ 1 i = 1, n d + 1 unknown n constraints classical QP perfect when d << n Dual    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n n unknown G Gram matrix (pairwise influence matrix) n box constraints easy to solve to be used when d > n f (x) = X d j=1 wjxj + b = Xn i=1 αi yi(x ⊤xi) + bThe bi dual (the dual of the dual)    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n L(α, λ, µ) = 1 2 α ⊤Gα − e ⊤α + λ y ⊤α − µ ⊤α ∇αL(α, λ, µ) = Gα − e + λ y − µ The bidual    max α,λ,µ − 1 2 α ⊤Gα with Gα − e + λ y − µ = 0 and 0 ≤ µ since kwk 2 = 1 2 α ⊤Gα and DXw = Gα ( max w,λ − 1 2 kwk 2 with DXw + λ y ≥ e by identification (possibly up to a sign) b = λ is the Lagrange multiplier of the equality constraintCold case: the least square problem Linear model yi = X d j=1 wjxij + εi , i = 1, n n data and d variables; d < n min w = Xn i=1  Xd j=1 xijwj − yi   2 = kXw − yk 2 Solution: we = (X ⊤X) −1X ⊤y f (x) = x ⊤ (X ⊤X) −1X ⊤y | {z } we What is the influence of each data point (matrix X lines) ? Shawe-Taylor & Cristianini’s Book, 2004data point influence (contribution) for any new data point x f (x) = x ⊤ (X ⊤X)(X ⊤X) −1 (X ⊤X) −1X ⊤y | {z } we = x ⊤ X ⊤ X(X ⊤X) −1 (X ⊤X) −1X ⊤y | {z } αb x⊤ n examples d variables X ⊤ αb we f (x) = X d j=1 wejxjdata point influence (contribution) for any new data point x f (x) = x ⊤ (X ⊤X)(X ⊤X) −1 (X ⊤X) −1X ⊤y | {z } we = x ⊤ X ⊤ X(X ⊤X) −1 (X ⊤X) −1X ⊤y | {z } αb x⊤ n examples d variables X ⊤ αb we x⊤xi f (x) = X d j=1 wejxj = Xn i=1 αbi (x ⊤xi) from variables to examples αb = X(X ⊤X) −1we | {z } n examples et we = X ⊤αb | {z } d variables what if d ≥ n !SVM primal vs. dual Primal    min w∈IRd ,b∈IR 1 2 kwk 2 with yi(w⊤xi + b) ≥ 1 i = 1, n d + 1 unknown n constraints classical QP perfect when d << n Dual    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n n unknown G Gram matrix (pairwise influence matrix) n box constraints easy to solve to be used when d > n f (x) = X d j=1 wjxj + b = Xn i=1 αi yi(x ⊤xi) + bRoad map 1 Linear SVM Optimization in 10 slides Equality constraints Inequality constraints Dual formulation of the linear SVM Solving the dual Figure from L. Bottou & C.J. Lin, Support vector machine solvers, in Large scale kernel machines, 2007.Solving the dual (1) Data point influence αi = 0 this point is useless αi 6= 0 this point is said to be support f (x) = X d j=1 wjxj + b = Xn i=1 αi yi(x ⊤xi) + bSolving the dual (1) Data point influence αi = 0 this point is useless αi 6= 0 this point is said to be support f (x) = X d j=1 wjxj + b = X 3 i=1 αi yi(x ⊤xi) + b Decison border only depends on 3 points (d + 1)Solving the dual (2) Assume we know these 3 data points    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n =⇒ ( min α∈IR3 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 L(α, b) = 1 2 α ⊤Gα − e ⊤α + b y ⊤α solve the following linear system  Gα + b y = e y ⊤α = 0 U = chol(G); % upper a = U\ (U’\e); c = U\ (U’\y); b = (y’*a)\(y’*c) alpha = U\ (U’\(e - b*y));Conclusion: variables or data point? seeking for a universal learning algorithm ◮ no model for IP(x, y) the linear case: data is separable ◮ the non separable case double objective: minimizing the error together with the regularity of the solution ◮ multi objective optimisation dualiy : variable – example ◮ use the primal when d < n (in the liner case) or when matrix G is hard to compute ◮ otherwise use the dual universality = nonlinearity ◮ kernels SVM and Kernel machine Lecture 1: Linear SVM Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 March 12, 2014Road map 1 Linear SVM Separating hyperplanes The margin Linear SVM: the problem Linear programming SVM 0 0 0 margin "The algorithms for constructing the separating hyperplane considered above will be utilized for developing a battery of programs for pattern recognition." in Learning with kernels, 2002 - from V .Vapnik, 1982Hyperplanes in 2d: intuition It’s a line!Hyperplanes: formal definition Given vector v ∈ IRd and bias a ∈ IR Hyperplane as a function h, h : IRd −→ IR x 7−→ h(x) = v ⊤x + a Hyperplane as a border in IRd (and an implicit function) ∆(v, a) = {x ∈ IRd v ⊤x + a = 0} The border invariance property ∀k ∈ IR, ∆(kv, ka) = ∆(v, a) ∆ = {x ∈ IR2 | v ⊤x + a = 0} the decision border ∆ (x, h(x)) = v ⊤x + a) (x, 0) h(x) d(x, ∆)Separating hyperplanes Find a line to separate (classify) blue from red D(x) = sign v ⊤x + a Separating hyperplanes Find a line to separate (classify) blue from red D(x) = sign v ⊤x + a  the decision border: v ⊤x + a = 0Separating hyperplanes Find a line to separate (classify) blue from red D(x) = sign v ⊤x + a  the decision border: v ⊤x + a = 0 there are many solutions... The problem is ill posed How to choose a solution?This is not the problem we want to solve {(xi , yi); i = 1 : n} a training sample, i.i.d. drawn according to IP(x, y) unknown we want to be able to classify new observations: minimize IP(error)This is not the problem we want to solve {(xi , yi); i = 1 : n} a training sample, i.i.d. drawn according to IP(x, y) unknown we want to be able to classify new observations: minimize IP(error) Looking for a universal approach use training data: (a few errors) prove IP(error) remains small scalable - algorithmic complexityThis is not the problem we want to solve {(xi , yi); i = 1 : n} a training sample, i.i.d. drawn according to IP(x, y) unknown we want to be able to classify new observations: minimize IP(error) Looking for a universal approach use training data: (a few errors) prove IP(error) remains small scalable - algorithmic complexity with high probability (for the canonical hyperplane): IP(error) < IPb (error) | {z } =0 here + ϕ( 1 margin | {z } =kvk ) Vapnik’s Book, 1982Margin guarantees min i∈[1,n] dist(xi , ∆(v, a)) | {z } margin: m Theorem (Margin Error Bound) Let R be the radius of the smallest ball BR(a) =  x ∈ IRd | kx − ck < R , containing the points (x1, . . . , xn) i.i.d from some unknown distribution IP. Consider a decision function D(x) = sign(v ⊤x) associated with a separating hyperplane v of margin m (no training error). Then, with probability at least 1 − δ for any δ > 0, the generalization error of this hyperplane is bounded by IP(error) ≤ 2 r R2 n m2 + 3 r ln(2/δ) 2n R v’x = 0 m theorem 4.17 p 102 in J Shawe-Taylor, N Cristianini Kernel methods for pattern analysis, Cambridge 2004Statistical machine learning – Computation learning theory (COLT) {xi , yi} {xi , yi} i = 1, n A f = v ⊤x + a x yp = f (x) IPb (error) = 1 n L(f (xi), yi) Loss L Vapnik’s Book, 1982Statistical machine learning – Computation learning theory (COLT) {xi , yi} {xi , yi} i = 1, n A f = v ⊤x + a x yp = f (x) IPb (error) = 1 n L(f (xi), yi) y Loss L IP(error) = IE(L) ∀IP ∈ P P IP Prob  ≤ + ϕ(kvk) ≥ δ Vapnik’s Book, 1982linear discrimination Find a line to classify blue and red D(x) = sign v ⊤x + a  the decision border: v ⊤x + a = 0 there are many solutions... The problem is ill posed How to choose a solution ? ⇒ choose the one with larger marginRoad map 1 Linear SVM Separating hyperplanes The margin Linear SVM: the problem Linear programming SVM 0 0 0 marginMaximize our confidence = maximize the margin the decision border: ∆(v, a) = {x ∈ IRd v ⊤x + a = 0} 0 0 0 margin maximize the margin max v,a min i∈[1,n] dist(xi , ∆(v, a)) | {z } margin: m Maximize the confidence    max v,a m with min i=1,n |v ⊤xi + a| kvk ≥ m the problem is still ill posed if (v, a) is a solution, ∀ 0 < k (kv, ka) is also a solution. . .Margin and distance: details Theorem (The geometrical margin) Let x be a vector in IRd and ∆(v, a) = {s ∈ IRd v ⊤s + a = 0} an hyperplane. The distance between vector x and the hyperplane ∆(v, a)) is dist(xi , ∆(v, a)) = |v⊤x+a| kvk Let sx be the closest point to x in ∆ , sx = arg min s∈∆ kx − sk. Then x = sx + r v kvk ⇔ r v kvk = x − sx So that, taking the scalar product with vector v we have: v ⊤r v kvk = v ⊤(x − sx ) = v ⊤x − v ⊤sx = v ⊤x + a − (v ⊤sx + a) | {z } =0 = v ⊤x + a and therefore r = v⊤x + a kvk leading to: dist(xi , ∆(v, a)) = min s∈∆ kx − sk = r = |v⊤x + a| kvkGeometrical and numerical margin ∆ = {x ∈ IR2 | v ⊤x + a = 0} the decision border ∆ d(x, ∆) = |v ⊤x + a| kvk the geometrical margin d(xb, ∆) (xr, v ⊤xr + a) (xr, 0) mr d(xr, ∆) (xb, v ⊤xb + a) mb (xb, 0) m = |v ⊤x + a| the numerical marginFrom the geometrical to the numerical margin +1 ï1 ï1/|w| 1/|w| {x | wT x = 0} <ï ï marge > x w T x Valeur de la marge dans le cas monodimensionnel Maximize the (geometrical) margin    max v,a m with min i=1,n |v ⊤xi + a| kvk ≥ m if the min is greater, everybody is greater (yi ∈ {−1, 1})    max v,a m with yi(v ⊤xi + a) kvk ≥ m, i = 1, n change variable: w = v mkvk and b = a mkvk =⇒ kwk = 1 m    max w,b m with yi(w⊤xi + b) ≥ 1 ; i = 1, n and m = 1 kwk    min w,b kwk 2 with yi(w⊤xi + b) ≥ 1 i = 1, nThe canonical hyperplane ( min w,b kwk 2 with yi(w⊤xi + b) ≥ 1 i = 1, n Definition (The canonical hyperplane) An hyperplane (w, b) in IRd is said to be canonical with respect the set of vectors {xi ∈ IRd , i = 1, n} if min i=1,n |w ⊤xi + b| = 1 so that the distance min i=1,n dist(xi , ∆(w, b)) = |w⊤x + b| kwk = 1 kwk The maximal margin (=minimal norm) canonical hyperplaneRoad map 1 Linear SVM Separating hyperplanes The margin Linear SVM: the problem Linear programming SVM 0 0 0 marginLinear SVM: the problem The maximal margin (=minimal norm) canonical hyperplane 0 0 0 margin Linear SVMs are the solution of the following problem (called primal) Let {(xi , yi); i = 1 : n} be a set of labelled data with x ∈ IRd , yi ∈ {1, −1} A support vector machine (SVM) is a linear classifier associated with the following decision function: D(x) = sign w⊤x + b  where w ∈ IRd and b ∈ IR a given thought the solution of the following problem: ( min w∈IRd , b∈IR 1 2 kwk 2 with yi(w⊤xi + b) ≥ 1 , i = 1, n This is a quadratic program (QP): ( min z 1 2 z ⊤Az − d ⊤z with Bz ≤ eSupport vector machines as a QP The Standart QP formulation ( min w,b 1 2 kwk 2 with yi(w⊤xi + b) ≥ 1, i = 1, n ⇔ ( min z∈IRd+1 1 2 z ⊤Az − d ⊤z with Bz ≤ e z = (w, b) ⊤, d = (0, . . . , 0) ⊤, A =  I 0 0 0  , B = −[diag(y)X, y] and e = −(1, . . . , 1) ⊤ Solve it using a standard QP solver such as (for instance) % QUADPROG Quadratic programming . % X = QUADPROG (H ,f ,A ,b ) attempts to solve the quadratic programming problem : % % min 0.5* x ’* H*x + f ’* x subject to : A*x <= b % x % so that the solution is in the range LB <= X <= UB For more solvers (just to name a few) have a look at: plato.asu.edu/sub/nlores.html#QP-problem www.numerical.rl.ac.uk/people/nimg/qp/qp.htmlRoad map 1 Linear SVM Separating hyperplanes The margin Linear SVM: the problem Linear programming SVM 0 0 0 marginOther SVMs: Equivalence between norms L1 norm variable selection (especially with redundant noisy features) Mangassarian, 1965    max m,v,a m with yi(v ⊤xi + a) ≥ m kvk2 ≥ m 1 √ d kvk1 i = 1, n 1-norm or Linear Programming-SVM (LP SVM) ( min w,b kwk1 = Pp j=1 |wj | with yi(w ⊤xi + b) ≥ 1 ; i = 1, n Generalized SVM (Bradley and Mangasarian, 1998) ( min w,b kwk p p with yi(w ⊤xi + b) ≥ 1 ; i = 1, n p = 2: SVM, p = 1: LPSVM (also with p = ∞), p = 0: L0 SVM, p= 1 and 2: doubly regularized SVM (DrSVM)Linear support vector support (LP SVM) ( min w,b kwk1 = Pp j=1 w + j + w − j with yi(w ⊤xi + b) ≥ 1 ; i = 1, n w = w + − w − with w + ≥ 0 and w − ≥ 0 The Standart LP formulation    min x f ⊤x with Ax ≤ d and 0 ≤ x x = [w +; w −; b] f = [1 . . . 1; 0] d = −[1 . . . 1] ⊤ A = [−yiXi yiXi − yi] % linprog (f ,A ,b , Aeq , beq ,LB , UB ) % attempts to solve the linear programming problem : % min f ’* x subject to : A* x <= b % x % so that the solution is in the range LB <= X <= UBAn example of linear discrimination: SVM and LPSVM true line QP SVM LPSVM Figure: SVM and LP SVMThe linear discrimination problem from Learning with Kernels, B. Schölkopf and A. Smolla, MIT Press, 2002.Conclusion SVM = Separating hyperplane (to begin with the simpler) + Margin, Norm and statistical learning + Quadratic and Linear programming (and associated rewriting issues) + Support vectors (sparsity) SVM preforms the selection of the most relevant data pointsBibliography V. Vapnik, the generalized portrait method p 355 in Estimation of dependences based on empirical data, Springer, 1982 B. Boser, I. Guyon & V. Vapnik, A training algorithm for optimal margin classifiers. COLT, 1992 P. S. Bradley & O. L. Mangasarian. Feature selection via concave minimization and support vector machines. ICML 1998 B. Schölkopf & A. Smolla, Learning with Kernels, MIT Press, 2002 M. Mohri, A. Rostamizadeh & A. Talwalkar, Foundations of Machine Learning, MIT press 2012 http://agbs.kyb.tuebingen.mpg.de/lwk/sections/section72.pdf http://www.cs.nyu.edu/~mohri/mls/lecture_4.pdf http://en.wikipedia.org/wiki/Quadratic_programming Stéphane Canu (INSA Rouen - LITIS) March 12, 2014 25 / 25 Understanding SVM (and associated kernel machines) through the development of a Matlab toolbox Stephane Canu To cite this version: Stephane Canu. Understanding SVM (and associated kernel machines) through the development of a Matlab toolbox. Ecole d’ing´enieur. Introduction to Support Vector Machines (SVM), ´ Sao Paulo, 2014, pp.33. HAL Id: cel-01003007 https://cel.archives-ouvertes.fr/cel-01003007 Submitted on 8 Jun 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Lecture 8: Multi Class SVM Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 April 10, 2014Roadmap 1 Multi Class SVM 3 different strategies for multi class SVM Multi Class SVM by decomposition Multi class SVM Coupling convex hulls 1.5 1.5 1.5 1.5 1.5 1.5 2.5 2.5 2.5 −0.5 0 0.5 1 1.5 0 0.5 1 1.5 23 different strategies for multi class SVM 1 Decomposition approaches ◮ one vs all: winner takes all ◮ one vs one: ⋆ max-wins voting ⋆ pairwise coupling: use probability ◮ c SVDD 2 global approach (size c × n), ◮ formal (different variations)    min f ∈H,α0,ξ∈IRn 1 2 Xc ℓ=1 kfℓk 2 H + C p Xn i=1 Xc ℓ=1,ℓ6=yi ξ p iℓ with fyi (xi) + byi ≥ fℓ(xi) + bℓ + 2 − ξiℓ and ξiℓ ≥ 0 for i = 1, ..., n; ℓ = 1, ..., c; ℓ 6= yi non consistent estimator but practically useful ◮ structured outputs 3 A coupling formulation using the convex hulls3 different strategies for multi class SVM 1 Decomposition approaches ◮ one vs all: winner takes all ◮ one vs one: ⋆ max-wins voting ⋆ pairwise coupling: use probability – best results ◮ c SVDD 2 global approach (size c × n), ◮ formal (different variations)    min f ∈H,α0,ξ∈IRn 1 2 Xc ℓ=1 kfℓk 2 H + C p Xn i=1 Xc ℓ=1,ℓ6=yi ξ p iℓ with fyi (xi) + byi ≥ fℓ(xi) + bℓ + 2 − ξiℓ and ξiℓ ≥ 0 for i = 1, ..., n; ℓ = 1, ..., c; ℓ 6= yi non consistent estimator but practically useful ◮ structured outputs 3 A coupling formulation using the convex hullsMulticlass SVM: complexity issues n training data n = 60, 000 for MNIST c class c = 10 for MNIST approach problem size number of sub problems discrimination rejection 1 vs. all n c ++ - 1 vs. 1 2n c c(c−1) 2 ++ - c SVDD n c c - ++ all together n × c 1 ++ - coupling CH n 1 + +Roadmap 1 Multi Class SVM 3 different strategies for multi class SVM Multi Class SVM by decomposition Multi class SVM Coupling convex hulls 1.5 1.5 1.5 1.5 1.5 1.5 2.5 2.5 2.5 −0.5 0 0.5 1 1.5 0 0.5 1 1.5 2Multi Class SVM by decomposition One-Against-All Methods → winner-takes-all strategy One-vs-One: pairwise methods → max-wins voting → directed acyclic graph (DAG) → error-correcting codes → post process probabilities Hierarchical binary tree for multi-class SVM http://courses.media.mit.edu/2006fall/ mas622j/Projects/aisen-project/SVM and probabilities (Platt, 1999) The decision function of the SVM is: sign f (x) + b  log IP(Y = 1|x) IP(Y = −1|x) should have (almost) the same sign as f (x) + b log IP(Y = 1|x) IP(Y = −1|x) = a1(f (x) + b) + a2 IP(Y = 1|x) = 1 − 1 1 + expa1(f (x)+b)+a2 a1 et a2 estimated using maximum likelihood on new data max a1,a2 L with L = Yn i=1 IP(Y = 1|xi) yi + (1 − IP(Y = 1|xi))(1−yi ) and log L = Pn i=1 yi log(IP(Y = 1|xi)) + (1 − yi)log(1 − IP(Y = 1|xi)) = Pn i=1 yi log IP(Y =1|xi ) 1−IP(Y =1|xi )  + log(1 − IP(Y = 1|xi)) = Pn i=1 yi a1(f (xi) + b) + a2  − log(1 + expa1(f (xi )+b)+a2 ) = Pn i=1 yi a ⊤zi  − log(1 + expa ⊤zi) Newton iterations: a new ← a old − H −1∇logLSVM and probabilities (Platt, 1999) max a∈IR2 log L = Xn i=1 yi a ⊤zi  − log(1 + expa ⊤zi) Newton iterations a new ← a old − H −1∇logL ∇logL = Xn i=1 yi zi − expa ⊤z 1 + expa⊤z zi = Xn i=1 yi − IP(Y = 1|xi)  zi = Z ⊤(y − p) H = − Xn i=1 zi z ⊤ i IP(Y = 1|xi) 1 − IP(Y = 1|xi)  = −Z ⊤WZ Newton iterations a new ← a old + (Z ⊤WZ) −1Z ⊤(y − p)SVM and probabilities: practical issues y −→ t =    1 − ε+ = n+ + 1 n+ + 2 if yi = 1 ε− = 1 n− + 2 if yi = −1 1 in: X, y, f /out: p 2 t ← 3 Z ← 4 loop until convergence 1 p ← 1 − 1 1+expa⊤z 2 W ← diag p(1 − p)  3 a new ← a old + (Z ⊤WZ) −1Z ⊤(t − p)SVM and probabilities: pairwise coupling From pairwise probabilities IP(cℓ , cj) to class probabilities pℓ = IP(cℓ |x) min p Xc ℓ=1 X ℓ−1 j=1 IP(cℓ , cj) 2 (pℓ − pj) 2  Q e e ⊤ 0  p µ  =  0 1  with Qℓj =  IP(cℓ , cj) 2 P ℓ 6= j i IP(cℓ , ci) 2 ℓ = j The global procedure : 1 (Xa, ya, Xt, yt) ← split(X, y) 2 (Xℓ, yℓ, Xp, yp) ← split(Xa, ya) 3 loop for all pairs (ci , cj) of classes 1 modeli,j ← train_SVM(Xℓ, yℓ,(ci , cj)) 2 IP(ci , cj) ← estimate_proba(Xp, yp, model) % Platt estimate 4 p ← post_process(Xt, yt,IP) % Pairwise Coupling Wu, Lin & Weng, 2004, Duan & Keerti, 05SVM and probabilities Some facts SVM is universally consistent (converges towards the Bayes risk) SVM asymptotically implements the bayes rule but theoretically: no consistency towards conditional probabilities (due to the nature of sparsity) to estimate conditional probabilities on an interval (typically[ 1 2 − η, 1 2 + η]) to sparseness in this interval (all data points have to be support vectors) Bartlett & Tewari, JMLR, 07SVM and probabilities (2/2) An alternative approach g(x) − ε −(x) ≤ IP(Y = 1|x) ≤ g(x) + ε +(x) with g(x) = 1 1+4−f (x)−α0 non parametric functions ε − and ε + have to verify: g(x) + ε +(x) = exp−a1(1−f (x)−α0)++a2 1 − g(x) − ε −(x) = exp−a1(1+f (x)+α0)++a2 with a1 = log 2 and a2 = 0 Grandvalet et al., 07Roadmap 1 Multi Class SVM 3 different strategies for multi class SVM Multi Class SVM by decomposition Multi class SVM Coupling convex hulls 1.5 1.5 1.5 1.5 1.5 1.5 2.5 2.5 2.5 −0.5 0 0.5 1 1.5 0 0.5 1 1.5 2Multi class SVM: the decision function One hyperplane by class fℓ(x) = w ⊤ ℓ x + bℓ ℓ = 1, c Winner takes all decision function D(x) = Argmax ℓ=1,c w ⊤ 1 x + b1, w ⊤ 2 x + b2, . . . , w ⊤ ℓ x + bℓ , . . . , w ⊤ c x + bc  We can revisit the 2 classes case in this setting c × (d + 1) unknown variables (wℓ, bℓ); ℓ = 1, cMulti class SVM: the optimization problem The margin in the multidimensional case m = min ℓ6=yi v ⊤ yi xi − ayi − v ⊤ ℓ xi + aℓ  = v ⊤ yi xi + ayi − max ℓ6=yi v ⊤ ℓ xi + aℓ  The maximal margin multiclass SVM    max vℓ,aℓ m with v ⊤ yi xi + ayi − v ⊤ ℓ xi − aℓ ≥ m for i = 1, n; ℓ = 1, c; ℓ 6= yi and 1 2 Xc ℓ=1 kvℓk 2 = 1 The multiclass SVM    min wℓ,bℓ 1 2 Xc ℓ=1 kwℓk 2 with x ⊤ i (wyi − wℓ) + byi − bℓ ≥ 1 for i = 1, n; ℓ = 1, c; ℓ 6= yiMulti class SVM: KKT and dual form: The 3 classes case    min wℓ,bℓ 1 2 X 3 ℓ=1 kwℓk 2 with w⊤ yi xi + byi ≥ w⊤ ℓ xi + bℓ + 1 for i = 1, n; ℓ = 1, 3; ℓ 6= yi    min wℓ,bℓ 1 2 kw1k 2 + 1 2 kw2k 2 + 1 2 kw3k 2 with w⊤ 1 xi + b1 ≥ w⊤ 2 xi + b2 + 1 for i such that yi = 1 w⊤ 1 xi + b1 ≥ w⊤ 3 xi + b3 + 1 for i such that yi = 1 w⊤ 2 xi + b2 ≥ w⊤ 1 xi + b1 + 1 for i such that yi = 2 w⊤ 2 xi + b2 ≥ w⊤ 3 xi + b3 + 1 for i such that yi = 2 w⊤ 3 xi + b3 ≥ w⊤ 1 xi + b1 + 1 for i such that yi = 3 w⊤ 3 xi + b3 ≥ w⊤ 2 xi + b2 + 1 for i such that yi = 3 L = 1 2 (kw1k 2 + kw2k 2 + kw3k 2 ) −α ⊤ 12(X1(w1 − w2) + b1 − b2 − 1) −α ⊤ 13(X1(w1 − w3) + b1 − b3 − 1) −α ⊤ 21(X2(w2 − w1) + b2 − b1 − 1) −α ⊤ 23(X2(w2 − w3) + b2 − b3 − 1) −α ⊤ 31(X3(w3 − w1) + b3 − b1 − 1) −α ⊤ 32(X3(w3 − w2) + b3 − b2 − 1)Multi class SVM: KKT and dual form: The 3 classes case L = 1 2 kwk 2 − α ⊤(XMw + Ab − 1) with w =   w1 w2 w3   ∈ IR3d M = M ⊗ I =   I −I 0 I 0 −I −I I 0 0 I −I −I 0 I 0 −I I   a 6d × 3d matrix where I the identity matrix and X =   X1 0 0 0 0 0 0 X1 0 0 0 0 0 0 X2 0 0 0 0 0 0 X2 0 0 0 0 0 0 X3 0 0 0 0 0 0 X3   a 2n × 6d matrix with input data X =   X1 X2 X3   n × dMulti class SVM: KKT and dual form: The 3 classes case KKT Stationality conditions = ∇wL = w − M⊤X ⊤α ∇bL = A ⊤α The dual min α∈IR2n 1 2 α ⊤Gα − e ⊤α with Ab = 0 and 0 ≤ α With G = XMM⊤X ⊤ = X (M ⊗ I)(M ⊗ I) ⊤X ⊤ = X (MM⊤ ⊗ I)X ⊤ = (MM⊤ ⊗ I). × XX ⊤ = (MM⊤ ⊗ I). × 1I K 1I⊤ and M =   1 −1 0 1 0 −1 −1 1 0 0 1 −1 −1 0 1 0 −1 1  Multi class SVM and slack variables (2 variants) A slack for all (Vapnik & Blanz, Weston & Watkins 1998)    min wℓ,bℓ,ξ∈IRcn 1 2 Xc ℓ=1 kwℓk 2 + C Xn i=1 Xc ℓ=1,ℓ6=yi ξiℓ with w⊤ yi xi + byi − w⊤ ℓ xi − bℓ ≥ 1 − ξiℓ and ξiℓ ≥ 0 for i = 1, n; ℓ = 1, c; ℓ 6= yi The dual min α∈IR2n 1 2 α ⊤Gα − e ⊤α with Ab = 0 and 0 ≤ α ≤ C Max error, a slack per training data (Cramer and Singer, 2001)    min wℓ,bℓ,ξ∈IRn 1 2 Xc ℓ=1 kwℓk 2 + C Xn i=1 ξi with (wyi − wℓ) ⊤xi ≥ 1 − ξi for i = 1, n; ℓ = 1, c; ℓ 6= yi X i=1 and ξi ≥ 0 for i = 1, nMulti class SVM and Kernels    min f ∈H,α0,ξ∈IRcn 1 2 Xc ℓ=1 kfℓk 2 H + C Xn i=1 Xc ℓ=1,ℓ6=yi ξiℓ with fyi (xi) + byi − fℓ(xi) − bℓ ≥ 1 − ξiℓ Xn i=1 and ξiℓ ≥ 0 for i = 1, n; ℓ = 1, c; ℓ 6= yi The dual min α∈IR2n 1 2 α ⊤Gα − e ⊤α with Ab = 0 and 0 ≤ α≤ C where G is the multi class kernel matrixOther Multi class SVM Lee, Lin & Wahba, 2004    min f ∈H λ 2 Xc ℓ=1 kfℓk 2 H + 1 n Xn i=1 Xc ℓ=1,ℓ6=yi (fℓ(xi) + 1 c − 1 )+ with Xc ℓ=1 fℓ(x) = 0 ∀x Structured outputs = Cramer and Singer, 2001 MSVMpack : A Multi-Class Support Vector Machine Package Fabien Lauer & Yann GuermeurRoadmap 1 Multi Class SVM 3 different strategies for multi class SVM Multi Class SVM by decomposition Multi class SVM Coupling convex hulls 1.5 1.5 1.5 1.5 1.5 1.5 2.5 2.5 2.5 −0.5 0 0.5 1 1.5 0 0.5 1 1.5 2One more way to derivate SVM Minimizing the distance between the convex hulls    min α ku − vk 2 with u(x) = X {i|yi =1} αi(x ⊤ i x), v(x) = X {i|yi =−1} αi(x ⊤ i x) and X {i|yi =1} αi = 1, X {i|yi =−1} αi = 1, 0 ≤ αi i = 1, nThe multi class case    min α Xc ℓ=1 Xc ℓ ′=1 kuℓ − uℓ ′k 2 with uℓ(x) = X {i|yi =ℓ} αi,ℓ(x ⊤ i x), ℓ = 1, c and X {i|yi =ℓ} αi,ℓ = 1, 0 ≤ αi,ℓ i = 1, n; ℓ = 1, cBibliography Estimating probabilities ◮ Platt, J. (2000). Probabilistic outputs for support vector machines and comparison to regularized likelihood methods. In Advances in large margin classifiers. MIT Press. ◮ T. Lin, C.-J. Lin, R.C. Weng, A note on Platt’s probabilistic outputs for support vector machines, Mach. Learn. 68 (2007) 267–276 ◮ http://www.cs.cornell.edu/courses/cs678/2007sp/platt.pdf Multiclass SVM ◮ K.-B. Duan & S. Keerthi (2005). "Which Is the Best Multiclass SVM Method? An Empirical Study". ◮ T.-F. Wu, C.-J. Lin, R.C. Weng, Probability estimates for multi-class classification by pairwise coupling, JMLR. 5 (2004) 975–1005. ◮ K. Crammer & Y. Singer (2001). "On the Algorithmic Implementation of Multiclass Kernel-based Vector Machines". JMLR 2: 265–292. ◮ Lee, Y.; Lin, Y.; and Wahba, G. (2001). "Multicategory Support Vector Machines". Computing Science and Statistics 33. ◮ http://www.loria.fr/~guermeur/NN2008_M_SVM_YG.pdf ◮ http://jmlr.org/papers/volume12/lauer11a/lauer11a.pdf Stéphane Canu (INSA Rouen - LITIS) April 10, 2014 25 / 25 https://hal.inria.fr/cel-01082588v2/document Tutoriel Android - TP de prise en main Dima Rodriguez To cite this version: Dima Rodriguez. Tutoriel Android - TP de prise en main. Ecole d’ing´enieur. France. 2014, ´ pp.51. HAL Id: cel-01082588 https://hal.archives-ouvertes.fr/cel-01082588v2 Submitted on 26 Nov 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Tutoriel Android TM TP de prise en main Dima RodriguezPolytech’ Paris Sud Tutoriel AndroidTM Dima Rodriguez Novembre 2014 TP de prise en mainTable des matières Préambule 4 1 Installation de l’IDE 5 2 Configuration de l’IDE 6 Installation des paquets supplémentaires et des mises à jours . . . . . . 6 Configuration d’un émulateur . . . . . . . . . . . . . . . . . . . . . . . 6 3 Notre première application Android 10 Création d’un projet et d’une application “Hello World” . . . . . . . . . 10 Exécution de l’application . . . . . . . . . . . . . . . . . . . . . . . . . 11 Se repérer dans le projet . . . . . . . . . . . . . . . . . . . . . . . . . 14 Modification de l’interface utilisateur . . . . . . . . . . . . . . . . . . . 16 Répondre aux évènements . . . . . . . . . . . . . . . . . . . . . . . . . 21 Créer et lancer une autre activité . . . . . . . . . . . . . . . . . . . . . 22 Créer des animations . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Créer un View personnalisé pour gérer un jeu . . . . . . . . . . . . . . 32 Temporisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Rajouter un bouton sur la barre d’action . . . . . . . . . . . . . . . . . 40 Lancement d’une autre application . . . . . . . . . . . . . . . . . . . . 41 Changement de langue . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Annexes 46 Explication du code généré par défaut pour la classe Principale . . . . . 46 Cycle de vie d’une activité . . . . . . . . . . . . . . . . . . . . . . . . 49 2Table des figures 2.1 SDK Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Android Virtual Device Manager . . . . . . . . . . . . . . . . . . 8 2.3 Création d’un appareil virtuel . . . . . . . . . . . . . . . . . . . . 9 3.1 Création d’un projet . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 Créer une activité . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3 Nouvelle activité . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.4 Exécution de l’application . . . . . . . . . . . . . . . . . . . . . . 13 3.5 Aperçu de l’interface Eclipse . . . . . . . . . . . . . . . . . . . 14 3.6 Hiérarchie de LinearLayout . . . . . . . . . . . . . . . . . . . . . 17 3.7 Premier test de l’application modifiée . . . . . . . . . . . . . . . . 20 3.8 Champ de saisie et bouton . . . . . . . . . . . . . . . . . . . . . 21 3.9 Création d’une nouvelle activité . . . . . . . . . . . . . . . . . . . 23 3.10 Nouveau xml pour définir une animation . . . . . . . . . . . . . . 28 3.11 Animation en LinearLayout . . . . . . . . . . . . . . . . . . . . . 30 3.12 Animation en RelativeLayout . . . . . . . . . . . . . . . . . . . . 31 3.13 Création de la classe MonViewPerso . . . . . . . . . . . . . . . . 33 3.14 Ajout d’un bouton pour lancer le jeu . . . . . . . . . . . . . . . . 36 3.15 Activité avec vue personnalisée . . . . . . . . . . . . . . . . . . . 39 3.16 Barre d’action . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.17 Cycle de vie d’une activité . . . . . . . . . . . . . . . . . . . . . 50 3Préambule Le système d’exploitation Android est actuellement l’OS le plus utilisé dans le monde faisant tourner des smartphones, tablettes, montres connectées, liseuses électroniques, télévisions interactives, et bien d’autres. C’est un système, open source qui utilise le noyau Linux. Il a été créée par Android, Inc. qui fut rachetée par Google en 2005. Le développement d’applications pour Android s’effectue en Java en utilisant des bibliothèques spécifiques. Le but de ce tutoriel est de vous familiariser avec l’esprit de développement Android et ses bibliothèques. Nous introduirons les concepts de bases de création d’application en mettant en œuvre quelques fonctionnalités simples. Ce tutoriel n’est en aucun cas exhaustive, le potentiel des applications Android est beaucoup plus ample, les exemples cités dans ce document ne devront pas brider votre imagination ni votre curiosité. Sur le site officiel pour les développeurs Android vous trouverez la documentation des classes, des tutoriels ainsi que les lignes directrices pour préparer une distribution Google Play. Un lexique à la fin de ce document définit quelques mot du vocabulaire Android utilisé dans ce tutoriel. 41 Installation de l’IDE Dans cette section nous allons décrire la procédure d’installation d’un environnement de développement Android. Attention : Il faut exécuter les étapes dans l’ordre cité ci-dessous. a. Téléchargez le JDK7 (Java Development Kit) que vous pouvez trouver sur le site d’Oracle 1 . b. Désinstallez des éventuelles versions antérieures du JDK c. Installez le nouveau JDK d. Téléchargez le paquet ADT (Android Developer Tools). Il contient le SDK (Software Development Kit) Android et une version d’Eclipse avec ADT intégré. e. Pour installer l’IDE, il faut juste placer le dossier téléchargé dans le répertoire où vous avez l’habitude d’installer vos programmes (ou directement sur votre partition principale) et le dé-zipper. Vous pouvez également lui changer de nom si vous souhaitez, mais veillez à ne pas mettre des espaces ou des accents quand vous le renommez. f. Dans le dossier dé-zippé vous trouverez un exécutable Eclipse que vous pouvez désormais lancer pour commencer la configuration de votre environnement. i Au moment de l’écriture de ce document, Eclipse est le seul IDE (Integrated Development Environment) officiellement supporté. Un nouvel environnement, Android Studio, est en cours de développement mais est encore en version bêta pas très stable. Si vous souhaitez utiliser une version d’Eclipse que vous avez déjà sur votre machine il faudrait prendre le SDK et un plugin ADT et configurer Eclipse pour son utilisation. 1. Ce tutoriel a été réalisé avec JDK7u60 52 Configuration de l’IDE Installation des paquets supplémentaires et des mises à jours a. Lancez Eclipse b. On commencera par s’assurer que l’environnement installé est à jour. Dans le menu Help sélectionnez Check for Updates et installez les mises à jour le cas échéant. c. Pour vérifier la version du SDK installé, allez dans le menu Window > Android SDK Manager et lancez le gestionnaire du SDK. Dans le gestionnaire (fig.2.1) vous verrez la version du SDK installé (avec les mises jour disponibles) et aussi la version de l’API (Application Programming Interface) installée et la version du OS pour laquelle elle vous permettra de développer. Installez les paquets proposés par défaut. i Si vous voulez développer pour des versions Android plus anciennes il faut installer les versions API correspondantes. Configuration d’un émulateur Un émulateur permet de reproduire le comportement d’un appareil réel d’une façon virtuelle. L’utilisation d’un émulateur nous évite d’avoir à charger à chaque fois l’application dans un appareil pour la tester. On pourra ainsi lancer l’application dans l’IDE et elle s’exécutera sur un appareil virtuel appelé Android Virtual Device AVD qui émule le comportement d’un téléphone, une tablette ou autre. Eclipse ne propose pas d’émulateur par défaut, avant de commencer à créer notre application il faut en configurer un. 6Tutoriel Android 7 Figure 2.1 – SDK Manager Dans cet exemple, il existe une mise à jour disponible pour le SDK. L’API installée est la version 20 qui permet un développement pour Android 4.4, mais il existe une API plus récente pour Android 5.0. Polytech’ Paris Sud Dima RodriguezTutoriel Android 8 Figure 2.2 – Android Virtual Device Manager Allez dans le menu Window > Android Virtual Device Manager, une fois le gestionnaire ouvert cliquez sur le bouton Create (fig. 2.2). Une fenêtre de configuration s’affiche (fig. 2.3a). On propose de configurer un émulateur Nexus One avec les paramètres indiqués (fig.2.3b). Notez qu’à la création de l’appareil sa résolution vous est signalée. Dans cet exemple l’appareil a une résolution 480x800 qui correspond à hdpi (high density dots per inch). Ceci est important à noter pour l’intégration d’images dans l’application. i Notez que pour certains émulateurs proposés le processeur n’est pas installé par défaut, pour pouvoir les créer il faut installer un processeur adapté dans le SDK Manager. Polytech’ Paris Sud Dima RodriguezTutoriel Android 9 (a) Fenêtre de création AVD (b) Création d’un appareil Nexus One Figure 2.3 – Création d’un appareil virtuel Polytech’ Paris Sud Dima Rodriguez3 Notre première application Android Création d’un projet et d’une application “Hello World” a. Dans le menu File > New, sélectionnez Android Application Project , et renseignez les informations comme dans la figure 3.1 Application name : c’est le nom qui va apparaitre dans la liste des applications sur l’appareil et dans le Play Store. Project name : c’est le nom utilisé par Eclipse (typiquement le même que celui de l’application). Package name : il est utilisé comme identifiant de l’application, il permet de considérer différentes versions d’une application comme étant une même application. Minimum required SDK : c’est la version Android la plus ancienne sur laquelle l’application peut tourner. Il faut éviter de remonter trop en arrière ça réduirait les fonctionnalités que vous pourriez donner à votre application. Target SDK : c’est la version pour laquelle l’application est développée et testée. Typiquement la dernière version API que vous avez installée. 1 Compile with : c’est la version d’API à utiliser pour la compilation. Typiquement la dernière version du SDK installée. Theme : c’est l’apparence par défaut qu’aura votre application. 1. Ce tutoriel a été réalisé avec la version 4.4.2 10Tutoriel Android 11 b. Cliquez sur Next et laissez les choix par défaut. Vous pouvez éventuellement modifier l’emplacement de votre projet en décochant Create Project in Workspace et parcourir le disque pour sélectionner un autre dossier. c. Cliquez sur Next. La fenêtre suivante vous propose de définir une icône pour votre application. Nous laisserons l’icône proposée par défaut. Vous pourrez ultérieurement créer votre propre icône pour vos applications. Remarquez que l’image doit être proposée avec différentes résolutions pour s’adapter aux différents appareils. d. Cliquez sur Next. Nous arrivons à la création d’une activité (un écran avec une interface graphique). Sélectionnez Blank Activity (fig. 3.2) et cliquez Next. e. Selon la version de l’ADT que vous avez, vous verrez soit la fenêtre de la figure 3.3a ou celle de la figure 3.3b. La dernière version impose l’utilisation de fragments. Chaque activité dispose d’un layout qui définit la façon dont les composants seront disposés sur l’écran. Une activité peut être divisée en portions (ou fragments) chacune ayant son propre layout. La notion de fragment a été introduite pour favoriser la ré-utilisabilité de morceaux d’activité (un fragment peut être définit une fois et réutilisé dans plusieurs activités). Renseignez les champs comme indiqué dans la figure. f. Cliquez sur Finish, le projet est crée. ! Si vous créez un fragment ce sera le fichier fragment_principale.xml que vous devriez modifier dans la suite du tutoriel sinon vous modi- fierez le fichier activite_principale.xml. Exécution de l’application Sur l’émulateur Appuyez sur le bouton d’exécution (fig.3.4 ) et sélectionnez Android Application dans la fenêtre qui s’affiche. L’émulateur se lance, ça peut prendre quelques minutes soyez patients. Rassurez-vous, vous n’aurez pas à le relancer à chaque fois que vous compilez votre projet, laissez-le ouvert et à chaque fois que vous compilez et relancez votre application, elle sera rechargée dans l’émulateur en cours. Polytech’ Paris Sud Dima RodriguezTutoriel Android 12 Figure 3.1 – Création d’un projet Figure 3.2 – Créer une activité Polytech’ Paris Sud Dima RodriguezTutoriel Android 13 (a) Création d’activité sans fragment (b) Création d’activité avec fragment Figure 3.3 – Nouvelle activité Figure 3.4 – Exécution de l’application Polytech’ Paris Sud Dima RodriguezTutoriel Android 14 Explorateur Palette des composants graphiques Navigateur des fichiers ouverts Liste des composants de l'activité Propritétés du composant selectionné Navigation entre vue graphique et xml Output Aperçu de l'activité Debug et Execution Figure 3.5 – Aperçu de l’interface Eclipse Sur un appareil réel Connectez l’appareil par câble USB à l’ordinateur et installez le pilote si nécessaire. Activez l’option de débogage USB sur votre appareil (en général sous Settings > Applications > Development). Lancez l’application depuis Eclipse comme précédemment. Eclipse charge l’application sur votre appareil et la lance. i Une fois que votre application est compilée, un fichier MonAppli.apk est créé dans le dossier bin de votre répertoire de travail. C’est l’exé- cutable de votre application. C’est ce fichier que vous devez déployer pour distribuer votre application. Le contenu de ce fichier peut être inspecté à l’aide de n’importe quel logiciel standard de compression/- décompression de fichiers. Se repérer dans le projet La figure 3.5 montre les principaux éléments de l’interface Eclipse. Tout projet Android doit respecter une hiérarchie bien précise qui permettra au compilateur de retrouver les différents éléments et ressources lors de la génération de l’application. Cette hiérarchie favorise la modularité des applications Android. A la création du projet, Eclipse crée automatiquement des dossiers pour contenir Polytech’ Paris Sud Dima RodriguezTutoriel Android 15 les fichiers de code Java, les fichiers XML, et les fichiers multimédias. L’explorateur de projet vous permettra de naviguer dans ces dossiers. Les dossiers que nous utiliserons le plus sont src et res. Le premier contient le code Java qui définit le comportement de l’application et le second comporte des sous dossiers où sont stockés les ressources qui définissent l’interface de l’application (l’apparence). i La séparation entre fonctionnalité et apparence est un point essentiel de la philosophie Android. Le code de la classe principale de l’application (Principale.java) est situé dans le sous dossier polytech.android.monappli de src. Vous trouverez en annexe une brève explication du code qui y est généré par défaut. C’est dans le dossier src que seront enregistrées toutes les classes que nous allons créer dans ce projet. Par ailleurs, tout ce qui touche à l’interface utilisateur sera intégré dans les sous dossiers de res, dont voici une brève description : layout regroupe les fichiers XML qui définissent la disposition des composants sur l’écran. Il contient déjà, dès la création du projet, le layout de l’activité principale que nous avons créée. drawable-**** contient tout élément qui peut être dessiné sur l’écran : images (en PNG de préférence), formes, animations, transitions, icône, etc.. Cinq dossiers drawable permettent aux développeurs de proposer des éléments graphiques pour tout genre d’appareil Android en fonction de sa résolution. En populant correctement ces dossiers on peut ainsi créer des applications avec une interface qui s’adapte à chaque résolution d’écran avec un seul fichier .apk. ldpi low-resolution dots per inch. Pour des images destinées à des écrans de basse résolution (~120dpi) mdpi pour des écrans de moyenne resolution (~160dpi) hdpi pour des écrans de haute résolution (~240dpi) xhdpi pour des écrans ayant une extra haute résolution (~320dpi) xxhdpi pour des écrans ayant une extra extra haute résolution (~480dpi). menu contient les fichiers XML définissant les menus Polytech’ Paris Sud Dima RodriguezTutoriel Android 16 values contient les fichiers XML qui définissent des valeurs constantes (des chaines de caractères, des dimensions, des couleurs, des styles etc.) Dans le dossier gen vous verrez du code java généré automatiquement par Eclipse. Nous nous intéresserons particulièrement au fichier R.java dans le package polytech.android.monappli. Ce fichier définit une classe R dans laquelle sont définis les identifiants des ressources de l’application. A chaque fois que vous rajouterez une ressource à votre application un identifiant sera généré automatiquement dans cette classe vous permettant par la suite de pouvoir le référencer pour l’utiliser dans votre code 2 . Vous trouverez également sur la racine du projet un fichier nommé AndroidManifest.xml. Ce fichier est obligatoire dans tout projet Android, et doit toujours avoir ce même nom. Ce fichier permet au système de reconnaitre l’application. Modification de l’interface utilisateur Pour l’instant notre application ne fait qu’afficher un message sur l’écran, dans cette section nous allons modifier l’interface pour y mettre un champ de saisie et un bouton. Une interface utilisateur est en général constituée de ce qu’on appelle des ViewGroups qui contiennent des objets de type View ainsi que d’autres ViewGroups. Un View est un composant, tel un bouton ou un champ de texte, et les ViewGroups sont des conteneurs qui définissent une disposition des composants (Views) qui y sont placés. ViewGroup définit la classe de base des différents layouts. Comprendre le layout La disposition de notre interface est définie dans le fichier fragment_principale.xml situé dans le dossier layout de res. (ou bien le fichier activite_principale.xml si vous n’avez pas définit de fragment à la création de votre projet). Ouvrez ce fichier. 2. A l’intérieur de classe R sont définies plusieurs classes, dites nichées, telles que string, drawable, layout, menu, id, etc. Une classe nichée est membre de la classe qui la contient. On a recours à ce genre de classe en général lorsqu’on veut définir une classe qui n’est utilisée qu’à l’intérieur d’une autre classe. Si on la déclare privée elle ne sera visible qu’a l’intérieur de la classe qui l’a définie. Par ailleurs cette dernière peut également accéder aux attributs privés de la classe nichée. C’est une façon d’améliorer la lisibilité du code en regroupant les fonctionnalités qui vont ensemble. Dans notre cas toutes les classes nichées dans R sont publiques, donc accessibles depuis l’extérieur, mais comme elles sont membres de la classe R, pour y accéder, il faut passer par R. On utilisera des notations telles que R.string puisque ces classes sont statiques. Polytech’ Paris Sud Dima RodriguezTutoriel Android 17 La première balise que vous retrouverez est qui définit le type du conteneur qui compose l’interface, il impose la façon dont les composants seront disposés. Plusieurs types de conteneurs existent, les plus communs sont RelativeLayout, LinearLayout, TableLayout, GridView, ListView. L’utilisation d’un RelativeLayout, par exemple, implique que les composants seront placés selon des positions relatives les uns par rapport aux autres. Un LinearLayout implique une disposition linéaire verticale ou horizontale, un GridView permet la disposition des éléments selon une grille qui peut défiler, etc. A l’intérieur de la balise vous verrez un ensemble d’attributs définis selon le format plateforme:caractéristique=”valeur” Par exemple le premier attribut xmlns:android précise où sont définis les balises Android utilisées dans ce fichier. La balise , fille de la balise , définit un composant texte qui sera placé sur le layout. En effet, c’est sur ce composant là qu’on écrit le “Hello World” qu’affiche notre application. Cette chaine de caractère est définie par l’attribut android:text. La notation "@string/hello_world" fait référence à une chaine de caractère qui s’appelle hello_world et qui est définie dans le fichier strings.xml (dans le dossier values). Modifier le type de layout Nous allons maintenant modifier le type du layout pour le transformer en LinearLayout. La figure 3.6 trace la dérivation de la classe LinearLayout. Nous rajouterons ensuite nos composants sur ce layout dans une disposition linéaire. Figure 3.6 – Hiérarchie de LinearLayout Les layouts sont des ViewGroup qui sont eux mêmes des View [1] Dans le fichier fragment_principale.xml Polytech’ Paris Sud Dima RodriguezTutoriel Android 18 . supprimez l’élément . remplacez l’élément par . rajoutez l’attribut android:orientation et mettre sa valeur à “horizontal” Le code dans le fichier devient ainsi Rajouter d’un champ de saisie . Rajoutez un élément dans le tel que Nous avons ainsi placé un champ de saisie avec les attributs suivants : android :id permet de donner un identifiant unique à ce View qu’on utilisera pour référencer cet objet à l’intérieur de notre code. Le symbol @ est nécessaire pour faire référence à un objet ressource à partir d’un fichier XML. id est le type de ressource et chp_saisie est le nom qu’on donne à notre ressource. Le symbole + est utilisé pour définir un ID pour la première fois. Il indique aux outils du SDK qu’il faudrait générer un ID dans le fichier R.java pour référencer cet objet. Un attribut public static final chp_saisie sera défini dans la classe id.Le symbole + ne doit être utilisé qu’une seule fois au moment où on déclare la ressource pour la première fois. Par la suite si on veut faire référence à cet élément, à partir d’un XML, il suffira d’écrire @id/chp_saisie. Polytech’ Paris Sud Dima RodriguezTutoriel Android 19 android :layout_width permet de spécifier la largeur de élément. “wrap_content” signifie que le View doit être aussi large que nécessaire pour s’adapter à la taille de son contenu. Si en revanche on précise “match_parent” comme on l’avait fait pour le LinearLayout, dans ce cas le EditText occuperait toute la largeur de l’écran puisque sa largeur sera celle de son parent c-à-d le LinearLayout android :layout_height idem que pour le layout_width mais pour la hauteur android :hint précise le texte par défaut à afficher dans le champ de saisie quand il est vide. Nous aurions pu préciser directement la chaine de caractère ici codée en dur, mais on préfère utiliser plutôt une ressource qu’on définira dans strings.xml . Noter que l’utilisation de + ici n’est pas nécessaire parce qu’on fait référence à une ressource concrète (qu’on définira dans le fichier xml) et non pas à un identifiant que le SDK doit créer dans la classe R. i Privilégiez toujours l’utilisation des ressources strings plutôt que des chaines de caractères codées en dur. Cela permet de regrouper tout le texte de votre interface dans un seul endroit pour simplifier la recherche et la mise à jour du texte, de plus ceci est indispensable pour que votre application puisse être multilingue. l’IDE vous affichera un avertissement en cas de non respect de cette recommandation. Après la modification du code que nous venons de faire, quand vous sauvegarderez le fichier, un message d’erreur vous indiquera que l’identifiant str_chp_saisie n’est pas connu. Nous allons donc le définir. . Ouvrez le fichier strings.xml qui se trouve dans res>values . Rajoutez une nouvelle string nommée str_chp_saisie et dont la valeur est “Entrer un texte” . Vous pouvez éventuellement supprimer la ligne qui définit “hello_world” Votre fichier strings.xml ressemblera donc à ceci MonAppli Entrer un texte Polytech’ Paris Sud Dima RodriguezTutoriel Android 20 Figure 3.7 – Premier test de l’application modifiée Settings . Une fois que vos modifications sont sauvegardées vous remarquerez la création de deux attributs dans le fichier R.java. • Un attribut constant nommé chp_saisie dans la classe id. C’est un numéro unique qui identifie l’élément EditText que nous venons de rajouter. Cet identifiant nous permettra de manipuler l’élément à partir du code. • Un attribut constant nommé str_chp_saisie dans la classe string. Il fait référence à la chaine de caractère et nous permettra de l’utiliser dans le code. Lancez l’application, l’émulateur affichera un écran tel que dans la figure 3.7. Tapez un texte et remarquez comment la taille du champ de saisie s’adapte à la longueur du texte. Polytech’ Paris Sud Dima RodriguezTutoriel Android 21 (a) Disposition par défaut (b) Le EditText a un poids de 1 Figure 3.8 – Champ de saisie et bouton Rajouter un bouton . Dans le fichier strings.xml rajoutez une chaine de caractère qui s’appelle "btn_envoyer" et qui vaut Envoi. . Dans le fichier du layout rajoutez un élément