This class represents a convex optimization problem.

Problem(objective, constraints = list())

# S4 method for Problem
objective(object)

# S4 method for Problem
objective(object) <- value

# S4 method for Problem
constraints(object)

# S4 method for Problem
constraints(object) <- value

# S4 method for Problem
value(object)

# S4 method for Problem
value(object) <- value

# S4 method for Problem
status(object)

# S4 method for Problem
is_dcp(object)

# S4 method for Problem
is_dgp(object)

# S4 method for Problem
is_qp(object)

# S4 method for Problem
canonicalize(object)

# S4 method for Problem
is_mixed_integer(object)

# S4 method for Problem
variables(object)

# S4 method for Problem
parameters(object)

# S4 method for Problem
constants(object)

# S4 method for Problem
atoms(object)

# S4 method for Problem
size_metrics(object)

# S4 method for Problem
solver_stats(object)

# S4 method for Problem
solver_stats(object) <- value

# S4 method for Problem,character,logical
get_problem_data(object, solver, gp)

# S4 method for Problem,character,missing
get_problem_data(object, solver, gp)

# S4 method for Problem
unpack_results(object, solution, chain, inverse_data)

Arguments

objective

A Minimize or Maximize object representing the optimization objective.

constraints

(Optional) A list of Constraint objects representing constraints on the optimization variables.

object

A Problem class.

value

A Minimize or Maximize object (objective), list of Constraint objects (constraints), or numeric scalar (value).

solver

A string indicating the solver that the problem data is for. Call installed_solvers() to see all available.

gp

Is the problem a geometric problem?

solution

A Solution object.

chain

The corresponding solving Chain.

inverse_data

A InverseData object or list containing data necessary for the inversion.

Methods (by generic)

  • objective(Problem): The objective of the problem.

  • objective(Problem) <- value: Set the value of the problem objective.

  • constraints(Problem): A list of the constraints of the problem.

  • constraints(Problem) <- value: Set the value of the problem constraints.

  • value(Problem): The value from the last time the problem was solved (or NA if not solved).

  • value(Problem) <- value: Set the value of the optimal objective.

  • status(Problem): The status from the last time the problem was solved.

  • is_dcp(Problem): A logical value indicating whether the problem statisfies DCP rules.

  • is_dgp(Problem): A logical value indicating whether the problem statisfies DGP rules.

  • is_qp(Problem): A logical value indicating whether the problem is a quadratic program.

  • canonicalize(Problem): The graph implementation of the problem.

  • is_mixed_integer(Problem): logical value indicating whether the problem is a mixed integer program.

  • variables(Problem): List of Variable objects in the problem.

  • parameters(Problem): List of Parameter objects in the problem.

  • constants(Problem): List of Constant objects in the problem.

  • atoms(Problem): List of Atom objects in the problem.

  • size_metrics(Problem): Information about the size of the problem.

  • solver_stats(Problem): Additional information returned by the solver.

  • solver_stats(Problem) <- value: Set the additional information returned by the solver in the problem.

  • get_problem_data(object = Problem, solver = character, gp = logical): Get the problem data passed to the specified solver.

  • get_problem_data(object = Problem, solver = character, gp = missing): Get the problem data passed to the specified solver.

  • unpack_results(Problem): Parses the output from a solver and updates the problem state, including the status, objective value, and values of the primal and dual variables. Assumes the results are from the given solver.

Slots

objective

A Minimize or Maximize object representing the optimization objective.

constraints

(Optional) A list of constraints on the optimization variables.

value

(Internal) Used internally to hold the value of the optimization objective at the solution.

status

(Internal) Used internally to hold the status of the problem solution.

.cached_data

(Internal) Used internally to hold cached matrix data.

.separable_problems

(Internal) Used internally to hold separable problem data.

.size_metrics

(Internal) Used internally to hold size metrics.

.solver_stats

(Internal) Used internally to hold solver statistics.

Examples

x <- Variable(2)
p <- Problem(Minimize(p_norm(x, 2)), list(x >= 0))
is_dcp(p)
#> [1] TRUE
x <- Variable(2)
A <- matrix(c(1,-1,-1, 1), nrow = 2)
p <- Problem(Minimize(quad_form(x, A)), list(x >= 0))
is_qp(p)
#> [1] TRUE