blob: d4b7b685c6fa46352bd5ee7bfc23bd1e527be37e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
/* $Id: CbcHeuristicDiveCoefficient.hpp 1899 2013-04-09 18:12:08Z stefan $ */
// Copyright (C) 2008, International Business Machines
// Corporation and others. All Rights Reserved.
// This code is licensed under the terms of the Eclipse Public License (EPL).
#ifndef CbcHeuristicDiveCoefficient_H
#define CbcHeuristicDiveCoefficient_H
#include "CbcHeuristicDive.hpp"
/** DiveCoefficient class
*/
class CbcHeuristicDiveCoefficient : public CbcHeuristicDive {
public:
// Default Constructor
CbcHeuristicDiveCoefficient ();
// Constructor with model - assumed before cuts
CbcHeuristicDiveCoefficient (CbcModel & model);
// Copy constructor
CbcHeuristicDiveCoefficient ( const CbcHeuristicDiveCoefficient &);
// Destructor
~CbcHeuristicDiveCoefficient ();
/// Clone
virtual CbcHeuristicDiveCoefficient * clone() const;
/// Assignment operator
CbcHeuristicDiveCoefficient & operator=(const CbcHeuristicDiveCoefficient& rhs);
/// Create C++ lines to get to current state
virtual void generateCpp( FILE * fp) ;
/// Selects the next variable to branch on
/** Returns true if all the fractional variables can be trivially
rounded. Returns false, if there is at least one fractional variable
that is not trivially roundable. In this case, the bestColumn
returned will not be trivially roundable.
*/
virtual bool selectVariableToBranch(OsiSolverInterface* solver,
const double* newSolution,
int& bestColumn,
int& bestRound);
};
#endif
|