Cgl 0.59.7

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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
33 class OsiChooseVariable {
34
35 public:
36
38 OsiChooseVariable ();
39
41 OsiChooseVariable (const OsiSolverInterface * solver);
42
44 OsiChooseVariable (const OsiChooseVariable &);
45
47 OsiChooseVariable & operator= (const OsiChooseVariable& rhs);
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);
82 void clearGoodSolution();
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
186 double goodObjectiveValue_;
188 double upChange_;
190 double downChange_;
192 double * goodSolution_;
194 int * list_;
196 double * useful_;
198 const OsiSolverInterface * solver_;
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_;
209 int bestObjectIndex_;
211 int bestWhichWay_;
213 int firstForcedObjectIndex_;
215 int firstForcedWhichWay_;
217 int numberUnsatisfied_;
219 int numberStrong_;
221 int numberOnList_;
223 int numberStrongDone_;
225 int numberStrongIterations_;
227 int numberStrongFixed_;
230 bool trustStrongForBound_;
232 bool trustStrongForSolution_;
233 };
234
240 class OsiPseudoCosts {
241 protected:
242 // Data
244 double * upTotalChange_;
246 double * downTotalChange_;
248 int * upNumber_;
250 int * downNumber_;
252 int numberObjects_;
254 int numberBeforeTrusted_;
255
256 private:
257 void gutsOfDelete();
258 void gutsOfCopy(const OsiPseudoCosts& rhs);
259
260 public:
261 OsiPseudoCosts();
262 virtual ~OsiPseudoCosts();
263 OsiPseudoCosts(const OsiPseudoCosts& rhs);
264 OsiPseudoCosts& operator=(const OsiPseudoCosts& rhs);
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
318 class OsiChooseStrong : public OsiChooseVariable {
319
320 public:
321
323 OsiChooseStrong ();
324
326 OsiChooseStrong (const OsiSolverInterface * solver);
327
329 OsiChooseStrong (const OsiChooseStrong &);
330
332 OsiChooseStrong & operator= (const OsiChooseStrong& rhs);
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
373 const OsiPseudoCosts& pseudoCosts() const
374 { return pseudoCosts_; }
375
377 OsiPseudoCosts& pseudoCosts()
378 { return pseudoCosts_; }
379
382 inline int numberBeforeTrusted() const {
383 return pseudoCosts_.numberBeforeTrusted(); }
384 inline void setNumberBeforeTrusted(int value) {
385 pseudoCosts_.setNumberBeforeTrusted(value); }
386 inline int numberObjects() const {
387 return pseudoCosts_.numberObjects(); }
388
389 protected:
390
403 int doStrongBranching( OsiSolverInterface * solver,
404 OsiBranchingInformation *info,
405 int numberToDo, int returnCriterion);
406
408 void resetResults(int num);
409
410 protected:
416 int shadowPriceMode_;
417
419 OsiPseudoCosts pseudoCosts_;
420
423 OsiHotInfo* results_;
425 int numResults_;
426 };
427
432 class OsiHotInfo {
433
434 public:
435
437 OsiHotInfo ();
438
440 OsiHotInfo ( OsiSolverInterface * solver,
441 const OsiBranchingInformation *info,
442 const OsiObject * const * objects,
443 int whichObject);
444
446 OsiHotInfo (const OsiHotInfo &);
447
449 OsiHotInfo & operator= (const OsiHotInfo& rhs);
450
452 virtual OsiHotInfo * clone() const;
453
455 virtual ~OsiHotInfo ();
456
460 int updateInformation( const OsiSolverInterface * solver, const OsiBranchingInformation * info,
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];}
507 inline OsiBranchingObject * branchingObject() const
508 { return branchingObject_;}
509 inline int whichObject() const
510 { return whichObject_;}
511
512 protected:
513 // Data
515 double originalObjectiveValue_;
517 double * changes_;
519 int * iterationCounts_;
526 int * statuses_;
528 OsiBranchingObject * branchingObject_;
530 int whichObject_;
531 };
532
533
534 #endif
OsiChooseStrong::resetResults
void resetResults(int num)
Clear out the results array.
OsiChooseVariable::setupList
virtual int setupList(OsiBranchingInformation *info, bool initialize)
Sets up strong list and clears all if initialize is true.
OsiHotInfo::downIterationCount
int downIterationCount() const
Down iteration count - invalid if n-way.
Definition: OsiChooseVariable.hpp:485
OsiChooseVariable::upChange_
double upChange_
Estimate of up change or change on chosen if n-way.
Definition: OsiChooseVariable.hpp:188
OsiPseudoCosts::setNumberBeforeTrusted
void setNumberBeforeTrusted(int value)
Set number of times before trusted.
Definition: OsiChooseVariable.hpp:270
OsiChooseVariable::setSolver
void setSolver(const OsiSolverInterface *solver)
Set solver and redo arrays.
OsiChooseVariable::goodObjectiveValue_
double goodObjectiveValue_
Objective value for feasible solution.
Definition: OsiChooseVariable.hpp:186
OsiPseudoCosts::numberObjects
int numberObjects() const
Give the number of objects for which pseudo costs are stored.
Definition: OsiChooseVariable.hpp:275
OsiChooseVariable::useful_
double * useful_
Useful array (for sorting etc)
Definition: OsiChooseVariable.hpp:196
OsiChooseVariable::goodSolution_
double * goodSolution_
Good solution - deleted by finalize.
Definition: OsiChooseVariable.hpp:192
OsiPseudoCosts::OsiPseudoCosts
OsiPseudoCosts()
OsiChooseVariable::setTrustStrongForSolution
void setTrustStrongForSolution(bool yesNo)
Set trust results from strong branching for valid solution.
Definition: OsiChooseVariable.hpp:162
OsiChooseVariable::numberStrongFixed
int numberStrongFixed() const
Number of strong branches which changed bounds.
Definition: OsiChooseVariable.hpp:147
OsiChooseVariable::firstForcedObjectIndex
int firstForcedObjectIndex() const
Index of forced object.
Definition: OsiChooseVariable.hpp:117
OsiChooseVariable::firstForcedWhichWay_
int firstForcedWhichWay_
Preferred way of forced object.
Definition: OsiChooseVariable.hpp:215
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::updateInformation
virtual void updateInformation(const OsiBranchingInformation *info, int branch, OsiHotInfo *hotInfo)
Given a candidate fill in useful information e.g. estimates.
OsiHotInfo::clone
virtual OsiHotInfo * clone() const
Clone.
OsiChooseVariable::numberStrong
int numberStrong() const
Number of objects to choose for strong branching.
Definition: OsiChooseVariable.hpp:132
OsiHotInfo::whichObject_
int whichObject_
Which object on list.
Definition: OsiChooseVariable.hpp:530
OsiPseudoCosts::downTotalChange
const double * downTotalChange() const
Definition: OsiChooseVariable.hpp:284
OsiChooseVariable::numberStrongIterations
int numberStrongIterations() const
Number of strong iterations actually done.
Definition: OsiChooseVariable.hpp:144
OsiChooseStrong::operator=
OsiChooseStrong & operator=(const OsiChooseStrong &rhs)
Assignment operator.
OsiHotInfo::whichObject
int whichObject() const
Definition: OsiChooseVariable.hpp:509
OsiBranchingInformation
Definition: OsiBranchingObject.hpp:367
OsiChooseVariable::setBestObjectIndex
void setBestObjectIndex(int value)
Set index of chosen object.
Definition: OsiChooseVariable.hpp:108
OsiChooseStrong::pseudoCosts
OsiPseudoCosts & pseudoCosts()
Accessor method to pseudo cost object.
Definition: OsiChooseVariable.hpp:377
OsiPseudoCosts::operator=
OsiPseudoCosts & operator=(const OsiPseudoCosts &rhs)
OsiChooseVariable::setNumberStrong
void setNumberStrong(int value)
Set number of objects to choose for strong branching.
Definition: OsiChooseVariable.hpp:135
OsiChooseVariable::candidates
const int * candidates() const
List of candidates.
Definition: OsiChooseVariable.hpp:150
OsiChooseVariable::bestObjectIndex_
int bestObjectIndex_
Index of chosen object.
Definition: OsiChooseVariable.hpp:209
OsiChooseVariable::numberStrongFixed_
int numberStrongFixed_
Number of bound changes due to strong branching.
Definition: OsiChooseVariable.hpp:227
OsiChooseVariable::setStatus
void setStatus(int value)
Definition: OsiChooseVariable.hpp:179
OsiChooseStrong::setNumberBeforeTrusted
void setNumberBeforeTrusted(int value)
Definition: OsiChooseVariable.hpp:384
OsiChooseVariable::numberStrong_
int numberStrong_
Number of objects to choose for strong branching.
Definition: OsiChooseVariable.hpp:219
OsiChooseStrong::results_
OsiHotInfo * results_
The results of the strong branching done on the candidates where the pseudocosts were not sufficient...
Definition: OsiChooseVariable.hpp:423
OsiChooseVariable::list_
int * list_
List of candidates.
Definition: OsiChooseVariable.hpp:194
OsiChooseVariable::downChange_
double downChange_
Estimate of down change or max change on other possibilities if n-way.
Definition: OsiChooseVariable.hpp:190
OsiBranchingObject
Abstract branching object base class.
Definition: OsiBranchingObject.hpp:254
OsiHotInfo::setDownChange
void setDownChange(double value)
Set down change - invalid if n-way.
Definition: OsiChooseVariable.hpp:475
OsiHotInfo::upChange
double upChange() const
Up change - invalid if n-way.
Definition: OsiChooseVariable.hpp:466
OsiChooseVariable::bestWhichWay
int bestWhichWay() const
Preferred way of chosen object.
Definition: OsiChooseVariable.hpp:111
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::downChange
double downChange() const
Down change - invalid if n-way.
Definition: OsiChooseVariable.hpp:469
OsiHotInfo
This class contains the result of strong branching on a variable When created it stores enough inform...
Definition: OsiChooseVariable.hpp:432
OsiHotInfo::branchingObject
OsiBranchingObject * branchingObject() const
Branching object.
Definition: OsiChooseVariable.hpp:507
OsiChooseVariable::setTrustStrongForBound
void setTrustStrongForBound(bool yesNo)
Set trust results from strong branching for changing bounds.
Definition: OsiChooseVariable.hpp:156
OsiChooseVariable::goodSolution
const double * goodSolution() const
Good solution - deleted by finalize.
Definition: OsiChooseVariable.hpp:102
OsiChooseVariable::trustStrongForSolution_
bool trustStrongForSolution_
Trust results from strong branching for valid solution.
Definition: OsiChooseVariable.hpp:232
OsiChooseVariable::solver_
const OsiSolverInterface * solver_
Pointer to solver.
Definition: OsiChooseVariable.hpp:198
OsiPseudoCosts::upNumber_
int * upNumber_
Number of times up.
Definition: OsiChooseVariable.hpp:248
OsiChooseVariable::setBestWhichWay
void setBestWhichWay(int value)
Set preferred way of chosen object.
Definition: OsiChooseVariable.hpp:114
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.
OsiChooseVariable::clearGoodSolution
void clearGoodSolution()
Clears out good solution after use.
OsiSolverInterface
Abstract Base Class for describing an interface to a solver.
Definition: OsiSolverInterface.hpp:62
OsiChooseVariable::numberUnsatisfied
int numberUnsatisfied() const
Get the number of objects unsatisfied at this node - accurate on first pass.
Definition: OsiChooseVariable.hpp:129
OsiChooseStrong::OsiChooseStrong
OsiChooseStrong()
Default Constructor.
OsiHotInfo::upIterationCount
int upIterationCount() const
Up iteration count - invalid if n-way.
Definition: OsiChooseVariable.hpp:482
OsiHotInfo::setDownStatus
void setDownStatus(int value)
Set down status - invalid if n-way.
Definition: OsiChooseVariable.hpp:501
OsiChooseStrong::setShadowPriceMode
void setShadowPriceMode(int value)
Set Shadow price mode.
Definition: OsiChooseVariable.hpp:369
OsiChooseVariable::firstForcedWhichWay
int firstForcedWhichWay() const
Preferred way of forced object.
Definition: OsiChooseVariable.hpp:123
OsiPseudoCosts::initialize
void initialize(int n)
Initialize the pseudocosts with n entries.
OsiHotInfo::~OsiHotInfo
virtual ~OsiHotInfo()
Destructor.
OsiHotInfo::branchingObject_
OsiBranchingObject * branchingObject_
Branching object.
Definition: OsiChooseVariable.hpp:528
OsiPseudoCosts::gutsOfCopy
void gutsOfCopy(const OsiPseudoCosts &rhs)
OsiChooseVariable::numberStrongDone_
int numberStrongDone_
Number of strong branches actually done.
Definition: OsiChooseVariable.hpp:223
OsiChooseVariable::~OsiChooseVariable
virtual ~OsiChooseVariable()
Destructor.
OsiPseudoCosts::downTotalChange_
double * downTotalChange_
Total of all changes down.
Definition: OsiChooseVariable.hpp:246
OsiPseudoCosts::upTotalChange_
double * upTotalChange_
Total of all changes up.
Definition: OsiChooseVariable.hpp:244
OsiChooseVariable::upChange
double upChange() const
Estimate of up change or change on chosen if n-way.
Definition: OsiChooseVariable.hpp:96
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...
OsiChooseVariable::status_
int status_
Definition: OsiChooseVariable.hpp:207
OsiChooseStrong::clone
virtual OsiChooseVariable * clone() const
Clone.
OsiChooseVariable::setFirstForcedObjectIndex
void setFirstForcedObjectIndex(int value)
Set index of forced object.
Definition: OsiChooseVariable.hpp:120
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...
OsiChooseStrong::shadowPriceMode_
int shadowPriceMode_
Pseudo Shadow Price mode 0 - off 1 - use and multiply by strong info 2 - use.
Definition: OsiChooseVariable.hpp:416
OsiHotInfo::originalObjectiveValue
double originalObjectiveValue() const
Original objective value.
Definition: OsiChooseVariable.hpp:463
OsiHotInfo::setUpStatus
void setUpStatus(int value)
Set up status - invalid if n-way.
Definition: OsiChooseVariable.hpp:498
OsiPseudoCosts::numberBeforeTrusted_
int numberBeforeTrusted_
Number before we trust.
Definition: OsiChooseVariable.hpp:254
OsiChooseVariable::OsiChooseVariable
OsiChooseVariable()
Default Constructor.
OsiPseudoCosts::numberObjects_
int numberObjects_
Number of objects (could be found from solver)
Definition: OsiChooseVariable.hpp:252
OsiPseudoCosts
This class is the placeholder for the pseudocosts used by OsiChooseStrong.
Definition: OsiChooseVariable.hpp:240
OsiHotInfo::originalObjectiveValue_
double originalObjectiveValue_
Original objective value.
Definition: OsiChooseVariable.hpp:515
OsiHotInfo::change
double change(int k) const
Change on way k.
Definition: OsiChooseVariable.hpp:478
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
OsiPseudoCosts::downNumber
const int * downNumber() const
Definition: OsiChooseVariable.hpp:290
OsiChooseStrong::pseudoCosts_
OsiPseudoCosts pseudoCosts_
The pseudo costs for the chooser.
Definition: OsiChooseVariable.hpp:419
OsiChooseVariable::operator=
OsiChooseVariable & operator=(const OsiChooseVariable &rhs)
Assignment operator.
OsiPseudoCosts::upNumber
const int * upNumber() const
Definition: OsiChooseVariable.hpp:287
OsiPseudoCosts::~OsiPseudoCosts
virtual ~OsiPseudoCosts()
OsiPseudoCosts::downNumber_
int * downNumber_
Number of times down.
Definition: OsiChooseVariable.hpp:250
OsiChooseStrong::numberObjects
int numberObjects() const
Definition: OsiChooseVariable.hpp:386
OsiChooseVariable::updateInformation
virtual void updateInformation(const OsiBranchingInformation *info, int branch, OsiHotInfo *hotInfo)
Given a candidate fill in useful information e.g. estimates.
OsiChooseVariable::trustStrongForBound_
bool trustStrongForBound_
List of unsatisfied objects - first numberOnList_ for strong branching Trust results from strong bran...
Definition: OsiChooseVariable.hpp:230
OsiPseudoCosts::downTotalChange
double * downTotalChange()
Definition: OsiChooseVariable.hpp:283
OsiChooseVariable::numberStrongIterations_
int numberStrongIterations_
Number of strong iterations actually done.
Definition: OsiChooseVariable.hpp:225
OsiHotInfo::statuses_
int * statuses_
Status -1 - not done 0 - feasible and finished 1 - infeasible 2 - not finished.
Definition: OsiChooseVariable.hpp:526
OsiHotInfo::iterationCounts_
int * iterationCounts_
Iteration counts.
Definition: OsiChooseVariable.hpp:519
OsiHotInfo::changes_
double * changes_
Objective changes.
Definition: OsiChooseVariable.hpp:517
OsiPseudoCosts::upTotalChange
double * upTotalChange()
Definition: OsiChooseVariable.hpp:280
OsiHotInfo::status
int status(int k) const
Status on way k.
Definition: OsiChooseVariable.hpp:504
OsiChooseVariable::numberStrongDone
int numberStrongDone() const
Number of strong branches actually done.
Definition: OsiChooseVariable.hpp:141
OsiHotInfo::downStatus
int downStatus() const
Down status - invalid if n-way.
Definition: OsiChooseVariable.hpp:495
OsiPseudoCosts::numberBeforeTrusted
int numberBeforeTrusted() const
Number of times before trusted.
Definition: OsiChooseVariable.hpp:267
OsiChooseVariable::clone
virtual OsiChooseVariable * clone() const
Clone.
OsiChooseStrong::pseudoCosts
const OsiPseudoCosts & pseudoCosts() const
Accessor method to pseudo cost object.
Definition: OsiChooseVariable.hpp:373
OsiChooseVariable::trustStrongForSolution
bool trustStrongForSolution() const
Trust results from strong branching for valid solution.
Definition: OsiChooseVariable.hpp:159
OsiChooseVariable::bestWhichWay_
int bestWhichWay_
Preferred way of chosen object.
Definition: OsiChooseVariable.hpp:211
OsiHotInfo::operator=
OsiHotInfo & operator=(const OsiHotInfo &rhs)
Assignment operator.
OsiChooseStrong::numResults_
int numResults_
The number of OsiHotInfo objetcs that contain information.
Definition: OsiChooseVariable.hpp:425
OsiChooseStrong::setupList
virtual int setupList(OsiBranchingInformation *info, bool initialize)
Sets up strong list and clears all if initialize is true.
OsiChooseVariable::numberUnsatisfied_
int numberUnsatisfied_
The number of objects unsatisfied at this node.
Definition: OsiChooseVariable.hpp:217
OsiPseudoCosts::gutsOfDelete
void gutsOfDelete()
CoinWarmStartBasis.hpp
OsiChooseVariable
This class chooses a variable to branch on.
Definition: OsiChooseVariable.hpp:33
OsiBranchingObject.hpp
OsiChooseVariable::numberOnList
int numberOnList() const
Number left on strong list.
Definition: OsiChooseVariable.hpp:138
OsiChooseVariable::numberOnList_
int numberOnList_
Number left on strong list.
Definition: OsiChooseVariable.hpp:221
OsiHotInfo::OsiHotInfo
OsiHotInfo()
Default Constructor.
OsiChooseVariable::bestObjectIndex
int bestObjectIndex() const
Index of chosen object.
Definition: OsiChooseVariable.hpp:105
OsiPseudoCosts::upNumber
int * upNumber()
Definition: OsiChooseVariable.hpp:286
OsiHotInfo::updateInformation
int updateInformation(const OsiSolverInterface *solver, const OsiBranchingInformation *info, OsiChooseVariable *choose)
Fill in useful information after strong branch.
OsiObject
Abstract base class for `objects&#39;.
Definition: OsiBranchingObject.hpp:56
OsiChooseVariable::firstForcedObjectIndex_
int firstForcedObjectIndex_
Index of forced object.
Definition: OsiChooseVariable.hpp:213
OsiHotInfo::upStatus
int upStatus() const
Up status - invalid if n-way.
Definition: OsiChooseVariable.hpp:492
OsiBranchingObject::numberBranches
int numberBranches() const
The number of branch arms created for this branching object.
Definition: OsiBranchingObject.hpp:277
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
OsiChooseVariable::goodObjectiveValue
double goodObjectiveValue() const
Objective value for feasible solution.
Definition: OsiChooseVariable.hpp:93
OsiHotInfo::iterationCount
int iterationCount(int k) const
Iteration count on way k.
Definition: OsiChooseVariable.hpp:488
OsiHotInfo::setUpChange
void setUpChange(double value)
Set up change - invalid if n-way.
Definition: OsiChooseVariable.hpp:472
OsiChooseVariable::downChange
double downChange() const
Estimate of down change or max change on other possibilities if n-way.
Definition: OsiChooseVariable.hpp:99
OsiChooseVariable::saveSolution
void saveSolution(const OsiSolverInterface *solver)
Saves a good solution.
OsiChooseStrong
This class chooses a variable to branch on.
Definition: OsiChooseVariable.hpp:318
OsiPseudoCosts::downNumber
int * downNumber()
Definition: OsiChooseVariable.hpp:289
OsiChooseVariable::setFirstForcedWhichWay
void setFirstForcedWhichWay(int value)
Set preferred way of forced object.
Definition: OsiChooseVariable.hpp:126
OsiPseudoCosts::upTotalChange
const double * upTotalChange() const
Definition: OsiChooseVariable.hpp:281
OsiChooseStrong::~OsiChooseStrong
virtual ~OsiChooseStrong()
Destructor.
OsiChooseVariable::trustStrongForBound
bool trustStrongForBound() const
Trust results from strong branching for changing bounds.
Definition: OsiChooseVariable.hpp:153