/******************************************************** BCL Example Problems ==================== file xbexpl1i.c ``````````````` BCL user guide example. Version using index sets. (c) 2008 Fair Isaac Corporation author: S.Heipcke, 2003, rev. Mar. 2011 ********************************************************/ #include #include #include "xprb.h" #define MAXNJ 4 /* Maximum number of jobs */ #define NT 10 /* Time limit */ #define DATAFILE XPRBDATAPATH "/jobs/durations.dat" /**** DATA ****/ int NJ = 0; /* Number of jobs read in */ double DUR[MAXNJ]; /* Durations of jobs */ XPRBidxset Jobs; /* Job names */ XPRBvar *start; /* Start times of jobs */ XPRBvar **delta; /* Binaries for start times */ XPRBvar z; /* Maximum completion time (makespan) */ XPRBprob prob; /* BCL problem */ void read_data(void); /* Read data from file */ void jobs_model(void); /* Model formulation */ void jobs_solve(void); /* Solving and solution printing */ /*************************************************************************/ void read_data(void) { char name[100]; FILE *datafile; /* Create a new index set */ Jobs = XPRBnewidxset(prob, "jobs", MAXNJ); datafile=fopen(DATAFILE,"r"); /* Open the data file for read access */ while(NJ