Commit Graph

13 Commits

Author SHA1 Message Date
Alex Leontiev
3ac3ba0415 Minor fixes
Fix failed builds that opencv's buildbot has got.
2013-09-28 22:33:13 +08:00
Alex Leontiev
891bcd8491 Finish implementing the Nonlinear Conjugate Gradient
Now everything is prepared for the pull request.
2013-09-28 15:20:45 +08:00
Alex Leontiev
581d454536 Refined interface for Conjugate Gradient
Some interface was refined (most notably, the method for returning
Hessian was removed and the method for getting gradient was added as
optional to base Solver::Function class) and basic code for
setters/getters was added. Now is the time for the real work on an
algorithm.
2013-09-22 00:27:00 +08:00
Alex Leontiev
eb1333d0a8 Initial commit for Conjugate Gradient method
Implementation is based on
http://www.cs.cmu.edu/~quake-papers/painless-conjugate-gradient.pdf

So far we only have basic interface and empty test. But it compiles at
least.
2013-09-20 15:12:48 +08:00
Alex Leontiev
11fa0651c6 Minor fixes
As the opencv's build-bot did not want to compile this revision, I had
to do some changes. In particular,
1) Removed unsigned int vs int comparisons, that were treated as errors
2) Removed unused variables and functions
3) Removed functions without previous declaration
4) Fixed whitespaces
2013-09-10 13:53:26 +08:00
Alex Leontiev
ccc71ac190 Primal-dual algorithm
This is an implementation of primal-dual algorithm, based on the C++
source code by Vadim Pisarevsky. It was extended to handle the denoising
based on multiple observations. It also contains documentation and
tests.
2013-09-10 13:53:26 +08:00
Alex Leontiev
f2fd0ad153 Fixed .rst indentation
This caused warnings.
2013-08-30 21:37:27 +08:00
Alex Leontiev
b1f029ccc5 Removed trailing spaces
This caused warnings.
2013-08-30 21:35:47 +08:00
Alex Leontiev
554e002747 Prepare Downhill Simplex for pull request
This is an implementation of so-called downhill simplex method
(https://en.wikipedia.org/wiki/Nelder%E2%80%93Mead_method)

Please, let me know if you have any comments, whoever you'd be.
2013-08-30 21:35:47 +08:00
Alex Leontiev
6db2596ca9 Convenience fixes
Attempting to fix issues pointed out by Vadim Pisarevsky during the pull
request review. In particular, the following things are done:
*) The mechanism of debug info printing is changed and made more
procedure-style than the previous macro-style
*) z in solveLP() is now returned as a column-vector
*) Func parameter of solveLP() is now allowed to be column-vector, in
which case it is understood to be the transpose of what we need
*) Func and Constr now can contain floats, not only doubles (in the
former case the conversion is done via convertTo())
*)different constructor to allocate space for z in solveLP() is used,
making the size of z more explicit (this is just a notation change, not
functional, both constructors are achieving the same goal)
*) (big) mat.hpp and iostream headers are moved to precomp-headers from
optim.hpp
2013-07-11 22:05:14 +03:00
Alex Leontiev
a95650111f Cleaning the code of simplex method
In particular, the following things are done:
*) Consistent tabulation of 4 spaces is ensured
*) New function dprintf() is introduced, so now printing of the debug
information can be turned on/off via the ALEX_DEBUG macro
*) Removed solveLP_aux namespace
*) All auxiliary functions are declared as static
*) The return codes of solveLP() are encapsulated in enum.
2013-07-10 20:11:52 +03:00
Alex Leontiev
f41b8b90ff Blank module and first draft of solver API.
At this point we have a skeleton of a new module (optim) which can
barely compile properly (unlike previous commit). Besides, there is a
first draft of solver and lpsolver (linear optimization solver) in this
commit.
2013-06-20 14:54:09 +03:00
Alex Leontiev
47ce461d97 The initial commit for generic optimization
Generic optimization package for openCV project, will be developed
between the June and September of 2013. This work is funded by Google
Summer of Code 2013 project. This project is about
implementing several algorithms, that will find global maxima/minima of a
given function on a given domain subject to a given constraints.

All comments/suggestions are warmly appreciated and to be sent to
alozz1991@gmail.com (please, mention the word "openCV" in topic of
message, for I'm using the spam-filters)
2013-05-31 07:39:15 +03:00