[Cbc] Cbc returns fractional solutions

Vishy Jeet vishv.jeet at gmail.com
Fri May 11 14:21:13 EDT 2007


 Hi Lou

You are right. I have been trying several things since yesterday. And in
CbcModel.cpp
it is mentioned that after branchAndBound() call, we must check the status
and the
secondary status:

    /** Final status of problem
        Some of these can be found out by is...... functions
        -1 before branchAndBound
        0 finished - check isProvenOptimal or isProvenInfeasible to see if
solution found
        (or check value of best solution)
        1 stopped - on maxnodes, maxsols, maxtime
        2 difficulties so run was abandoned
        (5 event user programmed event occurred)
    */
    inline int status() const
    { return status_;};
    /** Secondary status of problem
        -1 unset (status_ will also be -1)
        0 search completed with solution
        1 linear relaxation not feasible (or worse than cutoff)
        2 stopped on gap
        3 stopped on nodes
        4 stopped on time
        5 stopped on user event
        6 stopped on solutions
    */

However, I am still facing the problem since I cannot call those functions
in my program since I am using Flopcpp and I must use the same set of
functions with their new names mentioned in
OsiCbcSolverInterface.hpp....and here the behaviour of these function is
seemingly different.

  virtual bool isAbandoned() const;
  /// Is optimality proven?
  virtual bool isProvenOptimal() const;
  /// Is primal infeasiblity proven?
  virtual bool *isProvenPrimalInfeasible()* const;
  /// Is dual infeasiblity proven?
  virtual bool isProvenDualInfeasible() const;
  /// Is the given primal objective limit reached?
  virtual bool isPrimalObjectiveLimitReached() const;
  /// Is the given dual objective limit reached?
  virtual bool isDualObjectiveLimitReached() const;
  /// Iteration limit reached?
  virtual bool isIterationLimitReached() const;

regards,
vishy



On 5/11/07, Lou Hafer <lou at cs.sfu.ca> wrote:
>
> Vishy,
>
>        Perhaps you're expecting too much from minimum.cpp.  It's exactly
> what
> it says, an absolute minimal driver.  In particular, it doesn't analyse
> the
> status at the end of branch-and-cut, it simply asks for a
> solution.  Looking at
> the output, I see:
>
> <snip>
> Coin0002I Problem BLANK has 858 rows, 196 columns and 2851 elements
> Coin0008I BLANK read with 0 errors
> Clp0006I 0  Obj 20000 Primal inf 140114 (68)
> Clp0006I 184  Obj 1.54172e+06
> Clp0000I Optimal - objective value 1.54172e+06
> Clp0000I Optimal - objective value 1.54172e+06
> Clp0006I 0  Obj 1.54172e+06 Primal inf 27.3355 (2)
> Clp0006I 29  Obj 1.56244e+06
> Clp0000I Optimal - objective value 1.56244e+06
> Cbc0001I Search completed - best objective 1e+50, took 0 iterations and 0
> nodes
> (0.33 seconds)
> Cbc0032I Strong branching done 12 times (246 iterations), fathomed 1 nodes
> and
> fixed 2 variables
> Cbc0035I Maximum depth 0, 0 variables fixed on reduced cost
> Clp0006I 0  Obj 1.56244e+06 Primal inf 17 (30) Dual inf 3.99999e+10 (4)
> Clp0006I 7  Obj 1.56244e+06 Primal inf 17 (30)
> Clp0001I Primal infeasible - objective value 1.56244e+06
> 0 has value 1
> 1 has value 1
> 6 has value 0.548986
> 7 has value 0.451014
> 9 has value 0.513514
> 10 has value 0.486486
> 12 has value 0.548986
> 13 has value 0.451014
> 15 has value 0.513514
> 16 has value 0.486486
> 18 has value 0.742278
> <snip>
>
> You'll notice that Cbc reports branch-and-cut search completed with an
> objective
> of 1e+50 --- this is the condition for `no solution'.  If you add a call
> to
> model.isProvenInfeasible(), it will report true.  The `solution' you're
> seeing
> is simply the result of clp trying to comply with a request for a solution
> that
> doesn't exist.  The values reported are the primal variables at the point
> where
> clp declared infeasibility.
>
>        The cbc executable does the necessary checks and properly reports
> this
> problem as infeasible.
>
>                                                        Lou
>
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc
>



-- 
Best Regards,
Vishv Jeet, Ph.D.,
Operations Research Scientist,
Gravitant Inc.,
(The Business Governance Company)
http://www.gravitant.com
Austin, TX, USA.
Cell    : 1-512-657-8678
Home : 1-512-788-5795
Work  : 1-512-535-7399
_______________________
Youngest Music Meastro
http://www.mayanksahu.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.coin-or.org/pipermail/cbc/attachments/20070511/afe98252/attachment.html


More information about the Cbc mailing list