Learn R Programming

CVXR (version 1.0)

Reduction-class: The Reduction class.

Description

This virtual class represents a reduction, an actor that transforms a problem into an equivalent problem. By equivalent, we mean that there exists a mapping between solutions of either problem: if we reduce a problem \(A\) to another problem \(B\) and then proceed to find a solution to \(B\), we can convert it to a solution of \(A\) with at most a moderate amount of effort.

Usage

# S4 method for Reduction,Problem
accepts(object, problem)

# S4 method for Reduction reduce(object)

# S4 method for Reduction,Solution retrieve(object, solution)

# S4 method for Reduction,Problem perform(object, problem)

# S4 method for Reduction,Solution,list invert(object, solution, inverse_data)

Arguments

object

A '>Reduction object.

problem

A '>Problem object.

solution

A '>Solution to a problem that generated the inverse data.

inverse_data

The data encoding the original problem.

Methods (by generic)

  • accepts: States whether the reduction accepts a problem.

  • reduce: Reduces the owned problem to an equivalent problem.

  • retrieve: Retrieves a solution to the owned problem.

  • perform: Performs the reduction on a problem and returns an equivalent problem.

  • invert: Returns a solution to the original problem given the inverse data.

Details

Every reduction supports three methods: accepts, perform, and invert. The accepts method of a particular reduction codifies the types of problems that it is applicable to, the perform method takes a problem and reduces it to a (new) equivalent form, and the invert method maps solutions from reduced-to problems to their problems of provenance.