Clp 1.17.5
Loading...
Searching...
No Matches
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
19public:
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
60
62
64 ClpLinearObjective(const double *objective, int numberColumns);
65
71 ClpLinearObjective(const ClpLinearObjective &rhs, int numberColumns,
72 const int *whichColumns);
73
76
79
81 virtual ClpObjective *clone() const;
85 virtual ClpObjective *subsetClone(int numberColumns,
86 const int *whichColumns) const;
87
89
90 //---------------------------------------------------------------------------
91
92private:
95 double *objective_;
99};
100
101#endif
102
103/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
104*/
Linear Objective Class.
virtual void reallyScale(const double *columnScale)
Scale objective.
virtual ClpObjective * subsetClone(int numberColumns, const int *whichColumns) const
Subset clone.
int numberColumns_
number of columns
ClpLinearObjective(const ClpLinearObjective &)
Copy constructor.
virtual double * gradient(const ClpSimplex *model, const double *solution, double &offset, bool refresh, int includeLinear=2)
Returns objective coefficients.
virtual ClpObjective * clone() const
Clone.
ClpLinearObjective()
Default Constructor.
virtual double reducedGradient(ClpSimplex *model, double *region, bool useFeasibleCosts)
Returns reduced gradient.Returns an offset (to be added to current one).
virtual ~ClpLinearObjective()
Destructor.
virtual void deleteSome(int numberToDelete, const int *which)
Delete columns in objective.
ClpLinearObjective(const double *objective, int numberColumns)
Constructor from objective.
virtual void resize(int newNumberColumns)
Resize objective.
virtual double objectiveValue(const ClpSimplex *model, const double *solution) const
Return objective value (without any ClpModel offset) (model may be NULL)
ClpLinearObjective(const ClpLinearObjective &rhs, int numberColumns, const int *whichColumns)
Subset constructor.
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...
ClpLinearObjective & operator=(const ClpLinearObjective &rhs)
Assignment operator.
Objective Abstract Base Class.
This solves LPs using the simplex method.