/******************************************************** Xpress-BCL C++ Example Problems =============================== file xbexpl1i.cxx ````````````````` BCL user guide example. Version using index sets. (c) 2008-2024 Fair Isaac Corporation author: S.Heipcke, 2003, rev. Mar. 2011 ********************************************************/ #include #include #include #include "xprb_cpp.h" using namespace std; using namespace ::dashoptimization; #define MAXNJ 4 /* Max. 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 */ XPRBindexSet Jobs; /* Job names */ XPRBvar *start; /* Start times of jobs */ XPRBvar **delta; /* Binaries for start times */ XPRBvar z; /* Maximum completion time (makespan) */ void readData(XPRBprob &); /* Read data from file */ void jobsModel(XPRBprob &); /* Basic model formulation */ void jobsSolve(XPRBprob &); /* Solving and solution printing */ /*************************************************************************/ void readData(XPRBprob &p) { char name[100]; FILE *datafile; /* Create a new index set */ Jobs = p.newIndexSet("jobs", MAXNJ); datafile=fopen(DATAFILE,"r"); /* Open the data file for read access */ while(NJ