IB Mathematics AI – Topic 3
Geometry & Trigonometry: Voronoi Diagrams
Overview: Voronoi diagrams partition a plane into regions based on distance to a specific set of points (sites). Each region contains all points closest to one particular site.
Real-World Applications: Hospital locations, cell tower coverage, forest fire monitoring, store placement, and optimal facility location.
Named After: Russian mathematician Georgy Voronoi (1868-1908)
Components of Voronoi Diagrams
Key Terminology
1. Sites (Seeds/Generators):
The given set of points in the plane, usually denoted as A, B, C, D, etc.
Example: Locations of hospitals, schools, or stores
Notation: Sites are typically marked with filled dots •
2. Voronoi Cells (Regions):
The regions surrounding each site
Each cell contains all points in the plane that are closer to that site than to any other site
Definition: For site A, the Voronoi cell is:
\[ V(A) = \{P : d(P, A) \leq d(P, B) \text{ for all sites } B\} \]
3. Voronoi Edges:
The boundaries between adjacent Voronoi cells
Each edge is part of the perpendicular bisector of the line segment joining two sites
All points on an edge are equidistant from exactly two sites
4. Voronoi Vertices:
Points where three or more Voronoi edges meet
Each vertex is equidistant from at least three sites
Centers of empty circles that pass through exactly three sites
⚠️ Common Pitfalls & Tips:
- Voronoi edges extend to infinity unless bounded by a frame
- Each site has exactly one Voronoi cell
- Cells can be unbounded (extending infinitely)
- Adjacent cells share an edge (perpendicular bisector)
Perpendicular Bisectors
Foundation of Voronoi Diagrams
Definition: A perpendicular bisector of a line segment is a line that passes through the midpoint and is perpendicular to the segment.
Finding Perpendicular Bisector Between Two Sites:
Step 1: Find the midpoint M
For sites A\((x_1, y_1)\) and B\((x_2, y_2)\):
\[ M = \left(\frac{x_1 + x_2}{2}, \frac{y_1 + y_2}{2}\right) \]
Step 2: Find gradient of AB
\[ m_{AB} = \frac{y_2 - y_1}{x_2 - x_1} \]
Step 3: Find perpendicular gradient
\[ m_{\perp} = -\frac{1}{m_{AB}} \]
Step 4: Write equation of perpendicular bisector
Using point-gradient form through M:
\[ y - y_M = m_{\perp}(x - x_M) \]
Or rearrange to general form: \(ax + by + d = 0\)
⚠️ Common Pitfalls & Tips:
- Remember: perpendicular gradient is negative reciprocal
- Every point on the perpendicular bisector is equidistant from both sites
- The perpendicular bisector forms the edge between two Voronoi cells
- Use GDC to verify calculations
📝 Worked Example 1: Finding Perpendicular Bisector
Question: Two sites A and B are located at A(2, 3) and B(8, 7). Find the equation of the perpendicular bisector that forms the edge between their Voronoi cells.
Solution:
Step 1: Find midpoint M
\[ M = \left(\frac{2 + 8}{2}, \frac{3 + 7}{2}\right) = (5, 5) \]
Step 2: Find gradient of AB
\[ m_{AB} = \frac{7 - 3}{8 - 2} = \frac{4}{6} = \frac{2}{3} \]
Step 3: Find perpendicular gradient
\[ m_{\perp} = -\frac{1}{2/3} = -\frac{3}{2} \]
Step 4: Write equation using M(5, 5)
\[ y - 5 = -\frac{3}{2}(x - 5) \]
\[ y - 5 = -\frac{3}{2}x + \frac{15}{2} \]
\[ 2y - 10 = -3x + 15 \]
\[ 3x + 2y - 25 = 0 \]
Answer: 3x + 2y - 25 = 0
Nearest Neighbour Interpolation
Finding Closest Site
Definition: Nearest neighbour interpolation determines which site is closest to a given point by identifying which Voronoi cell contains that point.
Method 1: Visual Identification
If you have a Voronoi diagram drawn:
- Locate the point on the diagram
- Identify which cell contains the point
- The site for that cell is the nearest neighbour
Method 2: Distance Calculation
Calculate distance from point P to each site:
\[ d(P, A) = \sqrt{(x_P - x_A)^2 + (y_P - y_A)^2} \]
The site with minimum distance is the nearest neighbour
Applications:
- Service allocation: Which hospital should serve a location?
- Market analysis: Which store is closest to a customer?
- Emergency response: Which station should respond?
- Data estimation: Estimating unknown values based on nearest known data
⚠️ Common Pitfalls & Tips:
- Points on edges are equidistant from two sites
- Points at vertices are equidistant from three or more sites
- Use GDC to calculate distances efficiently
- Can compare squared distances (avoid square root for speed)
Toxic Waste Dump Problem (Largest Empty Circle)
Optimization Problem
Problem Statement: Given several towns (sites), where should a toxic waste dump be located to maximize the distance to the nearest town?
Key Concept: Largest Empty Circle
Find the largest circle that:
- Contains no sites in its interior
- Is centered at a point in the plane
- Has maximum radius
Solution Approach:
The center of the largest empty circle is located at a Voronoi vertex
Why Voronoi Vertices?
- Voronoi vertices are equidistant from three or more sites
- These points are locally as far as possible from nearby sites
- One of these vertices maximizes the minimum distance to any site
Steps to Solve:
- Construct the Voronoi diagram for all sites (towns)
- Identify all Voronoi vertices
- For each vertex, calculate the distance to the nearest site(s)
- The vertex with the maximum distance is the optimal location
- This maximum distance is the radius of the largest empty circle
Alternative Method (Without Full Diagram):
If given partial Voronoi diagram or specific vertices:
- Calculate distance from each given vertex to nearest site
- Compare distances
- Maximum distance identifies the best location
⚠️ Common Pitfalls & Tips:
- The optimal point is ALWAYS at a Voronoi vertex
- Don't forget to check all vertices in bounded region
- Consider vertices at the boundary if region is bounded
- Use GDC to calculate distances accurately
📝 Worked Example 2: Toxic Waste Dump Problem
Question: Three towns are located at A(0, 0), B(6, 0), and C(3, 4). The Voronoi diagram has a single vertex at V(3, 1.25). Where should a waste dump be located to maximize distance from the towns?
Solution:
Strategy: The optimal location is the Voronoi vertex. We just need to calculate the distance from this vertex to any of its equidistant sites.
Calculate distance from V(3, 1.25) to any site (e.g., A(0, 0)):
\[ d(V, A) = \sqrt{(3-0)^2 + (1.25-0)^2} = \sqrt{9 + 1.5625} = \sqrt{10.5625} \approx 3.25 \]
Verify with another site (e.g., B(6, 0)):
\[ d(V, B) = \sqrt{(3-6)^2 + (1.25-0)^2} = \sqrt{9 + 1.5625} = \sqrt{10.5625} \approx 3.25 \]
Answer: The dump should be located at the Voronoi vertex (3, 1.25), which is 3.25 units from the nearest towns.
Constructing Voronoi Diagrams
Step-by-Step Process
General Steps:
- Plot all sites on coordinate plane
- Connect sites to form triangulation (usually Delaunay)
- Find midpoints of each edge connecting sites
- Draw perpendicular bisectors through each midpoint
- Identify intersections of perpendicular bisectors (vertices)
- Connect vertices to form Voronoi edges
- Extend edges to boundary or infinity as appropriate
IB Exam Context:
You will typically NOT be asked to construct a complete Voronoi diagram from scratch
Common exam tasks:
- Find equation of one missing edge (perpendicular bisector)
- Identify nearest site for a given point
- Add a new site and determine affected regions
- Find optimal location (toxic waste dump)
- Calculate distances to nearest neighbours
⚠️ Common Pitfalls & Tips:
- Use ruler for accurate perpendicular bisectors if drawing
- Label all sites clearly (A, B, C...)
- Mark vertices with dots where edges meet
- Remember edges extend infinitely unless bounded
📊 Quick Reference Guide
Key Components
- Sites: Given points
- Cells: Regions around each site
- Edges: Perpendicular bisectors
- Vertices: Where edges meet
Main Problems
- Find missing edge equation
- Nearest neighbour identification
- Largest empty circle
- Adding new sites
Perpendicular Bisector
- Find midpoint
- Find gradient
- Perpendicular: \(-1/m\)
- Write equation
Toxic Waste Dump
- Check all vertices
- Calculate distances
- Find maximum minimum
- Use GDC for accuracy
✍️ IB Exam Strategy
- Read carefully: Identify what is being asked (edge equation, nearest neighbour, or optimal location)
- Label diagram: Mark all given sites and any provided vertices clearly
- For missing edges: Find perpendicular bisector between two adjacent sites
- For nearest neighbour: Calculate distance to each site or identify cell visually
- For toxic waste dump: Check all Voronoi vertices and find maximum minimum distance
- Use GDC extensively: For midpoints, gradients, distances, and equation solving
- Show working: Even with GDC, write down formula and substitution
- Check reasonableness: Does answer make sense geometrically?
🚫 Top Mistakes to Avoid
- Forgetting that perpendicular gradient is negative reciprocal
- Not using the midpoint when finding perpendicular bisector
- Calculating distance to ALL sites when only nearest is needed
- For toxic waste: checking only one vertex instead of all
- Confusing Voronoi edges (perpendicular bisectors) with lines connecting sites
- Not extending edges appropriately (should go to infinity if unbounded)
- Mixing up which site a point is closest to without calculation
- Forgetting to show clear working for perpendicular bisector equations
- Not labeling final answer clearly with correct notation
- Rounding too early - keep full accuracy until final answer