{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "1-what-is-a-graph",
   "metadata": {},
   "source": [
    "# Data structures: Graphs\n",
    "\n",
    "## 1. What is a Graph?\n",
    "A **Graph** $G = (V, E)$ is a fundamental non-linear data structure consisting of a set of **Vertices** (nodes) $V$ and a set of **Edges** $E$ that connect pairs of vertices.\n",
    "\n",
    "Formally, an edge $e = (u, v)$ represents a relationship between node $u$ and node $v$. Graphs are the most versatile data structures because they can model any relationship: hierarchical (trees), linear (linked lists), or complex networks (social media).\n",
    "\n",
    "### Visualizing the Concept\n",
    "![Graph Example](attachment:graph_example.webp)\n",
    "\n",
    "In the graphic above, we can clearly see the components of the formal definition $G = (V, E)$:\n",
    "- **Vertices ($V$):** The labeled circles (**A, B, C, D, E, F, G**) represent the set of vertices. Each vertex is a data point or an entity within our system.\n",
    "- **Edges ($E$):** The gray lines connecting the circles represent the set of edges. They define the relationships between vertices. For example, the line between **A** and **B** is an edge $e = (A, B)$, indicating that these two nodes are adjacent.\n",
    "\n",
    "## 2. Representations of Graphs\n",
    "There are two primary ways to translate a visual graph into computer memory: **Adjacency Lists** and **Adjacency Matrices**.\n",
    "\n",
    "### A. Adjacency List\n",
    "The most idiomatic way to represent a graph in Python is a dictionary. Each key is a vertex, and its value is a list of all vertices it is connected to.\n",
    "\n",
    "```python\n",
    "graph_dict = {\n",
    "    'A': ['B', 'C'],\n",
    "    'B': ['C', 'D', 'G'],\n",
    "    'C': ['B', 'E'],\n",
    "    'D': ['B'],\n",
    "    'E': ['C', 'F'],\n",
    "    'F': ['E'],\n",
    "    'G': ['B']\n",
    "}\n",
    "```\n",
    "\n",
    "### B. Adjacency Matrix\n",
    "An adjacency matrix is a 2D array where both rows and columns represent vertices. A value of `1` indicates an edge exists, and `0` indicates no connection.\n",
    "\n",
    "For our example graph (A-G), the matrix looks like this:\n",
    "\n",
    "| | A | B | C | D | E | F | G |\n",
    "|-|---|---|---|---|---|---|---|\n",
    "| **A** | 0 | 1 | 1 | 0 | 0 | 0 | 0 |\n",
    "| **B** | 1 | 0 | 1 | 1 | 0 | 0 | 1 |\n",
    "| **C** | 1 | 1 | 0 | 0 | 1 | 0 | 0 |\n",
    "| **D** | 0 | 1 | 0 | 0 | 0 | 0 | 0 |\n",
    "| **E** | 0 | 0 | 1 | 0 | 0 | 1 | 0 |\n",
    "| **F** | 0 | 0 | 0 | 0 | 1 | 0 | 0 |\n",
    "| **G** | 0 | 1 | 0 | 0 | 0 | 0 | 0 |"
   ],
   "attachments": {
    "graph_example.webp": {
     "image/webp": "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"
    }
   }
  },
  {
   "cell_type": "markdown",
   "id": "6097ec47",
   "metadata": {},
   "source": [
    "#### Tasks:\n",
    "( *Note*: In many problems, including those below, we use \u201cnode\u201d instead of \u201cvertex\u201d; the terms are interchangeable in graph theory.)\n",
    "1. Write a function `matrix_to_list(matrix, nodes)` that takes a 2D adjacency matrix and a list of node names, and returns an adjacency list (dictionary). Test your function on the graph shown above.\n",
    "2. Create an adjacency list as a Python dictionary for a graph with 5 nodes (0, 1, 2, 3, 4) and the following edges: (0, 1), (1, 2), (2, 0), (2, 3), (4, 1), (4, 3).\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2-operations-complexity",
   "metadata": {},
   "source": [
    "## 3. Operations and Complexity\n",
    "\n",
    "The choice of representation (Adjacency List vs. Adjacency Matrix) significantly impacts the complexity of common operations:\n",
    "\n",
    "| Operation | Adjacency List | Adjacency Matrix |\n",
    "| :--- | :--- | :--- |\n",
    "| **Store Graph** | $O(V + E)$ | $O(V^2)$ |\n",
    "| **Add Vertex** | $O(1)$ | $O(V^2)$ |\n",
    "| **Add Edge** | $O(1)$ | $O(1)$ |\n",
    "| **Query (Are U, V adjacent?)** | $O(V)$ | $O(1)$ |\n",
    "\n",
    "\n",
    "*Note: V = Number of Vertices, E = Number of Edges.*"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6b7ccdb3",
   "metadata": {},
   "source": [
    "## 4. Classification of Graphs\n",
    "\n",
    "Graphs can be classified based on several criteria. Below are the visual comparisons for each type:\n",
    "\n",
    "### Directionality\n",
    "| Directed | Undirected |\n",
    "| :---: | :---: |\n",
    "| ![Directed Graph](attachment:directed.webp) | ![Undirected Graph](attachment:undirected.webp) |\n",
    "\n",
    "### Connectivity\n",
    "| Connected | Disconnected |\n",
    "| :---: | :---: |\n",
    "| ![Connected Graph](attachment:connected.webp) | ![Disconnected Graph](attachment:disconnected.webp) |\n",
    "\n",
    "### Cycles\n",
    "| Cyclic | Acyclic |\n",
    "| :---: | :---: |\n",
    "| ![Cyclic Graph](attachment:cyclic.webp) | ![Acyclic Graph](attachment:acyclic.webp) |\n",
    "\n",
    "### Weights\n",
    "| Weighted | Unweighted |\n",
    "| :---: | :---: |\n",
    "| ![Weighted Graph](attachment:weighted.webp) | ![Unweighted Graph](attachment:unweighted.webp) |\n"
   ],
   "attachments": {
    "directed.webp": {
     "image/webp": "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"
    },
    "undirected.webp": {
     "image/webp": "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"
    },
    "connected.webp": {
     "image/webp": "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"
    },
    "disconnected.webp": {
     "image/webp": "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"
    },
    "cyclic.webp": {
     "image/webp": "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"
    },
    "acyclic.webp": {
     "image/webp": "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"
    },
    "weighted.webp": {
     "image/webp": "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"
    },
    "unweighted.webp": {
     "image/webp": "UklGRjYMAABXRUJQVlA4ICoMAADQWQCdASqQAZABPm02mUikIyKhJHXIUIANiWlu/HyZ5estxR1pdvzcHuA1tteeAfTP1O/zvaf/uuk2gRfwH8a8w8Szunw67yeAF4N3juyf+w9QL107Rf1P8iX0I+v388+0P7APyx41OgB/IP6T/wPUwz5fUXsMfqt+sHa89I8T00nJ27HKch1Yx7yHS5r4bKaZqfFTA9l/a2Y0wfZx/eQ6XNfDbqx7q47k6Va5dgdB3R+FkU+jHvIdLmvht1Y0N8dBwfUh239xlmVsMyW148pnurHvIdLmvht1AEW/ihzWCo1W8b17jEd5Dpc18NurGqSYdx8LT/ZxU71ocW7PVj3kOlzXw24Gg54LBtt7NbNoiZXansw6sY95DpcpwePM3GNKCIFUNNNVjjn/5hJturHvIdLmnpb1p2rGQHOhtNeuhwrnoyd5Dpc13pMOdJO8hxYsInPw08z5RIdLmvhsy7/QK/Kx7yHFTqVcogGATbnw0neQ45Con+PstQfS5r3pqD/eCLq185iHS5TQOafSyGHS5r4bcDJlLwhRA9T3ZWIcXq92Iivht1Y95CTOIc/KALpAoE8Q5mzT8G7EOrGPeQ6XKG7tOF1ZHHc+uNLMVgmGGsHFwXhVPcY95Dpc176iK/F/BWM+T86H2tEXbo8lmF+6uM86fS5r4bdPpb5B/vKvX//k5JhTtfSVQ4TjnpfKnI4E4FDM3Vj3kOOMPXE36zV/2JbjqaG9liuBT95P4hzXw2b+81i+jBlf7/3dX6nB3kOjymV8Ll7xp7Rg/5WD/qe9X+4Zcsl1Y95Do744FgGQkQvpbXPyC9f/5iEKZyHVjHvIdHbl1uN0zgj2cOLWfLoqH9EAR50mXWg6XNfDbqx7xC04G+YGvlrSTuaaoHv8QkznZxyi+hRDbqx7yHS5r4aWdmR5QUB7AsvWAW5jChQ26se8h0ua+G3Af6rr+xHkOrGPeQ6XNe9AAP7/7JqxH4r+BnUArdRABIDZwDTQWYsY0CAAV6ucFwDy3aT4bOySxytuAKtKmVtzrltOrkVaA6SBPZlceL7RLewB/JSBvG7byQeYAQ4H59uWYAJj5uLaR2uTS59YKaM3xItrQzSHO3GDAAKmdYad4nyrrVJt6gpfgvC/MPqwCJ8XYUwAHKQgeeZXkZ1T6CNAvH9YiH3nbcUXw8gCeG97+//SyzM83EaHECZVnmcZ0/i/H/14D+DmBRl+qo9zwa+pRmEf6DmsaiHKaDJ9v63AdvSDOd6qpdJmYdScOruJ7lELVeQ8XA1VApAsYNuZFQC8DT/SbVIGWQ+XUbNHykj8DBXgndsf8Mp7ukqZoYQDkwzk5jMBEVj4Py6QkRLM/IOCuLakB6agFFNis4rbVPxRWYfIR7D1aFb3w4PyYsbdhxbS2qA/tOjXRYCADUN7lMnofOjHeBd8ExBX+EdA/zkR+Vd6IvXLSc8UVIwxRXxKK4xjXf88Agq3K0GCqn6xtVsyWEtcJhRuTAwSN2n1mxmK7hF3uJHGsYOkaFKJjU+iH0no5HH0Tp0CQZyIX1+cmqH6jC1basAJDQZsmPxjaFm2tctkKWhC35RuS6Tt+EHZz1WqNbtnHanc2M2QkTcZyqQa5Db+3K8z2EeiepGFzPd3ZRQSnHFraTb6FCYwEDMJoAtXZYvl1P2bB9tc7kwSYQZWhjdyjG8F+4mNHmjlSE3LdZcnbioVPQXtpF6t8p574zo1H9IRuoHmKIZvOZ5UW4vtOw+BVL5fpOwpe5Uci02XwtJ9kK3IMzWziergVGjnIkMKrkfnupommzpPmYCNvcc7N0wg3ADnW1YZt9cE7g8OUgwbPAPbAldLTROlaGfZTx+2fygm2SDcQBloimNZIEB4vPFH2wtzTqfX9ANQIvj/lYzh/LypUxYMxFJTDg3lcquu6yovmjy+NFN34IBIyQXESoa4Us7e1JIpHSsO9e44KnE/YfOrax96xqNdJwm1IxsqRWiUWVvwn9TegPVG9WQsLu0PcdsWfaXDGjjpdw8j/w1yUGOMT7xTbUKdqpw56lGIMyyBISPzzTHiDvO4Eh3KvgG+8cT5Fs69j+jgjJbAGFm+zN4X6EYIKO/ElYvmtUHBZyS2j1a1UbsABz9qLrdjlx8QDLcVfEsZmuOaV0kCP2vlz+0x/6eVfrDRATUEBifiAM4JGFW5ajXE4wJx0B8XHxH5Se1weZlC5js+81yncMOG5ale39glpOY37bwkxkL4A5Mwn6lMRwxoGHgfhVyREQVVZi6BNAVH2Sw1QX+aDou0qKCW4AbHExx4GayCC0IR+bWlHMvlWEhCbh5LacgaQGbzmeYHICMrgim78BBcGTTxmUtexPsePwS//QG4HSN8a84lKVQsEY/S30DbLcytKJbPp6SffNyDfM+oImXmAjQc8DdUEwaXDGvTnJrrt86Wwf/HBZA/lN2P27SMY9sspXUJAR5Yeavh64ozCIjurvTl+ObU899BCimxbACfVMohrvNnAUaYT+MwrrCF8DBcf/w9DY3658dV19fYmao/L089c+358VUwyPaCt65n/+iF64+/S/yixFFkm9YbV56AcAysHBzK/QbvJxWKGhMmDLOZslxANlEaFx76FwDetlfA0gH9ThshoV54S8QysJ/eqjHa76I6qVPcf6bCe91lzenP/9oL2Ctd3Qf39uTib/vk23zFe08Cx37Sw/Hdot/TSHPPQiBUlxxP7fXI+zyMVJuw53YHlgYcWEgRNtr/k2bt4HnYT1TJIIu07pM9S+aZus2/+ZThi5l2p8trq31nh7UK8cY9zPwvFDmC1y1YAi+VZ28l01J6nS2D/44LIIAs/BqEP5Nhfj6PBTrsGsSrlzQN/iNlI28Jl7a7aZuA6XQ8wvg9IL2/gWg2Bf8Pux+75kU3UOhQXZfxwCd/B9Yo/+4Z82eZNlSsN1RTAAmZ6adaPTCLVuKUPEzu915CPrZAWRyGny+fNlT9aHgwyGIZNZTZ/tVcnRVMU6q+5U8NwmYQgqxO5aScR2YAvLrJzQV5vUE3nTx84KD+6KmWn6KKJNO5xOnQI7usfQM8QDLcVfEsZmuH/sIdGr8zCzCFvwZGl81b3jg+2eJHYJT3g4XX8rP9nlkH6ey/jgGHaq2lROoJcvn3hO4Tdi3Wml6Da+PyDdb6yaUbB3FMmBEZkJzQE4PFfnmI41DQ2sCidWIoBnFBVqYrd0AaQm60TB5OPKiAkfVZAKgHpO/eA0p9N8snGnovHoftzLTa/jT+ZKqZ2GKkSPi5aZjNqeb5pwoYx5C/92bOUB+Q/Fa6Iqhtt5uf02jaCi5w7o0jYVq0IetBmLGfspXJPC5LQP6ePvvmF4AjiOktenJwR+JP+jAze4q1+fg1CG0U3fhIE1pjO4jdknor1NEZNUtFbbCr2X8cXM5jNQOxZyrJHxWsR4TnoG4rYRICGucOKvexizUrAcP5OQaHiedRgqRI+Z4RYzz/anTM9NOxLlEpzbhINFFLZSewBXzRSto8fC4tzQ/0jpLXpycEYWtV6ItpqQRKBvBwuv5WgCxaaHF0IhzXhlKU4dS6+CGbrczoxR4CNq/6oXX7l+SwkWrG/7L+NcrnEojvZFcr7q1AFqapaaAbDhLVmk16hjB3I7uCyZHU+Wx34g9GgAZWNFfb3kDTV6u/5ZHZNXtiVxCw45xj2NOF8TPWKUzEQeMy47KUiNKqe6KMObhhZ8hDuQu0zr7Dw30IkYS7D6oh/4AzoTnt/AswEaKuwaxKuXNUWBFmB5kqo3p9OE2CTeYdNWdQv4syqphKfoPbSlwZ5ywW8FxeUKHJcwp2PnXeOFGvT5b3EOPywAfU3oebg/SA4o7hOb6jxn/KNSEmGxC6QH1WT7OfNx+cwfaBr/K0uhjqYY/cbb3a3N0OJjVDRwaVWr1GUE2oKU0YN0+QlQpUWl2Mqv672Qp/RRB8zuo23nhXKk3hgs8FoXjzrGBv7iBRioUgAHDUuvgppLb6/TmrKvrTlY8xUn5xrY7xrKcXdJSG4orEas5vipSGeNB9wpd5X5zi4gRn3ngOK5OwEzX7jJVg3ds2hggkVRv83sXAocDOGBHnb41C2NTM5zY01j6ps4Kna6h8DQoPlk3L+yiB9aSsJd9NoiA2iYfiSeqMCoNK7AQy7D3jFB5KBGMzs2AAAAA="
    }
   }
  },
  {
   "cell_type": "markdown",
   "id": "basic-implementation-section",
   "metadata": {},
   "source": [
    "## 5. Basic Graph Implementation (Python Class)\n",
    "\n",
    "While a dictionary is a great \"quick\" way to represent a graph, using a class provides better structure for complex operations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "basic-implementation-code",
   "metadata": {},
   "outputs": [],
   "source": [
    "class Graph:\n",
    "    def __init__(self):\n",
    "        self.adj_list = {}\n",
    "\n",
    "    def add_vertex(self, vertex):\n",
    "        if vertex not in self.adj_list:\n",
    "            self.adj_list[vertex] = []\n",
    "\n",
    "    def add_edge(self, v1, v2, directed=False):\n",
    "        self.add_vertex(v1)\n",
    "        self.add_vertex(v2)\n",
    "        self.adj_list[v1].append(v2)\n",
    "        if not directed:\n",
    "            self.adj_list[v2].append(v1)\n",
    "\n",
    "    def __str__(self):\n",
    "        return \"\\n\".join([f\"{v}: {neighbors}\" for v, neighbors in self.adj_list.items()])\n",
    "\n",
    "# Usage\n",
    "my_graph = Graph()\n",
    "my_graph.add_edge('User1', 'User2')\n",
    "my_graph.add_edge('User2', 'User3')\n",
    "print(\"Basic Implementation Output:\")\n",
    "print(my_graph)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "27035647",
   "metadata": {},
   "source": [
    "#### Tasks:\n",
    "\n",
    "1. Add a method `remove_edge(self, v1, v2)` to the `Graph` class that safely removes a connection between two vertices.\n",
    "2. Add a method `get_degree(self, vertex)` that returns the number of neighbors a vertex has.\n",
    "3. Add a method `is_valid_path(self, path)` that takes a list of nodes (e.g., `['A', 'B', 'C']`) and returns `True` if every consecutive pair in the list is connected by an edge.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3585da99",
   "metadata": {},
   "source": [
    "## 6. Graph Traversal Algorithms"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4d76f2ee",
   "metadata": {},
   "source": [
    "We will use the following graph in the visualizations and algorithm tests below:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b2c2ddc4",
   "metadata": {},
   "outputs": [],
   "source": [
    "graph_dict = {\n",
    "    'A': ['B', 'C'],\n",
    "    'B': ['C', 'D', 'G'],\n",
    "    'C': ['B', 'E'],\n",
    "    'D': ['B'],\n",
    "    'E': ['C', 'F'],\n",
    "    'F': ['E'],\n",
    "    'G': ['B']\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "implementation-recap",
   "metadata": {},
   "source": [
    " \n",
    "### **Breadth-First Search (BFS):**\n",
    "Explores all neighbor nodes at the present depth prior to moving on to the nodes at the next depth level. It uses a queue (FIFO) and is ideal for finding the shortest path in unweighted graphs.\n",
    "\n",
    "![BFS Traversal](attachment:bfs_traversal.gif)\n",
    "\n",
    "### **Depth-First Search (DFS):** \n",
    "Explores as far as possible along each branch before backtracking. It uses a stack (LIFO) or recursion.\n",
    "\n",
    "![DFS Traversal](attachment:dfs_traversal.gif)\n"
   ],
   "attachments": {
    "bfs_traversal.gif": {
     "image/gif": "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"
    },
    "dfs_traversal.gif": {
     "image/gif": "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"
    }
   }
  },
  {
   "cell_type": "markdown",
   "id": "72c8c02a",
   "metadata": {},
   "source": [
    "### **BFS Traversal Implementation** \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3af951a4",
   "metadata": {},
   "outputs": [],
   "source": [
    "from collections import deque\n",
    "\n",
    "def bfs(graph, start):\n",
    "    visited = set()\n",
    "    queue = deque([start])\n",
    "    visited.add(start)\n",
    "    order = []\n",
    "    while queue:\n",
    "        vertex = queue.popleft()\n",
    "        order.append(vertex)\n",
    "        for neighbor in graph.get(vertex, []):\n",
    "            if neighbor not in visited:\n",
    "                visited.add(neighbor)\n",
    "                queue.append(neighbor)\n",
    "    return order\n",
    "\n",
    "print(\"BFS Order:\", bfs(graph_dict, 'A'))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bfs-explanation",
   "metadata": {},
   "source": [
    "#### **Understanding the BFS Implementation**\n",
    "\n",
    "Breadth-First Search (BFS) explores a graph level by level, starting from a given source node. Here is a step-by-step breakdown of how the code above works:\n",
    "\n",
    "1.  **Initialize Containers**: \n",
    "    *   We use a set to keep track of all nodes that have already been encountered. This prevents the algorithm from getting stuck in infinite loops (cycles). Using a set data structure allows for very fast verification of whether a node has been visited, with O(1) time complexity.\n",
    "    *   BFS uses a **Queue** (First-In, First-Out) data structure. We start by placing our initial node into this queue.\n",
    "    *   This list will store the sequence in which we visit the nodes.\n",
    "\n",
    "2.  **The Main Loop**: \n",
    "    *   The loop continues as long as there are nodes in the queue. \n",
    "    *   We take the oldest node from the front of the queue to explore it.\n",
    "    *   Now we add this node to the list that represents the final breadth-first traversal order.\n",
    "\n",
    "3.  **Explore Neighbors**: \n",
    "    *   We look at all the neighbors of the current node.\n",
    "    *   For each neighbor, we check whether it has already been visited.\n",
    "    *   If it is a new node, we mark it as visited by adding it to the set and then push it to the back of the queue.\n",
    "\n",
    "**Why use a Queue?** By always adding new nodes to the back and taking nodes to explore from the front, we ensure that we visit all nodes at distance 1 before moving to nodes at distance 2, and so on. This property makes BFS ideal for finding the **shortest path** in unweighted graphs."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cf4caf9b",
   "metadata": {},
   "source": [
    "### **DFS Traversal Implementation**\n",
    "\n",
    "Below are two implementations of the DFS algorithm: iterative and recursive. The recursive version is described in detail under the code cells below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bc3f0c65",
   "metadata": {},
   "outputs": [],
   "source": [
    "def dfs_iterative(graph, start):\n",
    "    visited = set()\n",
    "    stack = [start]\n",
    "    order = []\n",
    "\n",
    "    while stack:\n",
    "        vertex = stack.pop()\n",
    "\n",
    "        if vertex not in visited:\n",
    "            visited.add(vertex)\n",
    "            order.append(vertex)\n",
    "\n",
    "            # Add neighbors in reverse order to mimic recursive DFS\n",
    "            for neighbor in reversed(graph.get(vertex, [])):\n",
    "                if neighbor not in visited:\n",
    "                    stack.append(neighbor)\n",
    "\n",
    "    return order\n",
    "\n",
    "\n",
    "print(\"DFS Order:\", dfs_iterative(graph_dict, 'A'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c9d9ab57",
   "metadata": {},
   "outputs": [],
   "source": [
    "def dfs(graph, start, visited=None):\n",
    "    if visited is None:\n",
    "        visited = []\n",
    "    visited.append(start)\n",
    "    for neighbor in graph.get(start, []):\n",
    "        if neighbor not in visited:\n",
    "            dfs(graph, neighbor, visited)\n",
    "    return visited\n",
    "\n",
    "print(\"DFS Order:\", dfs(graph_dict, 'A'))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dfs-explanation",
   "metadata": {},
   "source": [
    "#### **Understanding the DFS Implementation**\n",
    "\n",
    "Depth-First Search (DFS) explores a graph by going as deep as possible along each branch before backtracking. This implementation uses **Recursion**, which implicitly utilizes a stack (the call stack).\n",
    "\n",
    "1.  **Function Signature**: `dfs(graph, start, visited=None)`:\n",
    "    *   We pass the `graph` and the `start` node.\n",
    "    *   `visited` is initialized to `None` and then set to an empty list `[]` on the first call. This list serves two purposes: tracking visited nodes to avoid cycles and recording the order of traversal.\n",
    "\n",
    "2.  **Visit the Node**: \n",
    "    *   `visited.append(start)`: As soon as we enter the function for a node, we mark it as visited by adding it to our list.\n",
    "\n",
    "3.  **Recursive Exploration**: \n",
    "    *   `for neighbor in graph.get(start, [])`: We iterate through all neighbors of the current node.\n",
    "    *   `if neighbor not in visited`: If a neighbor hasn\u2019t been visited yet, we immediately call `dfs` on that neighbor.\n",
    "    *   **The \"Depth\" part**: Because we call `dfs` on the first neighbor *before* looking at the second neighbor, the algorithm plunges deep into the graph.\n",
    "\n",
    "4.  **Backtracking**: \n",
    "    *   When a node has no more unvisited neighbors, the function finishes and \"returns\" to the previous caller (the parent node), which then continues checking its remaining neighbors. This is known as backtracking.\n",
    "\n",
    "**Use Cases**: DFS is excellent for tasks like finding connected components, solving puzzles (like mazes), and performing topological sorts in Directed Acyclic Graphs (DAGs)."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "553b9e34",
   "metadata": {},
   "source": [
    "#### Tasks:\n",
    "\n",
    "1. Modify the `bfs` function to return a dictionary where keys are nodes and values are their distance (number of edges) from the start node.\n",
    "2. Write a function `find_path_dfs(graph, start, end)` that returns a list of nodes representing a path from start to end, or `None` if no path exists.\n",
    "3. Implement a function `has_cycle(graph)` that uses either BFS or DFS to detect if there is at least one cycle in the graph."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae4dd02f",
   "metadata": {},
   "source": [
    "## 7. Dijkstra's Shortest Path Algorithm\n",
    "\n",
    "**Dijkstra's Algorithm:** <br> Finds the shortest paths between nodes in a graph. It is a greedy algorithm that works for *weighted* graphs with *non-negative* edge weights.\n",
    "\n",
    "### **Dijkstra's Algorithm: Step-by-Step Visualization**\n",
    "\n",
    "To understand how Dijkstra's algorithm finds the shortest path, let's trace its execution on a sample graph. We want to find the shortest path from node **A** to node **D**.\n",
    "\n",
    "#### **Step 0: Initial State**\n",
    "![Step 0](attachment:dijkstra_step_0.webp)\n",
    "\n",
    "**Description:** \n",
    "We start by initializing the distance to the source node (**A**) as `0` and all other nodes as infinity (`\u221e`). At this stage, no predecessors are known. Node **A** is our starting point.\n",
    "\n",
    "---\n",
    "\n",
    "#### **Step 1: Visit Neighbors of A**\n",
    "![Step 1](attachment:dijkstra_step_1.webp)\n",
    "\n",
    "**Description:** \n",
    "We extract node **A** (the node with the smallest distance, `0`). We examine its neighbors: **B** and **C**.\n",
    "- The distance to **B** becomes `0 + 1 = 1` (Predecessor: **A**).\n",
    "- The distance to **C** becomes `0 + 4 = 4` (Predecessor: **A**).\n",
    "Node **A** is now marked as visited (fixed).\n",
    "\n",
    "---\n",
    "\n",
    "#### **Step 2: Visit Neighbors of B**\n",
    "![Step 2](attachment:dijkstra_step_2.webp)\n",
    "\n",
    "**Description:** \n",
    "The next node with the smallest distance is **B** (`dist=1`). We explore its neighbors: **C** and **D**.\n",
    "- **Updating C:** The path `A -> B -> C` has a length of `1 + 2 = 3`. Since `3` is less than the current distance to **C** (`4`), we update **C**'s distance to `3` and change its predecessor to **B**.\n",
    "- **Updating D:** The path `A -> B -> D` has a length of `1 + 5 = 6`. We update **D**'s distance to `6` (Predecessor: **B**).\n",
    "Node **B** is now marked as visited.\n",
    "\n",
    "---\n",
    "\n",
    "#### **Step 3: Visit Neighbors of C**\n",
    "![Step 3](attachment:dijkstra_step_3.webp)\n",
    "\n",
    "**Description:** \n",
    "The next node is **C** (`dist=3`). Its neighbor is **D**.\n",
    "- **Updating D:** The path `A -> B -> C -> D` has a length of `3 + 1 = 4`. Since `4` is less than the current distance to **D** (`6`), we update **D**'s distance to `4` and change its predecessor to **C**.\n",
    "Node **C** is now marked as visited.\n",
    "\n",
    "---\n",
    "\n",
    "#### **Step 4: Final State**\n",
    "![Step 4](attachment:dijkstra_step_4.webp)\n",
    "\n",
    "**Description:** \n",
    "Finally, we extract node **D** (`dist=4`). All nodes have been visited. By following the predecessors backward from **D**, we find the shortest path: **A -> B -> C -> D** with a total weight of **4**.\n"
   ],
   "attachments": {
    "dijkstra_step_0.webp": {
     "image/webp": "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"
    },
    "dijkstra_step_1.webp": {
     "image/webp": "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"
    },
    "dijkstra_step_2.webp": {
     "image/webp": "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"
    },
    "dijkstra_step_3.webp": {
     "image/webp": "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"
    },
    "dijkstra_step_4.webp": {
     "image/webp": "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"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "implementation-code",
   "metadata": {},
   "outputs": [],
   "source": [
    "import heapq\n",
    "\n",
    "# We define a weighted graph where each edge is a tuple (neighbor, weight)\n",
    "weighted_graph = {\n",
    "    'A': [('B', 1), ('C', 4)],\n",
    "    'B': [('A', 1), ('C', 2), ('D', 5)],\n",
    "    'C': [('A', 4),('B', 2), ('D', 1)],\n",
    "    'D': [('B', 5), ('C', 1)],\n",
    "}\n",
    "\n",
    "def dijkstra(graph, start):\n",
    "    # distances will store the current shortest distance to each node\n",
    "    distances = {vertex: float('infinity') for vertex in graph}\n",
    "    distances[start] = 0\n",
    "    \n",
    "    # priority_queue stores (distance, vertex) tuples\n",
    "    priority_queue = [(0, start)]\n",
    "    \n",
    "    while priority_queue:\n",
    "        current_distance, current_vertex = heapq.heappop(priority_queue)\n",
    "        \n",
    "        # If we already found a shorter path to this vertex, ignore this entry\n",
    "        if current_distance > distances[current_vertex]:\n",
    "            continue\n",
    "            \n",
    "        for neighbor, weight in graph.get(current_vertex, []):\n",
    "            distance = current_distance + weight\n",
    "            \n",
    "            # If the new distance is shorter than what we've previously recorded, update it\n",
    "            if distance < distances[neighbor]:\n",
    "                distances[neighbor] = distance\n",
    "                heapq.heappush(priority_queue, (distance, neighbor))\n",
    "                \n",
    "    return distances\n",
    "\n",
    "print(\"Dijkstra Shortest Distances from 'A':\", dijkstra(weighted_graph, 'A'))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dijkstra-explanation",
   "metadata": {},
   "source": [
    "#### **Understanding Dijkstra's Algorithm Implementation**\n",
    "\n",
    "Dijkstra's algorithm finds the shortest path from a starting node to all other nodes in a weighted graph. Unlike BFS, which treats all edges as equal, Dijkstra's algorithm considers the specific weight (or \"cost\") of each edge.\n",
    "\n",
    "1.  **Setup Distances**: \n",
    "    *   `distances = {vertex: float('infinity') for vertex in graph}`: Initially, we don't know any paths, so we set the distance to all nodes to infinity.\n",
    "    *   `distances[start] = 0`: The distance from the start node to itself is zero.\n",
    "\n",
    "2.  **The Priority Queue**: \n",
    "    *   `priority_queue = [(0, start)]`: We use a **Min-Priority Queue** (via `heapq`). It stores `(distance, vertex)` tuples. \n",
    "    *   The priority queue always yields the node with the **smallest known distance** to explore next. This greedy strategy ensures we always find the shortest path efficiently.\n",
    "\n",
    "3.  **The Exploration Loop**: \n",
    "    *   `current_distance, current_vertex = heapq.heappop(priority_queue)`: We extract the \"closest\" node to the source.\n",
    "    *   **Optimization Check**: `if current_distance > distances[current_vertex]: continue`. If we have already found a better path to this node, we discard this entry.\n",
    "\n",
    "4.  **Relaxation Step**: \n",
    "    *   We iterate through each neighbor and its corresponding weight: `for neighbor, weight in graph.get(current_vertex, [])`.\n",
    "    *   We calculate the distance via the current node: `distance = current_distance + weight`.\n",
    "    *   `if distance < distances[neighbor]`: If this new path is shorter than the best one we knew before, we update the distance and push the new path into the priority queue.\n",
    "\n",
    "**Key Insight**: Dijkstra's algorithm is essentially a BFS that uses a Priority Queue instead of a regular Queue to handle varying edge weights. It is guaranteed to find the shortest path as long as all edge weights are non-negative."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "678e3956",
   "metadata": {},
   "source": [
    "#### **Other shortest path algorithms**\n",
    "Dijkstra\u2019s algorithm is the most efficient in compute the shortest paths from a single source node to all others, but it requires all edge weights to be `non-negative`. In contrast, the **Bellman\u2013Ford** algorithm is more flexible: although slower, it can handle graphs with `negative` edge weights and can even detect the presence of negative `cycles` by repeatedly relaxing all edges. **Floyd\u2013Warshall** takes a different approach altogether, focusing on computing shortest paths between every pair of nodes rather than from a single source. It uses a dynamic programming technique that systematically considers whether passing through intermediate vertices can yield shorter paths. While this makes it very general and easy to implement, it is also the most computationally expensive, with cubic time complexity. In practice, Dijkstra\u2019s algorithm is preferred for performance when its assumptions hold, Bellman\u2013Ford is chosen when negative weights must be supported, and Floyd\u2013Warshall is useful when a complete all-pairs distance matrix is required."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3-practical-use-cases",
   "metadata": {},
   "source": [
    "## 8. When do Developers use Graphs in Practice?\n",
    "\n",
    "Graphs are ubiquitous in software engineering:\n",
    "- **Dependency Management:** Package managers (pip, npm) use Directed Acyclic Graphs (DAGs).\n",
    "- **Routing Algorithms:** Google Maps uses weighted graphs for navigation.\n",
    "- **Social Networks:** Recommendation engines use graph distance.\n",
    "- **Garbage Collection:** Identify reachable objects.\n",
    "- **Task Scheduling:** Airflow and Jenkins model workflows as DAGs."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4-python-packages",
   "metadata": {},
   "source": [
    "## 9. Professional Python Packages for Graph Management\n",
    "\n",
    "1. **NetworkX:** The industry standard for studying complex networks. It is easy to use and provides hundreds of built-in algorithms.\n",
    "2. **PyG (PyTorch Geometric):** Used for Deep Learning on graphs (Graph Neural Networks).\n",
    "3. **python-igraph:** A C-based library with Python bindings, optimized for performance and massive graphs.\n",
    "4. **Graph-tool:** Another high-performance C++ library for Python, known for its speed and advanced visualization.\n",
    "\n",
    "For production systems, **NetworkX** is the most popular choice for general-purpose graph analysis:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "professional-library-example",
   "metadata": {},
   "outputs": [],
   "source": [
    "import networkx as nx\n",
    "\n",
    "# 1. Create a weighted graph\n",
    "G = nx.Graph()\n",
    "G.add_edge('London', 'Paris', weight=450)\n",
    "G.add_edge('Paris', 'Berlin', weight=1050)\n",
    "G.add_edge('London', 'Berlin', weight=1100)\n",
    "\n",
    "# 2. Run a professional algorithm (Shortest Path)\n",
    "shortest_path = nx.shortest_path(G, source='London', target='Berlin', weight='weight')\n",
    "path_length = nx.shortest_path_length(G, source='London', target='Berlin', weight='weight')\n",
    "\n",
    "print(f\"Professional Example (NetworkX):\")\n",
    "print(f\"Shortest path from London to Berlin: {shortest_path}\")\n",
    "print(f\"Total distance: {path_length} km\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1248bb55",
   "metadata": {},
   "source": [
    "## 10. Python alternatives to Graphs\n",
    "\n",
    "Sometimes a graph is overkill or inefficient. Consider these alternatives:\n",
    "\n",
    "**Dictionaries/Hash Maps:** For simple 1:1 or 1:N lookups where you don't need traversal.<br>\n",
    "**Sets:** For testing membership and uniqueness without relationships.<br>\n",
    "**NumPy Matrices:** For dense, static connectivity where you want to use linear algebra (eigenvectors, etc.)."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7-ml-graphs",
   "metadata": {},
   "source": [
    "## 11. Graphs in Machine Learning\n",
    "\n",
    "Machine Learning is increasingly moving toward non-Euclidean data via **Graph Neural Networks (GNNs)**:\n",
    "- **Node Classification:** Predicting a property of a node (e.g., is this user a bot?).\n",
    "- **Link Prediction:** Predicting if an edge should exist (e.g., \"You might know this person\").\n",
    "- **Knowledge Graphs:** Modeling structured information (like Google's Knowledge Vault or Wikidata).\n",
    "- **Molecular Analysis:** Representing molecules as graphs for drug discovery (atoms as nodes, bonds as edges).\n",
    "\n",
    "In ML, we often convert graphs into numerical data using **Adjacency Matrices** or **Embeddings**:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ml-example-code",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Machine Learning Context: Adjacency Matrix for a Graph Neural Network (GNN)\n",
    "import numpy as np\n",
    "\n",
    "# Representing a simple friendship graph as a NumPy Matrix for ML models\n",
    "# Nodes: [User0, User1, User2]\n",
    "adj_matrix = np.array([\n",
    "    [0, 1, 0],  # User0 is friends with User1\n",
    "    [1, 0, 1],  # User1 is friends with User0 and User2\n",
    "    [0, 1, 0]   # User2 is friends with User1\n",
    "])\n",
    "\n",
    "# In ML, we might use this matrix to 'propagate' features between friends\n",
    "user_features = np.array([[25], [30], [22]]) # Age of users\n",
    "\n",
    "# Simple aggregation (Graph Convolution): Average friend's age\n",
    "aggregated_features = np.dot(adj_matrix, user_features)\n",
    "\n",
    "print(\"Machine Learning Concept (Aggregation):\")\n",
    "print(f\"Sum of friends' ages for each user:\\n{aggregated_features}\")"
   ]
  }
 ],
 "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.12.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}