HiveBrain v1.2.0
Get Started
← Back to all entries
patternMinor

Covering a polygon with n circular rings

Submitted by: @import:stackexchange-cs··
0
Viewed 0 times
withcircularcoveringpolygonrings

Problem

Question 1: Why we can/can't solve the following problem using a geometric constraint solver?

Question 2: Is there any algorithm to solve this problem?

Question 3: Can we reduce this problem into some known computational problems?

Input:

  1. $C_1, ..., C_n$: Centres of $n$ circular rings.



  1. $S$: A polygon of arbitrary shape in the 2D plane.



Notations:

  1. $(OR_i, IR_i)$: outer radii and inner radii respectively for circular ring $i$



  1. $R = \text{ring}_1 \cap \dots \cap \text{ring}_n$: the intersection of the rings (i.e., the region of space formed by their intersection: the set of points that are contained in all $n$ of the rings)



Output:

Find $(OR_1, IR_1),..., (OR_n, IR_n)$, such that region $R$ covers the polygon $S$ with minimal error area.

Error area is defined as:
$$\text{Area}(S - R) + \text{Area}(R -S)$$

Intuitively, I want an algorithm to find optimal $(OR, IR)$ for each ring to cover a given shape $S$, so the error area (the parts of $R$ outside the given shape: [$\text{Area}(R - S)$] + the parts of the shape not covered by $R$: [$\text{Area}(S - R)$]) is minimal.

The problem differs from this problem in following ways:

  • The polygon should be covered by the ring formed by two circles with same centre.



  • This is a simpler problem in the sense that it has fewer variables. The position of the centres are given; we only need to find the inner and outer radii.

Solution

This problem might be hard to solve exactly. I would suggest you try gradient descent (or another mathematical optimization technique).

[ The stuff below here is obsolete, now that the question has been edited to change the problem statement along these lines. ]

Note that minimizing your error ratio is equivalent to minimizing

$$\text{Area}(S-R) + \text{Area}(R-S),$$

since $S$ is given (so $\text{Area}(S)$ is fixed). This observation does not seem to help very much, though.

Context

StackExchange Computer Science Q#45098, answer score: 2

Revisions (0)

No revisions yet.