From 73b94daaaa50c0b4692433be3b9fe36a8120d857 Mon Sep 17 00:00:00 2001 From: Paul Date: Sun, 9 Jun 2019 12:16:32 -0400 Subject: [PATCH] Create LinearProgrammingExample.cs Add C# version of linear_programming_example.cc. --- .../samples/LinearProgrammingExample.cs | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 ortools/linear_solver/samples/LinearProgrammingExample.cs diff --git a/ortools/linear_solver/samples/LinearProgrammingExample.cs b/ortools/linear_solver/samples/LinearProgrammingExample.cs new file mode 100644 index 0000000000..1f9d7b57ed --- /dev/null +++ b/ortools/linear_solver/samples/LinearProgrammingExample.cs @@ -0,0 +1,74 @@ +// Copyright 2010-2018 Google LLC +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Linear optimization example. +// [START program] +using System; +using Google.OrTools.LinearSolver; + +public class LinearProgrammingExample +{ + static void Main() + { + // [START solver] + MPSolver solver = new MPSolver("LinearProgrammingExample", "GLOP_LINEAR_PROGRAMMING"); + // [END solver] + // x and y are continuous non-negative variables. + // [START variables] + Variable x = solver.MakeNumVar(0.0, double.PositiveInfinity, "x"); + Variable y = solver.MakeNumVar(0.0, double.PositiveInfinity, "y"); + // [END variables] + + // [START constraints] + // x + 2y <= 14. + Constraint c0 = solver.MakeConstraint(double.NegativeInfinity, 14.0); + c0.SetCoefficient(x, 1); + c0.SetCoefficient(y, 2); + + // 3x - y >= 0. + Constraint c1 = solver.MakeConstraint(0.0, double.PositiveInfinity); + c1.SetCoefficient(x, 3); + c1.SetCoefficient(y, -1); + + // x - y <= 2. + Constraint c2 = solver.MakeConstraint(double.NegativeInfinity, 2.0); + c2.SetCoefficient(x, 1); + c2.SetCoefficient(y, -1); + // [END constraints] + + // [START objective] + // Objective function: 3x + 4y. + Objective objective = solver.Objective(); + objective.SetCoefficient(x, 3); + objective.SetCoefficient(y, 4); + objective.SetMaximization(); + // [END objective] + + // [START solve] + solver.Solve(); + // [END solve] + + // [START print_solution] + Console.WriteLine("Number of variables = " + solver.NumVariables()); + Console.WriteLine("Number of constraints = " + solver.NumConstraints()); + // The value of each variable in the solution. + Console.WriteLine("Solution:"); + Console.WriteLine("x = " + x.SolutionValue()); + Console.WriteLine("y = " + y.SolutionValue()); + // The objective value of the solution. + Console.WriteLine("Optimal objective value = " + + solver.Objective().Value()); + // [END print_solution] + } +} +// [END program]