Versions Compared

Key

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

...

AttributeRequiredContentValuesDescription
operationNYString

sum, min, max

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

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
weightNdecimaldefault: 1.0Weight of the operand
objective_functionNObjective 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

Scenario:

Scenario: 

the function will be applied.

The parameters will change for each function.


Examples


1. Minimize an attribute of the demand

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


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
{
   "goal": "minimize",
   "objective_function": {
      "operation": "sum",
      "operands": [
         {
            "function": "distance_between",
            "weight": 1.0,
            "params": {
               "demand": "vG",
               "location": "customer_loc"      
            } 
         },
         {
 	        "function": "distance_between",
            "weight": 1.0,
            "params": {
               "demand": "vFW",
               "location": "customer_loc"      
            } 
         }
      ]
   }
}


Scenario: 

Minimize the sum of latencies of slice subnets

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

Code Block
languagejs
collapsetrue
{
   "goal": "minimize",
   "objective_function": {
   "operation": "sum",
   "operands": [
      {
         "function": "attribute",
         "weight": 1.0,
         "params": {
            "demand": "urllc_core",
            "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",
   "objective_function": {
   "operation": "sum",
   "operands": [
      {
         "objective_function": {
             "operation": "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 
      },
      {
         "objective_function": {
             "inverse": true,
             "operation": "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
      }
   ]
 }
}

...