Here it is a complete simple model descriptionsample problem description in YAML. It is in Yaml, explain json, groovy facts… Code Block |
---|
|
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"} |
---|
|