search.ipynb 184 ko
Newer Older
Chipe1's avatar
Chipe1 a validé
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
Chipe1's avatar
Chipe1 a validé
   },
   "source": [
    "# Solving problems by Searching\n",
    "\n",
    "This notebook serves as supporting material for topics covered in **Chapter 3 - Solving Problems by Searching** and **Chapter 4 - Beyond Classical Search** from the book *Artificial Intelligence: A Modern Approach.* This notebook uses implementations from [search.py](https://github.com/aimacode/aima-python/blob/master/search.py) module. Let's start by importing everything from search module."
   "cell_type": "code",
   "execution_count": null,
    "collapsed": false,
    "deletable": true,
    "editable": true,
    "scrolled": true
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Eshan\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\fuzzywuzzy\\fuzz.py:35: UserWarning: Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning\n",
      "  warnings.warn('Using slow pure-python SequenceMatcher. Install python-Levenshtein to remove this warning')\n"
     ]
    }
   ],
Chipe1's avatar
Chipe1 a validé
   "source": [
    "from search import *"
Chipe1's avatar
Chipe1 a validé
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
Chipe1's avatar
Chipe1 a validé
   "source": [
    "Here, we learn about problem solving. Building goal-based agents that can plan ahead to solve problems, in particular, navigation problem/route finding problem. First, we will start the problem solving by precisely defining **problems** and their **solutions**. We will look at several general-purpose search algorithms. Broadly, search algorithms are classified into two types:\n",
    "* **Uninformed search algorithms**: Search algorithms which explore the search space without having any information about the problem other than its definition.\n",
    "* Examples:\n",
    "    1. Breadth First Search\n",
    "    2. Depth First Search\n",
    "    3. Depth Limited Search\n",
    "    4. Iterative Deepening Search\n",
    "\n",
    "\n",
    "* **Informed search algorithms**: These type of algorithms leverage any information (heuristics, path cost) on the problem to search through the search space to find the solution efficiently.\n",
    "* Examples:\n",
    "    1. Best First Search\n",
    "    2. Uniform Cost Search\n",
    "    3. A\\* Search\n",
    "    4. Recursive Best First Search\n",
    "\n",
    "*Don't miss the visualisations of these algorithms solving the route-finding problem defined on Romania map at the end of this notebook.*"
Chipe1's avatar
Chipe1 a validé
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
Chipe1's avatar
Chipe1 a validé
   "source": [
Chipe1's avatar
Chipe1 a validé
    "\n",
    "Let's see how we define a Problem. Run the next cell to see how abstract class `Problem` is defined in the search module."
jeff3456's avatar
jeff3456 a validé
  {
   "cell_type": "code",
   "execution_count": 2,
jeff3456's avatar
jeff3456 a validé
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
jeff3456's avatar
jeff3456 a validé
   },
   "outputs": [],
jeff3456's avatar
jeff3456 a validé
   "source": [
    "%psource Problem"
Chipe1's avatar
Chipe1 a validé
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
Chipe1's avatar
Chipe1 a validé
   "source": [
    "The `Problem` class has six methods.\n",
    "* `__init__(self, initial, goal)` : This is what is called a `constructor` and is the first method called when you create an instance of the class. `initial` specifies the initial state of our search problem. It represents the start state from where our agent begins its task of exploration to find the goal state(s) which is given in the `goal` parameter.\n",
    "\n",
    "\n",
    "* `actions(self, state)` : This method returns all the possible actions agent can execute in the given state `state`.\n",
    "\n",
    "\n",
Chipe1's avatar
Chipe1 a validé
    "* `result(self, state, action)` : This returns the resulting state if action `action` is taken in the state `state`. This `Problem` class only deals with deterministic outcomes. So we know for sure what every action in a state would result to.\n",
    "* `goal_test(self, state)` : Given a graph state, it checks if it is a terminal state. If the state is indeed a goal state, value of `True` is returned. Else, of course, `False` is returned.\n",
Chipe1's avatar
Chipe1 a validé
    "* `path_cost(self, c, state1, action, state2)` : Return the cost of the path that arrives at `state2` as a result of taking `action` from `state1`, assuming total cost of `c` to get up to `state1`.\n",
    "* `value(self, state)` : This acts as a bit of extra information in problems where we try to optimise a value when we cannot do a goal test."
Chipe1's avatar
Chipe1 a validé
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
Chipe1's avatar
Chipe1 a validé
   "source": [
    "We will use the abstract class `Problem` to define our real **problem** named `GraphProblem`. You can see how we define `GraphProblem` by running the next cell."
jeff3456's avatar
jeff3456 a validé
   ]
  },
   "execution_count": 3,
    "collapsed": false,
    "deletable": true,
    "editable": true
Chipe1's avatar
Chipe1 a validé
   "source": [
Chipe1's avatar
Chipe1 a validé
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
Chipe1's avatar
Chipe1 a validé
   "source": [
    "Now it's time to define our problem. We will define it by passing `initial`, `goal`, `graph` to `GraphProblem`. So, our problem is to find the goal state starting from the given initial state on the provided graph. Have a look at our romania_map, which is an Undirected Graph containing a dict of nodes as keys and neighbours as values."
Chipe1's avatar
Chipe1 a validé
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
Chipe1's avatar
Chipe1 a validé
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
Chipe1's avatar
Chipe1 a validé
   },
   "outputs": [],
   "source": [
    "romania_map = UndirectedGraph(dict(\n",
    "    Arad=dict(Zerind=75, Sibiu=140, Timisoara=118),\n",
    "    Bucharest=dict(Urziceni=85, Pitesti=101, Giurgiu=90, Fagaras=211),\n",
    "    Craiova=dict(Drobeta=120, Rimnicu=146, Pitesti=138),\n",
    "    Drobeta=dict(Mehadia=75),\n",
    "    Eforie=dict(Hirsova=86),\n",
    "    Fagaras=dict(Sibiu=99),\n",
    "    Hirsova=dict(Urziceni=98),\n",
    "    Iasi=dict(Vaslui=92, Neamt=87),\n",
    "    Lugoj=dict(Timisoara=111, Mehadia=70),\n",
    "    Oradea=dict(Zerind=71, Sibiu=151),\n",
    "    Pitesti=dict(Rimnicu=97),\n",
    "    Rimnicu=dict(Sibiu=80),\n",
    "    Urziceni=dict(Vaslui=142)))\n",
    "\n",
    "romania_map.locations = dict(\n",
    "    Arad=(91, 492), Bucharest=(400, 327), Craiova=(253, 288),\n",
    "    Drobeta=(165, 299), Eforie=(562, 293), Fagaras=(305, 449),\n",
    "    Giurgiu=(375, 270), Hirsova=(534, 350), Iasi=(473, 506),\n",
    "    Lugoj=(165, 379), Mehadia=(168, 339), Neamt=(406, 537),\n",
    "    Oradea=(131, 571), Pitesti=(320, 368), Rimnicu=(233, 410),\n",
    "    Sibiu=(207, 457), Timisoara=(94, 410), Urziceni=(456, 350),\n",
    "    Vaslui=(509, 444), Zerind=(108, 531))"
Chipe1's avatar
Chipe1 a validé
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
Chipe1's avatar
Chipe1 a validé
   },
   "source": [
    "It is pretty straightforward to understand this `romania_map`. The first node **Arad** has three neighbours named **Zerind**, **Sibiu**, **Timisoara**. Each of these nodes are 75, 140, 118 units apart from **Arad** respectively. And the same goes with other nodes.\n",
    "\n",
    "And `romania_map.locations` contains the positions of each of the nodes. We will use the straight line distance (which is different from the one provided in `romania_map`) between two cities in algorithms like A\\*-search and Recursive Best First Search.\n",
    "\n",
    "**Define a problem:**\n",
    "Hmm... say we want to start exploring from **Arad** and try to find **Bucharest** in our romania_map. So, this is how we do it."
Chipe1's avatar
Chipe1 a validé
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
Chipe1's avatar
Chipe1 a validé
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
Chipe1's avatar
Chipe1 a validé
   "source": [
    "romania_problem = GraphProblem('Arad', 'Bucharest', romania_map)"
Chipe1's avatar
Chipe1 a validé
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "# Romania map visualisation\n",
    "Let's have a visualisation of Romania map [Figure 3.2] from the book and see how different searching algorithms perform / how frontier expands in each search algorithm for a simple problem named `romania_problem`."
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Have a look at `romania_locations`. It is a dictionary defined in search module. We will use these location values to draw the romania graph using **networkx**."
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'Arad': (91, 492), 'Bucharest': (400, 327), 'Craiova': (253, 288), 'Drobeta': (165, 299), 'Eforie': (562, 293), 'Fagaras': (305, 449), 'Giurgiu': (375, 270), 'Hirsova': (534, 350), 'Iasi': (473, 506), 'Lugoj': (165, 379), 'Mehadia': (168, 339), 'Neamt': (406, 537), 'Oradea': (131, 571), 'Pitesti': (320, 368), 'Rimnicu': (233, 410), 'Sibiu': (207, 457), 'Timisoara': (94, 410), 'Urziceni': (456, 350), 'Vaslui': (509, 444), 'Zerind': (108, 531)}\n"
   "source": [
    "romania_locations = romania_map.locations\n",
    "print(romania_locations)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
    "Let's start the visualisations by importing necessary modules. We use networkx and matplotlib to show the map in the notebook and we use ipywidgets to interact with the map to see how the searching algorithm works."
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import networkx as nx\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib import lines\n",
    "\n",
    "from ipywidgets import interact\n",
    "import ipywidgets as widgets\n",
    "from IPython.display import display\n",
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Let's get started by initializing an empty graph. We will add nodes, place the nodes in their location as shown in the book, add edges to the graph."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "# initialise a graph\n",
    "G = nx.Graph()\n",
    "\n",
    "# use this while labeling nodes in the map\n",
    "node_labels = dict()\n",
    "# use this to modify colors of nodes while exploring the graph.\n",
    "# This is the only dict we send to `show_map(node_colors)` while drawing the map\n",
    "node_colors = dict()\n",
    "\n",
    "for n, p in romania_locations.items():\n",
    "    # add nodes from romania_locations\n",
    "    G.add_node(n)\n",
    "    # add nodes to node_labels\n",
    "    node_labels[n] = n\n",
    "    # node_colors to color nodes while exploring romania map\n",
    "    node_colors[n] = \"white\"\n",
    "\n",
    "# we'll save the initial node colors to a dict to use later\n",
    "initial_node_colors = dict(node_colors)\n",
    "    \n",
    "# positions for node labels\n",
    "node_label_pos = { k:[v[0],v[1]-10]  for k,v in romania_locations.items() }\n",
    "\n",
    "# use this while labeling edges\n",
    "edge_labels = dict()\n",
    "\n",
    "# add edges between cities in romania map - UndirectedGraph defined in search.py\n",
    "for node in romania_map.nodes():\n",
    "    connections = romania_map.get(node)\n",
    "    for connection in connections.keys():\n",
    "        distance = connections[connection]\n",
    "\n",
    "        # add edges to the graph\n",
    "        G.add_edge(node, connection)\n",
    "        # add distances to edge_labels\n",
    "        edge_labels[(node, connection)] = distance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   "source": [
    "G = nx.Graph()\n",
    "\n",
    "# use this while labeling nodes in the map\n",
    "node_labels = dict()\n",
    "# use this to modify colors of nodes while exploring the graph.\n",
    "# This is the only dict we send to `show_map(node_colors)` while drawing the map\n",
    "for n, p in romania_locations.items():\n",
    "    # add nodes from romania_locations\n",
    "    G.add_node(n)\n",
    "    # add nodes to node_labels\n",
    "    node_labels[n] = n\n",
    "    # node_colors to color nodes while exploring romania map\n",
    "    node_colors[n] = \"white\"\n",
    "# we'll save the initial node colors to a dict to use later\n",
    "initial_node_colors = dict(node_colors)\n",
    "    \n",
    "# positions for node labels\n",
    "node_label_pos = { k:[v[0],v[1]-10]  for k,v in romania_locations.items() }\n",
    "# use this while labeling edges\n",
    "edge_labels = dict()\n",
    "\n",
    "# add edges between cities in romania map - UndirectedGraph defined in search.py\n",
    "for node in romania_map.nodes():\n",
    "    connections = romania_map.get(node)\n",
    "    for connection in connections.keys():\n",
    "        distance = connections[connection]\n",
    "\n",
    "        # add edges to the graph\n",
    "        G.add_edge(node, connection)\n",
    "        # add distances to edge_labels\n",
    "        edge_labels[(node, connection)] = distance"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
    "We have completed building our graph based on romania_map and its locations. It's time to display it here in the notebook. This function `show_map(node_colors)` helps us do that. We will be calling this function later on to display the map at each and every interval step while searching, using variety of algorithms from the book."
   "execution_count": 10,
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "def show_map(node_colors):\n",
    "    # set the size of the plot\n",
    "    plt.figure(figsize=(18,13))\n",
    "    # draw the graph (both nodes and edges) with locations from romania_locations\n",
    "    nx.draw(G, pos = romania_locations, node_color = [node_colors[node] for node in G.nodes()])\n",
    "\n",
    "    # draw labels for nodes\n",
    "    node_label_handles = nx.draw_networkx_labels(G, pos = node_label_pos, labels = node_labels, font_size = 14)\n",
    "    # add a white bounding box behind the node labels\n",
    "    [label.set_bbox(dict(facecolor='white', edgecolor='none')) for label in node_label_handles.values()]\n",
    "\n",
    "    # add edge lables to the graph\n",
    "    nx.draw_networkx_edge_labels(G, pos = romania_locations, edge_labels=edge_labels, font_size = 14)\n",
    "    \n",
    "    # add a legend\n",
    "    white_circle = lines.Line2D([], [], color=\"white\", marker='o', markersize=15, markerfacecolor=\"white\")\n",
    "    orange_circle = lines.Line2D([], [], color=\"orange\", marker='o', markersize=15, markerfacecolor=\"orange\")\n",
    "    red_circle = lines.Line2D([], [], color=\"red\", marker='o', markersize=15, markerfacecolor=\"red\")\n",
    "    gray_circle = lines.Line2D([], [], color=\"gray\", marker='o', markersize=15, markerfacecolor=\"gray\")\n",
    "    green_circle = lines.Line2D([], [], color=\"green\", marker='o', markersize=15, markerfacecolor=\"green\")\n",
    "    plt.legend((white_circle, orange_circle, red_circle, gray_circle, green_circle),\n",
    "               ('Un-explored', 'Frontier', 'Currently Exploring', 'Explored', 'Final Solution'),\n",
    "               numpoints=1,prop={'size':16}, loc=(.8,.75))\n",
    "    \n",
    "    # show the plot. No need to use in notebooks. nx.draw will show the graph itself.\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "We can simply call the function with node_colors dictionary object to display it."
   ]
  },
   "execution_count": 11,
    "collapsed": false,
    "deletable": true,
    "editable": true
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Eshan\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\networkx\\drawing\\nx_pylab.py:126: MatplotlibDeprecationWarning: pyplot.hold is deprecated.\n",
      "    Future behavior will be consistent with the long-time default:\n",
      "    plot commands add elements without first clearing the\n",
      "    Axes and/or Figure.\n",
      "  b = plt.ishold()\n",
      "C:\\Users\\Eshan\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\networkx\\drawing\\nx_pylab.py:138: MatplotlibDeprecationWarning: pyplot.hold is deprecated.\n",
      "    Future behavior will be consistent with the long-time default:\n",
      "    plot commands add elements without first clearing the\n",
      "    Axes and/or Figure.\n",
      "  plt.hold(b)\n",
      "C:\\Users\\Eshan\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\matplotlib\\__init__.py:917: UserWarning: axes.hold is deprecated. Please remove it from your matplotlibrc and/or style files.\n",
      "  warnings.warn(self.msg_depr_set % key)\n",
      "C:\\Users\\Eshan\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\matplotlib\\rcsetup.py:152: UserWarning: axes.hold is deprecated, will be removed in 3.0\n",
      "  warnings.warn(\"axes.hold is deprecated, will be removed in 3.0\")\n"
     ]
    },
      "image/png": "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\nTpyoCxcuWDsOAAAAAFtjGJnX6Lx6NXf7Xb2auZ9h5EusmTNnqmTJknrllVdyfL1q1ary9fWVJEVF\nReVYVoaGhqpSpUrm57/++qtMJpP+85//aPTo0SpbtqycnJx08eJFxcbGymQyKT4+Xt27d5e7u7sa\nN25s3vfTTz9Vq1at5ObmJhcXFwUGBurbb7+1OF9AQICaNWumuLg4NWzYUM7Ozqpbt642bNhgkWn5\n8uU6deqUeUn5PzP+U3h4uEqXLq3U1FSL7UlJSXJzc9PYsWNv+RneiWXLlmVb1p6enq4WLVqoatWq\nunz5sqT/fcZHjhxRy5Yt5ezsLG9vb02aNEkZGRm3PIdhGJo7d65q1qwpR0dHeXt7a/DgweZjZzGZ\nTBo/frxmzJihypUry9HRUUeOHMlxGfudfNZZ3nnnHdWqVUtFixZVvXr19MEHHyggIEABAQF3/8HZ\nAMpOFDqXL1/W7NmzFRkZae0ohV6DBg307LPPatKkSdaOAgAAYDUP6rX5gAIvISHzZkR348yZzP3z\nWHp6unbt2qW2bduqaNGieX78qVOn6scff9SSJUu0YcMGi3OEhISocuXKWrdunWbMmCFJ2rp1q1q1\naiVXV1etWrVKq1evVlJSkpo3b64TJ05YHPv48eMaOnSoIiIitH79enl7e6t79+766aefJEkTJ05U\n+/btVapUKSUkJCghISHHgk6SBg4cqLNnz2Z7ffXq1UpOTs5xefqNDMNQWlpatkeWsLAwde/eXX37\n9tWpU6ckSZMnT9bnn3+u1atXq3jx4hbHe/rpp9W6dWtt3LhRwcHBmjx5sl5++eVbZhg/frwiIiLU\npk0bbd68WaNHj1ZsbKw6dOiQrSiNjY3V1q1bNWvWLG3dulVly5a96XFv91lL0o4dOxQSEqJatWpp\n/fr1GjlypIYNG6Yff/zxtp+drWMZOwqd+fPnq23btvLx8bF2FCjzD5vatWurX79+ql+/vrXjAAAA\n3HdpaWnq06ePIiIi1LBhQ2vHAR4Mw4ZJX3996zEnT+Z+VmeWq1el556Type/+ZgGDaSYmFwd9ty5\nc7p27ZoqVqx4d7luo3Tp0tqwYUOOs0G7deuWbTbp0KFD1aJFC23atMm8rWXLlqpSpYpmz56tmH+8\nv3Pnzik+Pl7Vq1eXlHm9SW9vb7333nsaN26cqlatqlKlSsnR0fG2S7Nr166tFi1aaPHixQoKCjJv\nX7x4sdq2bavKlSvf9r1OmzZN06ZNy7b9zz//lKenpyRpyZIlql+/vnr37q3IyEhNmTJFkydPtpjZ\nmqVfv37mGaVt27Y1T5QaNmyY3N3ds42/cOGCZs+erT59+mjhwoWSpMDAQJUqVUq9e/fWli1b1Llz\nZ/N4wzC0fft2FStWzLwtMTExx/d2u89akiIjI1W7dm2LX++6devKz89PNWrUuO3nZ8uY2YlC5eLF\ni5o3bx6zOgsQDw8PRUdHKzw8XEY+LRMBAAAoyOzt7dW0aVN17NhR3bt3v+lffgHkUnr63S9FN4zM\n/R8wTz/9dI5FpyR17drV4vmxY8d0/PhxhYSEWMyMdHZ2VtOmTRUfH28xvnr16ubyTZK8vLzk5eWl\n33///a6yvvjii9q1a5eOHTsmSdq/f7+++uqrO5rVKUkvvPCC9u/fn+3xz2LS3d1dq1evVnx8vAID\nA/XEE09ozJgxOR7vn6WrJPXo0UNXrlzJtqQ/y759+5SSkqJevXpl28/e3l6ffvqpxfannnrKoui8\nldt91unp6Tpw4ICeffZZi1/vRx999I6KYlvHzE4UKjExMerYsaPFbxqwvn79+mnJkiVas2aNevbs\nae04AAAA91WRIkU0aNAgPf/881q4cKFatGihDh06KDIy8qbXuwMKvTuZURkTI40ZI6Wk5P74Tk6Z\ns0eHDs39vrfg4eGhYsWK6bfffsvT42bx9va+49fO/v8S/7CwMIWFhWUbX6FCBYvnJUuWzDbGyclJ\nf//9991EVdeuXVWmTBktXrxYs2bN0uuvv66yZcuqU6dOd7S/t7e3/Pz8bjuuSZMmqlmzpo4ePaoh\nQ4bIzi7neX+lS5fO8XnWEvgbZd174sbP1d7eXh4eHtnuTXGrX5sb3e6zPnfunFJTU+Xl5ZVt3I3v\nozBiZicKjZSUFB06dEgTJ060dhTcoEiRIlqwYIFGjRqlK1euWDsOAACAVTg7O2v06NE6duyYHn74\nYT366KMaPHiwTp8+be1owIPJ319ycLi7fe3tpUaN8jaPMouwgIAA7dixQ9fv4A7xWdfcTLmhsD1/\n/nyO4282qzOn1zw8PCRJ06dPz3GG5ObNm2+b7144ODiob9++io2N1dmzZ7VmzRqFhYXJ3j5v5+VF\nR0fr2LFj8vX11fDhw3Xp0qUcx505cybH5+XKlctxfFYh+ccff1hsT0tL0/nz57MVlrf6tcktT09P\nOTg4mAvrf7rxfRRGlJ0oNOzt7fXee++pSpUq1o6CHDz++ONq2bKlpk6dau0oAAAAVlWiRAm9/PLL\nSkxMlKOjo+rWrauxY8dmmyUE4DaaNpVymPl2R0qXztw/H4wdO1bnz5/X6NGjc3z9l19+0TfffCNJ\n5mt7/nMp9cWLF/X555/fc46aNWuqUqVK+u677+Tn55ftkXVH+NxwcnLStWvX7nj8gAEDdPHiRXXv\n3l3Xr19Xv379cn3OW9mzZ4+mTp2qqVOnavPmzbp48aIGDhyY49j33nvP4vmaNWvk6uqqevXq5Ti+\nSZMmcnR01Jo1ayy2v/vuu0pLS8vXO6IXKVJEfn5+ev/99y0uB3fw4EH98ssv+XbeBwXL2FFo2NnZ\n5cvd7pB3XnnlFdWrV08vvPAClxoAAACFnpeXl+bMmaOIiAhNnjxZNWrU0LBhwzR06FC5ublZOx5Q\n8JlM0ujR0ogRubtRkbNz5n55OBPvn5544gnzd/vo0aMKDQ1VhQoV9Ndff2nnzp1aunSpVq9eLV9f\nX7Vr104lSpRQv379FB0drevXr+uVV16Rq6vrPecwmUx67bXX1KVLF6WkpCgoKEienp46c+aMPv/8\nc1WoUEERERG5Ombt2rV14cIFLVq0SH5+fipatOhNy0Ipc9Zk586dtWHDBnXq1EkPP/zwHZ/r1KlT\n2rdvX7btFStWlLe3t/766y+FhISoVatWGjlypEwmk5YsWaKgoCAFBgaqT58+Fvu98cYbysjIUKNG\njfTxxx9r6dKlioqKUokSJXI8f8mSJTVixAhNnz5dLi4uat++vRITEzVhwgQ1a9ZMHTp0uOP3cjei\no6PVtm1bde3aVf3799e5c+cUFRWlMmXK3HSpfmFRuN89gALF29tbY8aM0bBhw6wdBQAAoMAoX768\nFi9erISEBCUmJqp69eqKiYm56+vkAYVKWJjUsGHmNTjvhJOT9Oij0gsv5GusYcOG6bPPPpO7u7tG\njhypJ598UqGhoUpMTNTixYvN1610d3fXli1bZGdnp6CgIL300ksKDw9Xy5Yt8yRH+/btFR8fr+Tk\nZPXt21eBgYEaPXq0/vjjDzW9i5mtffv2VY8ePTRu3Dj5+/vf0fU3u3fvLkl3fGOiLLGxsWratGm2\nx9tvvy1J6t+/v65du6bly5ebl5B3795dYWFhGjx4sH766SeL423atEk7duxQ586dtWrVKk2YMOG2\n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\n7JRcsXTpUlq0aKFCpxRozz77LAEBAUyfPt3oKCIiIiJixqytrZkwYQJjx45Vd6eImB0VOyVXzJ8/\nnz59+hgdQyTHvffee8yYMYOff/7Z6CgiIiIiYsY6d+5McnIy69evNzqKiEiuUrFTctyRI0e4dOmS\nhk+IWahQoQKvv/46ERERRkcRERERETNmaWnJxIkTGTduHBkZGUbHERHJNSp2So6bN28eYWFhWFlZ\nGR1FJFcMHz6c/fv3Exsba3QUERERETFjHTp0wMLCgpUrVxodRUQk12iBIslRd+/exdXVlb179+Lh\n4WF0HJFcs3LlSsaMGcOhQ4ewsbExOo6IiIiIiIiIWVBnp+So1atX4+/vr0KnmJ0OHTpQrlw5Zs2a\nZXQUEREREREREbOhzk7JUa1ataJnz5507drV6Cgiue7kyZM0atSI77//nlKlShkdR0RERERERKTA\nU7FTcszPP/9MzZo1OX/+PA4ODkbHETFEREQEV69eZcGCBUZHERERERERESnwNIxdcszChQsJDQ1V\noVPM2rhx49i0aRN79uwxOoqIiIiIiIhIgadip+SIjIwMFixYQJ8+fYyOImKowoULM3XqVMLDw8nI\nyDA6joiIiIiYqcjISPz8/IyOISKS41TslByxZcsWihUrRs2aNY2OImK47t27Y2Njw/z5842OIiIi\nIiL5SFhYGM8//3y2nCsiIoLt27dny7lERPIyFTslR8ybN4/evXsbHUMkT7C0tGTWrFmMGTOG69ev\nGx1HRERERMyQk5MTJUqUMDqGiEiOU7FTst21a9fYsGED3bp1MzqKSJ5Rs2ZN2rdvz/jx442OIiIi\nIiL50L59+2jZsiUuLi4ULlyYRo0asXv37iz7zJkzBy8vL+zt7XFxcaFVq1akpaUBGsYuIuZDxU7J\ndl988QXPPfccxYsXNzqKSJ4yZcoUoqKiOHr0qNFRRERERCSfuXnzJi+99BI7d+7ku+++o0aNGrRp\n04arV68CsH//fl577TXGjx/PDz/8QGxsLK1btzY4tYhI7rM2OoAUPPPmzWPatGlGxxDJc1xcXBg/\nfjzh4eFs3boVCwsLoyOJiIiISD4RGBiY5fnMmTP56quv2LBhA927d+fs2bMUKlSIdu3a4ezsjLu7\nO9WrVzcorYiIcdTZKdnq4MGDXL9+/b4/xCLyh/79+3P9+nWWLVtmdBQRERERyUcuX75M//798fLy\n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\nUI0cOVINGzaUzWYzHQmwm6ioKL377rsqWbKkoqOjNWLECDVq1Ej79u2Tq6urrl+/roYNG6p+/fqa\nP3++Tp8+rb59+yY7R0JCgp588kktXrxYfn5+2rx5s7p27So/Pz+1b98+ab+1a9fK19dXP/zwQ1Ih\nND4+XiNHjlTRokV16dIlvffee2rdurXWrVsnSZo4caLCw8O1ePFiPfnkkzpz5owOHz6ccj8gAADs\nID4+XqGhoZozZ47pKAAcxGYxFhB2Nm7cOF24cEHjx483HQVAOpSYmKjSpUtr/Pjxqlu3ruk4wEPp\n0KGD5s2bJw8Pj6RtL774olauXHnXvtevX1eWLFm0adMmVapUSVOmTNHw4cN15syZpOO/+OILtW/f\nXr/88st9u1P69++vffv2adWqVZL+6uxcs2aNTp06JTc3t/tm3bdvn0qVKqXIyEjlzp1bPXr00JEj\nR7R69Wo+aAAApFkzZ87U/PnztWbNGtNRADgIw9hhd8zZCcCRnJycNHToUI0YMYK5O5EmvfTSS9q1\na1fSY/r06ZKkw4cP6/XXX9fTTz8tX19fPfHEE7IsS6dOnZIkHTx4UKVLl05WKK1YseJd558yZYoC\nAgLk5+cnb29vTZo0Kekcd5QqVequQuf27dvVqFEjPfXUU/Lx8Uk6951jO3bsqO3bt6to0aLq1auX\nVq5cySq2AIA0JT4+XmFhYRo+fLjpKAAciGIn7I5h7AAc7bXXXtPVq1f1888/m44CPLRMmTKpcOHC\nSY+8efNKkho0aKCrV69q2rRp2rJli3777Tc5OTk91AJCX375pfr3769OnTpp9erV2rVrl7p163bX\nOby8vJI9v3HjhurUqSMfHx/NmzdP27Zt04oVKyT9/wJG5cuX14kTJxQaGqr4+Hi1adNG9erV40MH\nAECaMW/ePBUoUEAvvvii6SgAHIg5O2F3LFAEwNGcnZ31448/Kk+ePKajAHZx4cIFHT58WDNmzEj6\nA2zr1q3JOieLFSumhQsXKjY2Vu7u7kn7/N2GDRtUpUoV9ejRI2nbkSNH/vX6Bw4c0NWrVzVmzBjl\nz59fkrRnz5679vP19VWLFi3UokULtW3bVi+88IKOHz+up59++uHfNAAAKaxjx47q2LGj6RgAHIzO\nTtgdw9gBpIQ8efIwbyDSjRw5cihbtmyaOnWqjhw5ovXr1+vtt9+Wk9P//6rWtm1bJSYmqmvXroqI\n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\nqY7NZpPNZpO7u7vpKABwF4qdGZzNZtPSpUsf6xyzZ8+Wt7e3nRKlnKtXr8rf31/vvfeeLl68aDoO\nAIMKFCig8ePHO/w6jr5fvvrqq6zcDthJq1atVLp0aQ0ZMsR0FABItRhJAiA1otiZTt35pO1+jw4d\nOkiSIiMj1bBhw8e6VsuWLXXs2DE7pE5Zn332mXbv3q2oqCgVK1ZM7777rs6fP286FgA769ChQ9K9\nz8XFRU8++aTeeust/fHHH0n7bNu2TT169HB4lpS4X7q6uqp79+46fPiw/P39FRAQoHfffVdXrlxx\n6HWB9MZms+mTTz7RkiVLtG7dOtNxAAAA8IAodqZTkZGRSY9p06bdte2jjz6SJOXOnfuxhx54enoq\nZ86cj535ccTFxT3Scfnz59eUKVO0d+9e3b59WyVKlFDfvn117tw5OycEYFLNmjUVGRmpEydOaPr0\n6QoPD09W3PTz81OmTJkcniMl75fe3t4aPny49u/fr+joaBUrVkzvv/8+Q3KBh5A9e3ZNmzZNHTp0\n0J9//mk6DgAAAB4Axc50Knfu3EmPLFmy3LUtc+bMkpIPYz9x4oRsNpsWLlyoqlWrytPTU2XLltWe\nPXu0b98+ValSRV5eXnrhhReSDYv832GZp0+fVuPGjZUtWzZlypRJxYoV08KFC5Ne37t3r2rWrClP\nT09ly5btrj8gtm3bptq1aytHjhzy9fXVCy+8oF9//TXZ+7PZbJoyZYqaNm0qLy8vDRkyRAkJCerc\nubMKFiwoT09PFSlSRO+//74SExP/9ed1Z26u/fv3y8nJSSVLllTPnj115syZR/jpA0ht3N3dlTt3\nbuXLl0+1a9dWy5Yt9cMPPyS9/r/D2G02mz799FM1btxYmTJlkr+/v9atW6czZ86oTp068vLyUpky\nZZLNi3nnXrh27VqVLFlSXl5eqlat2j/eLyVpxYoVqlixojw9PZU9e3Y1bNhQMTEx98wlSS+//LJ6\n9uz5wO89d+7c+vTTT7VhwwZt3rxZRYsW1Zw5c1i5HXhA9erVU/369dWnTx/TUQDACNY0BpDWUOzE\nXYYPH66BAwdq586dypIli15//XX16tVLYWFh2rp1q2JiYtS7d+/7Ht+jRw9FR0dr3bp12r9/vz78\n8MOkgmtUVJTq1Kkjb29vbd26VcuXL9emTZvUqVOnpONv3Lihtm3b6pdfftHWrVtVpkwZ1a9f/64h\nmCEhIapfv7727t2rt99+W4mJicqbN68WL16siIgIhYWFadSoUZo1a9YDv/c8efJowoQJioiIkKen\np0qXLq233npLJ0+efMifIoDU6tixY1q1apVcXV3/cb/Q0FC1atVKu3fvVkBAgFq1aqXOnTurR48e\n2rlzp5544omkKUHuiI2N1ejRozVz5kz9+uuvunbtmrp3737fa6xatUqNGjVSrVq19Ntvv2ndunWq\nWrXqA31I87CKFi2qZcuWacGCBfr8889Vrlw5rV69mj9ggAcwbtw4bdiwQcuXLzcdBQBSxN9/P7gz\nL6cjfj8BAIewkO4tWbLEut//1JKsJUuWWJZlWcePH7ckWZ999lnS6+Hh4ZYk66uvvkraNmvWLMvL\ny+u+z0uVKmUFBwff83pTp061fH19revXrydtW7dunSXJOnz48D2PSUxMtHLnzm3NnTs3We6ePXv+\n09u2LMuyBg4caNWoUeNf97ufixcvWoMGDbKyZctmdenSxTp27NgjnwuAGe3bt7ecnZ0tLy8vy8PD\nw5JkSbImTJiQtM9TTz1ljRs3Lum5JGvQoEFJz/fu3WtJsj744IOkbXfuXZcuXbIs6697oSTr4MGD\nSfvMmzfPcnNzsxITE5P2+fv9skqVKlbLli3vm/1/c1mWZVWtWtV6++23H/bHkExiYqK1bNkyy9/f\n36pRo4b122+/Pdb5gIxg48aNVq5cuazz58+bjgIADhcTE2P98ssv1ptvvmkNHTrUio6ONh0JAB4Y\nnZ24S+nSpZO+z5UrlySpVKlSybZFRUUpOjr6nsf36dNHoaGhqly5soYOHarffvst6bWIiAiVLl1a\nPj4+SduqVKkiJycnHThwQJJ08eJFdevWTf7+/sqcObN8fHx08eJFnTp1Ktl1AgIC7rr2Z599poCA\nAPn5+cnb21sTJ06867iH4efnp9GjR+vQoUPKmTOnAgIC1LlzZx09evSRzwkg5b300kvatWuXtm7d\nql69eql+/fr/2KEuPdi9UPrrnnWHu7u7ihYtmvT8iSeeUFxcXLLFkP5u586dqlGjxsO/ocdks9nu\nWrm9TZs2OnHiRIpnAdKKKlWqqFOnTurSpQsd0QDSvbCwMPXo0UN79+7V/PnzVbRo0WR/1wFAakax\nE3f5+9DOO0MW7rXtfsMYOnfurOPHj6tjx446dOiQqlSpouDg4H+97p3ztm/fXtu2bdPEiRO1adMm\n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\nvf/++9ccb/78+Xrrrbf05ptvKjU1Vf369VP//v21Z88eSdKwYcP08ccflwpMExISVKtWLfXp00fS\nb7NKp02bppSUFK1du1Z5eXkaPHhwRb0lAAwgNjZWAwcOlJOTk61LAQAABmWyWCwWWxcBAABKS05O\nVvv27fXJJ5+oX79+17zOZDJp3Lhxevvtt697v9dee007duzQxo0bJf02s3PVqlX66aefJEkNGzbU\nqFGjNHnyZOtrunTpIh8fH8XHx+vMmTNq0KCBvvzySz366KOSpO7du8vf319Lliy56pjp6elq2rSp\njh49Kh8fn1t6fgDGYzabFRgYqBUrVigsLMzW5QAAAINiZicAAFXQrfwusm3btmWOLV68WG3btpWH\nh4ecnZ01b968q+7xKf22HD0nJ0cdOnQodbxjx45KS0uTJLm7u6tXr15avny5JCknJ0ebNm3SsGHD\nrNfv2rVLffv21X333ScXFxdrXdcaF0D1snnz5lKfGwAAACoDYScAAFVQUFCQTCaT9u/ff8Nr/7gc\ndMWKFXr55ZcVHh6uDRs2aM+ePRozZoyKiopuuQ6TyWT9+7Bhw5SQkKDCwkJ9/PHHatSokR555BFJ\nUn5+vnr27KnatWsrLi5O27dv1/r16yXptsYFYDxXGhP9/vMKAABARSPsBACgCnJzc1PPnj21cOFC\nXbx4scz5c+fOXfO13333ndq3b69x48apTZs2CgwMVFZW1jWvd3V1lbe3t77//vsy92nWrJn14yef\nfFKStHbtWi1fvlxDhgyxhhbp6enKy8vTzJkz1alTJ91///06derULT0zAOP673//qy+++EJDhw61\ndSkAAMDgCDsBAKiioqKiZLFY1LZtW61cuVI///yz0tPT9c477ygkJOSar2vSpIl27dqlL7/8UhkZ\nGZo+fbq2bNly3bEmTJig2bNn66OPPtKBAwc0efJkbd26VZGRkdZratWqpaeeekozZszQrl27Si1h\nb9y4sRwcHLRw4UIdPHhQ69at0+uvv17+NwGAISxfvlyPP/643N3dbV0KAAAwOMJOAACqKH9/f+3a\ntUuPPfaY/v73vyskJETdunXTmjVrrtkUSJJGjRqlgQMHasiQIQoLC1N2drbGjx9/3bFefPFFTZgw\nQa+++qpatGihTz/9VAkJCWrVqlWp64YNG6aUlBQ98MADpWZ9enh46IMPPtBnn32mZs2aadq0aZo7\n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\n",
       "<matplotlib.figure.Figure at 0xe53dfafc50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "show_map(node_colors)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "Voila! You see, the romania map as shown in the Figure[3.2] in the book. Now, see how different searching algorithms perform with our problem statements."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
    "## Searching algorithms visualisations\n",
    "\n",
    "In this section, we have visualisations of the following searching algorithms:\n",
    "\n",
    "1. Breadth First Tree Search - Implemented\n",
    "2. Depth First Tree Search\n",
    "3. Depth First Graph Search\n",
    "4. Breadth First Search - Implemented\n",
    "5. Best First Graph Search\n",
    "6. Uniform Cost Search - Implemented\n",
    "7. Depth Limited Search\n",
    "8. Iterative Deepening Search\n",
    "9. A\\*-Search - Implemented\n",
    "10. Recursive Best First Search\n",
    "\n",
    "We add the colors to the nodes to have a nice visualisation when displaying. So, these are the different colors we are using in these visuals:\n",
    "* Un-explored nodes - <font color='black'>white</font>\n",
    "* Frontier nodes - <font color='orange'>orange</font>\n",
    "* Currently exploring node - <font color='red'>red</font>\n",
    "* Already explored nodes - <font color='gray'>gray</font>\n",
    "Now, we will define some helper methods to display interactive buttons and sliders when visualising search algorithms."
   "execution_count": 12,
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "def final_path_colors(problem, solution):\n",
    "    \"returns a node_colors dict of the final path provided the problem and solution\"\n",
    "    \n",
    "    # get initial node colors\n",
    "    final_colors = dict(initial_node_colors)\n",
    "    # color all the nodes in solution and starting node to green\n",
    "    final_colors[problem.initial] = \"green\"\n",
    "    for node in solution:\n",
    "        final_colors[node] = \"green\"  \n",
    "    return final_colors\n",
    "\n",
    "\n",
    "def display_visual(user_input, algorithm=None, problem=None):\n",
    "    if user_input == False:\n",
    "        def slider_callback(iteration):\n",
    "            # don't show graph for the first time running the cell calling this function\n",
    "            try:\n",
    "                show_map(all_node_colors[iteration])\n",
    "            except:\n",
    "                pass\n",
    "        def visualize_callback(Visualize):\n",
    "            if Visualize is True:\n",
    "                button.value = False\n",
    "                \n",
    "                global all_node_colors\n",
    "                \n",
    "                iterations, all_node_colors, node = algorithm(problem)\n",
    "                solution = node.solution()\n",
    "                all_node_colors.append(final_path_colors(problem, solution))\n",
    "                \n",
    "                slider.max = len(all_node_colors) - 1\n",
    "                \n",
    "                for i in range(slider.max + 1):\n",
    "                    slider.value = i\n",
    "                     #time.sleep(.5)\n",
    "        \n",
    "        slider = widgets.IntSlider(min=0, max=1, step=1, value=0)\n",
    "        slider_visual = widgets.interactive(slider_callback, iteration = slider)\n",
    "        display(slider_visual)\n",
    "        button = widgets.ToggleButton(value = False)\n",
    "        button_visual = widgets.interactive(visualize_callback, Visualize = button)\n",
    "        display(button_visual)\n",
    "    \n",
    "    if user_input == True:\n",
    "        node_colors = dict(initial_node_colors)\n",
    "        if algorithm == None:\n",
    "            algorithms = {\"Breadth First Tree Search\": breadth_first_tree_search, \"Breadth First Search\": breadth_first_search, \"Uniform Cost Search\": uniform_cost_search, \"A-star Search\": astar_search}\n",
    "            algo_dropdown = widgets.Dropdown(description = \"Search algorithm: \", options = sorted(list(algorithms.keys())), value = \"Breadth First Tree Search\")\n",
    "            display(algo_dropdown)\n",
    "        \n",
    "        def slider_callback(iteration):\n",
    "            # don't show graph for the first time running the cell calling this function\n",
    "            try:\n",
    "                show_map(all_node_colors[iteration])\n",
    "            except:\n",
    "                pass\n",
    "        def visualize_callback(Visualize):\n",
    "            if Visualize is True:\n",
    "                button.value = False\n",
    "                \n",
    "                problem = GraphProblem(start_dropdown.value, end_dropdown.value, romania_map)\n",
    "                global all_node_colors\n",
    "                \n",
    "                if algorithm == None:\n",
    "                    user_algorithm = algorithms[algo_dropdown.value]\n",
    "                \n",
    "#                 print(user_algorithm)\n",
    "#                 print(problem)\n",
    "                \n",
    "                iterations, all_node_colors, node = user_algorithm(problem)\n",
    "                solution = node.solution()\n",
    "                all_node_colors.append(final_path_colors(problem, solution))\n",
    "                slider.max = len(all_node_colors) - 1\n",
    "                \n",
    "                for i in range(slider.max + 1):\n",
    "                    slider.value = i\n",
    "#                     time.sleep(.5)\n",
    "        start_dropdown = widgets.Dropdown(description = \"Start city: \", options = sorted(list(node_colors.keys())), value = \"Arad\")\n",
    "        display(start_dropdown)\n",
    "        end_dropdown = widgets.Dropdown(description = \"Goal city: \", options = sorted(list(node_colors.keys())), value = \"Fagaras\")\n",
    "        display(end_dropdown)\n",
    "        \n",
    "        button = widgets.ToggleButton(value = False)\n",
    "        button_visual = widgets.interactive(visualize_callback, Visualize = button)\n",
    "        display(button_visual)\n",
    "        \n",
    "        slider = widgets.IntSlider(min=0, max=1, step=1, value=0)\n",
    "        slider_visual = widgets.interactive(slider_callback, iteration = slider)\n",
    "        display(slider_visual)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
    "## Breadth first tree search\n",
    "\n",
    "We have a working implementation in search module. But as we want to interact with the graph while it is searching, we need to modify the implementation. Here's the modified breadth first tree search.\n",
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
    "collapsed": false,
    "deletable": true,
    "editable": true
   "source": [
    "def tree_search(problem, frontier):\n",
    "    \"\"\"Search through the successors of a problem to find a goal.\n",
    "    The argument frontier should be an empty queue.\n",
    "    Don't worry about repeated paths to a state. [Figure 3.7]\"\"\"\n",
    "    \n",
    "    # we use these two variables at the time of visualisations\n",
    "    iterations = 0\n",
    "    all_node_colors = []\n",
    "    node_colors = dict(initial_node_colors)\n",
    "    #Adding first node to the queue\n",
    "    frontier.append(Node(problem.initial))\n",
    "    node_colors[Node(problem.initial).state] = \"orange\"\n",
    "    iterations += 1\n",
    "    all_node_colors.append(dict(node_colors))\n",
    "        #Popping first node of queue\n",
    "        # modify the currently searching node to red\n",
    "        node_colors[node.state] = \"red\"\n",
    "        iterations += 1\n",
    "        all_node_colors.append(dict(node_colors))\n",
    "        \n",
    "        if problem.goal_test(node.state):\n",
    "            # modify goal node to green after reaching the goal\n",
    "            node_colors[node.state] = \"green\"\n",
    "            iterations += 1\n",
    "            all_node_colors.append(dict(node_colors))\n",
    "            return(iterations, all_node_colors, node)\n",
    "        frontier.extend(node.expand(problem))\n",
    "           \n",
    "        for n in node.expand(problem):\n",
    "            node_colors[n.state] = \"orange\"\n",
    "            iterations += 1\n",
    "            all_node_colors.append(dict(node_colors))\n",
    "        # modify the color of explored nodes to gray\n",
    "        node_colors[node.state] = \"gray\"\n",
    "        iterations += 1\n",
    "        all_node_colors.append(dict(node_colors))\n",
    "    return None\n",
    "\n",
    "def breadth_first_tree_search(problem):\n",
    "    \"Search the shallowest nodes in the search tree first.\"\n",
    "    iterations, all_node_colors, node = tree_search(problem, FIFOQueue())\n",
    "    return(iterations, all_node_colors, node)"
   "metadata": {
    "deletable": true,
    "editable": true
   },
    "Now, we use ipywidgets to display a slider, a button and our romania map. By sliding the slider we can have a look at all the intermediate steps of a particular search algorithm. By pressing the button **Visualize**, you can see all the steps without interacting with the slider. These two helper functions are the callback functions which are called when we interact with the slider and the button.\n",
   "execution_count": 14,
    "collapsed": false,
    "deletable": true,
    "editable": true
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Widget Javascript not detected.  It may not be installed or enabled properly.\n"
     ]
    },
    {
     "data": {},
     "metadata": {},
     "output_type": "display_data"
    "all_node_colors = []\n",
    "romania_problem = GraphProblem('Arad', 'Fagaras', romania_map)\n",
    "display_visual(user_input = False, algorithm = breadth_first_tree_search, problem = romania_problem)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "source": [
    "## Breadth first search\n",
    "\n",
    "Let's change all the node_colors to starting position and define a different problem statement."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "def breadth_first_search(problem):\n",
    "    \"[Figure 3.11]\"\n",
    "    \n",
    "    # we use these two variables at the time of visualisations\n",
    "    iterations = 0\n",
    "    all_node_colors = []\n",
    "    node_colors = dict(initial_node_colors)\n",
    "    \n",
    "    node = Node(problem.initial)\n",
    "    \n",
    "    node_colors[node.state] = \"red\"\n",
    "    iterations += 1\n",
    "    all_node_colors.append(dict(node_colors))\n",
    "      \n",
    "    if problem.goal_test(node.state):\n",
    "        node_colors[node.state] = \"green\"\n",
    "        iterations += 1\n",
    "        all_node_colors.append(dict(node_colors))\n",
    "        return(iterations, all_node_colors, node)\n",
    "    \n",
    "    frontier = FIFOQueue()\n",
    "    frontier.append(node)\n",
    "    \n",
    "    # modify the color of frontier nodes to blue\n",
    "    node_colors[node.state] = \"orange\"\n",
    "    iterations += 1\n",
    "    all_node_colors.append(dict(node_colors))\n",
    "        \n",
    "    explored = set()\n",
    "    while frontier:\n",
    "        node = frontier.pop()\n",
    "        node_colors[node.state] = \"red\"\n",
    "        iterations += 1\n",
    "        all_node_colors.append(dict(node_colors))\n",
    "        \n",
    "        explored.add(node.state)     \n",
    "        \n",
    "        for child in node.expand(problem):\n",
    "            if child.state not in explored and child not in frontier:\n",
    "                if problem.goal_test(child.state):\n",
    "                    node_colors[child.state] = \"green\"\n",
    "                    iterations += 1\n",
    "                    all_node_colors.append(dict(node_colors))\n",
    "                    return(iterations, all_node_colors, child)\n",
    "                frontier.append(child)\n",
    "\n",
    "                node_colors[child.state] = \"orange\"\n",
    "                iterations += 1\n",
    "                all_node_colors.append(dict(node_colors))\n",
    "                    \n",
    "        node_colors[node.state] = \"gray\"\n",
    "        iterations += 1\n",
    "        all_node_colors.append(dict(node_colors))\n",
    "    return None"
   "execution_count": 16,
    "collapsed": false,
    "deletable": true,
    "editable": true
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Widget Javascript not detected.  It may not be installed or enabled properly.\n"
     ]
    },
    {
     "data": {},
     "metadata": {},
     "output_type": "display_data"
    "all_node_colors = []\n",
    "romania_problem = GraphProblem('Arad', 'Bucharest', romania_map)\n",
    "display_visual(user_input = False, algorithm = breadth_first_search, problem = romania_problem)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "## Uniform cost search\n",
    "\n",
    "Let's change all the node_colors to starting position and define a different problem statement."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "def best_first_graph_search(problem, f):\n",
    "    \"\"\"Search the nodes with the lowest f scores first.\n",
    "    You specify the function f(node) that you want to minimize; for example,\n",
    "    if f is a heuristic estimate to the goal, then we have greedy best\n",
    "    first search; if f is node.depth then we have breadth-first search.\n",
    "    There is a subtlety: the line \"f = memoize(f, 'f')\" means that the f\n",
    "    values will be cached on the nodes as they are computed. So after doing\n",
    "    a best first search you can examine the f values of the path returned.\"\"\"\n",
    "    \n",
    "    # we use these two variables at the time of visualisations\n",
    "    iterations = 0\n",
    "    all_node_colors = []\n",
    "    node_colors = dict(initial_node_colors)\n",
    "    \n",
    "    f = memoize(f, 'f')\n",
    "    node = Node(problem.initial)\n",
    "    \n",
    "    node_colors[node.state] = \"red\"\n",
    "    iterations += 1\n",
    "    all_node_colors.append(dict(node_colors))\n",
    "    \n",
    "    if problem.goal_test(node.state):\n",
    "        node_colors[node.state] = \"green\"\n",
    "        iterations += 1\n",
    "        all_node_colors.append(dict(node_colors))\n",
    "        return(iterations, all_node_colors, node)\n",
    "    \n",
    "    frontier = PriorityQueue(min, f)\n",
    "    frontier.append(node)\n",
    "    \n",
    "    node_colors[node.state] = \"orange\"\n",
    "    iterations += 1\n",
    "    all_node_colors.append(dict(node_colors))\n",
    "    \n",
    "    explored = set()\n",
    "    while frontier:\n",
    "        node = frontier.pop()\n",
    "        \n",
    "        node_colors[node.state] = \"red\"\n",
    "        iterations += 1\n",
    "        all_node_colors.append(dict(node_colors))\n",
    "        \n",
    "        if problem.goal_test(node.state):\n",
    "            node_colors[node.state] = \"green\"\n",
    "            iterations += 1\n",
    "            all_node_colors.append(dict(node_colors))\n",
    "            return(iterations, all_node_colors, node)\n",
    "        \n",
    "        explored.add(node.state)\n",
    "        for child in node.expand(problem):\n",
    "            if child.state not in explored and child not in frontier:\n",
    "                frontier.append(child)\n",
    "                node_colors[child.state] = \"orange\"\n",
    "                iterations += 1\n",
    "                all_node_colors.append(dict(node_colors))\n",
    "            elif child in frontier:\n",
    "                incumbent = frontier[child]\n",
    "                if f(child) < f(incumbent):\n",
    "                    del frontier[incumbent]\n",
    "                    frontier.append(child)\n",
    "                    node_colors[child.state] = \"orange\"\n",
    "                    iterations += 1\n",
    "                    all_node_colors.append(dict(node_colors))\n",
    "\n",
    "        node_colors[node.state] = \"gray\"\n",
    "        iterations += 1\n",
    "        all_node_colors.append(dict(node_colors))\n",
    "    return None\n",
    "\n",
    "def uniform_cost_search(problem):\n",
    "    \"[Figure 3.14]\"\n",
    "    iterations, all_node_colors, node = best_first_graph_search(problem, lambda node: node.path_cost)\n",
    "    return(iterations, all_node_colors, node)"
   "execution_count": 18,
    "collapsed": false,
    "deletable": true,
    "editable": true
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Widget Javascript not detected.  It may not be installed or enabled properly.\n"
     ]
    },
    {
     "data": {},
     "metadata": {},
     "output_type": "display_data"
    "all_node_colors = []\n",
    "romania_problem = GraphProblem('Arad', 'Bucharest', romania_map)\n",
    "display_visual(user_input = False, algorithm = uniform_cost_search, problem = romania_problem)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },