public static void Main(String[] args) { String fileName = "../../../../examples/data/sched_conflict.data"; int failLimit = 10000; if (args.Length > 0) { fileName = args[0]; } if (args.Length > 1) { failLimit = Convert.ToInt32(args[1]); } try { SchedConflict problem = new SchedConflict(fileName); int nbCapacityCts = capacityCts.Length; int nbPrecedenceCts = precedenceCts.Length; IConstraint[] allCts = new IConstraint[nbCapacityCts + nbPrecedenceCts]; for (int i = 0; i < nbCapacityCts; ++i) { allCts[i] = capacityCts[i]; } for (int i = 0; i < nbPrecedenceCts; ++i) { allCts[nbCapacityCts + i] = precedenceCts[i]; } cp.SetParameter(CP.IntParam.FailLimit, failLimit); cp.SetParameter(CP.IntParam.CumulFunctionInferenceLevel, CP.ParameterValues.Extended); cp.SetParameter(CP.IntParam.ConflictRefinerOnVariables, CP.ParameterValues.On); Console.WriteLine("Instance \t: " + fileName); if (cp.Solve()) { // A solution was found Console.WriteLine("Solution found with makespan : " + cp.ObjValue); } else { int status = cp.GetInfo(CP.IntInfo.FailStatus); if (status != CP.ParameterValues.SearchHasFailedNormally.Value) { // No solution found but problem was not proved infeasible Console.WriteLine("No solution found but problem was not proved infeasible."); } else { // Run conflict refiner only if problem was proved infeasible Console.WriteLine("Infeasible problem, running conflict refiner ..."); Console.WriteLine("SCENARIO 1: Basic conflict refiner:"); runBasicConflictRefiner(); cp.SetParameter(CP.IntParam.LogVerbosity, CP.ParameterValues.Quiet); Console.WriteLine("SCENARIO 2: Conflict refiner with preference on resource capacity constraints:"); runConflictRefinerWithPreferences(cp, capacityCts, precedenceCts); Console.WriteLine("SCENARIO 3: Conflict refiner with preference on precedence constraints:"); runConflictRefinerWithPreferences(cp, precedenceCts, capacityCts); Console.WriteLine("SCENARIO 4: Conflict partition:"); runConflictRefinerPartition(cp, allCts); Console.WriteLine("SCENARIO 5: All conflicts:"); runConflictRefinerAllConflicts(cp, allCts); } } } catch (ILOG.Concert.Exception e) { Console.WriteLine("Error: " + e); } }
public static void Main(String[] args) { String fileName = "../../../../examples/data/sched_conflict.data"; int failLimit = 10000; if (args.Length > 0) fileName = args[0]; if (args.Length > 1) failLimit = Convert.ToInt32(args[1]); try { SchedConflict problem = new SchedConflict(fileName); int nbCapacityCts = capacityCts.Length; int nbPrecedenceCts = precedenceCts.Length; IConstraint[] allCts = new IConstraint[nbCapacityCts+nbPrecedenceCts]; for (int i=0; i<nbCapacityCts; ++i) { allCts[i] = capacityCts[i]; } for (int i=0; i<nbPrecedenceCts; ++i) { allCts[nbCapacityCts+i] = precedenceCts[i]; } cp.SetParameter(CP.IntParam.FailLimit, failLimit); cp.SetParameter(CP.IntParam.CumulFunctionInferenceLevel, CP.ParameterValues.Extended); cp.SetParameter(CP.IntParam.ConflictRefinerOnVariables, CP.ParameterValues.On); Console.WriteLine("Instance \t: " + fileName); if (cp.Solve()) { // A solution was found Console.WriteLine("Solution found with makespan : " + cp.ObjValue); } else { int status = cp.GetInfo(CP.IntInfo.FailStatus); if (status != CP.ParameterValues.SearchHasFailedNormally.Value) { // No solution found but problem was not proved infeasible Console.WriteLine("No solution found but problem was not proved infeasible."); } else { // Run conflict refiner only if problem was proved infeasible Console.WriteLine("Infeasible problem, running conflict refiner ..."); Console.WriteLine("SCENARIO 1: Basic conflict refiner:"); runBasicConflictRefiner(); cp.SetParameter(CP.IntParam.LogVerbosity, CP.ParameterValues.Quiet); Console.WriteLine("SCENARIO 2: Conflict refiner with preference on resource capacity constraints:"); runConflictRefinerWithPreferences(cp, capacityCts, precedenceCts); Console.WriteLine("SCENARIO 3: Conflict refiner with preference on precedence constraints:"); runConflictRefinerWithPreferences(cp, precedenceCts, capacityCts); Console.WriteLine("SCENARIO 4: Conflict partition:"); runConflictRefinerPartition(cp, allCts); Console.WriteLine("SCENARIO 5: All conflicts:"); runConflictRefinerAllConflicts(cp, allCts); } } } catch (ILOG.Concert.Exception e) { Console.WriteLine("Error: " + e); } }