Main Concepts for Optimization Problems

Here are the main concepts used in Optimization Engine. Understanding what they mean is important when defining an optimization model.

Categories and Hierarchies

Optimization Engine is a Multi-Agent System to optimize prices, discounts, or any continuous values for any user-defined criteria, such as margin targets, revenue targets, and custom business rules. All these variables and criteria relate to categories. For instance, prices usually relate to products, while margin targets may relate to product family, or product family and customer, etc.

These categories may be organized in hierarchies. If each product belongs to one and only one product family, then ['product', 'product_family'] is a hierarchy. Hierarchies may have more levels. If each product family belongs to one and only one product type (goods or service, for instance), then ['product', 'product_family', 'product_type'] may be defined. There can also be transversal hierarchies: products could be part of product families, and also belong to manufacturers. In that case there would be two hierarchies: ['product', 'product_family'] and ['product', 'manufacturer'].

These categories are used as dimensions to define spaces.

Spaces, Dimensions and Scopes

A space is defined by a set of dimensions, and each dimension pertains to a category. For instance, a list price is usually part of a one dimensional space [product], while discounts may be in a two dimensional space [product, customer_group].

Spaces act as maps: keys are formed by a variable or criterion name associated to coordinates, e.g. Discount@{product = productA; customer = customer1}, and values are the actual variables and criteria.

In the graphical norm, spaces are represented by rectangles or crossings of rectangles. Their dimensions are written in the bottom corner of the rectangles.

A scope is a “perimeter” inside the space, defined by a set of coordinates. At least one scope must be defined within each space. Then, variables and criteria are instantiated for each coordinates in the scope. Usually, a space contains only one “All” scope which basically represents all the coordinates in the space. But one can use other scopes, either to restrict the perimeter in which the included variables and criteria exist (i.e. the scope of customers with turnover higher than N in the space product x customer) or to define different ways of computing the same variable (e.g. different costs structures for different product families).

Variables

Variables represent values in the problem. They have coordinates, which are their dimensions values, inside a space. For instance, a variable “margin” in customer x product family space represents a margin value for a given customer and a given product family.

A variable can either be static, computed from other variables, or can be a Value Finder.

A Value Finder is responsible for finding an adequate value for itself, i.e. a value that satisfies some criteria. Typical Value Finders include list prices and discounts.

Criteria

A criterion represent either an objective or a constraint applied to one or several variables depending on its type. It exposes its satisfaction with regards to this objective/constraint. Like a variable, it is also associated to coordinates.

Single-variable criteria are targets, lower and upper thresholds, maximization, and minimization.

Multiple-variable criteria are alignments and equalities.

Found an issue in documentation? Write to us.