title: Yao graph
text: # Yao graph
  
  In computational geometry, the Yao graph, named after Andrew Yao, is a kind of geometric spanner, a weighted undirected graph connecting a set of geometric points with the property that, for every pair of points in the graph, their shortest path has a length that is within a constant factor of their Euclidean distance.
  
  The basic idea underlying the two-dimensional Yao graph is to surround each of the given points by equally spaced rays, partitioning the plane into sectors with equal angles, and to connect each point to its nearest neighbor in each of these sectors. Associated with a Yao graph is an integer parameter k ≥ 6 which is the number of rays and sectors described above; larger values of k produce closer approximations to the Euclidean distance. The stretch factor is at most $1/(\cos \theta -\sin \theta )$, where $\theta$ is the angle of the sectors. The same idea can be extended to point sets in more than two dimensions, but the number of sectors required grows exponentially with the dimension.
  
  Andrew Yao used these graphs to construct high-dimensional Euclidean minimum spanning trees.
  
  ## Software for drawing Yao graphs
  
  * Cone-based Spanners in Computational Geometry Algorithms Library (CGAL)
  