예제 #1
0
파일: Program.cs 프로젝트: ampl/ampls-api
        static void Main(string[] args)
        {
            const string model = @"D:\Development\AMPL\ampls-api\test\models\model.nl";
            CPLEXDrv     cpx   = new CPLEXDrv();
            var          mc    = cpx.loadModel(model);

            DoStuff(mc);
            GurobiDrv grb = new GurobiDrv();
            var       mg  = grb.loadModel(model);

            DoStuff(mg);
        }
예제 #2
0
파일: Program.cs 프로젝트: ampl/ampls-api
        static void Main(string[] args)
        {
            const string nodelFile = @"D:\Development\AMPL\solvers-public\test\models\tsp.nl";
            // const string nodelFile = @"D:\\model.nl";
            CPLEXDrv g = new CPLEXDrv();

            try
            {
                var m = g.loadModel(nodelFile);

                int nvars = m.getNumVars();
                // CB cb = new CB();
                //m.setCallback(cb);

                MyCPLEXCallback cplexcallback = new MyCPLEXCallback();
                m.setCallback(cplexcallback);
                //double obj = m.optimize();
                var env = m.getCPXENV();
                var cpx = m.getCPXLP();
                cpxsharp_c.CPXmipopt(env, cpx);

                Console.WriteLine("Solution with CPLEX={0}", m.getObj());
                double[] sol = new double[nvars];
                m.getSolution(0, nvars, sol);
                m.writeSol();
                // var map = m.getVarMap();
                // foreach (var item in map)
                // {
                //    if (sol[item.Value] != 0)
                //        Console.WriteLine("{0}: {1}", item.Key, sol[item.Value]);
                // }
            }
            catch (Exception ex)
            {
                Console.WriteLine("exception caught!\r\n" + ex.Message);
            }
        }