Question: import java.io . BufferedWriter; import java.io . FileWriter; import java.io . IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import ilog . concert.IloException; import ilog .
import java.ioBufferedWriter;
import java.ioFileWriter;
import java.ioIOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import ilogconcert.IloException;
import ilogconcert.IloIntVar;
import ilogconcert.IloRange;
import ilogcplex.IloCplex;
public class Runner
private static final String INPUTFILENAME "prefs.csv;
private static final String OUTPUTFILENAME "assignment.txt;
public static void mainString args
PreferenceData data PreferenceData.readDataINPUTFILENAME;
tryBufferedWriter writer new BufferedWriternew FileWriterOUTPUTFILENAME
IloCplex cplex new IloCplex;
cplex.setOutnull;
List variableNames new ArrayList;
for Student s : data.getStudents
for Project p : data.getProjects
variableNames.addsgetName sgetStudentNumber sgetEmail pgetSupervisor;
List variables new ArrayListvariableNamessize;
for String name : variableNames
variables.addcplexintVar name;
IloIntVar varArray variables.toArraynew IloIntVarvariablessize;
IloRange constraints new IloRangedatanumStudents data.numProjects;
for int k ; k data.numStudents; k
IloIntVar studentVars Arrays.copyOfRangevarArray k data.numProjectskdatanumProjects;
constraintsk cplex.addEq cplex.sumstudentVars;
for int k data.numStudents; k data.numStudents data.numProjects; k
IloIntVar projectVars new IloIntVardatanumStudents;
int column k data.numStudents;
for int i ; i data.numStudents; i
projectVarsi varArrayidatanumProjects column;
constraintsk cplex.addLecplexsumprojectVars data.getProjectsgetcolumngetCapacity;
int coefficients new intdatanumStudents data.numProjects;
for int i ; i data.numStudents; i
for int j ; j data.numProjects; j
coefficientsi data.numProjects j data.getPreferencei j;
cplex.addMinimizecplexscalProdvarArray coefficients;
List solution null;
if cplexsolve
double values cplex.getValuesvarArray;
solution new ArrayList;
for int i ; i varArray.length; i
if valuesi
solution.addvariableNamesgeti;
for String s : solution
writer.writes
;
cplex.clearModel;
catch IloException e
eprintStackTrace;
catch IOException e
System.err.printlnFailed attempt to write to file: OUTPUTFILENAME;
eprintStackTrace;
as above, please demonstration of understanding of what design choices may have been made in that section of the program and why this may require examining the rest of the code as well as a comment
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
