PATHSolver.OptimizerMethod
Optimizer()

Define a new PATH optimizer.

Pass options using MOI.RawOptimizerAttribute. Common options include:

  • output => "yes"
  • convergence_tolerance => 1e-6
  • time_limit => 3600

A full list of options can be found at http://pages.cs.wisc.edu/~ferris/path/options.pdf.

Example

optimizer = PATH.Optimizer()
MOI.set(optimizer, MOI.RawOptimizerAttribute("output"), "no")
PATHSolver.c_api_Path_CheckLicenseMethod
c_api_Path_CheckLicense(n::Int, nnz::Int)

Check that the current license (stored in the environment variable PATH_LICENSE_STRING if present) is valid for problems with n variables and nnz non-zeros in the Jacobian.

Returns a nonzero value on successful completion, and a zero value on failure.

PATHSolver.solve_mcpMethod
solve_mcp(
    F::Function,
    J::Function
    lb::Vector{Cdouble},
    ub::Vector{Cdouble},
    z::Vector{Cdouble};
    nnz::Int = length(lb)^2,
    variable_name::Vector{String}=String[],
    constraint_name::Vector{String}=String[],        
    silent::Bool = false,
    generate_output::Integer = 0,
    use_start::Bool = true,
    use_basics::Bool = false,
    kwargs...
)

Mathematically, the mixed complementarity problem is to find an x such that for each i, at least one of the following hold:

  1. Fi(x) = 0, lbi <= (x)i <= ubi
  2. Fi(x) > 0, (x)i = lb_i
  3. Fi(x) < 0, (x)i = ub_i

where F is a given function from R^n to R^n, and lb and ub are prescribed lower and upper bounds.

z is an initial starting point for the search.

F is a function F(n::Cint, x::Vector{Cdouble}, f::Vector{Cdouble}) that should calculate the function F(x) and store the result in f.

PATHSolver.solve_mcpMethod
solve_mcp(;
    M::SparseArrays.SparseMatrixCSC{Cdouble, Cint},
    q::Vector{Cdouble},
    lb::Vector{Cdouble},
    ub::Vector{Cdouble},
    z::Vector{Cdouble};
    kwargs...
)

Mathematically, the mixed complementarity problem is to find an x such that for each i, at least one of the following hold:

  1. Fi(x) = 0, lbi <= (x)i <= ubi
  2. Fi(x) > 0, (x)i = lb_i
  3. Fi(x) < 0, (x)i = ub_i

where F is a function F(x) = M * x + q from R^n to R^n, and lb and ub are prescribed lower and upper bounds.

z is an initial starting point for the search.