Hi, I'm new to Matlab and also to optimization problems. I need help on an optimization problem. The problem is as follows:
find x=(est_pos_1, ... est_pos_n) minimizing the sum of squared difference between elements in matrix A and B where: a_ij = 1 if Euclidean distance between est_pos_i and est_pos_j is less than constant R and 0 otherwise, 0 < i, j < m + n, m is number of points with known position, n of points with unknown positions to be estimated, b_ij = 1 if Euclidean distance between actual_pos_i and actual_pos_j is less than R and 0 otherwise. Matrix B is given.
I tried solving it using Particle Swarm Optimization with poor success, i.e. the error between the estimated and actual positions is high.
No products are associated with this question.
No, you can't use the Optimization Toolbox. The solvers in the Toolbox are smooth algorithms (except for bintprog) and therefore apply to differentiable functions.
However, your matrix A, and therefore the objective function overall, is a piecewise constant, non-differentiable, function of x. The piecewise constant behavior will also mean that the objective function is flat almost everywhere, making almost every point a local minimum where the optimization can get stuck.