static void Main(string[] args) { ISolverAdapter SolverAdapter = AbstractSolverAdapter.GetSolverAadapter(SolverChoisi); object solver = SolverAdapter.CreateProblem(4); /// Entrer le nombre des variables (colonnes) comme paramétre de la fonction CreateProblem (ici c'est 4) SolverAdapter.SetObjFn(solver, new double[] { 87.9, 0, -40.45, 33.32 }); SolverAdapter.AddConstraint(solver, new double[] { 3000, 200, 2000, 1000 }, SolverAdapterConstraintTypes.LE, 4000); /// ".LE" pour "Lower than or equal to" SolverAdapter.AddConstraint(solver, new double[] { 0, 4000, 330, 112 }, SolverAdapterConstraintTypes.GE, 100); /// ".GE" pour "Greater than or equal to" SolverAdapter.AddConstraint(solver, new double[] { 1875, 61, 0, 3152 }, SolverAdapterConstraintTypes.LE, 7200); SolverAdapter.AddConstraint(solver, new double[] { -100, 6.3, 7.5, 300 }, SolverAdapterConstraintTypes.LE, 1300); SolverAdapter.Solve(solver); SolverAdapter.WriteLp(solver, FileName); Console.ReadLine(); }
public object[,] Solve() { int nbrVar = linesDico.Values.Count; object test; double[] result = new double[nbrVar + 1]; object[,] finalResult = new object[nbrVar + 3, 2]; solver = solverAdapter.CreateProblem(nbrVar); AddCapacityConstraintsAndTargetObj(finalResult); AddPdvConstraints(); AddConsoACSConstraints(); AddConsoACPConstraints(); test = solverAdapter.Solve(solver); solverAdapter.GetVariables(solver, result); result[nbrVar] = solverAdapter.GetObjective(solver); finalResult[0, 0] = "Production Line"; finalResult[0, 1] = "Production Quantity" + capexObjectManager.Year; finalResult[nbrVar + 1, 0] = "Total Cost"; finalResult[nbrVar + 2, 0] = "Rock Needs"; for (int k = 0; k < nbrVar + 1; k++) { finalResult[k + 1, 1] = result[k]; } finalResult[nbrVar + 2, 1] = 0.0; for (int i = 0; i < linesDico.Values.Count; i++) { Unit unit = linesDico.Values.ElementAt(i); finalResult[nbrVar + 2, 1] = (double)finalResult[nbrVar + 2, 1] + result[i] * unit.RockConsumption; } bool ret = solverAdapter.WriteLp(solver, "LpFile_" + capexObjectManager.Year + ".txt"); return(finalResult); }