Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TMehrotraSolver.h
Go to the documentation of this file.
1// @(#)root/quadp:$Id$
2// Author: Eddy Offermann May 2004
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12/*************************************************************************
13 * Parts of this file are copied from the OOQP distribution and *
14 * are subject to the following license: *
15 * *
16 * COPYRIGHT 2001 UNIVERSITY OF CHICAGO *
17 * *
18 * The copyright holder hereby grants you royalty-free rights to use, *
19 * reproduce, prepare derivative works, and to redistribute this software*
20 * to others, provided that any changes are clearly documented. This *
21 * software was authored by: *
22 * *
23 * E. MICHAEL GERTZ gertz@mcs.anl.gov *
24 * Mathematics and Computer Science Division *
25 * Argonne National Laboratory *
26 * 9700 S. Cass Avenue *
27 * Argonne, IL 60439-4844 *
28 * *
29 * STEPHEN J. WRIGHT swright@cs.wisc.edu *
30 * Computer Sciences Department *
31 * University of Wisconsin *
32 * 1210 West Dayton Street *
33 * Madison, WI 53706 FAX: (608)262-9777 *
34 * *
35 * Any questions or comments may be directed to one of the authors. *
36 * *
37 * ARGONNE NATIONAL LABORATORY (ANL), WITH FACILITIES IN THE STATES OF *
38 * ILLINOIS AND IDAHO, IS OWNED BY THE UNITED STATES GOVERNMENT, AND *
39 * OPERATED BY THE UNIVERSITY OF CHICAGO UNDER PROVISION OF A CONTRACT *
40 * WITH THE DEPARTMENT OF ENERGY. *
41 *************************************************************************/
42
43#ifndef ROOT_TMehrotraSolver
44#define ROOT_TMehrotraSolver
45
46#include "TQpSolverBase.h"
47
48///////////////////////////////////////////////////////////////////////////
49// //
50// Derived class of TQpSolverBase implementing the original Mehrotra //
51// predictor-corrector algorithm //
52// //
53///////////////////////////////////////////////////////////////////////////
54
56{
57protected:
58
59 Int_t fPrintlevel; // parameter in range [0,100] determines verbosity. (Higher value
60 // => more verbose.)
61 Double_t fTsig; // exponent in Mehrotra's centering parameter, which is usually
62 // chosen to me (muaff/mu)^tsig, where muaff is the predicted
63 // complementarity gap obtained from an affine-scaling step, while
64 // mu is the current complementarity gap
65
66 TQpVar *fStep; // storage for step vectors
67
69
70public:
71
73 TMehrotraSolver(TQpProbBase *of,TQpDataBase *prob,Int_t verbose=0);
74 TMehrotraSolver(const TMehrotraSolver &another);
75
76 virtual ~TMehrotraSolver();
77
78 virtual Int_t Solve (TQpDataBase *prob,TQpVar *iterate,TQpResidual *resid);
79 virtual void DefMonitor (TQpDataBase *data,TQpVar *vars,TQpResidual *resids,
81 Int_t status_code,Int_t level);
82
84
85 ClassDef(TMehrotraSolver,1) // Mehrotra Qp Solver class
86};
87#endif
double Double_t
Definition RtypesCore.h:59
#define ClassDef(name, id)
Definition Rtypes.h:325
Derived class of TQpSolverBase implementing the original Mehrotra predictor-corrector algorithm.
virtual Int_t Solve(TQpDataBase *prob, TQpVar *iterate, TQpResidual *resid)
Solve the quadratic programming problem as formulated through prob, store the final solution in itera...
TMehrotraSolver()
Default constructor.
TMehrotraSolver & operator=(const TMehrotraSolver &source)
Assignment operator.
virtual ~TMehrotraSolver()
Deconstructor.
virtual void DefMonitor(TQpDataBase *data, TQpVar *vars, TQpResidual *resids, Double_t alpha, Double_t sigma, Int_t i, Double_t mu, Int_t status_code, Int_t level)
Print information about the optimization process and monitor the convergence status of thye algorithm...
TQpProbBase * fFactory
Data for the general QP formulation.
Definition TQpDataBase.h:61
default general problem formulation:
Definition TQpProbBase.h:89
The Residuals class calculates and stores the quantities that appear on the right-hand side of the li...
Definition TQpResidual.h:62
The Solver class contains methods for monitoring and checking the convergence status of the algorithm...
Class containing the variables for the general QP formulation.
Definition TQpVar.h:60
const Double_t sigma
int iterate(rng_state_t *X)
Definition mixmax.icc:34