Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Here it is a complete simple model descriptionsample problem description in YAML. It is in Yaml, explain json, groovy facts… Code Block

languageyaml
hierarchies: - [product] - [customer] spaces: - name: ByProduct dimensions: [product] scopes: - name: All variables: - name: ListPrice type: value_finder init: type: data field: historical_list_price min: type: data field: list_price_lower_bound max: type: data field: list_price_upper_bound parameters: type: explicit initial_amplitude: type: inline value: 1 minimum_amplitude: type: inline value: 0.00001 maximum_amplitude: type: inline value: 100 increase_coefficient: type: inline value: 1.2 decrease_coefficient: type: inline value: 2 - name: ByProductAndCustomer dimensions: [product, customer] scopes: - name: All variables: - name: Volume type: static init: type: data field: historical_volume - name: Turnover type: computed inputs: type: fixed variables: - variable: ListPrice space: ProductSpace - variable: Volume computation: multiplication criteria: - name: TargetTurnover type: target on: Turnover target: type: data field: historical_turnover precision: type: inline value: 0.0 acceptable_delta: type: data field: target_delta priority: type: data field: target_prioritycomplete in terms of the description but the problem is too simple to optimize anything.

There are two hierarchies, one level each: [product] and [customer].

There are two spaces: ByProduct and ByProductAndCustomer. Each of them contains only the standard All scope.

In ByProduct, All scope, there is only one variable, called ListPrice. It means that list prices are defined at a product level. It is a Value Finder: list prices will vary during the optimization, to reach some criteria. List prices have strict bounds list_price_lower_bound and list_price_upper_bound which are provided by the data and may be different for each product. Value Finder parameters are defined in the code, they are the same for all the products.

In ByProductAndCustomer, All scope, there are two variables: Volume and Turnover. Their values are different for each pair of (product x customer). Volumes are fixed, they are read from historical_volume data. Turnovers are computed. They are the product of a list price by volume for each pair of (product x customer), they change because of list prices changes.

There is also a TargetTurnover criterion in ByProductAndCustomer, All scope. It defines that at a level of (product x customer) the turnover value should reach the historical_turnover value.

Appsplus tabs lite macro
data{"theme":"custom","features":["titles","active","border","rounded","ripples","fullscreen"],"padding":10,"height":615,"tabFont":"Atlassian","tabSize":15,"tabBold":true,"tabItalic":false,"tabUnderline":false,"tabColor":"#ffffff","tabColorBG":"#172b4d","type":"scrollable","opacity":100,"activeColor":"#ffffff","activeColorBG":"#0052cc","borderWidth":1,"borderColor":"#ebecf0","radius":5,"hoverColor":"#ffffff","hoverColorBG":"#0052cc","iconSize":"medium","iconInline":true,"iconPrimary":"#ffffff","iconSecondary":"#172b4d","separatorWidth":1,"separatorColor":"#42526E","indicatorPercent":5,"indicatorColor":"#ff5630","indicatorColorBG":"#0052cc","hide":false,"vertical":false,"preload":true,"animate":false,"uuid":"hc7FEzZ0D8","isNew":false,"loaded":false,"attachmentId":"att4856351635"}