KEMBAR78
An Efficient Convex Hull Algorithm for a Planer Set of Points | PPTX
An Efficient Convex Hull Algorithm
for a Planer Set of Points
Kasun Ranga Wijeweera
(krw198708298@gmail.com)
This Presentation is Based on
Following Research Paper
K. R. Wijeweera, U. A. J. Pinidiyaarachchi (2013), An
Efficient Convex Hull Algorithm for a Planer Set of Points,
Ceylon Journal of Science (Physical Sciences), Volume 17, pp.
9-17.
Definitions
(Convex Set)
• A set S is convex if x in S and y in S implies that the segment
xy is a subset of S
• Example in 2D:
Definitions
(Convex Hull of a Set of Points)
• The convex hull of a set S of points is the smallest convex set
containing all the points in S
• Example in 2D:
A 2D Convex Hull Algorithm
(Introduction)
• This algorithm is based on gradient in coordinate geometry
• Achieves parallelism
• Achieves data reduction
• Manages coincident points
• Deals with collinear points
• Outputs hull points in boundary traversal order
• Low computational cost
A 2D Convex Hull Algorithm
(Inputs and Outputs)
• Input: A non-empty set of points
S = {P1, P2, . . . , Pn}
• Output: A non-empty set that contains all the points of the
convex hull of S
H = {Q1, Q2, . . . , Qm}
A 2D Convex Hull Algorithm
(Example Data Set)
x
y
A 2D Convex Hull Algorithm
(Step 1)
Calculate following values from the set S
minx // minimum value of x-coordinates
y_minx // y-coordinate corresponding to minx
maxx // maximum value of x-coordinates
y_maxx // y-coordinate corresponding to maxx
miny // minimum value of y-coordinates
x_miny // x-coordinate corresponding to miny
maxy // maximum value of y-coordinates
x_maxy // x-coordinate corresponding to maxy
A 2D Convex Hull Algorithm
(Basic Four Points on the Convex Hull)
(x_maxy, maxy)
(minx, y_minx)
(maxx, y_maxx)
(x_miny, miny)
A 2D Convex Hull Algorithm
(Step 2)
Define following subsets of S
A = { ( x, y) in S | ( x <= x_maxy ) AND ( y >= y_minx )}
B = { ( x, y) in S | ( x >= x_maxy ) AND ( y >= y_maxx )}
C = { ( x, y) in S | ( x >= x_miny ) AND ( y <= y_maxx )}
D = { ( x, y) in S | ( x <= x_miny ) AND ( y <= y_minx )}
A 2D Convex Hull Algorithm
(Partitioning the Data Set into Four Regions)
A B
CD
A 2D Convex Hull Algorithm
(Step 3)
• Find the convex hull parts belong to each of the sets A, B, C,
and D in parallel
• Merge those hull parts to derive the set H
A 2D Convex Hull Algorithm
(After Processing and Merging Hull Parts)
A B
CD
A 2D Convex Hull Algorithm
(Processing Each Set: Gradient)
x
y
M (mx, my)
N (nx, ny)
m = ( ny – my ) / ( nx – mx )
A 2D Convex Hull Algorithm
(Processing Each Set: Modified Gradient)
A B
CD
A 2D Convex Hull Algorithm
(Processing Each Set: Modified Gradient)
Region Diagram Modified Gradient Begin Point End Point
A ( ay[i] – hully ) / ( ax[i] – hullx ) x = minx
y = y_minx
x = x_maxy
y = maxy
B ( bx[i] – hullx ) / (hully - by[i] ) x = x_maxy
y = maxy
x = maxx
y = y_maxx
C ( hully - cy[i] ) / ( hullx - cx[i] ) x = maxx
y = y_maxx
x = x_miny
y = miny
D ( hullx – dx[i] ) / ( dy[i] – hully ) x = x_miny
y = miny
x = minx
y =y_minx
A 2D Convex Hull Algorithm
(Processing Set A: General Case)
A 2D Convex Hull Algorithm
(Processing Set A: General Case)
A 2D Convex Hull Algorithm
(Processing Set A: General Case)
A 2D Convex Hull Algorithm
(Processing Set A: General Case)
A 2D Convex Hull Algorithm
(Processing Set A: General Case)
A 2D Convex Hull Algorithm
(Processing Set A: Collinear Case)
A 2D Convex Hull Algorithm
(Processing Set A: Indeterminate Case)
A 2D Convex Hull Algorithm
(Processing Sets B, C, and D)
• Using similar method B, C, and D sets can also be processed
• Using the same algorithm used for A to process B, C, and D
needs additional computational cost
• Therefore four separate algorithms are used to process each of
four sets with modified gradient
A 2D Convex Hull Algorithm
(Interior Points Algorithm)
Based on the following Lemma
A point is non-extreme if and only if it is inside some (closed)
triangle whose vertices are points of the set and is not itself a
corner of that triangle
A 2D Convex Hull Algorithm
(Interior Points Algorithm)
Algorithm: INTERIOR POINTS
for each i do
for each j != i do
for each k != i != j do
for each l != k != i != j do
if p(l) in Triangle{ p(i), p(j), p(k) }
then p(l) is non-extreme
A 2D Convex Hull Algorithm
(Proposed Algorithm vs. Interior Points Algorithm)
• Both of the algorithms were implemented using C++
programming language
• Following hardware and software resources were used
– Computer: Intel(R) Pentium(R) Dual CPU; E2180 @ 2.00 GHz; 2.00
GHz, 0.98 GB of RAM;
– IDE: Turbo C++; Version 3.0; Copyright(c) 1990, 1992 by Borland
International, Inc;
A 2D Convex Hull Algorithm
(Proposed Algorithm vs. Interior Points Algorithm)
• First, n number of random points were generated in the range 0
– 399 using randomize() function and written them to a text
file
• Such text files were generated for different n
• Number of clock cycles taken to process each data file k times
was counted using clock() function
A 2D Convex Hull Algorithm
(Proposed Algorithm vs. Interior Points Algorithm)
Case Proposed Algorithm
(1000)
Interior Points
Algorithm (1000)
Average Ratio
(IPA : PA)
n = 10; k = 32000; 5.53 37.11 6.71
n = 20; k = 1000; 10.60 693.80 65.45
n = 30; k = 500; 15.20 3881.6 255.36
n = 40; k = 100; 17.00 12769.00 751.11
n = 50; k = 50; 24.00 32554.00 1356.41
A 2D Convex Hull Algorithm
(Proposed Algorithm vs. Interior Points Algorithm)
0
5000
10000
15000
20000
25000
30000
35000
Case 1 Case 2 Case 3 Case 4 Case 5
A(1000)
B(1000)
A 2D Convex Hull Algorithm
(Drawbacks of the Proposed Algorithm)
• It cannot be easily extended to higher dimensions
• The notion of gradient causes the problem
• Need to solve partial differential equations in order to derive
the gradient
• Because of this higher dimensional extension is not cost
effective
• The entire data set is needed from the beginning
– The algorithm is static
Any Questions?
Thank You!

An Efficient Convex Hull Algorithm for a Planer Set of Points

  • 1.
    An Efficient ConvexHull Algorithm for a Planer Set of Points Kasun Ranga Wijeweera (krw198708298@gmail.com)
  • 2.
    This Presentation isBased on Following Research Paper K. R. Wijeweera, U. A. J. Pinidiyaarachchi (2013), An Efficient Convex Hull Algorithm for a Planer Set of Points, Ceylon Journal of Science (Physical Sciences), Volume 17, pp. 9-17.
  • 3.
    Definitions (Convex Set) • Aset S is convex if x in S and y in S implies that the segment xy is a subset of S • Example in 2D:
  • 4.
    Definitions (Convex Hull ofa Set of Points) • The convex hull of a set S of points is the smallest convex set containing all the points in S • Example in 2D:
  • 5.
    A 2D ConvexHull Algorithm (Introduction) • This algorithm is based on gradient in coordinate geometry • Achieves parallelism • Achieves data reduction • Manages coincident points • Deals with collinear points • Outputs hull points in boundary traversal order • Low computational cost
  • 6.
    A 2D ConvexHull Algorithm (Inputs and Outputs) • Input: A non-empty set of points S = {P1, P2, . . . , Pn} • Output: A non-empty set that contains all the points of the convex hull of S H = {Q1, Q2, . . . , Qm}
  • 7.
    A 2D ConvexHull Algorithm (Example Data Set) x y
  • 8.
    A 2D ConvexHull Algorithm (Step 1) Calculate following values from the set S minx // minimum value of x-coordinates y_minx // y-coordinate corresponding to minx maxx // maximum value of x-coordinates y_maxx // y-coordinate corresponding to maxx miny // minimum value of y-coordinates x_miny // x-coordinate corresponding to miny maxy // maximum value of y-coordinates x_maxy // x-coordinate corresponding to maxy
  • 9.
    A 2D ConvexHull Algorithm (Basic Four Points on the Convex Hull) (x_maxy, maxy) (minx, y_minx) (maxx, y_maxx) (x_miny, miny)
  • 10.
    A 2D ConvexHull Algorithm (Step 2) Define following subsets of S A = { ( x, y) in S | ( x <= x_maxy ) AND ( y >= y_minx )} B = { ( x, y) in S | ( x >= x_maxy ) AND ( y >= y_maxx )} C = { ( x, y) in S | ( x >= x_miny ) AND ( y <= y_maxx )} D = { ( x, y) in S | ( x <= x_miny ) AND ( y <= y_minx )}
  • 11.
    A 2D ConvexHull Algorithm (Partitioning the Data Set into Four Regions) A B CD
  • 12.
    A 2D ConvexHull Algorithm (Step 3) • Find the convex hull parts belong to each of the sets A, B, C, and D in parallel • Merge those hull parts to derive the set H
  • 13.
    A 2D ConvexHull Algorithm (After Processing and Merging Hull Parts) A B CD
  • 14.
    A 2D ConvexHull Algorithm (Processing Each Set: Gradient) x y M (mx, my) N (nx, ny) m = ( ny – my ) / ( nx – mx )
  • 15.
    A 2D ConvexHull Algorithm (Processing Each Set: Modified Gradient) A B CD
  • 16.
    A 2D ConvexHull Algorithm (Processing Each Set: Modified Gradient) Region Diagram Modified Gradient Begin Point End Point A ( ay[i] – hully ) / ( ax[i] – hullx ) x = minx y = y_minx x = x_maxy y = maxy B ( bx[i] – hullx ) / (hully - by[i] ) x = x_maxy y = maxy x = maxx y = y_maxx C ( hully - cy[i] ) / ( hullx - cx[i] ) x = maxx y = y_maxx x = x_miny y = miny D ( hullx – dx[i] ) / ( dy[i] – hully ) x = x_miny y = miny x = minx y =y_minx
  • 17.
    A 2D ConvexHull Algorithm (Processing Set A: General Case)
  • 18.
    A 2D ConvexHull Algorithm (Processing Set A: General Case)
  • 19.
    A 2D ConvexHull Algorithm (Processing Set A: General Case)
  • 20.
    A 2D ConvexHull Algorithm (Processing Set A: General Case)
  • 21.
    A 2D ConvexHull Algorithm (Processing Set A: General Case)
  • 22.
    A 2D ConvexHull Algorithm (Processing Set A: Collinear Case)
  • 23.
    A 2D ConvexHull Algorithm (Processing Set A: Indeterminate Case)
  • 24.
    A 2D ConvexHull Algorithm (Processing Sets B, C, and D) • Using similar method B, C, and D sets can also be processed • Using the same algorithm used for A to process B, C, and D needs additional computational cost • Therefore four separate algorithms are used to process each of four sets with modified gradient
  • 25.
    A 2D ConvexHull Algorithm (Interior Points Algorithm) Based on the following Lemma A point is non-extreme if and only if it is inside some (closed) triangle whose vertices are points of the set and is not itself a corner of that triangle
  • 26.
    A 2D ConvexHull Algorithm (Interior Points Algorithm) Algorithm: INTERIOR POINTS for each i do for each j != i do for each k != i != j do for each l != k != i != j do if p(l) in Triangle{ p(i), p(j), p(k) } then p(l) is non-extreme
  • 27.
    A 2D ConvexHull Algorithm (Proposed Algorithm vs. Interior Points Algorithm) • Both of the algorithms were implemented using C++ programming language • Following hardware and software resources were used – Computer: Intel(R) Pentium(R) Dual CPU; E2180 @ 2.00 GHz; 2.00 GHz, 0.98 GB of RAM; – IDE: Turbo C++; Version 3.0; Copyright(c) 1990, 1992 by Borland International, Inc;
  • 28.
    A 2D ConvexHull Algorithm (Proposed Algorithm vs. Interior Points Algorithm) • First, n number of random points were generated in the range 0 – 399 using randomize() function and written them to a text file • Such text files were generated for different n • Number of clock cycles taken to process each data file k times was counted using clock() function
  • 29.
    A 2D ConvexHull Algorithm (Proposed Algorithm vs. Interior Points Algorithm) Case Proposed Algorithm (1000) Interior Points Algorithm (1000) Average Ratio (IPA : PA) n = 10; k = 32000; 5.53 37.11 6.71 n = 20; k = 1000; 10.60 693.80 65.45 n = 30; k = 500; 15.20 3881.6 255.36 n = 40; k = 100; 17.00 12769.00 751.11 n = 50; k = 50; 24.00 32554.00 1356.41
  • 30.
    A 2D ConvexHull Algorithm (Proposed Algorithm vs. Interior Points Algorithm) 0 5000 10000 15000 20000 25000 30000 35000 Case 1 Case 2 Case 3 Case 4 Case 5 A(1000) B(1000)
  • 31.
    A 2D ConvexHull Algorithm (Drawbacks of the Proposed Algorithm) • It cannot be easily extended to higher dimensions • The notion of gradient causes the problem • Need to solve partial differential equations in order to derive the gradient • Because of this higher dimensional extension is not cost effective • The entire data set is needed from the beginning – The algorithm is static
  • 32.
  • 33.