Versions Compared

Key

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

Table of Contents

Existing Optimization Models

LIST OF OPTIMiZATION GOALS  

  • minimize
  • maximize

LIST OF OBJECTIVE FUNCTIONS

  • attribute
  • sum

Minimize an unweighted value

...

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

New Optimization Model

Objective Function Object

AttributeRequiredContentValuesDescription
goalYStringminimize, maximizeThe goal of the optimization
objectiveoperation_functionYObjective Operation function Object
The objective operation function that has to be optimized


Objective Operation function object

AttributeRequiredContentValuesDescription
operationoperatorNYString

sum, min, max

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

List of operand object

EIther an operation-function or a function

The operand on which the operation is to be performed.

The operand can be an attribute or result of a function 

operation-function operand object

AttributeRequiredContentValuesDescription
weightnormalizationNdecimaldefault: 1.0Weight of the operandnormalization object
Set of values used to normalize the operand
weightNDecimalDefault: 1.0Weight of the function
operationobjective_functionNObjective operation function object

function operand object

AttributeRequiredContentValuesDescription
normalizationNnormalization object
Set of values used to normalize the operand
weightNDecimalDefault: 1.0Weight of the function
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

Scenario:

Scenario: 

objective function - distance_between(demand, location) + distance_between(demand, location)

Normalization object

AttributeRequiredContentValuesDescription
startYDecimal
Start of the range
endYDecimal
End of the range

JSON Schema

View file
nameopt_schema.json
height250


Examples


1. Minimize an attribute of the demand

Code Block
languagejs
collapsetrue
{
    "goal": "minimize",
    "operation_function": {
  
Code Block
languagejs
collapsetrue
{
   "goal": "minimize",
   "objective_function": {
      "operation": "sum",
      "operands": [
            {
             "   "function": "distance_betweenattribute",
            "weight": 1.0,
            "params": {
                    "demandattribute": "vGlatency",
                    "locationdemand": "customerurllc_loccore"
      
          }
  } 
         },
         {],
 	        "functionoperator": "distance_betweensum",
    }
}


2. Minimize the sum of the distance between the demand and the customer location.

objective function - distance_between(demand, location) + distance_between(demand, location)


Code Block
languagejs
collapsetrue
{
        "weightgoal": 1.0"minimize",
      "operation_function": {
      "paramsoperator": {"sum",
      "operands": [
        "demand": "vFW", {
               "locationfunction": "customerdistance_locbetween",
      
      "weight": 1.0,
         } 
  "params": {
      }
      ]
   }
}

Scenario: 

objective function - latency(demand) + latency(demand)

Code Block
languagejs
collapsetrue
{
   "goal"demand": "minimizevG",
   "objective_function": {
        "operation": "sum",
   "operandslocation": [
"customer_loc"      {
            } 
         },
         {
 	        "function": "attributedistance_between",
            "weight": 1.0,
            "params": {
               "demand": "urllc_corevFW",
               "attributelocation": "latencycustomer_loc"      
            } 
       },  }
      {]
   }
}


Scenario: 

Minimize the sum of latencies of slice subnets

objective function - latency(demand) + latency(demand)

Code Block
languagejs
collapsetrue
{
      "functiongoal": "attributeminimize",
      "operation_function": {
   "weightoperator": 1"sum",
   "operands": [
      {
         "function": "attribute",
         "weight": 1.0,
         "params": {
            "demand": "urllc_rancore",
            "attribute": "latency"      
         } 
      },
    ]  {
 }
}         "function": "attribute",
         "weight": 1.0,
         "params": {
            "demand": "urllc_ran",
            "attribute": "latency"      
         } 
      }
   ]
 }
}


Scenario: 

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)) ) ]

Code Block
languagejs
collapsetrue
{
   "goal": "maximize",
   "objectiveoperation_function": {
   "operationoperator": "sum",
   "operands": [
      {
         "objectiveoperation_function": {
             "operationoperator": "min",
             "operandoperands": [
                 {
                      "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"
                      }
                 }
             ]
         },
         "normalization": {
            "start": 100,
            "end": 1000
         },
         "weight": 2.0 
      },
      {
         "objectiveoperation_function": {
             "operationoperator": "sum",
             "operandoperands": [
                 {
                     "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"
                      }
                 }
    }         ]
         },
         "normalization": {
            "start": 50,
            "end": ]5
         },
         "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)

...


normalization:

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)


Eg:

latency range: 50 ms to 5 ms

candidate latencyNormalized value
20 ms0.667
40 ms0.222

throughput range: 100 Mbps to 1000Mbps

candidate throughputNormalized value
300 Mbps0.222
800 Mbps0.778