Logo ROOT   6.07/09
Reference Guide
TGondzioSolver.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_TGondzioSolver
44 #define ROOT_TGondzioSolver
45 
46 #include "TQpSolverBase.h"
47 
48 ///////////////////////////////////////////////////////////////////////////
49 // //
50 // Derived class of TQpSolverBase implementing Gondzio-correction //
51 // version of Mehrotra's original predictor-corrector algorithm. //
52 // //
53 ///////////////////////////////////////////////////////////////////////////
54 
56 {
57 
58 protected:
59 
60  Int_t fPrintlevel; // parameter in range [0,100] determines verbosity. (Higher value
61  // => more verbose.)
62  Double_t fTsig; // exponent in Mehrotra's centering parameter, which is usually
63  // chosen to me (muaff/mu)^tsig, where muaff is the predicted
64  // complementarity gap obtained from an affine-scaling step, while
65  // mu is the current complementarity gap
66 
67  Int_t fMaximum_correctors; // maximum number of Gondzio corrector steps
68 
69  Int_t fNumberGondzioCorrections; // actual number of Gondzio corrections needed
70 
71  Double_t fStepFactor0; // various parameters associated with Gondzio correction
76 
77  TQpVar *fCorrector_step; // storage for step vectors
79 
80  TQpResidual *fCorrector_resid; // storage for residual vectors
81 
83 
84 public:
85 
88  TGondzioSolver(const TGondzioSolver &another);
89 
90  virtual ~TGondzioSolver();
91 
92  virtual Int_t Solve (TQpDataBase *prob,TQpVar *iterate,TQpResidual *resid);
93 
94  virtual void Reset_parameters() {} // reset parameters to their default values
95 
96  virtual void DefMonitor (TQpDataBase *data,TQpVar *vars,TQpResidual *resids,
98  Int_t status_code,Int_t level);
99 
100  TGondzioSolver &operator=(const TGondzioSolver &source);
101 
102  ClassDef(TGondzioSolver,1) // Gondzio Qp Solver class
103 };
104 #endif
int iterate(rng_state_t *X)
Definition: mixmax.icc:34
TGondzioSolver()
Default constructor.
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...
int Int_t
Definition: RtypesCore.h:41
virtual void Reset_parameters()
Double_t fAcceptTol
Int_t fNumberGondzioCorrections
#define ClassDef(name, id)
Definition: Rtypes.h:254
Double_t fBeta_max
Double_t fStepFactor0
const Double_t sigma
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...
TQpResidual * fCorrector_resid
bool verbose
Int_t fMaximum_correctors
double Double_t
Definition: RtypesCore.h:55
TGondzioSolver & operator=(const TGondzioSolver &source)
Assignment operator.
Double_t fBeta_min
Definition: TQpVar.h:65
Double_t fStepFactor1
virtual ~TGondzioSolver()
Deconstructor.
TQpProbBase * fFactory
TQpVar * fCorrector_step