I have read that Nelder Mead algorithm is working for unconstrained optimization. http://www.scholarpedia.org/article/Nelder-Mead_algorithm I think in Matlab Nelder Mead is used also for unconstrained optimization. However, I am a little bit confused, since I found a Java API for optimization http://www.ee.ucl.ac.uk/~mflanaga/java/Minimisation.html (Flanagan's Scientific Library) that has a class that implements Nelder Mead simplex and allows for defining constraints and bounds. So, is the version implemented in Flanagan's API a modified variation of the "classical" Nelder Mead algorithm?
It looks like the API is implementing a simple "soft" constraint system, where constraints are transformed into penalty functions which severely penalize regions outside the constraints. It's a cheap-and-cheerful way of adding constraints to an unconstrained solver, but there'll be a tradeoff between optimality, convergence, and the degree to which the constraints are satisfied.