Analytical Profile of Coleus Forskohlii | Forskolin .pdf
Analysis and Enhancement of Algorithms in Computational Geometry
1. Analysis and Enhancement of Algorithms
in
Computational Geometry
Kasun Ranga Wijeweera
(krw19870829@gmail.com)
1
2. Talk Outline
• Introduction
• Literature Survey
• Triangulation of a Polygon
• Convex Partitioning of a Polygon
• Largest Circle inside a Polygon
• Visible Region of a Polygon
• Results and Discussion
• Conclusions
2
4. What is Computational Geometry?
• Problems in classical geometry are addressed by
computerized algorithms.
• Challenges are problem representation, data structures,
algorithm design, and computational complexity.
4
5. Design Issues of Geometric Algorithms
• Running time
• Memory consumption
• Handling all possible cases
• Availability of a data structure
• Minimalist implementation
• Precision error
• Data type overflow
• Simplicity
5
6. Motivation
• Complicated algorithms are difficult to implement and debug.
• Sometimes, there are no suitable data structures available in
practice to implement those complex algorithms.
• Inventing simpler mathematical models to solve the already
solved problems has become a recent trend.
• Simpler algorithms can be easily implemented and useful for
scientists in other fields.
6
7. Triangulation of a Polygon
• Definition: The decomposition of a polygon into a set of non
overlapping triangles.
• Example:
7
8. Convex Partitioning of a Polygon
• Definition: The decomposition of a polygon into a set of non
overlapping convex pieces.
• Example:
8
9. Largest Circle inside a Polygon
• Definition: Finding the center of the largest circle inside an
arbitrary polygon.
• Example:
9
10. Visible Region of a Polygon
• Definition: Finding the region visible to a point inside the
polygon.
• Example:
10
11. Research Problem 1
• The basic triangulation algorithm can triangulate a polygon in
O (n4) time and O (n2) space with 100% accuracy.
• Even though more efficient algorithms are available in
literature, they are not 100% accurate due to the use of
floating point arithmetic.
• A simple and 100% accurate triangulation algorithm is
proposed with O (n3) time and O (n) space.
11
12. Research Problem 2
• Hertel Mehlhorn algorithm can partition a polygon into exact
convex pieces in O (n2) time and O (n2) space.
• Even though there are algorithms which produce smaller
number of convex pieces than the HM algorithm, they are
either less efficient or fail to produce exact convex pieces.
• A convex partitioning algorithm is proposed which produces
exact convex pieces in O (n3) time and O (n2) space.
• The proposed algorithm produces smaller number of convex
pieces than the HM algorithm and it is more efficient than the
other algorithms which produce exact convex pieces.
12
13. Research Problem 3
• The existing algorithms to find the largest circle inside a
polygon are restricted to convex polygons.
• An algorithm is proposed to find the largest circle inside an
arbitrary polygon in O (k * n) time and O (n) space where k
is the number of random points generated inside the
bounding rectangle of the polygon.
13
14. Research Problem 4
• The naïve algorithm to find the visible region inside a
polygon takes O (k * n) time and O (n) space where k is the
number of rays shot around the point.
• The output of this algorithm may contain lots of unnecessary
collinear points.
• The other existing algorithms are extremely complicated and
far from reality to provide correct implementations to them.
• An algorithm is proposed to find the visible region of a
polygon in O (n2) time and O (n) space.
• The proposed algorithm can find the exact visible region and
it does not produce unnecessary collinear points.
14
16. Triangulation Algorithms
• Naïve approach: O (n4)
• Lennes (1911): O (n2)
• Garey et al. (1978): O (n log n)
• Hertel & Mehlhorn (1983): O (n log r), r reflex
• Chazelle & Incerpi (1984): O (n log s), s sinuosity
• Tarjan & Van Wyk (1988): O (n log log n)
• Clarkson et al. (1989): O (n log* n), randomized
• Toussaint (1990): O (n + nt0), t0 int. triangs.
• Kirkpatrick et al. (1990): O (n log* n), bnded. ints.
• Chazelle (1991): O (n)
• Seidel (1991): O (n log* n), randomized
• Amato et al. (2001): O (n), randomized
16
17. Convex Partitioning Algorithms
• Hertel Mehlhorn (1983): O (n2)
• Greene (1983): O (n4)
• Keil (1985): O (n3 log n)
• Chazelle (1985): O (n3)
• Lien et al. (2006): O (nr), r reflex
• Hongguang et al. (2015): O (nr), r reflex
17
19. Visible Region Algorithms
• Naïve approach: O (k * n)
• Suri et al. (1986): O (n log n)
• Asano et al. (1986): O (n log n)
• Joe & Simpson (1987) : O (n)
• Vegter (1990): O (k log (n/k))
• Aronov et al. (2002): O (log2 n + k)
• Zarei & Ghodsi (2005): O (1 + min (h, k) log n + k)
• Heffernan & Mitchell (2006): O (n + h log h), h holes
• Francisc et al. (2014): O (n)
19
21. Proposed Algorithm 1
K. R. Wijeweera, S. R. Kodituwakku (2016), Accurate, Simple,
and Efficient Triangulation of a Polygon by Ear Removal
with Lowest Memory Consumption, Ceylon Journal of
Science, Volume 45 (Issue 3), pp. 65-76.
21
93. Proposed Algorithm 2
K. R. Wijeweera, S. R. Kodituwakku (2017), Convex
Partitioning of a Polygon into Smaller Number of Pieces
with Lowest Memory Consumption, Ceylon Journal of
Science, Volume 46 (Issue 1), pp. 55-66.
93
159. Proposed Algorithm 3
K. R. Wijeweera, S. R. Kodituwakku (2015), An Algorithm to
Find the Largest Circle inside a Polygon, Ceylon Journal of
Science (Physical Sciences), Volume 19, pp. 45 - 54.
159
228. Proposed Algorithm 4
K. R. Wijeweera, S. R. Kodituwakku (2015), An Algorithm to
Find the Visible Region of a Polygon, Ceylon Journal of
Science (Physical Sciences), Volume 19, pp. 33 - 44.
228
270. Triangulation Algorithm
• The proposed algorithm takes O (n3) time and needs O (n)
space.
• The proposed algorithm uses integer arithmetic only for
computations and therefore the precision error is avoided.
• The basic triangulation algorithm is the only algorithm that
uses integer arithmetic only.
• The other existing algorithms use floating point arithmetic
which leads to the precision error.
• The basic triangulation algorithm takes O (n4) time and needs
O (n2) space.
• The proposed algorithm uses integer arithmetic only and it is
better than the basic triangulation algorithm both in time and
space.
270
271. Convex Partitioning Algorithm
• The proposed algorithm takes O (n3) time and needs O (n2)
space.
• Hertel Mehlhorn algorithm is the fastest algorithm available
in literature.
• Hertel Mehlhorn algorithm takes O (n2) time and needs O
(n2) space.
• The proposed algorithm produces smaller number of pieces
than Hertel Mehlhorn algorithm even though it is slower.
• The proposed algorithm is faster than the other existing
algorithms that produce exact convex pieces.
271
272. Largest Circle Algorithm
• The proposed algorithm takes O (k * n) time and needs O (n)
space where k is the number of random points generated
inside the bounding rectangle.
• The proposed algorithm can find the largest circle inside any
arbitrary polygon.
• The existing algorithms are restricted to convex polygons.
272
273. Visible Region Algorithm
• The proposed algorithm takes O (n2) time and O (n) space.
• The naïve approach takes O (k * n) time and O (n) space
where k is the number of rays shot around the point.
• The output of the naïve algorithm contains lots of
unnecessary collinear points.
• There are number of theoretical algorithms available in
literature.
• However, they are extremely complicated and far from reality
to provide a computer implementation.
• The proposed algorithm is faster and more accurate than the
naïve approach and it does not produce unnecessary collinear
points.
273
275. Conclusions
• The proposed triangulation algorithm is faster than the basic
triangulation algorithm and also performs exact triangulation.
• The proposed convex partitioning algorithm produces smaller
number of pieces than the Hertel Mehlhorn algorithm and
also performs exact convex partitioning.
• The proposed largest circle algorithm works for any arbitrary
polygon.
• The proposed visible region algorithm is faster and more
accurate than the naïve approach and does not produce
unnecessary collinear points.
275