From 370c4ed20d9ff501db5d4878d0040cc205dd1a39 Mon Sep 17 00:00:00 2001
From: E221936K <nils.moreau--thomas@etu.univ-nantes.fr>
Date: Fri, 26 May 2023 16:20:52 +0200
Subject: [PATCH] fr

---
 BUT1/S2/DevApp/dev.ihm.td6                    |   1 +
 .../Graphes/TP_Etudiant/TP-Graphes_3-4.ipynb  | 425 +++++-------------
 BUT1/S2/QDev/TD2                              |   1 +
 BUT1/S2/QDev/TD3                              |   1 +
 BUT1/S2/QDev/td3-2                            |   1 +
 BUT1/S2/QualiteDev/.idea/workspace.xml        | 204 ---------
 BUT1/S2/SAE_BD/sae_tout_joli_tout_beau.sql    | 298 ++++++++++++
 BUT1/S2/SAE_Gestion/ventolapp                 |   1 +
 8 files changed, 404 insertions(+), 528 deletions(-)
 create mode 160000 BUT1/S2/DevApp/dev.ihm.td6
 create mode 160000 BUT1/S2/QDev/TD2
 create mode 160000 BUT1/S2/QDev/TD3
 create mode 160000 BUT1/S2/QDev/td3-2
 delete mode 100644 BUT1/S2/QualiteDev/.idea/workspace.xml
 create mode 100644 BUT1/S2/SAE_BD/sae_tout_joli_tout_beau.sql
 create mode 160000 BUT1/S2/SAE_Gestion/ventolapp

diff --git a/BUT1/S2/DevApp/dev.ihm.td6 b/BUT1/S2/DevApp/dev.ihm.td6
new file mode 160000
index 00000000..903272ed
--- /dev/null
+++ b/BUT1/S2/DevApp/dev.ihm.td6
@@ -0,0 +1 @@
+Subproject commit 903272ed313de5da61073f67afa5cf4af9f0989c
diff --git a/BUT1/S2/Graphes/TP_Etudiant/TP-Graphes_3-4.ipynb b/BUT1/S2/Graphes/TP_Etudiant/TP-Graphes_3-4.ipynb
index 431b04be..b66a6e0d 100644
--- a/BUT1/S2/Graphes/TP_Etudiant/TP-Graphes_3-4.ipynb
+++ b/BUT1/S2/Graphes/TP_Etudiant/TP-Graphes_3-4.ipynb
@@ -23,7 +23,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 1,
    "metadata": {},
    "outputs": [
     {
@@ -40,7 +40,7 @@
        "('0.20.1', (2, 43, 0))"
       ]
      },
-     "execution_count": 2,
+     "execution_count": 1,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -61,7 +61,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 2,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -93,7 +93,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -112,7 +112,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [
     {
@@ -137,7 +137,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -155,7 +155,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [
     {
@@ -224,10 +224,10 @@
        "</svg>\n"
       ],
       "text/plain": [
-       "<graphviz.graphs.Digraph at 0x7f9985743880>"
+       "<graphviz.graphs.Digraph at 0x7fd088148e20>"
       ]
      },
-     "execution_count": 7,
+     "execution_count": 6,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -246,7 +246,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -269,7 +269,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
@@ -386,10 +386,10 @@
        "</svg>\n"
       ],
       "text/plain": [
-       "<graphviz.graphs.Digraph at 0x7f998573cc10>"
+       "<graphviz.graphs.Digraph at 0x7fd0892dc5b0>"
       ]
      },
-     "execution_count": 9,
+     "execution_count": 8,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -420,7 +420,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 9,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -444,7 +444,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 10,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -463,7 +463,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 11,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -481,7 +481,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 12,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -499,7 +499,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 14,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -517,7 +517,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 14,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -539,7 +539,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 15,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -561,7 +561,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 16,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -585,7 +585,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 18,
+   "execution_count": 17,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -599,7 +599,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 19,
+   "execution_count": 18,
    "metadata": {},
    "outputs": [
     {
@@ -629,7 +629,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 20,
+   "execution_count": 19,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -652,7 +652,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 21,
+   "execution_count": 20,
    "metadata": {},
    "outputs": [
     {
@@ -702,7 +702,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 22,
+   "execution_count": 21,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -725,7 +725,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 23,
+   "execution_count": 22,
    "metadata": {},
    "outputs": [
     {
@@ -784,7 +784,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 24,
+   "execution_count": 23,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -809,7 +809,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 25,
+   "execution_count": 24,
    "metadata": {},
    "outputs": [
     {
@@ -859,7 +859,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 26,
+   "execution_count": 25,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -873,7 +873,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 27,
+   "execution_count": 26,
    "metadata": {},
    "outputs": [
     {
@@ -907,7 +907,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 28,
+   "execution_count": 27,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -917,7 +917,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 29,
+   "execution_count": 28,
    "metadata": {},
    "outputs": [
     {
@@ -947,7 +947,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 30,
+   "execution_count": 33,
    "metadata": {},
    "outputs": [
     {
@@ -959,16 +959,22 @@
        "<!-- Generated by graphviz version 2.43.0 (0)\n",
        " -->\n",
        "<!-- Title: %3 Pages: 1 -->\n",
-       "<svg width=\"126pt\" height=\"188pt\"\n",
-       " viewBox=\"0.00 0.00 126.00 188.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
+       "<svg width=\"121pt\" height=\"188pt\"\n",
+       " viewBox=\"0.00 0.00 121.00 188.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
        "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 184)\">\n",
        "<title>%3</title>\n",
-       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-184 122,-184 122,4 -4,4\"/>\n",
+       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-184 117,-184 117,4 -4,4\"/>\n",
        "<!-- 0 -->\n",
        "<g id=\"node1\" class=\"node\">\n",
        "<title>0</title>\n",
-       "<ellipse fill=\"none\" stroke=\"black\" cx=\"59\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
-       "<text text-anchor=\"middle\" x=\"59\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
+       "<ellipse fill=\"none\" stroke=\"black\" cx=\"68\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
+       "<text text-anchor=\"middle\" x=\"68\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
+       "</g>\n",
+       "<!-- 0&#45;&gt;0 -->\n",
+       "<g id=\"edge1\" class=\"edge\">\n",
+       "<title>0&#45;&gt;0</title>\n",
+       "<path fill=\"none\" stroke=\"black\" d=\"M87.9,-174.43C100.69,-177.68 113,-173.53 113,-162 113,-153.62 106.5,-149.14 98.04,-148.56\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"97.5,-145.1 87.9,-149.57 98.19,-152.07 97.5,-145.1\"/>\n",
        "</g>\n",
        "<!-- 1 -->\n",
        "<g id=\"node2\" class=\"node\">\n",
@@ -977,49 +983,67 @@
        "<text text-anchor=\"middle\" x=\"27\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
        "</g>\n",
        "<!-- 0&#45;&gt;1 -->\n",
-       "<g id=\"edge1\" class=\"edge\">\n",
+       "<g id=\"edge2\" class=\"edge\">\n",
        "<title>0&#45;&gt;1</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M46.38,-145.81C41.61,-137.57 36.55,-127.15 32.59,-117.62\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"35.8,-116.2 28.93,-108.13 29.27,-118.72 35.8,-116.2\"/>\n",
+       "<path fill=\"none\" stroke=\"black\" d=\"M53.91,-146.5C47.84,-138 41.09,-127.01 35.71,-117.06\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"38.72,-115.26 31.05,-107.95 32.49,-118.45 38.72,-115.26\"/>\n",
        "</g>\n",
        "<!-- 2 -->\n",
        "<g id=\"node3\" class=\"node\">\n",
        "<title>2</title>\n",
-       "<ellipse fill=\"none\" stroke=\"black\" cx=\"91\" cy=\"-18\" rx=\"27\" ry=\"18\"/>\n",
-       "<text text-anchor=\"middle\" x=\"91\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
+       "<ellipse fill=\"none\" stroke=\"black\" cx=\"68\" cy=\"-18\" rx=\"27\" ry=\"18\"/>\n",
+       "<text text-anchor=\"middle\" x=\"68\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
        "</g>\n",
        "<!-- 0&#45;&gt;2 -->\n",
-       "<g id=\"edge2\" class=\"edge\">\n",
+       "<g id=\"edge3\" class=\"edge\">\n",
        "<title>0&#45;&gt;2</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M58.28,-143.87C61.22,-119.3 71.2,-73.85 79.75,-45.08\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"83.17,-45.9 82.83,-35.31 76.49,-43.8 83.17,-45.9\"/>\n",
+       "<path fill=\"none\" stroke=\"black\" d=\"M65.45,-144.01C67.19,-133.7 70.52,-120.23 72,-108 73.92,-92.12 73.92,-87.88 72,-72 70.96,-63.4 69.01,-54.19 67.33,-45.89\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"70.76,-45.16 65.45,-35.99 63.88,-46.47 70.76,-45.16\"/>\n",
        "</g>\n",
        "<!-- 1&#45;&gt;0 -->\n",
-       "<g id=\"edge3\" class=\"edge\">\n",
+       "<g id=\"edge4\" class=\"edge\">\n",
        "<title>1&#45;&gt;0</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M39.63,-106.2C44.37,-114.4 49.4,-124.75 53.35,-134.24\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"50.13,-135.63 57.01,-143.7 56.66,-133.11 50.13,-135.63\"/>\n",
+       "<path fill=\"none\" stroke=\"black\" d=\"M41.03,-105.42C47.11,-113.93 53.89,-124.94 59.28,-134.92\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"56.28,-136.75 63.95,-144.05 62.51,-133.56 56.28,-136.75\"/>\n",
+       "</g>\n",
+       "<!-- 1&#45;&gt;1 -->\n",
+       "<g id=\"edge5\" class=\"edge\">\n",
+       "<title>1&#45;&gt;1</title>\n",
+       "<path fill=\"none\" stroke=\"black\" d=\"M46.9,-102.43C59.69,-105.68 72,-101.53 72,-90 72,-81.62 65.5,-77.14 57.04,-76.56\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"56.5,-73.1 46.9,-77.57 57.19,-80.07 56.5,-73.1\"/>\n",
        "</g>\n",
        "<!-- 1&#45;&gt;2 -->\n",
-       "<g id=\"edge4\" class=\"edge\">\n",
+       "<g id=\"edge6\" class=\"edge\">\n",
        "<title>1&#45;&gt;2</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M40.57,-74.15C49.31,-64.6 60.83,-51.99 70.66,-41.25\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"73.28,-43.57 77.45,-33.82 68.12,-38.84 73.28,-43.57\"/>\n",
+       "<path fill=\"none\" stroke=\"black\" d=\"M31.05,-72.05C35.39,-63.01 41.81,-51.75 48.19,-41.93\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"51.24,-43.66 53.97,-33.42 45.45,-39.73 51.24,-43.66\"/>\n",
        "</g>\n",
        "<!-- 2&#45;&gt;0 -->\n",
-       "<g id=\"edge5\" class=\"edge\">\n",
+       "<g id=\"edge7\" class=\"edge\">\n",
        "<title>2&#45;&gt;0</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M91.69,-36.43C88.7,-61.08 78.75,-106.33 70.23,-134.98\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"66.83,-134.12 67.16,-144.71 73.5,-136.22 66.83,-134.12\"/>\n",
+       "<path fill=\"none\" stroke=\"black\" d=\"M80.33,-34.13C84.78,-44.63 88.43,-59.02 90,-72 91.92,-87.88 91.92,-92.12 90,-108 88.87,-117.33 86.67,-127.39 83.87,-136.2\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"80.48,-135.28 80.33,-145.87 87.05,-137.68 80.48,-135.28\"/>\n",
+       "</g>\n",
+       "<!-- 2&#45;&gt;1 -->\n",
+       "<g id=\"edge8\" class=\"edge\">\n",
+       "<title>2&#45;&gt;1</title>\n",
+       "<path fill=\"none\" stroke=\"black\" d=\"M63.95,-35.95C59.62,-44.97 53.21,-56.2 46.85,-66\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"43.81,-64.26 41.09,-74.5 49.6,-68.19 43.81,-64.26\"/>\n",
+       "</g>\n",
+       "<!-- 2&#45;&gt;2 -->\n",
+       "<g id=\"edge9\" class=\"edge\">\n",
+       "<title>2&#45;&gt;2</title>\n",
+       "<path fill=\"none\" stroke=\"black\" d=\"M87.9,-30.43C100.69,-33.68 113,-29.53 113,-18 113,-9.62 106.5,-5.14 98.04,-4.56\"/>\n",
+       "<polygon fill=\"black\" stroke=\"black\" points=\"97.5,-1.1 87.9,-5.57 98.19,-8.07 97.5,-1.1\"/>\n",
        "</g>\n",
        "</g>\n",
        "</svg>\n"
       ],
       "text/plain": [
-       "<graphviz.graphs.Digraph at 0x7f9985725250>"
+       "<graphviz.graphs.Digraph at 0x7fd088057c10>"
       ]
      },
-     "execution_count": 30,
+     "execution_count": 33,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -1027,7 +1051,7 @@
    "source": [
     "def graphe_fermeture_transitive(g):\n",
     "    gn = graphe_vide(len(g))\n",
-    "    for e in range(len(g)):\n",
+    "    for e in range(len(gn)):\n",
     "        for i in descendants(g,e):\n",
     "            ajoute_arc(g,e,i)\n",
     "    # for i in range(len(gn)):\n",
@@ -1049,7 +1073,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 31,
+   "execution_count": 36,
    "metadata": {},
    "outputs": [
     {
@@ -1066,8 +1090,8 @@
      "traceback": [
       "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
       "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
-      "Cell \u001b[0;32mIn[31], line 5\u001b[0m\n\u001b[1;32m      3\u001b[0m graphe1_ft \u001b[39m=\u001b[39m graphe_fermeture_transitive(graphe1)\n\u001b[1;32m      4\u001b[0m \u001b[39m#print(graphe1_ft)\u001b[39;00m\n\u001b[0;32m----> 5\u001b[0m graphe1_ft \u001b[39m=\u001b[39m creation_graphe_graphviz(graphe1_ft)\n\u001b[1;32m      6\u001b[0m graphe1_ft\n",
-      "Cell \u001b[0;32mIn[3], line 6\u001b[0m, in \u001b[0;36mcreation_graphe_graphviz\u001b[0;34m(g)\u001b[0m\n\u001b[1;32m      3\u001b[0m dot \u001b[39m=\u001b[39m graphviz\u001b[39m.\u001b[39mDigraph()\n\u001b[1;32m      5\u001b[0m \u001b[39m# ajout des sommets\u001b[39;00m\n\u001b[0;32m----> 6\u001b[0m \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(\u001b[39mlen\u001b[39;49m(g)):\n\u001b[1;32m      7\u001b[0m     dot\u001b[39m.\u001b[39mnode(\u001b[39mstr\u001b[39m(i))\n\u001b[1;32m      9\u001b[0m \u001b[39m# ajout des arcs\u001b[39;00m\n",
+      "Cell \u001b[0;32mIn[36], line 5\u001b[0m\n\u001b[1;32m      3\u001b[0m graphe1_ft \u001b[39m=\u001b[39m graphe_fermeture_transitive(graphe1)\n\u001b[1;32m      4\u001b[0m \u001b[39m#print(graphe1_ft)\u001b[39;00m\n\u001b[0;32m----> 5\u001b[0m graphe1_ft \u001b[39m=\u001b[39m creation_graphe_graphviz(graphe1_ft)\n\u001b[1;32m      6\u001b[0m graphe1_ft\n",
+      "Cell \u001b[0;32mIn[2], line 6\u001b[0m, in \u001b[0;36mcreation_graphe_graphviz\u001b[0;34m(g)\u001b[0m\n\u001b[1;32m      3\u001b[0m dot \u001b[39m=\u001b[39m graphviz\u001b[39m.\u001b[39mDigraph()\n\u001b[1;32m      5\u001b[0m \u001b[39m# ajout des sommets\u001b[39;00m\n\u001b[0;32m----> 6\u001b[0m \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(\u001b[39mlen\u001b[39;49m(g)):\n\u001b[1;32m      7\u001b[0m     dot\u001b[39m.\u001b[39mnode(\u001b[39mstr\u001b[39m(i))\n\u001b[1;32m      9\u001b[0m \u001b[39m# ajout des arcs\u001b[39;00m\n",
       "\u001b[0;31mTypeError\u001b[0m: object of type 'NoneType' has no len()"
      ]
     }
@@ -1077,14 +1101,14 @@
     "print(\"fermeture transitive du graphe 1\")\n",
     "graphe1_ft = graphe_fermeture_transitive(graphe1)\n",
     "#print(graphe1_ft)\n",
-    "graphe1_ft = creation_graphe_graphviz(graphe1_ft)\n",
-    "graphe1_ft\n",
+    "graphe1_fte = creation_graphe_graphviz(graphe1_ft)\n",
+    "graphe1_fte\n",
     "\n"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 35,
    "metadata": {},
    "outputs": [
     {
@@ -1096,263 +1120,16 @@
      ]
     },
     {
-     "data": {
-      "image/svg+xml": [
-       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
-       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
-       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
-       "<!-- Generated by graphviz version 2.43.0 (0)\n",
-       " -->\n",
-       "<!-- Title: %3 Pages: 1 -->\n",
-       "<svg width=\"469pt\" height=\"476pt\"\n",
-       " viewBox=\"0.00 0.00 469.06 476.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
-       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 472)\">\n",
-       "<title>%3</title>\n",
-       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-472 465.06,-472 465.06,4 -4,4\"/>\n",
-       "<!-- 0 -->\n",
-       "<g id=\"node1\" class=\"node\">\n",
-       "<title>0</title>\n",
-       "<ellipse fill=\"none\" stroke=\"black\" cx=\"197\" cy=\"-450\" rx=\"27\" ry=\"18\"/>\n",
-       "<text text-anchor=\"middle\" x=\"197\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n",
-       "</g>\n",
-       "<!-- 1 -->\n",
-       "<g id=\"node2\" class=\"node\">\n",
-       "<title>1</title>\n",
-       "<ellipse fill=\"none\" stroke=\"black\" cx=\"197\" cy=\"-378\" rx=\"27\" ry=\"18\"/>\n",
-       "<text text-anchor=\"middle\" x=\"197\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n",
-       "</g>\n",
-       "<!-- 0&#45;&gt;1 -->\n",
-       "<g id=\"edge1\" class=\"edge\">\n",
-       "<title>0&#45;&gt;1</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M191.16,-432.41C190.3,-424.51 190.05,-414.85 190.41,-405.94\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"193.9,-406.18 191.12,-395.96 186.92,-405.68 193.9,-406.18\"/>\n",
-       "</g>\n",
-       "<!-- 2 -->\n",
-       "<g id=\"node3\" class=\"node\">\n",
-       "<title>2</title>\n",
-       "<ellipse fill=\"none\" stroke=\"black\" cx=\"411\" cy=\"-234\" rx=\"27\" ry=\"18\"/>\n",
-       "<text text-anchor=\"middle\" x=\"411\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n",
-       "</g>\n",
-       "<!-- 0&#45;&gt;2 -->\n",
-       "<g id=\"edge2\" class=\"edge\">\n",
-       "<title>0&#45;&gt;2</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M222.69,-444.42C273.1,-433.83 383.38,-402.27 421,-324 430.43,-304.37 426.55,-279.58 421.1,-261.15\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"424.42,-260.05 417.98,-251.64 417.77,-262.23 424.42,-260.05\"/>\n",
-       "</g>\n",
-       "<!-- 3 -->\n",
-       "<g id=\"node4\" class=\"node\">\n",
-       "<title>3</title>\n",
-       "<ellipse fill=\"none\" stroke=\"black\" cx=\"244\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n",
-       "<text text-anchor=\"middle\" x=\"244\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n",
-       "</g>\n",
-       "<!-- 0&#45;&gt;3 -->\n",
-       "<g id=\"edge3\" class=\"edge\">\n",
-       "<title>0&#45;&gt;3</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M172.89,-441.5C128.18,-424.35 38,-378.18 38,-307 38,-307 38,-307 38,-233 38,-152.06 148.78,-112.66 207.99,-98.02\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"209.13,-101.34 218.06,-95.64 207.53,-94.53 209.13,-101.34\"/>\n",
-       "</g>\n",
-       "<!-- 4 -->\n",
-       "<g id=\"node5\" class=\"node\">\n",
-       "<title>4</title>\n",
-       "<ellipse fill=\"none\" stroke=\"black\" cx=\"299\" cy=\"-18\" rx=\"27\" ry=\"18\"/>\n",
-       "<text text-anchor=\"middle\" x=\"299\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n",
-       "</g>\n",
-       "<!-- 0&#45;&gt;4 -->\n",
-       "<g id=\"edge4\" class=\"edge\">\n",
-       "<title>0&#45;&gt;4</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M171.65,-443.39C118.44,-429.97 0,-390.69 0,-307 0,-307 0,-307 0,-161 0,-46.33 181.66,-24.15 261.79,-19.94\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"262.11,-23.43 271.94,-19.48 261.79,-16.44 262.11,-23.43\"/>\n",
-       "</g>\n",
-       "<!-- 5 -->\n",
-       "<g id=\"node6\" class=\"node\">\n",
-       "<title>5</title>\n",
-       "<ellipse fill=\"none\" stroke=\"black\" cx=\"299\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n",
-       "<text text-anchor=\"middle\" x=\"299\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n",
-       "</g>\n",
-       "<!-- 0&#45;&gt;5 -->\n",
-       "<g id=\"edge5\" class=\"edge\">\n",
-       "<title>0&#45;&gt;5</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M202.61,-432.18C208.98,-422.15 217.98,-408.9 224,-396 257.23,-324.74 277.13,-233.26 288.95,-189.12\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"292.33,-190.03 291.64,-179.45 285.59,-188.15 292.33,-190.03\"/>\n",
-       "</g>\n",
-       "<!-- 6 -->\n",
-       "<g id=\"node7\" class=\"node\">\n",
-       "<title>6</title>\n",
-       "<ellipse fill=\"none\" stroke=\"black\" cx=\"347\" cy=\"-306\" rx=\"27\" ry=\"18\"/>\n",
-       "<text text-anchor=\"middle\" x=\"347\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n",
-       "</g>\n",
-       "<!-- 0&#45;&gt;6 -->\n",
-       "<g id=\"edge6\" class=\"edge\">\n",
-       "<title>0&#45;&gt;6</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M221.55,-442.38C245.75,-434.74 282.44,-420.05 306,-396 322.95,-378.69 333.73,-353.1 339.96,-333.8\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"343.35,-334.67 342.89,-324.08 336.65,-332.65 343.35,-334.67\"/>\n",
-       "</g>\n",
-       "<!-- 1&#45;&gt;0 -->\n",
-       "<g id=\"edge7\" class=\"edge\">\n",
-       "<title>1&#45;&gt;0</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M202.88,-395.96C203.71,-403.83 203.95,-413.37 203.58,-422.19\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"200.07,-422.18 202.84,-432.41 207.06,-422.69 200.07,-422.18\"/>\n",
-       "</g>\n",
-       "<!-- 1&#45;&gt;2 -->\n",
-       "<g id=\"edge8\" class=\"edge\">\n",
-       "<title>1&#45;&gt;2</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M223.39,-373.85C273.13,-367.34 377.81,-350.75 401,-324 415.52,-307.25 416.97,-281.54 415.4,-262.06\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"418.86,-261.52 414.28,-251.97 411.91,-262.3 418.86,-261.52\"/>\n",
-       "</g>\n",
-       "<!-- 1&#45;&gt;3 -->\n",
-       "<g id=\"edge9\" class=\"edge\">\n",
-       "<title>1&#45;&gt;3</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M196.39,-359.97C200.07,-311.97 222.29,-175.34 235.54,-117.44\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"238.97,-118.13 237.9,-107.59 232.17,-116.5 238.97,-118.13\"/>\n",
-       "</g>\n",
-       "<!-- 1&#45;&gt;4 -->\n",
-       "<g id=\"edge10\" class=\"edge\">\n",
-       "<title>1&#45;&gt;4</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M179.06,-364.38C149.55,-342 94,-292.26 94,-235 94,-235 94,-235 94,-161 94,-79.52 204.79,-41.1 263.48,-26.46\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"264.54,-29.8 273.45,-24.08 262.91,-23 264.54,-29.8\"/>\n",
-       "</g>\n",
-       "<!-- 1&#45;&gt;5 -->\n",
-       "<g id=\"edge11\" class=\"edge\">\n",
-       "<title>1&#45;&gt;5</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M198.4,-359.78C206.83,-330 232.87,-267.14 259,-216 264.29,-205.64 270.71,-194.48 277.02,-185.09\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"280.04,-186.88 283,-176.71 274.34,-182.81 280.04,-186.88\"/>\n",
-       "</g>\n",
-       "<!-- 1&#45;&gt;6 -->\n",
-       "<g id=\"edge12\" class=\"edge\">\n",
-       "<title>1&#45;&gt;6</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M218.49,-366.97C244.11,-355.02 287.11,-334.95 316.24,-321.35\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"317.97,-324.41 325.55,-317.01 315.01,-318.07 317.97,-324.41\"/>\n",
-       "</g>\n",
-       "<!-- 2&#45;&gt;4 -->\n",
-       "<g id=\"edge13\" class=\"edge\">\n",
-       "<title>2&#45;&gt;4</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M402.82,-216.54C393.89,-198.63 379.11,-169.19 366,-144 347.85,-109.14 326.29,-69.16 312.62,-43.99\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"315.65,-42.23 307.8,-35.12 309.5,-45.57 315.65,-42.23\"/>\n",
-       "</g>\n",
-       "<!-- 2&#45;&gt;5 -->\n",
-       "<g id=\"edge14\" class=\"edge\">\n",
-       "<title>2&#45;&gt;5</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M389.79,-222.82C370.91,-212.23 343.58,-195.4 323.75,-182.28\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"325.48,-179.23 315.22,-176.56 321.57,-185.04 325.48,-179.23\"/>\n",
-       "</g>\n",
-       "<!-- 2&#45;&gt;6 -->\n",
-       "<g id=\"edge15\" class=\"edge\">\n",
-       "<title>2&#45;&gt;6</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M402.1,-251.06C394.07,-261.09 382.3,-274.11 371.62,-284.83\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"369.16,-282.34 364.45,-291.83 374.05,-287.35 369.16,-282.34\"/>\n",
-       "</g>\n",
-       "<!-- 3&#45;&gt;0 -->\n",
-       "<g id=\"edge16\" class=\"edge\">\n",
-       "<title>3&#45;&gt;0</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M219.22,-97.78C167.97,-112.24 56,-151.63 56,-233 56,-307 56,-307 56,-307 56,-369.38 125.26,-412.55 166.83,-433.81\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"165.48,-437.05 175.99,-438.38 168.6,-430.79 165.48,-437.05\"/>\n",
-       "</g>\n",
-       "<!-- 3&#45;&gt;1 -->\n",
-       "<g id=\"edge17\" class=\"edge\">\n",
-       "<title>3&#45;&gt;1</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M244.61,-108.02C240.93,-156 218.72,-292.61 205.47,-350.53\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"202.03,-349.85 203.11,-360.39 208.84,-351.48 202.03,-349.85\"/>\n",
-       "</g>\n",
-       "<!-- 3&#45;&gt;2 -->\n",
-       "<g id=\"edge18\" class=\"edge\">\n",
-       "<title>3&#45;&gt;2</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M265.53,-100.94C284.85,-110.44 313.39,-125.95 335,-144 358.13,-163.31 379.96,-190.11 394.24,-209.25\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"391.52,-211.45 400.25,-217.45 397.16,-207.31 391.52,-211.45\"/>\n",
-       "</g>\n",
-       "<!-- 3&#45;&gt;4 -->\n",
-       "<g id=\"edge19\" class=\"edge\">\n",
-       "<title>3&#45;&gt;4</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M255.93,-73.81C263.21,-64.55 272.66,-52.52 280.85,-42.09\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"283.66,-44.18 287.09,-34.16 278.16,-39.86 283.66,-44.18\"/>\n",
-       "</g>\n",
-       "<!-- 3&#45;&gt;5 -->\n",
-       "<g id=\"edge20\" class=\"edge\">\n",
-       "<title>3&#45;&gt;5</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M260.2,-104.65C268.41,-113.54 278.07,-125.4 285.82,-135.95\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"283.17,-138.27 291.81,-144.41 288.89,-134.23 283.17,-138.27\"/>\n",
-       "</g>\n",
-       "<!-- 3&#45;&gt;6 -->\n",
-       "<g id=\"edge21\" class=\"edge\">\n",
-       "<title>3&#45;&gt;6</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M245.68,-107.98C247.93,-126.33 252.89,-156.14 263,-180 279.43,-218.76 308.42,-258.21 327.68,-282.15\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"325.01,-284.42 334.04,-289.95 330.43,-279.99 325.01,-284.42\"/>\n",
-       "</g>\n",
-       "<!-- 4&#45;&gt;6 -->\n",
-       "<g id=\"edge22\" class=\"edge\">\n",
-       "<title>4&#45;&gt;6</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M317.75,-30.98C354.06,-59.19 431.08,-133.71 456,-216 460.64,-231.31 464.25,-238.29 456,-252 440.71,-277.42 408.68,-291.29 383.12,-298.39\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"382.17,-295.02 373.34,-300.87 383.89,-301.8 382.17,-295.02\"/>\n",
-       "</g>\n",
-       "<!-- 5&#45;&gt;0 -->\n",
-       "<g id=\"edge23\" class=\"edge\">\n",
-       "<title>5&#45;&gt;0</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M300.76,-180.04C298.03,-219.45 277.71,-319.41 242,-396 236.69,-407.38 229.06,-419.04 221.42,-428.51\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"218.65,-426.35 214.76,-436.21 223.95,-430.93 218.65,-426.35\"/>\n",
-       "</g>\n",
-       "<!-- 5&#45;&gt;1 -->\n",
-       "<g id=\"edge24\" class=\"edge\">\n",
-       "<title>5&#45;&gt;1</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M296.27,-179.91C291.2,-190.18 283.3,-203.66 277,-216 252.82,-263.34 228.71,-320.7 212.92,-352.6\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"209.73,-351.14 208.29,-361.64 215.96,-354.33 209.73,-351.14\"/>\n",
-       "</g>\n",
-       "<!-- 5&#45;&gt;2 -->\n",
-       "<g id=\"edge25\" class=\"edge\">\n",
-       "<title>5&#45;&gt;2</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M320.38,-173.27C339.29,-183.89 366.58,-200.7 386.36,-213.79\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"384.61,-216.83 394.86,-219.5 388.52,-211.02 384.61,-216.83\"/>\n",
-       "</g>\n",
-       "<!-- 5&#45;&gt;3 -->\n",
-       "<g id=\"edge26\" class=\"edge\">\n",
-       "<title>5&#45;&gt;3</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M282.94,-147.5C274.59,-138.47 264.7,-126.33 256.86,-115.61\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"259.7,-113.57 251.07,-107.41 253.98,-117.6 259.7,-113.57\"/>\n",
-       "</g>\n",
-       "<!-- 5&#45;&gt;4 -->\n",
-       "<g id=\"edge27\" class=\"edge\">\n",
-       "<title>5&#45;&gt;4</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M299,-143.87C299,-119.67 299,-75.21 299,-46.39\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"302.5,-46.19 299,-36.19 295.5,-46.19 302.5,-46.19\"/>\n",
-       "</g>\n",
-       "<!-- 5&#45;&gt;6 -->\n",
-       "<g id=\"edge28\" class=\"edge\">\n",
-       "<title>5&#45;&gt;6</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M308.82,-178.88C319.61,-202.85 335.4,-248.58 343.27,-277.89\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"339.95,-279.03 345.79,-287.87 346.74,-277.32 339.95,-279.03\"/>\n",
-       "</g>\n",
-       "<!-- 6&#45;&gt;2 -->\n",
-       "<g id=\"edge29\" class=\"edge\">\n",
-       "<title>6&#45;&gt;2</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M356.04,-288.76C363.97,-278.88 375.45,-266.17 385.96,-255.59\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"388.68,-257.83 393.38,-248.33 383.78,-252.83 388.68,-257.83\"/>\n",
-       "</g>\n",
-       "<!-- 6&#45;&gt;4 -->\n",
-       "<g id=\"edge30\" class=\"edge\">\n",
-       "<title>6&#45;&gt;4</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M371,-297.67C392.76,-290.36 423.21,-276.58 438,-252 446.25,-238.29 442.64,-231.31 438,-216 415.74,-142.47 351.87,-75.15 318.84,-41.52\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"321.03,-38.76 311.52,-34.09 316.05,-43.67 321.03,-38.76\"/>\n",
-       "</g>\n",
-       "<!-- 6&#45;&gt;5 -->\n",
-       "<g id=\"edge31\" class=\"edge\">\n",
-       "<title>6&#45;&gt;5</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M337.12,-288.99C326.32,-264.96 310.55,-219.27 302.7,-190.02\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"306.03,-188.9 300.19,-180.06 299.24,-190.61 306.03,-188.9\"/>\n",
-       "</g>\n",
-       "<!-- 6&#45;&gt;6 -->\n",
-       "<g id=\"edge32\" class=\"edge\">\n",
-       "<title>6&#45;&gt;6</title>\n",
-       "<path fill=\"none\" stroke=\"black\" d=\"M366.9,-318.43C379.69,-321.68 392,-317.53 392,-306 392,-297.62 385.5,-293.14 377.04,-292.56\"/>\n",
-       "<polygon fill=\"black\" stroke=\"black\" points=\"376.5,-289.1 366.9,-293.57 377.19,-296.07 376.5,-289.1\"/>\n",
-       "</g>\n",
-       "</g>\n",
-       "</svg>\n"
-      ],
-      "text/plain": [
-       "<graphviz.graphs.Digraph at 0x7f3712241460>"
-      ]
-     },
-     "execution_count": 420,
-     "metadata": {},
-     "output_type": "execute_result"
+     "ename": "TypeError",
+     "evalue": "object of type 'NoneType' has no len()",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
+      "Cell \u001b[0;32mIn[35], line 5\u001b[0m\n\u001b[1;32m      3\u001b[0m graphe2_ft \u001b[39m=\u001b[39m graphe_fermeture_transitive(graphe2)\n\u001b[1;32m      4\u001b[0m \u001b[39m#print(graphe2_ft)\u001b[39;00m\n\u001b[0;32m----> 5\u001b[0m graphe2_fte \u001b[39m=\u001b[39m creation_graphe_graphviz(graphe2_ft)\n\u001b[1;32m      6\u001b[0m graphe2_fte\n",
+      "Cell \u001b[0;32mIn[2], line 6\u001b[0m, in \u001b[0;36mcreation_graphe_graphviz\u001b[0;34m(g)\u001b[0m\n\u001b[1;32m      3\u001b[0m dot \u001b[39m=\u001b[39m graphviz\u001b[39m.\u001b[39mDigraph()\n\u001b[1;32m      5\u001b[0m \u001b[39m# ajout des sommets\u001b[39;00m\n\u001b[0;32m----> 6\u001b[0m \u001b[39mfor\u001b[39;00m i \u001b[39min\u001b[39;00m \u001b[39mrange\u001b[39m(\u001b[39mlen\u001b[39;49m(g)):\n\u001b[1;32m      7\u001b[0m     dot\u001b[39m.\u001b[39mnode(\u001b[39mstr\u001b[39m(i))\n\u001b[1;32m      9\u001b[0m \u001b[39m# ajout des arcs\u001b[39;00m\n",
+      "\u001b[0;31mTypeError\u001b[0m: object of type 'NoneType' has no len()"
+     ]
     }
    ],
    "source": [
@@ -1360,8 +1137,8 @@
     "print(\"\\nfermeture transitive du graphe 2\")\n",
     "graphe2_ft = graphe_fermeture_transitive(graphe2)\n",
     "#print(graphe2_ft)\n",
-    "graphe2_ft = creation_graphe_graphviz(graphe2_ft)\n",
-    "graphe2_ft"
+    "graphe2_fte = creation_graphe_graphviz(graphe2_ft)\n",
+    "graphe2_fte"
    ]
   },
   {
diff --git a/BUT1/S2/QDev/TD2 b/BUT1/S2/QDev/TD2
new file mode 160000
index 00000000..af0eea7d
--- /dev/null
+++ b/BUT1/S2/QDev/TD2
@@ -0,0 +1 @@
+Subproject commit af0eea7d9787623fcdc953b07915a576bbe2d71e
diff --git a/BUT1/S2/QDev/TD3 b/BUT1/S2/QDev/TD3
new file mode 160000
index 00000000..9ca78818
--- /dev/null
+++ b/BUT1/S2/QDev/TD3
@@ -0,0 +1 @@
+Subproject commit 9ca7881827478294734bbe84c37ab07575437633
diff --git a/BUT1/S2/QDev/td3-2 b/BUT1/S2/QDev/td3-2
new file mode 160000
index 00000000..9ca78818
--- /dev/null
+++ b/BUT1/S2/QDev/td3-2
@@ -0,0 +1 @@
+Subproject commit 9ca7881827478294734bbe84c37ab07575437633
diff --git a/BUT1/S2/QualiteDev/.idea/workspace.xml b/BUT1/S2/QualiteDev/.idea/workspace.xml
deleted file mode 100644
index bf03abfb..00000000
--- a/BUT1/S2/QualiteDev/.idea/workspace.xml
+++ /dev/null
@@ -1,204 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="AutoImportSettings">
-    <option name="autoReloadType" value="SELECTIVE" />
-  </component>
-  <component name="ChangeListManager">
-    <list default="true" id="f09e934e-2b1c-46d8-88ed-b8c656202bc7" name="Changes" comment="" />
-    <option name="SHOW_DIALOG" value="false" />
-    <option name="HIGHLIGHT_CONFLICTS" value="true" />
-    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
-    <option name="LAST_RESOLUTION" value="IGNORE" />
-  </component>
-  <component name="ExternalProjectsData">
-    <projectState path="$PROJECT_DIR$">
-      <ProjectState />
-    </projectState>
-  </component>
-  <component name="FileTemplateManagerImpl">
-    <option name="RECENT_TEMPLATES">
-      <list>
-        <option value="JUnit5 Test Class" />
-      </list>
-    </option>
-  </component>
-  <component name="Git.Settings">
-    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
-  </component>
-  <component name="MarkdownSettingsMigration">
-    <option name="stateVersion" value="1" />
-  </component>
-  <component name="ProjectId" id="2PGsTfbiMi5hBAgsvTLJsn3XlZh" />
-  <component name="ProjectLevelVcsManager">
-    <ConfirmationsSetting value="1" id="Add" />
-  </component>
-  <component name="ProjectViewState">
-    <option name="hideEmptyMiddlePackages" value="true" />
-    <option name="showLibraryContents" value="true" />
-  </component>
-  <component name="PropertiesComponent"><![CDATA[{
-  "keyToString": {
-    "RunOnceActivity.OpenProjectViewOnStart": "true",
-    "RunOnceActivity.ShowReadmeOnStart": "true",
-    "com.intellij.testIntegration.createTest.CreateTestDialog.defaultLibrary": "JUnit5",
-    "com.intellij.testIntegration.createTest.CreateTestDialog.defaultLibrarySuperClass.JUnit5": "",
-    "last_opened_file_path": "/home/E221936K/reseau/Perso/Documents/nmt_iut/BUT1/S2/QDev/TD1",
-    "project.structure.last.edited": "Modules",
-    "project.structure.proportion": "0.15",
-    "project.structure.side.proportion": "0.2",
-    "settings.editor.selected.configurable": "consents"
-  }
-}]]></component>
-  <component name="RecentsManager">
-    <key name="CreateTestDialog.Recents.Supers">
-      <recent name="" />
-    </key>
-    <key name="MoveKotlinTopLevelDeclarationsDialog.RECENTS_KEY">
-      <recent name="iut.but1.r203.td1" />
-      <recent name="" />
-    </key>
-    <key name="CreateTestDialog.RecentsKey">
-      <recent name="iut.but1.r203.td1" />
-    </key>
-  </component>
-  <component name="RunManager" selected="Gradle.OperationsTest.testMultiplication1 (1)">
-    <configuration name="OperationsTest" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
-      <ExternalSystemSettings>
-        <option name="executionName" />
-        <option name="externalProjectPath" value="$PROJECT_DIR$" />
-        <option name="externalSystemIdString" value="GRADLE" />
-        <option name="scriptParameters" value="" />
-        <option name="taskDescriptions">
-          <list />
-        </option>
-        <option name="taskNames">
-          <list>
-            <option value=":test" />
-            <option value="--tests" />
-            <option value="&quot;OperationsTest&quot;" />
-          </list>
-        </option>
-        <option name="vmOptions" />
-      </ExternalSystemSettings>
-      <ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
-      <ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
-      <DebugAllEnabled>false</DebugAllEnabled>
-      <method v="2" />
-    </configuration>
-    <configuration name="OperationsTest.testMultiplication1 (1)" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
-      <ExternalSystemSettings>
-        <option name="executionName" />
-        <option name="externalProjectPath" value="$PROJECT_DIR$" />
-        <option name="externalSystemIdString" value="GRADLE" />
-        <option name="scriptParameters" value="" />
-        <option name="taskDescriptions">
-          <list />
-        </option>
-        <option name="taskNames">
-          <list>
-            <option value=":test" />
-            <option value="--tests" />
-            <option value="&quot;iut.but1.r203.td1.OperationsTest.testMultiplication1&quot;" />
-          </list>
-        </option>
-        <option name="vmOptions" />
-      </ExternalSystemSettings>
-      <ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
-      <ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
-      <DebugAllEnabled>false</DebugAllEnabled>
-      <method v="2" />
-    </configuration>
-    <configuration name="OperationsTest.testMultiplication1" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
-      <ExternalSystemSettings>
-        <option name="executionName" />
-        <option name="externalProjectPath" value="$PROJECT_DIR$" />
-        <option name="externalSystemIdString" value="GRADLE" />
-        <option name="scriptParameters" value="" />
-        <option name="taskDescriptions">
-          <list />
-        </option>
-        <option name="taskNames">
-          <list>
-            <option value=":test" />
-            <option value="--tests" />
-            <option value="&quot;OperationsTest.testMultiplication1&quot;" />
-          </list>
-        </option>
-        <option name="vmOptions" />
-      </ExternalSystemSettings>
-      <ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
-      <ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
-      <DebugAllEnabled>false</DebugAllEnabled>
-      <method v="2" />
-    </configuration>
-    <configuration name="Tests in 'R2-03-TD1.test'" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
-      <ExternalSystemSettings>
-        <option name="executionName" />
-        <option name="externalProjectPath" value="$PROJECT_DIR$" />
-        <option name="externalSystemIdString" value="GRADLE" />
-        <option name="scriptParameters" value="" />
-        <option name="taskDescriptions">
-          <list />
-        </option>
-        <option name="taskNames">
-          <list>
-            <option value=":test" />
-          </list>
-        </option>
-        <option name="vmOptions" />
-      </ExternalSystemSettings>
-      <ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
-      <ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
-      <DebugAllEnabled>false</DebugAllEnabled>
-      <method v="2" />
-    </configuration>
-    <configuration name="Build_gradle$OperationsTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
-      <module name="R2-03-TD1" />
-      <extension name="coverage">
-        <pattern>
-          <option name="PATTERN" value="iut.but1.r203.td1.*" />
-          <option name="ENABLED" value="true" />
-        </pattern>
-      </extension>
-      <option name="PACKAGE_NAME" value="Build_gradle" />
-      <option name="MAIN_CLASS_NAME" value="Build_gradle$OperationsTest" />
-      <option name="TEST_OBJECT" value="class" />
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <configuration default="true" type="JetRunConfigurationType">
-      <module name="QualiteDev" />
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <configuration default="true" type="KotlinStandaloneScriptRunConfigurationType">
-      <module name="QualiteDev" />
-      <option name="filePath" />
-      <method v="2">
-        <option name="Make" enabled="true" />
-      </method>
-    </configuration>
-    <recent_temporary>
-      <list>
-        <item itemvalue="Gradle.OperationsTest.testMultiplication1 (1)" />
-        <item itemvalue="Gradle.OperationsTest.testMultiplication1" />
-        <item itemvalue="Gradle.Tests in 'R2-03-TD1.test'" />
-        <item itemvalue="Gradle.OperationsTest" />
-        <item itemvalue="JUnit.Build_gradle$OperationsTest" />
-      </list>
-    </recent_temporary>
-  </component>
-  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
-  <component name="TaskManager">
-    <task active="true" id="Default" summary="Default task">
-      <changelist id="f09e934e-2b1c-46d8-88ed-b8c656202bc7" name="Changes" comment="" />
-      <created>1683094762399</created>
-      <option name="number" value="Default" />
-      <option name="presentableId" value="Default" />
-      <updated>1683094762399</updated>
-    </task>
-    <servers />
-  </component>
-</project>
\ No newline at end of file
diff --git a/BUT1/S2/SAE_BD/sae_tout_joli_tout_beau.sql b/BUT1/S2/SAE_BD/sae_tout_joli_tout_beau.sql
new file mode 100644
index 00000000..031c5be0
--- /dev/null
+++ b/BUT1/S2/SAE_BD/sae_tout_joli_tout_beau.sql
@@ -0,0 +1,298 @@
+
+
+---------------------netoyage après importation du tableau
+ 
+alter table BORNE_NON_TRIER
+drop column consolidated_latitude;
+
+alter table BORNE_NON_TRIER
+drop column consolidated_longitude;
+
+alter table BORNE_NON_TRIER
+drop column department;
+
+
+alter table borne_non_trier rename column datagouv_resource_id to ressource_id;
+alter table borne_non_trier rename column datagouv_organization_or_owner to organization_or_owner;
+alter table borne_non_trier rename column datagouv_dataset_id to dataset_id;
+
+alter table borne_non_trier rename column date_de_mise_à_jour to date_de_maj;
+alter table borne_non_trier rename column last_modified to date_last_maj;
+
+alter table borne_non_trier rename column consolidated_is_coord_correct to cons_coord_correct;
+alter table borne_non_trier rename column consolidated_is_insee_good to cons_insee_correct;
+alter table borne_non_trier rename column consolidated_code_postal to cons_code_postal;
+alter table borne_non_trier rename column consolidated_commune to cons_commune; 
+
+----------------------------creation de tables
+
+
+create table vendee_table as (select * from BORNE_NON_TRIER
+where libelle_departement = 'Vendée');
+
+
+
+create table vendee_borne as (
+select distinct
+id_pdc_itinerance,
+nom_station,
+prise_type_ef,
+prise_type_2,
+prise_type_combo_CCS,
+prise_type_chademo,
+prise_type_autre,
+gratuit,
+paiement_acte,
+paiement_cb,
+paiement_autre,
+condition_acces,
+reservation,
+raccordement,
+date_mise_en_service,
+date_de_maj,
+date_last_maj,
+cons_coord_correct,
+cons_insee_correct,
+puissance_nominale,
+tranche_puissance,
+observations,
+cable_t2_attache,
+id_pdc_local,
+localisation
+from vendee_table);
+
+create table vendee_station as (
+select distinct
+nom_station,
+libelle_commune,
+nom_amenageur,
+nom_operateur,
+dataset_id,
+nombre_points_de_charge,
+nom_enseigne,
+adresse_station,
+implantation_station,
+tarification,
+horaires,
+accessibilite_pmr,
+restriction_gabarit,
+station_deux_roues,
+num_pdl,
+id_station_local,
+id_station_itinerance
+from vendee_table);
+
+create table vendee_Commune as (
+select distinct
+libelle_commune,
+siret_epci,
+libelle_departement,
+code_insee_commune,
+cons_code_postal,
+cons_commune
+from vendee_table);
+
+
+create table vendee_Amenageur as (
+select distinct
+nom_amenageur,
+contact_amenageur,
+siren_amenageur
+from vendee_table);
+
+
+create table vendee_Operateur as (
+select distinct
+nom_operateur,
+telephone_operateur,
+contact_operateur
+from vendee_table);
+
+
+create table vendee_Datagouv as (
+select distinct
+dataset_id,
+ressource_id,
+organization_or_owner
+from vendee_table);
+
+
+create table vendee_Departement as (
+select distinct
+libelle_departement,
+libelle_region,
+code_region
+from vendee_table);
+
+
+create table vendee_epci as (
+select distinct
+siret_epci,
+libelle_epci
+from vendee_table);
+
+----------------------------creation de clé primaires
+
+ALTER TABLE vendee_borne
+ADD CONSTRAINT pk_vendee_borne PRIMARY KEY (id_pdc_itinerance); --err
+
+
+ALTER TABLE vendee_station
+ADD CONSTRAINT pk_vendee_station PRIMARY KEY (id_station_itinerance); --err
+
+
+ALTER TABLE vendee_commune
+ADD CONSTRAINT pk_vendee_commune PRIMARY KEY (libelle_commune); --err
+
+
+ALTER TABLE vendee_amenageur
+ADD CONSTRAINT pk_vendee_amenageur PRIMARY KEY (siren_amenageur); --err (on corrige les null)
+
+
+create table vendee_table as (select * from BORNE_NON_TRIER
+where libelle_departement = 'Vendée');
+
+
+
+create table vendee_borne as (
+select distinct
+id_pdc_itinerance,
+nom_station,
+prise_type_ef,
+prise_type_2,
+prise_type_combo_CCS,
+prise_type_chademo,
+prise_type_autre,
+gratuit,
+paiement_acte,
+paiement_cb,
+paiement_autre,
+condition_acces,
+reservation,
+raccordement,
+date_mise_en_service,
+date_de_maj,
+date_last_maj,
+cons_coord_correct,
+cons_insee_correct,
+puissance_nominale,
+tranche_puissance,
+observations,
+cable_t2_attache,
+id_pdc_local,
+localisation 
+from vendee_table);
+
+create table vendee_station as (
+select distinct
+nom_station,
+libelle_commune,
+nom_amenageur,
+nom_operateur,
+dataset_id,
+nombre_points_de_charge,
+nom_enseigne,
+adresse_station,
+implantation_station,
+tarification,
+horaires,
+accessibilite_pmr,
+restriction_gabarit,
+station_deux_roues,
+num_pdl,
+id_station_local,
+id_station_itinerance
+from vendee_table);
+
+create table vendee_Commune as (
+select distinct
+libelle_commune,
+siret_epci,
+libelle_departement,
+code_insee_commune,
+cons_code_postal,
+cons_commune
+from vendee_table);
+
+
+create table vendee_Amenageur as (
+select distinct
+nom_amenageur,
+contact_amenageur,
+siren_amenageur
+from vendee_table);
+
+
+create table vendee_Operateur as (
+select distinct
+nom_operateur,
+telephone_operateur,
+contact_operateur
+from vendee_table);
+
+
+create table vendee_Datagouv as (
+select distinct
+dataset_id,
+ressource_id,
+organization_or_owner
+from vendee_table);
+
+
+create table vendee_Departement as (
+select distinct
+libelle_departement,
+libelle_region,
+code_region
+from vendee_table);
+
+
+create table vendee_epci as (
+select distinct
+siret_epci,
+libelle_epci
+from vendee_table);
+
+----------------------------creation de clé primaires
+
+ALTER TABLE vendee_borne
+ADD CONSTRAINT pk_vendee_borne PRIMARY KEY (id_pdc_itinerance); --err (214 ligne avec des doublons)
+
+
+ALTER TABLE vendee_station
+ADD CONSTRAINT pk_vendee_station PRIMARY KEY (id_station_itinerance); --err
+
+
+ALTER TABLE vendee_commune
+ADD CONSTRAINT pk_vendee_commune PRIMARY KEY (libelle_commune); --err
+
+ALTER TABLE vendee_amenageur
+ADD CONSTRAINT pk_vendee_amenageur PRIMARY KEY (siren_amenageur); --err (suppr doublon)
+
+ALTER TABLE vendee_datagouv
+ADD CONSTRAINT pk_vendee_datagouv PRIMARY KEY (dataset_id); --good (suppr doublon) (ez)
+
+ALTER TABLE vendee_operateur
+ADD CONSTRAINT pk_vendee_operateur PRIMARY KEY (nom_operateur); --good
+
+ALTER TABLE vendee_departement
+ADD CONSTRAINT pk_vendee_departement PRIMARY KEY (libelle_departement); --good (pas de modif)
+
+ALTER TABLE vendee_epci
+ADD CONSTRAINT pk_vendee_epci PRIMARY KEY (siret_epci); --good (pas de modif)
+
+----------------------------creation de clé étrangères
+
+
+
+
+-------detection doublon pdc
+
+create table tst as (select * from vendee_borne);
+
+select id_pdc_itinerance, count(*) as nombre_occurrences
+from vendee_borne
+group by id_pdc_itinerance
+having count(*) > 1 order by 2 desc;
+
+-------------------------------------------------------
\ No newline at end of file
diff --git a/BUT1/S2/SAE_Gestion/ventolapp b/BUT1/S2/SAE_Gestion/ventolapp
new file mode 160000
index 00000000..1d3a755a
--- /dev/null
+++ b/BUT1/S2/SAE_Gestion/ventolapp
@@ -0,0 +1 @@
+Subproject commit 1d3a755a91ab124374ef0fea30de5f04b87fd47d
-- 
GitLab