Random Curve Generation(A linear-time algorithm for closed and irreducible, random digital curves)![]() Algorithm: Partha Bhowmick, Oishee Pal, and Reinhard Klette, A Linear-time Algorithm for Generation of Random Digital Curves, 4th Pacific-Rim Symposium on Image & Video Technology (PSIVT 2010), 14-17 November, 2010, Singapore (accepted). poster |
|
![]() |
Background:
The problem of generating random curves is quite interesting, whose historical origin can be traced back to
several classical studies on Brownian motion
(in ℝ2) [5, 6] and
random walk [8, 10, 11].
Closed random curves also find a resemblance with polygons whose generation has received
considerable attention in recent times [1, 7, 14, 12]. Significance: There is no published work till date on generating (closed and irreducible) random digital curves. A polygon-generation algorithm works with vertices of the polygon as input, generated randomly but a priori. On the contrary, our algorithm generates the points on the fly while creating the digital curve C. Starting from a random point (vertex) p1, it choose the next safe point p2 randomly, connects the points p1 and p2, again chooses the next safe point p3 randomly and connects it with p2, and so forth, and eventually ends at the start point p1, thereby generating a closed digital curve. Applications: For testing an algorithm A that takes a digital curve as input [2, 9, 3, 13]. Ideally, one would like to test the behavior and performance of A on various real-world digital curves, which are often very difficult to obtain. So a proven algorithm is necessary to generate a sufficiently large set of random curves of finite length in the digital plane. |
Problem difficulty lies in generating a curve C on the fly such that
C never intersects or touches itself, and hence becomes
simple and irreducible.
This, in turn, calls for detecting every possible
“narrow-mouthed” trap
formed by a previously generated part of C, which, if entered into, cannot be exited
without touching or intersecting C. Detecting and avoiding a trap: A trap may be arbitrarily nested in multiple and has to be detected fast without any backtracking (due to some already-entered part of the curve through the mouth of the trap) in order to minimize the computations involved. Further, since C has to be closed, it must be ensured that the (k-connected) path traced by the algorithm finally reaches the very start point. Proof of correctness: Follows from the principle of mathematical induction. Runtime: Linear in the length of C. |
![]() |