PATHSolver.MCP_Interface
— TypeMCP_Interface
A storage struct that is used to pass problem-specific functions to PATH.
PATHSolver.Optimizer
— MethodOptimizer()
Define a new PATH optimizer.
Pass options using MOI.RawParameter
. 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.RawParameter("output"), "no")
PATHSolver.c_api_Path_CheckLicense
— Methodc_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.c_api_Path_Solve
— Methodc_api_Path_Solve(m::MCP, info::Information)
Returns a MCP_Termination status.
PATHSolver.c_api_Path_Version
— Methodc_api_Path_Version()
Return a string of the PATH version.
PATHSolver.solve_mcp
— Methodsolve_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,
kwargs...
)
Mathematically, the mixed complementarity problem is to find an x such that for each i, at least one of the following hold:
- Fi(x) = 0, lbi <= (x)i <= ubi
- Fi(x) > 0, (x)i = lb_i
- 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_mcp
— Methodsolve_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:
- Fi(x) = 0, lbi <= (x)i <= ubi
- Fi(x) > 0, (x)i = lb_i
- 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.