Versions Compared

Key

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

...

Code Block
languagejs
collapsetrue
{
    "minimize": {
        "sum": [
            {
                "product": [
                    100,
                    {
                        "distance_between": [
                            "customer_loc",
                            "vG"
                        ]
                    }
                ]
            },
            {
                "product": [
                    200,
                    {
                        "hpa_score": [
                            "vG"
                        ]
                    }
                ]
            }
        ]
    }
}

New Optimization Model

Normalization???

unique solutions ???

Objective Function Object

...

AttributeRequiredContentValuesDescription
operatorYString

sum, min, max

The operation which will be a part of the objective function
operandsY

List of operand object


The operand on which the operation is to be performed.

The operand can be an attribute or result of a function 

inverseNBooleandefault: FalseFlag to specify whether the objective function has to be inverted.

operand object

AttributeRequiredContentValuesDescription
weightnormalizationNdecimaldefault: 1.0normalization object
Set of values used to normalize Weight of the operand
operation_functionNoperation function object

functionNString

distance_between,

latency_between, attribute

Function to be performed on the parameters
fucntion_paramsNdict

parameters on which the function will be applied.

The parameters will change for each function.

Examples

1. Minimize an attribute of the demand

Normalization object

AttributeRequiredContentValuesDescription
startYDecimal
Start of the range
endYDecimal
End of the range
weightNDecimalDefault: 1.0Weight of the objective function

Examples


1. Minimize an attribute of the demand

Code Block
languagejs
Code Block
languagejs
collapsetrue
{
    "goal": "minimize",
    "operation_function": {
        "operand": [
            {
                "function": "attribute",
                "params": {
                    "attribute": "latency",
                    "demand": "urllc_core"
                }
            }
        ],
        "operator": "sum"
    }
}

...

Code Block
languagejs
collapsetrue
{
   "goal": "maximize",
   "operation_function": {
   "operator": "sum",
   "operands": [
      {
         "operation_function": {
             "operator": "min",
             "operand": [
                 {
                      "weight": 1.0,
                      "function": "attribute",
                      "params": {
                         "demand": "urllc_core",
                         "attribute": "throughput"
                      }
                 },
                 {
                      "weight": 1.0,
                      "function": "attribute",
                      "params": {
                         "demand": "urllc_ran",
                         "attribute": "throughput"
                      }
                 },
                 {
                      "weight": 1.0,
                      "function": "attribute",
                      "params": {
                         "demand": "urllc_transport",
                         "attribute": "throughput"
                      }
                 }
             ]
         },
         "weight": 2.0 
      },
      {
         "operation_function": {
             "inverse": true,
             "operator": "sum",
             "operand": [
                 {
                     "weight": 1.0,
                     "function": "attribute",
                     "params": {
                         "demand": "urllc_core",
                         "attribute": "latency"
                      }
                 },
                 {
                     "weight": 1.0,
                     "function": "attribute",
                     "params": {
                         "demand": "urllc_ran",
                         "attribute": "latency"
                      }
                 },
                 {
                     "weight": 1.0,
                     "function": "attribute",
                     "params": {
                         "demand": "urllc_transport",
                         "attribute": "latency"
                      }
                 }
             ]
         },
         "weight": 1.0
      }
   ]
 }
}

_bw = [100, 200, 300]

ran_nssi → property bw → func(slice_profile[])

core_nssi  → property bw → func(slice_profile[])

tn_nssi  → property bw→ func(slice_profile[])

Maximize (min (ran_nssi_bw, core_nssi_bw, tr_nssi_bw))

Max  [ sum ( W_bw *  min (ran_nssi_bw, core_nssi_bw, tr_nssi_bw), 1/(W_lat * ( sum (w1 * ran_nssi_lat, w2 core_lat, W3* tn_lat)) ) ]

Min/max operator:  list of operands

Sum operator: list of operands

prod operator: weight, operand

normalized_unit = func(bw, weight, unit)

normalized_unit = func(lat, weight, unit)

normalization:


normalization:

function(value, function(value, range(start, end), weight)

All ranges are converted to 0 to 1. The inverse operation is not needed , since it is already implied in the range.

normalized value = (value - start) / (end-start)

...