Imports System Imports CenterSpace.NMath.Core Namespace CenterSpace.NMath.Examples.VisualBasic A .NET example in Visual Basic Module QuadraticProgrammingExample Example illustrating the use of the ActiveSetQPSolver Module to solve a Quadratic Programming (QP) problem. Sub Main() Minimize q(x) = (x0 - 1)^2 + (x1 - 2.5)^2 subject to -x0 + 2*x1 <= 2 x0 - 2*x1 >= -6 -x0 + 2*x1 >= -2 x0 >= 0 x1 >= 0 Translating the objective function into the form 0.5*xHx + xc yields H = | 2 0 | | 0 2 | x = (-2 -5) Dim H As New DoubleMatrix("2x2[2 0 0 2]") Dim C As New DoubleVector(-2.0, -5.0) Set up the QP problem Dim Problem As New QuadraticProgrammingProblem(H, C) Problem.AddUpperBoundConstraint(New DoubleVector(-1.0, 2.0), 2.0) Problem.AddLowerBoundConstraint(New DoubleVector(1.0, -2.0), -6.0) Problem.AddLowerBoundConstraint(New DoubleVector(-1.0, 2.0), -2.0) add the lower bound of 0 for x0 Problem.AddLowerBound(0, 0) add the lower bound of 0 for x1 Problem.AddLowerBound(1, 0) Dim solver As New ActiveSetQPSolver() Console.WriteLine() If (solver.Solve(Problem) <> True) Then Solver failed to find a solution. Print out the solver status. Console.WriteLine("Solver failed. Status = {0}", solver.Status) Return End If Solver found a solution. Print out the optimal x and objective function values and the number of iterations. Console.WriteLine("Solver found solution (x0, x1) = ({0}, {1}) after {2} iterations", _ solver.OptimalX(0), solver.OptimalX(1), solver.Iterations) Console.WriteLine("Optimal objective function value = {0}", solver.OptimalObjectiveFunctionValue) Console.WriteLine() Console.WriteLine("Press Enter Key") Console.Read() End Sub End Module End Namespace← All NMath Code Examples