00001 /*===========================================================================*/ 00002 /* */ 00003 /* This file is part of a demonstration application for use with the */ 00004 /* SYMPHONY Branch, Cut, and Price Library. This application is a solver for */ 00005 /* the Mixed Postman Problem. */ 00006 /* */ 00007 /* (c) Copyright 2005-2008 Lehigh University. All Rights Reserved. */ 00008 /* */ 00009 /* This application was originally developed by Andrew Hofmann and was */ 00010 /* modified by Ted Ralphs (tkralphs@lehigh.edu) */ 00011 /* */ 00012 /* This software is licensed under the Common Public License. Please see */ 00013 /* accompanying file for terms. */ 00014 /* */ 00015 /*===========================================================================*/ 00016 00017 #ifndef _MPP_H 00018 #define _MPP_H 00019 00020 /* Cut types */ 00021 00022 #define ODD_CUT 1 00023 00024 /*---------------------------------------------------------------------------*\ 00025 * Use this data structure to store the value of any run-time parameters. 00026 \*---------------------------------------------------------------------------*/ 00027 00028 typedef struct MPP_PARAMETERS{ 00029 /* Name of file containingthe instance data */ 00030 char infile[MAX_FILE_NAME_LENGTH + 1]; 00031 int test; 00032 char test_dir[MAX_FILE_NAME_LENGTH +1]; /* Test files directory */ 00033 }mpp_parameters; 00034 00035 /*---------------------------------------------------------------------------*\ 00036 * Use this data structure to store the instance data after it is read in. 00037 \*---------------------------------------------------------------------------*/ 00038 00039 typedef struct MPP_PROBLEM{ 00040 mpp_parameters par; /* the parameters */ 00041 int numnodes; /* the number of nodes in the graph */ 00042 int numedges; /* number of edges in the graph */ 00043 int numarcs; /* number of arcs in the graph */ 00044 int *cost; /* an array containing the costs */ 00045 int *head; /* an array containing the head of each arc/edge*/ 00046 int *tail; /* an array containing the tail of each arc/edge*/ 00047 char *type; /* an array containing the variable types */ 00048 int *is_odd; /* array containing a 1 if odd 0 if not*/ 00049 int odd_checker;/*indicates if odds have been checked */ 00050 }mpp_problem; 00051 00052 #endif