Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 27 Next »

Existing Optimization Models

Minimize an unweighted value

{  
         "minimize":{  
            "attribute":  
               {  
                  "distance_between":[  
                     "customer_loc",
                     "vG"
                  ]
               }
         }
 }

Minimize a weighted value

{
    "minimize": {
        "attribute": {
            "product": [
                200,
                {
                    "distance_between": [
                        "customer_loc",
                        "vG"
                    ]
                }
            ]
        }
    }
}

Maximize an unweighted value

{
    "maximize": {
        "attribute": {
            "reliability": [
                "URLLC"
            ]
        }
    }
}

Maximize a weighted value

{
    "maximize": {
        "attribute": {
            "product": [
                200,
                {
                    "reliability": [
                        "URLLC"
                    ]
                }
            ]
        }
    }
}

Minimize the sum of unweighted values

{
    "minimize": {
        "sum": [
            {
                "distance_between": [
                    "customer_loc",
                    "vG"
                ]
            },
            {
                "distance_between": [
                    "customer_loc",
                    "vG"
                ]
            }
        ]
    }
}

Minimize the sum of weighted values

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

New Optimization Model

Normalization???

unique solutions ???

Objective Function Object

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

Operation 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
weightNdecimaldefault: 1.0Weight 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

{
    "goal": "minimize",
    "operation_function": {
        "operand": [
            {
                "function": "attribute",
                "params": {
                    "attribute": "latency",
                    "demand": "urllc_core"
                }
            }
        ],
        "operator": "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)

{
   "goal": "minimize",
   "operation_function": {
      "operator": "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)

{
   "goal": "minimize",
   "operation_function": {
   "operator": "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)) ) ]

{
   "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:

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.

(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

Impact Analysis


API  - no impact

Controller

Template version upgrade

New parser for the optimization model

Data - no impact

Solver

A new solver for the model (recursive solver?)

Reservation - no impact

  • No labels