Clp  1.16.11
ClpQuadraticObjective.hpp
Go to the documentation of this file.
1 /* $Id: ClpQuadraticObjective.hpp 1665 2011-01-04 17:55:54Z lou $ */
2 // Copyright (C) 2003, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 // This code is licensed under the terms of the Eclipse Public License (EPL).
5 
6 #ifndef ClpQuadraticObjective_H
7 #define ClpQuadraticObjective_H
8 
9 #include "ClpObjective.hpp"
10 #include "CoinPackedMatrix.hpp"
11 
12 //#############################################################################
13 
19 
20 public:
21 
23 
24 
31  virtual double * gradient(const ClpSimplex * model,
32  const double * solution, double & offset, bool refresh,
33  int includeLinear = 2);
35 
37  virtual double reducedGradient(ClpSimplex * model, double * region,
38  bool useFeasibleCosts);
45  virtual double stepLength(ClpSimplex * model,
46  const double * solution,
47  const double * change,
48  double maximumTheta,
49  double & currentObj,
50  double & predictedObj,
51  double & thetaObj);
53  virtual double objectiveValue(const ClpSimplex * model, const double * solution) const ;
54  virtual void resize(int newNumberColumns) ;
56  virtual void deleteSome(int numberToDelete, const int * which) ;
58  virtual void reallyScale(const double * columnScale) ;
62  virtual int markNonlinear(char * which);
63 
65 
66 
68 
71 
74  const CoinBigIndex * start,
75  const int * column, const double * element,
76  int numberExtendedColumns_ = -1);
77 
87  const int * whichColumns) ;
88 
91 
94 
96  virtual ClpObjective * clone() const;
101  const int * whichColumns) const;
102 
105  const CoinBigIndex * start,
106  const int * column, const double * element,
107  int numberExtendedColumns = -1);
108  void loadQuadraticObjective ( const CoinPackedMatrix& matrix);
112 
114  inline CoinPackedMatrix * quadraticObjective() const {
116  return quadraticObjective_;
117  }
119  inline double * linearObjective() const {
120  return objective_;
121  }
123  inline int numberExtendedColumns() const {
124  return numberExtendedColumns_;
125  }
127  inline int numberColumns() const {
128  return numberColumns_;
129  }
131  inline bool fullMatrix() const {
132  return fullMatrix_;
133  }
135 
136  //---------------------------------------------------------------------------
137 
138 private:
141  CoinPackedMatrix * quadraticObjective_;
143  double * objective_;
145  double * gradient_;
147  int numberColumns_;
149  int numberExtendedColumns_;
151  bool fullMatrix_;
153 };
154 
155 #endif
ClpSimplex
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:70
ClpQuadraticObjective::quadraticObjective
CoinPackedMatrix * quadraticObjective() const
Quadratic objective.
Definition: ClpQuadraticObjective.hpp:115
ClpQuadraticObjective::clone
virtual ClpObjective * clone() const
Clone.
ClpObjective
Objective Abstract Base Class.
Definition: ClpObjective.hpp:19
ClpQuadraticObjective::resize
virtual void resize(int newNumberColumns)
Resize objective.
ClpQuadraticObjective::~ClpQuadraticObjective
virtual ~ClpQuadraticObjective()
Destructor.
ClpQuadraticObjective::ClpQuadraticObjective
ClpQuadraticObjective(const ClpQuadraticObjective &rhs, int numberColumns, const int *whichColumns)
Subset constructor.
ClpQuadraticObjective::subsetClone
virtual ClpObjective * subsetClone(int numberColumns, const int *whichColumns) const
Subset clone.
ClpQuadraticObjective::deleteSome
virtual void deleteSome(int numberToDelete, const int *which)
Delete columns in objective.
ClpQuadraticObjective::ClpQuadraticObjective
ClpQuadraticObjective(const double *linearObjective, int numberColumns, const CoinBigIndex *start, const int *column, const double *element, int numberExtendedColumns_=-1)
Constructor from objective.
ClpQuadraticObjective::numberExtendedColumns
int numberExtendedColumns() const
Length of linear objective which could be bigger.
Definition: ClpQuadraticObjective.hpp:123
ClpQuadraticObjective::markNonlinear
virtual int markNonlinear(char *which)
Given a zeroed array sets nonlinear columns to 1.
ClpQuadraticObjective::loadQuadraticObjective
void loadQuadraticObjective(const int numberColumns, const CoinBigIndex *start, const int *column, const double *element, int numberExtendedColumns=-1)
Load up quadratic objective.
ClpQuadraticObjective::reallyScale
virtual void reallyScale(const double *columnScale)
Scale objective.
ClpQuadraticObjective::linearObjective
double * linearObjective() const
Linear objective.
Definition: ClpQuadraticObjective.hpp:119
ClpQuadraticObjective::loadQuadraticObjective
void loadQuadraticObjective(const CoinPackedMatrix &matrix)
ClpQuadraticObjective::ClpQuadraticObjective
ClpQuadraticObjective()
Default Constructor.
ClpQuadraticObjective::operator=
ClpQuadraticObjective & operator=(const ClpQuadraticObjective &rhs)
Assignment operator.
ClpQuadraticObjective::ClpQuadraticObjective
ClpQuadraticObjective(const ClpQuadraticObjective &rhs, int type=0)
Copy constructor .
ClpQuadraticObjective::stepLength
virtual double stepLength(ClpSimplex *model, const double *solution, const double *change, double maximumTheta, double &currentObj, double &predictedObj, double &thetaObj)
Returns step length which gives minimum of objective for solution + theta * change vector up to maxim...
ClpQuadraticObjective::reducedGradient
virtual double reducedGradient(ClpSimplex *model, double *region, bool useFeasibleCosts)
Resize objective.
ClpQuadraticObjective::fullMatrix
bool fullMatrix() const
If a full or half matrix.
Definition: ClpQuadraticObjective.hpp:131
ClpQuadraticObjective::objectiveValue
virtual double objectiveValue(const ClpSimplex *model, const double *solution) const
Return objective value (without any ClpModel offset) (model may be NULL)
ClpQuadraticObjective::deleteQuadraticObjective
void deleteQuadraticObjective()
Get rid of quadratic objective.
ClpObjective.hpp
ClpQuadraticObjective::numberColumns
int numberColumns() const
Number of columns in quadratic objective.
Definition: ClpQuadraticObjective.hpp:127
ClpQuadraticObjective
Quadratic Objective Class.
Definition: ClpQuadraticObjective.hpp:18
ClpObjective::type
int type() const
Returns type (above 63 is extra information)
Definition: ClpObjective.hpp:98
ClpQuadraticObjective::gradient
virtual double * gradient(const ClpSimplex *model, const double *solution, double &offset, bool refresh, int includeLinear=2)
Returns gradient.