diff --git a/lectures/_static/lecture_specific/short_path/Graph-networkx2.ipynb b/lectures/_static/lecture_specific/short_path/Graph-networkx2.ipynb deleted file mode 100644 index f9fd7aa1..00000000 --- a/lectures/_static/lecture_specific/short_path/Graph-networkx2.ipynb +++ /dev/null @@ -1,279 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import networkx as nx\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "G = nx.DiGraph()\n", - "G.add_node('A',pos=(0,100))\n", - "G.add_node('B',pos=(2,50))\n", - "G.add_node('C',pos=(-2,50))\n", - "G.add_node('D',pos=(0,40))\n", - "G.add_node('E',pos=(1,10))\n", - "G.add_node('F',pos=(-1,10))\n", - "G.add_node('G',pos=(0,-50))\n", - "G.add_edges_from([('A', 'B')], weight=1)\n", - "G.add_edges_from([('F','G')], weight=1)\n", - "G.add_edges_from([('C','F')], weight=2)\n", - "G.add_edges_from([('A','D')], weight=3)\n", - "G.add_edges_from([('D','F'),('E','G')], weight=4)\n", - "G.add_edges_from([('A','C')], weight=5)\n", - "G.add_edges_from([('B','E')], weight=6)\n", - "G.add_edges_from([('D','G')], weight=8)\n", - "G.add_edges_from([('B','D')], weight=9)\n", - "edge_labels=dict([((u,v,),d['weight'])\n", - " for u,v,d in G.edges(data=True)])\n", - "pos=nx.get_node_attributes(G,'pos')\n", - "\n", - "\n", - "\n", - "nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, rotate=False)\n", - "nx.draw(G,pos, node_color='lightgrey',with_labels=True, node_size=1000)\n", - "plt.savefig('graph.png')\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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lLN6UNtAD8uWLePZZ59l3bp1tG/fXu/miFpCQreh8vaGCRMgOrr0UFN/f76fNImirl0p7tVLK4YjhVKc4ijKs3r1arp27ap3c0QtIvN0G7qiIliwAFJSSg+ZR4/Gv1cvHRv1+1q2bElSUlKtrjBWWFgoK83EVaSn29D5+WklHiMiSg/5l629K5wmgSsqIqErtGLmkyZBeHilb5k6dSrh4eHyUfkKNpuNnj17EhcXp3dTRB0hoSs0/v7abhJNm1b48pQpU1i7dq2HG1X7mUymOllwR+hHQldc1rgxTJ5cYVHzgQMHylbdV0hJSeG7775j2rRpejdF1CESuqK8oKBy47uics888wxvvPGGy3bpFQ2D3C3ias4U07ZaXd+OWmzVqlWEh4fTu3dvvZsi6hgJXeEa589DdrberfCYbdu2sWLFCqKjo5kwYQIbN25k4sSJejdL1AESusI1bDaYPx/y8vRuiUf8+9//JiUlhVOnTvHFF19wyy231Om92oTnSOiKKrnvvvvo168fR44cITIykk8++eTqN2Vnw7x5cPGi5xsoRB0hK9KEa5w+DZ99pv1/eDhMmaJNQ3OTurAiTYiKSE9XuERBTs7lL9LTtaXFhYX6NcjFioqKKC67macQTpLQFTVmLSzktU8/JaXseG5qKixcqNV2qOMsFgt//OMfkQ+FwhUkdEX1qar2q6QEiovx2b2bkF9/Zej8+ZwvO56bkgKLF9fp6WRFRUXcfffd5Obm4uPMVDohriChK6pPUbQpYhs3wtKl8P33/OXmm7m/a1eGLVjABbP58ntPn4YvvtACuo6xWq1MmDABf39/5s2bJ4sghEvIXSSc06KFVqfh+PHSQy8PGsSodu0YsXAhOWXHc48fh//+V5tWVkfYbDYefPBBiouLWbJkCd7e3no3SdQTErrCeb17w223lX6pKAr/HjqUm6OiuG3RIvLLjuceOQLLlkHZXYdrKbvdzrRp00hPT+err77C19dX7yaJekRCV9RMbCwMG1b6paIovDdyJF3Dwhj9xReYy47n/vILfPutNh5cS6mqytNPP82xY8dYsWIFRqNR7yaJekZCV9TcgAEwaFDplwZF4YO4OCKDghizdClFZcdz9++HVatqZfCqqsqf//xnkpKS+O677wgICNC7SaIektAVrjF4MNx8c+mXXgYDn915J4G+voz/6iusZcdzd++GdetqXfC+/PLLbNiwgbVr1xIUFKR3c0Q9JaErXENRtGGGmJjSQ94GA4vHjsVmtzNx+XJsZcdzd+yADRsuTz+rovnz5/P3v/+d/Px83n77bd58801sLnhA969//Yuvv/6a9evXS91g4VayDFi4lqrCypWwZ0/pocKSEu5YsoSWgYF8duedGBRFWzRx/Lg2A6JVK21X4hEjKt25wmHIkCFs3ry59OvQ0FDS09PxqsGuxe+99x6zZs1i69atsqxYuJ30dIVrKQrExUG3bqWHGnl7882993IyO5snv/sONTcXdu3SlgsfOgTHjmmzGz76SDt2Da+//jr+l2o6+Pv7889//rNGgfvBBx/w3nvvsWHDBglc4RHS0xXuYbdrc3MPHSo9lFdUxPDPPqO/ry/vtG6NoiiX39+uHVx3HbRtq+1OfA0DBw7kxx9/JDg4mLS0NPz8/Jxq4rx583jxxRfZsmULN9xwg1PnEKK6pKcr3MNggHHjtDC9JMhsZm27dmzOzualU6dKj6t2O/z2m1av4dix363J++abbwLwl7/8pVqBW7Z/sXTpUl544QW+//57CVzhUV5///vf/653I0Q9ZTBA585aDYa0NNi3DyMwtlkznj95kpySEgrz8uj/yy88FBGBf3Y2GI3aGO9111V62sjISAoKCnjhhReqXA9BVVU6depEUVERGRkZPPnkk6xfv162lBceJ8MLwv2Ki+G552Dv3tJDqYWF9EpK4oLNhkFReL9dOx6KiNDGhEeNgj//udwpbDYbZrMZi8VCQUEBVqsVVVVRFAUfHx8CAgIwGo34+/tXOMZ74MAB+vbti91ux8vLiy1bttCnTx+3/9aFuJIMLwj38/WFTp0gMLD00P/S0six2bACRarKwvPntRdUVZtKdqlamcVi4cyZMxw+fJjk5GTS09MpKCiguLgYq9VKcXExBQUFpKenk5yczOHDhzlz5gwWi6VcE7766iusVitFRUXYbDa+/vprT/3uhShHQld4RnAwdO8OjRsDsL6oCLui0OjSw7QtubmYHfNtLRas+/dz4sQJTpw4QV5eHqqqYv+dug12ux1VVcnLyyv9XuulZciffvopJSUleHt7oygKP/zww++eTwh3kNAVntGxo7a1e/fu4O/P3A4dONO3L6+3aUObRo2wAZ+npaECWX37cjQwELPZ7HThcFVVMZvNHD16lKNHj3L27FlCQ0N5/vnnOXDgALt27ZJSjUIXMqYrPENV4ZtvtNoLRUWwbx+UGQLYl59PG6ORi/feS3b//qhOTgOriKIoFBYW0rNnTwlaoTsJXeE5qqotgti+Xfvvvn2l+6ipQOrYsS4PXAdFUQgNDSUiIsLl5xaiOiR0hT5ycyExEb78Eo4dI6tvX1LvucctgeugKAoRERFSW0HoSkJX6M6akcHRtDTUsivU3MRgMNCuXTvZ70zoRga4hO6S8/M9ErigzXBITk72yLWEqIiErtCVY8GDJ1ksFo9fUwgHCV2hq8zMTKenhTlLVVUyMzM9ek0hHGSLU6Ebm81Gfn5+tb9vzZo1LFiwgGPHjmE0GrnuuusYPXo09957b/nKZdeQl5eHzWarUVlIIZwhPV2hG7PZXOWQdJg3bx6vv/46U6ZMYdOmTWzevJm//e1v7N27t3T1WVUoioLZbK5uk4WoMZm9IHSTnp5O+u8ULS8rPz+foUOH8tprrzF8+PAaXz88PJzw8PAan0eI6pCertBNQUFBtd6/f/9+iouLGTJkiC7XF8IVJHSFbqozHACQnZ1NcHAw3t6XH0VMnDiR/v3706dPH5KSktx6fSFcQR6kCd1Ud2QrODiYnJyc0mphAAsXLgRg6NCh1T6fjKwJPUhPV+imug/RevToga+vL5s2bdLl+kK4gvR0hW58fHwoLi6u8vuDgoJ4/PHHefXVV1FVlQEDBtCoUSOOHj3q1GIHWQos9CCzF4Ruqjt7wWHVqlUsWrSodJ5uZGQkY8aM4a677qpWkMrsBaEHCV2hm/z8fJKTk3XZwcFgMBAVFUVgmS2EhPAEGdMVuvH399ftYZaqqvj7++tybdGwSegK3Xh5eenW0wwKCpIlwEIXErpCV2FhYR6fRaAoCs2aNfPoNYVwkNAVujIajRiNxnp/TSEcJHSF7qKiojzW23U8QBNCLxK6Qnc+Pj5ERES4PXgVRaFFixYyP1foSkJX1AohISGEhIS4LXgduwHLppRCbxK6olZw7NTrjuB1BG6LFi1cel4hnCGLI0Stoqoq2dnZpKWluWTRhMFgoEWLFtLDFbWGhK6olaxWK8nJyVgsFqcWUCiKgtFoJCoqSsZwRa0ioStqNYvFQmZmJnl5eSiKcs3er8FgQFVVgoKCaNasmUwLE7WShK6oE2w2W+l27QUFBVitVlRVRVEUfHx8CAgIwGg04u/vLyvNRK0moSuEEB4ksxeEEMKDJHSFEMKDJHSFEMKDJHSFEMKDJHSFEMKDJHSFEMKDJHSFEMKDJHSFEMKD/j8vkws1IVjJjQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import networkx as nx\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "G = nx.DiGraph()\n", - "G.add_node('A',pos=(0,100))\n", - "G.add_node('B',pos=(2,50))\n", - "G.add_node('C',pos=(-2,50))\n", - "G.add_node('D',pos=(0,40))\n", - "G.add_node('E',pos=(1,10))\n", - "G.add_node('F',pos=(-1,10))\n", - "G.add_node('G',pos=(0,-50))\n", - "G.add_edges_from([('A', 'B')], weight=1)\n", - "G.add_edges_from([('F','G')], weight=1)\n", - "G.add_edges_from([('C','F')], weight=2)\n", - "G.add_edges_from([('A','D')], weight=3)\n", - "G.add_edges_from([('D','F'),('E','G')], weight=4)\n", - "G.add_edges_from([('A','C')], weight=5)\n", - "G.add_edges_from([('B','E')], weight=6)\n", - "G.add_edges_from([('D','G')], weight=8)\n", - "G.add_edges_from([('B','D')], weight=9)\n", - "edge_labels=dict([((u,v,),d['weight'])\n", - " for u,v,d in G.edges(data=True)])\n", - "\n", - "\n", - "pos=nx.get_node_attributes(G,'pos')\n", - "nx.draw_networkx_edges(G,pos,\n", - " edgelist=[('A','C'), ('C','F'), ('F','G')],\n", - " width=8,alpha=0.5,edge_color='r')\n", - "\n", - "nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, rotate=False)\n", - "nx.draw(G,pos, node_color='lightgrey',with_labels=True, node_size=1000)\n", - "plt.savefig('graph2.png')" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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vawbLJxKpgELh1JVWL8ejhwpPJaXl83KlY/i71+LgQO/QFF05OTYRjXUqAF16th2Je7V6893rsj38MMPs2vXroLHQUFBpKSk4FGGbYs/+eQTZs+ezZ49e2RasXA6aekKh1IU6N8fWrYsPObpWYUnn/yWjIzzbNz4PNevqxw6ZJsufOoUnD1rG90wb57t2J188MEH+P5vUQdfX1/efvvtMgXunDlz+OSTT9i+fbsErnAJaekKp7BabWNzT50qPJaTk8kXX/TE2zuaunVnoChKwXMNG8K990KDBrbdie+kS5cu7N27l+rVq5OcnIyPj49ddVy8eDFTpkxh9+7d1K9f365zCFFa0tIVTqHTwdChtjDNZzQG0LDhZjIydnHhwusFx61WlV9/ta3XcPbs3dfknT59OgB/+9vfShW4N7cvVq1axauvvsrWrVslcIVLebz55ptval0JUTHpdNCsmW0NhuRkOHYMQE/NmkM4f/4V8vKukZmZzS+/RBMWNoaMDF/0elsf7733/vl5a9euTVZWFq+++mqJ10NQVZWmTZuSk5NDamoqzz//PN9//71sKS9cTroXhNPl5sLf/w5HjxYey85OIj6+LRbLVRRFR8OGnxMWNgZFgX794OWXi57DYrFgNBoxmUxkZWVhNptRVRVFUfDy8sLPzw+9Xo+vr2+xfbwnTpzggQcewGq14uHhwe7du2nXrp2Tv3MhbifdC8LpvL2haVPw9y88lpz8AxbLNcCMquZw5YptqxtVtQ0ly999wmQycenSJU6fPk1iYiIpKSlkZWWRm5uL2WwmNzeXrKwsUlJSSExM5PTp01y6dAmTyVSkDl9//TVms5mcnBwsFgvffPONi757IYqS0BUuUb06tGoFVavaHufkfI+iWFGUKgBcv74bi8U2ZdhkguPHzZw7d45z586RmZmJqqpY77Jwg9VqRVVVMjMzC77W/L91JRctWkReXh6enp4oisK2bdvuej4hnEFCV7hEkya2rd1btbJt49O48XweeOAS9ep9QJUq9QALyclfAioPPJCOv38CRqPR7oXDVVXFaDSSkJBAQkICv//+O0FBQbzyyiucOHGCQ4cOyVKNQhPSpytcQlXh229tay/k5Nhuqt3cA2AwHEOvr8eTT94gOjoDHx/HXZaKopCdnU2bNm0kaIXmJHSFy6iqbRLEjz/a/nvs2M37qKkMGZLk8MDNpygKQUFBhIWFOfzcQpSGhK7QxPXr8NNP8O9/28bmPvBAOo8/nuSUwM2nKAphYWGytoLQlISu0Fxqqpnk5AQUxfmXok6no2HDhrLfmdCMdHAJzRkMiS4JXLCNcEhMTHRJWUIUR0JXaCp/woMrmUwml5cpRD4JXaGptLQ0u4eF2UtVVdLS0lxaphD5ZItToRmLxYLBYLj7C2/x3XffsXTpUs6ePYter+fee+9lwIABPPnkk0VWLruTzMxMLBZLmZaFFMIe0tIVmjEajSUOyXyLFy/mgw8+YPTo0ezcuZNdu3bxj3/8g6NHjxbMPisJRVEwGo13f6EQDiajF4RmUlJSSLnbquU3MRgMdO/enffee4+ePXuWufyQkBBCQkLKfB4hSkNaukIzWVlZpXr98ePHyc3N5eGHH9akfCEcQUJXaKY03QEAGRkZVK9eHU/PwlsRI0aMIDo6mnbt2hEfH+/U8oVwBLmRJjRT2p6t6tWrc+3atYLVwgCWLbMtCdm9e/dSn0961oQWpKUrNFPam2iRkZF4e3uzc+dOTcoXwhGkpSs04+XlRW5ubolfHxAQwLPPPsu7776Lqqp06tSJKlWqkJCQYNdkB5kKLLQgoxeEZko7eiHfhg0bWL58ecE43dq1azNo0CAee+yxUgWpjF4QWpDQFZoxGAwkJiZqsoODTqcjPDwc/5v3EBLCBaRPV2jG19dXs5tZqqri6+urSdmicpPQFZrx8PDQrKUZEBAgU4CFJiR0haaCg4NdPopAURRq1qzp0jKFyCehKzSl1+vR6/UVvkwh8knoCs2Fh4e7rLWbfwNNCK1I6ArNeXl5ERYW5vTgVRSF0NBQGZ8rNCWhK9xCYGAggYGBTgve/N2AZVNKoTUJXeEW8nfqdUbw5gduaGioQ88rhD1kcoRwK6qqkpGRQXJyskMmTeh0OkJDQ6WFK9yGhK5wS2azmcTEREwmk10TKBRFQa/XEx4eLn24wq1I6Aq3ZjKZSEtLIzMzE0VR7tj61el0qKpKQEAANWvWlGFhwi1J6IpywWKxFGzXnpWVhdlsRlVVFEXBy8sLPz8/9Ho9vr6+MtNMuDUJXSGEcCEZvSCEEC4koSuEEC4koSuEEC4koSuEEC4koSuEEC4koSuEEC4koSuEEC4koSuEEC70/wEfdsiKgHK/hgAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "nx.draw_networkx_edges(G,pos,\n", - " edgelist=[('A','D'), ('D','F'), ('F','G')],\n", - " width=8,alpha=0.5,edge_color='b')\n", - "\n", - "\n", - "\n", - "nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, rotate=False)\n", - "nx.draw(G,pos, node_color='lightgrey',with_labels=True, node_size=1000)\n", - "plt.savefig('graph3.png')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "colormap:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import networkx as nx\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "G = nx.DiGraph()\n", - "G.add_node('A',pos=(0,100))\n", - "G.add_node('B',pos=(2,50))\n", - "G.add_node('C',pos=(-2,50))\n", - "G.add_node('D',pos=(0,40))\n", - "G.add_node('E',pos=(1,10))\n", - "G.add_node('F',pos=(-1,10))\n", - "G.add_node('G',pos=(0,-50))\n", - "G.add_edges_from([('A', 'B')], weight=1)\n", - "G.add_edges_from([('F','G')], weight=1)\n", - "G.add_edges_from([('C','F')], weight=2)\n", - "G.add_edges_from([('A','D')], weight=3)\n", - "G.add_edges_from([('D','F'),('E','G')], weight=4)\n", - "G.add_edges_from([('A','C')], weight=5)\n", - "G.add_edges_from([('B','E')], weight=6)\n", - "G.add_edges_from([('D','G')], weight=8)\n", - "G.add_edges_from([('B','D')], weight=9)\n", - "edge_labels=dict([((u,v,),d['weight'])\n", - " for u,v,d in G.edges(data=True)])\n", - "\n", - "edges,weights = zip(*nx.get_edge_attributes(G,'weight').items())\n", - "\n", - "\n", - "pos=nx.get_node_attributes(G,'pos')\n", - "\n", - "nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, rotate=False)\n", - "nx.draw(G,pos, node_color='lightgrey',with_labels=True, node_size=1000,edge_color=weights, width=4.0, edge_cmap=plt.cm.Blues)\n", - "\n", - "plt.savefig('graph4.png')" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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49///nfxj84jRozA19dX6/JEKZnNZmJjYzl8+DDvv/8+W7dupU6dOrz00kv8+uuvWpcnvEACuhypW7cuTZs2pUWLFrRp0+a651RV5eeff6Zfv3506tSJoKAgfvjhBz766CPat2+vUcXCHRRFoVu3bnz22Wd8//332O12WrVqxdChQzl79uxNrx87dixhYWE0adJEg2qFO8lKwnKkbt26HDhwgOrVq9/0nN1u5/333ycwMJAnnnjC43tP6MmqVauoUqUKgwYN0roUr7l27RorVqwgKCiI0aNHX/fczp07qVKlCqNHj5Z51uWcBHQ5cqeALvpv9PZNV/UgNzcXRVEq5Q5yqqre8v/89OnT9O/fXwK6nJMhjnJEURRiYmJo3bo1ixYtuum5yhjOAP7+/pUynKFyfkOuTGTiazmye/duatWqxYULF+jduzfR0dF06dJF67KEEB4iPehypFatWkDhKrTBgwezf/9+jSsSQniSBLQO7d+//6b5rjk5OWRnZxf/edu2bXKVnsLx57Zt29K8eXPuv/9+XnnlFa1L0r1Lly5x5MgRrcsQpSABrRM2m401a9bQoUMHHn/88Zs2mv/999/p3LkzzZs3p23btvTr14+HHnpIo2r1w8/Pjx07dnD48GEOHTrEl19+yb59+7QuS1NPPPEEHTp0ICUlhdq1a7N06dLrnvfx8aFv3750796dzz//XDZp0jGZxaGxixcvsmjRIj744AMaNGhAXFwcAwYM0OROIOWdxWKhc+fOfPDBB7Rr107rcnTNZrPx6aefEh8fT3p6OpMmTSI2NpaqVatqXZr4A+lBa+TIkSPExsZy3333kZqayqZNm0hKSmLQoEESzk6y2+20aNGCsLAwevfuLeFcCiaTieHDh7N3717Wrl1LcnIyUVFRPPvss6SkpGhdnvg/EtBeZLfb+eyzz+jWrRt9+/alfv36nDhxgqVLl9K8eXOtyyu3jEYjhw4d4uzZs+zfv1/m/jqpbdu2rF69mqNHj1KtWjW6dOnCww8/zJYtW+54Y17heTLE4QVXrlwpvjddeHg4cXFxDB06FJPJpHVpFc5rr71GYGAgL774otallFu5ubmsWbOG+Ph4rFYrkydPZsyYMVSpUkXr0iod6UF70PHjx3n22WeJiooiOTmZtWvXsnfvXoYPHy7h7CYXL17kypUrAFitVr7++muio6M1rqp88/f356mnniI5OZlFixaRlJREnTp1eOGFFzh16pTW5VUqEtBu5nA42LJlCw899BBdu3alWrVqHD16lNWrV9O2bVuty6twzp8/T/fu3WnWrBkPPPAAvXv3pn///lqXVSEoikKXLl345JNPSE5Oxmg08sADDzBo0CCSkpJkj2ovkCEONynavGbevHmYzWbi4uIYPnw4/v7+WpcmhNvk5OTwz3/+k4SEBEwmE1OmTGHEiBGVanMub5KALqPU1FQWLFjA8uXL6d69O1OmTOHBBx+UPRJEhaaqKl999RXx8fF8//33/OlPf2LixInUrl1b69IqFBnicIGqqsVT4tq2bYvRaCQ5OZlPPvmELl26SDiLCq9o465Nmzaxe/dusrOzadasWfHUPen3uYf0oJ1gtVr517/+RUJCAjabjSlTpvDkk08SGBiodWlCaO7q1assW7aMefPmUa1aNeLi4nj00UflLj5loKuAttvtWCwWrFYrOTk52Gy24v1uTSYTgYGBmM1mAgICvLqY4+zZs7z//vssWbKEBx54gLi4OHr37i09ZZ04ceIEJpOJevXqaV2KoPBzvHnzZuLj4zl27BgTJ07kmWee8fp9MPWaJ87QRUBbrVYuXrxIdnY2iqLccXK8wWBAVVWCgoKoUaOGxy5OqKrKvn37iI+PZ9u2bYwaNYrJkyfToEEDj7QnXDd9+nRCQ0OZPn261qWIGxw9epSEhAQ+/vhjHnnkEeLi4jx+J3k95omrNB2DttlspKamkpqaSlZWFqqqlrhyyeFwoKoqWVlZxe+12Wxuqyk/P5/Vq1fTrl07Ro0aRfv27Tl16hQJCQkSzkI4qUmTJixatIiTJ08SHR3NwIED6dKlC59++ikFBQVubUuPeVJWmvSgVVUlMzOT8+fPu+VigqIoREREEBIS4vKww4ULF1i4cCELFy6kcePGxMXF0bdvX93+6CP+S3rQ5UdBQQGfffYZ8fHxpKWlFW/SFBoa6vIx9Zgn7uL1HrSqqpw/f95t/5hlPeZ//vMfnnrqKRo2bMjZs2fZtm0bX3/9tewoJ4QH+Pj48Oijj7Jr1y7Wr1/PDz/8QP369ZkwYQLHjh1z+nh6yxN3KzmgP/kEOnaEatXA3x8aNoTZsyE/3+nGir7wzMxMt3/hRd9F09PTb3ouOTmZ77//vvjvBQUFfPLJJzz44IMMHDiQ6OhoTp48yaJFi2QTfCG8pHXr1qxcuZKffvqJ8PBwevToUTx1749DE999990tw1urPLnOyZPwzDPQvDkYjdCt260OBm+8AZGRYDZDly5w6FCp6ih5iOMf/4AzZ6BNG6haFfbvh1dfhdhYmD+/VI0UuXz5sse/KxX9eFL0I9PJkydp0aIFtWrVYu/evSxdupQFCxYQGRlJXFwcgwYNkn0xyqnz58+zb98+Vq5cSZUqVRgyZAhdunShWrVqWpcmXJCXl8e6deuIj4/n6tWrTJ48mdGjRxMdHY3NZuPIkSPcfffdxa/XIk9usmEDTJoE7dvD0aNQsyZ88831r5k7F2bNgr/9DaKj4d13C3P06FEID79z+y6NQc+YAQsWQGYmlHKMxmazceLECa/8yGAwGGjQoAHXrl2jWbNmnDt3DqPRiL+/P4MHDyYuLo7WrVt7vA7hWYsXL2bixIkYjUYURcFms7Fu3TqGDh2qdWmiDFRVZc+ePcTHx7Nlyxby8vJwOBw0aNCAgwcPEhAQoEme3LIj53CA4f8GIoYNg4yM6wM6N7cwtF94AV5+ufCxnByoW7ew5z179p3bdqniatWcHuJIS0vz2niOw+HgzJkzdOzYkXPnzqGqKgUFBbRt25aVK1dKOFcQo0aNokqVKuTn55OXl0fNmjV55JFHtC5LlJGiKHTq1Il169ZRv359bDYbdrudEydO0K1bN+x2u9fzJC0t7dZPGkqI0D17ICsLHnvsv48FBsKAAbBlS4ltlz6g7XawWGDXLkhIgIkTS917Lpos7k05OTnF3/GMRiO+vr588803Xq9DeI7ZbObll1/GZDLh6+vL3Llz8fHx0bos4SYXLlzg8OHD+Pn5YTQaUVWV5ORk9uzZ4/XPsdVqda3N48cLx6ZvnKLbqFHhcyUofUAHBhb+evBB6Nq1cDyllDIyMrx+NdRgMLBp0ybsdjvXrl0jLS2NtLQ03U1EF2UzceJEDAYDfn5+jBw5UutyhBuFhYUVf25zcnJwOBwUFBRQp04dr+eJqqpkZGQ4/8bMTKhSpTCk/ygkpLDDW8JIROm7G3v2FB5w//7CAe9Jk+D990t8m91uJzs7u9TNuFNWVhYOhwN/f3/Z9rOCMpvNTJs2jdDQUOk9V0A37o6ndZ7Y7Xbnp9/eaqSh6BtMCaMQpT+jW7Uq/L1zZ6heHcaMKRz4rl//jm+zWCwoiuL0d7xNmzaxcuVKTp06RWBgIA0bNmT8+PG0KqqjFBRFwWKxEBQU5FTbQt9u3GPhySefRFXV4j05ysMeC8I1ruRJnz59uHTpEgaDAR8fH1q0aMHLL79MeAkzKG7kUp6EhEB2duEQ8R/PxStXICAASphB5lqXoygkT50qMaCtVqvTN55csWIFH374ITNnzqRjx46YTCZ2795NUlKSUwHtcDiwWq0S0BVEafZYyM/PJycnR/d7LAjXuJInAPPmzaNDhw7k5eUxe/Zs3njjDRISEpw6hkt5Eh1dGM4nTxauISly/HjhcyVwbRbH7t2Fv5di97CcnBynDp2dnc2CBQv4y1/+Qq9evQgICMBkMtGtWzdeeOEFp0t1tn2hPxVxjwXhmrJ+nv38/Ojduzepqaneab9jRwgOho8//u9jFgts3AgPP1zi20vuQT/0EPTqBfffX9hF370b3nkHHn+8xN4z4PSH4vDhw+Tn59OzZ0+n3ueu9oV+uGuPBVVVsVgsnDhxQjd7LAjXlPXzbLVa2bp1K82aNXNP+xYLbN5c+Odz5wqn1H3ySeHf+/YtHMb485/h9dcLhzuKFqo4HDB5contlRzQDzwAy5fD6dPg4wNRUYUrYyZMKNUX5OwH68qVK1StWtVtF3y0XksvXOOJZbxFx8zNzSUiIkJCuhxy9VyIi4vDx8cHi8VCaGgoCxcudE/7Fy7Ao49e/1jR30+dKlyQ8uc/Fwby3Llw6VLhquyvvipcwFKCklPw9dcLf7nI2Q9B1apVuXLlCgUFBW4JafkQlj/e2GOhaAmv0Jaqqly7do3ff/+dCxcu3PTrxsdXrlxJZGSk0+3Ex8fToUMH7HY7SUlJPP3002zYsIHq1as7dZyb8qRu3f/OyLj9mwpXX8+Y4VzRuHqR0Akmk4l8J1YdNm/eHF9fX3bs2EFMTIxb2hflS2ZmpkfCuYiqqly+fBk/P78ybXOpZ/Hx8SxevBhVVfnTn/7Ec88957W2bTYbFy9eLFXgXrhwAaPRSFhYGDVr1iQsLKz4V/369enQocN1j1+7dg2LxeJybUajkV69ejFr1iySk5Odzhhv54nHAzowMNCpgfWgoCCeffZZ5syZg9FopGPHjvj4+LBv3z6+//57pk6d6nT7ovyw2Wxe2eZRVVXS09MJCgqqcN/Ejx49yuLFi9m/fz++vr489NBD9OvXz+UbTqiqytWrV0sduFlZWVSrVu2mwA0LC6NBgwbXPV6jRg2nP6NlCeiiGz5nZWURFRXl9Pu9nSceD2iz2YzBYHBqasyYMWOoVq0aixYt4v/9v/9HQEAAjRs3Zvz48U61bTAYZHpVOaPFHguufFD17KeffqJ9+/YEBAQA0LVrVz777DNeeuml4tfk5eXdspd7u6EGPz+/WwZudHQ0Xbt2ve6x0NBQDCXtUeEiV/IEYPLkyRgMBhRFoVatWsyePZt7773XqWNokSceD+iAgACXPnD9+/enf//+ZWpbVdXik1TonxZ7thTtsVCRvpE3adKEGTNmcOnSJcxmM5s3b6ZNmzbFz589e5aoqChq1KhxU+CGhYVx//33X/d3Pc0jdyVPtm7d6pa2tcgTjwe00WgkKCiIrKwsTzd1k+DgYFlJVo5osWdL0R4Lrlx48rTc3NwShxXGjBnDiBEjrntfo0aNmD59Or1796ZKlSo0b978ugvuERER5ObmeqyX60mVLU+8snlBjRo1yM7O9uqHT1EUp6/QCjdavhyefvrmxz/44JZTNPW2x0JGRobbzx+Hw8Hly5dLPayQm5t7yx5uREQEzZs3Jyws7LYra2NjY4mNjQXgL3/5y3V7WpT3TktlyhOvBLTZbMZsNpdpcN/VNoXGduwovM1PkduM9zq7x0LR/gpGoxGj0UhUVBQDBw5k2LBhTvcM/7jHwtWrV3nxxRdZunQpKSkpJV5Ys1gspb54lpGRQXBw8C1Dt2XLljc9dtddd5XpJshhYWGcOXOG9evXs3fvXpeOo0dmsxlfX19yc3O9No1Wqzzx2vZfkZGRXrsDgtVqdWpqn/CgBx4o3G6xBK7ssVC0v0J2djYHDhzgrbfe4siRI8wu4S4VN3I4HFgsFjZu3Mizzz5bPCa9ceNGatWqdcders1mu+XFs8jISFq3bn3dY9WrV8fX19ep2lw1dOhQLl26hMlkYsGCBYSEhHilXW/YtWsXU6dO5R//+IdXZuAYDAbNhsC8FtAmk4mIiAiv3EPs4sWLPPXUU8TFxTF9+nTZhrIcKMseC0FBQXTv3p3q1aszcuRIxowZ4/SUsj179ly3n7SiKCxdupQmTZoUB+wDDzxwUxAHBQXpcjHUd999p3UJbpefn88rr7zC8uXLWbhwIXXq1PFKnoSHh2s2FdOryRUSEkJubq7HFiEoikJoaCj3338/Bw8e5Omnny7ettTZKTXCTerXL1zeWr8+TJ1aeB+2W3DHnilNmzalZs2aJCcnOx3QDRs25K9//SsffvghWVlZWK1WJkyYwORS7JcgPO/o0aOMGjWKOnXqcPjwYcLCwlBV1St5ouViJq9exi1aXuuJzWqK/jGL9niNjIxk27ZtPP7443To0IF//OMfsi+HN0VEFG4R8M9/Fu7c1a5d4cXBv//9li931/9NWFgYV69edfp9RqOR119/nbNnz7Jp0yYGDx5MnTp13FKTcJ3D4eCdd96he/fuTJkyhc8//5ywsDDAu3miFa//7F/0j+rv7096erpLe7veyGAwEB4eftN3OoPBQFxcHDExMTz55JMkJiayZMkS2YPBG/r0KfxV5OGHIS+v8C7GcXE33WzTXR+w33//nbvuusvp9xW1rygKXbp0oUuXLm6pR7ju119/ZcyYMTgcDvbv30+9W2xv7M080YImEyGLvjs1aNCAgIAAlz+ciqIQEBBAgwYN7viP2ahRI/bu3Uvr1q1p2bIln376qauli7IYNgwuXy7cGfEG7hjjO3r0KBcuXKBly5ZOv7eiLfcuz1RVZcWKFbRp04a+ffuSlJR0y3Au4u088SZNr56ZTCaioqKwWq1kZGSQlZV12ztlFCm6U0ZwcDDVq1cv9dQXk8nErFmz6Nu3b3FvOiEhwaXeliijW3yAnN2z5Y+uXbvGwYMHefPNN+nfvz/33Xef08eQPVv04eLFizzzzDOcPHmSr7/+mubNm5f6vd7ME29RVB0NzN54rzmbzYaqqiiK4tZ7zeXk5DBt2jQ2bdrEihUr6Natm/u+CHF7w4fD9u3w++83DXFkZ2eTlpZW6h9R/zgP2mAwEBUVRf/+/XnsscecPjeKplHJrdG09cUXXzB+/HhGjRrF66+/jp+fX5mO56088SRdBbS3bdmyhXHjxjF8+HDmzJkjd/52p6FDoW1baNas8J5sa9fCqlWQkHDLO0nY7XaOHz+uyYVcRVGIjo7W7Ye0ort27RpTp07lq6++YsWKFTL+/wflbzG+Gz388MMcOXKEM2fO0KZNG86cOaN1SRVHw4bw4YeFQf3oo3DsGKxcedvb/BiNRqqUYkGLJ8ieLdpJSUmhRYsWFBQUcPjwYQnnG1TqHnQRVVVZvXo1Z86c4c9//nO53ESmPMvLy2Px4sV8/PHHzJs3z6v//oqiEBUVpbuxx8rAZrMxc+ZM2rdvz6BBg7QuR5ckoP/gypUrBAcHXxcQaWlpjB49mvT0dAwGA+PHjycuLk7DKiuOgoICVq5cyaxZs2jcuDGzZ8+matWqXt2zJSAgoMLtB60nV65cYdy4cRw9ehRFUfjwww/p0KEDUPiNOS8vj+DgYI2r1C8J6BsUXUQocv78ec6fP0+rVq3Izs6mdevWfP755zRu3FjDKss3h8PBunXreOWVV4iIiGDOnDl06tQJKOxVeWvPFoPBQIMGDWSKnQeNGTOGBx98kHHjxpGfn4/FYqFq1arAzZ81cTPZpOUvVgoAABeTSURBVOIGN54wERERxQtbgoKCaNSoEefOnZOAdoGqqmzcuJGZM2fi7+/P/Pnz6dWr13X/5t7cs0XLPRYqg6ysLHbu3Mny5csB8PX1vW6zKAnnkklAO+H06dP85z//oV27dlqXUu5s376dGTNmYLFYmD17NgMGDLjtB9Rbe7boZTFCRZWamkqNGjV4+umnOXz4MK1btyY+Pl7mnDtBroaV0rVr1xg6dCjvvfeejJk5Yc+ePfTo0YOJEyfy3HPPcejQIQYOHHjH3lNl2GOhMigoKCA5OZmJEyfyn//8h8DAQN58802tyypXJKBLwWazMXToUEaOHMmQIUO0LqdcOHLkCP369eOJJ55g5MiRHDt2jOHDh5d6hkZRSEdERLhtVofBYCg+pvx47Xm1a9emdu3axT9xDhs2jOTkZI2rKl8koEugqiqxsbE0atSIqVOnal2Ortjtdlq2bHnTzX1tNhuPP/44Dz/8MCdOnCA2NtalPbkr8h4LlUF4eDiRkZGkpKQAhcNccu3GOTKLowS7du3iwQcfpGnTpsU9uTfeeIO+ffsChT/GVdYbArz77rscOHCArKwsvvjii+LHCwoKyM/Pd/sdkCvSHgsVkcPhuOmnnUOHDhXP4IiKimLZsmUV6u4uniYBXUZXrlxh4cKFTJs2rVKtRjt79ixjxoxhxowZvPvuu9cFtKfduMfCuXPnMJlMhISElJs9FiqS/Px8Zs2axSuvvCKzYtxMhjjKqEqVKmzdupWuXbuSmpqqdTle89xzz/H2229rsurSaDQSFBREWFgY9erVY+PGjXzzzTfcd9991KtXr/hWVBLOnnfs2DHat2/PoUOH5N/bAySgy8jHx4ft27czdOhQ2rVrx5IlSyr8nVu++OILwsLCaN26tdalCI04HA7ee+89unbtysSJE9m4caNskeABlXPw1M0MBgPPP/88vXv3Lt5revHixdSsWVPr0jxi9+7dJCYmsnnzZnJzc8nKymLUqFGsWrVK69KEF5w5c4ann36a3Nxc9u3bR/369bUuqcKSb3lu1KRJE/7973/TpEkTWrRoweeff17mY9rtdrKzs7lw4QKnTp3ixIkTpKSkcOLECU6dOsWFCxfIzs7Gbre74Su4WX5+Pnl5edc9NnfuXM6ePcvp06dZs2YNPXr0kHDWmDfOE1VVWbVqFa1bt6ZXr17s3LlTwtnDpAftZr6+vrzxxhv069ePMWPGsGHDBuLj44sXt5R2/wGr1crFixfJzs6+7YyF/Px8cnJyimcsBAUFUaNGDbfMWLDZbCxfvpx9+/aRkJBQ5s3ThWd48jz547l66dIlJkyYwLFjx9i2bZtLtxUTzpMetId06tSJQ4cOYTKZaN68OTt37iQnJ4fGjRuzadOm277PZrORmppKamoqWVlZqKpa4l1GHA4HqqqSlZVV/F6bzeZS3Xa7ndWrV9O4cWPWrl3LSy+9dMelud26dfPqDA5RyNPnyerVq2ndujX5+fls2bKFZs2acc8993Dw4EEJZy+SaXZeUHQrn9DQUFJSUoiIiCA1NfW6+dOqqpKZmem2TYKcXS6tqiqff/45M2fOJDg4mDlz5tC9e/cy1+EN06dPJzQ0lOnTp2tdisd54zyxWq3Url2ba9eu0ahRIzIzM1m+fHm5OR8qEulBe0H//v159913OX78OAUFBWRkZLBkyZLi51VVLd7W1F3fL+90zJMnT9K9e3csFguqqrJ161batm3La6+9xltvvcXu3bvlw6hD3jpP3nnnHXJycsjPz+fo0aMsXrxYzgeNSA/aC1RVpWbNmmRmZlJQUACAv78/6enpBAcHc/78eY/v3Fa0ZWp+fj4tWrTgxIkTjB07luPHj3PhwgVmzZrFsGHDyuVUqcrQgy4KUk+fJ6qqcs899xRfTPTx8aFu3br8/PPPbm9TlEwuEnqBoih8/PHHHD58mKNHj3LgwAF++ukn1q1bx9ChQz32oYPCD/bly5fx8/MjNDSUl156idTUVOx2O0uWLGH+/PmMHz++0i5XLy8yMzO9cp4cPHgQk8lEq1ataN26NU2aNKFVq1YeaVOUTD6VXtK1a1e6du163WPeunuIqqqkp6ezZcsW4uPjix83Go2cO3dOwlnnbDabx29gAIXnSZs2bcjKypIl2zohn0wNpaWleW3VocPhoGrVqtSuXZuIiAj8/Pzw8fGRva3LAW+fJ2lpaXKfRp2QgNZI0WY/3lS3bl1OnDghO7uVI1qcJ1arFavVKueJDpS/K0IVREZGhtf37FBVlYyMDK+2KcpGzpPKTXrQGihaluusPn36cOnSpetmWhRtXFRaWVlZ2O122XmsHHDnefLII48wY8aMUh9DzhN9kIDWgMViQVEUl3pG8+bNo0OHDi63rSgKFouFoKAgl48hvEPOEyFDHBqwWq0lLsv1FIfD4fUxTeEaOU+EBLQGcnJyKnX7onS0/n/Sun0hQxzuc/Ik/O1vsG8fHD0KDz4I33xzy5e6upERQFxcXPG85TZt2pCQkOD0McrSvvAed50nAFOnTmXYsGFea1+4hwS0u/z4I2zeDO3bQ37+HV9alqvy8fHxZRpbLGv7wnvkPBEyxOEuAwZAWhp8/DHcf/8dX1qa3eU8Sev2Relo/f9UYvvnzkGVKqAocO2ad4qqZCSg3cWJTYa0XkardfuidLT+fyqx/WnTCgNaeIwEtAbutAF+ZWhflE5Z/p8mT55M27Zti3/FxcW5t/3vvoMvv4QXX3S5RlEyGYPWgNlsxmAwOD2FauvWrWVu22AwyBLeckK354ndDpMnw8svQ9WqZW5L3J70oDUQEBCg2QUYVVUJCAjQpG3hHN2eJwsXQm4uPPusd4uqhCSgNWA0GjVboRUcHCzLd8sJXZ4nly7BzJnw7rsg1zI8TgJaIzVq1PD6VXpFUahevbpX2xRlo7vzZMYMaNcO+vb1ak2VlYxBa8RsNmM2m7FYLF5vU5QfujpPfvwRPvwQdu6EK1cKHyuq6+pVMBpBzi+3koB2F4ulcKEKFM4PzcqCTz4p/HvfvnCL8bzIyEiv3FEFCi/6REZGerwdLXTv3r1Cj6vr5jz5+Wew2eBWC2Bq14bYWPjDzZBF2clNY93l9GmoV+/Wz506BXXr3vKpy5cve/x2RoqiEBERQWhoqMfa0FLRLIfyeMPb0tLFeZKRUbiNwR99+SW89VZh5yQqCho29Fh9lZH0oN2lbl1w4cMTEhJCbm6ux24IWlBQQM2aNStsOEPFDuYiVatWZevWrURHR3tkAUvRXb3veJ5Urw7dul3/2OnThb8/+KAsWvGAin9m61xRryUkJMQjF4O+/PJLli9f7vbjCu9RVZXp06fzzjvveOQ8KQrn8PBwtx5XlJ0MceiEqqpkZmaSnp7ulj2ADQYD4eHh5Obm0qVLFyZPnuzSajKhvVdffZX169eTlJREaGioR86TivwTVnkmQxw6UdSLCQoKIi0tDavV6tKQh6IomM1mIiMji38U3r59O127dsVsNjN+/Hh3l66pv//97yxZsgRFUWjatCnLli3D399f67Lc5q233mLt2rV88803VKtWDcBj54nQH+lB65TVaiUjI4OsrCwURbljb8lgMKCqKsHBwVSvXv2WU6ROnjxJt27deOONNxg9erQnS/eac+fO0blzZ44dO4bZbOaxxx6jb9++PPXUU1qX5hYJCQnEx8ezc+dO7r777lu+xt3nidAX6UHrVFHvxm63Y7FYsFqt5OTkYLPZUFUVRVEwmUwEBgZiNpsJCAi44wrBe++9l6+++ooePXpgNpt59NFHvfjVeE5BQQFWqxWTyYTFYqFWrVpal+QWixcv5p133uHbb7+9bTiD+88ToS8S0DpXtNzXHUt+GzVqxJdffklMTAx+fn4MHDjQDRVq5+677+bFF1/knnvuwWw2ExMTQ0xMjNZlldmqVat47bXXSEpKou5tpmfeyJ3nidAPmcVRyTRv3pwvvviCcePGsW3bNq3LKZPMzEw2bNjAqVOn+O2338jJyWHVqlVal1UmH3/8MdOmTWPbtm00aNBA63KExiSgK6EHHniA9evXM3LkSL799luty3HZ119/Tb169ahRowYmk4khQ4awZ88ercty2caNG5k0aRJbtmyhcePGWpcjdEACupLq3Lkza9asYdiwYezdu1frclxyzz33sG/fPiwWC6qqsn37dho1aqR1WS756quviI2NZePGjbRo0ULrcoROSEBXYj179mTFihU88sgjJCcna12O09q1a8ewYcNo1aoVTZs2xeFwlMtphDt37mTEiBGsX7+etm3bal2O0BGZZidYv349//M//8PXX39NkyZNtC6nUtm3bx8DBgzgo48+olevXlqXI3RGZnEIhgwZQm5uLjExMSQlJdFQNrzxiuTkZAYOHMjy5cslnMUtSUALAEaMGEFubi69e/fm22+/pd7tduYTbvHjjz/St29fPvjgA/r166d1OUKnJKBFsbFj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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import networkx as nx\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import pylab\n", - "\n", - "G = nx.DiGraph()\n", - "G.add_node('A',pos=(0,100))\n", - "G.add_node('B',pos=(2,50))\n", - "G.add_node('C',pos=(-2,50))\n", - "G.add_node('D',pos=(0,40))\n", - "G.add_node('E',pos=(1,10))\n", - "G.add_node('F',pos=(-1,10))\n", - "G.add_node('G',pos=(0,-50))\n", - "G.add_edges_from([('A', 'B')], weight=1)\n", - "G.add_edges_from([('F','G')], weight=1)\n", - "G.add_edges_from([('C','F')], weight=2)\n", - "G.add_edges_from([('A','D')], weight=3)\n", - "G.add_edges_from([('D','F'),('E','G')], weight=4)\n", - "G.add_edges_from([('A','C')], weight=5)\n", - "G.add_edges_from([('B','E')], weight=6)\n", - "G.add_edges_from([('D','G')], weight=8)\n", - "G.add_edges_from([('B','D')], weight=9)\n", - "edge_labels=dict([((u,v,),d['weight'])\n", - " for u,v,d in G.edges(data=True)])\n", - "pos=nx.get_node_attributes(G,'pos')\n", - "\n", - "import matplotlib.pyplot as plt\n", - "\n", - "plt.text(0,120,s='8', color='red', size=15, horizontalalignment='center')\n", - "plt.text(2.4,50,s='10', color='red', size=15, horizontalalignment='center')\n", - "plt.text(-2.4,50,s='3', color='red', size=15, horizontalalignment='center')\n", - "plt.text(-0.35,35,s='5', color='red', size=15, horizontalalignment='center')\n", - "plt.text(1.35,0,s='4', color='red', size=15, horizontalalignment='center')\n", - "plt.text(-1.35,2,s='1', color='red', size=15, horizontalalignment='center')\n", - "plt.text(0.45,-55,s='0', color='red', size=15, horizontalalignment='center')\n", - "\n", - "\n", - "nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, rotate=False)\n", - "nx.draw(G,pos, node_color='lightgrey',with_labels=True, node_size=1000)\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/lectures/_static/lecture_specific/short_path/figures.ipynb b/lectures/_static/lecture_specific/short_path/figures.ipynb new file mode 100644 index 00000000..aeb553fc --- /dev/null +++ b/lectures/_static/lecture_specific/short_path/figures.ipynb @@ -0,0 +1,229 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABH80lEQVR4nO3de3hU1b3/8c/MBJJJIAMkYQgxIISbRRQQpAjqsWpbW+WiVWqxVY+iPUJVOPRqtVilHi9QrVpFsBULCNVK0LZWa+sFvHAR8YYiCBgacsdfBsIkYWb27w+alECAJLNn9mXer+fhecpk2Pvr02TPJ2ut71oewzAMAQAAAB3ktboAAAAAOBuBEgAAAHEhUAIAACAuBEoAAADEhUAJAACAuBAoAQAAEBcCJQAAAOJCoAQAAEBcCJQAAACIC4ESAAAAcSFQAgAAIC4ESgAAAMSFQAkAAIC4ECgBAAAQFwIlAAAA4kKgBAAAQFwIlAAAAIgLgRIAAABxIVACAAAgLgRKAAAAxIVACQAAgLgQKAEAABAXAiUAAADiQqAEAABAXAiUAAAAiAuBEgAAAHEhUAIAACAuaVYXAAB2ZBiGotGoYrGYDMOQx+OR1+uVz+eTx+OxujwAsBUCJQBIikQiqqurUzgc1v79+1VfX69YLHbE+7xerzIyMpSZmSm/36+srCylpfEoBZDaPIZhGFYXAQBWMAxD4XBYNTU1qq2t7fB1AoGAcnJy5Pf7Gb0EkJIIlABSUigUUkVFhRoaGky7Znp6uoLBoLKzs027JgA4AYESQEqJRCIqKyuLa0TyeAKBgPLz85kKB5AyCJQAUkYoFFJpaami0WjC7+Xz+VRQUMBoJYCUQKAE4HqGYaiqqkqVlZVJv3cwGFRubi5rKwG4GoESgKsZhqGKigpVV1dbVkNubq6CwSChEoBrsbE5AFerqqqyNExKUnV1teU1AEAiESgBuFYoFLJkmrs1FRUVCoVCVpcBAAlBoATgSpFIRKWlpVaX0UJpaakikYjVZQCA6QiUAFyprKwsKd3c7RGNRlVWVmZ1GQBgOgIlANcJhUIJ3WcyHrW1tUx9A3AdAiUAV2nq6raziooKscEGADchUAJwlXA4bOpxionQ0NCgcDhsdRkAYBoCJQBXqampsbqENnFKnQDQFgRKAK4RiURMXTu5dOlSDRs2TJMnTzbtmk1qa2vp+AbgGgRKAK5RV1dn6vVWrlwpSdq2bZvef/99U68tmV8vAFiFQAnANcxcl/jRRx9py5YtOuussyRJzz77rGnXbsI6SgBuQaAE4Br79+837VpNAfLmm2/W8OHD9be//c30AEigBOAWBEoArmAYhurr6025Vn19vV544QWdfPLJGjhwoCZPnqy6ujq99NJLply/STgcZvsgAK5AoATgCtFoVLFYzJRr/f3vf9fevXubm3G+/vWvKzMz0/Rp71gsZrvTfACgIwiUAFzBrDApHZzuzsjI0AUXXCBJyszM1Fe/+lVt3LhRn3/+uWn3kcytGwCsQqAE4ApmTR2XlJTonXfe0ZlnninDMBQKhRQKhXT++edL+k/nt1mY8gbgBh6DpxkAF2hsbNSnn34a93UeeOABLVq06Khfz8vL09///nf5fL647yVJgwYNUufOnU25FgBYJc3qAgDADF5v/BMu0WhUzz33nAoLC3X77bcf8fXXXntNixcv1po1a3T22WfHfT/JnLoBwGoESgCu4PP55PV641qTuGbNGlVWVmrmzJkaPXr0EV8fMGCAnnrqKT377LOmBEqv12vaSCcAWIlfjQG4gsfjUUZGRlzXePbZZ9WpUydNmjSp1a93795d5557rl5//XVVV1fHdS9J8vv98ng8cV8HAKzGGkoArlFeXm5K0EuW3Nxc9erVy+oyACBujFACcA2/3291Ce3itHoB4GgIlABcIysry+oS2sVp9QLA0RAoAbhGWlqaunTp4ojNwgOBgNLS6IsE4A4ESgCuUF9fr2uvvVaXXHKJI7biWbBggWlnjwOA1ez/1AWAY2gKkl27dtXjjz+u8vJyWwc1wzD02Wefae7cueratauuvfZaW9cLAG1BoATgSIcHyZ49e2r58uUqLS3VoEGDrC7vqDwej8455xwtX75ceXl5evzxxwmWAByPQAnAUY4VJKdMmSJJys7OViAQsLjS1gUCAWVnZ2vKlCnavXs3wRKAKxAoAThCW4LkofLz8213Co3P51N+fn6L1wiWANyAQAnA1tobJJukpaWpoKAgiZUeX0FBwVE7uwmWAJyMQAnAljoaJA+VnZ2tnj17JrjStgkGg8rOzj7u+wiWAJyIQAnAVswIkofKy8tTbm5uAiptu9zc3HbXQLAE4CSc5Q3AFurr6zVjxgwtXrxYkUhEvXv31vz58zsUIg9n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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import networkx as nx\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import pylab\n", + "\n", + "def create_base_graph():\n", + " G = nx.DiGraph()\n", + " nodes_with_positions = {\n", + " 'A': (0, 100),\n", + " 'B': (2, 50),\n", + " 'C': (-2, 50),\n", + " 'D': (0, 40),\n", + " 'E': (1, 10),\n", + " 'F': (-1, 10),\n", + " 'G': (0, -50)\n", + " }\n", + " for node, pos in nodes_with_positions.items():\n", + " G.add_node(node, pos=pos)\n", + " edges_with_weights = [\n", + " ('A', 'B', 1),\n", + " ('F', 'G', 1),\n", + " ('C', 'F', 2),\n", + " ('A', 'D', 3),\n", + " ('D', 'F', 4),\n", + " ('E', 'G', 4),\n", + " ('A', 'C', 5),\n", + " ('B', 'E', 6),\n", + " ('D', 'G', 8),\n", + " ('B', 'D', 9)\n", + " ]\n", + " for u, v, w in edges_with_weights:\n", + " G.add_edge(u, v, weight=w)\n", + " return G\n", + "\n", + "def draw_base_graph(G, file_name):\n", + " pos = nx.get_node_attributes(G, 'pos')\n", + "\n", + " nx.draw(G, pos, node_color='lightgrey', with_labels=True, node_size=1000)\n", + " nx.draw_networkx_edges(G, pos, edgelist=G.edges(), arrows=True)\n", + " \n", + " edge_labels = {(u, v): d['weight'] for u, v, d in G.edges(data=True)}\n", + " nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, rotate=False)\n", + " \n", + " plt.savefig(file_name)\n", + "\n", + "G = create_base_graph()\n", + "draw_base_graph(G, file_name='graph.png')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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3O79Vpjk50sLF0qDByf5J0MyESjtraWlRaWlpQoGg1qxYoVmzZrVq/cl7foAZAgCJfAlwzAUjUYVi8VkGIZcLpfcbrc8Hk/PowyGIT3/vLR2baen/vnPf+qf//qXDh4xQpdccknn9wYC0sUXS9nZSfxJkEwESnubNm2aVq1apZtuukn/7//9v34fp9/XByBD0JQDfMnlcikrK0vZ2dnKyclRdna2srKyDvzHwuWSZsyQDj2001MnnXSSDhszRp/v2EHnN5BmCxcu1KpVqzRr1qyEwqSUwPUByBAESiAZPB7pnHOkIUM6PXXuuefS+Q2k2f3336+HHnqovaMbQGoRKIFkycuTvv1tKSenw8Mul0uXXXaZcrKz9cILL6iioqLze19/XXr//TQVCjjbypUrtWjRIvl8Pr3zzjud1y8DSDp+y4BkKiqS5s2LT4PvIzs7W5dccolcLpcee+wx7d27t/N72fPbkq677jpdd911ZpeBXtq5c6dOPfVUeTwevf32251uDwQgNWjKAVKBzm/HaPlyu8xsGqcsr78d3QASxwglkArHHCNNntzp4bFjx+qkE09UfUODHnnkkc7vY89vy8nOziZM2sT06dMVDAZ10003ESaBNCNQAqlA5zeQVsns6AbQdwRKIFXo/AbSgo5uwHwESiCV6PwGUoqObsAa+M0DUo3ObyAl6OgGrINACaRDebl02mmdHi4qKtI555yjSDSqBx54oPNewdGotHSp9MUX6akT7SKRiH72s59p5MiR8nq9GjVqlP77v/+7y/2ckX4tLS2aPHmympqa9PTTT+uwww4zuyQgoxEogXSh89tW7rjjDv32t7/Vfffdpw0bNuiXv/yl7rzzTt17771mlwbR0Q1YDYESSBc6v23lrbfe0qxZszRjxgwdeuihmjdvnk477bSum6iQVnR0A9ZDoATSic5v2/j617+uV199VR9//LEk6f3339fKlSv1zW9+0+TKMhsd3YA1sVMOYIbqaumhh6Tm5g4Pt7S0aPHixWppadGCBQtUWlra+b1z5khHHpmmQjOXYRj66U9/qjvuuEMej0fRaFS33nor2zCaaOXKlTrhhBNUUFCgzz//nCYcwEIYoQTMQOe35S1btkxLlizRE088obVr1+rRRx/Vr371Kz366KNml5aR6OgGrI0RSsBM7PltWSUlJfrJT36iRYsWtT92yy23aMmSJdq4caOJlWUe9ugGrI8RSsBMdH5bVmNjY6cg7/F4uG2QCejoBqyPQAmYic5vyzrzzDN166236oUXXtC2bdu0fPly3XXXXZozZ47ZpWUUOroBe2DKG7CCxkbpwQelPXs6PGwYhu677z7V7t6tb82YoSlTpnR+7/Tp0sknp6nQzLF3717dcMMNWr58uXbt2qWDDjpI5513nm688UZlZ2ebXV5GuP/++3X55ZdrzJgx2rBhA9sqAhZGoASsgs5voB0d3YC98HEPsAo6vwFJdHQDdkSgBKyEPb+R4dijG7AnAiVgNXR+I4PR0Q3YE4ESsBo6v5Gh6OgG7ItACVgRe34jw7BHN2BvBErAqvLypG9/W8rJ6fCwy+XSZZddppzsbL3wwguqqKjo/N7XX5fefz9NhQKJWblypRYtWiSfz6d33nmH2wMBNsRvLWBlvez8rq+v7/xeOr+T4rTTTtNpXTRKITno6AacgUAJWF0vOr9/+9vf0vmdIh988IE++OADs8twpJaWFh111FF0dAMOQKAE7IDObzjQ9OnTVVVVRUc34AAESsAO6PyGw7R1dM+cOZOObsABCJSAXdD5DYfYt6N7+fLlZpcDIAkIlICd0PkNm6OjG3AmfpMBu6HzGzZFRzfgXARKwI7o/IbN0NENOBuBErArOr9hI20d3T//+c/p6AYciEAJ2BWd37CJfTu6b7zxRrPLAZACBErAzuj8hsXR0Q1kBgIlYHd0fsOi6OgGMge/3YAT9ND5vXDhQjq/kXZ0dAOZhUAJOEU3nd9+v5/Ob6QVHd1A5iFQAk5C5zcsgI5uIPMQKAEnofMbJqOjG8hMLsPgrwfgOI2N0oMPSnv2dHjYMAzdd999qt29W9+aMUNTTjtNOuIIacwYyeuNB9KcnPh/Q5I0fPhwSVJVVZXJlVjf/fffr8svv1xjxozRhg0baMIBMgiBEnCq6mrpoYek5uYOD7e0tGjx4sXyH3mkLn7tNbmzs+NBcr+GHsQRKHsnGo3quOOO06ZNm/T555/ThANkGAIl4GSbN0tPPNFpGrumpkbZP/mJBg4fLndWlknF2QOBsncikYgqKyvV2NhIEw6QgZiPAJysu87vI45QwcEHEyaRNFlZWSopKSFMAhmKQAk4XVed34GAObUAAByJQAk4XVed31lZdHMDAJKGQAlkgh72/AYAIFEESiBTdLPn9/5ee+01nXnmmTrooIPkcrm0YsWK9NQHy7v99tvlcrl09dVXm10KAIshUAKZpG3P7x40NDToyCOP1H333ZemomAHq1ev1u9+9zsdccQRZpcCwIJo8QQyTXl5fAq8G2eccYbOOOOMNBYEq6uvr9f555+vBx98ULfccovZ5QCwIEYogUw0cqTZFcBGFi1apBkzZuiUU04xuxQAFsUIJZCJXC66vNErS5cu1dq1a7V69WqzSwFgYQRKIFOx1SIOYPv27brqqqv08ssvKzc31+xyAFgYgRIA0KV33nlHu3bt0lFHHdX+WDQa1Wuvvab77rtPzc3N8vSwHhdA5iBQAkhMVZX05X7XcJaTTz5ZH374YYfHFixYoLFjx+rHP/4xYRJAOwIlgA7q6+u1ZcuW9u+3bt2q9957T0OHDlVpaWnnN/ztb9Ls2dLgwWmrEekxaNAgjR8/vsNj+fn5Kiws7PQ4gMxGlzeADtasWaNJkyZp0qRJkqRrrrlGkyZN0o033tj1G8Jh6cknpZaWNFYJALASl2HQ6gkgAfffLwWD0tix0vz5jmv2Gf7ldH5VVZXJlQCAdTFCCSA5Nm6U/vd/za4CAGACAiWAxEQiX/33669L779vXi0AAFMQKAH0m9HSItXVdXzwueek7dvNKQj9xuonAIkgUALol2hrqzauWKHY/s040ai0dKn0xRem1IW+a2lp0YoVK9Ta2mp2KQBsikAJoG8MQ4rF1BwM6oUrr9QjjzzS+TUNDXR+28j06dP1ve99T6FQyOxSANgUgRJAzwwjHhBDofioY0WF9PLLynv8cY3w+fT5jh16/vnnO78vGJSeeYY9wy1u4cKFWrVqlaZNm6bCwkKzywFgU9w2CMCBNTZKDz4o7dnT4WHDMHTfffepdvdufWvGDE2ZMqXze6dPl04+OU2FJp+Tbxt0//336/LLL9eYMWO0YcMGud2MMQDoH64eAA4sL0/69relnJwOD7tcLl122WXKyc7WCy+8oIqKis7vpfPbklauXKlFixbJ5/PpnXfeIUwCSAhXEAC9U1QkzZvX6cbl2dnZWrhwoVwulx577DHV19d3fi+d35ayc+dOnXrqqfJ4PHr77bc1cOBAs0sCYHMESgC9V14unXZap4f9fr/OOeccRaJR/fa3v1UsFuv4Ajq/LaOlpUVHHXWUmpqa9PTTT+uwww4zuyQADkCgBNA3xxwjTZ7c6eGxY8fqpBNPVH1DA53fFjZ9+nRVVVXp5z//uWbNmmV2OQAcgkAJoG9cLmnGDOnQQzs9ddJJJ+mwMWPo/Laoto7umTNn6sYbbzS7HAAOQqAE0Hcej3TOOdKQIZ2eOvfcc1U4dKjeWbtWa9as6fxe9vw2xf3336+HHnpIY8aM0fLly80uB4DDECgB9A+d37ZBRzeAVOOqAqD/6Py2PDq6AaQDgRJAYuj8tiw6ugGkC4ESQOLo/LYkOroBpAuBEkDi6Py2HDq6AaQTgRJActD5bRl0dANINwIlgOSh89t0dHQDMANXGgDJRee3aejoBmAWAiWA5KPzO+3o6AZgJgIlgNSg8zut6OgGYCYCJYDUoPM7bejoBmA2AiWA1Em08/vVV9NQpL3R0Q3ACgiUAFIrkc7vlSvp/O4BHd0ArIKrD4DUo/M76ejoBmAlBEoA6UHnd9LQ0Q3AagiUANKHzu+koKMbgNUQKAGkD53fCaOjG4AVESgBpBed3/1GRzcAqyJQAkg/Or/7jI5uAFbGFQmAOXrZ+b13797O782wzm86ugFYHYESgHl60fn9wAMPZHTnd0tLiyZPnkxHNwBLI1ACMBed3z2aPn26gsEgHd0ALI1ACcBcdH53i45uAHZBoARgPjq/O6GjG4CdECgBWAOd3+3o6AZgN1ylAFgHnd90dAOwJQIlAGvJ4M5vOroB2BWBEoD1ZGjnNx3dAOyKQAnAejKw87uto3vWrFl0dAOwHQIlAGvKoM7vfTu6n3nmGbPLAYA+cxmGzT7GA8gs1dXSQw9Jzc0dHm5padHixYvV0tKiBQsWqLS0NP6EYcRHKT//PL4e0++XRo2SJkyQxo3r1PDTld27d+upp55SNBrVT37yE0nSL37xC3k8Hp199tkaOnRo0n68lStX6oQTTlBBQYE+//xzmnAA2BKBEoD1bd4sPfFEp2nsmpoa/eY3v5Hb7dZVV12lQQMGSOvWSfX18Re4XNLEiZLPF/9+6lTpjDOkA9yG54knntD5558vl8ultktk238//vjj+va3v52UH2vnzp0qKytTJBLRunXraMIBYFsESgD28NZb0ksvdXp448aNWrpsmYq9Xi087ji5I5GOLxgwQDrqKCk3N/79CSdI//EfPZ6qsbFRJSUl2r17d4fHCwsLVVFRoby8vIR+FCk+wlpaWqpgMKgVK1bQhAPA1lhDCcAeeuj8/tZRR6k8HNZ7q1Z1fl9rq/Thh/HbCknSqlWdps/3l5eXp+uvv16ufabHXS6Xrr/++qSESYmObgDOwgglAPuIRqU//lHati3+vWFIW7dKFRX68MMPVbt7t4qHD+966tjv/2oN5cyZXYbTfe0/SpnM0cmFCxfqoYce0qxZs7RixYqEjwcAZmOEEoB97N/5vX279OVWjOPHj5c3N1eVVVXauXOnJCna1KRdu3bF10HW1MTDp9T+np60jVK26e/oZDQa1VNPPaVwOCyJjm4AzsQIJQD7qa6WFi+W/v3vDg9Ho1G9+eabisZiOnL0aDV+9pm2tbZq7PjxKiwsjL9o7Fjpa1+TrrrqgKdpbGxs77qur6/vV6B8/vnnNXPmTE2ePFk33HCDzjrrLDq6ATgOI5QA7KeoKH5LoP14PB4dNXmyfJK+2LJFra2typVUV1f31Ys2bYpPmXe1H/g+DMNQdna2/uM//kOnn366srKyFIlE1NfP4CtXrpTH49F7772nOXPmyO12s0c3AMfJMrsAAOiXlhaprEz65JOvHjMMtVZVad9boedI+mLf/b0NQ9qwIT79fcQR7Q9HIhE1NDQoHA6rsbFRTU1NisViuvvuuyVJH3/8sSTJ7XYrNzdXeXl58nq9ys/PV1ZW95fSf/7zn4q2NQQp3tyzfv16bhEEwFEIlADsKStLOvhgqbFRqqyUJO3Zs0dbP/9cBfrq4pYjqXbvXsViMbnb7j/Z1CS9+qqMCRMUDodVW1vbcRSzB7FYTI2NjWpsbGx/zOfzqbCwUF6vt0NneDgc1tq1azu8PxKJaO7cufrf//1ffeMb3+jvTw8AlkKgBGBPhYXSjh3xqe9wWPriC+UPHKgcv1+f19QoX9IgSbmKr+0JhUIaPHhw+9tDzc0Kbtmi5gPcQqg36urqVFdXp5ycHAUCARUUFEiSVq9ercg+98X0eDwyDEPz5s3T+PHjEz4vAFgFTTkA7GnbNukPf4j/d2ur9M478ZFHSU1NTdq5c6d27NghTyymmKTBhYUaP368Ivn5qpw3T3VTp6asNJ/Pp+LiYs2bN0/PPvusJGnQoEG6/PLLtWjRIpWUlKTs3ABgBkYoAdjToYfGt1V87734bjgTJkhr10rRqHJzczVq1Cgdcsghqqys1CeffKLa2lrVjB2r6osuUtTrTWlpbSOW4XBYHo9Hv/rVr7Rw4ULl5+en9LwAYBZGKAHYVzQqvfZa/MswpNra+K44+2luadG6I49UzqJFUix2wL28k6FtzebAgQN1yCGHdFhbCQBOQ6AEYH9VVfG9vteti0+F79P5bUgKzpypmtNOM608v9+vQCBAqATgWARKAM6xd6+0erX05z9L69dLknaddpp2zZxpcmFSIBBQUVGR2WUAQEoQKAE4TyQi/fWvCm3YoIpvftPsatqVlpa2d4ADgJMQKAE4UiQS0ebNmzvcVNxsHo9H5eXlPd4IHQDsiK0XAThSZWWlpcKkFN9rvPLLm7ADgJMQKAE4TigU6vXON+lWV1enUChkdhkAkFQESgCOYhiGgsGg2WX0KBgMitVGAJyEQAnAUcLhcFK2U0yl5uZmhcNhs8sAgKQhUAJwlNraWrNL6BW71AkAvUGgBOAYkUjEsmsn91dXV6dIJGJ2GQCQFNy7AoBjNDQ0JO1YmzZt0uOPP67Vq1erurpaUvzm5EcffbTmzZuncePGJXyOhoYG+Xy+hI8DAGYjUAJwjGStS/zTn/6k22+/XYceeqi+853vqKysTC6XS59++qn++te/6txzz9WLL76okpKShOslUAJwAm5sDsAxPv30UzU2NiZ0jHfffVcXXXSRTjjhBN11110aMGBAp9e89NJLmjRpkoYNG5bQufLz8zVy5MiEjgEAVsAIJQBHMAxDTU1NCR/nwQcflNvt1o033thlmJSk008/PeHzSPERSsMw5HK5knI8ADALTTkAHCEajSoWiyV8jNWrV2vcuHEqKipKUmXdi8ViltvNBwD6gxFKAI6QaJiUpD179qipqUkHHXRQp+ei0WiHm5F7PJ6kjCwmo24AMBsjlAAcIdXLwefPn69Jkya1fz366KNJOS7L2AE4ASOUABwhGaOFQ4YMUW5urnbu3NnpuTvuuENNTU2qrq7W97///YTP1Yb1kwCcgEAJwBHc7sQnXDwej44++mi9+eabqq6u7rCOsqysTJK0Y8eOhM+zr2TUDQBm40oGwBE8Hk9Swtkll1yiWCym//7v/1Zra2sSKuue2+2Wx+NJ6TkAIB0YoQTgCC6XS7m5uQnfh3LSpEm6/vrrdfvtt+ucc87RvHnzNHr0aLndblVXV+uVV16RFL+HZKK8Xi9T3gAcgRubA3CMqqoq1dTUJOVYmzZt0pIlS9q3XnS5XAoEApo4caJmzpypadOmJXwOv9+v4cOHJ6FaADAXgRKAY9TV1Wn79u1ml9FrJSUlbL0IwBFYQwnAMZIxDZ1OdqsXALpDoATgGFlZWbYZ8fP5fMrKYhk7AGcgUAJwlMLCQrNL6BW71AkAvUGgBOAoXq9XOTk5ZpfRo5ycHHm9XrPLAICkIVACcJS2bmwrCwQC3C4IgKMQKAE4TkFBgWXXUvp8PhUUFJhdBgAkFYESgCMVFxdbbhcaj8ej4uJis8sAgKQjUAJwpKysLI0YMcLsMjoYMWIEnd0AHIlACcCxCgoKNGzYMLPLkBRfN8lUNwCnIlACcLSioiL5/X5Ta/D7/abXAACpxNaLABzPMAzV1NQoGAym/dyBQEBFRUVpPy8ApBOBEkDGCIVC2rFjh6LRaMrP5fF4NGLECKa5AWQEAiWAjBKJRFRZWam6urqUncPn86m4uJgGHAAZg0AJICOFQiEFg0E1Nzcn7Zg5OTk03wDISARKABnLMAyFw2HV1tYmNGLp8/lUWFgor9fLDjgAMhKBEgAUnwpvaGhQOBxu/4rFYp1e53a75fV627/y8/OZ2gaQ8QiUANAFwzAUjUYVi8VkGIZcLpfcbrc8Hg+jkACwHwIlAAAAEsKNzQEAAJAQAiUAAAASQqAEAABAQgiUAAAASAiBEgAAAAkhUAIAACAhBEoAAAAkhEAJAACAhBAoAQAAkBACJQAAABJCoAQAAEBCCJQAAABICIESAAAACSFQAgAAICEESgAAACSEQAkAAICEECgBAACQEAIlAAAAEkKgBAAAQEIIlAAAAEgIgRIAAAAJIVACAAAgIQRKAAAAJIRACQAAgIQQKAEAAJAQAiUAAAASQqAEAABAQv5/cbCwBhkjMLwAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def draw_graph_with_highlights(G, highlighted_edges, edge_color, file_name):\n", + " pos = nx.get_node_attributes(G, 'pos')\n", + "\n", + " nx.draw(G, pos, node_color='lightgrey', with_labels=True, node_size=1000)\n", + " nx.draw_networkx_edges(G, pos, edgelist=G.edges(), arrows=True)\n", + "\n", + " nx.draw_networkx_edges(G, pos, edgelist=highlighted_edges,\n", + " width=8, alpha=0.5, edge_color=edge_color, arrows=True)\n", + "\n", + " edge_labels = {(u, v): d['weight'] for u, v, d in G.edges(data=True)}\n", + " nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, rotate=False)\n", + "\n", + " plt.savefig(file_name)\n", + "\n", + "highlighted_edges_red = [('A', 'C'), ('C', 'F'), ('F', 'G')]\n", + "draw_graph_with_highlights(G, highlighted_edges_red, 'r', 'graph2.png')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABQl0lEQVR4nO3de3xU9Z3/8ffMhCRDSAZIQggYEMLNIioCKghYq2i9VEVRUNuqVdvHil0vD7q9uLp21bquYvUn9YpusVZhtYC3Wl3bVUBcuSmKXORqIIQhCZiBZJIwM+f3R0wg5EKSOTPnMq/n45HHysnMmQ9dOHnz/X4/36/HMAxDAAAAQBd5rS4AAAAAzkagBAAAQFwIlAAAAIgLgRIAAABxIVACAAAgLgRKAAAAxIVACQAAgLgQKAEAABAXAiUAAADiQqAEAABAXAiUAAAAiAuBEgAAAHEhUAIAACAuBEoAAADEhUAJAACAuBAoAQAAEBcCJQAAAOJCoAQAAEBcCJQAAACIC4ESAAAAcSFQAgAAIC4ESgAAAMSFQAkAAIC4ECgBAAAQFwIlAAAA4kKgBAAAQFwIlAAAAIhLmtUFAIAdGYahaDSqWCwmwzDk8Xjk9Xrl8/nk8XisLg8AbIVACQCSIpGIqqurFQ6HVVNTo9raWsVisRav83q9yszMVPfu3eX3+5WVlaW0NB6lAFKbxzAMw+oiAMAKhmEoHA6rsrJSVVVVXb5PIBBQbm6u/H4/o5cAUhKBEkBKCoVCCgaDqqurM+2eGRkZKigoUE5Ojmn3BAAnIFACSCmRSERlZWVxjUgeSyAQUGFhIVPhAFIGgRJAygiFQiotLVU0Gk34Z/l8PvXv35/RSgApgUAJwPUMw1B5ebn27t2b9M8uKChQXl4eaysBuBqBEoCrGYahYDCoiooKy2rIy8tTQUEBoRKAa7GxOQBXKy8vtzRMSlJFRYXlNQBAIhEoAbhWKBSyZJq7NcFgUKFQyOoyACAhCJQAXCkSiai0tNTqMpopLS1VJBKxugwAMB2BEoArlZWVJaWbuzOi0ajKysqsLgMATEegBOA6oVAooftMxqOqqoqpbwCuQ6AE4CqNXd12FgwGxQYbANyEQAnAVcLhsKnHKSZCXV2dwuGw1WUAgGkIlABcpbKy0uoSOsQpdQJARxAoAbhGJBIxde3kn//8Z40aNUpTp0417Z6Nqqqq6PgG4BoESgCuUV1dber9Fi1aJEnasmWLPv/8c1PvLZlfLwBYhUAJwDXMXJf45ZdfatOmTZo8ebIkaeHChabduxHrKAG4BYESgGvU1NSYdq/GAHn77bfrlFNO0d/+9jfTAyCBEoBbECgBuIJhGKqtrTXlXrW1tXrnnXd04oknaujQoZo6daqqq6v13nvvmXL/RuFwmO2DALgCgRKAK0SjUcViMVPu9T//8z86cOBAUzPO97//fXXv3t30ae9YLGa703wAoCsIlABcwawwKTVMd2dmZuqCCy6QJHXv3l3nnXee1qxZo6+//tq0z5HMrRsArEKgBOAKZk0dl5SUaPXq1Zo0aZIMw1AoFFIoFNKUKVMkHe78NgtT3gDcwGPwNAPgAvX19frqq6/ivs/jjz+uuXPntvn9/Px8/c///I98Pl/cnyVJw4YNU3p6uin3AgCrpFldAACYweuNf8IlGo3qjTfeUFFRkX7729+2+P6HH36oefPmadmyZTrrrLPi/jzJnLoBwGoESgCu4PP55PV641qTuGzZMu3du1d33HGHxo0b1+L7Q4YM0SuvvKKFCxeaEii9Xq9pI50AYCX+aQzAFTwejzIzM+O6x8KFC9WtWzdddtllrX6/V69eOuecc7RkyRJVVFTE9VmS5Pf75fF44r4PAFiNNZQAXGPPnj2mBL1kycvLU9++fa0uAwDixgglANfw+/1Wl9ApTqsXANpCoATgGllZWVaX0ClOqxcA2kKgBOAaaWlp6tGjhyM2Cw8EAkpLoy8SgDsQKAG4Qm1trW666SZdccUVjtiK55lnnjHt7HEAsJr9n7oA0I7GIJmdna3nn39ee/bssXVQMwxDW7du1QMPPKDs7GzddNNNtq4XADqCQAnAkY4Okn369NH8+fNVWlqqYcOGWV1emzwej84++2zNnz9f+fn5ev755wmWAByPQAnAUdoLktOnT5ck5eTkKBAIWFxp6wKBgHJycjR9+nTt3r2bYAnAFQiUAByhI0HySIWFhbY7hcbn86mwsLDZNYIlADcgUAKwtc4GyUZpaWnq379/Eis9tv79+7fZ2U2wBOBkBEoAttTVIHmknJwc9enTJ8GVdkxBQYFycnKO+TqCJQAnIlACsBUzguSR8vPzlZeXl4BKOy4vL6/TNRAsATgJZ3kDsIXa2lrdeuutmjdvniKRiPr166dHH320SyHyaIZhqKKiQsFg0IRKO6egoED5+flx32fBggW64447VFZWprS0NF133XWaM2eOMjMzTagSAOJDoARgqUQGyaOFQiGVlpYqGo2afu+j+Xw+9e/fv0PT3J1BsARgRwRKAJZIZpA8UiQSUVlZmaqqqhL2GYFAQIWFhQk9WpFgCcBOCJQAksqqIHm0UCikYDCouro60+6ZkZHR4eYbsxAsAdgBgRJAUtglSB7JMAyFw2FVVlY2jVjGYpLH0/DV9vsa/m/jawKBgHJzc+X3++Vp740JRLAEYCUCJYCEsmOQbE0kEtFHH1WroiKsXr0avrp1i7V43aFDXu3f75ff79d3vuNXVlZWQqe2O4tgCcAKBEoACeGUIHmkd9+VPv648VeGMjKiev75p9Wtm1c33HCTolGv6up8kjwaP146/3wLiz0GgiWAZGIfSgCmMnsfSet4VFeXpj17arVzZ41qatJVV5cmyZop7c5iH0sAyUSgBGAK9wRJdyFYAkgGAiWAuBAknYFgCSCRCJQAuoQg6UwESwCJQKAE0CkESXcgWAIwE4ESQIcQJN2JYAnADARKAO0iSKYGgiWAeBAoAbSKIJmaCJYAuoJACaAZgiQkgiWAziFQApBEkETrCJYAOoJACaQ4giQ6gmAJoD0ESiBFESTRFQRLAK0hUAIphiAJMxAsARyJQAmkCIIkEoFgCUAiUAKuR5BEMhAsgdRGoARciiAJKxAsgdREoARchiAJOyBYAqmFQAm4BEESdkSwBFIDgRJwOIIknIBgCbgbgRJwKIIknIhgCbgTgRJwGIIk3IBgCbgLgRJwCIIk3IhgCbgDgRKwOYIkUgHBEnA2AiVgUwRJpCKCJeBMBErAZgiSAMEScBoCJWATBEmgJYIl4AwESsBiBEng2AiWgL0RKAGLECSBziNYAvZEoASSjCAJxI9gCdgLgRJIEoIkYD6CJWAPBEogwQiSQOIRLAFrESiBBCFIAslHsASsQaAETEaQBKxHsASSi0AJmIQgCdgPwRJIDgIlECeCJGB/BEsgsQiUQBcRJAHnIVgCiUGgBLqoqKiIIAk4VGvBsqioyOqyAMciUAKS7r33Xnk8nmZfffv2bfc9+fn5BEnA4Y4Mlnl5eW2+bsmSJfrBD36gfv36yePxaPHixckrEnCANKsLAOxi5MiRev/995t+7fP52n39+vXrE10SgCSZPn16u/8wrK6u1sknn6wbbrhBV1xxRRIrA5yBQAl8Ky0t7ZijkgBS0wUXXKALLrjA6jIA22LKG/jW5s2b1a9fPw0aNEgzZszQtm3brC4JAABHIFACkk4//XS9+OKLevfdd/Xcc89pz549mjBhgiorK60uDQAA22PKG5CaTWWNGjVK48ePV3FxsebNm6c777zTwsoAALA/AiXQiqysLI0aNUqbN2+2uhQk0RlnNHx5PIev/fSnP5Mk9ehx+JphJLkwALA5AiVSjmEY8hyZGFpRV1enDRs2aNKkSUmqCnaQk9M8TDZcy271tYRKtKUjzxjAbVhDiZRRW1urd955R4cOHWrxvVmzZunDDz/U9u3b9cknn2jatGkKhUK67rrrLKgUVulMBiAvpJaDBw/qs88+02effSZJ2r59uz777DOVlJS0eO2hQ4f0zjvvcPIOUgqBEq535BGJa9eubfU1u3bt0tVXX63hw4fr8ssvV3p6uv7v//5PAwcOTHK1AOxo1apVGj16tEaPHi1JuvPOOzV69Gjdc889rb5+7dq1HOmIlOIxDCZu4E61tbW69dZbNW/ePEUiEfXr10/vv/++TjjhBKtLA+ByGzZs0DnnnKOysjKlpaXpuuuu05w5c5SZmWl1aUBCMEIJ1zlyRPLos7YJkwCS4YQTTmhxVjgjlnAzRijhGq2NSD766KOcsw3AcgsWLNAdd9zBiCVcixFKOF57I5KESXTVU089pZNOOkk5OTnKycnR+PHj9c4771hdFhxq+vTpjFjC1RihhGMxIolEevPNN+Xz+TRkyBBJ0rx58/Twww/r008/1ciRIy2uDk7HiCXchkAJxyFIwiq9e/fWww8/rBtvvNHqUuASBEu4BVPecAymtmGVaDSq+fPnq7q6WuPHj7e6HLgIU+FwC0YoYXuMSMIqX3zxhcaPH6/a2lr16NFDL7/8si688EKry4KLMWIJpyJQwrYIkrBafX29SkpK9M033+gvf/mL5s6dqw8//FDf+c53rC4NLkewhNMQKGE7BEnY1bnnnqvi4mI988wzVpeCFEGwhFOwhhK2wRpJ2J1hGKqrq7O6DKQQ1ljCKQiUsBxBEnb0m9/8RkuXLtWOHTv0xRdf6K677tIHH3yga6+91urSkIIIlrA7AiUsQ5CEnQWDQf3oRz/S8OHDdc455+iTTz7R3/72N02ZMsXq0pDCCJawK9ZQIulYIwkA5mCNJeyCQImkIUgCQGIQLGE1AiUSjiAJAMlBsIRVCJRIGIIkAFiDYIlkI1DCdARJALAHgiWShUAJ0xAk4XSGIXk85r8WsBrBEolGoETcCJJwi/37G/7vkUGxqqpKkhQIBJquNT41e/VKVmWAOQiWSBQCJbqMIAm3efdd6eOPm1975JFHJEmzZs1qdn38eOn885NVGWAugiXMxsbm6DQ2JAcAZ2ODdJiNQIkOI0gCgLsQLGEWAiWOiSAJAO5GsES8CJRoE0ESAFILwRJdRaBECwRJAEhtBEt0FoESTQiSAIAjESzRUQRKECQBAO0iWOJYCJQpjCAJAOgMgiXaQqBMQQRJAEA8CJY4GoEyhRAkAQBmIliiEYEyBRAkAQCJRLAEgdLFCJIAgGQiWKYuAqULESQBAFYiWKYeAqWLECQBAHZCsEwdBEoXIEgCAOyMYOl+BEoHI0gCAJyEYOleBEoHIkgCAJyMYOk+KR0oDcNQJBJRfX296urqVF9fr0gkIsMwrC6tVQRJAICbODVYOi0/JEOa1QUkUyQSUXV1tcLhsGpqalRbW6tYLNbidV6vV5mZmerevbv8fr+ysrKUlmbd/1S1tbW69dZbNW/ePEUiEfXr10+PPvooIRIA4ArTp0/X9OnTtWDBAt1xxx16/vnnNW/ePF133XWaM2eOMjMzLa3PqfkhmVz/uzQMQ+FwWJWVlaqqqurQe2KxmGpqalRTU9N0LRAIKDc3V36/Xx6PJ1HlNkOQBACkEjsFSyfnByu4eso7FAppy5Yt2rZtW4f/MLSlqqpK27Zt05YtWxQKhUyqsHVMbQMAUpnVU+FOzQ9WcmWgjEQi2rlzp0pKSlRXV2fqvevq6lRSUqKdO3cqEomYem+CJAAAhyU7WDo1P9iB6wJlKBTS5s2b4/4XxbFUVVVp8+bNpvxrgyAJAEDbkhEsnZgf7MQ1gdIwDO3du1clJSWKRqNJ+cxoNKqSkhKVl5e329lVX1+vrVu3trhOkAQAoOM6Gyy3bNmi+vr6du9p5/zgJK4IlIZhKBgMau/evZZ8fjAYVDAYbPUPhWEY+uEPf6jhw4c3hUqCJAAAXdeRYLllyxaNGDFCP/zhD9sMbXbOD07jikBZXl6uiooKS2uoqKhotYZnn31Wr776qmKxmO69916CJAAAJmkvWN57772KxWJ69dVX9eyzz7b6fjvnB6fxGA6PxaFQSCUlJVaX0WTAgAHKycmRJH322Wc67bTTdOjQoWavYfsfwJ7efVf6+OPm1x555BFJ0qxZs5pdHz9eOv/8ZFUGoCMatxsqKytrdr1bt25asWKFTjnllKZrds4PTuToEcpIJKLS0lKry2imtLRUkUhEoVBIl112WYtOrrPOOosRSQAAEqBxxHLy5MnNrkciEV122WVNjTB2zg9O5ehAWVZWlrQFtB0VjUZVWlqq0aNH6+uvv26xLmLp0qWtNugAAID4bdmyRcuWLWt2zTAMff311zr11FMViURsmx+OHll1EscGylAolPDW/q46cOCABgwY0Or3YrGY1q5dm+SKAABIDZ9//nmrxyJK0tatW/WjH/3ItvmhqqrKsdsJOfLoxcauLLuKxWJ67LHHVFRU1OKYJa/Xq0AgYFFlADqivl4Khxv+OxbLliQ1/vzx+6X0dIsKA3BMl19+ub755ptWQ+WmTZtUXV2taDQqn89nQXXHFgwGlZ2d7bhjGh0ZKMPhsOk72JvJ620Y+G08IB6A/RmGtGmT9H//Jx25nV0kMkqS9Omnh69lZkq9e0vnnSc57JkPpIS2Bm5OOukkbdu2LcnVdE5dXZ3C4bDj8oMjp7wrKyutLqFDnFInkOpiMWn+fGnFiuZhsi21tQ2vnT+/4b0AnMEpP5edUueRHDdCGYlETF37sGnTJv3pT3/SqlWrVF5eLp/Pp+OPP17f//73dcUVV8Q1PV1VVaXCwkKlpTnuf2Ygpaxc2TA62VmbNjW89/TTza8JgLnMyg+LFy/W3Xff3exar169VFxcrOuvv15nnXVW3J/hxPzgnEq/VV1dbdq9XnvtNT3wwAM6/vjjdf3116u4uFiHDh3S+vXr9d///d9au3atHn/88bg+o7q6mjWTgI1Fo9I//tH19//jH9LYsZJNl2MB+JaZ+UGS7rvvPg0aNEiGYaiyslKvvPKKbr31Vj3xxBP67ne/G/f9nZYfHBcow40r5eP02Wef6f7779cZZ5yh//f//p/Sj1hlP2HCBF133XUtth3oinA47Kg/EECq2b9fimdJdl1dwz3y8syrCYD5zMoPjYYOHaqRI0c2/frMM8/UmWeeqb/+9a+mBEqn5QfHBcqamhpT7jN37lx5PB7de++9zcJko27duunss8+O+3PM/gMMwFzffNPy2qFDh1RSsl+HDvkUifSSJG3cWKlu3aIaMKCXunXr1uIeBErA3szKD23JyMhQt27dWjwfuspp+cFRgdIwjKZD3+MRjUa1YsUKfec731Hfvn1NqKxt4XBYhmE4rv0fSBUFBS2v7du3T7t2bZXUT5JfkhQMHpC0Wz16FKvgqDe1dg8A9mFWfjhSNBpVJBJpmvL+4x//qHA4rAsvvNCU+zstPzgqUEaj0TY3K+2M/fv3KxwOq3///iZU1b5YLKZoNOqohbVAKsnOlvr0kfbuPXwtLy9PaWlbFInUSGrcuqNGaWmG8o4aiuzTp+EeAOzLrPxwpGuvvbbZr9PT0/Wb3/xGZ555pin3d1p+cEaV3zL7D0OyOLVuIFWcdpr01luHf+3z+TRw4EBt3Vqiw4HyGw0cOLDFZsinnZa0MgF0USJ+Dv/ud7/T4MGDJTUMVP3973/XAw88oGg0qmuuucaUz3BSfnBUoDz6XOyu6tWrl/x+f9IOhjerbgCJMXq0tHRp82uFhYX6+uuvvx2llNLSDBUWFjZ7TSDQ8F4A9paIn8ODBw9u1pQzceJElZWV6fe//70uvvhi5eTkxP0ZTsoPjtrY3Kx1BD6fT6effrrWr1+vPXv2mHLP9jhl/QOQqnw+adKko681jFJK36it0clJk9guCLCbAwcOaPny5Zo7d67+5V/+RVdddZWuvPLKpHz2sGHDVFtbq6+//tqU+zkpPzhqhLLxSEMz3HjjjVq6dKnuvfdePfHEEy26sg4dOqSPPvrIlNZ/M+sGkBijR0u5udKuXYevFRYWauvWLU3/faTcXEYngWQ6cOCAvvjiC61fv15fffWVduzYodLSUu3du1f79+9XdXW16urqWh3VO3rtc6Js3LhRUsNMqBmclB8cFSh9Pp+8Xq8pawpOOeUU/eu//qseeOABXXXVVZo+fbqKi4sViUS0ceNGvfbaaxoyZEjcgdLr9dr2AHoAh/l80rnnSmvXNl4xFAgYGjIkW2lpUn5+VPX1hg4e9EnyaMoURicBM8QTFH0+n/x+v7Kzs9WvXz/17dtXxx13nIqLizV8+HCNGjVKxcXF8vl82rBhg6lrEjdv3qxIJCKp4WSb999/Xx9//LHOOeccHXfccXHf32n5wVGB0uPxKDMz07S9pKZNm6ZRo0bpxRdf1AsvvKCKigqlpaXp+OOP14UXXqirr7467s/w+/2OGrIGUlUkEtGECdUqKwsrL69GAwbUKjMzJinj21d8JUmqrfUqGMzU6NHdVVXlV1ZWlmO6MIFkSkZQ7MzfPTPzg6Rmxy9mZ2erf//++sUvfqEZM2aYcn+n5QeP4aQVn5L27NmjiooKq8vosLy8vITvdQmgawzDUDgcVmVlZbMzfg1D6sxzPBAIKDc313E/AICuMCMo5uTkKDc3t1lQHDFihE488cROB8WOIj8kluP+We33+60uoVOcVi+QKkKhkILBoOpaOXexs5mwqqpKVVVVysjIUEFBgSndnUCyHTx4UJ9//nncQfHoEcXGoDhkyBBLp3Cd9vPYafU6LlBmZWVZXUKnOK1ewO0ikYjKysqajUiapa6uTiUlJQoEAiosLGQqHLZw8OBBffHFF/ryyy+bBcXy8nLt27cv7qA4dOhQRzSPOO3nsdPqddzTLi0tTYFAICE/DMwWCAT4gQLYSCgUUmlpqaLRaEI/p6qqSgcPHlT//v0ZrXSRAwcO6O6779aiRYu0d+9ejR49Wo8//rjGjRtnST1mB8WioiINHjzYcUGxo8gPieWsar+Vm5vriD8Qubm5VpcAQA1rJcvLy7X3yPMVEywajaqkpEQFBQXKy8tjbaUL3HTTTVq3bp3+9Kc/qV+/fnrppZd07rnnav369aYe5Wt2UBwwYIAGDRrk2qDYGeSHxHFcU47U8MNhy5Ytra59souMjAwNGTKEHyKAxQzDUDAYtHQxfl5engoKCngeOFg4HFZ2drZef/11XXTRRU3XTznlFF188cW6//77j3kPs4JiYzMLQbHzyA+J48gRSo/Ho4KCApWUlFhdSpv44QHYQ3l5ueWdnRUVFfL5fMrPz7e0DnRdJBJRNBpVZmZms+t+v1/Lli1r8dpXXnlF9913X9wjiqNGjdKQIUMIiiYhPySOIwOlJOXk5Nh2LUQgEGDdFGADoVAoqdPc7QkGg8rIyODZ4FDZ2dkaP3687rvvPp1wwgkqKCjQK6+8ok8++URDhw5t9tpYLKaysjKVlZW1GRRPOukkFRcXExQtQH5IDEdOeTeKRCLavHlzwhfYd1QsFpPP59Pw4cMdt5gWcBu7PR+khtGooUOH8nywWFtTz3V1dVq1alWb79u6dat+8pOfaMmSJfL5fDr11FM1bNgwrVmzRuvXr296nWEYjhxhSiXl5eXavHmzsrKybHMajdOfD44OlFLDCISdhq5nzZqle+65RxMmTLC6FCCl7dy507YjEEVFRVaX4UrxrlEsLCzUzp07j/k51dXVCoVCKiws1PTp03Xw4EG9/fbbifgtIQE++ugjTZkyRePHj9fjjz9udTlNBgwY4NjRScnBU96NcnJy1KdPH1tMawWDQb3//vt67733NHv2bN1xxx1WlwSkpFAoZMswKTVsKeTkaS0rJLLruStTz1lZWcrKytL+/fv17rvv6j//8z/N/O0igWbPnq1f/OIX8vl8+ulPf2qb/OCGAxEcP0Ip2auL86uvvtL48eO1f/9+XXbZZfrLX/7CGhkgiejidA6ndT2/++67MgxDw4cP15YtW/SLX/xCGRkZWrZsmbp162ba58B8sVhMl19+uV5//XX16tWrae2rnfKD058Hjh+hlA53bfl8PgWDwaR/fkFBQVP35vDhw7V7925NnDhRixcv1pAhQ7Rq1Sr17t076XUBqSgcDts6TEoNJ+qEw2F1797d6lISwq37KFZVVenXv/61du3apd69e+uKK67QAw88QJi0ucrKSo0dO1Y7duzQ2LFjtXTp0qZufTvlB6dzxQjlkZJ1EobU8OBr7ySMmTNn6sknn5Tf79f777/PukogCey6dvJoTlxLafaIottPZoH1GtdLhsNh3XrrrXriiSfafK2d8oMTuS5QSok9q7dRR8/qXbBgga699lrFYjHWVQIJFolEtHHjRqvL6LARI0bYoqPT7KDo1LOe4S5Hrpd86aWXNH369GO+x075wWlcGSgbhUIhBYNBU6e/MjIyOr14dtOmTayrBJKgqqqqQ1267Vm8eLHuvvvupl+np6crOztbgwcP1oQJEzR16lTTjkUrKipSIBBo+nU0GtWTTz6p+++/X4sWLYp7VoOgiFTU1nrJzrBLfnASd8Xjo+Tk5Cg7O1vhcFiVlZVx/YsjEAgoNzdXfr+/0wtnWVcJJEc4HDbtXvfdd58GDRqkSCSiffv2ac2aNXrhhRf0xz/+UQ8//LDGjx8f92eEw+GmQPn555/rhhtu0Jo1ayRJq1atajNQmhEUs7Ozm9YoNgbF4cOHa9SoUSouLnbd6AlSQ3vrJTvDLvnBSVw9Qnm0SCSi6upqhcPhpq9YLNbidV6vV36/v+krKyvLtIcr6yqBxNm2bZtqamriukfjCOX8+fM1cuTIZt8rKyvTj3/8Yx04cEBvvfWW8vLy4vqsrKwsFRQU6Le//a0eeeQRSYcPSBgzZowGDhzYpaCYl5dHUETK6cx6yc6yQ36wu9T4XX4rLS1NgUCgaUTAMAxFo1HFYrGmkw28Xq98Pl/C/hXxhz/8QZMnT9a1116riRMnsq4SMIlhGKqtrU3oZxQWFmrWrFmaNWuWXn31Vf3TP/1TXPerrKzUkCFDWvxgikajWrFihVasWNFiRLGgoEBFRUUEReAIR66XnD9/fofWS3aGHfKD3aX0E8jj8VjyEJ4+fbpOOeUUjR8/XnfeeaeWLFnCukogTo0P90SbNGmSfD6fVq9eHfe9MjMzlZ+f3+p2JaeffrqWLVtGUATaYcZ6ya6wKj/YGQnGIo3rKseMGdO0rnLfvn1WlwU4VjLCpCR1795dPXv2VHl5uSn3Kykp0YYNG/Qv//IvzabQ9+3bxw8soB2VlZUqLi7W66+/rrFjx2r37t1JCZNoHYHSQpmZmVq1apVuueUWbd++Xccdd5yWL19udVmAIyVzObiZn2UYhkaMGKGHHnpIZWVlevPNN3XppZfqjDPOMO0zALf56KOPVFRUpB07dujWW2/VypUru9R8A/MQKG3gD3/4g+bPn6/6+npNnDhRv//9760uCXCcZK1bqqmpUVVVlWmnWxxZd1pami6++GItXrxYL774oin3B9xm9uzZmjRpkg4dOqT58+eb2nyDriNQ2sT06dP15ZdfqmfPnrrzzjs1derUpE3hAW6QrDXIS5YsUTQa1bhx40y5H2ungY6JxWK67LLLNGvWLPXs2VPr1683vfkGXceTzEZYVwl0nc/nS3g4Kysr0+zZs5Wdna0rr7wy7vs1doUCaB/rJe2PFd8207iusnG/yuOOO479KoEO8Hg8yszMjHsfykabN29WJBJRNBrVvn37tHr1ar3++uvyer167LHHTDmYwO0bHQNmSOT+kjBPSm1s7jScAw50zp49e1RRURHXPY4+erFbt25NRy+eeeaZuvzyy0075apxA3IArevKedywBoHS5jgHHOi4zZurVFcX31neyXT0Wd4AGli1vyS6jmRic6yrBI4tFJJee0169dUsOamXLSsry+oSANthvaQzESgdgP0qgdZFo9Ly5dKcOdK6dVJ9fZp27gw4IlQGAgE2LgeOwv6SzkWgdBD2qwQO275devpp6b33pPr6w9e3bs2VE1aF5ObmWl0CYCvsL+lsrKF0INZVIpWFQg0hct26tl5h6Nxztygnp1Zerz07qDMyMjRkyBA6vAGxXtItCJQOVVtbq4kTJ2r16tUaNGiQVq1aZVrnKWBH0aj0ySfSBx80H5E82ueff65QaKUee+z0pNXWWQMGDFBOTo7VZQCWq6ys1NixY7Vjxw6NHTtWS5cuZYrboRjWcijWVSKVtDW9faT9+/frySef1KJFC/XBB2X69NOILddSBgIBwiQg1ku6DSOULsB+lXCrY09vN0yXvfHGG1q7dq0kQ8OHj9AVV1yhrCyPzj9/s9LTo7LLzLLP59PQoUNpxkHKY39J9yFQugTrKuEmnZnefuutt3ToUL0CgZ6aMWNGs43C+/ULacKEksQX3EFMdSPVsV7SvQiULsK6SrjB9u3SX/8qlZe3/Zr9+/frlVdeUXn5Xvl8aZoyZYpOP731NZMjRuzViSfuTVC1HVdQUKD8/HyrywAsw3pJdyNQulDjOeB+v59zwOEY8Uxvd+vWrc33DB1q6Mwzgzp4ML4jGeORl5engoICurqRsjiP2/0IlC7Fuko4hVnT20fr2VP6/vel4cMlyVBFRYWCwaDJ1R8bI5NIdayXTA0EShc7cl3lggULdOWVVzJCAlsxe3pbktLSpDPPlCZOlI4euAyFQiotLVU0GjXpd9A2n8+n/v37s2YSKcswDC1YsEBXX3016yVTAK2GLtZ4DvjEiRMVDocVjUbpLoUtJG56W7rgAqmtpcM5OTnq3r27ysrKVFVVFd9voh2BQECFhYX8fUNKi0ajqqurY71kimCEMkWsXLlSo0eP5gccLJWM6e2ODsKHQiEFg0HV1dV16vfQnoyMDBUUFDAqCUiKRCL69NNPNW7cOKtLQRIQKFNILBZjKyFYJtnT2x1hGIbC4bAqKyvjGrEMBALKzc2V3+9nWQnwLX7mpBYCZYp78MEHtXDhQm3cuFF+v18TJkzQQw89pOENnQxA3Kya3u6sSCSi6upqhcPhpq9YK0fteL1e+f3+pq+srCxG/pFSSktL9ctf/lLvvPOOwuGwhg0bpueff15jxoyxujRYiKdgivvwww81c+ZMjRs3TpFIRHfddZfOO+88rV+/XllZWVaXBwez0/R2R6SlpSkQCCgQCEhqGL2MRqM69dRT1a1bN3388cfyer3y+XyMQiJl7d+/X2eeeabOPvtsvfPOO+rTp4+2bt2qnj17Wl0aLMYIJZopLy9Xnz599OGHH2ry5MlWlwOH6sr09rnnnqszzjijzdfHO73dVY3hds+ePcn7UMCmfvWrX+mjjz7S0qVLrS4FNsMIJZppXEfGCTvoCqdMbwPomjfeeEPnn3++rrzySn344Yfq37+/brnlFt18881WlwaLMUKJJoZh6NJLL9X+/fv51yc6xWnT253BCCVwWOPWP3feeaeuvPJKrVixQrfffrueeeYZ/fjHP7a4OliJQIkmM2fO1Ntvv61ly5bpuOOOs7ocOISbprdbQ6AEDktPT9fYsWO1fPnypmv//M//rJUrV+rjjz+2sDJYjSlvSJJ+/vOf64033tCSJUsIk+iQAwekd99lehtIJYWFhfrOd77T7NoJJ5ygv/zlLxZVBLsgUKY4wzD085//XIsWLdIHH3ygQYMGWV0SbK5xTqO+vmF0si1OnN4G0L4zzzxTmzZtanbtq6++0sCBAy2qCHZBoExxM2fO1Msvv6zXX39d2dnZTdN6gUBAfr/f4upgR41hr2dP6fzzpYULm3//6Ont88//vmOmtwG074477tCECRP0u9/9TldddZVWrFihZ599Vs8++6zVpcFirKFMcW3tp/df//Vfuv7665NbDBzn0CHpoYekSMS909usoQSae+utt/TrX/9amzdv1qBBg3TnnXfS5Q0CJTonGo3K5/NZXQZs5IknpP/9X/dObxMokYp41qOzOGQTnVJfX6/HHnvM6jJgIwsXLtCiRQsVi8V0/vnf1+23395mmExLk846S5o5Uxoxwv5hEkhFs2fPVn17+38BrWCEEp2yb98+5ebmaurUqXrttdfk9fJvklR38slPqa6ulyumt1vDCCVSRSwW0+WXX67XX39dlZWVHHCBTiENoFMCgYDGjBmjRYsWaejQodq3b5/VJSGBHnzwQXk8Ht1+++1tvmbatCs1Y8aMNsNkz57SjBnSNdc4L0wCqaKyslLFxcV6/fXXNXbs2KYz7YGOIlCiU3w+n1atWqVbbrlF27Zt03HHHcdmti61cuVKPfvsszrppJPafV1eXl6r15neBpzho48+UlFRkXbs2KFbb71VK1euZP0kOo1AiS75wx/+oPnz56u+vl5nnnkm6ypd5uDBg7r22mv13HPPqVevXp1+/9Ch0i23SGefzVZAgJ3Nnj1bkyZN0qFDhzR//nw98cQTVpcEhyJQosumT5+uL7/8Uj179tQdd9yhyy+/XLFYzOqy0AGx2OENylszc+ZMXXTRRTr33HM7dV+mtwFniMViuuyyyzRr1iz17NlT69ev1/Tp060uCw7GxuaIy/Dhw7V7925NnDixaV3lypUrWcxtY9u3SyUl0uTJrX9//vz5WrNmjVauXNnhe7I5OeAclZWVGjt2rHbs2KGxY8dq6dKlyszMtLosOBwjlIhbZmYm6yodIBSSXntNmjdPOniw9dfs3LlTt912m1566aUO/4AZMIDpbcApWlsvSZiEGdg2CKZasGCBrr32WsViMT366KPtdgcjOaJR6ZNPpA8+aDh/W5LGjZMuvLBlo8zixYs1derUZgvyo9GoPB6PvF6v6urqWizWNwx3N9ywbRDcYvbs2frFL34hn8+nl156iSlumIpACdNt2rRJ48eP1/79+9mv0mLbt0t//atUXt78eluB8sCBA/r666+bXbvhhhs0YsQI/fKXv9SJJ56Y4Irth0AJpztyf8levXrpk08+0dChQ60uCy7DGkqYjnWV1guFpPfek9ata/s1hmG0OMs9Ozu7RWjMyspSbm5uSoZJwOlYL4lkYdgICcG6SmtEo9Ly5dKcOe2HydLS0uQVBcASrJdEMjHljYRjXWVytDW9faT9+/frlVde0bRpAzVnzoXyel28+NEkTHnDiVgviWRjyhsJN336dJ1yyikaP3687rjjDi1ZsoR1lSbqyPR2LBbTG2+8obVr10oyVFBwWtLqA5A8rJeEVQiUSArWVZqvte7t1nz++ed66623dOhQvQKBnpoxY4ZOOaWvyPOAu7BeElYiUCJpGtdVzpw5U08++aSOO+44/f3vf9f48eOtLs1xOjO9XV6+Vz5fms4///s644wzJEl79yapUABJ8dFHH2nKlCkKh8O69dZbOUIRSccaSliCdZVd05Xp7eHDR+iKK65Qt6N2Hb/zTqlHDzFSeQysoYTdsV4SdkCghGXYr7Lj4pnebgxERzvuOOnHPz58uo2bNyePB4ESdsV6SdgJU96wDOsqOybe6e3W+HxScXFDiCRIAs7DeknYDSOUsIXGdZV+v591ld8yc3r7SEOHShdcIJHbO4YRStgN6yVhRwRK2AbrKhskYnpbknr2lL7/fWn4cEYlO4NACTthvSTsikAJW0n1dZVdmd6eMmWK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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "highlighted_edges_blue = [('A', 'D'), ('D', 'F'), ('F', 'G')]\n", + "draw_graph_with_highlights(G, highlighted_edges_blue, 'b', 'graph3.png')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "colormap:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def draw_graph_with_colormap(G, file_name):\n", + " pos = nx.get_node_attributes(G, 'pos')\n", + " edges, weights = zip(*nx.get_edge_attributes(G, 'weight').items())\n", + "\n", + " nx.draw(G, pos, node_color='lightgrey', with_labels=True, node_size=1000, edge_color=weights, width=4.0, edge_cmap=plt.cm.Blues)\n", + " edge_labels = {(u, v): d['weight'] for u, v, d in G.edges(data=True)}\n", + " nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, rotate=False)\n", + "\n", + " plt.savefig(file_name)\n", + " plt.show()\n", + "\n", + "draw_graph_with_colormap(G, 'graph4.png')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def draw_graph_with_custom_labels(G, file_name):\n", + " pos = nx.get_node_attributes(G, 'pos')\n", + "\n", + " nx.draw(G, pos, node_color='lightgrey', with_labels=True, node_size=1000)\n", + " nx.draw_networkx_edges(G, pos, edgelist=G.edges(), arrows=True)\n", + "\n", + " custom_labels = [\n", + " (0, 120, '8'),\n", + " (2.4, 50, '10'),\n", + " (-2.4, 50, '3'),\n", + " (-0.35, 35, '5'),\n", + " (1.35, 0, '4'),\n", + " (-1.35, 2, '1'),\n", + " (0.45, -55, '0')\n", + " ]\n", + " \n", + " for x, y, label in custom_labels:\n", + " plt.text(x, y, s=label, color='red', size=15, horizontalalignment='center')\n", + "\n", + " edge_labels = {(u, v): d['weight'] for u, v, d in G.edges(data=True)}\n", + " nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, rotate=False)\n", + "\n", + "G = create_base_graph()\n", + "\n", + "draw_graph_with_custom_labels(G, 'graph5.png')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/lectures/_static/lecture_specific/short_path/graph.png b/lectures/_static/lecture_specific/short_path/graph.png index d5c31af9..2b451a46 100644 Binary files a/lectures/_static/lecture_specific/short_path/graph.png and b/lectures/_static/lecture_specific/short_path/graph.png differ diff --git a/lectures/_static/lecture_specific/short_path/graph2.png b/lectures/_static/lecture_specific/short_path/graph2.png index c287eac5..7bc5a5d9 100644 Binary files a/lectures/_static/lecture_specific/short_path/graph2.png and b/lectures/_static/lecture_specific/short_path/graph2.png differ diff --git a/lectures/_static/lecture_specific/short_path/graph3.png b/lectures/_static/lecture_specific/short_path/graph3.png index 35af75ef..13b2463b 100644 Binary files a/lectures/_static/lecture_specific/short_path/graph3.png and b/lectures/_static/lecture_specific/short_path/graph3.png differ diff --git a/lectures/_static/lecture_specific/short_path/graph4.png b/lectures/_static/lecture_specific/short_path/graph4.png index abc9e84e..b817225a 100644 Binary files a/lectures/_static/lecture_specific/short_path/graph4.png and b/lectures/_static/lecture_specific/short_path/graph4.png differ