TSP_ConcordeI.h

Go to the documentation of this file.
00001 //===========================================================================//
00002 // This file is part of the Decomp Solver Framework.                         //
00003 //                                                                           //
00004 // Decomp is distributed under the Common Public License as part of the      //
00005 // COIN-OR repository (http://www.coin-or.org).                              //
00006 //                                                                           //
00007 // Author: Matthew Galati, Lehigh University                                 //
00008 //                                                                           //
00009 // Copyright (C) 2002-2015, Lehigh University, Matthew Galati, and Ted Ralphs//
00010 // All Rights Reserved.                                                      //
00011 //===========================================================================//
00012 
00013 #ifndef TSP_CONCORDEI_INCLUDED
00014 #define TSP_CONCORDEI_INCLUDED
00015 
00016 // --------------------------------------------------------------------- //
00017 typedef struct CCtsp_skeleton {
00018    int   atomcount;
00019    int * atoms;
00020 } CCtsp_skeleton;
00021 
00022 typedef struct CCtsp_segment {
00023    int lo;
00024    int hi;
00025 } CCtsp_segment;
00026 
00027 typedef struct CCtsp_lpclique {
00028    int                    segcount;
00029    struct CCtsp_segment * nodes;
00030    int                    hashnext;
00031    int                    refcount;
00032 } CCtsp_lpclique;
00033 
00034 typedef struct CCtsp_lpcut_in {
00035    int                    cliquecount;
00036    int                    dominocount;
00037    int                    rhs;
00038    char                   sense;
00039    char                   branch;
00040    CCtsp_lpclique        *cliques;
00041    struct CCtsp_lpdomino        *dominos;
00042    CCtsp_skeleton         skel;
00043    struct CCtsp_lpcut_in *next;
00044    struct CCtsp_lpcut_in *prev;
00045 } CCtsp_lpcut_in;
00046 
00047 #define CC_FOREACH_NODE_IN_CLIQUE(i,c,tmp) \
00048     for(tmp=0;tmp<(c).segcount;tmp++) \
00049         for(i=(c).nodes[tmp].lo;i<=(c).nodes[tmp].hi;i++)
00050 
00051 
00052 
00053 
00054 #if 0
00055 
00056 
00057 typedef struct CCtsp_lpdomino {
00058    CCtsp_lpclique        sets[2];
00059    int                   hashnext;
00060    int                   refcount;
00061 } CCtsp_lpdomino;
00062 
00063 #endif
00064 
00065 
00066 extern int CCtsp_exact_subtours (CCtsp_lpcut_in ** cuts, 
00067                  int             * cutcount, 
00068                  int               ncount,
00069                  int               ecount, 
00070                  int             * elist, 
00071                  double          * x);
00072 extern void
00073 CCtsp_free_lpcut_in (CCtsp_lpcut_in *c);
00074 
00075  
00076 #endif

Generated on 5 Apr 2015 for Dip-All by  doxygen 1.6.1