2

I need to minimize the following sum:

minimize sum for all i{(i = 1 to n) fi(v(i), v(i - 1), tangent(i))}

v and tangent are vectors. fi takes the 3 vectors as arguments and returns a cost associated with these 3 vectors. For this function, v(i - 1) is the vector chosen in the previous iteration.
tangent(i) is also known. fi calculates the cost of choosing a vector v(i), given the other two vectors v(i - 1) and tangent(i). The v(0) and v(n) vectors are known. tangent(i) values are also known in advance for all
i = 0 to n.
My task is to determine all such v(i)s such that the total cost of the function values for i = 1 to n is minimized.
Can you please give me any ideas to solve this?
So far I can think of Branch and Bound or dynamic programming methods.

Thanks!

Eitan T
  • 32,660
  • 14
  • 72
  • 109
arg
  • 61
  • 4
  • 2
    I could not understand what is the unknown of this optimization problem. Is it the order of v vectors? Can you state the optimization problem more clearly. – Hakan Serce May 22 '12 at 19:12
  • Add some more detail on optimization here. "My task is to determine all such v(i)'s such that the total cost of the function values for i = 1 to n is minimized". I think we need some info about cost function here. Because selection of v(i) will affect selection of v(i+1). Hence the greedy strategy of minimizing at each step may not be optimal. Some more info on the cost function. – sukunrt May 22 '12 at 19:46
  • Yes the order of vectors is important and their values also. I basically need to find those i vectors which minimize the cost. v(i) gives the gaze direction for the ith point. tangent(i) gives the tangent to the path for the ith point. The cost function computes the sum of the angle between v(i-1) and v(i) and angle between v(i) and tangent(i). So i need to minimize this cost to ensure a smoothly varying gaze. Hope that clears up your points. – arg May 23 '12 at 05:14

1 Answers1

0

I think this is a problem in mathematical optimisation, with an objective function built up of dot products and arcCosines, subject to the constraint that your vectors should be unit vectors. You could enforce this either with Lagrange multipliers, or by including a normalising step in the arc-Cosine. If Ti is a unit vector then for Vi calculate cos^-1(Ti.Vi/sqrt(Vi.Vi)). I would have a go at using a conjugate gradient optimiser for this, or perhaps even Newton's method, with my starting point Vi = Ti.

I would hope that this would be reasonably tractable, because the Vi are only related to neighbouring Vi. You might even get somewhere by repeatedly adjusting each Vi in isolation, one by one, to optimise the objective function. It might be worth just seeing what happens if you repeatedly set Vi to be the average of Ti, Vi+1, and Vi-1, and then scaled Vi to be a unit vector again.

mcdowella
  • 19,301
  • 2
  • 19
  • 25