Reduction-class function

The Reduction class.

The Reduction class.

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 AA to another problem BB and then proceed to find a solution to BB, we can convert it to a solution of AA with at most a moderate amount of effort. class

## S4 method for signature 'Reduction,Problem' accepts(object, problem) ## S4 method for signature 'Reduction' reduce(object) ## S4 method for signature 'Reduction,Solution' retrieve(object, solution) ## S4 method for signature 'Reduction,Problem' perform(object, problem) ## S4 method for signature '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.

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.

Methods (by generic)

  • accepts(object = Reduction, problem = Problem): States whether the reduction accepts a problem.
  • reduce(Reduction): Reduces the owned problem to an equivalent problem.
  • retrieve(object = Reduction, solution = Solution): Retrieves a solution to the owned problem.
  • perform(object = Reduction, problem = Problem): Performs the reduction on a problem and returns an equivalent problem.
  • invert(object = Reduction, solution = Solution, inverse_data = list): Returns a solution to the original problem given the inverse data.
  • Maintainer: Anqi Fu
  • License: Apache License 2.0 | file LICENSE
  • Last published: 2024-11-07