History log of /haiku/src/libs/linprog/ActiveSetSolver.cpp
Revision Date Author Comments
# 82fbed25 31-Aug-2012 czeidler <haiku@clemens-zeidler.de>

Move the soft inequalities directly into the solver.

- Clean up.


# c8b24e3e 29-Apr-2012 Alex Wilson <yourpalal2@gmail.com>

Fix BALMLayout archiving issues.

SharedSolver was archiving too many constraints, partly because of
multiple typos, also because it archived some which were just artifacts
of the layout process. These extra constraints are created when the
layout calls SetRange() on the left/top/right/bottom tabs during layout.

* LinearSpec/ActiveSetSolver had to be adjusted to get access to the
constraints added by the SetRange() calls.
* BALM::TabBase was adjusted to avoid a segfault during unarchiving,
caused by an unitialized member.
* ALMFriendLayoutTest was adjusted to include a more obvious custom
constraint for testing.


# fbd2dfcf 22-Jan-2012 Alex Wilson <yourpalal2@gmail.com>

Refactor ActiveSetSolver::Find{Min|Max}s().


# 419fe0b8 22-Jan-2012 Alex Wilson <yourpalal2@gmail.com>

Introduce SharedSolver class to improve BALMLayout's friend feature.


# 57d93f83 17-Jan-2012 Alex Wilson <yourpalal2@gmail.com>

Disable debug output by default in linprog.


# e4ff57c3 18-Jan-2012 czeidler <haiku@clemens-zeidler.de>

Use correct ALM variable index.

There is list of all variables and a list of variables used by contraints. When editing the min, max variable constraints access the
correct list.


# 056207ee 29-Nov-2011 czeidler <haiku@clemens-zeidler.de>

Cleanup the constraint solver a bit and fix a bug when a variable is removed.


# 6c7a658d 17-Jun-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add support for soft inequality constraints for quadratic solvers. A slack variable is used in a normal hard inequality and the slack variable is minimized with a high penalty. In this way the constraint is only violated when necessary. Some smaller clean up.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42225 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3d253717 08-Feb-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Don't copy the constraint list, just use a pointer to the list.

There was a strange crash under gcc4. After some searching I found out that there is some clash with namespaces.
After removing the namespaces it works again. Could somebody explain what went wrong there?



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40386 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d339d2ae 31-Jan-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Don't add soft constraints to the active constraints. Fix some smaller stuff.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40339 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0ad88e0 26-Jan-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix min/ max calculation by removing all soft constraints before doing so. Smaller fixes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40297 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7583db5a 24-Jan-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add an alternative solver to lp_solve. The solver based on Ingo's active set solver but is able to handle arbitrary hard and soft constraints. The advantage to lp_solve is that the active set solver can optimize variable in respect to a quadratic objective function. This makes it possible to minimise the quadratic derivation to a desired value e.g. \Sum_i(x_i - x_{i,pref})^2 -> min.

The solver part has been refactored in this way that both solver can be used with the same layout specifications. The active set solver is default now; the performance is not as good as lp_solve, though.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40285 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 82fbed2596bef370bc003ed4de174234be0787b3 31-Aug-2012 czeidler <haiku@clemens-zeidler.de>

Move the soft inequalities directly into the solver.

- Clean up.


# c8b24e3eb51bac128f5eeb0a5a22a60b69a1a53e 29-Apr-2012 Alex Wilson <yourpalal2@gmail.com>

Fix BALMLayout archiving issues.

SharedSolver was archiving too many constraints, partly because of
multiple typos, also because it archived some which were just artifacts
of the layout process. These extra constraints are created when the
layout calls SetRange() on the left/top/right/bottom tabs during layout.

* LinearSpec/ActiveSetSolver had to be adjusted to get access to the
constraints added by the SetRange() calls.
* BALM::TabBase was adjusted to avoid a segfault during unarchiving,
caused by an unitialized member.
* ALMFriendLayoutTest was adjusted to include a more obvious custom
constraint for testing.


# fbd2dfcf173cb1d2d809efdf2b83e3a202e021e3 22-Jan-2012 Alex Wilson <yourpalal2@gmail.com>

Refactor ActiveSetSolver::Find{Min|Max}s().


# 419fe0b8ae0e16d798868eeebf0282978deb224d 22-Jan-2012 Alex Wilson <yourpalal2@gmail.com>

Introduce SharedSolver class to improve BALMLayout's friend feature.


# 57d93f836d5187c8029a749bb2dc20a1f0344c8f 17-Jan-2012 Alex Wilson <yourpalal2@gmail.com>

Disable debug output by default in linprog.


# e4ff57c33f99608310f257d09cccf606f2b296c3 18-Jan-2012 czeidler <haiku@clemens-zeidler.de>

Use correct ALM variable index.

There is list of all variables and a list of variables used by contraints. When editing the min, max variable constraints access the
correct list.


# 056207eedd7703fb5d2941ef2a007c883deaab25 29-Nov-2011 czeidler <haiku@clemens-zeidler.de>

Cleanup the constraint solver a bit and fix a bug when a variable is removed.


# 6c7a658d1c50c9776f99c34185f7e447f4db17bd 17-Jun-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add support for soft inequality constraints for quadratic solvers. A slack variable is used in a normal hard inequality and the slack variable is minimized with a high penalty. In this way the constraint is only violated when necessary. Some smaller clean up.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42225 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3d25371741ee3df729b2318736ca10c2a242ce0f 08-Feb-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Don't copy the constraint list, just use a pointer to the list.

There was a strange crash under gcc4. After some searching I found out that there is some clash with namespaces.
After removing the namespaces it works again. Could somebody explain what went wrong there?



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40386 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d339d2ae8f08ea1568aa0a34565bdf20edb4510f 31-Jan-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Don't add soft constraints to the active constraints. Fix some smaller stuff.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40339 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0ad88e0020787e69b41080af9d707db42aad924 26-Jan-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix min/ max calculation by removing all soft constraints before doing so. Smaller fixes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40297 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7583db5a1ec81636829331e5fc7cae81ca7a7ba7 24-Jan-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add an alternative solver to lp_solve. The solver based on Ingo's active set solver but is able to handle arbitrary hard and soft constraints. The advantage to lp_solve is that the active set solver can optimize variable in respect to a quadratic objective function. This makes it possible to minimise the quadratic derivation to a desired value e.g. \Sum_i(x_i - x_{i,pref})^2 -> min.

The solver part has been refactored in this way that both solver can be used with the same layout specifications. The active set solver is default now; the performance is not as good as lp_solve, though.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40285 a95241bf-73f2-0310-859d-f6bbb57e9c96