# C# Mixed Int Linear Programming Example

← All NMath Code Examples

```ï»¿using System;

using CenterSpace.NMath.Core;
using CenterSpace.NMath.Analysis;

namespace CenterSpace.NMath.Analysis.Examples.CSharp
{
/// <summary>
/// Maximize 5*x0 + 3*x1
/// Subject to:
/// x0 - x1 &lt;= 5
/// 0 &lt;= 2*x0 + x1 &lt;= 25
/// x0 &gt;= 0
/// x1 &lt;= 10
/// </summary>
public class MixedIntLinearProgrammingExample
{
static void Main( string[] args )
{
// Create the mixed integer programming problem for maximizing the
// objective function 5*x0 + 3*x1. The objective function is specified
// by a vector of coefficients.
var objectiveCoefficients = new DoubleVector( 5.0, 3.0 );
var problem = new MixedIntegerLinearProgrammingProblem( objectiveCoefficients );

// Add the constraints. The linear constraints are specified by the vector
// of the their coefficients.

// x0 -x1 <= 5
problem.AddUpperBoundConstraint( new DoubleVector( 1.0, -1.0 ), 5.0 );

// 0 <= 2*x0 + x1 <= 25
problem.AddConstraint( new DoubleVector( 2.0, 1.0 ), 0.0, 25.0 );

// Add the variable bounds. The index of the variable is specified in
// the first argument and the bound in the second.

// x0 >= 0

// x1 <= 10

// Finally, the first variable x0 is constrained to be integer valued.
// x0 integral

// Create the linear programming problem solver object with default
// parameters and use it so solve the problem.
var solver = new DualSimplexSolver();
solver.Solve( problem );

// Write out the results.
Console.WriteLine( "Result: " + solver.Result );
Console.WriteLine( "Optimal X: " + solver.OptimalX );
Console.WriteLine( "Optimal Objective Function Value: " + solver.OptimalObjectiveFunctionValue );

Console.WriteLine();
Console.WriteLine( "Press Enter Key" );