Exemple #1
0
 public MonocycleState(int color, GridLocation location, int direction, LocalSolver solver)
 {
     _color     = color;
     _location  = location;
     _solver    = solver;
     _direction = direction;
 }
            public void Solve()
            {
                LocalSolver solver;
                var         sbRet = new StringBuilder();

                while ((solver = LocalSolver.ReadCase()) != null)
                {
                    solver.Solve(sbRet);
                }
                Write(sbRet.ToString());
            }
Exemple #3
0
            public void Solve()
            {
                var sbRet = new StringBuilder();
                // ReSharper disable once AssignNullToNotNullAttribute
                var cCases = int.Parse(ReadLine());

                for (var iCase = 0; iCase < cCases; iCase++)
                {
                    LocalSolver.ReadCase().Solve(sbRet);
                }
                Write(sbRet.ToString());
            }
                public static LocalSolver ReadCase()
                {
                    string line;
                    var    ret   = new LocalSolver();
                    var    iData = 1;

                    while ((line = ReadLine()) != null)
                    {
                        var stgs = line.Split(' ').Where(s => s != string.Empty).ToArray();
                        ret._data.Add(new ElephantDatum(int.Parse(stgs[0]), int.Parse(stgs[1]), iData++));
                    }
                    return(ret);
                }
    void Solve(int limit)
    {
        // Declares the optimization model.
        localsolver = new LocalSolver();
        LSModel model = localsolver.GetModel();

        // Decision variables x[i]
        x = new LSExpression[nbItems];
        for (int i = 0; i < nbItems; i++)
        {
            x[i] = model.Bool();
        }

        // weight constraint
        LSExpression knapsackWeight = model.Sum();

        for (int i = 0; i < nbItems; i++)
        {
            knapsackWeight.AddOperand(x[i] * weights[i]);
        }
        model.Constraint(knapsackWeight <= knapsackBound);

        // maximize value
        knapsackValue = model.Sum();
        for (int i = 0; i < nbItems; i++)
        {
            knapsackValue.AddOperand(x[i] * values[i]);
        }

        model.Maximize(knapsackValue);
        model.Close();

        // Parameterizes the solver.
        localsolver.GetParam().SetTimeLimit(limit);

        localsolver.Solve();

        solutions = new List <int>();
        for (int i = 0; i < nbItems; ++i)
        {
            if (x[i].GetValue() == 1)
            {
                solutions.Add(i);
            }
        }
    }
Exemple #6
0
                public static LocalSolver ReadCase()
                {
                    var ret = new LocalSolver();

                    // ReSharper disable once PossibleNullReferenceException
                    var stgs = ReadLine().Split(' ').Where(s => s != string.Empty).ToArray();

                    ret.CRows = int.Parse(stgs[0]);
                    ret.CCols = int.Parse(stgs[1]);
                    if (ret.CRows == 0 && ret.CCols == 0)
                    {
                        return(null);
                    }

                    ret._isBlocked = new bool[ret.CRows][];

                    // We go down here so that index 0 is the bottom row
                    for (var iRow = 0; iRow < ret.CRows; iRow++)
                    {
                        var line = ReadLine();
                        // ReSharper disable once PossibleNullReferenceException
                        var iColStart = line.IndexOf('S');
                        var iColEnd   = line.IndexOf('T');

                        if (iColStart >= 0)
                        {
                            ret._start = new GridLocation(iRow, iColStart);
                        }
                        if (iColEnd >= 0)
                        {
                            ret._end = new GridLocation(iRow, iColEnd);
                        }
                        ret._isBlocked[iRow] = line.Select(c => c == '#').ToArray();
                    }

                    return(ret);
                }
Exemple #7
0
            public void Solve()
            {
                LocalSolver solver;
                var         sbRet  = new StringBuilder();
                var         iCase  = 1;
                var         fFirst = true;

                while ((solver = LocalSolver.ReadCase()) != null)
                {
                    using (var info = new GridLocation.NeighborInfo(solver.CRows, solver.CCols))
                    {
                        if (!fFirst)
                        {
                            sbRet.Append(Environment.NewLine);
                        }

                        fFirst = false;
                        sbRet.Append($"Case #{iCase++}");
                        sbRet.Append(Environment.NewLine);
                        solver.Solve(sbRet);
                    }
                }
                Write(sbRet.ToString());
            }
            public void Solve()
            {
                var solver = LocalSolver.ReadCase();

                solver.Solve();
            }
 public Knapsack()
 {
     localsolver = new LocalSolver();
 }
Exemple #10
0
 public Cvrp(string strNbTrucks)
 {
     localsolver = new LocalSolver();
     nbTrucks    = int.Parse(strNbTrucks);
 }