mirea-projects/Second term/Discrete math/Задание_9.ipynb
2024-09-24 02:22:33 +03:00

1021 lines
276 KiB
Plaintext
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"id": "1ee388e8",
"metadata": {},
"source": [
"# Графы"
]
},
{
"cell_type": "markdown",
"id": "31fe6bcc",
"metadata": {},
"source": [
"## Определение графов. "
]
},
{
"cell_type": "markdown",
"id": "6cbbbe70",
"metadata": {},
"source": [
"\n",
" Неориентированным графом (или графом) называется пара $(V,E)$, где $V = \\{v_1, v_2,... \\}$ — множество вершин, $E = \\{e_1, e_2,... \\}$ — множество ребер, в котором каждый элемент $e_k$ является неупорядоченной парой $\\{v_i, v_j\\}$. Пара $(V,E)$, в которой множество $E$ состоит из упорядоченных пар $(v_i, v_j )$, называется ориентированным графом, а элементы из $E$ — дугами, или ориентированными ребрами. Вершины $v_i$ и $v_j$ , составляющие ребро или дугу, называются концевыми вершинами ребра или дуги, а про ребро и дугу говорят, что они соединяют свои концевые вершины.<br/> <br/>\n"
]
},
{
"cell_type": "markdown",
"id": "26e31d3b",
"metadata": {},
"source": [
"## Локальные характеристики"
]
},
{
"cell_type": "markdown",
"id": "ccdb2118",
"metadata": {},
"source": [
"Если $ e=\\{v_i, v_j\\} $ ребро графа, то вершина $ v_i $ и ребро е инцидентны. Вершина $ v_j $ и ребро е также инцидентны.<br/>\n",
"Вершины, инцидентные одному ребру, называются смежными.<br/>\n",
"Два ребра смежные, если инцидентны одной вершине.<br/>\n",
"Число вершин графа называется его порядком.<br/>\n",
"Число ребер графа, инцидентных данной вершине $vi$ , называется степенью $p(v_i)$ вершины $vi$ (другое обозначение $deg(v_i)$).<br/>\n",
"Если $ p(v_i)$ то $v_i$ изолированная вершина, если $p(v_i)=1$, то $v_i$ висячая вершина.<br/>\n",
"Если концевые вершины совпадают, то дугу $e=(v_i, v_j)$ называют петлей. <br/>\n",
"Очевидно, что для неориентированного графа $\\{v_i, v_j\\}=\\{v_j, v_i\\}$, а для ориентированного $(v_i, v_j)\\neq (v_j, v_i)$ .\n"
]
},
{
"cell_type": "markdown",
"id": "5eb6495a",
"metadata": {},
"source": [
"Нетрудно подсчитать число графов с фиксированным множеством вершин. Обозначим через $ N_g $ число неориентированных графов без петель с множеством вершин n.\n",
"<dt>Теорема (О количестве графов)</dt>\n",
" $$ N_g = 2^{\\frac{n(n-1)}{2}} $$\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "e8785f8f",
"metadata": {},
"source": [
"<dt>Теорема (Лемма о рукопожатиях)</dt> Сумма степеней всех вершин графа равна удвоенному числу ребер: \n",
" $$ \\sum p(v_i)=2|E| $$\n"
]
},
{
"cell_type": "markdown",
"id": "b4003ab7",
"metadata": {},
"source": [
"<dt>Следствие</dt> Сумма степеней вершин графа всегда четное число."
]
},
{
"cell_type": "markdown",
"id": "9d0d01ae",
"metadata": {},
"source": [
"<dt>Теорема</dt>\tВ любом графе число вершин нечетной степени четно.\n"
]
},
{
"cell_type": "markdown",
"id": "8efea77a",
"metadata": {},
"source": [
"## Способы представления графов"
]
},
{
"cell_type": "markdown",
"id": "a53868fa",
"metadata": {},
"source": [
"### Графическое представление графов. представление в виде списков смежности"
]
},
{
"cell_type": "markdown",
"id": "7e31a24f",
"metadata": {},
"source": [
"Обычно граф изображают на плоскости в виде множества точек, соответствующих вершинам, и множества линий, которые соединяют вершины и соответствуют ребрам. При изображении ориентированных графов линии снабжаются стрелками, указывающими ориентацию дуги, т. е. порядок вершин в паре."
]
},
{
"cell_type": "markdown",
"id": "eb9279ad",
"metadata": {},
"source": [
"Для работы с графами можно использовать библиотеку NetworkX, предназначенную для создания, манипуляции и изучения структуры, динамики и функционирования сложных сетевых структур. Внутреннее представление графов реализовано в виде списков смежности. <br/>\n",
"Основные возможности библиотеки:\n",
"<ol>\n",
" <li>Классы для работы с простыми, ориентированными и взвешенными графами</li>\n",
" <li>Узлом может быть практически что угодно: time-series, текст, изображение, XML</li>\n",
" <li>Сохранение / загрузка графов в/из наиболее распространённых форматов файлов хранения графов</li>\n",
" <li>Встроенные процедуры для создания графов базовых типов</li>\n",
" <li>Методы для обнаружения подграфов, клик и К-дольных графов (K-core) ( максимальный подграф в котором каждая вершина имеет по крайней мере уровень К )</li>\n",
" <li>Получение таких характеристик графа как степени вершин, высота графа, диаметр, радиус, длинны путей, центр, промежуточности, и т. д.</li>\n",
" <li>Визуализировать сети в виде 2D и 3D графиков</li>\n",
"</ol>\n"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "98e1dde0",
"metadata": {},
"outputs": [],
"source": [
"#Если требуется установить библиотеку\n",
"# !pip install networkx"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "b254ada3",
"metadata": {},
"outputs": [],
"source": [
"import networkx as nx \n",
"import matplotlib.pyplot as plt\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "519b710b",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 700x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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GQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYAKJaQAQCKJWQAgGIJGQCgWEIGACiWkAEAiiVkAIBiCRkAoFhCBgAolpABAIolZACAYgkZAKBYQgYA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",
"text/plain": [
"<Figure size 700x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"G = nx.Graph() # пустой неориентированный граф\n",
"G1 = nx.DiGraph() # пустой ориентированный граф\n",
"GG = nx.MultiGraph() # пустой мультиграф\n",
"GG1 = nx.MultiDiGraph() # пустой ориентированный мультиграф\n",
"\n",
"G.add_node(1) # добавляем одину вершину, получаем тоже пустой граф\n",
"G.add_nodes_from([3, 4, 5, 6, 7]) # добавляем еще шесть вершин сразу\n",
"\n",
"# В качестве обозначений вершин можем использовать ярлыки:\n",
"G1.add_nodes_from([\"node_1\", \"node_2\"]) # пустой ориентированный граф\n",
"\n",
"plt.figure(figsize =(7, 10))\n",
"plt.subplot(211)\n",
"nx.draw_networkx(G)\n",
"plt.show()\n",
"\n",
"plt.figure(figsize =(7, 10))\n",
"plt.subplot(212)\n",
"nx.draw_networkx(G1, with_labels = True)\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "283ba2d2",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 700x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# добавляем в графы ребра и дуги\n",
"G.add_edges_from([(1, 2), (1, 3), (1, 4), (2, 4), (2, 6), (3, 6), (4,7), (5, 7)]) # для неориентированного графа\n",
"G.add_edge(8,9) # добавление ребра с новыми вершинами, добавит их тоже\n",
"\n",
"plt.figure(figsize =(7, 10))\n",
"plt.subplot(211)\n",
"nx.draw_networkx(G)\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "d273c0ff",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"NodeView((1, 3, 4, 5, 6, 7, 2, 8, 9))"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"G.nodes()"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "98549f52",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"9"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Количество вершин в графе G\n",
"G.number_of_nodes()\n",
"# G.order\n",
"# len(G)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "b8d574e8",
"metadata": {},
"outputs": [],
"source": [
"G.edges()\n",
"nx.write_edgelist(G, \"Graf.txt\")"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "ea2178eb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"9"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# количество ребер\n",
"G.number_of_edges()"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "2925c211",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"DiGraph with 9 nodes and 9 edges\n"
]
}
],
"source": [
"# создание графа из файла\n",
"G2 = nx.read_edgelist(\"Graf.txt\", nodetype = int, create_using = nx.DiGraph()) #считываем список ребер из файла, по умолчанию неориентированный\n",
"nx.is_directed(G2)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "4316a607",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[2, 3, 4]\n",
"[5, 6, 7, 8, 9]\n"
]
}
],
"source": [
"# список соседей вершины графа\n",
"#list(G.neighbors(1))\n",
"print(list(nx.all_neighbors(G, 1))) # список соседних вершин\n",
"print(list(nx.non_neighbors(G, 1))) # список остальных вершин"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "be070e29",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAFyCAYAAADvfDCoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAz2klEQVR4nO3dcVSUh4Hv/d8zSAjGURKMIVSNmBSaAaHAoiuaOnC7EboelG1J0NYq0bKGty/GspcNnhVjdDHkRmnYbmlsqIQ2hZrcSFkTje0VeRNxgxdYBIZiUk2UKkkxQSAYggzvH2ndkMSICjwz8P2c4/HAjDO/4R+/52HmeYyBgYEBAQAAuCGL2QMAAACuFyEDAADcFiEDAADcFiEDAADcFiEDAADcFiEDAADcFiEDAADcFiEDAADc1oSh3MnpdOrs2bOyWq0yDGOkNwEAgHFuYGBAXV1d8vf3l8Vy5eMuQwqZs2fPasaMGcM2DgAAYCjOnDmj6dOnX/H2IYWM1Wq9/GCTJ08enmUAAABX0NnZqRkzZlxukCsZUsj89ddJkydPJmQAAMCoudpbWnizLwAAcFuEDAAAcFuEDAAAcFuEDAAAcFuEDAAAcFuEDAAAcFuEDAAAcFuEDAAAcFuEDAAAcFuEDAAAcFuEDAAAcFuEDAAAcFuEDAAAcFuEDAAAcFsTzB4wkj7svaS3z3+ojy85ddMEi2b53qJbvMb0SwYAYFwZc/+rv/lul55/47QqWt7T6fd7NPCp2wxJM2+bqJigafruvJn66h1Ws2YCAIBhYAwMDAxc7U6dnZ2aMmWKLly4oMmTJ4/Grmt25v0ebdzboNfeapeHxVC/88ov66+333fPVOUkztGM2yaO4lIAAHA1Q22PMfEemdJjp/XNvEpVnTwvSV8aMZ++verkeX0zr1Klx06P+EYAADD83P5XSz+peFNPHTxxXf+23zmgfueAHn2pQe3dvfphzFeHeR0AABhJbn1EpvTY6StGTOtPH1L7vrwhP9ZTB0/oNxyZAQDArbhtyJx5v0eby5uG9TGzy5t05v2eq97vpZde0oMPPqjZs2dr4sSJCgoKUkZGhjo6OoZ1DwAA+HJuGzIb9zbo0lXeC3OtLjkHtHFvw1Xvl5qaqubmZn3ve99Tfn6+4uLi9JOf/ETz58/XxYsXh3UTAAC4Mrd8j8yb73bptbfah/1x+50Deu2tdr31XpfumXblj2a/+OKLstvtg74XGRmpVatW6fnnn9fatWuHfRsAAPi8UT8i89hjj8kwDL311ltavXq1fHx8NGXKFKWkpKin579/rXPp0iVt3bpVd999t7y8vDRr1ixt3LhRvb29ev6N0/KwGJKkgYEBdRwpVeu/r9Lpp76ttl9n6eM/v/OFz+38qFvv/36XWv99td75X8v0p5/9QBf+80UNDDgv38fDYuhX//nl75X5bMRIUmJioiSpubn5Wn8kAADgOpl2ROaBBx5QQECAtm/frtraWj377LOaNm2acnNzJUlr167Vc889p+985zvKyMjQG2+8oe3bt6u5uVnvR6df/gj1hdd+pQtVv5H33X8j79l/o953/6j3frNJA/2XBj2fs+8jtT3/qPq739ekr8dpwuTb1funZnUcfk793e/rtm+mSvrkqEzFiff0mIKv6fW0tbVJkqZOnXqjPxoAADBEpoVMeHi4CgsLL399/vx5FRYWKjc3V/X19Xruuee0du1a/fznP5ckpaWladq0aXrqqad0h/dc3XxXqPp7LujCG/9b3ndH6fbvZMswDFklfVBZrM6jewY9X2d1mS51tOnOlKfledtXJEnW8Hh5TLpNnW+8pMlzEzVh8u2SpNPne/Rh76VrupxBbm6uPDw89J3vfOcGfzIAAGCoTHuz77p16wZ9fd999+n8+fPq7OzUK6+8Ikn60Y9+NOg+GRkZkqSLfzwmSfro7f+S+i/JGrlEhmFcvt/kqKWfe76eP7wurxnBstw8Sf09Fy7/uXnW16UBpz4603j5vgOS3j7/4ZBfy69//WsVFhYqIyNDX/0q56IBAGC0mHZEZubMmYO+vvXWWyVJH3zwgd555x1ZLBbdc889g+7j5+cn6+QpunThPUm6/PeEvxxh+SuPiVNkuXnSoO9d+uCc+v78tlrzv/uFe5wfXhj09ceXnF94v8967bXXtGbNGi1evFj/+q//OqR/AwAAhodpIePh4fGF3//0pZ8+fZTlv793fc83MODUzbPCNflvv/2Ft3ve6j/o65smXP1gVX19vRISEhQSEqIXX3xREya45YfAAABwWy75P+9dd90lp9OpN998U/fee+/l77/77rvqvHBBk4OmSZImTPnk70vv/0mePn6X79ffc0HOj7oHPabnrXdqoO+ivGd9/arPb0ia5XvLl97nj3/8o+Li4jRt2jS98sormjRp0pfeHwAADD+XPCHet771LUnSj3/840Hf37lzpyRp1tcXStIn72+xTFBXzb5BR3I6j/32c4858WsL1funP+jiyZrP3eb8qFsDzv7LX8/0nfilb/Rta2vT/fffL4vFoldffVW33377kF8bAAAYPi55RCYsLEyrVq3Srl271NHRoUWLFqm6ulrPPfecli1bprC/X6xfvvGONHGKJs9LVOfRF/TnF7fIe/bf6ON3T+riyf8ri/fgS35PnvcPuvjmG3rvxcc1ac7/0E1+92jg44/08Z/fUU/LEX3l4UJ5TJwiD4uhmMBpX7ovLi5OJ0+eVGZmpl5//XW9/vrrl2+744479Hd/93cj8nMBAACDuWTISNKzzz6r2bNnq6ioSHv37pWfn5+ysrK0efNmne74WEVH35Yk+XxjpQyPm9T9X/v10TsNusk/UNMe3Kr3Xtgy6PEsnjfrju8+oQtH96jnD6+ru/GQLDdNlOdtX5HPwhWyeH3yq6R+54C+97czPztnkPr6eknSk08++bnbFi1aRMgAADBKjIFP/07mCjo7OzVlyhRduHBBkydPvtrdR8XKwjdUdfL85RPjDQcPi6Ho2b765Zp5w/aYAADg2g21Pdw2ZM6836Nv5lWqd4gfkx6KmzwMnf7ZDzTReVHBwcGaNWuWpk+frhkzZiggIECLFy+WxeKSbysCAGBMGfMhI0mlx07r0ZeufrXqoXrUfqcyk+zq6uqSJFksFlksFl269MnlDn77298qISFh2J4PAAB8saG2h1sfXkiOmql/uj9wWB7rf94fpNLtP7ocMZLkdDovR4wkpaenD8tzAQCA4eHWISNJP4z5qp74hznymmC5fEXsofKwGPKaYFHuP8zR/xNzj3bs2KHf/e53mj9//ud+hfToo4/q+eefH87pAADgBrnsp5auRXLUTC24e6o27m3Qa2+1y8NifOmbgP96e/RsX+UkztGM2yZKkiIjIyVJd999t772ta/p448/lmEY8vf3V25urnp6ehQWFsbJ7wAAcBFuf0Tmr2bcNlG/XDNPv3vkG1o57y7d5TtRnz0+Y0i6y3eiVs67S7/f8A39cs28yxHzaQEBAcrKypIkBQYG6s0339TOnTv17LPPKiQkRK+++urIvyAAAHBVbv1m36v5sPeS3j7/oT6+5NRNEyya5XvLl56x99Mu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DS5cuKB/+7d/kyQdOXJEkvSTn/xEPj4+8vHx0Q9/+MMR+KlcGSEDAICLefbZZzV79mwVFRVp79698vPzU1ZWliyRSSqpPXf5hHg+31gpw+Mmdf/Xfn30ToNu8g/UtAe36r0Xtgx6PIvnzbrju0/owtE96vnD6+puPCTLTRPledtX5LNwhSxet8jDYigmcNpVt33wwQfatGnToO/t2LFD0ie/FhvtkDEGPn086go6Ozs1ZcoUXbhwQZMnT77a3QEAwAh4890u/d2P/78Re/zfb/iG7pnmGmftHWp78B4ZAADcxFfvsOq+e6YOOrvvcPCwGLrvnqkuEzHXgl8tAQDgRnIS5+ibeZWXf700HCZYDGXav6K2trYr3sfDw0O33377sD3ncCFkAABwIzNum6gtCcF69KWhXa16KB5PCNb/u+Z7qqysvOJ97rrrLr399tvD9pzDhZABAMDNJEfNVHt3r546eOKGH+t/3h+kB6Nm6p4dO/TBBx9c8X7e3t43/FwjgZABAMAN/TDmq5o6yUuby5t0yTlwTb9q8rAYmmAx9HhCsB6M+uRyCZGRkSM1dUTxZl8AANxUctRM/X7DIkXP9pWkq74J+K+3R8/21e83LLocMe6MIzIAALixGbdN1C/XzNOb73bp+TdOq+LEezp9vkefPj5jSJrpO1ExgdP0vb+d6ZafTroSziMDAMAY82HvJb19/kN9fMmpmyZYNMv3lquesdfVDLU93OtVAQCAq7rFa4KC/aeYPWNU8B4ZAADgtggZAADgtggZAADgtggZAADgtggZAADgtggZAADgtggZAADgtggZAADgtggZAADgtggZAADgtggZAADgtggZAADgtggZAADgtggZAADgtiYM5U4DAwOSpM7OzhEdAwAAIP13c/y1Qa5kSCHT1dUlSZoxY8YNzgIAABi6rq4uTZky5Yq3GwNXSx1JTqdTZ8+eldVqlWEYwzoQAADgswYGBtTV1SV/f39ZLFd+J8yQQgYAAMAV8WZfAADgtggZAADgtggZAADgtggZAADgtggZAADgtggZAADgtggZAADgtv5/5l5OGOZ4EV8AAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 700x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"G1.add_edges_from([(\"node_1\", \"node_2\")]) # для ориентированного графа\n",
"\n",
"plt.figure(figsize =(7, 10))\n",
"plt.subplot(212)\n",
"nx.draw_networkx(G1)\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "04767bda",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3\n"
]
},
{
"data": {
"text/plain": [
"DegreeView({1: 3, 3: 2, 4: 3, 5: 1, 6: 2, 7: 2, 2: 3, 8: 1, 9: 1})"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# степени вершин\n",
"print(G.degree(1))\n",
"G.degree()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "bd241395",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "de4d11f9",
"metadata": {},
"source": [
"### Представление графов виде матриц"
]
},
{
"cell_type": "markdown",
"id": "ad160898",
"metadata": {},
"source": [
"#### Матрица смежности"
]
},
{
"cell_type": "markdown",
"id": "c35cad09",
"metadata": {},
"source": [
"Матрицей смежности $A=A(a_{ij})$ графа G называется матрица порядка n, определенная следующим образом:\n",
"$$a_{ij}=\\begin{cases} 1, &если& e_{ij} \\in E \\\\ 0, &если& e_{ij} \\notin E \\end{cases} $$\n",
" \n",
"Матрица смежности для неориентированного графа будет симметрична относительно главной диагонали. Матрица смежности для ориентированного графа в общем случае не симметрична относительно главной диагонали."
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "b9ef4b36",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 700x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[0 1 1 0 0 0 1 0 0]\n",
" [1 0 0 0 1 0 0 0 0]\n",
" [1 0 0 0 0 1 1 0 0]\n",
" [0 0 0 0 0 1 0 0 0]\n",
" [0 1 0 0 0 0 1 0 0]\n",
" [0 0 1 1 0 0 0 0 0]\n",
" [1 0 1 0 1 0 0 0 0]\n",
" [0 0 0 0 0 0 0 0 1]\n",
" [0 0 0 0 0 0 0 1 0]]\n"
]
}
],
"source": [
"plt.figure(figsize =(7, 10))\n",
"plt.subplot(212)\n",
"nx.draw_networkx(G)\n",
"plt.show()\n",
"\n",
"a= nx.adjacency_matrix(G) # список вершин, которые соединены попарно, и веса связывающих их ребер.\n",
"A=a.todense() # Формируем матрицу смежности\n",
"print(A)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "22c6a448",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 700x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[0 1 1 1 0 0 0]\n",
" [0 0 0 1 1 0 0]\n",
" [0 0 0 0 1 0 0]\n",
" [0 0 0 0 0 1 0]\n",
" [0 0 0 0 0 0 0]\n",
" [0 0 0 0 0 0 0]\n",
" [0 0 0 0 0 1 0]]\n"
]
}
],
"source": [
"G2 = nx.DiGraph()\n",
"G2.add_edges_from([('q', 'w'), ('q', 'e'), ('q', 'r'), ('w', 'r'), ('w', 'y'), ('e', 'y'), ('r','u'), ('t', 'u')])\n",
"\n",
"plt.figure(figsize =(7, 10))\n",
"plt.subplot(212)\n",
"nx.draw_networkx(G2)\n",
"plt.show()\n",
"\n",
"a= nx.adjacency_matrix(G2) # список вершин, которые соединены попарно.\n",
"A=a.todense() # Формируем матрицу смежности\n",
"print(A)"
]
},
{
"cell_type": "markdown",
"id": "94a7923d",
"metadata": {},
"source": [
"<dt>Теорема</dt>\tГрафы изоморфны тогда и только тогда, когда их матрицы смежности получаются друг из друга одновременными перестановками строк и столбцов (т.е. одновременно с перестановкой $i$-й и $j$-й строк переставляются $i$-й и $j$-й столбцы)."
]
},
{
"cell_type": "markdown",
"id": "904e294c",
"metadata": {},
"source": [
"#### Матрица инцидености"
]
},
{
"cell_type": "markdown",
"id": "685333ab",
"metadata": {},
"source": [
"Матрицей инцидентности $B=(b_{ij})$ неориентированного графа G называется матрица размера $ |V|\\times|E|$ , в которой столбцы матрицы соответствуют ребрам, строки — вершинам. Ненулевое значение в ячейке матрицы указывает связь между вершиной и ребром определяемую следующим образом: \n",
"$$b_{ij}=\\begin{cases} 1, &если& e_{j} &инцидентна\\space вершине& a_i \\\\ 0, &иначе& \\end{cases} $$ \n",
"<br/>\n",
"В случае наличия ориентированных дуг, начало и конец обозначаются противоположныти знаками\n",
"$$b_{ij}=\\begin{cases} 1, &если& e_{j} &исходит\\space из\\space вершины& a_i \\\\ -1, &если& e_{j} &заходит\\space в\\space вершину& a_i &и\\space не\\space является\\space петлей& \\\\0, &иначе& \\end{cases} $$\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "5d0d0824",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[1. 1. 1. 0. 0. 0. 0. 0. 0.]\n",
" [0. 1. 0. 1. 0. 0. 0. 0. 0.]\n",
" [0. 0. 1. 0. 1. 1. 0. 0. 0.]\n",
" [0. 0. 0. 0. 0. 0. 1. 0. 0.]\n",
" [0. 0. 0. 1. 0. 0. 0. 1. 0.]\n",
" [0. 0. 0. 0. 0. 1. 1. 0. 0.]\n",
" [1. 0. 0. 0. 1. 0. 0. 1. 0.]\n",
" [0. 0. 0. 0. 0. 0. 0. 0. 1.]\n",
" [0. 0. 0. 0. 0. 0. 0. 0. 1.]]\n"
]
}
],
"source": [
"a= nx.incidence_matrix(G) # список вершин, которые соединены попарно.\n",
"A=a.todense() # Формируем матрицу инцидентности\n",
"print(A)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "afa251b7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 1. 1. 1. 0. 0. 0. 0. 0.]\n",
" [-1. 0. 0. 1. 1. 0. 0. 0.]\n",
" [ 0. -1. 0. 0. 0. 1. 0. 0.]\n",
" [ 0. 0. -1. -1. 0. 0. 1. 0.]\n",
" [ 0. 0. 0. 0. -1. -1. 0. 0.]\n",
" [ 0. 0. 0. 0. 0. 0. -1. -1.]\n",
" [ 0. 0. 0. 0. 0. 0. 0. 1.]]\n"
]
}
],
"source": [
"b= -nx.incidence_matrix(G2, oriented=True) # список вершин, которые соединены попарно.\n",
"B=b.todense() # Формируем матрицу инцидентности\n",
"print(B)"
]
},
{
"cell_type": "markdown",
"id": "d7a85452",
"metadata": {},
"source": [
"<dt>Теорема</dt>\tГрафы и изоморфны тогда и только тогда, когда их матрицы инцидентности получаются друг из друга некоторыми перестановками строк и столбцов."
]
},
{
"cell_type": "markdown",
"id": "d838ad99",
"metadata": {},
"source": [
"## Операции над графами"
]
},
{
"cell_type": "markdown",
"id": "dc315442",
"metadata": {},
"source": [
"В результате операции добавления к графу $G=\\langle V,E \\rangle$ вершины $a$ a образуется граф $G1=\\langle V\\cup \\{a\\},E \\rangle$ .<br/> В результате операции добавления дуги $e$ к графу G образуется графа $G2=\\langle V,E\\cup \\{e\\} \\rangle$.<br/>\n",
"Под операцией удаления дуги $e$ из графа $G$ понимается операция, заключающаяся в удалении пары $(a_i, a_j)$ из множества дуг $E$. <br/>Операция удаления вершины a из графа $G$ заключается в удалении вершины a вместе с инцидентными ей дугами.<br/> При замыкании двух вершин, эти вершины удаляются из графа и заменяются одной новой, при этом ребра, инцидентные исходным вершинам, теперь будут инцидентны новой вершине. В случае, когда отождествляемые вершины соединены дугой, операцию отождествления называют стягиванием дуги.\n"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "85892ea0",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"A=np.array([[1, 0, 1, 0], \n",
" [1, 1, 0, 0], \n",
" [0, 1, 1, 0], \n",
" [0, 1, 1, 1]])\n",
"G = nx.DiGraph(A)\n",
"plt.subplot(212)\n",
"nx.draw_networkx(G)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "059ef702",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Удаление ребра\n",
"G.remove_edge(3,1) \n",
"plt.subplot(212)\n",
"nx.draw_networkx(G)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "c17ab9ba",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Удаление вершины\n",
"G.remove_node(2) \n",
"plt.subplot(212)\n",
"nx.draw_networkx(G)\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "2d012b55",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAC8CAYAAADl2K3eAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAunklEQVR4nO3deVxU5f4H8M8s7JssIrIMMOOamuaGmsrF1NLcl5+5/bJu1k+7aam3zNxL+6V1tdKuedNSc/lRF6+amlFSggsgZOGSIfsmyDoMwzZz5veHMUUCojKcGebzfr18JXOeOfM9Bjzf8zzP+T4Sg8FgABEREVktqdgBEBERkbiYDBAREVk5JgNERERWjskAERGRlWMyQEREZOWYDBAREVk5JgNERERWjskAERGRlZM3p5EgCMjNzYWLiwskEompYyIiIqIWYDAYUF5eDl9fX0iljd//NysZyM3NRUBAQIsFR0RERK0nKysL/v7+jR5vVjLg4uJiPJmrq2vLREZEREQmpVarERAQYOzHG9OsZKBuasDV1ZXJABERWa2Kah3SiypQoxNgK5ciyNMJTnbN6kpFdbcpfvO/AiIiIhEl55djf2wmoq4XILNYiz/u7icBoPBwRFhXb8wOUaBzh6bvwM2VpDm7FqrVari5uaGsrIwjA0REZBWyirVYcTgJ0TcKIZNKoBca7y7rjg/r5IWNk3shwMOxFSNtXHP7bz5aSERE9CeH4jMxcssPOJdaBABNJgJ/PH4utQgjt/yAQ/GZJo+xJXGagIiI6A+2RSXj3W9+va/36gUD9IIByyOSUKipxt/COrdwdKbBZICIiOg3h+IzG00EhJpKqGMjUJ17HTV5v0Ko0sBz7Mtwfnhkg+3f/eZXtHe2w4wBClOG3CI4TUBERITbawTWHL3S6HFBq0bZ2YOoLcqCjXdws865+ugVZBVrWypEk2EyQEREBGDF4STomlok6OwB/7/tg//CT+Ee9myzzqkTDFhxOKmlQjQZJgNERGT1kvPLEX2jsMmFghK5DWTO7vd0Xr1gQPSNQtwoKH/QEE2KyQAREVm9/bGZkElNs/eOTCrB5xfM++kCJgNERGT1oq4X3PXxwfulFwyI+rXAJOduKUwGiIiozbt69SrKysoaPKap1iHTxIv8Mou0qKjWmfQzHgSTASIiatNqamrQu3dveHl5YcKECTh48CA0Go3xeEZRBUwzJvA7A4D0ogoTf8r9YzJARERtmq2tLezt7aHT6XDixAnMmjULnp6eGD16NLZu3YpqndAqcdS00ufcDxYdIiKiNqm4uBgpKSlITU2Fs7MzNBoN9Ho9gNujBZGRkYiMjMTXQ0a1Sjy2cvO9/2YyQEREFkkQBGRnZyMlJcXY6df9PSUlBaWlpca2NjY29d4rkUjg4eGBjz/+GEN7d4XkcLpJpwokAII8nUz4CQ+GyQAREZmtyspKpKWl1evk6zr9tLQ01NTUALjduQcEBEClUuGRRx7BtGnToFQqoVKpoFKpsGnTJmzevBl6vR4GgwFPP/00tm7dCjc3NwC3tyHOaMYiQnXCMQhVFdBrim/HdyMOuvJCAIBrv/GQ2jfc4Ss8HeFkZ75drvlGRkREbZ7BYDAO5//5T2pqKnJycoxt7e3tjR38mDFjjB29UqlEUFAQ7OzsGv0cpVIJnU4HT09PfPrppxg/fny942FdvbEvNuOujxeqYw9Dr/79MUHtr+eAX88BAJx7hDWYDMikEoR18W7Wv4dYmAwQEZFJ6fV6ZGVl3TGMX/dHrVYb23p5eRk7/NDQUGOHr1Kp4OPjA6n0/ubdp0yZgry8PCxYsABeXl53HJ8dosBn59Pveh7/hbvv+bP1ggFzBpn3ZkUSg8Fw12kStVoNNzc3lJWVwdXVtTXiIiIiC6LVao2d/Z87/fT0dNTW1gIApFIpFApFvbv6P/69btheDLP/dR7nUotgQMtVIpRJJRii9MS+v4a02DnvRXP7b44MEBHRXRkMBhQWFjY4d5+SkoK8vDxjW0dHR2MnP378+HqdfmBgIGxtbUW8kvoMBgMyMjIQHh6OyH9+CoepGyCxaXy64V7JpRJsnNyrxc5nKkwGiIgIAKDT6ZCVldXg3H1KSgrKy3/fbKd9+/bGO/oRI0bUu7v38fGBRGKaOv8tIS4uDtHR0Th79iyio6NRWFhoPLbmYWd8dq22xT5r/YQeCPBwbLHzmQqTASIiK1JRUdHo3H1GRgZ0utslc2UyGQIDA6FUKhESEoJZs2bV6/BdXFxEvpL7k5iYiJCQEOPaA0H4vRDQ1KlTsfa/R8MrKhnvfvPrA3/W30d3xYwB5r1WoA7XDBARtSEGgwEFBQUNzt2npKQgPz/f2NbJyanBuXuVSgWFQnHHs/ltgV6vx5gxY3D69GljASLg9qOJv/zyC7p06QIAOBSfiTVHr0AnGO5pAyOZVAK5VIL1E3qYRSLQ3P6byQARkYWpra1FZmZmg3P3qamp9erud+jQoV4n/8dO39vb26yH800lKSkJffr0MY4KyOVyPPHEEzh27Fi9dlnFWqw4nIToG4WQSSVNJgV1x4d18sLGyb3MZmqAyQARkQXTaDSNzt1nZGQY72rlcjkCAwPrdfh1f4KDg+Hs7CzylZiXU6dOYcKECaipqYGNjY3xKYczZ85g2LBhDb4nOb8c+2MzEfVrATKLtPUqFUpwu6BQWBdvzBmkQCdv85o+YTJARGTGDAYD8vPzGy22U1Dwe2EbFxeXBofyVSoVAgICIJdz+VdzvPXWW1i1ahVsbW3x1Vdfoba2FuPGjUOfPn2QkJDQrFGSimod0osqUKMTYCuXIsjTyawrC/LRQiIikdXW1iI9Pb3BufvU1FRotb+Xv+3YsSNUKhW6du1ar7qeSqWCl5eXVQ7ntxRBEDB+/HicOHEC3t7eSEhIgL+/PwDg+PHjCAoKava/r5OdHD18xauFYCocGSAiegBqtbrRjXIyMzON89I2NjYICgpqcP5eqVTC0dE85pjbmuLiYvTv3x9paWkYPHgwvv/+e7Oqc2BqHBkgImoBBoMBeXl5jRbb+eMz6q6ursaOfsaMGfU6fn9/f8hkMhGvxPpcvHgRoaGh0Gq1WLRoEd5//32xQzJbTAaIyOrV1NQgPT29waH81NRUVFZWGtv6+flBpVKhe/fuGDduXL0O38PDg8P5ZmLnzp1YsGABJBIJPv/8c8yePVvskMwakwEisgqlpaWNFtvJzs42Dufb2toiODjYWFnvueeeq7c638HBQeQrobt59tln8emnn8LV1RVnz55Fz549xQ7J7DEZIKI2QRAE5ObmNlpsp7i42Ni2Xbt2xg5+0KBB9ebv/fz8OJxvoaqqqjB48GBcunQJ3bp1Q3x8PB+tbCYmA0RkMaqrq5GWltbg3H1aWhqqqqoA3K4mVzec36tXL0yaNKneoj0PDw+Rr4RaWnJyMkJCQlBSUoIZM2bgwIED973dsTViMkBEZqWkpKTRYjvZ2dmoewDKzs7OOJw/atSoenP3QUFBsLe3F/lKqLUcOXIE06ZNg16vx5YtW/Dyyy+LHZLFYTJARK1KEATk5OQ0WmynpKTE2NbDw8PYwQ8ZMqReh+/r68s7P8KKFSvw9ttvw97eHlFRURg6dKjYIVkkJgNE1OIqKyuRlpbW4Nx9WloaampqANwezg8ICIBKpcIjjzyCqVOn1uvw27VrJ+6FkNkSBAGjRo3C6dOn4efnh4sXL8LHx0fssCwWkwEiumcGgwHFxcWNFtvJyckxtrW3tzcuzqurrFf3dVBQEOzs7ES8ErJEBQUF6Nu3L3JycjBixAicOnWKJZkfEP/1iKhBer0e2dnZjRbbKSsrM7b19PQ03s0PHz683mK9jh07cjifWkxMTAxGjRqFqqoqLF++HG+//bbYIbUJTAaIrFhlZWWjdfPT0tKMO7pJpVIoFAoolUr069cP//Vf/1Wvw3dza3u12sn8vP/++3jllVcgk8kQERGByZMnix1Sm8FkgKgNMxgMKCwsbLTYTl5enrGtg4ODsYN/8skn683dBwYGWlU9dzI/M2fOxKFDh+Du7o7Y2Fh07txZ7JDaFCYDRBZOp9MhKyurwbn71NRUqNVqY9v27dsbO/gRI0bU2xLXx8eHpXTJ7Gg0GgwcOBDXrl1D7969ceHCBT42agJMBogsQEVFRb2O/o9/T09Ph06nAwDIZDIoFAqoVCqEhIRg1qxZ9XbG466jZEmuXLmCIUOGQK1WY968efj000/FDqnNYjJAZAYMBgNu3brV6GK9mzdvGts6OTkZO/iJEyfWm7sPDAyEjY2NiFdC1DIOHjyIuXPnwmAwYMeOHXjhhRfEDqlNYzJA1Ep0Oh0yMzMbLbaj0WiMbTt06GDs8EeOHFlv/t7b25vD+dSmLV68GB988AEcHR0RFRWFgQMHih1Sm8dkgKgFaTSaRjfKycjIgF6vB3B7OD8oKMhYWW/u3Ln17vC5uQpZI51Oh9DQUJw7dw6BgYFITEzkPhKthMkA0T0wGAzIz89vdDi/oKDA2NbZ2dnYwU+dOrXeYj2FQsEiKUR/kJ2djf79+yM/Px9jx47FsWPHWJ+iFfG3EdGf1NbWIiMjo8Gh/NTUVFRUVBjb+vj4QKVSoXPnznjiiSfqVddr3749h/OJmiEyMhLjxo1DTU0N1q1bh9WrV4sdktVhMkBWSa1WN1psJzMz0zicL5fLjcP5w4YNw7x584x398HBwXBychL5Sogs29tvv4033ngDcrkcJ06cwJgxY8QOySoxGaA2yWAwIC8vr9H5+8LCQmNbFxcXYwc/ffr0eov1/P39OZxPZAKCIGDKlCk4cuQIvLy8cPHiRQQGBoodltXibzmyWDU1NUhPT29w7j41NRWVlZXGtr6+vlCpVOjevfsd1fU8PT05nE/UikpLS9G/f3+kpKRg4MCBiI6OZoVLkTEZILNWVlbW4FB+SkoKsrKyIAgCAMDGxgbBwcFQqVQICwvDc889Z5y7Dw4OhqOjo8hXQkQAkJiYiOHDh6OiogILFizARx99JHZIBCYDJDJBEJCbm9to7fzi4mJjWzc3N+Pd/MCBA+st1vP394dMJhPxSojobnbt2oXnn38eALBnzx7893//t8gRUR0mA2Ry1dXVSEtLa3D+Pi0tDVVVVca2fn5+UKlU6Nmz5x3V9Tw8PDicT2Shnn/+efzrX/+Cs7MzYmJi0Lt3b7FDoj9gMkAtoqSkpNFn77Ozs2EwGAAAtra2UCqVUCqVd1TWCw4O5gYkRG1MVVUVhg4dioSEBHTu3BkXL17kHhlmqE0lAxXVOqQXVaBGJ8BWLkWQpxOc7NrUJYpGEATk5OQ0On9fUlJibOvu7m7s4AcPHlyvw/fz82MhESIrkZaWhgEDBqCoqAhTp05FeHg4f/7NlMX3lMn55dgfm4mo6wXILNbC8IdjEgAKD0eEdfXG7BAFOndwEStMi1BZWYm0tLQG5+/T0tJQU1MDAJBIJPD394dKpULv3r0xZcqUetX13N3dRb4SIhLbV199hSlTpkCn02HTpk34+9//LnZI1ASJoW78tglqtRpubm4oKyszm+GdrGItVhxOQvSNQsikEuiFxi+j7viwTl7YOLkXAjysc2W5wWBAcXFxg0P5KSkpyMnJMba1s7Or18H/cbFeUFAQh/OJqFGrV6/Gm2++CTs7O5w8eRJhYWFih2S1mtt/W2QycCg+E2uOXoFOMDSZBPyZTCqBXCrBugk98NQAhQkjFI9er0d2dnaj8/dlZWXGtp6ennd0+HWdvq+vL4fziOieCIKAJ554ApGRkfDx8UFCQgJ8fX3FDsuqNbf/trhpgm1RyXj3m1/v673635KH5RFJKNRU429hnVs4utah1WqNq/P/3OmnpaWhtrYWACCVShEQEAClUom+ffvWq66nVCrRrl07cS+EiNqMW7duoV+/fsjKysLw4cPx3XffsXqnBbGo/1OH4jMbTQQMulqURn+OiitREKo0sGkfhHbD58Ih+JEG27/7za9o72yHGWY4QmAwGFBYWNjos/d5eXnGtg4ODsa7+7Fjx9a7ww8KCmJVLyIyufPnz+Oxxx5DZWUlli5dinfffVfskOgeWUwykFWsxZqjVxo9Xnh8C7TXz8K1/0TIPXxRkfQtCr5Yiw4zN8I+oEeD71l99AqGqLxEWUOg0+mQlZXV6Px9eXm5sa2Xl5exgw8LC6s3tN+xY0c+e09Eotm2bRsWLVoEqVSK8PBwTJ8+XeyQ6D5YzJqBubticS61qME1AtW513Fz71K0C3sWbiFTAAAGXQ1yP3kRMic3+MxtOEuVSSUYovTEvr+GmCTmioqKOzr5uq/T09Oh0+kA3B7OVygUDc7dq1Qqs1inQUT0Z3PmzMH+/fvh5uaGCxcuoFu3bmKHRH/SptYMJOeXI/pGYaPHtdfPAhIpXPo8YXxNIreFc+9RKP1hL3TqW5C7tr/jfXrBgOgbhbhRUI5O3vf+2KHBYMCtW7caHMpPTU3FzZs3jW0dHR2NnfuECRPqdfoKhYLD+URkMbRaLQYOHIgrV66gZ8+eiI2N5f4fFs4ikoH9sZlNPj5Yk58KGw8/SO3qfzPaduxiPN5QMgDcHh34/EIm1k5oeCpBp9MhIyOjwfn71NRUaDQaY1tvb2/jHf2fq+t16NCBw/lEZPGuXbuGwYMHo6ysDHPmzMG+ffvEDolagEUkA1HXC5p8hFCvKYbM+c5CNzJnD+PxRt8rGHD6l5uYHKhrcP4+IyMDer3+9vlkMgQGBkKlUmHIkCGYM2dOvSF9FxcWNSKitis8PByzZs2CIAjYtm0bXnzxRbFDohZi9smAplqHzGJtk20MuhpAZnPH6xK57e/Hm5BRXIlHBgyCobYKTk5Oxg5+ypQp9ebuFQoFbGzu/BwiorZu2bJleO+99+Dg4IDvvvsOgwcPFjskakFmnwxkFFXgbiscJXJbQF97x+t1SUBdUtDo+yUSfH7kFB7r2xXe3t4czici+o1Op8OIESMQHR2NgIAAJCYmwsvLS+ywqIWZfYm5Gp1w1zYyZw/oNSV3vF43PVA3XdCU7j16cV6fiOgPcnNzoVAoEB0djdGjRyM9PZ2JQBtl9smArfzuIdp6K1FbnAOhuv50Qk3u7QJFth2ULfI5RETWIioqCkqlEnl5eVi1ahVOnTrFEuVtmNn/nw3ydMLd7tUduz0KGASUX/ra+JpBVwtNUiRsfbs2+iRBHclvn0NERMDmzZvx2GOPQRAEHD16FOvXrxc7JDIxs18z4GQnh8LDERlNLCK08+0Kx25DUfrDHgjaUsjdfVGR9B10ZQXoMGbxXT/Dr50d7OUSZGVlGev71/133LhxmDFjRkteEhGRWRIEAdOnT0dERAQ8PT0RHx+P4OBgscOiVmD2yQAAhHX1xr7YjCYfL/QatwSlZz5HxeUo6Ks0sPUOgve01bBX9Gzy3AZBj6vffgH58lH1XpfL5dDpdHBxcWEyQERtnlqtRv/+/ZGcnIx+/fohJiaGW5VbEYtIBmaHKPDZ+fQm20jktnAf8SzcRzx7T+eWSGV4yKYIZ//0el2pYCYCRNTW/fTTTxg6dCg0Gg3mz5+PnTt3ih0StTKzXzMAAJ07uGBYJy/IpC270l8mlWBYJy/EnPgS7733XoNt5s2bh3Xr1kGrbbrWARGRJdqzZw/69esHrVaLXbt2MRGwUhaRDADAxsm9IG/hZEAulWDj5F4AgCVLluDtt982HpNKpQgICEBubi7Wrl0LZ2dndO/eHVu3bkVNTdNFjIiILMHChQsxb9482NvbIz4+Hs8+e28jq9R2WEwyEODhiHWN7B9wv9ZP6FFv++Lly5dj3bp1AG4vpImIiEBlZSXCw8MREhKC5ORkvPLKK3BwcEDfvn3x6aefQhDuXgeBiMic1NTUYODAgfjnP/8JlUqF7Oxs9O3bV+ywSEQWs4VxnW1RyXj3m18f+Dx/H90VL4Z1avDYm2++ibNnz+LkyZP1ihAJgoBdu3Zh+/btSEpKgiAIkMvlCAkJwbJlyzBp0qQHjouIyJQyMjLQv39/FBYWYuLEiYiIiGD9gDasuf23xSUDAHAoPhNrjl6BTjA0+YTBn8mkEsilEqyf0AMzBigeKIbq6mp88MEH+OSTT5CcnAyDwQA7OzsMHz4cK1aswF/+8pcHOj8RUUs7efIkJk6cCJ1Ohw0bNuD1118XOyQysTadDABAVrEWKw4nIfpGYZPbGwMwHh/WyQsbJ/eqNzXQEsrLy/HOO+/g888/R0ZGBgDAyckJo0aNwqpVqzj8RkSiW79+PdasWQNbW1scP34cI0eOFDskagVtPhmok5xfjv2xmYj6tQCZRdp6mxpJACg8HRHWxRtzBinQydv0WwwXFBRgw4YNCA8Px82bNwEA7dq1w5NPPok1a9agc+fOJo+BiKiOIAgYN24cTp48iQ4dOuDixYvw9/cXOyxqJVaTDPxRRbUO6UUVqNEJsJVLEeTpBCc78UoppKenY/369Thy5AiKi29vmuTt7Y2pU6di5cqV8PX1FS02Imr7iouL0a9fP6Snp2PIkCH44YcfIJdbRHkZaiHN7b/b1KoRJzs5evi64RGFO3r4uomaCABAUFAQdu/ejaKiIvz888+YNm0aKisr8c9//hN+fn4ICAjAa6+9htLSUlHjJKK2Jy4uDgEBAUhPT8fixYtx9uxZJgLUqDaVDJizXr164YsvvoBarUZMTAzGjBmDoqIibNq0Ce7u7ujUqRM2bNiAqqoqsUMlIgu3Y8cODB48GNXV1Th48CC2bt0qdkhk5trUNIElOnHiBN555x2cP38etbW1kEgk6NGjB1544QX8z//8DzN5Iron8+bNw549e+Dq6opz586hR4+Wrc9ClsUq1wxYMkEQcPDgQbz//vtITEyEXq+HTCbDI488gsWLF2PWrFl8FpiIGlVZWYnBgwfjp59+Qvfu3REXFwdnZ2exwyKRWeWaAUsmlUoxe/ZsxMXFoaqqCtu3b0f37t2RkJCAuXPnwt7eHqGhoThx4oTYoRKRmUlOToafnx9++uknPPXUU7h69SoTAbonTAbMkFwux8KFC5GUlAStVosNGzYgMDAQZ86cwZNPPgkHBweMGTMGZ8/+ea9FIrI2EREReOihh1BaWoqtW7fi4MGDYodEFojJgJmzt7fHihUrkJycjJKSErz22mvw8vLC119/jaFDh8LV1RXTpk3D5cuXxQ6ViFrZ8uXLMXXqVMjlcpw5cwaLFy8WOySyUFwzYKFyc3Px1ltv4d///jcKCgoAAB4eHpgwYQJWr16N4OBgkSMkIlPR6XQYPXo0oqKi4Ofnh8TERHh7e4sdFpkhrhlo43x9ffHRRx8hPz8fN27cwNy5cyEIAj777DMolUp07NgRixYtMiYKRNQ23Lx5E0FBQYiKisKIESOQmZnJRIAeGJOBNkClUmHv3r0oKSnBjz/+iMmTJ6O8vBwffvghOnTogMDAQLzxxhtQq9Vih0pEDyA6OhrBwcHIycnB66+/ju+++45PGVGL4HdRG9OnTx9ERERAo9EgKioKo0ePRkFBATZu3Ih27dqha9eu2LRpE2pqasQOlYjuwZYtWxAaGgqdToeIiAhs3LhR7JCoDeGaAStx5MgRbN68GbGxsdDpdJBKpejZsydefPFFPPfcc7y7IDJTgiBg5syZCA8Ph7u7O2JjY7nhGTUb1wxQPRMnTkRMTAyqq6vx2WefoU+fPrh8+TJeeOEF2NraYtCgQQgPD4cgCGKHSkS/0Wg06NGjB8LDw9GnTx/k5uYyESCTYDJgZaRSKZ5++mkkJCSgsrISW7duRZcuXRAXF4cZM2bAwcEBI0aMQGRkpNihElm1y5cvw8/PD7/88gueeeYZ/Pjjj7C3txc7LGqjmAxYMVtbWyxevBhXr16FRqPB2rVr4e/vb1xr4OTkhHHjxiE2NlbsUImsyoEDB9CnTx9oNBp8/PHH2L17t9ghURvHZIAAAI6OjlizZg1SUlJQVFSEJUuWoF27djh+/DgGDRoENzc3zJw5E9euXRM7VKI2bfHixZg9ezbs7Oxw4cIFPP/882KHRFaACwipSdnZ2Vi/fj0OHz6MwsJCAICnpycmT56MVatWQaFQiBwhUdtQW1uL0NBQnD9/HkFBQUhISICHh4fYYZGF4wJCahH+/v7YuXMnbt26hWvXrmHmzJnQ6XT45JNPEBgYCF9fXyxZsgTFxcVih0pksbKysuDv74/z58/jySefREpKChMBalVMBqjZunXrhgMHDqC0tBRxcXEYP348ysrKsGXLFnh6ekKpVGLt2rXQarVih0pkMSIjI9GpUycUFBTgzTffxFdffcVHfanV8TuO7suAAQNw9OhRVFRU4JtvvsGIESOQk5ODdevWwdnZGd27d8eWLVtY3IioCRs3bsTjjz8OADhx4gRWrlwpckRkrbhmgFqMIAiIiIjAe++9h4sXLxqLG/Xu3RsvvfQSnn76ad7xEOH2z8qkSZNw7NgxtG/fHhcvXuT6GzIJrhmgVieVSjFt2jScP38e1dXV2LlzJ3r16oWffvoJzz77LOzs7PDoo4/i8OHDYodKJJrS0lJ07twZx44dQ0hICLKzs5kIkOiYDJBJSKVSzJ8/H5cuXUJlZSU2b94MpVKJ8+fPY8qUKbC3t8fo0aPx/fffix0qUatJSEiAv78/UlNTsXDhQly4cAG2trZih0XEZIBMz9bWFsuWLcP169ehVquxcuVK+Pj4IDIyEmFhYXB2dsbkyZORmJgodqhEJrNr1y4MHDgQVVVV2LdvH7Zv3y52SERGTAaoVTk7O+PNN99Eeno68vPzsWjRIri4uOA///kP+vXrB3d3d8yZMwfJyclih0rUYubPn4/nnnsOTk5OSExMxJw5c8QOiageJgMkGm9vb7z//vvIy8tDeno6nnnmGUilUuzfvx9dunSBt7c3FixYgNzcXLFDJbovVVVV6Nu3Lz755BN06dIF2dnZePjhh8UOi+gOTAbILAQGBmL37t0oKipCUlISpk+fjqqqKuzYsQN+fn4ICAjAq6++itLSUrFDJWqW1NRU+Pn54ccff8S0adNw7do1Po1FZovJAJmdnj17Ijw8HGq1GjExMRg7diyKioqwefNmuLu7o1OnTtiwYQMqKyvFDpWoQUePHkW3bt1QUlKCd999F1988QUfqyWzxu9OMmuPPvoojh8/Dq1Wi+PHjyM0NBSZmZlYuXIlnJyc0LNnT2zbtg06nU7sUIkAACtXrsTEiRMhlUpx+vRpLF26VOyQiO6KRYfI4giCgEOHDmHr1q1ITEyEXq+HTCZDnz598PLLL2PWrFm8C6NWJwgCHn/8cXz77bfo2LEjEhMT4ePjI3ZYZOVYdIjaLKlUilmzZiEuLg5VVVXYvn07unfvjsTERMydOxf29vYYPnw4vvrqK7FDJStRUFCAwMBAfPvtt8bRKyYCZEmYDJBFk8vlWLhwIZKSkqDVarFx40YEBgYiOjoa48ePh4ODA8aMGYOYmBixQ6U26ty5cwgKCkJ2djaWLVuG77//HnK5XOywiO4JkwFqM+zt7fH6668jOTkZJSUleO2119C+fXt8/fXXGDZsGFxcXDBt2jRcvnxZ7FCpjfjwww8xdOhQ1NbW4osvvsDmzZvFDonovnDNALV5eXl5eOutt/Dll1+ioKAAAODu7o4JEyZgzZo1CA4OFjlCskSzZ8/GgQMH0K5dO1y4cAFdu3YVOySiO3DNANFvOnbsiO3btyM/Px83btzA3LlzYTAYsGfPHiiVSnTs2BEvvfSSMVEgakpFRQV69OiBAwcOoFevXsjJyWEiQBaPyQBZFZVKhb1796KkpAQ//vgjJk+eDI1Gg23btqFDhw4IDAzEG2+8AbVaLXaoZIauXbsGPz8/XL16FXPnzsXPP/8MR0dHscMiemBMBshq9enTBxERESgvL8f333+P0aNHo6CgABs3bkS7du3QpUsXbNq0CTU1NWKHSmbg//7v/9CrVy+o1Wps374de/fuFTskohbDZIAIQGhoKE6dOoXKykocOXIEQ4YMQVpaGl577TU4ODjg4YcfxscffwxBEMQOlUSwdOlSPPXUU7C1tcXZs2excOFCsUMialFcQEjUCEEQsG/fPnzwwQe4dOkSBEGATCZDv379sGTJEkyfPp3Fjdo4nU6HsLAwxMTEQKFQICEhAV5eXmKHRdRsXEBI9ICkUimefvppJCQkoKqqClu2bEGXLl0QHx+Pp556Cg4ODhgxYgROnToldqhkAjk5OQgICEBMTAwef/xxpKWlMRGgNovJAFEz2NjY4OWXX8bVq1eh0Wiwbt06+Pn5ISoqCk888QQcHR0xbtw4xMbGih0qtYDTp09DpVLh5s2bWLNmDb7++muOAlGbxu9uonvk6OiI1atXIzU1FUVFRVi6dCnc3d1x/PhxDBo0CG5ubnjqqadw7do1sUOl+7Bp0yaMHDkSgiDg2LFjWLt2rdghEZkc1wwQtZDs7GysX78ehw8fRmFhIQDA09MTkyZNwurVq6FQKESOkJoiCAKmTZuGw4cPw9PTE/Hx8SxIRRaPawaIWpm/vz927tyJW7du4dq1a5g5cyZ0Oh127dqFwMBA+Pr6YsmSJcZEgcyHWq1Gt27dcPjwYfTv3x+5ublMBMiqMBkgMoFu3brhwIEDKC0tRVxcHMaPH4+ysjJs2bIF7du3R3BwMNauXQuNRiN2qFbvp59+gp+fH5KTk/HCCy8gPj4etra2YodF1KqYDBCZ2IABA3D06FFUVFTgm2++wYgRI5Cbm4t169bB1dUV3bt3xz/+8Q8WNxLBnj170LdvX2i1WuzevRs7duwQOyQiUTAZIGpFo0aNwnfffYfKykp88cUXGDRoEG7cuIGlS5fCwcEBffv2xa5du1jcqBUsWLAA8+bNg6OjIxISEvDMM8+IHRKRaLiAkEhkgiBg165d2L59O5KSkiAIAuRyOQYOHIhly5Zh8uTJYofYptTU1GDo0KGIj49Hp06dEB8fj3bt2okdFpFJcAEhkYWQSqWYP38+Ll26hMrKSmzevBlKpRLnz5/HlClTYG9vj1GjRuH06dNih2rxMjIy4Ofnh/j4eEyaNAnXr19nIkAEJgNEZsXW1hbLli3D9evXoVarsWrVKvj4+ODbb7/FY489BmdnZ0yaNAmJiYlih2pxTp48ic6dO6OoqAjvvPMODh8+zEJCRL/hTwKRmXJ2dsb69euRnp6O/Px8LFq0CC4uLjhy5Aj69esHd3d3zJ49G8nJyWKHavbWrVuHsWPHQiqVIjIyEq+++qrYIRGZFa4ZILIwGRkZWLduHY4cOYLi4mIAQPv27TF16lSsWrUKvr6+IkdoPgRBwLhx43Dy5En4+PggPj4e/v7+YodF1Gq4ZoCojQoMDMTu3btRVFSEpKQkTJ8+HVVVVdixYwf8/Pzg7++PV199FaWlpWKHKqqioiIolUqcPHkSQ4cORVZWFhMBokYwGSCyYD179kR4eDjUajViYmIwduxYFBcXY/PmzXB3d4dKpcJbb70FrVYrdqitKi4uDgqFAhkZGXjllVcQHR0NuVwudlhEZovJAFEb8eijj+L48ePQarU4ceIEQkNDkZWVhVWrVsHZ2Rk9e/bEhx9+CJ1OJ3aoLerLL79EZmam8esdO3Zg8ODBqK6uxqFDh/CPf/xDxOiILAPXDBC1YYIg4NChQ9i6dSsSExOh1+shk8nQp08fvPzyy5g1a5ZFr6i/fPkyevXqBZVKhYSEBCxatAh79+6Fm5sbzp8/j+7du4sdIpGomtt/MxkgshI6nQ47d+7Ejh07cPnyZRgMBtjY2GDQoEF49dVXMW7cOFHjq6jWIb2oAjU6AbZyKYI8neBk1/TQ/jPPPIN9+/bBYDDA0dERGo0GDz30EGJjY+Hs7NxKkROZLyYDRNSoqqoqbNmyBbt378aNGzcAAPb29ggNDcXKlSsxdOjQVokjOb8c+2MzEXW9AJnFWvzxl5EEgMLDEWFdvTE7RIHOHVzqvTcvLw8KhaLetEe3bt1w7dq1VomdyBIwGSCiZikrK8P//u//Yv/+/cjKygJwu8bB448/jtWrV+Phhx9u8c/MKtZixeEkRN8ohEwqgV5o/NdQ3fFhnbywcXIvBHg4AgDeeOMNvP322/jzr7DPP/8cs2fPbvGYiSwRkwEiumc3b97Em2++iS+//BIFBQUAAHd3d0yYMAFr1qxBcHBwo+8tLy+Hi4tLo8frHIrPxJqjV6ATDE0mAX8mk0ogl0qwbkIPjH/IEx4eHvV2epTL5dDpdOjRowcuX77c7PMStWWsM0BE98zHxwfbt29Hfn4+bty4gblz5wK4vdWvUqmEj48PXnrpJWOiUCcuLg7u7u7YsmVLk+ffFpWM5RFJqNYJ95QIAIBeMKBaJ2B5RBIG/3VtvUTgoYcewvz587F3715ERkbe03mJiCMDRNQMly5dwvr16xEZGQmNRgMAUCgUmD17NpYvX47XX38dH330EQBg27ZtePHFF+84x6H4TCyPSLrj9ZpbGSiLOYCamzegryiFxMYONp4BcA2ZAsfOIY3G5PDzv/HhK7MQEhLSrBEJImvEaQIiMokzZ85gw4YNOHPmDKqqqgDc3nlREARjm48//hjPP/+88eusYi1GbvkB1TrhjvNVpsRDffEY7Py6QebsAUNtNbTXz6E6+wo8nvgbXPo80WAcdnIpvn0l1LiGgIjuxGSAiEzu6NGjWLFiBa5cuXLHsX/961947rnnAABzd8XiXGpRs6cGDIIeeZ+9DIOuFn7P72iwjUwqwRClJ/b9tfHRAyJrxzUDRGRyEyZMQP/+/RssXDR//nyMHDkSpy78jOgbhfe0RkAilUHu4gWhWtNoG71gQPSNQtwoKL+v2Inod0wGiOiBHDt2rN4UgUwmg4eHB5ydnREbG4sF7+6HTCq563mEmirotWWoLcmDOu4/qExNgH1g7ybfI5NK8PmFzCbbENHdcecOInogO3fuREVFBYKDg6FUKtGxY0fjSEFtbS3C/nEG2aVVdz1PyelPoLn09e0vJFI4dhkMj9ELmnyPXjAg6tcCrEWPB74OImvGZICIHsjUqVMbPVYtSJDTjEQAAFwHTIRjt6HQlxdB+0sMDAYB0Nfe9X2ZRVpUVOvuWrqYiBrHaQIiMpmMogo0d6WAjWcAHIL6wLnXY/CevgaGmioUfLn+jgqDf2YAkF5U8cCxElkzJgNEZDI1DTxK2FyO3R5FTV4ydMU5Jv0cImIyQEQmZCu//18xhtpqAIBQffe7/gf5HCJiMkBEJhTk6YS7PUegryi94zWDXoeKy6chkdvBxkvR5Pslv30OEd0/rrghIpNxspND4eGIjGJto22Kvt4GQ40WdgE9IXPxhF5Tgoqr30NXlA33EX+F1Nahyc9QeDpy8SDRA+JPEBGZVFhXb+yLzWi06JBT92HQ/ByJ8h9PQKgsh9TWAbY+neD+l2ea3JsAuF1nIKyLtynCJrIqTAaIyKRmhyjw2fn0Ro87PRQKp4dC7+vcesGAOYOankYgorvjmgEiMqnOHVwwrJNXs6oQ3guZVIJhnbzQyZs7FhI9KCYDRGRyGyf3gryFkwG5VIKNk3u16DmJrBWTASIyuQAPR6yb0LIlg9dP6MHti4laCJMBImoVTw1QYNnoLi1yrr+P7ooZA7hWgKilcAEhEbWav4V1hpezHdYcvQKdYLinbY1lUgnkUgnWT+jBRICohXFkgIha1VMDFPj2lVAMUXoCwF0XFtYdH6L0xLevhDIRIDIBjgwQUasL8HDEvr+GIDm/HPtjMxH1awEyi7T1NjWS4HZBobAu3pgzSMGnBohMSGK425ZgANRqNdzc3FBWVgZXV9fWiIuIrExFtQ7pRRWo0QmwlUsR5OnEyoJED6i5/XezftLq8gW1Wt0y0RERNSDAWQJABgDQV2uhrhY3HiJLV9dv3+2+v1nJQHl5OQAgICDgAcMiIiKi1lZeXg43N7dGjzdrmkAQBOTm5sLFxQUSScsWDiEiIiLTMBgMKC8vh6+vL6TSxp8ZaFYyQERERG0XHy0kIiKyckwGiIiIrByTASIiIivHZICIiMjKMRkgIiKyckwGiIiIrByTASIiIiv3/yYjx7wWbZznAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Дополнение графа\n",
"H = nx.complement(G)\n",
"plt.subplot(212)\n",
"nx.draw_networkx(H)"
]
},
{
"cell_type": "markdown",
"id": "fe9a389c",
"metadata": {},
"source": [
"Очевидно, имеем следующие утверждения:<br/>\n",
"У всякого графа имеется пустой подграф.<br/>\n",
"Всякий граф является подграфом полного графа.<br/>\n",
"Если граф G является подграфом графа G1, а граф G2 подграфом графа G1, то G2 подграф графа G, (то есть отношение «быть\n",
"подграфом» транзитивно).\n"
]
},
{
"cell_type": "markdown",
"id": "7a893bea",
"metadata": {},
"source": [
"## Задание"
]
},
{
"cell_type": "markdown",
"id": "f177290d",
"metadata": {},
"source": [
"**Задание 1.** Сгенерировать несколько ориентированных и несколько неориентированных графов различными способами (включая считывание из файла). Выполнить с ними все известные операции. Получить для них матрицы смежности и инцидентности. Вывести степени вершин, списки ребер и вершин."
]
},
{
"cell_type": "code",
"execution_count": 59,
"id": "424ba7bc",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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9+6KiIgwOxoAPLQBAwbo0qVL8vf3p0wCqYBCicfSoEED7d69WyNGjND06dPl4eGhhQsXioE3gIxuz549GjNmjPr3769y5cqZHQewCyx5I8XOnTunHj16aOnSpXr22Wc1adIklS9f3uxYAJBMfHy86tatq9u3b2vXrl3KkiWL2ZEAu8CEEilWvHhxLVmyRKtWrdKJEyfk4+OjAQMG6ObNm2ZHA4AkJkyYoD179iggIIAyCaQiJpRIVTExMfr+++81cuRIlSxZUpMmTVKzZs3MjgUAOnPmjLy9vfXBBx9o/PjxZscB7AqFEmni8OHD6tKliwIDA9WmTRuNHTtWRYoUMTsWAAdlGIaaN2+ugwcP6tChQ8qRI4fZkQC7wpI30oSnp6c2bNiguXPnauPGjfLw8ND48eMVHx9vdjQADmjhwoVas2aNJk+eTJkE0gATSqS5a9eu6euvv5a/v7+qVKkif39/1alTx+xYABzE1atX5enpqUaNGmnRokVmxwHsEhNKpLk8efJo8uTJ+vPPP2W1WlWvXj198sknunbtmtnRADiA3r17Ky4ujuMmgTREoUS6qV27tnbs2KHx48drwYIFqlixombPns21KwGkmcDAQP3www8aMWKEChcubHYcwG6x5A1T/P333+rZs6d+/PFHNWrUSJMnT5aXl5fZsQDYkZs3b6py5coqWLCg/vjjD1mtzFCAtMKfLpiicOHCWrBggdauXauLFy+qSpUq+uqrrxQTE2N2NAB24vvvv9eZM2c0depUyiSQxvgTBlM9++yz2r9/v7755huNHTtWXl5eWrlypdmxAGRyBw8e1LBhw9S3b195enqaHQeweyx5I8M4ceKEunbtqt9++02vvPKKJkyYoBIlSpgdC0AmY7PZ9OSTT+ratWv666+/5OrqanYkwO4xoUSGUa5cOf36669atGiRdu7cKU9PT40YMUK3b982OxqATMTf31/bt2/X1KlTKZNAOmFCiQwpIiJC/fv314QJE+Tp6Sk/Pz81bNjQ7FgAMrgLFy7I09NTbdu21ZQpU8yOAzgMJpTIkHLmzKmxY8dq9+7dcnNz01NPPaV3331XV65cMTsagAysW7duyp49u4YPH252FMChUCiRoVWtWlXbtm3TlClTtGLFCnl4eCggIEA2m83saAAymGXLlmnZsmWaMGGCcufObXYcwKGw5I1MIzQ0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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAIKCAYAAACdo98PAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABExElEQVR4nO3de3icdZ3//9c9k/P51KRNmsncN20KlIInFixW6IqgwhbxAPjTLxRdQFdgZb+w1O5KoSywaFngAl2B716IwAoWRVEEK7uFRUBEROmyStulSdr0kOZ8PszM/fujTkyaSTLJzOT+TPJ8XFeuq3O6855pIK9+7vt+3Zbruq4AAACAWfJ5PQAAAADSG4ESAAAACSFQAgAAICEESgAAACSEQAkAAICEECgBAACQEAIlAAAAEkKgBAAAQEIIlAAAAEgIgRIAIEm69dZbFYlEJEmRSES33XabxxMBSBcESiBFvvOd78iyLP3mN7+J+fgZZ5yhE044YY6nAib30EMPacuWLdq3b5/uuOMOPfTQQ3G97vnnn5dlWZN+/fKXv0zx5OOdcMIJOuOMM+b0ewILXYbXAwAAzLB582ZdfPHFuv7665Wdna1HHnlkRq+/+uqrdfLJJ0+4f8WKFckaEYChCJQAAEnShRdeqLVr12r37t1avny5Fi1aNKPXr1mzRp/61KdSNB0Ak7HLGzDMI488ove+973Kzc1VWVmZLrroIu3du3fC87Zu3Tr6vIqKCn3uc59Tc3PzuOesX79eBQUFeuedd3T22WcrPz9f1dXV2rx5s1zXHX1eQ0ODLMvSd77znXGv//KXvyzLsrR+/fpx93d2duorX/mKamtrlZ2drWXLlun2228fPf5u7Da3bNkyYfaxuySn211qWZZuvPFGSdKNN94oy7LGbau3t1eLFy+WZVl6/vnnR++PHlLw+uuva/Xq1crNzZVt2/r2t789YZ6WlhZ94QtfUFVVlXJycnTSSSdN2N0bfT/Rr8zMTAWDQV133XUaHh4efV57e7uuvfZarVq1SgUFBSoqKtJHP/pR/f73vx+3vej7fuKJJybMU1BQMO4zn+zwidbW1nGfz9jPqLW1dcJ2o4LBYMztNzQ0qLKyUqtXr1Z5eblOPPHEmD8XsxV9z48//rg2btyoxYsXKz8/X+vWrZvwM/7iiy/q05/+tAKBgLKzs1VbW6trrrlGAwMDE7a7ZcsWLVq0SFVVVeNmvfvuu1VWVqalS5fGvfsewOywQgmkWFdXV8xf7iMjIxPuu+WWW/S1r31NF1xwgf76r/9ahw8f1j333KMPfvCDeuONN1RSUiLpSAC49NJLdfLJJ+u2227ToUOHdPfdd+ull14a9zxJCofD+shHPqJTTz1VX//61/Xss89q06ZNCoVC2rx586Rz7969Ww888MCE+/v7+3X66aerublZV1xxhQKBgF5++WV99atf1YEDB3TXXXfN6PM57rjj9PDDD4/evv/++/WHP/xBd9555+h9J5544qSvv+OOO3To0KGYj3V0dOhjH/uYLrjgAn3mM5/R97//fX3pS19SVlaWPv/5z0uSBgYGdMYZZ2j37t268sorZdu2tm7dqvXr16uzs1N/+7d/O26bl19+udasWaOhoSH9/Oc/15YtW5STk6Obb75ZkvTOO+/oRz/6kT796U/Ltm0dOnRI9913n04//XT9z//8j6qrq2f0+Xjl4Ycf1o4dO1Ky7VtuuUWWZen6669XS0uL7rrrLp155pn63e9+p9zcXElH/sHU39+vL33pSyovL9evf/1r3XPPPdq3b5+2bt06uq3vfe97uu6663TuuefqIx/5iLZs2aLm5mYdPHhQvb29uvnmm/XYY4/p0ksv1bJly3Taaael5D0BC54LICUefPBBV9KUXytXrhx9fkNDg+v3+91bbrll3HZ27NjhZmRkjN4/PDzsVlZWuieccII7MDAw+ryf/vSnriT3hhtuGL3vkksucSW5V1111eh9kUjEPeecc9ysrCz38OHDruu67p49e1xJ7oMPPjj6vAsuuMA94YQT3NraWveSSy4Zvf/mm2928/Pz3Z07d46bc8OGDa7f73ebmprGbfMb3/jGhM9m5cqV7umnnx7zc7vkkkvcurq6mI9t2rTJHfu/rZaWFrewsND96Ec/6kpyt2/fPvrY6aef7kpy77jjjtH7hoaG3He9611uZWWlOzw87Lqu6951112uJPeRRx4Zfd7w8LD7/ve/3y0oKHC7u7sn/Yxc13Wrq6vdj33sY6O3BwcH3XA4PO45e/bscbOzs93NmzeP3rd9+3ZXkrt169YJ7zM/P3/cZx79WXrttdfGPe/w4cOuJHfTpk0TPqPo320sdXV1Mbe/Z8+e0fcQCARGP9ej3/PRpnovsZ5XU1Mz+rm6rut+//vfdyW5d9999+h9/f39E15/2223uZZluY2NjaP3nXTSSe5pp53mRiIR13Vdd9++fW5xcbG7ZMkSt6OjY/T9BINB97zzzptyPgCzxy5vIMW++c1v6he/+MWEr6NX3X74wx8qEonoggsuUGtr6+jX4sWLtXz5cm3fvl2S9Jvf/EYtLS36m7/5G+Xk5Iy+/pxzztGxxx6rp59+esIMV1555eifLcvSlVdeqeHhYT333HMxZ3799de1detW3XbbbfL5xv9vYuvWrVqzZo1KS0vHzXnmmWcqHA7rv/7rv8Y9v7+/f9zzWltbFQ6HZ/YhTuLmm29WcXGxrr766piPZ2Rk6Iorrhi9nZWVpSuuuEItLS16/fXXJUk/+9nPtHjxYn3mM58ZfV5mZqauvvpq9fb26oUXXhi3zd7eXrW2tqq5uVn333+/Dh48qA996EOjj2dnZ49+ZuFwWG1tbSooKNCKFSv029/+dsKMPT09Ez6fyURXu6Nf7e3tkz63vb1dra2t6uvrm/Q5k/nmN7+ptrY2bdq0acavjcfFF1+swsLC0duf+tSntGTJEv3sZz8bvS+6UilJfX19am1t1erVq+W6rt544w1JR3b5//73v9fHP/7x0UMhampqtHTpUtXX14+u1GdnZ+ucc87Rf/zHf6Tk/QBglzeQcn/xF3+h973vfRPujwayqF27dsl1XS1fvjzmdjIzMyVJjY2NkmKfOXvsscdOqGjx+XxyHGfcffX19ZKOHBcYy4YNG7RmzRqde+6548JodM4333xz0hM2Wlpaxt3etGlTzGBSVVUV8/Xx2rNnj+677z7967/+67hgPVZ1dbXy8/PH3Tf2vZ966qlqbGzU8uXLJwTn4447TtKfP++oq666SlddddXo7UsvvVTXXHPN6O1IJKK7775b3/rWt7Rnz55x4bm8vHzCjNFd7/E488wz437u2J+PyspKXXbZZbrpppvk9/unfF1XV5duvfVW/d3f/V3Cf0eTOfpn3LIsLVu2bNzPY1NTk2644QY99dRT6ujomDCjpNHjLmtqaqb9njU1Nert7VVnZ+e4Q0IAJAeBEjBEJBKRZVl65plnYv7SLygomJM5tm3bpueee06vvPJKzMcjkYg+/OEP6+///u9jPh4NbFGXX365Pv3pT4+777LLLkt4zn/4h3/Q8uXLdckll+jFF19MeHvxuu6663TWWWcpHA7rrbfeGj3B6cEHH5R0pBz8a1/7mj7/+c/r5ptvVllZmXw+n77yla+MO2kp6oYbbtCaNWvG3fdXf/VXMb/3N7/5zXGfb3d3tz75yU/GfO4PfvADFRUVqb+/X08++aRuueUWFRUVTfr3FnX77bfL5/PpuuuuU1tb25TPTZVwOKwPf/jDam9v1/XXX69jjz1W+fn5am5u1vr160c/x8HBwRlve2BggEAJpACBEjDEMcccI9d1Zdv2hFA2Vl1dnSTp7bff1l/+5V+Oe+ztt98efTwqEononXfeGbfNnTt3Sjpytu9Yrutqw4YNOv/883XqqadOOmdvb2/cq2XLly+f8NyjVw1n6o033tBjjz2mH/3oR1OuuO3fv199fX3jvt/R772urk5vvvmmIpHIuFXKP/7xj6OPj3X88cePvp+zzz5bQ0ND2rhxo2655RZVV1friSee0Nq1a/Vv//Zv417X2dmpioqKCTOuWrVqwucz2Xs6erV7qt3jH/zgB0e/37p16/TSSy/p2WefnTJQ7t+/X3fffbduu+02FRYWpixQ7tq1a9xt13W1e/fu0cNAduzYoZ07d+qhhx7SxRdfPPq8X/ziF+Net2TJktG5p9Pc3KzMzMyYfwcAEscxlIAhPvGJT8jv9+umm24aV+kjHfmFG/3l/r73vU+VlZX69re/raGhodHnPPPMM/rDH/6gc845Z8K277333nHbuvfee5WZmTnu2D9Jeuyxx/Tmm29Oecm9Cy64QK+88op+/vOfT3iss7NToVAovjecgA0bNui0007TunXrpnxeKBTSfffdN3p7eHhY9913nxYtWqT3vve9kqSPfexjOnjwoB5//PFxr7vnnntUUFCg008/fcrvEa2xiVYH+f3+CX9/W7dunVDpNJdc15XrutPu7r7ppptUVVWlL37xiymd57vf/a56enpGbz/xxBM6cOCAPvrRj0r6c6Ae+zm6rqu777573HaCwaACgYB+/OMfjz53//792rdvn3bt2qXOzk5JR/5ufvazn+n973//6KEjAJKLFUrAEMccc4z+6Z/+SV/96lfV0NCgj3/84yosLNSePXv05JNP6vLLL9e1116rzMxM3X777br00kt1+umn6zOf+cxobVAwGBx3PJ8k5eTk6Nlnn9Ull1yiU045Rc8884yefvppbdy4ccJxkNu2bdNll1025ZVNrrvuOj311FM699xztX79er33ve9VX1+fduzYoSeeeEINDQ0pXwXatm2bXnrppWmfV11drdtvv10NDQ2qr6/X448/rt/97ne6//77R4PF5Zdfrvvuu0/r16/X66+/rmAwqCeeeEIvvfSS7rrrrnEnj0jSK6+8ooyMjNFd3vfcc4/e/e53j654nnvuudq8ebMuvfRSrV69Wjt27NCjjz464TjWVPvP//zPcbu8d+/era985StTvmbbtm169NFHlZWVldLZysrK9IEPfECXXnqpDh06pLvuukvLli0bPRTi2GOP1THHHKNrr71Wzc3NKioq0g9+8IMJx1JK0saNG/XFL35R5513ns4++2x9+9vflmVZGh4e1oc//GFdeumlevzxx7Vnzx5961vfSun7AhYyAiVgkA0bNqi+vl533nmnbrrpJklSbW2tzjrrrHGrcevXr1deXp7++Z//Wddff73y8/N1/vnn6/bbb59wfJjf79ezzz6rL33pS7ruuutUWFioTZs26YYbbpjw/XNzc8eVZMeSl5enF154Qbfeequ2bt2q7373uyoqKlJ9fb1uuukmFRcXJ/w5TOe8887T6tWrp31eaWmpHnroIV111VV64IEHVFVVpXvvvXfcMZy5ubl6/vnntWHDBj300EPq7u7WihUr9OCDD04odJeO9GTef//98vl8qq6u1oUXXqhbbrll9PGNGzeqr69P//7v/67HH39c73nPe/T0009rw4YNSXnv8brwwgslabTQ/c4779SXv/zlKV/zrne9a9zZ7qmycePG0ZXwnp4efehDH9K3vvUt5eXlSTpyAtpPfvITXX311brtttuUk5Oj888/X1deeaVOOumkcdu64oor1N7erjvuuEOvvvqqvvGNb+jrX/+6Kioq9IlPfEL/+I//qJycHD3wwAP6yEc+kvL3BixUlnv0vhkA88b69ev1xBNPqLe31+tR5twZZ5yh1tZW/fd//7fXo+BPnn/+ea1du1Zbt25N6SUaTzjhBFVUVIy7chKA1OIYSgAAACSEQAkAAICEECgBAACQEI6hBAAAQEJYoQQAAEBCCJQAAABICIESAAAACSFQAgAAICEESgAAACSEQAkAAICEECgBAACQEAIlAAAAEkKgBAAAQEIIlAAAAEgIgRIAAAAJIVACAAAgIQRKAAAAJIRACQAAgIQQKAEAAJAQ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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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abfb1bp1a8XExCgmJibPjgu4MiaUAACndPLkSX3++efq3bt3npY6Ly8vzZo1S2lpaerSpQuXEgKygEIJAHBKAwcOVJEiRdSrV688P3apUqU0c+ZMrVy5UpMnT87z4wOuhlPeAACns3//ftWqVUuff/653nzzTWM53nrrLc2YMUN79uxR9erVjeUAnB2FEgDgdJ588kkdOnRIhw4dcvie3Y5ITExUvXr15OPjo127dil//vzGsgDOjFPeAACnsmXLFq1cuVLDhw83WiYlqUCBApo/f74OHz6sDz74wGgWwJkxoQQAOA3LstSkSRMlJycrIiJCXl7OMfcYP368evTooe+++06PPfaY6TiA06FQAgCcxrJly9S+fXutW7dOjzzyiOk411mWpccff1xRUVGKiYlRiRIlTEcCnAqFEgDgFNLS0lSzZk2VKVPGKS8qfvbsWdWoUUP169fXypUrZbPZTEcCnIZznEsAAHi82bNn69ChQwoJCTEdJUMlS5bUrFmztGrVKk2cONF0HMCpMKEEABiXmJioypUrq1mzZpo/f77pODf19ttv64svvlBERIRq1KhhOg7gFCiUAADjRo8erf79++vQoUOqVKmS6Tg3lZSUpPr160uSdu/erQIFChhOBJjHKW8AgFGXLl3SyJEj1a1bN6cvk5KUP39+zZ8/X0ePHlWfPn1MxwGcAoUSAGBUSEiIUlNTNWDAANNRsuz+++/XmDFjNGHCBH377bem4wDGccobAGDM6dOnVblyZfXp00eDBw82Hee2WJalJ598Urt371ZMTIzuvPNO05EAYyiUAABjunbtqhUrVig2NlaFChUyHee2nTt3TjVr1lTt2rX17bffOs2F2IG8xv/5AAAjDh48qFmzZunDDz90yTIpSSVKlNCsWbO0evVqTZgwwXQcwBgmlAAAI5566inFxMTo0KFD8vPzMx3HIT169NDkyZMVERGhmjVrmo4D5DkKJQAgz23fvl1NmjRRWFiYOnXqZDqOw5KSktSwYUOlpaVpz549XEoIHodCCQDIU5Zl6cEHH1RcXJz27t3rNvsODx48qLp166pLly7cSQcexz3+FgMAXMbKlSu1detWhYSEuE2ZlKRq1app7NixmjRpklasWGE6DpCnmFACAPJMenq6atWqpRIlSuj777+XzWYzHSlHWZaldu3aaceOHYqJiVGpUqVMRwLyhPv8aggAcHqhoaE6cOCARo0a5XZlUpJsNpumT58uHx8fvfzyy7Lb7aYjAXmCCSUAIE8kJSWpSpUqatSokRYtWmQ6Tq5at26dWrVqpbFjx6pXr16m4wC5jgklACBPTJw4Ub/88ouGDRtmOkque/TRR9WrVy998MEHio6ONh0HyHVMKAEAue7y5cuqUKGCnn32WU2ePNl0nDyRnJysRo0aKSkpSXv37pW/v7/pSECuYUIJAMh1o0ePVnJysj766CPTUfKMn5+f5s2bp5MnT+rdd981HQfIVRRKAECuOnPmjMaNG6eePXt63Kue77vvPn366aeaMmWKli1bZjoOkGs45Q0AyFWvv/66lixZomPHjqlw4cKm4+Q5y7LUvn17bd26VTExMSpdurTpSECOY0IJAMg1P/74o2bMmKH+/ft7ZJmU/riU0LRp0+Tr66v//Oc/XEoIbolCCQDINf3791eZMmX05ptvmo5iVPHixRUaGqoNGzbok08+MR0HyHEUSgBArti5c6eWLFmioUOHys/Pz3Qc4x5++GH17t1b/fr1U2RkpOk4QI5iDyUAIMdZlqUWLVro0qVLioqKkre3t+lITiElJUUPPPCA4uLiFBkZqYCAANORgBzBhBIAkOO+++47bd68WSEhIZTJv/D19dW8efP0888/q2fPnqbjADmGCSUAIEelp6erdu3aKlq0qDZu3OiW9+x21Jdffnn91e/t27c3HQdwGIUSAJCjQkND9Z///Ec7duxQo0aNTMdxSpZl6ZlnntHGjRu1b98+lSlTxnQkwCEUSgBAjklOTlbVqlVVt25dff3116bjOLWLFy+qZs2aqlKlitatW8fWALg09lACAHLM5MmTdfr0aQ0fPtx0FKdXrFgxhYaGauPGjRozZozpOIBDmFACAHLElStXVLFiRXXo0EFffPGF6Tguo2/fvho7dqx27NihevXqmY4DZAuFEgCQIwYMGKAxY8YoNjZWd911l+k4LiMlJUVNmjTRlStXFBkZqcDAQNORgNvGKW8AgMN+/fVXffLJJ+rRowdl8jb9eSmhX375Re+8847pOEC2UCgBAA778244ffr0MR3FJVWuXFmfffaZZsyYocWLF5uOA9w2TnkDABxy5MgRVatWTSEhIerdu7fpOC7Lsix17NhR69evV0xMjMqWLWs6EpBlFEoAgEM6duyonTt3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H3+Un5+f6TgAgFzChBI5xtfXVwsXLtSFCxf06quvsp/Sw23fvl3Lli3T0KFDKZMA4OaYUCLHLVmyRE8//bQmTpyoN99803QcGGBZlpo3b66rV68qMjKSe3YDgJvjX3nkuA4dOqh79+7q2bOnoqKiTMeBAd9++622bNmikSNHUiYBwAMwoUSuSE5OVuPGjXX16lXt3buXF2R4kPT0dAUHB6t48eLasGEDt+UEAA/A6AC5ws/PTwsXLtTZs2fVrVs39lN6kLlz5+qHH37QqFGjKJMA4CGYUCJXLVq0SM8++6ymTp2q119/3XQc5LKkpCRVqVJFDRo00OLFi03HAQDkESaUyFUdO3bU//3f/+mdd95RTEyM6TjIZZMmTdIvv/yi4cOHm44CAMhDTCiR65KSktSoUSMlJSVpz549CgwMNB0JueDy5cuqWLGinnnmGU2dOtV0HABAHmJCiVyXP39+LVq0SGfOnNEbb7zBfko3NXr0aCUmJmrgwIGmowAA8hiFEnmiSpUqmjp1qubOnauZM2eajoMc9ssvv2jcuHHq2bOnSpcubToOACCPccobeer111/X3LlztXv3bt1///2m4yCHdOvWTYsXL9bx48e55SYAeCAKJfJUYmKiGjZsqLS0NEVERCggIMB0JDjo8OHDql69ukaPHq1evXqZjgMAMIBCiTz3448/ql69enrmmWc0a9Ys03HgoGeeeUa7d+/WkSNHlD9/ftNxAAAGsIcSee7ee+/V5MmTNXv2bM2ePdt0HDhg165d+vrrrzV06FDKJAB4MCaUMKZLly5auHChIiIiVK1aNdNxcJssy1LLli114cIFRUdHy9vb23QkAIAhFEoYEx8frwYNGshms2n37t3y9/c3HQm34bvvvtPjjz+uFStWqE2bNqbjAAAMolDCqAMHDqh+/frq1KmTpk2bZjoOsshut6t27doqXLiwNm3axD27AcDDsYcSRlWvXl0TJ07U9OnTFRYWZjoOsmjevHmKiYnRqFGjKJMAACaUMM+yLL300ktasmSJ9u7dq6pVq5qOhJtITk5W1apVVbt2bS1dutR0HACAE6BQwinExcWpfv368vX11c6dO1WgQAHTkZCJ8ePHq1evXvrhhx903333mY4DAHACnPKGUwgMDNSiRYt05MgR9ezZ03QcZOLq1asaNmyYXnnlFcokAOA6CiWcRo0aNTRhwgRNnTpVCxcuNB0HGRgzZozi4uI0aNAg01EAAE6EU95wKpZlqXPnzlqxYoX27t2rypUrm46E//ntt99UsWJF/fe//1VISIjpOAAAJ0KhhNO5du2a6tWrJ39/f+3YsYM7sDiJN998U/Pnz9fx48dVtGhR03EAAE6EU95wOgULFtSiRYt06NAhvfvuu6bjQNLRo0f15Zdfql+/fpRJAMA/MKGE05oyZYreeOMNffXVV3rmmWdMx/Fozz77rLZv364jR47wCnwAwD9QKOG0LMvSc889p9WrVysyMlIVK1Y0Hckj7dmzR/Xr19f06dPVpUsX03EAAE6IQgmndvXqVdWpU0dFihTRtm3b5OfnZzqSR7EsS4888oh+++037du3Tz4+PqYjAQCcEHso4dQKFSqkRYsWaf/+/Xr//fdNx/E469at04YNGzRixAjKJAAgU0wo4RI+//xz/fe//9WSJUvUvn1703E8gt1uV7169VSgQAFt3bqVe3YDADJFoYRLsCxLzzzzjDZs2KCoqCiVL1/edCS3N3/+fHXq1ElbtmxR06ZNTccBADgxCiVcxuXLl1WnTh3dcccd2rJli3x9fU1HclspKSm67777VL16dS1fvtx0HACAk2MPJVxGkSJFtGjRIkVFRemDDz4wHcetffHFF/rpp580YsQI01EAAC6ACSVczvjx49WjRw8tX75cTz75pOk4bufatWuqWLGinnjiCc2cOdN0HACAC6BQwuVYlqUOHTpo06ZNio6OVrly5UxHciuDBw/WyJEjdeTIEb62AIAsoVDCJV26dEm1a9dWqVKltHnzZuXLl890JLdw9uxZVapUSd26ddOYMWNMxwEAuAj2UMIlFS1aVAsXLtSePXvUv39/03HcxrBhw+Tt7c0eVQDAbaFQwmU1bNhQISEh+vjjj/Xtt9+ajuPyjh07pqlTp6pv374KCgoyHQcA4EI45Q2XZlmW2rZtqx07dig6OlplypQxHcllderUSZs2bdLRo0fl7+9vOg4AwIVQKOHyLly4oNq1a+vuu+9WeHg4twjMhqioKNWpU0dffPGFXnvtNdNxAAAuhkIJt7B9+3Y9+OCDev/997l2Yjb861//0smTJ/XDDz9QyAEAt409lHALjRs31vDhwzVy5EitWbPGdByX8v3332vt2rUaMWIEZRIAkC1MKOE27Ha72rRpoz17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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Генерируем ориентированные и неориентированные графы\n",
"G_directed = nx.DiGraph()\n",
"G_undirected = nx.Graph()\n",
"\n",
"# Добавляем ребра в ориентированный граф\n",
"G_directed.add_edges_from([(1, 2), (2, 3), (3, 2), (4, 2)])\n",
"\n",
"# Добавляем ребра в неориентированный граф\n",
"G_undirected.add_edges_from([(1, 2), (2, 3), (3, 4), (4, 1)])\n",
"\n",
"# Считываем граф из файла\n",
"G_from_file = nx.read_edgelist('Задание_9_graph.txt', nodetype=int)\n",
"\n",
"# Визуализируем графы\n",
"nx.draw(G_directed, with_labels=True, font_weight='bold')\n",
"plt.title('Ориентированный Граф')\n",
"plt.show()\n",
"\n",
"nx.draw(G_undirected, with_labels=True, font_weight='bold')\n",
"plt.title('Неориентированный Граф')\n",
"plt.show()\n",
"\n",
"nx.draw(G_from_file, with_labels=True, font_weight='bold')\n",
"plt.title('Граф из файла')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "8eea3b07",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Матрица смежности ориентированного графа:\n",
"[[0 1 0 0]\n",
" [0 0 1 0]\n",
" [0 1 0 0]\n",
" [0 1 0 0]]\n",
"Матрица смежности неориентированного графа:\n",
"[[0 1 0 1]\n",
" [1 0 1 0]\n",
" [0 1 0 1]\n",
" [1 0 1 0]]\n",
"Матрица инцидентности ориентированного графа:\n",
"[[1. 0. 0. 0.]\n",
" [1. 1. 1. 1.]\n",
" [0. 1. 1. 0.]\n",
" [0. 0. 0. 1.]]\n",
"Матрица инцидентности неориентированного графа:\n",
"[[1. 1. 0. 0.]\n",
" [1. 0. 1. 0.]\n",
" [0. 0. 1. 1.]\n",
" [0. 1. 0. 1.]]\n",
"Степени вершин ориентированного графа:\n",
"[(1, 0), (2, 3), (3, 1), (4, 0)]\n",
"Степени вершин неориентированного графа:\n",
"[(1, 2), (2, 2), (3, 2), (4, 2)]\n",
"Список ребер ориентированного графа:\n",
"[(1, 2), (2, 3), (3, 2), (4, 2)]\n",
"Список ребер неориентированного графа:\n",
"[(1, 2), (1, 4), (2, 3), (3, 4)]\n",
"Список вершин ориентированного графа:\n",
"[1, 2, 3, 4]\n",
"Список вершин неориентированного графа:\n",
"[1, 2, 3, 4]\n"
]
}
],
"source": [
"# Получаем матрицы смежности и инцидентности\n",
"print(\"Матрица смежности ориентированного графа:\")\n",
"print(nx.adjacency_matrix(G_directed).todense())\n",
"\n",
"print(\"Матрица смежности неориентированного графа:\")\n",
"print(nx.adjacency_matrix(G_undirected).todense())\n",
"\n",
"print(\"Матрица инцидентности ориентированного графа:\")\n",
"print(nx.incidence_matrix(G_directed).todense())\n",
"\n",
"print(\"Матрица инцидентности неориентированного графа:\")\n",
"print(nx.incidence_matrix(G_undirected).todense())\n",
"\n",
"# Выводим степени вершин каждого графа\n",
"print(\"Степени вершин ориентированного графа:\")\n",
"print(G_directed.in_degree())\n",
"\n",
"print(\"Степени вершин неориентированного графа:\")\n",
"print(G_undirected.degree())\n",
"\n",
"# Выводим списки ребер\n",
"print(\"Список ребер ориентированного графа:\")\n",
"print(G_directed.edges())\n",
"\n",
"print(\"Список ребер неориентированного графа:\")\n",
"print(G_undirected.edges())\n",
"\n",
"# Выводим списки вершин\n",
"print(\"Список вершин ориентированного графа:\")\n",
"print(G_directed.nodes())\n",
"\n",
"print(\"Список вершин неориентированного графа:\")\n",
"print(G_undirected.nodes())"
]
},
{
"cell_type": "markdown",
"id": "2087767b",
"metadata": {},
"source": [
"**Задание 2.** Проверить любой из графов из задания 1 на наличие Эйлерова цикла, эйлерова пути, гамильтонова цикла."
]
},
{
"cell_type": "code",
"execution_count": 63,
"id": "0e8216f7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Граф содержит Эйлеров цикл.\n",
"Граф содержит Эйлеров путь.\n",
"Граф содержит Гамильтонов цикл, цикл: (1, 2, 3, 4)\n"
]
}
],
"source": [
"import itertools\n",
"\n",
"\n",
"# Проверка на наличие Эйлерова цикла\n",
"if nx.is_eulerian(G_undirected):\n",
" print(\"Граф содержит Эйлеров цикл.\")\n",
"else:\n",
" print(\"Граф не содержит Эйлеров цикл.\")\n",
"\n",
"# Проверка на наличие Эйлерова пути\n",
"if nx.has_eulerian_path(G_undirected):\n",
" print(\"Граф содержит Эйлеров путь.\")\n",
"else:\n",
" print(\"Граф не содержит Эйлеров путь.\")\n",
"\n",
"# Проверка на наличие Гамильтонова цикла\n",
"def is_hamiltonian(graph: any) -> None:\n",
" for p in itertools.permutations(list(graph.nodes())):\n",
" if all(p[i] in graph[p[i - 1]] for i in range(len(p))) and p[0] in graph[p[-1]]:\n",
" print(f\"Граф содержит Гамильтонов цикл, цикл: {p}\")\n",
" return\n",
"\n",
"is_hamiltonian(G_undirected)"
]
},
{
"cell_type": "markdown",
"id": "2e168a74",
"metadata": {},
"source": [
"**Задание 3.** Подсчитать количество циклов в любом из графов из задания 1."
]
},
{
"cell_type": "code",
"execution_count": 67,
"id": "2ffaa940",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Количество циклов: 1\n"
]
}
],
"source": [
"from networkx.algorithms import cycle_basis\n",
"\n",
"# Находим все циклы в графе\n",
"cycles = cycle_basis(G_undirected)\n",
"\n",
"# Подсчет количества циклов\n",
"number_of_cycles = len(cycles)\n",
"\n",
"# Выводим количество циклов\n",
"print(f'Количество циклов: {number_of_cycles}')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}