18 comments

[ 3.8 ms ] story [ 26.9 ms ] thread
Who are your target users?
Getting errors trying to run the default expression. HN Effect already?
Can you please be more specific about the class of expressions you can optimize in the title?

It is CLEARLY not any mathematical expression, which means that this is clickbait.

I don't want to pour cold water on someone's hobby project if that is what it is.

It is quite obvious however that website's description was written by someone who has not actually studied optimization theory or numerical mathematics (my fields of study). I worked with large-scale nonlinear nonconvex problems for over a decade, and there is much more to getting it to work for practical real-world models than this.

I'm sorry but this doesn't make any sense to me. Optimizing mathematical expressions is not a very useful thing to do, and whenever you need it, you'll likely have a derivable function, for which gradient based optimization is much faster.

But most importantly, this can't be applied to arbitrary computer functions that you can't have a closed formula for.

Also finding a library that does optimization where I can pass a function pointer is usually easy to find in any language.

Maybe I'm wrong, but as far as I'm concerned, I'll never use that service.

This is a bit nitpicky, but so you're aware: the term is differentiable, not derivable. You differentiate a function, you don't derive it.
Essa é uma questão lingüística, não matemática.

Em português há uma diferença diminuta de sentido entre "diferenciável" e "derivável" (na Análise Matemática mesmo), mas não recordo mais qual.

O inglês sendo o idioma mutante que é, talvez acabe absorvendo essa diferença de nomenclaturas dessa forma: derivable x differentiable.

I understand that it is simply a difference of language and that the intent is the same, but in mathematics precision of language is incredibly important. This is a common error in English.
I just want to reflect on the irony of your having no trouble replying to a comment in Portuguese about how it's important to use the right term. This whole thing has brightened my day.
(comment deleted)
Translation:

That's a linguistic question, not a mathematics one.

In Portuguese there's a very small difference between "differentiable" and "derivable" (in the context of Math Analysis), but I don't recall it.

English being a mutable language, may end up absorbing the difference between nomenclatures in that way (??): derivable x differentiable.

Translation:

That's a linguistic question, not a mathematics one.

In Portuguese there's a very small difference between "differentiable" and "derivable" (in the context of Math Analysis), but I don't recall it.

English being a mutable language, may end up absorbing the difference between nomenclatures in that way (??): derivable x differentiable.

Sorry French guy here. Wrong translation . Thanks for pointing out
Are you serious? https://en.wikipedia.org/wiki/Mathematical_optimization

Just using gradient based descent can not achieve much with non-convex functions.

I don't think that the GP meant "optimize by gradient descent." I think the intention was in saying that a problem that is differentiable (or sub-differentiable, if locally convex, say) gives a lot more structure to the program than a general non-differentiable one.

Yes, while optimizing both might still be NP-hard (e.g. an ILP vs. an arbitrary polynomial, say, both of which are non-convex), we usually don't have nearly as much problem optimizing differentiable programs of the same size as some combinatorial optimization problems simply because the structure allowed by the differentiable one is so much nicer and we can find local minima without a problem (which is usually enough for most practical cases).

Neat!

There seems to be some slight bugs with the input being not read correctly but this is kind of cool.

> A (future) extension of this app is the optimisation of functions which cannnot be writted as mathematical expressions (such as a PDE model) by using user-input values of some points of the function to optimise. If this is particularly interesting to you don't hesitate to send a mail.

This is an interesting venue, but how would you go about this without solving the PDE model, itself? I work in a similar area of manifold learning, where our objective is a functional of a solution to a PDE (which is, in some sense, a generalization of that idea), but there seems to be no obvious way of optimizing this program without solving for at least the eigenfunctions of the PDE. I'd be curious to hear what the author has in mind.

Additionally, I'm also curious as to what algorithms are being used; derivative-free (incl. subgradient-free) methods are usually quite sub-optimal for most classes of problems that I know of, but I'm not sure what the intended audience is, here, so perhaps this would perform quite well in those cases?

Anyways, I'd love to test it! But I think HN gave the page the hug-of-death so it's giving me an error...

Looks good, but it is just another NLP solver in a sea of mature and tested solver implementations. It will be interesting to get the answers for the below questions:

- What is the algorithm being used?

- How does it compare with other mature optimization engines: e.g. IPOPT, Knitro SNOPT, NPSOL, etc,...

- Has the results been published somewhere? Or does there exist a compilation of results on standard benchmarks?