algorithm - Use dynamic programming to find a polygonal chain that best fits a set of data points -
The question is said as the following:
Looking at the sequence of digits p_1 = ( x_1, y_1), ..., p_n = (x_n, y_n) and by it the x-coordinate (i.e. x_1 & lt; x_2 & lt; ... & lt; x_n) from left to right and 1 and n Between a number q we want that P1 to PN With the K-edges from the PN, which goes from left to right, want to reduce the sum of the vertical distance of the series points . O (n ^ 3) Design a dynamic programming algorithm to solve the problem in time. The method to calculate the sum of the vertical distance of p_a + 1 points. . , p_ap_b for line through p_b_ 1 is given by F (A, B). Because of testing for me It is difficult to write an example, so I do not know if my answer is correct or not. The answer is as follows: First of all, I define polygon chain interval on the PE of [i, j] = PI, the minimum sum of the vertical distance. And the answer should be C [N, K]. For the base case, I define c [i, 0] = 0 and c [i, j] = + infinity when j & gt; = I. For the recursive formula, I see C [i, j] = minimum (1 l; i) {c, p, j-1] + f (p, i)} < / P> Is anything wrong in my answer? Thank you. example where the point is better to use 2 Points for a series with numbers in The solution to the problem without any restriction, I think that in this problem, it is expected to be from Update is similar to the Lower Records original, such as j_random_hacker has been mentioned. I think it's better to define a slightly different function. Define the minimum cost of the chain between There are different recomputations that can be used. This is the 'length' of the last edge: P for a series ( set of
p_i ).
P = {(0, 0), (1, 1), (3, 1), (4, 0)} k = 2 + (2,2) * (1, 1) * (3,1) * (0,0) * (4,0)
P Both have
f (1,4) = 2/3 .
(2, 2) returns the series point as
f (1,4) = 0 .
P , is difficult to describe in a DP manner. It looks like a problem of regression with many obstacles.
P for series points.
p_a and
p_b with the
e edges
C (A, B, E) . The answer to our problem is
C (1, n, k) .
c (a, b, 1) = f (a, b) c (a, a + i, i) = 0 c (a, b, k) = inf, k & Gt; B-A
c (a, b, k + 1) = minutes (c (a, c, k) + c (i, b, 1) ), I for a + k, b-1
Comments
Post a Comment