Example #1
0
    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);
        }
    }
Example #2
0
    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);
          }
    }
Example #3
0
 public SOSbranch(ISOS1[] sos)
 {
     _sos = sos;
 }