Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What's the algorithm complexity of DYCORS with CubicRBF? #13

Closed
ili3p opened this issue Jul 8, 2016 · 4 comments
Closed

What's the algorithm complexity of DYCORS with CubicRBF? #13

ili3p opened this issue Jul 8, 2016 · 4 comments

Comments

@ili3p
Copy link

ili3p commented Jul 8, 2016

Thanks

@ili3p ili3p changed the title What's the algorithm complexity of DYCORS + CubicRBF? What's the algorithm complexity of DYCORS with CubicRBF? Jul 8, 2016
@ili3p
Copy link
Author

ili3p commented Jul 9, 2016

Is it O(N^3) where N is the number of points the RBF interpolant uses to build the surface?

@dme65
Copy link
Owner

dme65 commented Jul 18, 2016

pySOT is currently solving the entire RBF system from scratch each time, so each iteration is O(n^3). This adds up to O(n^4). It's possible to do each iteration in O(n^2) by updating the LU-factorization of the RBF system incrementally and that's something that I can easily add to the code. This gives you the desired O(n^3) complexity.

@ili3p
Copy link
Author

ili3p commented Jul 19, 2016

Then why is Kriging slower?
From the documentation

By default we recommend the CubicRBFSurface (with capping if necessary). We recommend not using Kriging since it is very slow.

Gaussian processes are generally considered slow since the inference time grows cubically in the number of observations, as it necessitates the inversion of a dense covariance matrix. But if RBF is also cubic, I don't see where is the difference. Can you please explain to me?

Thanks

@dme65
Copy link
Owner

dme65 commented Jul 21, 2016

Good question. I'm not that familiar with Kriging and I'm not sure if I can be very helpful without looking at the Kriging implementation that we rely on: https://github.com/capaulson/pyKriging. From numerical tests it looks like Kriging is at least an order of magnitude slower than RBFs.

@dme65 dme65 closed this as completed Jul 29, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants