493 research outputs found
Ear-clipping Based Algorithms of Generating High-quality Polygon Triangulation
A basic and an improved ear clipping based algorithm for triangulating simple
polygons and polygons with holes are presented. In the basic version, the ear
with smallest interior angle is always selected to be cut in order to create
fewer sliver triangles. To reduce sliver triangles in further, a bound of angle
is set to determine whether a newly formed triangle has sharp angles, and edge
swapping is accepted when the triangle is sharp. To apply the two algorithms on
polygons with holes, "Bridge" edges are created to transform a polygon with
holes to a degenerate polygon which can be triangulated by the two algorithms.
Applications show that the basic algorithm can avoid creating sliver triangles
and obtain better triangulations than the traditional ear clipping algorithm,
and the improved algorithm can in further reduce sliver triangles effectively.
Both of the algorithms run in O(n2) time and O(n) space.Comment: Proceedings of the 2012 International Conference on Information
Technology and Software Engineering Lecture Notes in Electrical Engineering
Volume 212, 2013, pp 979-98
Computer program for simulation of urban areas aerodynamics by discrete vortices method
Розглядається інтерактивна комп'ютерна програма для моделювання аеродинаміки міських районів, розроблена на базі методу дискретних вихорів. Вона дозволяє швидко провести розрахунки аераційної ситуації в житловому районі для плоского або просторового випадку. Користувач може задати різний напрямок вітру, джерела забруднення, різну конфігурацію забудови та розміщення паркових зон. Програма дозволяє досліджувати рух вихорів, поле швидкостей, зони комфортності та розповсюдження домішок. Може бути використана для пошуку оптимальної конфігурації забудови.The article describes an interactive computer program for simulation of urban areas aerodynamics by using the discrete vortices method. When calculating flow past buildings dynamic arrays of structures were created and each structure stored information about control points and connected vortices, namely their coordinates and intensity. To simulatefree vortices, a dynamic three-dimensional array of structures was created, where information about the vortex sheets was stored. This program enables us to quickly calculate aeration situations in a residential area for two or three-dimensional cases. The user can specify various wind directions, pollution sources, various configurations of the building, and locations of parklands. The program allows us to study the motion of vortices, the velocity field, the comfort zone, and spreading of pollutants. It can be used for searching for optimal configurations of urban development
Net and Prune: A Linear Time Algorithm for Euclidean Distance Problems
We provide a general framework for getting expected linear time constant
factor approximations (and in many cases FPTAS's) to several well known
problems in Computational Geometry, such as -center clustering and farthest
nearest neighbor. The new approach is robust to variations in the input
problem, and yet it is simple, elegant and practical. In particular, many of
these well studied problems which fit easily into our framework, either
previously had no linear time approximation algorithm, or required rather
involved algorithms and analysis. A short list of the problems we consider
include farthest nearest neighbor, -center clustering, smallest disk
enclosing points, th largest distance, th smallest -nearest
neighbor distance, th heaviest edge in the MST and other spanning forest
type problems, problems involving upward closed set systems, and more. Finally,
we show how to extend our framework such that the linear running time bound
holds with high probability
A Contribution to Triangulation Algorithms for Simple Polygons
Decomposing simple polygon into simpler components is one of the basic tasks in computational geometry and its applications. The most important simple polygon decomposition is triangulation. The known algorithms for polygon triangulation can be classified into three groups: algorithms based on diagonal inserting, algorithms based on Delaunay triangulation, and the algorithms using Steiner points. The paper briefly explains the most popular algorithms from each group and summarizes the common features of the groups. After that four algorithms based on diagonals insertion are tested: a recursive diagonal inserting algorithm, an ear cutting algorithm, Kong’s Graham scan algorithm, and Seidel’s randomized incremental algorithm. An analysis concerning speed, the quality of the output triangles and the ability to handle holes is done at the end
Memory-Constrained Algorithms for Simple Polygons
A constant-workspace algorithm has read-only access to an input array and may
use only O(1) additional words of bits, where is the size of
the input. We assume that a simple -gon is given by the ordered sequence of
its vertices. We show that we can find a triangulation of a plane straight-line
graph in time. We also consider preprocessing a simple polygon for
shortest path queries when the space constraint is relaxed to allow words
of working space. After a preprocessing of time, we are able to solve
shortest path queries between any two points inside the polygon in
time.Comment: Preprint appeared in EuroCG 201
Guiding Dynamic Symbolic Execution Toward Unverified Program Executions
Most techniques to detect program errors, such as testing, code reviews, and static program analysis, do not fully verify all possible executions of a program. They leave executions unverified when they do not check certain properties, fail to verify properties, or check properties under certain unsound assumptions such as the absence of arithmetic overflow.
In this paper, we present a technique to complement partial verification results by automatic test case generation. In contrast to existing work, our technique supports the common case that the verification results are based on unsound assumptions. We annotate programs to reflect which executions have been verified, and under which assumptions. These annotations are then used to guide dynamic symbolic execution toward unverified program executions. Our main technical contribution is a code instrumentation that causes dynamic symbolic execution to abort tests that lead to verified executions, to prune parts of the search space, and to prioritize tests that cover more properties that are not fully verified. We have implemented our technique for the .NET static analyzer Clousot and the dynamic symbolic execution tool Pex. It produces smaller test suites (by up to 19.2%), covers more unverified executions (by up to 7.1%), and reduces testing time (by up to 52.4%) compared to combining Clousot and Pex without our technique
Property-aware program sampling
Monitoring or profiling programs provides us with an understanding for its further improvement and analysis. Typically, for monitoring or profiling, the program is instrumented to execute additional code that collects necessary data. However, a widely-understood problem with this approach is that program instrumentation can result in significant execution overhead. A number of techniques based on statistical sampling have been proposed to reduce this overhead. Statistical sampling based instrumentation techniques, although effective in reducing the overall overhead, often lead to poor coverage or incomplete results. The contribution of this work is a profiling technique that we call property-aware program sampling. Our sampling technique uses program slicing to reduce the scope of instrumentation and slice fragmentsto decompose large program slices into more manageable, logically related parts for instrumentation, thereby improving the scalability of monitoring and profiling techniques. The technical underpinnings of our work include the notion of slice fragments and an efficient technique for computing a reduced set of slice fragments
Improved algorithms for ear-clipping triangulation
We consider the problem of improving ear-slicing algorithm for triangulating a simple polygon. We propose two variations of ear-slicing technique for generating “good-quality” triangulation. The first approach is based on searching for the best triangle along the boundary. The second approach considers polygon partitioning on a pre-process before applying the ear-slicing. Experimental investigation reveals that both approaches yield better quality triangulation than the standard ear-slicing method
- …