virgo_solver: Construct a virgo solver

virgo_solverR Documentation

Construct a virgo solver

Description

This solver uses reformulation of MWCS problem in terms of mixed integer programming. The later problem can be efficiently solved with commercial optimization software. Exact version of solver uses CPLEX and requires it to be installed. CPLEX 12.7.1 or higher is required.

Usage

virgo_solver(
  cplex_dir,
  threads = parallel::detectCores(),
  timelimit = NULL,
  penalty = 0,
  memory = "2G",
  log = 0,
  cplex_bin = NULL,
  cplex_jar = NULL,
  mst = FALSE,
  dryrun = FALSE,
  jvmargs = NULL
)

Arguments

cplex_dir

a path to dir containing cplex_bin and cplex_jar, setting this to NULL sets ⁠mst`` param to ⁠TRUE'

threads

number of threads for simultaneous computation

timelimit

maximum number of seconds to solve the problem

penalty

additional edge penalty for graph edges

memory

maximum amount of memory(-Xmx flag)

log

verbosity level

cplex_bin

a path to cplex binary dir

cplex_jar

a path to cplex jar file

mst

whether to use approximate MST solver, no CPLEX files required with this parameter is set to TRUE

dryrun

if set to TRUE only prints the solver command, without actually running it

jvmargs

character vector with additional arguments for Java Virtual Machine

Details

The solver currently does not support repeated negative signals, i.e. every negative signal should be present only once among all edges and vertices.

You can access solver directly using run_main function. See example.

Value

An object of class mwcs_solver.

References

Loboda A., Artyomov M., and Sergushichev A. (2016) "Solving generalized maximum-weight connected subgraph problem for network enrichment analysis" \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1007/978-3-319-43681-4_17")}

Examples

data("sgmwcs_small_instance")
approx_vs <- virgo_solver(mst=TRUE, threads = 1)
approx_vs$run_main("-h")
sol <- solve_mwcsp(approx_vs, sgmwcs_small_instance)
## Not run: 
vs <- virgo_solver(cplex_dir='/path/to/cplex')
sol <- solve_mwcsp(approx_vs, sgmwcs_example)

## End(Not run)

mwcsr documentation built on May 31, 2023, 8:41 p.m.