3,532 research outputs found

    Shooting permanent rays among disjoint polygons in the plane

    Full text link
    We present a data structure for ray shooting-and-insertion in the free space among disjoint polygonal obstacles with a total of nn vertices in the plane, where each ray starts at the boundary of some obstacle. The portion of each query ray between the starting point and the first obstacle hit is inserted permanently as a new obstacle. Our data structure uses O(n log n) space and preprocessing time, and it supports m successive ray shooting-and-insertion queries in O(n log2 n + m log m) total time. We present two applications for our data structure: (1) Our data structure supports efficient implementation of auto-partitions in the plane i.e. binary space partitions where each partition is done along the supporting line of an input segment. If n input line segments are fragmented into m pieces by an auto-partition, then it can now be implemented in O(n log2n+m log m) time. This improves the expected runtime of Patersen and Yao's classical randomized auto-partition algorithm for n disjoint line segments to O(n log2 n). (2) If we are given disjoint polygonal obstacles with a total of n vertices in the plane, a permutation of the reflex vertices, and a half-line at each reflex vertex that partitions the reflex angle into two convex angles, then the folklore convex partitioning algorithm draws a ray emanating from each reflex vertex in the prescribed order in the given direction until it hits another obstacle, a previous ray, or infinity. The previously best implementation (with a semi-dynamic ray shooting data structure) requires O(n3/2-e/2) time using O(n1+e) space. Our data structure improves the runtime to O(n log2 n)

    Fast Fencing

    Get PDF
    We consider very natural "fence enclosure" problems studied by Capoyleas, Rote, and Woeginger and Arkin, Khuller, and Mitchell in the early 90s. Given a set SS of nn points in the plane, we aim at finding a set of closed curves such that (1) each point is enclosed by a curve and (2) the total length of the curves is minimized. We consider two main variants. In the first variant, we pay a unit cost per curve in addition to the total length of the curves. An equivalent formulation of this version is that we have to enclose nn unit disks, paying only the total length of the enclosing curves. In the other variant, we are allowed to use at most kk closed curves and pay no cost per curve. For the variant with at most kk closed curves, we present an algorithm that is polynomial in both nn and kk. For the variant with unit cost per curve, or unit disks, we present a near-linear time algorithm. Capoyleas, Rote, and Woeginger solved the problem with at most kk curves in nO(k)n^{O(k)} time. Arkin, Khuller, and Mitchell used this to solve the unit cost per curve version in exponential time. At the time, they conjectured that the problem with kk curves is NP-hard for general kk. Our polynomial time algorithm refutes this unless P equals NP

    Packing Plane Perfect Matchings into a Point Set

    Full text link
    Given a set PP of nn points in the plane, where nn is even, we consider the following question: How many plane perfect matchings can be packed into PP? We prove that at least log2n2\lceil\log_2{n}\rceil-2 plane perfect matchings can be packed into any point set PP. For some special configurations of point sets, we give the exact answer. We also consider some extensions of this problem
    corecore