Osi  0.107.9
OsiChooseVariable.hpp
Go to the documentation of this file.
1 // Copyright (C) 2006, International Business Machines
2 // Corporation and others. All Rights Reserved.
3 // This code is licensed under the terms of the Eclipse Public License (EPL).
4 
5 #ifndef OsiChooseVariable_H
6 #define OsiChooseVariable_H
7 
8 #include <string>
9 #include <vector>
10 
11 #include "CoinWarmStartBasis.hpp"
12 #include "OsiBranchingObject.hpp"
13 
14 class OsiSolverInterface;
15 class OsiHotInfo;
16 
34 
35 public:
36 
39 
42 
45 
48 
50  virtual OsiChooseVariable * clone() const;
51 
53  virtual ~OsiChooseVariable ();
54 
59  virtual int setupList ( OsiBranchingInformation *info, bool initialize);
73  virtual int chooseVariable( OsiSolverInterface * solver, OsiBranchingInformation *info, bool fixVariables);
75  virtual bool feasibleSolution(const OsiBranchingInformation * info,
76  const double * solution,
77  int numberObjects,
78  const OsiObject ** objects);
80  void saveSolution(const OsiSolverInterface * solver);
84  virtual void updateInformation( const OsiBranchingInformation *info,
85  int branch, OsiHotInfo * hotInfo);
86 #if 1
87  virtual void updateInformation( int whichObject, int branch,
89  double changeInObjective, double changeInValue,
90  int status);
91 #endif
92  inline double goodObjectiveValue() const
94  { return goodObjectiveValue_;}
96  inline double upChange() const
97  { return upChange_;}
99  inline double downChange() const
100  { return downChange_;}
102  inline const double * goodSolution() const
103  { return goodSolution_;}
105  inline int bestObjectIndex() const
106  { return bestObjectIndex_;}
108  inline void setBestObjectIndex(int value)
109  { bestObjectIndex_ = value;}
111  inline int bestWhichWay() const
112  { return bestWhichWay_;}
114  inline void setBestWhichWay(int value)
115  { bestWhichWay_ = value;}
117  inline int firstForcedObjectIndex() const
118  { return firstForcedObjectIndex_;}
120  inline void setFirstForcedObjectIndex(int value)
121  { firstForcedObjectIndex_ = value;}
123  inline int firstForcedWhichWay() const
124  { return firstForcedWhichWay_;}
126  inline void setFirstForcedWhichWay(int value)
127  { firstForcedWhichWay_ = value;}
129  inline int numberUnsatisfied() const
130  {return numberUnsatisfied_;}
132  inline int numberStrong() const
133  { return numberStrong_;}
135  inline void setNumberStrong(int value)
136  { numberStrong_ = value;}
138  inline int numberOnList() const
139  { return numberOnList_;}
141  inline int numberStrongDone() const
142  { return numberStrongDone_;}
144  inline int numberStrongIterations() const
145  { return numberStrongIterations_;}
147  inline int numberStrongFixed() const
148  { return numberStrongFixed_;}
150  inline const int * candidates() const
151  { return list_;}
153  inline bool trustStrongForBound() const
154  { return trustStrongForBound_;}
156  inline void setTrustStrongForBound(bool yesNo)
157  { trustStrongForBound_ = yesNo;}
159  inline bool trustStrongForSolution() const
160  { return trustStrongForSolution_;}
162  inline void setTrustStrongForSolution(bool yesNo)
163  { trustStrongForSolution_ = yesNo;}
165  void setSolver (const OsiSolverInterface * solver);
177  inline int status() const
178  { return status_;}
179  inline void setStatus(int value)
180  { status_ = value;}
181 
182 
183 protected:
184  // Data
188  double upChange_;
190  double downChange_;
192  double * goodSolution_;
194  int * list_;
196  double * useful_;
199  /* Status -
200  -1 Node is infeasible
201  0 Normal termination - we have a candidate
202  1 All looks satisfied - no candidate
203  2 We can change the bound on a variable - but we also have a strong branching candidate
204  3 We can change the bound on a variable - but we have a non-strong branching candidate
205  4 We can change the bound on a variable - no other candidates
206  */
207  int status_;
233 };
234 
241 protected:
242  // Data
244  double * upTotalChange_;
248  int * upNumber_;
250  int * downNumber_;
255 
256 private:
257  void gutsOfDelete();
258  void gutsOfCopy(const OsiPseudoCosts& rhs);
259 
260 public:
262  virtual ~OsiPseudoCosts();
265 
267  inline int numberBeforeTrusted() const
268  { return numberBeforeTrusted_; }
270  inline void setNumberBeforeTrusted(int value)
271  { numberBeforeTrusted_ = value; }
273  void initialize(int n);
275  inline int numberObjects() const
276  { return numberObjects_; }
277 
280  inline double* upTotalChange() { return upTotalChange_; }
281  inline const double* upTotalChange() const { return upTotalChange_; }
282 
283  inline double* downTotalChange() { return downTotalChange_; }
284  inline const double* downTotalChange() const { return downTotalChange_; }
285 
286  inline int* upNumber() { return upNumber_; }
287  inline const int* upNumber() const { return upNumber_; }
288 
289  inline int* downNumber() { return downNumber_; }
290  inline const int* downNumber() const { return downNumber_; }
292 
294  virtual void updateInformation(const OsiBranchingInformation *info,
295  int branch, OsiHotInfo * hotInfo);
296 #if 1
297  virtual void updateInformation( int whichObject, int branch,
299  double changeInObjective, double changeInValue,
300  int status);
301 #endif
302 };
303 
319 
320 public:
321 
324 
327 
330 
333 
335  virtual OsiChooseVariable * clone() const;
336 
338  virtual ~OsiChooseStrong ();
339 
344  virtual int setupList ( OsiBranchingInformation *info, bool initialize);
358  virtual int chooseVariable( OsiSolverInterface * solver, OsiBranchingInformation *info, bool fixVariables);
359 
366  inline int shadowPriceMode() const
367  { return shadowPriceMode_;}
369  inline void setShadowPriceMode(int value)
370  { shadowPriceMode_ = value;}
371 
374  { return pseudoCosts_; }
375 
378  { return pseudoCosts_; }
379 
382  inline int numberBeforeTrusted() const {
384  inline void setNumberBeforeTrusted(int value) {
386  inline int numberObjects() const {
387  return pseudoCosts_.numberObjects(); }
388 
389 protected:
390 
405  int numberToDo, int returnCriterion);
406 
408  void resetResults(int num);
409 
410 protected:
417 
420 
426 };
427 
432 class OsiHotInfo {
433 
434 public:
435 
438 
441  const OsiBranchingInformation *info,
442  const OsiObject * const * objects,
443  int whichObject);
444 
447 
450 
452  virtual OsiHotInfo * clone() const;
453 
455  virtual ~OsiHotInfo ();
456 
461  OsiChooseVariable * choose);
463  inline double originalObjectiveValue() const
464  { return originalObjectiveValue_;}
466  inline double upChange() const
467  { assert (branchingObject_->numberBranches()==2); return changes_[1];}
469  inline double downChange() const
470  { assert (branchingObject_->numberBranches()==2); return changes_[0];}
472  inline void setUpChange(double value)
473  { assert (branchingObject_->numberBranches()==2); changes_[1] = value;}
475  inline void setDownChange(double value)
476  { assert (branchingObject_->numberBranches()==2); changes_[0] = value;}
478  inline double change(int k) const
479  { return changes_[k];}
480 
482  inline int upIterationCount() const
483  { assert (branchingObject_->numberBranches()==2); return iterationCounts_[1];}
485  inline int downIterationCount() const
486  { assert (branchingObject_->numberBranches()==2); return iterationCounts_[0];}
488  inline int iterationCount(int k) const
489  { return iterationCounts_[k];}
490 
492  inline int upStatus() const
493  { assert (branchingObject_->numberBranches()==2); return statuses_[1];}
495  inline int downStatus() const
496  { assert (branchingObject_->numberBranches()==2); return statuses_[0];}
498  inline void setUpStatus(int value)
499  { assert (branchingObject_->numberBranches()==2); statuses_[1] = value;}
501  inline void setDownStatus(int value)
502  { assert (branchingObject_->numberBranches()==2); statuses_[0] = value;}
504  inline int status(int k) const
505  { return statuses_[k];}
508  { return branchingObject_;}
509  inline int whichObject() const
510  { return whichObject_;}
511 
512 protected:
513  // Data
517  double * changes_;
526  int * statuses_;
531 };
532 
533 
534 #endif
OsiPseudoCosts::downTotalChange
const double * downTotalChange() const
Definition: OsiChooseVariable.hpp:284
OsiChooseVariable::goodSolution_
double * goodSolution_
Good solution - deleted by finalize.
Definition: OsiChooseVariable.hpp:192
OsiHotInfo::changes_
double * changes_
Objective changes.
Definition: OsiChooseVariable.hpp:517
OsiHotInfo::OsiHotInfo
OsiHotInfo(const OsiHotInfo &)
Copy constructor.
OsiChooseVariable::setTrustStrongForSolution
void setTrustStrongForSolution(bool yesNo)
Set trust results from strong branching for valid solution.
Definition: OsiChooseVariable.hpp:162
OsiHotInfo::OsiHotInfo
OsiHotInfo(OsiSolverInterface *solver, const OsiBranchingInformation *info, const OsiObject *const *objects, int whichObject)
Constructor from useful information.
OsiHotInfo::branchingObject_
OsiBranchingObject * branchingObject_
Branching object.
Definition: OsiChooseVariable.hpp:528
OsiPseudoCosts::updateInformation
virtual void updateInformation(const OsiBranchingInformation *info, int branch, OsiHotInfo *hotInfo)
Given a candidate fill in useful information e.g. estimates.
OsiChooseVariable::trustStrongForSolution
bool trustStrongForSolution() const
Trust results from strong branching for valid solution.
Definition: OsiChooseVariable.hpp:159
OsiChooseVariable::clone
virtual OsiChooseVariable * clone() const
Clone.
OsiChooseVariable::bestWhichWay
int bestWhichWay() const
Preferred way of chosen object.
Definition: OsiChooseVariable.hpp:111
OsiObject
Abstract base class for ‘objects’.
Definition: OsiBranchingObject.hpp:56
OsiChooseStrong::pseudoCosts
const OsiPseudoCosts & pseudoCosts() const
Accessor method to pseudo cost object.
Definition: OsiChooseVariable.hpp:373
OsiPseudoCosts::numberObjects
int numberObjects() const
Give the number of objects for which pseudo costs are stored.
Definition: OsiChooseVariable.hpp:275
OsiChooseStrong::chooseVariable
virtual int chooseVariable(OsiSolverInterface *solver, OsiBranchingInformation *info, bool fixVariables)
Choose a variable Returns - -1 Node is infeasible 0 Normal termination - we have a candidate 1 All lo...
OsiPseudoCosts
This class is the placeholder for the pseudocosts used by OsiChooseStrong.
Definition: OsiChooseVariable.hpp:240
OsiChooseVariable::list_
int * list_
List of candidates.
Definition: OsiChooseVariable.hpp:194
OsiChooseVariable::downChange
double downChange() const
Estimate of down change or max change on other possibilities if n-way.
Definition: OsiChooseVariable.hpp:99
OsiHotInfo::upStatus
int upStatus() const
Up status - invalid if n-way.
Definition: OsiChooseVariable.hpp:492
OsiChooseVariable::trustStrongForBound
bool trustStrongForBound() const
Trust results from strong branching for changing bounds.
Definition: OsiChooseVariable.hpp:153
OsiHotInfo::upIterationCount
int upIterationCount() const
Up iteration count - invalid if n-way.
Definition: OsiChooseVariable.hpp:482
OsiChooseStrong::numberBeforeTrusted
int numberBeforeTrusted() const
A feww pass-through methods to access members of pseudoCosts_ as if they were members of OsiChooseStr...
Definition: OsiChooseVariable.hpp:382
OsiHotInfo::downChange
double downChange() const
Down change - invalid if n-way.
Definition: OsiChooseVariable.hpp:469
OsiPseudoCosts::setNumberBeforeTrusted
void setNumberBeforeTrusted(int value)
Set number of times before trusted.
Definition: OsiChooseVariable.hpp:270
OsiChooseVariable::numberStrongFixed_
int numberStrongFixed_
Number of bound changes due to strong branching.
Definition: OsiChooseVariable.hpp:227
OsiChooseVariable::setBestWhichWay
void setBestWhichWay(int value)
Set preferred way of chosen object.
Definition: OsiChooseVariable.hpp:114
OsiPseudoCosts::OsiPseudoCosts
OsiPseudoCosts()
OsiChooseStrong::numResults_
int numResults_
The number of OsiHotInfo objetcs that contain information.
Definition: OsiChooseVariable.hpp:425
OsiPseudoCosts::OsiPseudoCosts
OsiPseudoCosts(const OsiPseudoCosts &rhs)
OsiChooseVariable::numberStrongFixed
int numberStrongFixed() const
Number of strong branches which changed bounds.
Definition: OsiChooseVariable.hpp:147
OsiChooseVariable::clearGoodSolution
void clearGoodSolution()
Clears out good solution after use.
OsiPseudoCosts::upTotalChange
const double * upTotalChange() const
Definition: OsiChooseVariable.hpp:281
OsiChooseStrong::shadowPriceMode_
int shadowPriceMode_
Pseudo Shadow Price mode 0 - off 1 - use and multiply by strong info 2 - use.
Definition: OsiChooseVariable.hpp:416
OsiChooseVariable::numberOnList
int numberOnList() const
Number left on strong list.
Definition: OsiChooseVariable.hpp:138
OsiChooseVariable::setBestObjectIndex
void setBestObjectIndex(int value)
Set index of chosen object.
Definition: OsiChooseVariable.hpp:108
OsiHotInfo::setDownChange
void setDownChange(double value)
Set down change - invalid if n-way.
Definition: OsiChooseVariable.hpp:475
OsiHotInfo::clone
virtual OsiHotInfo * clone() const
Clone.
OsiHotInfo::updateInformation
int updateInformation(const OsiSolverInterface *solver, const OsiBranchingInformation *info, OsiChooseVariable *choose)
Fill in useful information after strong branch.
OsiChooseVariable::setNumberStrong
void setNumberStrong(int value)
Set number of objects to choose for strong branching.
Definition: OsiChooseVariable.hpp:135
OsiPseudoCosts::downNumber_
int * downNumber_
Number of times down.
Definition: OsiChooseVariable.hpp:250
OsiChooseStrong::clone
virtual OsiChooseVariable * clone() const
Clone.
OsiPseudoCosts::upNumber
const int * upNumber() const
Definition: OsiChooseVariable.hpp:287
OsiChooseVariable::bestObjectIndex_
int bestObjectIndex_
Index of chosen object.
Definition: OsiChooseVariable.hpp:209
OsiChooseVariable::trustStrongForSolution_
bool trustStrongForSolution_
Trust results from strong branching for valid solution.
Definition: OsiChooseVariable.hpp:232
OsiChooseVariable::~OsiChooseVariable
virtual ~OsiChooseVariable()
Destructor.
OsiChooseVariable::setStatus
void setStatus(int value)
Definition: OsiChooseVariable.hpp:179
OsiChooseVariable::solver_
const OsiSolverInterface * solver_
Pointer to solver.
Definition: OsiChooseVariable.hpp:198
OsiPseudoCosts::numberBeforeTrusted_
int numberBeforeTrusted_
Number before we trust.
Definition: OsiChooseVariable.hpp:254
OsiPseudoCosts::gutsOfCopy
void gutsOfCopy(const OsiPseudoCosts &rhs)
OsiPseudoCosts::upTotalChange
double * upTotalChange()
Definition: OsiChooseVariable.hpp:280
OsiPseudoCosts::downTotalChange_
double * downTotalChange_
Total of all changes down.
Definition: OsiChooseVariable.hpp:246
OsiChooseVariable::setFirstForcedObjectIndex
void setFirstForcedObjectIndex(int value)
Set index of forced object.
Definition: OsiChooseVariable.hpp:120
OsiChooseStrong::operator=
OsiChooseStrong & operator=(const OsiChooseStrong &rhs)
Assignment operator.
OsiPseudoCosts::operator=
OsiPseudoCosts & operator=(const OsiPseudoCosts &rhs)
OsiChooseVariable
This class chooses a variable to branch on.
Definition: OsiChooseVariable.hpp:33
OsiChooseVariable::goodObjectiveValue
double goodObjectiveValue() const
Objective value for feasible solution.
Definition: OsiChooseVariable.hpp:93
OsiChooseStrong::OsiChooseStrong
OsiChooseStrong()
Default Constructor.
OsiHotInfo::downStatus
int downStatus() const
Down status - invalid if n-way.
Definition: OsiChooseVariable.hpp:495
OsiChooseStrong::setShadowPriceMode
void setShadowPriceMode(int value)
Set Shadow price mode.
Definition: OsiChooseVariable.hpp:369
OsiChooseVariable::OsiChooseVariable
OsiChooseVariable(const OsiSolverInterface *solver)
Constructor from solver (so we can set up arrays etc)
OsiChooseVariable::OsiChooseVariable
OsiChooseVariable()
Default Constructor.
OsiChooseStrong::OsiChooseStrong
OsiChooseStrong(const OsiChooseStrong &)
Copy constructor.
OsiChooseVariable::numberStrong_
int numberStrong_
Number of objects to choose for strong branching.
Definition: OsiChooseVariable.hpp:219
OsiChooseVariable::feasibleSolution
virtual bool feasibleSolution(const OsiBranchingInformation *info, const double *solution, int numberObjects, const OsiObject **objects)
Returns true if solution looks feasible against given objects.
OsiChooseStrong::~OsiChooseStrong
virtual ~OsiChooseStrong()
Destructor.
OsiHotInfo::status
int status(int k) const
Status on way k.
Definition: OsiChooseVariable.hpp:504
OsiChooseVariable::downChange_
double downChange_
Estimate of down change or max change on other possibilities if n-way.
Definition: OsiChooseVariable.hpp:190
OsiChooseStrong::OsiChooseStrong
OsiChooseStrong(const OsiSolverInterface *solver)
Constructor from solver (so we can set up arrays etc)
OsiHotInfo::originalObjectiveValue_
double originalObjectiveValue_
Original objective value.
Definition: OsiChooseVariable.hpp:515
OsiPseudoCosts::upNumber_
int * upNumber_
Number of times up.
Definition: OsiChooseVariable.hpp:248
OsiHotInfo::whichObject_
int whichObject_
Which object on list.
Definition: OsiChooseVariable.hpp:530
OsiChooseVariable::setTrustStrongForBound
void setTrustStrongForBound(bool yesNo)
Set trust results from strong branching for changing bounds.
Definition: OsiChooseVariable.hpp:156
OsiChooseVariable::numberStrongDone_
int numberStrongDone_
Number of strong branches actually done.
Definition: OsiChooseVariable.hpp:223
OsiHotInfo
This class contains the result of strong branching on a variable When created it stores enough inform...
Definition: OsiChooseVariable.hpp:432
OsiChooseStrong::doStrongBranching
int doStrongBranching(OsiSolverInterface *solver, OsiBranchingInformation *info, int numberToDo, int returnCriterion)
This is a utility function which does strong branching on a list of objects and stores the results in...
OsiHotInfo::whichObject
int whichObject() const
Definition: OsiChooseVariable.hpp:509
OsiChooseVariable::numberStrongDone
int numberStrongDone() const
Number of strong branches actually done.
Definition: OsiChooseVariable.hpp:141
OsiChooseVariable::firstForcedWhichWay
int firstForcedWhichWay() const
Preferred way of forced object.
Definition: OsiChooseVariable.hpp:123
OsiChooseVariable::status_
int status_
Definition: OsiChooseVariable.hpp:207
OsiHotInfo::setUpStatus
void setUpStatus(int value)
Set up status - invalid if n-way.
Definition: OsiChooseVariable.hpp:498
OsiChooseVariable::chooseVariable
virtual int chooseVariable(OsiSolverInterface *solver, OsiBranchingInformation *info, bool fixVariables)
Choose a variable Returns - -1 Node is infeasible 0 Normal termination - we have a candidate 1 All lo...
OsiPseudoCosts::gutsOfDelete
void gutsOfDelete()
OsiChooseStrong::pseudoCosts_
OsiPseudoCosts pseudoCosts_
The pseudo costs for the chooser.
Definition: OsiChooseVariable.hpp:419
OsiChooseVariable::firstForcedObjectIndex
int firstForcedObjectIndex() const
Index of forced object.
Definition: OsiChooseVariable.hpp:117
OsiChooseStrong::setupList
virtual int setupList(OsiBranchingInformation *info, bool initialize)
Sets up strong list and clears all if initialize is true.
OsiHotInfo::statuses_
int * statuses_
Status -1 - not done 0 - feasible and finished 1 - infeasible 2 - not finished.
Definition: OsiChooseVariable.hpp:526
OsiChooseVariable::bestWhichWay_
int bestWhichWay_
Preferred way of chosen object.
Definition: OsiChooseVariable.hpp:211
OsiPseudoCosts::initialize
void initialize(int n)
Initialize the pseudocosts with n entries.
OsiChooseStrong::setNumberBeforeTrusted
void setNumberBeforeTrusted(int value)
Definition: OsiChooseVariable.hpp:384
OsiChooseVariable::numberUnsatisfied_
int numberUnsatisfied_
The number of objects unsatisfied at this node.
Definition: OsiChooseVariable.hpp:217
OsiChooseVariable::goodSolution
const double * goodSolution() const
Good solution - deleted by finalize.
Definition: OsiChooseVariable.hpp:102
OsiChooseVariable::operator=
OsiChooseVariable & operator=(const OsiChooseVariable &rhs)
Assignment operator.
OsiHotInfo::setDownStatus
void setDownStatus(int value)
Set down status - invalid if n-way.
Definition: OsiChooseVariable.hpp:501
OsiBranchingInformation
Definition: OsiBranchingObject.hpp:367
OsiChooseVariable::updateInformation
virtual void updateInformation(const OsiBranchingInformation *info, int branch, OsiHotInfo *hotInfo)
Given a candidate fill in useful information e.g. estimates.
OsiChooseVariable::bestObjectIndex
int bestObjectIndex() const
Index of chosen object.
Definition: OsiChooseVariable.hpp:105
OsiChooseVariable::trustStrongForBound_
bool trustStrongForBound_
List of unsatisfied objects - first numberOnList_ for strong branching Trust results from strong bran...
Definition: OsiChooseVariable.hpp:230
OsiChooseVariable::candidates
const int * candidates() const
List of candidates.
Definition: OsiChooseVariable.hpp:150
OsiChooseVariable::OsiChooseVariable
OsiChooseVariable(const OsiChooseVariable &)
Copy constructor.
OsiPseudoCosts::downTotalChange
double * downTotalChange()
Definition: OsiChooseVariable.hpp:283
OsiHotInfo::branchingObject
OsiBranchingObject * branchingObject() const
Branching object.
Definition: OsiChooseVariable.hpp:507
OsiChooseVariable::numberOnList_
int numberOnList_
Number left on strong list.
Definition: OsiChooseVariable.hpp:221
OsiChooseVariable::numberStrongIterations_
int numberStrongIterations_
Number of strong iterations actually done.
Definition: OsiChooseVariable.hpp:225
OsiHotInfo::downIterationCount
int downIterationCount() const
Down iteration count - invalid if n-way.
Definition: OsiChooseVariable.hpp:485
OsiPseudoCosts::~OsiPseudoCosts
virtual ~OsiPseudoCosts()
OsiChooseVariable::status
int status() const
Return status - -1 Node is infeasible 0 Normal termination - we have a candidate 1 All looks satisfie...
Definition: OsiChooseVariable.hpp:177
OsiHotInfo::originalObjectiveValue
double originalObjectiveValue() const
Original objective value.
Definition: OsiChooseVariable.hpp:463
OsiBranchingObject.hpp
OsiChooseVariable::firstForcedObjectIndex_
int firstForcedObjectIndex_
Index of forced object.
Definition: OsiChooseVariable.hpp:213
OsiHotInfo::~OsiHotInfo
virtual ~OsiHotInfo()
Destructor.
OsiPseudoCosts::downNumber
int * downNumber()
Definition: OsiChooseVariable.hpp:289
OsiChooseStrong::results_
OsiHotInfo * results_
The results of the strong branching done on the candidates where the pseudocosts were not sufficient.
Definition: OsiChooseVariable.hpp:423
OsiPseudoCosts::numberObjects_
int numberObjects_
Number of objects (could be found from solver)
Definition: OsiChooseVariable.hpp:252
OsiChooseVariable::numberStrong
int numberStrong() const
Number of objects to choose for strong branching.
Definition: OsiChooseVariable.hpp:132
OsiPseudoCosts::upNumber
int * upNumber()
Definition: OsiChooseVariable.hpp:286
OsiPseudoCosts::upTotalChange_
double * upTotalChange_
Total of all changes up.
Definition: OsiChooseVariable.hpp:244
OsiHotInfo::upChange
double upChange() const
Up change - invalid if n-way.
Definition: OsiChooseVariable.hpp:466
OsiHotInfo::iterationCount
int iterationCount(int k) const
Iteration count on way k.
Definition: OsiChooseVariable.hpp:488
OsiBranchingObject
Abstract branching object base class.
Definition: OsiBranchingObject.hpp:254
OsiChooseStrong::numberObjects
int numberObjects() const
Definition: OsiChooseVariable.hpp:386
OsiChooseVariable::numberUnsatisfied
int numberUnsatisfied() const
Get the number of objects unsatisfied at this node - accurate on first pass.
Definition: OsiChooseVariable.hpp:129
OsiPseudoCosts::numberBeforeTrusted
int numberBeforeTrusted() const
Number of times before trusted.
Definition: OsiChooseVariable.hpp:267
OsiHotInfo::OsiHotInfo
OsiHotInfo()
Default Constructor.
OsiChooseVariable::upChange
double upChange() const
Estimate of up change or change on chosen if n-way.
Definition: OsiChooseVariable.hpp:96
OsiChooseStrong::shadowPriceMode
int shadowPriceMode() const
Pseudo Shadow Price mode 0 - off 1 - use if no strong info 2 - use if strong not trusted 3 - use even...
Definition: OsiChooseVariable.hpp:366
OsiHotInfo::operator=
OsiHotInfo & operator=(const OsiHotInfo &rhs)
Assignment operator.
OsiChooseVariable::goodObjectiveValue_
double goodObjectiveValue_
Objective value for feasible solution.
Definition: OsiChooseVariable.hpp:186
OsiChooseVariable::numberStrongIterations
int numberStrongIterations() const
Number of strong iterations actually done.
Definition: OsiChooseVariable.hpp:144
OsiChooseStrong
This class chooses a variable to branch on.
Definition: OsiChooseVariable.hpp:318
OsiChooseVariable::saveSolution
void saveSolution(const OsiSolverInterface *solver)
Saves a good solution.
OsiHotInfo::change
double change(int k) const
Change on way k.
Definition: OsiChooseVariable.hpp:478
OsiBranchingObject::numberBranches
int numberBranches() const
The number of branch arms created for this branching object.
Definition: OsiBranchingObject.hpp:277
OsiChooseVariable::setFirstForcedWhichWay
void setFirstForcedWhichWay(int value)
Set preferred way of forced object.
Definition: OsiChooseVariable.hpp:126
OsiHotInfo::iterationCounts_
int * iterationCounts_
Iteration counts.
Definition: OsiChooseVariable.hpp:519
OsiChooseVariable::firstForcedWhichWay_
int firstForcedWhichWay_
Preferred way of forced object.
Definition: OsiChooseVariable.hpp:215
OsiChooseVariable::setupList
virtual int setupList(OsiBranchingInformation *info, bool initialize)
Sets up strong list and clears all if initialize is true.
OsiChooseVariable::upChange_
double upChange_
Estimate of up change or change on chosen if n-way.
Definition: OsiChooseVariable.hpp:188
OsiSolverInterface
Abstract Base Class for describing an interface to a solver.
Definition: OsiSolverInterface.hpp:62
OsiChooseStrong::resetResults
void resetResults(int num)
Clear out the results array.
OsiChooseVariable::setSolver
void setSolver(const OsiSolverInterface *solver)
Set solver and redo arrays.
OsiPseudoCosts::downNumber
const int * downNumber() const
Definition: OsiChooseVariable.hpp:290
OsiChooseStrong::pseudoCosts
OsiPseudoCosts & pseudoCosts()
Accessor method to pseudo cost object.
Definition: OsiChooseVariable.hpp:377
OsiChooseVariable::useful_
double * useful_
Useful array (for sorting etc)
Definition: OsiChooseVariable.hpp:196
OsiHotInfo::setUpChange
void setUpChange(double value)
Set up change - invalid if n-way.
Definition: OsiChooseVariable.hpp:472