<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>http://os-vps418.infomaniak.ch:1250/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Durandmo</id>
	<title>Wiki du LAMA (UMR 5127) - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="http://os-vps418.infomaniak.ch:1250/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Durandmo"/>
	<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php/Sp%C3%A9cial:Contributions/Durandmo"/>
	<updated>2026-06-10T03:17:56Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO632_:_algorithmes_de_graphes&amp;diff=6434</id>
		<title>INFO632 : algorithmes de graphes</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO632_:_algorithmes_de_graphes&amp;diff=6434"/>
		<updated>2014-05-13T13:43:47Z</updated>

		<summary type="html">&lt;p&gt;Durandmo : /* Algorithmes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cours du semestre 6 de la licence STIC INFO.&lt;br /&gt;
&lt;br /&gt;
* Responsable pour 2010--2011: Pierre Hyvernat.&lt;br /&gt;
* Responsable pour 2011--2012: Xavier Provençal.&lt;br /&gt;
* Responsable pour 2012--2013: Xavier Provençal.&lt;br /&gt;
* Responsable pour 2013--2014: Xavier Provençal.&lt;br /&gt;
* Xavier Provençal (CM/TD/TP).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ce wiki est un complément de cours pour le cours « info-526 : graphes et algorithmes ». La participation au wiki est fortement encouragée. &lt;br /&gt;
&lt;br /&gt;
#Pour pouvoir modifier les pages, inscrivez-vous (lien en haut à droite) pour obtenir un login et mot de passe. (Choisissez un login du style &#039;&#039;PrenomNom&#039;&#039;...)&lt;br /&gt;
&lt;br /&gt;
#Je vous conseille d&#039;aller lire [http://meta.wikimedia.org/wiki/Aide:Contenu ce guide] pour vous familiariser avec les wikis.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TD et TP===&lt;br /&gt;
&lt;br /&gt;
TD1 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD1.pdf Première feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD2 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD2.pdf Deuxième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD3 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD3.pdf Troisième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD4 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD4.pdf Quatrième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD5 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD5.pdf Cinquième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD6 : [http://lama.univ-savoie.fr/~provencal/INFO526/INFO526-TD6.pdf Sixième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TP : [http://www.lama.univ-savoie.fr/~provencal/INFO632/TP/index.html Énoncé des TP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
===Compléments de cours / TD / TP===&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/parcoursLargeur.pdf Algorithme du parcours en largeur]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/parcoursProfondeur.pdf Algorithme du parcours en profondeur]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/algoMinimisation.pdf Quelques algorithmes de minimisation Prim, Dijkstra, Floyd-Warshall.]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Algorithmes===&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=vYv8MhxCO00 Parcourt en Profondeur (DFS) 1/2]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=zEKRCDSxYXg Parcourt en Profondeur (DFS) 2/2]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=JucGeygpzFw Parcourt en Largeur (BFS) 1/2]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=0rH7OgcM6eA Parcourt en Largeur (BFS) 2/2]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-3YIKISpTsQ Arbres Couvrants Minimum (Prim)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=ocYYUiCTqI8 Algorithme Ford-Fulkerson (avec capacités aux noeuds)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Z5B_Ruz1woI A* (un algorithme pour super mario); excerpt]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=WOTOjbHBEXY Graphes et Algorithmes/ Ford-Fulkerson (Graphe Résiduel) 1/2 ]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=c57gOxo4hWo Graphes et Algorithmes/ Ford-Fulkerson (Graphe Résiduel) 2/2 ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=o7d2wHagfEg Flot maximum en Réseau/ Algorithme Edmonds-Karp]&lt;br /&gt;
&lt;br /&gt;
===Ouvrage de référence===&lt;br /&gt;
&lt;br /&gt;
La partie « Algorithmes sur les graphes » du livre « &#039;&#039;Introduction à l&#039;algorithmique&#039;&#039; » de Cormen, Leiserson et Rivest est un bon complément. Il contient des exemples, applications et preuves de certaines propriétés des algorithmes étudiés en cours...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Documents remis en classe ===&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO632/parcours.pdf Parcours de graphes, en largeur et en profondeur.]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO632/algos_minimisation.pdf Algorithmes de minimisation ( Prim, Dijkstra, Floyd-Warshall ).]&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2013-2014) ==&lt;br /&gt;
&lt;br /&gt;
* (Cours 1): Graphes (vocubulaire et définitions de bases), degré et adjacence, isomorphie de graphes.&lt;br /&gt;
* (Cours 2): Chemin, chemin simple, cycle, composante (fortement) connexe. Arbre et forêt. Représentation de graphes ( matrice vs listes ).&lt;br /&gt;
* (TD 1): Représentation de graphes, propriétés élmentaires de graphes, modélisation par des graphes.&lt;br /&gt;
* (Cours 3): Représentation de graphes (suite et fin). Parcours de graphes, parcours en largeur, parcours en profondeur.&lt;br /&gt;
* (TD 2): Parcours en largeur : connexité, graphes bipartis, détection de cycles.&lt;br /&gt;
* (Cours 4): Graphes valués, arbre courvrant de poids minimum et algorithme de Prim.&lt;br /&gt;
* (TD 3): Parcours en profondeur : tri topologique, implémentation sans récursivité. Algorithme pour le calcul d&#039;un ACM : Prim vs Kruskal.&lt;br /&gt;
* (Cours 5): Calcul des chemins de longueur minimale. Algorithme de calcul de chemins de longueur minimale : Dijkstra et Floyd-Warshall.&lt;br /&gt;
* (TD 4): Chemins de longueur minimales.&lt;br /&gt;
* (Cours 6): Réseaux de transport et calcul du flot maximal. Algorithme de Ford-Fulkerson.&lt;br /&gt;
* (TD 5): Réseaux de tarnsport et flot maximal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2012-2013) ==&lt;br /&gt;
&lt;br /&gt;
* (Cours 1): 12 septembre. Graphes (vocubulaire et définitions de bases), degré et adjacence, isomorphie de graphes.&lt;br /&gt;
* (Cours 2): 18 septembre. Lemme des poignées de mains, représentations de graphes (listes VS matrice), composantes connexes.&lt;br /&gt;
* (TD 1): 19 septembre. Représentation de graphes, propriétés élémentaires de graphes, modélisation par des graphes.&lt;br /&gt;
* (Cours 3): 25 septembre. Arbres, forêts et arbres couvrants. Parcours en largeur.&lt;br /&gt;
* (TD 2): 26 septembre. Parcours en largeur : connexité, graphes bipartis, détection de cycles.&lt;br /&gt;
* (Cours 4): 2 octobre. Parcours en profondeur, graphes valués, arbres couvrants de poids minimal (I).&lt;br /&gt;
* (TD 3): 9 octobre. Parcours en profonder : détection de cycles, tri topologique. Algorithmes de Kruskal (I).&lt;br /&gt;
* (Cours 5): 16 octobre. Algorithmes de Prim, Dijkstra et Floyd-Warshall.&lt;br /&gt;
* (TP 1): 24 octobre. Familiarisation avec Sagemath et sa bibliothèque de graphes. Conversion de représentations, graphe de dépendances.&lt;br /&gt;
* (TD 4): Chemins de longueur minimales.&lt;br /&gt;
* (Cours 6): Réseaux de transport et calcul du flot maximal. Algorithme de Ford-Fulkerson.&lt;br /&gt;
* (TD 5): Réseaux de tarnsport et flot maximal.&lt;br /&gt;
* (TD 6): Misc. ( Recherche guidée, chemin eulériens et clôture transitive )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
-----------------&lt;br /&gt;
-----------------&lt;br /&gt;
&lt;br /&gt;
==Introduction, quelques dates==&lt;br /&gt;
&lt;br /&gt;
 Euler, problèmes des ponts de Königsberg (1736), notion de graphe eulérien&lt;br /&gt;
 &lt;br /&gt;
 def : un graphe est eulérien si ...&lt;br /&gt;
 &lt;br /&gt;
 def : un graphe est hamiltonien si ...&lt;br /&gt;
 &lt;br /&gt;
 problèmes de complexité&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Kuratowski 1930, notion de graphe planaire, contre exemple : K_5 et K_{3,3}&lt;br /&gt;
 &lt;br /&gt;
 exemple des maisons et des usines&lt;br /&gt;
 &lt;br /&gt;
 théorème de Kuratowski&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Appel et Haken 1976, théorème des 4 couleurs (preuve par ordinateur)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 problématiques de graphes dans les réseaux (Internet, télécommunications, ...)&lt;br /&gt;
&lt;br /&gt;
==Graphes et arbres, préliminaires==&lt;br /&gt;
&lt;br /&gt;
===Définitions===&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Vocabulaire :&#039;&#039;&#039;&lt;br /&gt;
:* sommets adjacents&lt;br /&gt;
:* arêtes adjacentes&lt;br /&gt;
:* arête incidente&lt;br /&gt;
:* degré d&#039;un sommets, degré entrant / degré sortant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arbres===&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Représentation des graphes===&lt;br /&gt;
&lt;br /&gt;
 listes d&#039;adjacence&lt;br /&gt;
 &lt;br /&gt;
 matrice d&#039;adjacence&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Question :&#039;&#039;&#039; quelle est la meilleure représentation ?&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Durandmo</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO632_:_algorithmes_de_graphes&amp;diff=6433</id>
		<title>INFO632 : algorithmes de graphes</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO632_:_algorithmes_de_graphes&amp;diff=6433"/>
		<updated>2014-05-13T13:43:38Z</updated>

		<summary type="html">&lt;p&gt;Durandmo : /* Algorithmes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cours du semestre 6 de la licence STIC INFO.&lt;br /&gt;
&lt;br /&gt;
* Responsable pour 2010--2011: Pierre Hyvernat.&lt;br /&gt;
* Responsable pour 2011--2012: Xavier Provençal.&lt;br /&gt;
* Responsable pour 2012--2013: Xavier Provençal.&lt;br /&gt;
* Responsable pour 2013--2014: Xavier Provençal.&lt;br /&gt;
* Xavier Provençal (CM/TD/TP).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ce wiki est un complément de cours pour le cours « info-526 : graphes et algorithmes ». La participation au wiki est fortement encouragée. &lt;br /&gt;
&lt;br /&gt;
#Pour pouvoir modifier les pages, inscrivez-vous (lien en haut à droite) pour obtenir un login et mot de passe. (Choisissez un login du style &#039;&#039;PrenomNom&#039;&#039;...)&lt;br /&gt;
&lt;br /&gt;
#Je vous conseille d&#039;aller lire [http://meta.wikimedia.org/wiki/Aide:Contenu ce guide] pour vous familiariser avec les wikis.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TD et TP===&lt;br /&gt;
&lt;br /&gt;
TD1 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD1.pdf Première feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD2 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD2.pdf Deuxième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD3 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD3.pdf Troisième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD4 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD4.pdf Quatrième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD5 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD5.pdf Cinquième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD6 : [http://lama.univ-savoie.fr/~provencal/INFO526/INFO526-TD6.pdf Sixième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TP : [http://www.lama.univ-savoie.fr/~provencal/INFO632/TP/index.html Énoncé des TP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
===Compléments de cours / TD / TP===&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/parcoursLargeur.pdf Algorithme du parcours en largeur]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/parcoursProfondeur.pdf Algorithme du parcours en profondeur]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/algoMinimisation.pdf Quelques algorithmes de minimisation Prim, Dijkstra, Floyd-Warshall.]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Algorithmes===&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=vYv8MhxCO00 Parcourt en Profondeur (DFS) 1/2]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=zEKRCDSxYXg Parcourt en Profondeur (DFS) 2/2]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=JucGeygpzFw Parcourt en Largeur (BFS) 1/2]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=0rH7OgcM6eA Parcourt en Largeur (BFS) 2/2]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-3YIKISpTsQ Arbres Couvrants Minimum (Prim)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=ocYYUiCTqI8 Algorithme Ford-Fulkerson (avec capacités aux noeuds)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Z5B_Ruz1woI A* (un algorithme pour super mario); excerpt]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=WOTOjbHBEXY Graphes et Algorithmes/ Ford-Fulkerson (Graphe Résiduel) 1/2 ]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=c57gOxo4hWo Graphes et Algorithmes/ Ford-Fulkerson (Graphe Résiduel) 2/2 ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=o7d2wHagfEg Flot maximum en Réseau/ Algorithme Edmonds-Karp]&lt;br /&gt;
&lt;br /&gt;
===Ouvrage de référence===&lt;br /&gt;
&lt;br /&gt;
La partie « Algorithmes sur les graphes » du livre « &#039;&#039;Introduction à l&#039;algorithmique&#039;&#039; » de Cormen, Leiserson et Rivest est un bon complément. Il contient des exemples, applications et preuves de certaines propriétés des algorithmes étudiés en cours...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Documents remis en classe ===&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO632/parcours.pdf Parcours de graphes, en largeur et en profondeur.]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO632/algos_minimisation.pdf Algorithmes de minimisation ( Prim, Dijkstra, Floyd-Warshall ).]&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2013-2014) ==&lt;br /&gt;
&lt;br /&gt;
* (Cours 1): Graphes (vocubulaire et définitions de bases), degré et adjacence, isomorphie de graphes.&lt;br /&gt;
* (Cours 2): Chemin, chemin simple, cycle, composante (fortement) connexe. Arbre et forêt. Représentation de graphes ( matrice vs listes ).&lt;br /&gt;
* (TD 1): Représentation de graphes, propriétés élmentaires de graphes, modélisation par des graphes.&lt;br /&gt;
* (Cours 3): Représentation de graphes (suite et fin). Parcours de graphes, parcours en largeur, parcours en profondeur.&lt;br /&gt;
* (TD 2): Parcours en largeur : connexité, graphes bipartis, détection de cycles.&lt;br /&gt;
* (Cours 4): Graphes valués, arbre courvrant de poids minimum et algorithme de Prim.&lt;br /&gt;
* (TD 3): Parcours en profondeur : tri topologique, implémentation sans récursivité. Algorithme pour le calcul d&#039;un ACM : Prim vs Kruskal.&lt;br /&gt;
* (Cours 5): Calcul des chemins de longueur minimale. Algorithme de calcul de chemins de longueur minimale : Dijkstra et Floyd-Warshall.&lt;br /&gt;
* (TD 4): Chemins de longueur minimales.&lt;br /&gt;
* (Cours 6): Réseaux de transport et calcul du flot maximal. Algorithme de Ford-Fulkerson.&lt;br /&gt;
* (TD 5): Réseaux de tarnsport et flot maximal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2012-2013) ==&lt;br /&gt;
&lt;br /&gt;
* (Cours 1): 12 septembre. Graphes (vocubulaire et définitions de bases), degré et adjacence, isomorphie de graphes.&lt;br /&gt;
* (Cours 2): 18 septembre. Lemme des poignées de mains, représentations de graphes (listes VS matrice), composantes connexes.&lt;br /&gt;
* (TD 1): 19 septembre. Représentation de graphes, propriétés élémentaires de graphes, modélisation par des graphes.&lt;br /&gt;
* (Cours 3): 25 septembre. Arbres, forêts et arbres couvrants. Parcours en largeur.&lt;br /&gt;
* (TD 2): 26 septembre. Parcours en largeur : connexité, graphes bipartis, détection de cycles.&lt;br /&gt;
* (Cours 4): 2 octobre. Parcours en profondeur, graphes valués, arbres couvrants de poids minimal (I).&lt;br /&gt;
* (TD 3): 9 octobre. Parcours en profonder : détection de cycles, tri topologique. Algorithmes de Kruskal (I).&lt;br /&gt;
* (Cours 5): 16 octobre. Algorithmes de Prim, Dijkstra et Floyd-Warshall.&lt;br /&gt;
* (TP 1): 24 octobre. Familiarisation avec Sagemath et sa bibliothèque de graphes. Conversion de représentations, graphe de dépendances.&lt;br /&gt;
* (TD 4): Chemins de longueur minimales.&lt;br /&gt;
* (Cours 6): Réseaux de transport et calcul du flot maximal. Algorithme de Ford-Fulkerson.&lt;br /&gt;
* (TD 5): Réseaux de tarnsport et flot maximal.&lt;br /&gt;
* (TD 6): Misc. ( Recherche guidée, chemin eulériens et clôture transitive )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
-----------------&lt;br /&gt;
-----------------&lt;br /&gt;
&lt;br /&gt;
==Introduction, quelques dates==&lt;br /&gt;
&lt;br /&gt;
 Euler, problèmes des ponts de Königsberg (1736), notion de graphe eulérien&lt;br /&gt;
 &lt;br /&gt;
 def : un graphe est eulérien si ...&lt;br /&gt;
 &lt;br /&gt;
 def : un graphe est hamiltonien si ...&lt;br /&gt;
 &lt;br /&gt;
 problèmes de complexité&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Kuratowski 1930, notion de graphe planaire, contre exemple : K_5 et K_{3,3}&lt;br /&gt;
 &lt;br /&gt;
 exemple des maisons et des usines&lt;br /&gt;
 &lt;br /&gt;
 théorème de Kuratowski&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Appel et Haken 1976, théorème des 4 couleurs (preuve par ordinateur)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 problématiques de graphes dans les réseaux (Internet, télécommunications, ...)&lt;br /&gt;
&lt;br /&gt;
==Graphes et arbres, préliminaires==&lt;br /&gt;
&lt;br /&gt;
===Définitions===&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Vocabulaire :&#039;&#039;&#039;&lt;br /&gt;
:* sommets adjacents&lt;br /&gt;
:* arêtes adjacentes&lt;br /&gt;
:* arête incidente&lt;br /&gt;
:* degré d&#039;un sommets, degré entrant / degré sortant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arbres===&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Représentation des graphes===&lt;br /&gt;
&lt;br /&gt;
 listes d&#039;adjacence&lt;br /&gt;
 &lt;br /&gt;
 matrice d&#039;adjacence&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Question :&#039;&#039;&#039; quelle est la meilleure représentation ?&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Durandmo</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO632_:_algorithmes_de_graphes&amp;diff=6432</id>
		<title>INFO632 : algorithmes de graphes</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO632_:_algorithmes_de_graphes&amp;diff=6432"/>
		<updated>2014-05-13T13:43:15Z</updated>

		<summary type="html">&lt;p&gt;Durandmo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cours du semestre 6 de la licence STIC INFO.&lt;br /&gt;
&lt;br /&gt;
* Responsable pour 2010--2011: Pierre Hyvernat.&lt;br /&gt;
* Responsable pour 2011--2012: Xavier Provençal.&lt;br /&gt;
* Responsable pour 2012--2013: Xavier Provençal.&lt;br /&gt;
* Responsable pour 2013--2014: Xavier Provençal.&lt;br /&gt;
* Xavier Provençal (CM/TD/TP).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ce wiki est un complément de cours pour le cours « info-526 : graphes et algorithmes ». La participation au wiki est fortement encouragée. &lt;br /&gt;
&lt;br /&gt;
#Pour pouvoir modifier les pages, inscrivez-vous (lien en haut à droite) pour obtenir un login et mot de passe. (Choisissez un login du style &#039;&#039;PrenomNom&#039;&#039;...)&lt;br /&gt;
&lt;br /&gt;
#Je vous conseille d&#039;aller lire [http://meta.wikimedia.org/wiki/Aide:Contenu ce guide] pour vous familiariser avec les wikis.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TD et TP===&lt;br /&gt;
&lt;br /&gt;
TD1 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD1.pdf Première feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD2 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD2.pdf Deuxième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD3 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD3.pdf Troisième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD4 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD4.pdf Quatrième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD5 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD5.pdf Cinquième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD6 : [http://lama.univ-savoie.fr/~provencal/INFO526/INFO526-TD6.pdf Sixième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TP : [http://www.lama.univ-savoie.fr/~provencal/INFO632/TP/index.html Énoncé des TP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
===Compléments de cours / TD / TP===&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/parcoursLargeur.pdf Algorithme du parcours en largeur]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/parcoursProfondeur.pdf Algorithme du parcours en profondeur]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/algoMinimisation.pdf Quelques algorithmes de minimisation Prim, Dijkstra, Floyd-Warshall.]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Algorithmes===&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=vYv8MhxCO00 Parcourt en Profondeur (DFS) 1/2]&lt;br /&gt;
[https://www.youtube.com/watch?v=zEKRCDSxYXg Parcourt en Profondeur (DFS) 2/2]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=JucGeygpzFw Parcourt en Largeur (BFS) 1/2]&lt;br /&gt;
[https://www.youtube.com/watch?v=0rH7OgcM6eA Parcourt en Largeur (BFS) 2/2]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-3YIKISpTsQ Arbres Couvrants Minimum (Prim)]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=ocYYUiCTqI8 Algorithme Ford-Fulkerson (avec capacités aux noeuds)]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Z5B_Ruz1woI A* (un algorithme pour super mario); excerpt]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=WOTOjbHBEXY Graphes et Algorithmes/ Ford-Fulkerson (Graphe Résiduel) 1/2 ]&lt;br /&gt;
[https://www.youtube.com/watch?v=c57gOxo4hWo Graphes et Algorithmes/ Ford-Fulkerson (Graphe Résiduel) 2/2 ]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=o7d2wHagfEg Flot maximum en Réseau/ Algorithme Edmonds-Karp]&lt;br /&gt;
&lt;br /&gt;
===Ouvrage de référence===&lt;br /&gt;
&lt;br /&gt;
La partie « Algorithmes sur les graphes » du livre « &#039;&#039;Introduction à l&#039;algorithmique&#039;&#039; » de Cormen, Leiserson et Rivest est un bon complément. Il contient des exemples, applications et preuves de certaines propriétés des algorithmes étudiés en cours...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Documents remis en classe ===&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO632/parcours.pdf Parcours de graphes, en largeur et en profondeur.]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO632/algos_minimisation.pdf Algorithmes de minimisation ( Prim, Dijkstra, Floyd-Warshall ).]&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2013-2014) ==&lt;br /&gt;
&lt;br /&gt;
* (Cours 1): Graphes (vocubulaire et définitions de bases), degré et adjacence, isomorphie de graphes.&lt;br /&gt;
* (Cours 2): Chemin, chemin simple, cycle, composante (fortement) connexe. Arbre et forêt. Représentation de graphes ( matrice vs listes ).&lt;br /&gt;
* (TD 1): Représentation de graphes, propriétés élmentaires de graphes, modélisation par des graphes.&lt;br /&gt;
* (Cours 3): Représentation de graphes (suite et fin). Parcours de graphes, parcours en largeur, parcours en profondeur.&lt;br /&gt;
* (TD 2): Parcours en largeur : connexité, graphes bipartis, détection de cycles.&lt;br /&gt;
* (Cours 4): Graphes valués, arbre courvrant de poids minimum et algorithme de Prim.&lt;br /&gt;
* (TD 3): Parcours en profondeur : tri topologique, implémentation sans récursivité. Algorithme pour le calcul d&#039;un ACM : Prim vs Kruskal.&lt;br /&gt;
* (Cours 5): Calcul des chemins de longueur minimale. Algorithme de calcul de chemins de longueur minimale : Dijkstra et Floyd-Warshall.&lt;br /&gt;
* (TD 4): Chemins de longueur minimales.&lt;br /&gt;
* (Cours 6): Réseaux de transport et calcul du flot maximal. Algorithme de Ford-Fulkerson.&lt;br /&gt;
* (TD 5): Réseaux de tarnsport et flot maximal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2012-2013) ==&lt;br /&gt;
&lt;br /&gt;
* (Cours 1): 12 septembre. Graphes (vocubulaire et définitions de bases), degré et adjacence, isomorphie de graphes.&lt;br /&gt;
* (Cours 2): 18 septembre. Lemme des poignées de mains, représentations de graphes (listes VS matrice), composantes connexes.&lt;br /&gt;
* (TD 1): 19 septembre. Représentation de graphes, propriétés élémentaires de graphes, modélisation par des graphes.&lt;br /&gt;
* (Cours 3): 25 septembre. Arbres, forêts et arbres couvrants. Parcours en largeur.&lt;br /&gt;
* (TD 2): 26 septembre. Parcours en largeur : connexité, graphes bipartis, détection de cycles.&lt;br /&gt;
* (Cours 4): 2 octobre. Parcours en profondeur, graphes valués, arbres couvrants de poids minimal (I).&lt;br /&gt;
* (TD 3): 9 octobre. Parcours en profonder : détection de cycles, tri topologique. Algorithmes de Kruskal (I).&lt;br /&gt;
* (Cours 5): 16 octobre. Algorithmes de Prim, Dijkstra et Floyd-Warshall.&lt;br /&gt;
* (TP 1): 24 octobre. Familiarisation avec Sagemath et sa bibliothèque de graphes. Conversion de représentations, graphe de dépendances.&lt;br /&gt;
* (TD 4): Chemins de longueur minimales.&lt;br /&gt;
* (Cours 6): Réseaux de transport et calcul du flot maximal. Algorithme de Ford-Fulkerson.&lt;br /&gt;
* (TD 5): Réseaux de tarnsport et flot maximal.&lt;br /&gt;
* (TD 6): Misc. ( Recherche guidée, chemin eulériens et clôture transitive )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
-----------------&lt;br /&gt;
-----------------&lt;br /&gt;
&lt;br /&gt;
==Introduction, quelques dates==&lt;br /&gt;
&lt;br /&gt;
 Euler, problèmes des ponts de Königsberg (1736), notion de graphe eulérien&lt;br /&gt;
 &lt;br /&gt;
 def : un graphe est eulérien si ...&lt;br /&gt;
 &lt;br /&gt;
 def : un graphe est hamiltonien si ...&lt;br /&gt;
 &lt;br /&gt;
 problèmes de complexité&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Kuratowski 1930, notion de graphe planaire, contre exemple : K_5 et K_{3,3}&lt;br /&gt;
 &lt;br /&gt;
 exemple des maisons et des usines&lt;br /&gt;
 &lt;br /&gt;
 théorème de Kuratowski&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Appel et Haken 1976, théorème des 4 couleurs (preuve par ordinateur)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 problématiques de graphes dans les réseaux (Internet, télécommunications, ...)&lt;br /&gt;
&lt;br /&gt;
==Graphes et arbres, préliminaires==&lt;br /&gt;
&lt;br /&gt;
===Définitions===&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Vocabulaire :&#039;&#039;&#039;&lt;br /&gt;
:* sommets adjacents&lt;br /&gt;
:* arêtes adjacentes&lt;br /&gt;
:* arête incidente&lt;br /&gt;
:* degré d&#039;un sommets, degré entrant / degré sortant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arbres===&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Représentation des graphes===&lt;br /&gt;
&lt;br /&gt;
 listes d&#039;adjacence&lt;br /&gt;
 &lt;br /&gt;
 matrice d&#039;adjacence&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Question :&#039;&#039;&#039; quelle est la meilleure représentation ?&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Durandmo</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO632_:_algorithmes_de_graphes&amp;diff=6430</id>
		<title>INFO632 : algorithmes de graphes</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO632_:_algorithmes_de_graphes&amp;diff=6430"/>
		<updated>2014-05-13T13:37:59Z</updated>

		<summary type="html">&lt;p&gt;Durandmo : /* Compléments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cours du semestre 6 de la licence STIC INFO.&lt;br /&gt;
&lt;br /&gt;
* Responsable pour 2010--2011: Pierre Hyvernat.&lt;br /&gt;
* Responsable pour 2011--2012: Xavier Provençal.&lt;br /&gt;
* Responsable pour 2012--2013: Xavier Provençal.&lt;br /&gt;
* Responsable pour 2013--2014: Xavier Provençal.&lt;br /&gt;
* Xavier Provençal (CM/TD/TP).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ce wiki est un complément de cours pour le cours « info-526 : graphes et algorithmes ». La participation au wiki est fortement encouragée. &lt;br /&gt;
&lt;br /&gt;
#Pour pouvoir modifier les pages, inscrivez-vous (lien en haut à droite) pour obtenir un login et mot de passe. (Choisissez un login du style &#039;&#039;PrenomNom&#039;&#039;...)&lt;br /&gt;
&lt;br /&gt;
#Je vous conseille d&#039;aller lire [http://meta.wikimedia.org/wiki/Aide:Contenu ce guide] pour vous familiariser avec les wikis.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TD et TP===&lt;br /&gt;
&lt;br /&gt;
TD1 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD1.pdf Première feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD2 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD2.pdf Deuxième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD3 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD3.pdf Troisième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD4 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD4.pdf Quatrième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD5 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD5.pdf Cinquième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD6 : [http://lama.univ-savoie.fr/~provencal/INFO526/INFO526-TD6.pdf Sixième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TP : [http://www.lama.univ-savoie.fr/~provencal/INFO632/TP/index.html Énoncé des TP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
===Compléments de cours / TD / TP===&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/parcoursLargeur.pdf Algorithme du parcours en largeur]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/parcoursProfondeur.pdf Algorithme du parcours en profondeur]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/algoMinimisation.pdf Quelques algorithmes de minimisation Prim, Dijkstra, Floyd-Warshall.]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Algorythmes===&lt;br /&gt;
[https://www.youtube.com/watch?v=ocYYUiCTqI8 Algorithme Ford-Fulkerson (avec capacités aux noeuds)]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Z5B_Ruz1woI A* (un algorithme pour super mario); excerpt]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=WOTOjbHBEXY Graphes et Algorithmes/ Ford-Fulkerson (Graphe Résiduel) 1/2 ]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=c57gOxo4hWo Graphes et Algorithmes/ Ford-Fulkerson (Graphe Résiduel) 2/2 ]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=o7d2wHagfEg Flot maximum en Réseau/ Algorithme Edmonds-Karp]&lt;br /&gt;
&lt;br /&gt;
===Ouvrage de référence===&lt;br /&gt;
&lt;br /&gt;
La partie « Algorithmes sur les graphes » du livre « &#039;&#039;Introduction à l&#039;algorithmique&#039;&#039; » de Cormen, Leiserson et Rivest est un bon complément. Il contient des exemples, applications et preuves de certaines propriétés des algorithmes étudiés en cours...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Documents remis en classe ===&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO632/parcours.pdf Parcours de graphes, en largeur et en profondeur.]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO632/algos_minimisation.pdf Algorithmes de minimisation ( Prim, Dijkstra, Floyd-Warshall ).]&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2013-2014) ==&lt;br /&gt;
&lt;br /&gt;
* (Cours 1): Graphes (vocubulaire et définitions de bases), degré et adjacence, isomorphie de graphes.&lt;br /&gt;
* (Cours 2): Chemin, chemin simple, cycle, composante (fortement) connexe. Arbre et forêt. Représentation de graphes ( matrice vs listes ).&lt;br /&gt;
* (TD 1): Représentation de graphes, propriétés élmentaires de graphes, modélisation par des graphes.&lt;br /&gt;
* (Cours 3): Représentation de graphes (suite et fin). Parcours de graphes, parcours en largeur, parcours en profondeur.&lt;br /&gt;
* (TD 2): Parcours en largeur : connexité, graphes bipartis, détection de cycles.&lt;br /&gt;
* (Cours 4): Graphes valués, arbre courvrant de poids minimum et algorithme de Prim.&lt;br /&gt;
* (TD 3): Parcours en profondeur : tri topologique, implémentation sans récursivité. Algorithme pour le calcul d&#039;un ACM : Prim vs Kruskal.&lt;br /&gt;
* (Cours 5): Calcul des chemins de longueur minimale. Algorithme de calcul de chemins de longueur minimale : Dijkstra et Floyd-Warshall.&lt;br /&gt;
* (TD 4): Chemins de longueur minimales.&lt;br /&gt;
* (Cours 6): Réseaux de transport et calcul du flot maximal. Algorithme de Ford-Fulkerson.&lt;br /&gt;
* (TD 5): Réseaux de tarnsport et flot maximal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2012-2013) ==&lt;br /&gt;
&lt;br /&gt;
* (Cours 1): 12 septembre. Graphes (vocubulaire et définitions de bases), degré et adjacence, isomorphie de graphes.&lt;br /&gt;
* (Cours 2): 18 septembre. Lemme des poignées de mains, représentations de graphes (listes VS matrice), composantes connexes.&lt;br /&gt;
* (TD 1): 19 septembre. Représentation de graphes, propriétés élémentaires de graphes, modélisation par des graphes.&lt;br /&gt;
* (Cours 3): 25 septembre. Arbres, forêts et arbres couvrants. Parcours en largeur.&lt;br /&gt;
* (TD 2): 26 septembre. Parcours en largeur : connexité, graphes bipartis, détection de cycles.&lt;br /&gt;
* (Cours 4): 2 octobre. Parcours en profondeur, graphes valués, arbres couvrants de poids minimal (I).&lt;br /&gt;
* (TD 3): 9 octobre. Parcours en profonder : détection de cycles, tri topologique. Algorithmes de Kruskal (I).&lt;br /&gt;
* (Cours 5): 16 octobre. Algorithmes de Prim, Dijkstra et Floyd-Warshall.&lt;br /&gt;
* (TP 1): 24 octobre. Familiarisation avec Sagemath et sa bibliothèque de graphes. Conversion de représentations, graphe de dépendances.&lt;br /&gt;
* (TD 4): Chemins de longueur minimales.&lt;br /&gt;
* (Cours 6): Réseaux de transport et calcul du flot maximal. Algorithme de Ford-Fulkerson.&lt;br /&gt;
* (TD 5): Réseaux de tarnsport et flot maximal.&lt;br /&gt;
* (TD 6): Misc. ( Recherche guidée, chemin eulériens et clôture transitive )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
-----------------&lt;br /&gt;
-----------------&lt;br /&gt;
&lt;br /&gt;
==Introduction, quelques dates==&lt;br /&gt;
&lt;br /&gt;
 Euler, problèmes des ponts de Königsberg (1736), notion de graphe eulérien&lt;br /&gt;
 &lt;br /&gt;
 def : un graphe est eulérien si ...&lt;br /&gt;
 &lt;br /&gt;
 def : un graphe est hamiltonien si ...&lt;br /&gt;
 &lt;br /&gt;
 problèmes de complexité&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Kuratowski 1930, notion de graphe planaire, contre exemple : K_5 et K_{3,3}&lt;br /&gt;
 &lt;br /&gt;
 exemple des maisons et des usines&lt;br /&gt;
 &lt;br /&gt;
 théorème de Kuratowski&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Appel et Haken 1976, théorème des 4 couleurs (preuve par ordinateur)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 problématiques de graphes dans les réseaux (Internet, télécommunications, ...)&lt;br /&gt;
&lt;br /&gt;
==Graphes et arbres, préliminaires==&lt;br /&gt;
&lt;br /&gt;
===Définitions===&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Vocabulaire :&#039;&#039;&#039;&lt;br /&gt;
:* sommets adjacents&lt;br /&gt;
:* arêtes adjacentes&lt;br /&gt;
:* arête incidente&lt;br /&gt;
:* degré d&#039;un sommets, degré entrant / degré sortant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arbres===&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Représentation des graphes===&lt;br /&gt;
&lt;br /&gt;
 listes d&#039;adjacence&lt;br /&gt;
 &lt;br /&gt;
 matrice d&#039;adjacence&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Question :&#039;&#039;&#039; quelle est la meilleure représentation ?&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Durandmo</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO632_:_algorithmes_de_graphes&amp;diff=6429</id>
		<title>INFO632 : algorithmes de graphes</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO632_:_algorithmes_de_graphes&amp;diff=6429"/>
		<updated>2014-05-13T13:37:42Z</updated>

		<summary type="html">&lt;p&gt;Durandmo : /* Compléments */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cours du semestre 6 de la licence STIC INFO.&lt;br /&gt;
&lt;br /&gt;
* Responsable pour 2010--2011: Pierre Hyvernat.&lt;br /&gt;
* Responsable pour 2011--2012: Xavier Provençal.&lt;br /&gt;
* Responsable pour 2012--2013: Xavier Provençal.&lt;br /&gt;
* Responsable pour 2013--2014: Xavier Provençal.&lt;br /&gt;
* Xavier Provençal (CM/TD/TP).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ce wiki est un complément de cours pour le cours « info-526 : graphes et algorithmes ». La participation au wiki est fortement encouragée. &lt;br /&gt;
&lt;br /&gt;
#Pour pouvoir modifier les pages, inscrivez-vous (lien en haut à droite) pour obtenir un login et mot de passe. (Choisissez un login du style &#039;&#039;PrenomNom&#039;&#039;...)&lt;br /&gt;
&lt;br /&gt;
#Je vous conseille d&#039;aller lire [http://meta.wikimedia.org/wiki/Aide:Contenu ce guide] pour vous familiariser avec les wikis.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TD et TP===&lt;br /&gt;
&lt;br /&gt;
TD1 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD1.pdf Première feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD2 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD2.pdf Deuxième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD3 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD3.pdf Troisième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD4 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD4.pdf Quatrième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD5 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD5.pdf Cinquième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD6 : [http://lama.univ-savoie.fr/~provencal/INFO526/INFO526-TD6.pdf Sixième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TP : [http://www.lama.univ-savoie.fr/~provencal/INFO632/TP/index.html Énoncé des TP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
===Compléments de cours / TD / TP===&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/parcoursLargeur.pdf Algorithme du parcours en largeur]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/parcoursProfondeur.pdf Algorithme du parcours en profondeur]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/algoMinimisation.pdf Quelques algorithmes de minimisation Prim, Dijkstra, Floyd-Warshall.]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Compléments===&lt;br /&gt;
[https://www.youtube.com/watch?v=ocYYUiCTqI8 Algorithme Ford-Fulkerson (avec capacités aux noeuds)]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Z5B_Ruz1woI A* (un algorithme pour super mario); excerpt]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=WOTOjbHBEXY Graphes et Algorithmes/ Ford-Fulkerson (Graphe Résiduel) 1/2 ]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=c57gOxo4hWo Graphes et Algorithmes/ Ford-Fulkerson (Graphe Résiduel) 2/2 ]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=o7d2wHagfEg Flot maximum en Réseau/ Algorithme Edmonds-Karp]&lt;br /&gt;
&lt;br /&gt;
===Ouvrage de référence===&lt;br /&gt;
&lt;br /&gt;
La partie « Algorithmes sur les graphes » du livre « &#039;&#039;Introduction à l&#039;algorithmique&#039;&#039; » de Cormen, Leiserson et Rivest est un bon complément. Il contient des exemples, applications et preuves de certaines propriétés des algorithmes étudiés en cours...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Documents remis en classe ===&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO632/parcours.pdf Parcours de graphes, en largeur et en profondeur.]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO632/algos_minimisation.pdf Algorithmes de minimisation ( Prim, Dijkstra, Floyd-Warshall ).]&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2013-2014) ==&lt;br /&gt;
&lt;br /&gt;
* (Cours 1): Graphes (vocubulaire et définitions de bases), degré et adjacence, isomorphie de graphes.&lt;br /&gt;
* (Cours 2): Chemin, chemin simple, cycle, composante (fortement) connexe. Arbre et forêt. Représentation de graphes ( matrice vs listes ).&lt;br /&gt;
* (TD 1): Représentation de graphes, propriétés élmentaires de graphes, modélisation par des graphes.&lt;br /&gt;
* (Cours 3): Représentation de graphes (suite et fin). Parcours de graphes, parcours en largeur, parcours en profondeur.&lt;br /&gt;
* (TD 2): Parcours en largeur : connexité, graphes bipartis, détection de cycles.&lt;br /&gt;
* (Cours 4): Graphes valués, arbre courvrant de poids minimum et algorithme de Prim.&lt;br /&gt;
* (TD 3): Parcours en profondeur : tri topologique, implémentation sans récursivité. Algorithme pour le calcul d&#039;un ACM : Prim vs Kruskal.&lt;br /&gt;
* (Cours 5): Calcul des chemins de longueur minimale. Algorithme de calcul de chemins de longueur minimale : Dijkstra et Floyd-Warshall.&lt;br /&gt;
* (TD 4): Chemins de longueur minimales.&lt;br /&gt;
* (Cours 6): Réseaux de transport et calcul du flot maximal. Algorithme de Ford-Fulkerson.&lt;br /&gt;
* (TD 5): Réseaux de tarnsport et flot maximal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2012-2013) ==&lt;br /&gt;
&lt;br /&gt;
* (Cours 1): 12 septembre. Graphes (vocubulaire et définitions de bases), degré et adjacence, isomorphie de graphes.&lt;br /&gt;
* (Cours 2): 18 septembre. Lemme des poignées de mains, représentations de graphes (listes VS matrice), composantes connexes.&lt;br /&gt;
* (TD 1): 19 septembre. Représentation de graphes, propriétés élémentaires de graphes, modélisation par des graphes.&lt;br /&gt;
* (Cours 3): 25 septembre. Arbres, forêts et arbres couvrants. Parcours en largeur.&lt;br /&gt;
* (TD 2): 26 septembre. Parcours en largeur : connexité, graphes bipartis, détection de cycles.&lt;br /&gt;
* (Cours 4): 2 octobre. Parcours en profondeur, graphes valués, arbres couvrants de poids minimal (I).&lt;br /&gt;
* (TD 3): 9 octobre. Parcours en profonder : détection de cycles, tri topologique. Algorithmes de Kruskal (I).&lt;br /&gt;
* (Cours 5): 16 octobre. Algorithmes de Prim, Dijkstra et Floyd-Warshall.&lt;br /&gt;
* (TP 1): 24 octobre. Familiarisation avec Sagemath et sa bibliothèque de graphes. Conversion de représentations, graphe de dépendances.&lt;br /&gt;
* (TD 4): Chemins de longueur minimales.&lt;br /&gt;
* (Cours 6): Réseaux de transport et calcul du flot maximal. Algorithme de Ford-Fulkerson.&lt;br /&gt;
* (TD 5): Réseaux de tarnsport et flot maximal.&lt;br /&gt;
* (TD 6): Misc. ( Recherche guidée, chemin eulériens et clôture transitive )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
-----------------&lt;br /&gt;
-----------------&lt;br /&gt;
&lt;br /&gt;
==Introduction, quelques dates==&lt;br /&gt;
&lt;br /&gt;
 Euler, problèmes des ponts de Königsberg (1736), notion de graphe eulérien&lt;br /&gt;
 &lt;br /&gt;
 def : un graphe est eulérien si ...&lt;br /&gt;
 &lt;br /&gt;
 def : un graphe est hamiltonien si ...&lt;br /&gt;
 &lt;br /&gt;
 problèmes de complexité&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Kuratowski 1930, notion de graphe planaire, contre exemple : K_5 et K_{3,3}&lt;br /&gt;
 &lt;br /&gt;
 exemple des maisons et des usines&lt;br /&gt;
 &lt;br /&gt;
 théorème de Kuratowski&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Appel et Haken 1976, théorème des 4 couleurs (preuve par ordinateur)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 problématiques de graphes dans les réseaux (Internet, télécommunications, ...)&lt;br /&gt;
&lt;br /&gt;
==Graphes et arbres, préliminaires==&lt;br /&gt;
&lt;br /&gt;
===Définitions===&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Vocabulaire :&#039;&#039;&#039;&lt;br /&gt;
:* sommets adjacents&lt;br /&gt;
:* arêtes adjacentes&lt;br /&gt;
:* arête incidente&lt;br /&gt;
:* degré d&#039;un sommets, degré entrant / degré sortant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arbres===&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Représentation des graphes===&lt;br /&gt;
&lt;br /&gt;
 listes d&#039;adjacence&lt;br /&gt;
 &lt;br /&gt;
 matrice d&#039;adjacence&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Question :&#039;&#039;&#039; quelle est la meilleure représentation ?&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Durandmo</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO632_:_algorithmes_de_graphes&amp;diff=6428</id>
		<title>INFO632 : algorithmes de graphes</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO632_:_algorithmes_de_graphes&amp;diff=6428"/>
		<updated>2014-05-13T13:31:09Z</updated>

		<summary type="html">&lt;p&gt;Durandmo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cours du semestre 6 de la licence STIC INFO.&lt;br /&gt;
&lt;br /&gt;
* Responsable pour 2010--2011: Pierre Hyvernat.&lt;br /&gt;
* Responsable pour 2011--2012: Xavier Provençal.&lt;br /&gt;
* Responsable pour 2012--2013: Xavier Provençal.&lt;br /&gt;
* Responsable pour 2013--2014: Xavier Provençal.&lt;br /&gt;
* Xavier Provençal (CM/TD/TP).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ce wiki est un complément de cours pour le cours « info-526 : graphes et algorithmes ». La participation au wiki est fortement encouragée. &lt;br /&gt;
&lt;br /&gt;
#Pour pouvoir modifier les pages, inscrivez-vous (lien en haut à droite) pour obtenir un login et mot de passe. (Choisissez un login du style &#039;&#039;PrenomNom&#039;&#039;...)&lt;br /&gt;
&lt;br /&gt;
#Je vous conseille d&#039;aller lire [http://meta.wikimedia.org/wiki/Aide:Contenu ce guide] pour vous familiariser avec les wikis.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TD et TP===&lt;br /&gt;
&lt;br /&gt;
TD1 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD1.pdf Première feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD2 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD2.pdf Deuxième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD3 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD3.pdf Troisième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD4 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD4.pdf Quatrième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD5 : [http://lama.univ-savoie.fr/~provencal/INFO632/TD5.pdf Cinquième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TD6 : [http://lama.univ-savoie.fr/~provencal/INFO526/INFO526-TD6.pdf Sixième feuille de TD]&lt;br /&gt;
&lt;br /&gt;
TP : [http://www.lama.univ-savoie.fr/~provencal/INFO632/TP/index.html Énoncé des TP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
===Compléments de cours / TD / TP===&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/parcoursLargeur.pdf Algorithme du parcours en largeur]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/parcoursProfondeur.pdf Algorithme du parcours en profondeur]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO526/algoMinimisation.pdf Quelques algorithmes de minimisation Prim, Dijkstra, Floyd-Warshall.]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Compléments===&lt;br /&gt;
[https://www.youtube.com/watch?v=ocYYUiCTqI8 Algorithme Ford-Fulkerson (avec capacités aux noeuds)]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Z5B_Ruz1woI A* (un algorithme pour super mario); excerpt]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=o7d2wHagfEg Flot maximum en Réseau/ Algorithme Edmonds-Karp]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ouvrage de référence===&lt;br /&gt;
&lt;br /&gt;
La partie « Algorithmes sur les graphes » du livre « &#039;&#039;Introduction à l&#039;algorithmique&#039;&#039; » de Cormen, Leiserson et Rivest est un bon complément. Il contient des exemples, applications et preuves de certaines propriétés des algorithmes étudiés en cours...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Documents remis en classe ===&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO632/parcours.pdf Parcours de graphes, en largeur et en profondeur.]&lt;br /&gt;
&lt;br /&gt;
[http://lama.univ-savoie.fr/~provencal/INFO632/algos_minimisation.pdf Algorithmes de minimisation ( Prim, Dijkstra, Floyd-Warshall ).]&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2013-2014) ==&lt;br /&gt;
&lt;br /&gt;
* (Cours 1): Graphes (vocubulaire et définitions de bases), degré et adjacence, isomorphie de graphes.&lt;br /&gt;
* (Cours 2): Chemin, chemin simple, cycle, composante (fortement) connexe. Arbre et forêt. Représentation de graphes ( matrice vs listes ).&lt;br /&gt;
* (TD 1): Représentation de graphes, propriétés élmentaires de graphes, modélisation par des graphes.&lt;br /&gt;
* (Cours 3): Représentation de graphes (suite et fin). Parcours de graphes, parcours en largeur, parcours en profondeur.&lt;br /&gt;
* (TD 2): Parcours en largeur : connexité, graphes bipartis, détection de cycles.&lt;br /&gt;
* (Cours 4): Graphes valués, arbre courvrant de poids minimum et algorithme de Prim.&lt;br /&gt;
* (TD 3): Parcours en profondeur : tri topologique, implémentation sans récursivité. Algorithme pour le calcul d&#039;un ACM : Prim vs Kruskal.&lt;br /&gt;
* (Cours 5): Calcul des chemins de longueur minimale. Algorithme de calcul de chemins de longueur minimale : Dijkstra et Floyd-Warshall.&lt;br /&gt;
* (TD 4): Chemins de longueur minimales.&lt;br /&gt;
* (Cours 6): Réseaux de transport et calcul du flot maximal. Algorithme de Ford-Fulkerson.&lt;br /&gt;
* (TD 5): Réseaux de tarnsport et flot maximal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2012-2013) ==&lt;br /&gt;
&lt;br /&gt;
* (Cours 1): 12 septembre. Graphes (vocubulaire et définitions de bases), degré et adjacence, isomorphie de graphes.&lt;br /&gt;
* (Cours 2): 18 septembre. Lemme des poignées de mains, représentations de graphes (listes VS matrice), composantes connexes.&lt;br /&gt;
* (TD 1): 19 septembre. Représentation de graphes, propriétés élémentaires de graphes, modélisation par des graphes.&lt;br /&gt;
* (Cours 3): 25 septembre. Arbres, forêts et arbres couvrants. Parcours en largeur.&lt;br /&gt;
* (TD 2): 26 septembre. Parcours en largeur : connexité, graphes bipartis, détection de cycles.&lt;br /&gt;
* (Cours 4): 2 octobre. Parcours en profondeur, graphes valués, arbres couvrants de poids minimal (I).&lt;br /&gt;
* (TD 3): 9 octobre. Parcours en profonder : détection de cycles, tri topologique. Algorithmes de Kruskal (I).&lt;br /&gt;
* (Cours 5): 16 octobre. Algorithmes de Prim, Dijkstra et Floyd-Warshall.&lt;br /&gt;
* (TP 1): 24 octobre. Familiarisation avec Sagemath et sa bibliothèque de graphes. Conversion de représentations, graphe de dépendances.&lt;br /&gt;
* (TD 4): Chemins de longueur minimales.&lt;br /&gt;
* (Cours 6): Réseaux de transport et calcul du flot maximal. Algorithme de Ford-Fulkerson.&lt;br /&gt;
* (TD 5): Réseaux de tarnsport et flot maximal.&lt;br /&gt;
* (TD 6): Misc. ( Recherche guidée, chemin eulériens et clôture transitive )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
-----------------&lt;br /&gt;
-----------------&lt;br /&gt;
&lt;br /&gt;
==Introduction, quelques dates==&lt;br /&gt;
&lt;br /&gt;
 Euler, problèmes des ponts de Königsberg (1736), notion de graphe eulérien&lt;br /&gt;
 &lt;br /&gt;
 def : un graphe est eulérien si ...&lt;br /&gt;
 &lt;br /&gt;
 def : un graphe est hamiltonien si ...&lt;br /&gt;
 &lt;br /&gt;
 problèmes de complexité&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Kuratowski 1930, notion de graphe planaire, contre exemple : K_5 et K_{3,3}&lt;br /&gt;
 &lt;br /&gt;
 exemple des maisons et des usines&lt;br /&gt;
 &lt;br /&gt;
 théorème de Kuratowski&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Appel et Haken 1976, théorème des 4 couleurs (preuve par ordinateur)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 problématiques de graphes dans les réseaux (Internet, télécommunications, ...)&lt;br /&gt;
&lt;br /&gt;
==Graphes et arbres, préliminaires==&lt;br /&gt;
&lt;br /&gt;
===Définitions===&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Vocabulaire :&#039;&#039;&#039;&lt;br /&gt;
:* sommets adjacents&lt;br /&gt;
:* arêtes adjacentes&lt;br /&gt;
:* arête incidente&lt;br /&gt;
:* degré d&#039;un sommets, degré entrant / degré sortant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arbres===&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Représentation des graphes===&lt;br /&gt;
&lt;br /&gt;
 listes d&#039;adjacence&lt;br /&gt;
 &lt;br /&gt;
 matrice d&#039;adjacence&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Question :&#039;&#039;&#039; quelle est la meilleure représentation ?&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Durandmo</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO622_:_Syst%C3%A8mes_de_synchronisation_et_Processus&amp;diff=6251</id>
		<title>INFO622 : Systèmes de synchronisation et Processus</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO622_:_Syst%C3%A8mes_de_synchronisation_et_Processus&amp;diff=6251"/>
		<updated>2014-02-21T15:34:14Z</updated>

		<summary type="html">&lt;p&gt;Durandmo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Responsable pour 2012--2013: [http://www.lama.univ-savoie.fr/~provencal Xavier Provençal]&lt;br /&gt;
* Xavier Provençal (CM/TD/TP) &amp;lt;!--, Pierre-Étienne Meunier (TP), Florian Hatat (TP) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ouvrage de référence ==&lt;br /&gt;
&lt;br /&gt;
# Andrew Tanenbaum, Systèmes d&#039;exploitation&lt;br /&gt;
&lt;br /&gt;
== Documentation remise en classes ==&lt;br /&gt;
 - Entêtes de fonctions POSIX (I) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_1.pdf fonctions_POSIX_1.pdf.]&lt;br /&gt;
 - Entêtes de fonctions POSIX (II) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_2.pdf fonctions_POSIX_2.pdf.]&lt;br /&gt;
 - Entêtes de fonctions POSIX (III) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_3.pdf fonctions_POSIX_3.pdf.]&lt;br /&gt;
 - Entêtes de fonctions POSIX (IV) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_4.pdf fonctions_POSIX_4.pdf.]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 - Entêtes de fonctions POSIX (V) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_5.pdf fonctions_POSIX_5.pdf.]&lt;br /&gt;
  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Systèmes de synchronisation et processus ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TP ==&lt;br /&gt;
&lt;br /&gt;
 - TP1 : &lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp1.pdf Énoncé du TP.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/TP/info622-tp1.tgz code fourni.]&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2013-2014) ==&lt;br /&gt;
&lt;br /&gt;
CM1 : Introduction à la multiprogrammation, condition de concurrence et section critique.&lt;br /&gt;
 - Banque virtuelle : exemple de condition de concurrence.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM1/banqueVirtuelle.c programme ``banqueVirtuelle.c``.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TD1 : &lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1.pdf Énoncé du TD1 (effectuée en salle machine).]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q1a.c Solution question 1a)]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q2a.c Solution question 2a)]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q2b.c Solution question 2b)]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q3a.c Solution question 3a)]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q3d.c Solution question 3d)]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q3e.c Solution question 3e)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CM2 : Processus et threads, utilisation des fonctions : fork, wait, waitpid, pthread_create, pthread_exit, pthread_join. Méthodes d&#039;exclusion mutuelle : désactivation des interruptions et attente active.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TD2 : &lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD2.pdf Énoncé du TD2.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2_q6.c Implémentation du code de la question 6.] (à compiler avec l&#039;option -lm )&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2_q6-sol.c Implémentation de la solution de la question 6.] (à compiler avec les options -lm -lpthread )&lt;br /&gt;
    Utilisez la commande &amp;quot;time&amp;quot; pour observer un gain de vitesse sur une machine à plusieurs coeurs. &lt;br /&gt;
    Pour cela il vous faudra de grands nombres premiers. En voici un : 1000000000000039723&lt;br /&gt;
&lt;br /&gt;
CM3 : Producteur/Consommateur et Sémaphores&lt;br /&gt;
 - Exemple d&#039;utilisation d&#039;un sémaphore non nommé par des threads (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM3/semThread.c programme ``semThread.c``.]&lt;br /&gt;
 - Exemple erroné d&#039;utilisation d&#039;un sémaphore non nommé par des processus apparenté ( fork() ) (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM3/semFork-bug.c programme ``semFork-bug.c``.]&lt;br /&gt;
&lt;br /&gt;
TD3 : &lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD3.pdf Énoncé du TD3.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td3_q2.c Implémentation du code de la question 2.] (à compiler avec les options -lpthread -lcurses )&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td3_q2-sol.c Implémentation de la solution de la question 2.] (à compiler avec les options -lpthread -lcurses )&lt;br /&gt;
&lt;br /&gt;
CM4 : Sémaphores nommés et mémoire partagée&lt;br /&gt;
 - Sémaphores nommés avec processus distincs (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/createur.c programme ``createur.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/destructeur.c programme ``destructeur.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/gestionnaire.c programme ``gestionnaire.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/parleur.c programme ``parleur.c``.]&lt;br /&gt;
 - Exemple simplissime de manipulation d&#039;un entier situé en mémoire partagée (compiler avec l&#039;option -lrt) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_1.c programme ``mp_1.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_2.c programme ``mp_2.c``.]&lt;br /&gt;
 - Exemple d&#039;utilisation d&#039;un sémaphore non-nommé situé en mémoire partagée (compiler avec l&#039;option -lrt) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_maStruct.h fichier entête ``mp_maStruct.h``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_lecture.c programme ``mp_lecture.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_affichage.c programme ``mp_affichage.c``.]&lt;br /&gt;
&lt;br /&gt;
TD4 : &lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD4.pdf Énoncé du TD4.]&lt;br /&gt;
&lt;br /&gt;
CM5 : Variables de condision et implémentation du problème &amp;quot;producteurs/consommateurs&amp;quot;.&lt;br /&gt;
 - Solution au devoir :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/sol_devoir.c Programme qui teste le comportement par défaut le la mémoire partagée lors d&#039;un fork. ]&lt;br /&gt;
 - Exemple d&#039;utilisation d&#039;une variable de condition.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/prodCons_naif.c Implémentation naïve (non-fonctionnelles) ]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/prodCons_sem.c Implémentation avec des sémaphores ]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/prodCons_cnd.c Implémentation avec des variables de conditions ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CM4 : Sémaphores POSIX et mémoire partagée&lt;br /&gt;
 - Sémaphores nommés avec processus distincs (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/createur.c programme ``createur.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/destructeur.c programme ``destructeur.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/gestionnaire.c programme ``gestionnaire.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/parleur.c programme ``parleur.c``.]&lt;br /&gt;
 - Mémoire partagée (compiler avec l&#039;option -lrt) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_maStruct.h fichier entête ``mp_maStruct.h``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_lecture.c programme ``mp_lecture.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_affichage.c programme ``mp_affichage.c``.]&lt;br /&gt;
&lt;br /&gt;
CM5 : Variables de condition et barrières de synchronisation&lt;br /&gt;
 - Exemple producteur/consommateur implémenté avec des sémaphores.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/prodCons_sem.c Programme ``prodCons_sem.c``.]&lt;br /&gt;
 - Exemple producteur/consommateur implémenté avec des variables de conditions et un mutex.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/prodCons_cnd.c Programme ``prodCons_cnd.c``.]&lt;br /&gt;
 - Exemple d&#039;utilisation d&#039;une barrière de synchronisation.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/barriere.c Programme ``barriere.c``.]&lt;br /&gt;
&lt;br /&gt;
CM6 : Tubes&lt;br /&gt;
 - Exemple d&#039;utilisation d&#039;un tube non-nommé entre processus père et fils.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM6/tubeFork.c Programme ``tubeFork.c``.]&lt;br /&gt;
 - Exemnple d&#039;utilisation d&#039;un fifo entre deux processus non-apparentés.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM6/fifoEcriture.c Programme ``fifoEcriture.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM6/fifoLecture.c Programme ``fifoLecture.c``.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CM7 : Interblocages et famine&lt;br /&gt;
 - Exemple de programme créant un interblocage.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM7/banqueVirtuelle2.c Programme ``banqueVirtuelle2.c``.]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD2.pdf TD2.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/rsa.c programme ``rsa.c``.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/exCleRSA.txt exemples de clés RSA valides au format ( n, d, e ) ``exCleRSA.txt``.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2-q1-solution.c Solution question 1.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2-q2-solution.c Solution question 2.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2-q3-solution.c Solution question 3.]&lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD3/poste.c TD3 - Programme ``poste.c``]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD3/makefile Fichier ``makefile`` pour compiler ``poste.c``]&lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD4.pdf TD4.]&lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD5.pdf TD5.]&lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD6.pdf TD6.]&lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD7.pdf TD7.]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TP :&lt;br /&gt;
 - TP1 : Tri rapide en parallèle&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp1.pdf Énoncé du TP1.]&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/info622-tp1.tgz Archive contenant les sources nécessaires au TP1 ( format tgz ).]&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/info622-tp1.zip Archive contenant les sources nécessaires au TP1 ( format zip ).]&lt;br /&gt;
 - TP2 : Tubes&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp2.tar Archive contenant les sources nécessaires au TP2.]&lt;br /&gt;
 - TP3 : Simulation de physique&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp3.pdf Énonpcé du TP3.]&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp3_code.tar Sources nécessaires à la réalisation du TP3.]&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp3_donnees.tar Données pour exécuter le programme du TP3.]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CM4 : Sémaphores POSIX et mémoire partagée&lt;br /&gt;
 - Entêtes de fonctions POSIX (III) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/fonctions_POSIX_III.pdf fonctions_POSIX_3.pdf.]&lt;br /&gt;
 - Sémaphores non nommés avec threads (compiler avcec l&#039;i:&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/semThread.c programme ``semThread.c``.]&lt;br /&gt;
 - Sémaphores nommés avec processus distincs (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/createur.c programme ``createur.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/destructeur.c programme ``destructeur.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/gestionnaire.c programme ``gestionnaire.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/parleur.c programme ``parleur.c``.]&lt;br /&gt;
 - Mémoire partagée (compiler avec l&#039;option -lrt) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_lecture.c programme ``mp_lecture.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_affichage.c programme ``mp_affichage.c``.]&lt;br /&gt;
&lt;br /&gt;
CM5 : Interblocages&lt;br /&gt;
 - Banque virtuelle 2 : exemple d&#039;interblocage (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/banqueVirtuelle2.c programme ``banqueVirtuelle.c``.]&lt;br /&gt;
&lt;br /&gt;
CM6 : Variables de condition et barrières de synchronisation&lt;br /&gt;
 - Implémentation du problème producteur/consommateur avec variables de condition (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM6/prodCons_cnd.c programme ``prodCons_cnd.c``.]&lt;br /&gt;
 - Exemple simple d&#039;utilisation d&#039;une barrière de synchronisation (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM6/barriere.c programme ``barriere.c``.]&lt;br /&gt;
&lt;br /&gt;
CM 7 : Tubes (pipe et fifo), fonction select&lt;br /&gt;
 - Utilisation typique d&#039;un tube non-nommé (pipe) par un père et son fils :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM7/tubeFork.c programme ``tubeFork.c``.]&lt;br /&gt;
 - Exemple de programmes communicant à l&#039;aide d&#039;une tube nommé (fifo), créez d&#039;abord la fifo avec la commande ``mkfifo`` :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM7/fifoLecture.c programme ``fifoLecture.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM7/fifoEcriture.c programme ``fifoEcriture.c``.]&lt;br /&gt;
 - Exemple d&#039;utilisation de la fonction select pour surveiller en même temps les tubres &amp;quot;fifo1&amp;quot; et &amp;quot;fifo2&amp;quot; ::w&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM7/fifo2Lecture.c programme ``fifo2Lecture.c``.]&lt;br /&gt;
&lt;br /&gt;
TD : &lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1.pdf Première feuille de TD.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD2.pdf Deuxième feuille de TD.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD3.pdf Troisième feuille de TD.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD4.pdf Quatrième feuille de TD.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD5.pdf Cinquième feuille de TD.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD6.pdf Sixième feuille de TD.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD7.pdf Septième feuille de TD.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exercices personnels&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/exo/devoir1.pdf Exercice personnel #1.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/exo/sol_devoir1.c Une solution de l&#039;exercice personnel #1.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/exo/devoir2.pdf Exercice personnel #2.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/exo/sol_devoir2.c Une solution de l&#039;exercice personnel #2.]&lt;br /&gt;
&lt;br /&gt;
Entêtes de fonctions&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_1.pdf Fork et création de threads.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_2.pdf Sémaphores et mutex.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_3.pdf Mémoire partagée.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_4.pdf Variables de condition et barrières de synchronisation.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_5.pdf Tube.]&lt;br /&gt;
&lt;br /&gt;
TP1 : Tri rapide en parallel&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/tp1.pdf Énoncé du TP.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/genAleat.c Programme pour la génération de suite de nombres.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/testTri.sh script permettant de comparer votre tri à la commande sort.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/triRapide.h Entêtes de fonctions relatives au tri rapide.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/triRapide.c Version séquentielle du tri rapide, à modifier.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/tri.c Lis des nombres sur l&#039;entrée standard, appele triRapide et affiche le résultat. ]&lt;br /&gt;
&lt;br /&gt;
TP2 : Implémentation de tubes simplifiés&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP2/info622-tp2.c Fichier source principal et énoncé du TP.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP2/monTube.h Entêtes de fonctions relatives aux tube monTube.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP2/monTube.c Implémentation des fonctions relatives aux tubes monTube.]&lt;br /&gt;
&lt;br /&gt;
TP3 : Pizzéria&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/tp3.pdf Énoncé du TP.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/clients.o Fichier objet pour recompiler le programme &#039;clients&#039;.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/synchroPizza.h Entêtes des fonctions utilisées pour préparer les pizzas.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/synchroPizza.c Implémentation des fonctions utilisées pour préparer les pizzas.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/pizzeria.c Source du programme implémentant une pizzéria virtuelle (à compléter).]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/makefile Makefile (optionnel).]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Durandmo</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO622_:_Syst%C3%A8mes_de_synchronisation_et_Processus&amp;diff=6246</id>
		<title>INFO622 : Systèmes de synchronisation et Processus</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=INFO622_:_Syst%C3%A8mes_de_synchronisation_et_Processus&amp;diff=6246"/>
		<updated>2014-02-19T12:21:04Z</updated>

		<summary type="html">&lt;p&gt;Durandmo : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Responsable pour 2012--2013: [http://www.lama.univ-savoie.fr/~provencal Xavier Provençal]&lt;br /&gt;
* Xavier Provençal (CM/TD/TP) &amp;lt;!--, Pierre-Étienne Meunier (TP), Florian Hatat (TP) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ouvrage de référence ==&lt;br /&gt;
&lt;br /&gt;
# Andrew Tanenbaum, Systèmes d&#039;exploitation&lt;br /&gt;
&lt;br /&gt;
== Documentation remise en classes ==&lt;br /&gt;
 - Entêtes de fonctions POSIX (I) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_1.pdf fonctions_POSIX_1.pdf.]&lt;br /&gt;
 - Entêtes de fonctions POSIX (II) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_2.pdf fonctions_POSIX_2.pdf.]&lt;br /&gt;
 - Entêtes de fonctions POSIX (III) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_3.pdf fonctions_POSIX_3.pdf.]&lt;br /&gt;
 - Entêtes de fonctions POSIX (IV) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_4.pdf fonctions_POSIX_4.pdf.]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 - Entêtes de fonctions POSIX (V) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_5.pdf fonctions_POSIX_5.pdf.]&lt;br /&gt;
  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Systèmes de synchronisation et processus ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Multiprogrammation :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exécuter plusieurs programmes simultanément sur le même CPU.&lt;br /&gt;
&lt;br /&gt;
On divise l’écriture des programmes dans 3 espace mémoires différents donc cela permet de faire&lt;br /&gt;
&lt;br /&gt;
marcher le CPU en non-stop les programme sont exécuter en simultané avec le CPU.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processus : ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un programme en cours d’exécution. Deux composantes d’un processus :&lt;br /&gt;
&lt;br /&gt;
* Espace d’adressage. (mémoire) (code, donnée, piles des appels, etc...)&lt;br /&gt;
* Des registres.&lt;br /&gt;
&lt;br /&gt;
Préemption :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Action d’interrompre un processus avec l’intention d’un reprendre l’exécution plus tard.&lt;br /&gt;
&lt;br /&gt;
Note : la coopération du processus n’est pas requise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Principales causes de préemption :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* A la demande du processus. (ex : sleep)&lt;br /&gt;
* Lors d’un appel système bloquant. (ex : utilisation d’un périphérique)&lt;br /&gt;
* Déclenchement d’une interruption. (signal envoyé au CPU ex : horloge, périph, etc...)&lt;br /&gt;
&amp;lt;br/&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Observation :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Solde = solde + 1000 ;&lt;br /&gt;
Solde = solde + (Solde * 0.01/365.0) ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Copie Solde dans R2&lt;br /&gt;
# « Arithmétique » sur des registres&lt;br /&gt;
# Copier R2 dans Solde&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Les deux processus partage une variable, si il se mette pas d’accord le solde est peut-être pas mis a&lt;br /&gt;
&lt;br /&gt;
jours au bon moment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On passe d’un solde de 2000 à un solde à 1000.90 ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Condition de concurrence :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Situation ou au moins deux processus écrivent des données partagées et où le résultat final dépend&lt;br /&gt;
&lt;br /&gt;
de l’ordre d’exécution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ex : spool d’impression :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Prochain_libre = 10&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Lire prochain_libre&lt;br /&gt;
# Ecrire le doc dans la case « prochain_libre »&lt;br /&gt;
# Incrémenter prochain_libre&lt;br /&gt;
&lt;br /&gt;
Section critique :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Partie du code dans laquelle on doit jamais avoir 2 processus en même temps.&lt;br /&gt;
&lt;br /&gt;
Deux objectifs :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Identifier les sections critiques&lt;br /&gt;
* Assurer l’exclusion mutuelle&lt;br /&gt;
&lt;br /&gt;
Les quatre règles d’or de la gestion des sert critiques :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Deux processus ne doivent jamais se trouver simultanément en section critique.&lt;br /&gt;
# On ne peut faire aucune supposition quant à la vitesse ou au nombre de processus en œuvre.&lt;br /&gt;
# Aucun processus s’exécutant hors de sa section critique ne doit bloquer un autre processus.&lt;br /&gt;
# Aucun processus ne doit attendre indéfiniment longtemps avant d’entrer en section critique.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TP ==&lt;br /&gt;
&lt;br /&gt;
 - TP1 : &lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp1.pdf Énoncé du TP.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/TP/info622-tp1.tgz code fourni.]&lt;br /&gt;
&lt;br /&gt;
== Déroulement (2013-2014) ==&lt;br /&gt;
&lt;br /&gt;
CM1 : Introduction à la multiprogrammation, condition de concurrence et section critique.&lt;br /&gt;
 - Banque virtuelle : exemple de condition de concurrence.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM1/banqueVirtuelle.c programme ``banqueVirtuelle.c``.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TD1 : &lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1.pdf Énoncé du TD1 (effectuée en salle machine).]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q1a.c Solution question 1a)]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q2a.c Solution question 2a)]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q2b.c Solution question 2b)]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q3a.c Solution question 3a)]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q3d.c Solution question 3d)]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1-sol/q3e.c Solution question 3e)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CM2 : Processus et threads, utilisation des fonctions : fork, wait, waitpid, pthread_create, pthread_exit, pthread_join. Méthodes d&#039;exclusion mutuelle : désactivation des interruptions et attente active.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TD2 : &lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD2.pdf Énoncé du TD2.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2_q6.c Implémentation du code de la question 6.] (à compiler avec l&#039;option -lm )&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2_q6-sol.c Implémentation de la solution de la question 6.] (à compiler avec les options -lm -lpthread )&lt;br /&gt;
    Utilisez la commande &amp;quot;time&amp;quot; pour observer un gain de vitesse sur une machine à plusieurs coeurs. &lt;br /&gt;
    Pour cela il vous faudra de grands nombres premiers. En voici un : 1000000000000039723&lt;br /&gt;
&lt;br /&gt;
CM3 : Producteur/Consommateur et Sémaphores&lt;br /&gt;
 - Exemple d&#039;utilisation d&#039;un sémaphore non nommé par des threads (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM3/semThread.c programme ``semThread.c``.]&lt;br /&gt;
 - Exemple erroné d&#039;utilisation d&#039;un sémaphore non nommé par des processus apparenté ( fork() ) (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM3/semFork-bug.c programme ``semFork-bug.c``.]&lt;br /&gt;
&lt;br /&gt;
TD3 : &lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD3.pdf Énoncé du TD3.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td3_q2.c Implémentation du code de la question 2.] (à compiler avec les options -lpthread -lcurses )&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td3_q2-sol.c Implémentation de la solution de la question 2.] (à compiler avec les options -lpthread -lcurses )&lt;br /&gt;
&lt;br /&gt;
CM4 : Sémaphores nommés et mémoire partagée&lt;br /&gt;
 - Sémaphores nommés avec processus distincs (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/createur.c programme ``createur.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/destructeur.c programme ``destructeur.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/gestionnaire.c programme ``gestionnaire.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/parleur.c programme ``parleur.c``.]&lt;br /&gt;
 - Exemple simplissime de manipulation d&#039;un entier situé en mémoire partagée (compiler avec l&#039;option -lrt) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_1.c programme ``mp_1.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_2.c programme ``mp_2.c``.]&lt;br /&gt;
 - Exemple d&#039;utilisation d&#039;un sémaphore non-nommé situé en mémoire partagée (compiler avec l&#039;option -lrt) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_maStruct.h fichier entête ``mp_maStruct.h``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_lecture.c programme ``mp_lecture.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_affichage.c programme ``mp_affichage.c``.]&lt;br /&gt;
&lt;br /&gt;
TD4 : &lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD4.pdf Énoncé du TD4.]&lt;br /&gt;
&lt;br /&gt;
CM5 : Variables de condision et implémentation du problème &amp;quot;producteurs/consommateurs&amp;quot;.&lt;br /&gt;
 - Solution au devoir :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/sol_devoir.c Programme qui teste le comportement par défaut le la mémoire partagée lors d&#039;un fork. ]&lt;br /&gt;
 - Exemple d&#039;utilisation d&#039;une variable de condition.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/prodCons_naif.c Implémentation naïve (non-fonctionnelles) ]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/prodCons_naif.c Implémentation avec des sémaphores ]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/prodCons_naif.c Implémentation avec des variables de conditions ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CM4 : Sémaphores POSIX et mémoire partagée&lt;br /&gt;
 - Sémaphores nommés avec processus distincs (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/createur.c programme ``createur.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/destructeur.c programme ``destructeur.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/gestionnaire.c programme ``gestionnaire.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/parleur.c programme ``parleur.c``.]&lt;br /&gt;
 - Mémoire partagée (compiler avec l&#039;option -lrt) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_maStruct.h fichier entête ``mp_maStruct.h``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_lecture.c programme ``mp_lecture.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_affichage.c programme ``mp_affichage.c``.]&lt;br /&gt;
&lt;br /&gt;
CM5 : Variables de condition et barrières de synchronisation&lt;br /&gt;
 - Exemple producteur/consommateur implémenté avec des sémaphores.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/prodCons_sem.c Programme ``prodCons_sem.c``.]&lt;br /&gt;
 - Exemple producteur/consommateur implémenté avec des variables de conditions et un mutex.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/prodCons_cnd.c Programme ``prodCons_cnd.c``.]&lt;br /&gt;
 - Exemple d&#039;utilisation d&#039;une barrière de synchronisation.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/barriere.c Programme ``barriere.c``.]&lt;br /&gt;
&lt;br /&gt;
CM6 : Tubes&lt;br /&gt;
 - Exemple d&#039;utilisation d&#039;un tube non-nommé entre processus père et fils.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM6/tubeFork.c Programme ``tubeFork.c``.]&lt;br /&gt;
 - Exemnple d&#039;utilisation d&#039;un fifo entre deux processus non-apparentés.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM6/fifoEcriture.c Programme ``fifoEcriture.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM6/fifoLecture.c Programme ``fifoLecture.c``.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CM7 : Interblocages et famine&lt;br /&gt;
 - Exemple de programme créant un interblocage.&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM7/banqueVirtuelle2.c Programme ``banqueVirtuelle2.c``.]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD2.pdf TD2.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/rsa.c programme ``rsa.c``.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/exCleRSA.txt exemples de clés RSA valides au format ( n, d, e ) ``exCleRSA.txt``.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2-q1-solution.c Solution question 1.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2-q2-solution.c Solution question 2.]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/td2-q3-solution.c Solution question 3.]&lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD3/poste.c TD3 - Programme ``poste.c``]&lt;br /&gt;
    - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD3/makefile Fichier ``makefile`` pour compiler ``poste.c``]&lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD4.pdf TD4.]&lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD5.pdf TD5.]&lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD6.pdf TD6.]&lt;br /&gt;
 - [http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD7.pdf TD7.]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TP :&lt;br /&gt;
 - TP1 : Tri rapide en parallèle&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp1.pdf Énoncé du TP1.]&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/info622-tp1.tgz Archive contenant les sources nécessaires au TP1 ( format tgz ).]&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/info622-tp1.zip Archive contenant les sources nécessaires au TP1 ( format zip ).]&lt;br /&gt;
 - TP2 : Tubes&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp2.tar Archive contenant les sources nécessaires au TP2.]&lt;br /&gt;
 - TP3 : Simulation de physique&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp3.pdf Énonpcé du TP3.]&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp3_code.tar Sources nécessaires à la réalisation du TP3.]&lt;br /&gt;
   - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP/tp3_donnees.tar Données pour exécuter le programme du TP3.]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CM4 : Sémaphores POSIX et mémoire partagée&lt;br /&gt;
 - Entêtes de fonctions POSIX (III) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/fonctions_POSIX_III.pdf fonctions_POSIX_3.pdf.]&lt;br /&gt;
 - Sémaphores non nommés avec threads (compiler avcec l&#039;i:&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/semThread.c programme ``semThread.c``.]&lt;br /&gt;
 - Sémaphores nommés avec processus distincs (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/createur.c programme ``createur.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/destructeur.c programme ``destructeur.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/gestionnaire.c programme ``gestionnaire.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/parleur.c programme ``parleur.c``.]&lt;br /&gt;
 - Mémoire partagée (compiler avec l&#039;option -lrt) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_lecture.c programme ``mp_lecture.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM4/mp_affichage.c programme ``mp_affichage.c``.]&lt;br /&gt;
&lt;br /&gt;
CM5 : Interblocages&lt;br /&gt;
 - Banque virtuelle 2 : exemple d&#039;interblocage (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM5/banqueVirtuelle2.c programme ``banqueVirtuelle.c``.]&lt;br /&gt;
&lt;br /&gt;
CM6 : Variables de condition et barrières de synchronisation&lt;br /&gt;
 - Implémentation du problème producteur/consommateur avec variables de condition (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM6/prodCons_cnd.c programme ``prodCons_cnd.c``.]&lt;br /&gt;
 - Exemple simple d&#039;utilisation d&#039;une barrière de synchronisation (compiler avec l&#039;option -lpthread) :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM6/barriere.c programme ``barriere.c``.]&lt;br /&gt;
&lt;br /&gt;
CM 7 : Tubes (pipe et fifo), fonction select&lt;br /&gt;
 - Utilisation typique d&#039;un tube non-nommé (pipe) par un père et son fils :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM7/tubeFork.c programme ``tubeFork.c``.]&lt;br /&gt;
 - Exemple de programmes communicant à l&#039;aide d&#039;une tube nommé (fifo), créez d&#039;abord la fifo avec la commande ``mkfifo`` :&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM7/fifoLecture.c programme ``fifoLecture.c``.]&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM7/fifoEcriture.c programme ``fifoEcriture.c``.]&lt;br /&gt;
 - Exemple d&#039;utilisation de la fonction select pour surveiller en même temps les tubres &amp;quot;fifo1&amp;quot; et &amp;quot;fifo2&amp;quot; ::w&lt;br /&gt;
    [http://lama.univ-savoie.fr/~provencal/INFO622/CM7/fifo2Lecture.c programme ``fifo2Lecture.c``.]&lt;br /&gt;
&lt;br /&gt;
TD : &lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD1.pdf Première feuille de TD.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD2.pdf Deuxième feuille de TD.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD3.pdf Troisième feuille de TD.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD4.pdf Quatrième feuille de TD.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD5.pdf Cinquième feuille de TD.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD6.pdf Sixième feuille de TD.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TD/TD7.pdf Septième feuille de TD.]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exercices personnels&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/exo/devoir1.pdf Exercice personnel #1.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/exo/sol_devoir1.c Une solution de l&#039;exercice personnel #1.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/exo/devoir2.pdf Exercice personnel #2.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/exo/sol_devoir2.c Une solution de l&#039;exercice personnel #2.]&lt;br /&gt;
&lt;br /&gt;
Entêtes de fonctions&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_1.pdf Fork et création de threads.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_2.pdf Sémaphores et mutex.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_3.pdf Mémoire partagée.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_4.pdf Variables de condition et barrières de synchronisation.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/fct_posix/fonctions_POSIX_5.pdf Tube.]&lt;br /&gt;
&lt;br /&gt;
TP1 : Tri rapide en parallel&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/tp1.pdf Énoncé du TP.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/genAleat.c Programme pour la génération de suite de nombres.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/testTri.sh script permettant de comparer votre tri à la commande sort.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/triRapide.h Entêtes de fonctions relatives au tri rapide.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/triRapide.c Version séquentielle du tri rapide, à modifier.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP1/tri.c Lis des nombres sur l&#039;entrée standard, appele triRapide et affiche le résultat. ]&lt;br /&gt;
&lt;br /&gt;
TP2 : Implémentation de tubes simplifiés&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP2/info622-tp2.c Fichier source principal et énoncé du TP.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP2/monTube.h Entêtes de fonctions relatives aux tube monTube.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP2/monTube.c Implémentation des fonctions relatives aux tubes monTube.]&lt;br /&gt;
&lt;br /&gt;
TP3 : Pizzéria&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/tp3.pdf Énoncé du TP.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/clients.o Fichier objet pour recompiler le programme &#039;clients&#039;.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/synchroPizza.h Entêtes des fonctions utilisées pour préparer les pizzas.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/synchroPizza.c Implémentation des fonctions utilisées pour préparer les pizzas.]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/pizzeria.c Source du programme implémentant une pizzéria virtuelle (à compléter).]&lt;br /&gt;
 - [ http://lama.univ-savoie.fr/~provencal/INFO622/TP3/makefile Makefile (optionnel).]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Durandmo</name></author>
	</entry>
</feed>