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()); }
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); } } }
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); }
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(); }
public Cvrp(string strNbTrucks) { localsolver = new LocalSolver(); nbTrucks = int.Parse(strNbTrucks); }