Created
June 23, 2022 16:43
-
-
Save clane9/7f5ddf65756a9ccf84dd1e9fa3ba063f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Benchmarking radius neighborhood algorithms for sparse graphs\n", | |
"\n", | |
"We want an algorithm for finding all nodes within a geodesic radius of a given node on a triangular mesh.\n", | |
"\n", | |
"Here we implement a first try at this using just NumPy/SciPy. The approach is to start with the source node and iteratively expand the neighborhood by querying nearest neighbors of the neighborhood boundary. The search is stopped once there are no more neighbors within the target radius.\n", | |
"\n", | |
"We compare this \"**sparse-graph**\" algorithm with three others:\n", | |
"\n", | |
"- **dijkstra**: Dijsktra shortest path search ([`scipy.sparse.csgraph.dijkstra`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.csgraph.dijkstra.html)). (Nb: This does exactly what we would want, except it returns a dense distance matrix.)\n", | |
"- **nn-search**: nearest neighbor search using scikit-learn `NearestNeighbors`.\n", | |
"- **brute-force**: brute force neighborhood evaluation.\n", | |
"\n", | |
"We compare using uniform random data sampled from the box $[0, 1] \\times [0, 1]$. We vary the number of points but keep the radius fixed at 0.01. Note that for this flat data, the geodesic and Euclidean distances are approximately equivalent." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import logging\n", | |
"import time\n", | |
"from typing import Tuple\n", | |
"\n", | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"from scipy import sparse as sprs\n", | |
"from scipy import spatial\n", | |
"from sklearn.neighbors import NearestNeighbors\n", | |
"\n", | |
"from matplotlib import pyplot as plt" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"logging.basicConfig(\n", | |
" format=\"%(asctime)s %(levelname)-8s %(message)s\",\n", | |
" level=logging.INFO,\n", | |
" datefmt=\"%Y-%m-%d %H:%M:%S\",\n", | |
")\n", | |
"\n", | |
"plt.style.use(\"ggplot\")\n", | |
"plt.rcParams[\"figure.dpi\"] = 150" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def graph_neighborhood(\n", | |
" adjacency: sprs.csr_matrix,\n", | |
" source: int,\n", | |
" radius: float,\n", | |
") -> Tuple[np.ndarray, np.ndarray]:\n", | |
" \"\"\"\n", | |
" Find all neighbors of a source node within a specified geodesic radius.\n", | |
"\n", | |
" Parameters\n", | |
" ----------\n", | |
" adjacency : csr_matrix, shape (n_nodes, n_nodes)\n", | |
" Sparse weighted adjacency matrix representing the graph.\n", | |
"\n", | |
" source: int\n", | |
" Source node index.\n", | |
"\n", | |
" radius : float\n", | |
" Limiting distance of neighbors to return.\n", | |
" \n", | |
" Returns\n", | |
" -------\n", | |
" neigh_dist : ndarray of shape (n_neighbors,)\n", | |
" Array of neighbor distances.\n", | |
" \n", | |
" neigh_ind : ndarray of shape (n_neighbors,)\n", | |
" Array of neighbor node indices within a geodesic distance ``radius`` of\n", | |
" the source node.\n", | |
" \"\"\"\n", | |
" assert np.all(adjacency.data > 0), \"adjacency weights must be non-negative\"\n", | |
"\n", | |
" neigh_dist = [np.array([0.0])]\n", | |
" neigh_ind = [np.array([source])]\n", | |
" boundary_dist = np.array([0.0])\n", | |
" boundary = np.array([source])\n", | |
" boundary_prev = np.array([])\n", | |
"\n", | |
" # time/space complexity of each iteration O(|boundary|) ~=\n", | |
" # O(|neighborhood|^{1/2})\n", | |
" # TODO: more careful analysis\n", | |
"\n", | |
" while True:\n", | |
" # find neighbors of boundary nodes\n", | |
" sub_adj = adjacency[boundary, :]\n", | |
"\n", | |
" # accumulate distances through boundary nodes and neighbors\n", | |
" rows = sub_adj.tocoo().row\n", | |
" sub_adj.data += boundary_dist[rows]\n", | |
"\n", | |
" # find neighbors and shortest path distances, accounting for nodes that\n", | |
" # can be reached multiple ways\n", | |
" sub_adj.data = 1 / sub_adj.data\n", | |
" nbr_inv_dist = sub_adj.max(axis=0)\n", | |
" nbrs, nbr_inv_dist = nbr_inv_dist.col, nbr_inv_dist.data\n", | |
" nbr_dist = 1 / nbr_inv_dist\n", | |
"\n", | |
" # exclude neighbors that are outside radius or already in neighborhood\n", | |
" dist_mask = nbr_dist < radius\n", | |
" new_mask = np.isin(nbrs, boundary_prev, assume_unique=True, invert=True)\n", | |
" keep_mask = dist_mask & new_mask\n", | |
"\n", | |
" # terminate if no points to add\n", | |
" if not np.any(keep_mask):\n", | |
" break\n", | |
" \n", | |
" # update boundary and neighborhood\n", | |
" boundary_prev = boundary\n", | |
" boundary = nbrs[keep_mask]\n", | |
" boundary_dist = nbr_dist[keep_mask]\n", | |
"\n", | |
" neigh_ind.append(boundary)\n", | |
" neigh_dist.append(boundary_dist)\n", | |
"\n", | |
" neigh_dist = np.concatenate(neigh_dist)\n", | |
" neigh_ind = np.concatenate(neigh_ind)\n", | |
" return neigh_dist, neigh_ind" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def benchmark_graph_neighborhood(n=1000, src=0, radius=0.2, seed=23):\n", | |
" \"\"\"\n", | |
" Benchmark graph neighborhood against sklearn nearest neighbors, brute-force\n", | |
" search, and dijkstra, for uniform data generated from the box [0, 1] x [0, 1].\n", | |
" \"\"\"\n", | |
" np.random.seed(seed)\n", | |
" rng = np.random.default_rng(seed)\n", | |
" x = rng.random((n, 2))\n", | |
" tri = spatial.Delaunay(x)\n", | |
" adj = tri_to_adj(tri)\n", | |
" nbrs = NearestNeighbors().fit(x)\n", | |
"\n", | |
" # sparse-graph\n", | |
" tic = time.monotonic()\n", | |
" _, neigh_ind_graph = graph_neighborhood(adj, src, radius)\n", | |
" rt_graph = time.monotonic() - tic\n", | |
"\n", | |
" # nn-search \n", | |
" tic = time.monotonic()\n", | |
" _, neigh_ind_nn = nbrs.radius_neighbors(x[[src]], radius=radius)\n", | |
" neigh_ind_nn = neigh_ind_nn[0]\n", | |
" rt_nn = time.monotonic() - tic\n", | |
"\n", | |
" # brute-force\n", | |
" tic = time.monotonic()\n", | |
" neigh_mask_bf = np.linalg.norm(x - x[src], axis=1) < radius\n", | |
" rt_bf = time.monotonic() - tic\n", | |
"\n", | |
" # dijstra \n", | |
" tic = time.monotonic()\n", | |
" dist_mat = sprs.csgraph.dijkstra(adj, directed=False, indices=[src], limit=radius)\n", | |
" neigh_mask_dijk = np.isfinite(dist_mat.ravel())\n", | |
" rt_dijk = time.monotonic() - tic\n", | |
"\n", | |
" # measure intersection over union\n", | |
" neigh_mask_graph = np.zeros(n, dtype=bool)\n", | |
" neigh_mask_graph[neigh_ind_graph] = True\n", | |
" \n", | |
" neigh_inter_bf = np.sum(neigh_mask_graph * neigh_mask_bf)\n", | |
" neigh_iou_bf = neigh_inter_bf / (neigh_mask_graph.sum() + neigh_mask_bf.sum() - neigh_inter_bf)\n", | |
" \n", | |
" neigh_inter_dijk = np.sum(neigh_mask_graph * neigh_mask_dijk)\n", | |
" neigh_iou_dijk = neigh_inter_dijk / (neigh_mask_graph.sum() + neigh_mask_dijk.sum() - neigh_inter_dijk)\n", | |
"\n", | |
" return rt_graph, rt_nn, rt_bf, rt_dijk, neigh_iou_bf, neigh_iou_dijk" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def tri_to_adj(tri: spatial.Delaunay) -> sprs.csr_matrix:\n", | |
" \"\"\"\n", | |
" Compute distance weighted adjacency matrix from Delaunay triangulation.\n", | |
" \"\"\"\n", | |
" pts = tri.points\n", | |
" n = len(pts)\n", | |
" indptr, indices = tri.vertex_neighbor_vertices\n", | |
" adj = sprs.csr_matrix((np.ones(len(indices)), indices, indptr), (n, n))\n", | |
" adj_coo = adj.tocoo()\n", | |
" row, col = adj_coo.row, adj_coo.col\n", | |
" dist = np.linalg.norm(pts[row] - pts[col], axis=1)\n", | |
" adj.data = dist\n", | |
" return adj" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"2022-06-23 12:26:29 INFO Starting n=100\n", | |
"2022-06-23 12:26:29 INFO Starting n=200\n", | |
"2022-06-23 12:26:29 INFO Starting n=400\n", | |
"2022-06-23 12:26:29 INFO Starting n=800\n", | |
"2022-06-23 12:26:29 INFO Starting n=1600\n", | |
"2022-06-23 12:26:29 INFO Starting n=3200\n", | |
"2022-06-23 12:26:30 INFO Starting n=6400\n", | |
"2022-06-23 12:26:31 INFO Starting n=12800\n", | |
"2022-06-23 12:26:33 INFO Starting n=25600\n", | |
"2022-06-23 12:26:38 INFO Starting n=51200\n", | |
"2022-06-23 12:26:47 INFO Starting n=102400\n", | |
"2022-06-23 12:27:09 INFO Starting n=204800\n", | |
"2022-06-23 12:27:59 INFO Starting n=409600\n", | |
"2022-06-23 12:29:42 INFO Starting n=819200\n" | |
] | |
} | |
], | |
"source": [ | |
"radius = 0.01\n", | |
"n_trials = 20\n", | |
"n_pts = 100 * 2 ** np.arange(14)\n", | |
"\n", | |
"results = []\n", | |
"columns = [\"n_pts\", \"trial\", \"seed\", \"rt_graph\", \"rt_nn\", \"rt_bf\", \"rt_dijk\", \"neigh_iou_bf\", \"neigh_iou_dijk\"]\n", | |
"\n", | |
"for n in n_pts:\n", | |
" logging.info(f\"Starting n={n}\")\n", | |
" for trial in range(n_trials):\n", | |
" seed = 1000 + trial\n", | |
" result = benchmark_graph_neighborhood(n=n, seed=seed, radius=0.1)\n", | |
" results.append((n, trial, seed) + result)\n", | |
" \n", | |
"results = pd.DataFrame(results, columns=columns)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>n_pts</th>\n", | |
" <th>trial</th>\n", | |
" <th>seed</th>\n", | |
" <th>rt_graph</th>\n", | |
" <th>rt_nn</th>\n", | |
" <th>rt_bf</th>\n", | |
" <th>rt_dijk</th>\n", | |
" <th>neigh_iou_bf</th>\n", | |
" <th>neigh_iou_dijk</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>100</td>\n", | |
" <td>0</td>\n", | |
" <td>1000</td>\n", | |
" <td>0.002766</td>\n", | |
" <td>0.000736</td>\n", | |
" <td>0.000058</td>\n", | |
" <td>0.000425</td>\n", | |
" <td>1.000</td>\n", | |
" <td>1.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>100</td>\n", | |
" <td>1</td>\n", | |
" <td>1001</td>\n", | |
" <td>0.002087</td>\n", | |
" <td>0.001091</td>\n", | |
" <td>0.000055</td>\n", | |
" <td>0.000610</td>\n", | |
" <td>1.000</td>\n", | |
" <td>1.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>100</td>\n", | |
" <td>2</td>\n", | |
" <td>1002</td>\n", | |
" <td>0.002880</td>\n", | |
" <td>0.000708</td>\n", | |
" <td>0.000047</td>\n", | |
" <td>0.000338</td>\n", | |
" <td>0.875</td>\n", | |
" <td>1.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>100</td>\n", | |
" <td>3</td>\n", | |
" <td>1003</td>\n", | |
" <td>0.001612</td>\n", | |
" <td>0.000600</td>\n", | |
" <td>0.000037</td>\n", | |
" <td>0.000514</td>\n", | |
" <td>1.000</td>\n", | |
" <td>1.0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>100</td>\n", | |
" <td>4</td>\n", | |
" <td>1004</td>\n", | |
" <td>0.000554</td>\n", | |
" <td>0.000856</td>\n", | |
" <td>0.000046</td>\n", | |
" <td>0.000323</td>\n", | |
" <td>1.000</td>\n", | |
" <td>1.0</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" n_pts trial seed rt_graph rt_nn rt_bf rt_dijk neigh_iou_bf \\\n", | |
"0 100 0 1000 0.002766 0.000736 0.000058 0.000425 1.000 \n", | |
"1 100 1 1001 0.002087 0.001091 0.000055 0.000610 1.000 \n", | |
"2 100 2 1002 0.002880 0.000708 0.000047 0.000338 0.875 \n", | |
"3 100 3 1003 0.001612 0.000600 0.000037 0.000514 1.000 \n", | |
"4 100 4 1004 0.000554 0.000856 0.000046 0.000323 1.000 \n", | |
"\n", | |
" neigh_iou_dijk \n", | |
"0 1.0 \n", | |
"1 1.0 \n", | |
"2 1.0 \n", | |
"3 1.0 \n", | |
"4 1.0 " | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"results.head()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"results_agg = results.groupby(\"n_pts\").agg(\"mean\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Neighborhood overlap\n", | |
"\n", | |
"First we plot the neighborhood overlap intersection-over-union (IoU) of the sparse-graph geodesic neighborhood with the brute-force Euclidean and dijkstra geodesic neighborhoods.\n", | |
"\n", | |
"We would expect pretty large but not perfect overlap for the Euclidean neighborhood, since the geodesic distance will generally over-estimate the Euclidean distance. We would expect perfect overlap for the Dijkstra neighborhood, since in principle the two algorithms should be equivalent.\n", | |
"\n", | |
"Because the Dijkstra overlap falls off as the number of points increases, that suggests something is wrong with the sparse-graph implementation.." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtsAAAGzCAYAAAD+P9sCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAABcSAAAXEgFnn9JSAACo+ElEQVR4nOzdd3hUxfrA8e/ZbHohjYQeCB1C70jvAlcRC2BDf+BVUZRrxYpcG3oVK5Z7RVQQUFFQkA7SO6EHQhqhhZCENNI2mz2/P9ZdErJJdlN2U97P8/CYnDMzZ3ZMeTM7846iqqqKEEIIIYQQotJpHN0BIYQQQgghaisJtoUQQgghhKgiEmwLIYQQQghRRSTYFkIIIYQQoopIsC2EEEIIIUQVkWBbCCGEEEKIKiLBthBCCCGEEFVEgm0hhBBCCCGqiATbQgghhBBCVBEJtoUQQgghhKgiEmwLIYQQQghRRSTYFkIIIYQQoopIsC2EEEIIIUQVkWBbCCGEEEKIKiLBthAWnDt3DkVRUBSFhx56qMqf17x5cxRFoXnz5tWqLUd56KGHzON/7tw5R3fHYb777jvzOHz33XeO7k6tIF9bQgh7k2BbOITpl53p3/79+8uss3z5cnP5N954o+o7KYQQQghRQRJsi2rh5ZdfdnQXhBBCCCEqndbRHRACYOvWrWzevJkRI0Y4uiuAcSmGqqqO7oYQQgghajiZ2RYO5eHhYf74pZdecmBPhBBCCCEqnwTbwqGaNm3KHXfcAcChQ4f47bffHNwjIYQQQojKI8G2cLi33noLjcb4pfjqq69SUFBQKe3u27ePxx9/nA4dOuDr64ubmxvNmjVj0qRJ/Pnnn6XWtSUbSWRkJI8++igtWrTAzc2NBg0aMHLkSJYtW2ZzWyZ6vZ7//ve/DBgwgMDAQNzd3WndujVPPfUUly9ftqoNk6ysLN5//3169uyJv78/np6ehIWF8corr3Dt2jWr2tDpdHz99deMGTOGRo0a4erqSmBgIH379mXu3LmkpKSUWv+NN94wj8G2bdsAWL9+PXfffTfNmzfH1dUVRVFIS0srsY0NGzZw++2307hxY1xdXWncuDGTJk3i4MGDVr0Gg8HAsmXLuOOOO2jatClubm74+fnRrVs3XnzxRc6fP29VOwC7d+9m2rRptG7dGi8vL7y8vGjdujXTp09n7969VrezdetWJk6cSMOGDXFzcyMkJIQpU6awe/duq9uwRXnHICUlBRcXFxRFoUePHlY9648//jD/P3/xxRdLLBcREcEzzzxD165d8ff3N/+/ve222/jxxx8xGAwl1rX0vRUfH8+LL75IWFgYvr6+KIrCxx9/bFWfTZKSkvjmm2+4//77CQsLw8fHB2dnZ/PX/GuvvcaVK1fKbMfUtyFDhpjbff311+nUqRP16tXDx8eHHj16MG/ePHJycmzqoxCiBlGFcABABdS2bduqqqqqU6dONV9btGiRxTrLli0zl5kzZ06JbWdlZalTpkwxly3p37hx49SMjAyLbcTFxZnLTZ06tcRn/fDDD6qrq2uJz7jzzjvVs2fPltlWSEiICqghISHq1atX1f79+5fYpr+/vxoeHl5inwq3de7cObV9+/YlthUcHKwePHiwxLZUVVUjIiLUVq1alTqW9erVU1etWlViG3PmzDGX3bp1q/roo49abCc1NVVV1aJfDzExMepjjz1W4rM1Gk2JXzMmly9fVnv16lXqa3Bzc1O//PLLUtvR6XTqww8/XObX1vTp09X8/PxS23rmmWdKfU3vvvuuumjRojK/L6xV0TG47bbbzOUiIiLKfN7dd99tLn/8+PFi9/V6vTpr1izVycmp1D717t1bTUhIsPiMm79P165dq9arV69YGx999JG5TuGvrbi4uGJtxsTElNknQPX09FR//fXXUsfAVHbw4MFqeHi42rhx4xLba9WqlRobG1vmuAohah7ZICmqhblz57Js2TJ0Oh1vvPEG9957Ly4uLja3o9PpGDlyJHv27AGgWbNmTJkyhY4dO+Lq6kp0dDQ//PADkZGR/Pnnn0yYMIFNmzaZZ9ZtsXHjRh566CHzzNvw4cOZOHEiAQEBxMTE8N133/Hrr7+iKIrVber1eu6880727NnD0KFDmTBhAg0bNuTixYt88803REREcO3aNSZPnsyJEydKHaP8/HzuvvtuTp8+TZ8+fZgyZQoNGjQgPj6e77//noiICBITExk1ahRHjx6lWbNmxdo4f/48AwcONM9ct2vXjqlTp9KiRQuSk5P59ddf+euvv0hPT+fOO+/kjz/+YOzYsaW+xvfff5/169fTqFEjHnroITp27IhOp2P37t04OTkVK//KK6+wfPly2rRpw4MPPkirVq3IzMzk119/Zf369RgMBh577DH69+9P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PuXc+ZRz51PORW4PWvqvhSksLCQjI6PKMYvFUuVYYWFhlfNeXl5ER0cTFxdHYmIihw4dwsfHh1GjRjFz5kw9THMLyrnzKefOp5w7n3IucnvQyLaIiIiIiINozraIiIiIiIOo2BYRERERcRAV2yIiIiIiDqJiW0RERETEQVRsi4iIiIg4iIptEREREREHUbEtIiIiIuIgKrZFRERERBxExbaIiIiIiIOo2BYRERERcRAV2yIiIiIiDqJiW0RERETEQVRsi4g42aZNm4iKiuK1115r7lBERMTBPJo7ABFxnk2bNhEbGwtAq1atWLFiBQEBATW2zcnJ4bnnngMgOjqa8PBwp8Up9tuzZw85OTmEh4fr30xE5FdAI9siLVRJSYmt8BbnatOmDZ07dyYoKKjJ+96zZw+xsbGkpqY2ed8iItJwGtkWacF2795NZGQknTt3bu5QWpTx48czfvz45g5DREScQCPbIi1QYGAgXbt2pby8nH/+85/NHY6IiIjL0si2SAvk5ubG7Nmzeeutt0hOTub06dP06NGj3tffPJ975cqVBAcH19huwYIF5Obm8uyzzzJ69OharzcYDGzevJkffviBwsJCAgICGDFiBFOnTsXb2xuAc+fOsXXrVtLT0yksLCQwMJBRo0YxZcoUPDwa/lb22muvkZaWxowZM5g+fTrbt28nMTGRy5cv4+HhQffu3YmMjGTgwIF19pOcnMzu3bvJzMzk+vXr+Pr6EhoaytixYxkyZEiN11jnzt91113VHpJctWoVe/fuZdSoUSxYsICkpCQSEhLIzs6mtLSUTp06MWbMGMaPH4+b23/HS/bs2cMHH3xg+z42NrbaNKGb/63MZjMJCQkkJydz8eJFiouLMRqNtGnThtDQUAYPHsywYcMaklIREamBim2RFioiIoK77rqLtLQ0NmzYQHR0dLPEcebMGT766CNMJhOtW7emvLycy5cvs2XLFtLT03n11Vc5duwYy5cvp6SkBKPRSFlZGZcuXWLjxo385z//YdGiRXa/fllZGcuWLSM9PR13d3e8vb0xmUwcP36c48ePM2PGDKKiomq8buXKlezfvx8Ag8GA0WiksLCQlJQUUlJSGDFiBAsWLLDrwwDAmjVr+PLLL219m81msrOz+eSTT8jKyrJ9YAHw8vKibdu2XL9+nfLyclq1amX7oGJlLc5v3LjB0qVL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", | |
"text/plain": [ | |
"<Figure size 750x450 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"f, ax = plt.subplots(figsize=(5, 3))\n", | |
"\n", | |
"x = results_agg.index.values\n", | |
"\n", | |
"ax.set_xscale(\"log\")\n", | |
"plt.plot(x, results_agg[f\"neigh_iou_bf\"].values, \"o-\", label=\"Euclidean\")\n", | |
"plt.plot(x, results_agg[f\"neigh_iou_dijk\"].values, \"o-\", label=\"dijkstra\")\n", | |
"plt.xlabel(\"Num points\")\n", | |
"plt.ylabel(\"IoU\")\n", | |
"plt.legend(loc=\"center left\", bbox_to_anchor=(1.02, 0.5))\n", | |
"plt.title(\"Neighborhood overlap\")\n", | |
"\n", | |
"plt.tight_layout()\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Run time scaling\n", | |
"\n", | |
"Now we compare the run time scaling for all four methods.\n", | |
"\n", | |
"Not so surprisingly, the sparse-graph algorith is the slowest, with especially large overhead at small dataset sizes. Although it is somewhat competitive with dijkstra at large dataset sizes.\n", | |
"\n", | |
"brute-force has the least overhead and is highly optimized but has worst scaling with dataset size.\n", | |
"\n", | |
"nn-search has low overhead and scales almost independently of dataset size.\n", | |
"\n", | |
"Importantly, the brute-force and nn-search methods, which implement Euclidean neighborhoods, would be worse approximations of geodesic distances for more complicated meshes." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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", | |
"text/plain": [ | |
"<Figure size 750x450 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"f, ax = plt.subplots(figsize=(5, 3))\n", | |
"\n", | |
"algs = [\n", | |
" (\"graph\", \"sparse-graph\"),\n", | |
" (\"dijk\", \"dijkstra\"),\n", | |
" (\"nn\", \"nn-search\"),\n", | |
" (\"bf\", \"brute-force\"),\n", | |
"]\n", | |
"x = results_agg.index.values\n", | |
"\n", | |
"ax.set_xscale(\"log\")\n", | |
"ax.set_yscale(\"log\")\n", | |
"for alg, name in algs:\n", | |
" plt.plot(x, results_agg[f\"rt_{alg}\"].values, \"o-\", label=name)\n", | |
"plt.xlabel(\"Num points\")\n", | |
"plt.ylabel(\"Run time (s)\")\n", | |
"plt.title(\"Run time scaling\")\n", | |
"plt.legend(loc=\"center left\", bbox_to_anchor=(1.02, 0.5))\n", | |
"\n", | |
"plt.tight_layout()\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"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.7.11" | |
}, | |
"vscode": { | |
"interpreter": { | |
"hash": "37362435d1e26e9a226dc3945019f53223fd006fcf9b5992da9964a815761c31" | |
} | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment