How to Run PSO with Real Data
조회 수: 2 (최근 30일)
이전 댓글 표시
I want to use PSO to optimize a 3D problem using real data (lat, long, alt). How is this accomplished? I see in the examples and tutorials it is done against existing surface plots; Rosenbrock, Ackley, Griewank, etc.. How do I run it against real numbers?
R2020b
댓글 수: 0
답변 (2개)
Walter Roberson
2020년 9월 19일
You use whatever formula is appropriate. For example
d=load('In_Flight_Data.mat') ;
lat=d.lat;
long=d.long;
alt=d.alt;
fun = @(x) sum((x(1)-lat).^2 + (x(2)-long).^2 + (x(3)-tan(alt)).^2);
pso(fun, 3)
John D'Errico
2020년 9월 19일
You can't. That is, the optimal is just the optimal value at each point in your sample. You cannot do better than that, at least, not unless you are willing to build a model of the process.
So, what are you willing to do in terms of a model? What do you know? What are you willing to assume? If you cannot build a model, then you cannot do any form of optimization that will have some chance of being better than the best point from your data.
If your data is at all noisy, then don't expect to do well of course. But one option might be to use an interpolating spline surface model. Again, noise will totally destroy any spline fit, making it useless for this purpose.
댓글 수: 7
Walter Roberson
2020년 9월 22일
When you use PSO, you hope to get out a vector of values. What properties do you want for the vector of values?
참고 항목
카테고리
Help Center 및 File Exchange에서 Cast and Quantize Data에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!