public static void Main(string[] args) { if (args.Length != 1) { System.Console.WriteLine("Usage: AdMIPex1 filename"); System.Console.WriteLine(" where filename is a file with extension "); System.Console.WriteLine(" MPS, SAV, or LP (lower case is allowed)"); System.Console.WriteLine(" Exiting..."); System.Environment.Exit(-1); } try { Cplex cplex = new Cplex(); cplex.ImportModel(args[0]); if (cplex.NSOS1 > 0) { ISOS1[] sos1 = new ISOS1[cplex.NSOS1]; int i = 0; for (IEnumerator sosenum = cplex.GetSOS1Enumerator(); sosenum.MoveNext(); ++i) { sos1[i] = (ISOS1)sosenum.Current; } cplex.Use(new SOSbranch(sos1)); System.Console.WriteLine("using SOS branch callback for " + sos1.Length + " SOS1s"); } cplex.SetParam(Cplex.Param.MIP.Strategy.Search, Cplex.MIPSearch.Traditional); if (cplex.Solve()) { IEnumerator matrixEnum = cplex.GetLPMatrixEnumerator(); matrixEnum.MoveNext(); ILPMatrix matrix = (ILPMatrix)matrixEnum.Current; double[] vals = cplex.GetValues(matrix); System.Console.WriteLine("Solution status = " + cplex.GetStatus()); System.Console.WriteLine("Solution value = " + cplex.ObjValue); } cplex.End(); } catch (ILOG.Concert.Exception exc) { System.Console.WriteLine("Concert exception caught: " + exc); } }
public static void Main(string[] args) { if ( args.Length != 1 ) { System.Console.WriteLine("Usage: AdMIPex1 filename"); System.Console.WriteLine(" where filename is a file with extension "); System.Console.WriteLine(" MPS, SAV, or LP (lower case is allowed)"); System.Console.WriteLine(" Exiting..."); System.Environment.Exit(-1); } try { Cplex cplex = new Cplex(); cplex.ImportModel(args[0]); if ( cplex.NSOS1 > 0 ) { ISOS1[] sos1 = new ISOS1[cplex.NSOS1]; int i = 0; for (IEnumerator sosenum = cplex.GetSOS1Enumerator(); sosenum.MoveNext(); ++i) { sos1[i] = (ISOS1)sosenum.Current; } cplex.Use(new SOSbranch(sos1)); System.Console.WriteLine("using SOS branch callback for " + sos1.Length + " SOS1s"); } cplex.SetParam(Cplex.Param.MIP.Strategy.Search, Cplex.MIPSearch.Traditional); if (cplex.Solve()) { IEnumerator matrixEnum = cplex.GetLPMatrixEnumerator(); matrixEnum.MoveNext(); ILPMatrix matrix = (ILPMatrix)matrixEnum.Current; double[] vals = cplex.GetValues(matrix); System.Console.WriteLine("Solution status = " + cplex.GetStatus()); System.Console.WriteLine("Solution value = " + cplex.ObjValue); } cplex.End(); } catch (ILOG.Concert.Exception exc) { System.Console.WriteLine("Concert exception caught: " + exc); } }
public SOSbranch(ISOS1[] sos) { _sos = sos; }