lemon/mip_cplex.h
author deba
Tue, 17 Oct 2006 10:50:57 +0000
changeset 2247 269a0dcee70b
child 2366 bfbdded3763a
permissions -rw-r--r--
Update the Path concept
Concept check for paths

DirPath renamed to Path
The interface updated to the new lemon interface
Make difference between the empty path and the path from one node
Builder interface have not been changed
// I wanted but there was not accordance about it

UPath is removed
It was a buggy implementation, it could not iterate on the
nodes in the right order
Right way to use undirected paths => path of edges in undirected graphs

The tests have been modified to the current implementation
athos@2219
     1
/* -*- C++ -*-
athos@2219
     2
 *
athos@2219
     3
 * This file is a part of LEMON, a generic C++ optimization library
athos@2219
     4
 *
athos@2219
     5
 * Copyright (C) 2003-2006
athos@2219
     6
 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
athos@2219
     7
 * (Egervary Research Group on Combinatorial Optimization, EGRES).
athos@2219
     8
 *
athos@2219
     9
 * Permission to use, modify and distribute this software is granted
athos@2219
    10
 * provided that this copyright notice appears in all copies. For
athos@2219
    11
 * precise terms see the accompanying LICENSE file.
athos@2219
    12
 *
athos@2219
    13
 * This software is provided "AS IS" with no warranty of any kind,
athos@2219
    14
 * express or implied, and with no claim as to its suitability for any
athos@2219
    15
 * purpose.
athos@2219
    16
 *
athos@2219
    17
 */
athos@2219
    18
athos@2219
    19
#ifndef LEMON_MIP_CPLEX_H
athos@2219
    20
#define LEMON_MIP_CPLEX_H
athos@2219
    21
athos@2219
    22
///\file
athos@2219
    23
///\brief Header of the LEMON-CPLEX mip solver interface.
athos@2219
    24
///\ingroup gen_opt_group
athos@2219
    25
athos@2219
    26
athos@2219
    27
#include <lemon/lp_cplex.h>
athos@2219
    28
athos@2219
    29
namespace lemon {
athos@2219
    30
athos@2219
    31
  /// \brief Interface for the CPLEX MIP solver
athos@2219
    32
  /// 
athos@2219
    33
  /// This class implements an interface for the CPLEX MIP solver.
athos@2219
    34
  ///\ingroup gen_opt_group
athos@2219
    35
  class MipCplex : public MipSolverBase, public LpCplex{
athos@2219
    36
    
athos@2219
    37
  public:
athos@2219
    38
  
athos@2219
    39
    typedef MipSolverBase ParentMip;
athos@2219
    40
    typedef LpCplex ParentLp;
athos@2219
    41
    
athos@2219
    42
    MipCplex();
athos@2219
    43
    //~MipCplex();
athos@2219
    44
    
athos@2219
    45
    
athos@2219
    46
athos@2219
    47
    
athos@2219
    48
  protected:
athos@2219
    49
  
athos@2219
    50
    virtual ColTypes _colType(int col);
athos@2219
    51
    virtual void _colType(int col, ColTypes col_type);
athos@2219
    52
    
athos@2219
    53
    virtual LpCplex::SolveExitStatus _solve();
athos@2219
    54
    virtual LpCplex::SolutionStatus _getMipStatus();
athos@2219
    55
    virtual ParentLp::Value _getPrimal(int i);
athos@2219
    56
    virtual ParentLp::Value _getPrimalValue();
athos@2219
    57
  };
athos@2219
    58
athos@2219
    59
} //END OF NAMESPACE LEMON
athos@2219
    60
athos@2219
    61
#endif // END OF LEMON_MIP_CPLEX_H