MinConGenLin Class |
Namespace: Imsl.Math
The MinConGenLin type exposes the following members.
Name | Description | |
---|---|---|
MinConGenLin |
Constructor for MinConGenLin.
|
Name | Description | |
---|---|---|
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetFinalActiveConstraints |
Returns the indices of the final active constraints.
| |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetLagrangeMultiplierEstimate |
Returns the Lagrange multiplier estimates of the final active
constraints.
| |
GetSolution |
Returns the computed solution.
| |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
SetGuess |
Sets an initial guess of the solution.
| |
Solve |
Minimizes a general objective function subject to linear
equality/inequality constraints.
| |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
Name | Description | |
---|---|---|
FinalActiveConstraintsNum |
Returns the final number of active constraints.
| |
NumberOfProcessors |
Perform the parallel calculations with the maximum possible number of
processors set to NumberOfProcessors.
| |
ObjectiveValue |
Returns the value of the objective function.
| |
Parallel |
Enable or disable performing MinConGenLin.IFunctionn.F in parallel.
| |
Tolerance |
The nonnegative tolerance on the first order conditions at the
calculated solution.
|
The class MinConGenLin is based on M.J.D. Powell's TOLMIN, which solves linearly constrained optimization problems, i.e., problems of the form
subject to
given the vectors , , , and and the matrices and .
The algorithm starts by checking the equality constraints for inconsistency and redundancy. If the equality constraints are consistent, the method will revise , the initial guess, to satisfy
Next, is adjusted to satisfy the simple bounds and inequality constraints. This is done by solving a sequence of quadratic programming subproblems to minimize the sum of the constraint or bound violations.
Now, for each iteration with a feasible , let be the set of indices of inequality constraints that have small residuals. Here, the simple bounds are treated as inequality constraints. Let be the set of indices of active constraints. The following quadratic programming problem
subject to
is solved to get where is a row vector representing either a constraint in or or a bound constraint on x. In the latter case, the for the bound constraint and for the constraint . Here, is a vector with 1 as the i-th component, and zeros elsewhere. Variables are the Lagrange multipliers, and is a positive definite approximation to the second derivative .
After the search direction is obtained, a line search is performed to locate a better point. The new point has to satisfy the conditions
and
The main idea in forming the set is that, if any of the equality constraints restricts the step-length , then its index is not in . Therefore, small steps are likely to be avoided.
Finally, the second derivative approximation , is updated by the BFGS formula, if the condition
holds. Let , and start another iteration.
The iteration repeats until the stopping criterion
is satisfied. Here is the supplied tolerance. For more details, see Powell (1988, 1989).