Cgl  0.60.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ClpLinearObjective.hpp
Go to the documentation of this file.
1 /* $Id: ClpLinearObjective.hpp 2385 2019-01-06 19:43:06Z unxusr $ */
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 ClpLinearObjective_H
7 #define ClpLinearObjective_H
8 
9 #include "ClpObjective.hpp"
10 
11 //#############################################################################
12 
18 
19 public:
21 
22 
27  virtual double *gradient(const ClpSimplex *model,
28  const double *solution, double &offset, bool refresh,
29  int includeLinear = 2);
32  virtual double reducedGradient(ClpSimplex *model, double *region,
33  bool useFeasibleCosts);
40  virtual double stepLength(ClpSimplex *model,
41  const double *solution,
42  const double *change,
43  double maximumTheta,
44  double &currentObj,
45  double &predictedObj,
46  double &thetaObj);
48  virtual double objectiveValue(const ClpSimplex *model, const double *solution) const;
50  virtual void resize(int newNumberColumns);
52  virtual void deleteSome(int numberToDelete, const int *which);
54  virtual void reallyScale(const double *columnScale);
55 
57 
59 
62 
64  ClpLinearObjective(const double *objective, int numberColumns);
65 
71  ClpLinearObjective(const ClpLinearObjective &rhs, int numberColumns,
72  const int *whichColumns);
73 
76 
78  virtual ~ClpLinearObjective();
79 
81  virtual ClpObjective *clone() const;
85  virtual ClpObjective *subsetClone(int numberColumns,
86  const int *whichColumns) const;
87 
89 
90  //---------------------------------------------------------------------------
91 
92 private:
95  double *objective_;
99 };
100 
101 #endif
102 
103 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
104 */
virtual void resize(int newNumberColumns)
Resize objective.
int numberColumns_
number of columns
Objective Abstract Base Class.
virtual ClpObjective * clone() const
Clone.
virtual double * gradient(const ClpSimplex *model, const double *solution, double &offset, bool refresh, int includeLinear=2)
Returns objective coefficients.
virtual double reducedGradient(ClpSimplex *model, double *region, bool useFeasibleCosts)
Returns reduced gradient.Returns an offset (to be added to current one).
ClpLinearObjective()
Default Constructor.
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:106
Linear Objective Class.
virtual ~ClpLinearObjective()
Destructor.
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...
virtual void reallyScale(const double *columnScale)
Scale objective.
virtual void deleteSome(int numberToDelete, const int *which)
Delete columns in objective.
virtual ClpObjective * subsetClone(int numberColumns, const int *whichColumns) const
Subset clone.
ClpLinearObjective & operator=(const ClpLinearObjective &rhs)
Assignment operator.
virtual double objectiveValue(const ClpSimplex *model, const double *solution) const
Return objective value (without any ClpModel offset) (model may be NULL)