# qp_vb.vb

Filter Content By
Version
Languages

### qp_vb.vb

' Copyright 2019, Gurobi Optimization, LLC

' This example formulates and solves the following simple QP model:
'
'     minimize    x^2 + x*y + y^2 + y*z + z^2 + 2 x
'     subject to  x + 2 y + 3 z >= 4
'                 x +   y       >= 1
'                 x, y, z non-negative
'
'   It solves it once as a continuous model, and once as an integer model.
'

Imports Gurobi

Class qp_vb
Shared Sub Main()
Try
Dim env As New GRBEnv("qp.log")
Dim model As New GRBModel(env)

' Create variables

Dim x As GRBVar = model.AddVar(0.0, 1.0, 0.0, GRB.CONTINUOUS, "x")
Dim y As GRBVar = model.AddVar(0.0, 1.0, 0.0, GRB.CONTINUOUS, "y")
Dim z As GRBVar = model.AddVar(0.0, 1.0, 0.0, GRB.CONTINUOUS, "z")

' Set objective

Dim obj As New GRBQuadExpr()
obj = x*x + x*y + y*y + y*z + z*z + 2*x
model.SetObjective(obj)

' Add constraint: x + 2 y + 3 z >= 4

model.AddConstr(x + 2 * y + 3 * z >= 4.0, "c0")

' Add constraint: x + y >= 1

model.AddConstr(x + y >= 1.0, "c1")

' Optimize model

model.Optimize()

Console.WriteLine(x.VarName & " " & x.X)
Console.WriteLine(y.VarName & " " & y.X)
Console.WriteLine(z.VarName & " " & z.X)

Console.WriteLine("Obj: " & model.ObjVal & " " & obj.Value)

' Change variable types to integer

x.VType = GRB.INTEGER
y.VType = GRB.INTEGER
z.VType = GRB.INTEGER

' Optimize model

model.Optimize()

Console.WriteLine(x.VarName & " " & x.X)
Console.WriteLine(y.VarName & " " & y.X)
Console.WriteLine(z.VarName & " " & z.X)

Console.WriteLine("Obj: " & model.ObjVal & " " & obj.Value)

' Dispose of model and env

model.Dispose()
env.Dispose()

Catch e As GRBException
Console.WriteLine("Error code: " & e.ErrorCode & ". " & e.Message)
End Try
End Sub
End Class