{"id":98,"date":"2009-07-07T09:38:52","date_gmt":"2009-07-07T07:38:52","guid":{"rendered":"http:\/\/wp1.fredptitgars.net\/index.php\/2009\/07\/07\/calcul-matriciel\/"},"modified":"2009-07-07T09:38:52","modified_gmt":"2009-07-07T07:38:52","slug":"calcul-matriciel","status":"publish","type":"post","link":"https:\/\/fredptitgars.ovh\/?p=98","title":{"rendered":"Calcul matriciel"},"content":{"rendered":"<h2>Rappels sur le calcul matriciel et bool\u00e9en<\/h2>\n<p><strong>Addition de matrices<\/strong><\/p>\n<p>[0150]+ [1203]\t= [1353]<br \/>\n<br \/>[1210]   [0024]\t   [1234]<\/p>\n<p>Multiplication de matrices<\/p>\n<p> <img loading=\"lazy\" decoding=\"async\" class=\" aligncenter size-full wp-image-89\" src=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/calcul_math-fcd.jpg\" alt=\"calcul_math.jpg\" align=\"center\" width=\"194\" height=\"63\" \/><\/p>\n<p><strong>Calcul bool\u00e9en<\/strong><br \/>\n<br \/>le + correspond au \u00ab\u00a0OU\u00a0\u00bb<br \/>\n<br \/>0 + 0 = 0<br \/>\n<br \/>1 + 0 = 1<br \/>\n<br \/>0 + 1 = 1<br \/>\n<br \/>1 + 1 = 1 <\/p>\n<p>pour les produits : le * correspond au \u00ab\u00a0ET\u00a0\u00bb<br \/>\n<br \/>0 * 0 = 0<br \/>\n<br \/>0 * 1 = 0<br \/>\n<br \/>1 * 0 = 0<br \/>\n<br \/>1 * 1 = 1<br \/>\n<br \/>le 0 = Faux<br \/>\n<br \/>le 1 = Vrai<\/p>\n<p>Th\u00e9orie des graphes : matrice d\u2019un graphe<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" aligncenter size-full wp-image-90\" src=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/matrice_graph-df5.png\" alt=\"matrice_graph.png\" align=\"center\" width=\"793\" height=\"333\" srcset=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/matrice_graph-df5.png 793w, https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/matrice_graph-df5-300x126.png 300w, https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/matrice_graph-df5-768x323.png 768w\" sizes=\"auto, (max-width: 793px) 100vw, 793px\" \/><\/p>\n<p><strong>Matrice d\u2019incidence ou matrice d\u2019incidence sommet-arc ou sommet-ar\u00eate<\/strong><br \/>\n<br \/>Si on a un graphe orient\u00e9 G=(X, U) comportant n sommets et m arcs, on appelle matrice d\u2019incidence sommet-arc la matrice M de dimension n x m avec :<br \/>\n<br \/>Mij = 1 si xi est l\u2019extr\u00e9mit\u00e9 initiale de l\u2019arc j<br \/>\n<br \/>Mij = -1 si xi est l\u2019extr\u00e9mit\u00e9 terminale de l\u2019arc j<br \/>\n<br \/>Mij = 0 si xi n\u2019est pas une extr\u00e9mit\u00e9 de l\u2019arc j<br \/>\n<br \/>Pour un graphe non orient\u00e9, il n\u2019y a pas de \u20131, juste des 1.<\/p>\n<p> <img loading=\"lazy\" decoding=\"async\" class=\" aligncenter size-full wp-image-91\" src=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/matrice_incidence-bac.png\" alt=\"matrice_incidence.png\" align=\"center\" width=\"906\" height=\"377\" srcset=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/matrice_incidence-bac.png 906w, https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/matrice_incidence-bac-300x125.png 300w, https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/matrice_incidence-bac-768x320.png 768w\" sizes=\"auto, (max-width: 906px) 100vw, 906px\" \/><\/p>\n<p>On num\u00e9rote les arcs comme on veut. La matrice fait 8 sur 5 avec en abscisse les arcs et en ordonn\u00e9e les sommets. C\u2019est aussi une matrice binaire. <\/p>\n<p><strong>Connexit\u00e9<\/strong><br \/>\n<br \/>Un graphe G=(X,U) est connexe si pour tout couple de sommets (x,y) il existe une cha\u00eene joignant x \u00e0 y. Trivialement, \u00e7a signifie qu\u2019il tient en un seul morceau. Si G est divis\u00e9 en trois morceaux, ces morceaux sont des sous-graphes connexes de G, qu\u2019on appelle les composantes connexes du graphe. Le nombre de connexit\u00e9s est not\u00e9 p.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" aligncenter size-full wp-image-92\" src=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/conexite-df7.png\" alt=\"conexite.png\" align=\"center\" width=\"321\" height=\"174\" srcset=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/conexite-df7.png 321w, https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/conexite-df7-300x163.png 300w\" sizes=\"auto, (max-width: 321px) 100vw, 321px\" \/><\/p>\n<p><strong>Chemin de longueur k<\/strong><br \/>\n<br \/>On appelle longueur d\u2019un chemin, entre deux sommets, i et j, sur un graphe G=(X,U), le nombre d\u2019arcs existant entre ces deux sommets. Un chemin est de longueur, k, s\u2019il comprend k arcs et (k+1) sommets. Un sommet seul, d\u00e9termine un chemin de longueur 0.<\/p>\n<p>Soit un graphe G=(X,U),<br \/>\n<br \/>M la matrice d\u2019incidence sommets-sommets,<br \/>\n<br \/>Mk : le produit matriciel bool\u00e9en de M par elle m\u00eame k fois.<\/p>\n<p> <img loading=\"lazy\" decoding=\"async\" class=\" aligncenter size-full wp-image-93\" src=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/chemin_de_longueur_k-e25.png\" alt=\"chemin_de_longueur_k.png\" align=\"center\" width=\"314\" height=\"214\" srcset=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/chemin_de_longueur_k-e25.png 314w, https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/chemin_de_longueur_k-e25-300x204.png 300w\" sizes=\"auto, (max-width: 314px) 100vw, 314px\" \/><\/p>\n<p>La pr\u00e9sence d&rsquo;un 1 sur Mk repr\u00e9sente au moins un chemin entre i et j. Sur la matrice \u00e0 la puissance p, un 1 sur xij indique l\u2019existence d\u2019un chemin de longueur p entre i  et j. Si on calculait de fa\u00e7on non bool\u00e9enne, on aurait aussi le nombre de chemins.<br \/>\n<br \/>Ex : sur M2 bool\u00e9enne, un 1 entre A et B indique l\u2019existence d\u2019un ou plusieurs chemins de longueur 2 entre A et B, comme par exemple le chemin AD DB.<\/p>\n<p> <img loading=\"lazy\" decoding=\"async\" class=\" aligncenter size-full wp-image-94\" src=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/chemin_longueur_k_2-3ac.png\" alt=\"chemin_longueur_k_2.png\" align=\"center\" width=\"374\" height=\"195\" srcset=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/chemin_longueur_k_2-3ac.png 374w, https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/chemin_longueur_k_2-3ac-300x156.png 300w\" sizes=\"auto, (max-width: 374px) 100vw, 374px\" \/><\/p>\n<p>On s\u2019arr\u00eate \u00e0 la matrice \u00e0 la puissance trois car on a quatre sommets. On a alors la pr\u00e9sence de chemins entre deux sommets, quels que soient leur longueur.<\/p>\n<p><strong>Fermeture transitive d\u2019un graphe<\/strong><br \/>\n<br \/>Un graphe est <em>transitif<\/em> si, quels que soient deux arcs adjacents, a1 (x, y) et a2 (y, z) appartenant \u00e0 A, alors l\u2019arc a3 (x, z) appartient \u00e9galement \u00e0 A.<br \/>\n<br \/>On appelle fermeture transitive d&rsquo;un graphe la liste des chemins \u00e9tablis \u00e0 partir de la propri\u00e9t\u00e9 de transitivit\u00e9. <\/p>\n<p>La <em>fermeture transitive<\/em> s\u2019obtient en faisant la somme bool\u00e9enne de la matrice unit\u00e9 ou identit\u00e9 ou I ou [1] (matrice carr\u00e9e avec des 1 sur la diagonale et des 0 partout ailleurs) et des puissances successives de la matrice d\u2019adjacence sommets-sommets, M. On s\u2019arr\u00eate \u00e0 la matrice de puissance k-1, nombre de sommets \u20131.<br \/>\n<br \/>Pour faire la fermeture transitive du graphe, on va ajouter tous les arcs qui n\u2019existent pas selon la r\u00e8gle de transitivit\u00e9.<\/p>\n<p>Exemple : on a ajout\u00e9 les arcs en rouge<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" aligncenter size-full wp-image-95\" src=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/fermeture_trans_1-bd9.png\" alt=\"fermeture_trans_1.png\" align=\"center\" width=\"350\" height=\"246\" srcset=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/fermeture_trans_1-bd9.png 350w, https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/fermeture_trans_1-bd9-300x211.png 300w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" aligncenter size-full wp-image-96\" src=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/fermeture_trans_2-fa3.png\" alt=\"fermeture_trans_2.png\" align=\"center\" width=\"469\" height=\"208\" srcset=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/fermeture_trans_2-fa3.png 469w, https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/fermeture_trans_2-fa3-300x133.png 300w\" sizes=\"auto, (max-width: 469px) 100vw, 469px\" \/><\/p>\n<p>La matrice repr\u00e9sente tous les chemins existant entre toute paire de sommets <em>xi,xj<\/em>, plus les boucles r\u00e9flexives et les chemins rajout\u00e9s pour la fermeture transitive.<\/p>\n<p><strong>Algorithme de Roy-Warshall<\/strong><br \/>\nEtant donn\u00e9 un graphe, G=(X,U) de n sommets, d\u00e9terminez la fermeture transitive de G.<br \/>\n<br \/>Appelons M la matrice binaire associ\u00e9e \u00e0 G.<br \/>\n<br \/>On rend G r\u00e9flexif par ajout d\u2019une boucle en chaque sommet n\u2019en comportant pas.<br \/>\n<br \/>On v\u00e9rifie d\u2019abord que pour tous arcs (i,r) et (r,j), on a bien un arc (i,j). Sinon, on l\u2019ajoute. <\/p>\n<p> <img loading=\"lazy\" decoding=\"async\" class=\" aligncenter size-full wp-image-97\" src=\"https:\/\/fredptitgars.ovh\/wp-content\/uploads\/2009\/07\/roy_warshall-0df.png\" alt=\"roy_warshall.png\" align=\"center\" width=\"204\" height=\"72\" \/><\/p>\n<p>On fait de m\u00eame avec les ensembles de trois arcs, quatre arcs et ainsi de suite. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rappels sur le calcul matriciel et bool\u00e9en Addition de matrices [0150]+ [1203] = [1353] [1210] [0024] [1234] Multiplication de matrices Calcul bool\u00e9en le + correspond au \u00ab\u00a0OU\u00a0\u00bb 0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 1 pour les produits : le * correspond au [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":89,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-98","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rcp101-recherche-operationnelle-et-aide-a-la-decision"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/posts\/98","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=98"}],"version-history":[{"count":0,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/posts\/98\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=\/wp\/v2\/media\/89"}],"wp:attachment":[{"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=98"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=98"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fredptitgars.ovh\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=98"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}