diff --git a/README.html b/README.html index 973b58c..96ea072 100644 --- a/README.html +++ b/README.html @@ -197,6 +197,10 @@ +

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

_images/network_gym_qr_code.png @@ -275,7 +280,7 @@

Contact
Made with Furo diff --git a/content/motivation.html b/content/motivation.html index f9fab77..289b716 100644 --- a/content/motivation.html +++ b/content/motivation.html @@ -197,6 +197,10 @@ +

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

  • Handling Time Limits
  • @@ -473,7 +477,7 @@

    W

    Made with Furo diff --git a/index.html b/index.html index 442a0ac..457c79b 100644 --- a/index.html +++ b/index.html @@ -197,6 +197,10 @@
+

Third-Party Agents

+

Tutorials

+
+
@@ -338,7 +344,7 @@

NetworkGym Scope and Limitations
Made with Furo diff --git a/search.html b/search.html index 058ba41..ca13df9 100644 --- a/search.html +++ b/search.html @@ -194,6 +194,10 @@ +

Third-Party Agents

+

Tutorials

  • Handling Time Limits
  • @@ -262,7 +266,7 @@
    Made with Furo diff --git a/searchindex.js b/searchindex.js index 3e857f8..4b5b4e3 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["README", "api/network_gym_client", "api/network_gym_client/adapter", "api/network_gym_client/adapter/network_slicing", "api/network_gym_client/adapter/nqos_split", "api/network_gym_client/adapter/qos_steer", "api/network_gym_client/env", "api/network_gym_client/northbound_interface", "api/network_gym_env", "api/network_gym_env/configure", "api/network_gym_env/simulator", "api/network_gym_env/southbound_interface", "api/network_gym_server", "contact", "content/motivation", "content/overview", "content/quickstart", "environments/mx_network_slicing", "environments/mx_network_slicing/cellular_network_slicing", "environments/mx_traffic_management", "environments/mx_traffic_management/mx_qos_traffic_steering", "environments/mx_traffic_management/mx_traffic_splitting", "index", "tutorials/customizing_observation_and_reward", "tutorials/handling_time_limits", "tutorials/implementing_custom_environment", "tutorials/training_agents"], "filenames": ["README.md", "api/network_gym_client.md", "api/network_gym_client/adapter.md", "api/network_gym_client/adapter/network_slicing.md", "api/network_gym_client/adapter/nqos_split.md", "api/network_gym_client/adapter/qos_steer.md", "api/network_gym_client/env.md", "api/network_gym_client/northbound_interface.md", "api/network_gym_env.md", "api/network_gym_env/configure.md", "api/network_gym_env/simulator.md", "api/network_gym_env/southbound_interface.md", "api/network_gym_server.md", "contact.md", "content/motivation.md", "content/overview.md", "content/quickstart.md", "environments/mx_network_slicing.md", "environments/mx_network_slicing/cellular_network_slicing.md", "environments/mx_traffic_management.md", "environments/mx_traffic_management/mx_qos_traffic_steering.md", "environments/mx_traffic_management/mx_traffic_splitting.md", "index.md", "tutorials/customizing_observation_and_reward.md", "tutorials/handling_time_limits.md", "tutorials/implementing_custom_environment.md", "tutorials/training_agents.md"], "titles": ["Build Documentation Website", "network_gym_client", "Adapter", "network_slicing Adapter", "nqos_split Adapter", "qos_steer Adapter", "Env", "NorthBound", "network_gym_env", "Configure", "Dummy Simulator", "SouthBound", "network_gym_server", "Contact", "Motivation", "Overview", "Quickstart", "Network Slicing", "Cellular Network Slicing", "Traffic Management", "Multi-Access QoS Traffic Steering", "Multi-Access Traffic Splitting", "NetworkGym: Democratizing Network AI", "Customizing Observation and Reward", "Handling Time Limits", "Implementing Custom Environment", "Training Agents"], "terms": {"option": [0, 1, 6, 16, 18, 20, 21, 22, 23, 24], "creat": [0, 10, 16, 22, 25, 26], "new": [0, 10, 16, 23], "virtual": 0, "python": [0, 16, 22], "environ": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14, 17, 18, 19, 20, 21, 22, 23, 24, 26], "python3": [0, 25], "m": [0, 18, 25], "venv": 0, "sphinx_venv": 0, "sourc": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11, 22, 26], "bin": 0, "activ": [0, 8, 15, 16, 26], "requir": [0, 14, 20, 23], "librari": 0, "pip": 0, "r": [0, 18, 21], "txt": 0, "In": [0, 8, 16, 17, 18, 19, 20, 21, 22, 24, 25], "doc": 0, "folder": 0, "run": [0, 6, 9, 10, 16, 18, 20, 21, 24], "follow": [0, 1, 6, 9, 18, 20, 21, 22, 23, 25], "command": [0, 25], "export": 0, "static": 0, "_build": 0, "html": 0, "make": [0, 16, 23], "clean": 0, "network_gym_cli": [0, 2, 3, 4, 5, 16, 18, 20, 21, 23, 24], "The": [0, 1, 6, 8, 9, 10, 12, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26], "contain": [0, 6, 16, 18, 23], "modul": [0, 8], "rm": 0, "sphinx": 0, "apidoc": 0, "o": [0, 16, 22], "d": 0, "2": [0, 6, 18, 20, 21, 22, 23, 25], "markdown": 0, "e": [0, 1, 6, 9, 10, 14, 18, 20, 21, 22, 24], "g": [0, 1, 6, 9, 10, 14, 20, 21, 22], "eval": 0, "autoclass": 0, "env": [0, 1, 3, 4, 5, 7, 8, 9, 10, 16, 18, 20, 21, 24, 25, 26], "networkgym": [1, 6, 7, 12, 18, 20, 21, 24, 25, 26], "client": [1, 6, 7, 8, 9, 10, 12, 18, 20, 21, 22, 25], "includ": [1, 12, 16, 22, 23, 26], "three": [1, 15, 18, 20, 21, 22, 24], "compon": [1, 8, 9, 12, 22], "custom": [1, 2, 6, 9, 15, 16, 18, 20, 21, 22, 24], "gymnasium": [1, 2, 6, 14, 15, 16, 26], "adapt": [1, 6, 15, 18, 20, 21, 23, 25], "northbound": [1, 6, 12, 15, 16, 22], "interfac": [1, 6, 7, 8, 11, 12, 16, 22, 25], "inheret": 1, "class": [1, 3, 4, 5, 6, 7, 9, 10, 16, 23, 25], "commun": [1, 6, 8, 15, 16], "agent": [1, 2, 3, 4, 5, 6, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25], "us": [1, 6, 9, 10, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26], "standard": [1, 14, 22, 25], "exchang": [1, 8, 9, 16], "ob": [1, 2, 6, 16, 24], "reward": [1, 2, 6, 16, 22, 24], "action": [1, 2, 3, 4, 5, 6, 8, 9, 10, 17, 19, 22, 23, 24, 25, 26], "reset": [1, 6, 16, 24], "step": [1, 6, 18, 20, 21, 24, 25], "function": [1, 2, 3, 4, 5, 16, 18, 20, 21, 22, 23], "import": [1, 16, 18, 20, 21, 24], "gym": [1, 6, 7, 22], "def": 1, "__init__": 1, "self": [1, 2, 3, 4, 5, 6, 7, 9, 10], "arg1": 1, "arg2": 1, "super": 1, "return": [1, 2, 3, 4, 5, 6, 7, 10, 11, 16], "observ": [1, 3, 4, 5, 6, 22, 26], "termin": [1, 6, 8, 9, 10, 16, 18, 20, 21, 25], "truncat": [1, 6, 16, 18, 20, 21], "info": [1, 2, 6, 16, 24, 25, 26], "seed": [1, 6], "none": [1, 6], "transform": [1, 2, 15, 23], "data": [1, 2, 5, 8, 15, 16, 18, 20, 22, 25, 26], "format": [1, 2, 15, 16, 22, 25], "from": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 18, 22, 23, 24, 26], "network_gym": [1, 2, 6], "other": [1, 9, 20, 24], "wai": [1, 6, 21, 23], "around": [1, 22], "network": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 16, 20, 21, 23, 25, 26], "stat": [1, 2, 3, 4, 5, 7, 10, 22], "chang": [1, 24], "polici": [1, 2, 3, 4, 5, 7, 8, 16, 26], "connect": [1, 6, 7, 8, 9, 10, 11, 12, 15, 16, 19, 20, 21, 22, 23], "server": [1, 6, 7, 8, 9, 10, 11, 12, 16, 18, 20, 21, 22, 25], "configur": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 20, 21, 22, 23, 24], "paramet": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 18, 20, 21, 24], "between": [1, 2, 6, 8, 9, 15, 21, 22, 25], "envrion": [1, 12], "config_json": [2, 3, 4, 5, 6, 7, 10, 11, 16, 18, 20, 21, 24], "thi": [2, 3, 4, 5, 6, 8, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "i": [2, 3, 4, 6, 7, 9, 10, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26], "an": [2, 6, 8, 9, 12, 14, 15, 16, 18, 20, 21, 22, 23, 24, 26], "It": [2, 6, 8, 15, 16, 18, 20, 21, 22, 24], "measur": [2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 18, 20, 21, 22, 25], "json": [2, 3, 4, 5, 6, 7, 10, 11, 16, 18, 20, 21, 23, 24, 25], "space": [2, 3, 4, 5, 6], "also": [2, 6, 14, 16, 18, 20, 21, 22, 23, 24, 25], "can": [2, 6, 8, 9, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26], "appli": [2, 23], "initi": [2, 3, 4, 5, 6, 7, 8, 9, 18], "file": [2, 3, 4, 5, 6, 7, 10, 11, 16, 18, 20, 21, 23, 24, 25], "wandb_log_buffer_append": 2, "add": [2, 12, 16], "wandb": [2, 16], "log": [2, 6, 21], "buffer": 2, "send": [2, 6, 7, 8, 10, 16, 22, 23, 25, 26], "later": 2, "wandb_log": 2, "dict": [2, 6, 10, 16], "inform": [2, 6, 16, 20, 21, 22], "append": 2, "df_to_dict": 2, "df": [2, 3, 4, 5, 23], "descript": [2, 23], "datatyp": 2, "panda": [2, 5], "datafram": [2, 3, 4, 5, 7, 23], "dictionari": [2, 6, 16], "object": [2, 6, 18, 23], "string": 2, "descritpt": 2, "convert": 2, "fill_empty_featur": [2, 23], "featur": [2, 3, 4, 5, 18, 20, 21, 22, 23], "valu": [2, 4, 6, 16, 18, 20, 21, 23, 25], "fill": 2, "miss": 2, "input": [2, 16, 23], "pd": [2, 3, 4, 5, 7], "int": [2, 3, 6, 7, 9, 10], "list": [2, 6, 9, 10, 16, 18, 20, 21, 23], "result": [2, 6, 10, 16, 18, 20, 21, 24], "after": [2, 6, 16, 18, 20, 21, 23, 24], "replac": 2, "get_nested_json_polici": 2, "action_nam": 2, "nest": 2, "str": [2, 9, 10, 11], "name": [2, 9, 10, 16, 23, 25], "tag": [2, 10, 25], "rl": [2, 3, 4, 5, 6, 16, 22, 23, 26], "base": [3, 4, 5, 8, 15, 16, 21, 22], "get_observ": [3, 4, 5, 18, 20, 21, 23], "prepar": [3, 4, 5], "should": [3, 4, 5, 6, 16, 18, 23, 25], "same": [3, 4, 5, 9, 18, 23, 25], "number": [3, 4, 5, 6, 10, 16, 18, 20, 21, 23, 24, 25], "defin": [3, 4, 5, 6, 16, 18, 20, 21, 22, 26], "get_observation_spac": [3, 4, 5, 23], "get_reward": [3, 4, 5, 18, 20, 21, 23], "get_polici": [3, 4, 5], "No": [3, 16, 22, 26], "yet": 3, "get_action_spac": [3, 4, 5], "get": [3, 4, 5, 6], "get_rbg_siz": 3, "bandwidth": [3, 20], "comput": [3, 16, 18, 20, 21, 22, 23], "resourc": [3, 17, 18, 20, 21], "block": [3, 18], "group": [3, 18, 23, 25], "size": [3, 23], "bandwith": 3, "rb": [3, 18], "code": [3, 9, 23, 26], "coppi": 3, "ns3": 3, "pf": 3, "type": [3, 6, 16, 22, 25], "0": [3, 4, 6, 16, 18, 20, 21, 23, 24, 25], "alloc": [3, 17, 18], "rbg": 3, "resouc": 3, "netowrk_util": [4, 21], "throughput": [4, 18, 20, 21, 23], "delai": [4, 6, 18, 20, 21, 23, 26], "alpha": 4, "5": [4, 18, 20, 21, 23, 25], "calcul": [4, 5, 20], "util": [4, 9, 15, 18, 20, 21, 22, 23, 25], "specifi": [4, 6, 16, 18, 20, 21, 23, 24], "balanc": 4, "default": [4, 5, 6, 16, 18, 22, 23], "float": 4, "repres": [4, 16, 18, 20, 21, 23], "bit": 4, "per": [4, 5, 18, 20, 21, 23, 24], "second": [4, 16, 20, 21, 24], "metric": [4, 16, 23], "calculate_wifi_qos_user_num": [5, 20], "qos_rat": [5, 20, 23, 25], "qo": [5, 14, 16, 19, 23], "user": [5, 6, 10, 16, 18, 19, 20, 21, 22, 23, 25, 26], "over": [5, 19, 20, 21, 23], "wi": [5, 19, 20, 21, 23, 25], "fi": [5, 19, 20, 21, 23, 25], "rate": [5, 18, 20, 21, 23, 25], "doubl": 5, "id": [6, 7, 9, 23], "initil": [6, 10], "intern": [6, 16], "state": [6, 16, 22, 26], "": [6, 8, 9, 16, 18, 20, 21, 23, 24, 25, 26], "prng": 6, "np_random": 6, "If": [6, 16, 24], "doe": [6, 22], "alreadi": [6, 20], "have": [6, 16, 18, 20, 21, 22, 23, 24, 26], "pass": 6, "chosen": 6, "some": [6, 16, 23], "entropi": 6, "timestamp": [6, 10, 23], "dev": 6, "urandom": 6, "howev": 6, "ha": [6, 16, 18, 20, 21, 24], "you": [6, 15, 16, 18, 20, 21, 23, 24, 25, 26], "integ": 6, "even": 6, "exist": [6, 23], "usual": 6, "want": 6, "right": [6, 18], "been": [6, 16, 26], "never": 6, "again": 6, "pleas": [6, 22, 25], "refer": [6, 16, 18, 20, 21, 22, 24, 25, 26], "minim": [6, 21], "exampl": [6, 16], "abov": [6, 22], "see": [6, 18, 20, 21], "paradigm": 6, "addit": [6, 16, 22], "how": [6, 15, 16, 22, 24, 25], "depend": [6, 25], "specif": [6, 14, 15, 18, 22, 23, 24, 26], "obstyp": 6, "auxiliari": 6, "complement": 6, "analog": 6, "one": [6, 8, 10, 16, 18, 21, 23, 24], "timestep": [6, 16], "dynam": [6, 23], "gamsim": 6, "check": 6, "last": [6, 24], "episod": [6, 16, 24, 25], "done": [6, 16], "acttyp": 6, "provid": [6, 9, 15, 16, 20, 21, 22, 23, 24, 25, 26], "updat": [6, 16, 19, 21, 23], "element": [6, 15, 16], "observation_spac": [6, 16], "next": [6, 16], "due": 6, "supportsfloat": 6, "take": [6, 16, 18, 20, 23], "bool": 6, "whether": 6, "reach": [6, 16, 20], "under": 6, "mdp": 6, "task": [6, 25], "which": [6, 15, 16, 18, 20, 23], "posit": [6, 18, 20, 21], "neg": 6, "goal": [6, 20, 21, 23], "move": 6, "lava": 6, "sutton": 6, "barton": 6, "gridworld": 6, "true": [6, 16], "need": [6, 14, 16, 18], "call": [6, 16], "condit": 6, "outsid": 6, "scope": 6, "satisfi": 6, "typic": 6, "timelimit": [6, 16], "could": [6, 16], "indic": [6, 18, 20], "physic": [6, 22], "go": 6, "out": [6, 16, 22, 23], "bound": [6, 16, 23], "end": [6, 8, 16, 22, 23, 24], "prematur": 6, "befor": 6, "diagnost": 6, "help": [6, 16], "debug": 6, "learn": [6, 14, 22, 25, 26], "raw": 6, "flag": 6, "deprec": 6, "A": [6, 10, 16, 18, 20, 21, 22, 23, 24, 26], "boolean": 6, "case": [6, 14, 16, 18, 22, 23], "further": [6, 16, 18, 20, 21], "undefin": 6, "wa": 6, "remov": 6, "openai": 6, "v26": 6, "favor": 6, "signal": [6, 8, 9, 16, 21], "mai": [6, 16, 24], "emit": 6, "differ": [6, 16, 20, 22, 24], "reason": 6, "mayb": 6, "underli": [6, 9], "solv": 6, "successfulli": [6, 25], "certain": [6, 18, 20, 21, 23, 24], "exceed": [6, 16], "simul": [6, 8, 9, 14, 15, 22, 23], "enter": 6, "invalid": 6, "action_spac": [6, 16, 24, 26], "correspond": [6, 15], "valid": [6, 16, 23], "all": [6, 9, 16, 17, 18, 20, 21, 23, 25], "For": [6, 16, 20, 22, 23, 25], "discret": [6, 16], "give": 6, "mean": 6, "ar": [6, 8, 9, 16, 18, 20, 21, 25], "two": [6, 8, 12, 15, 22, 24], "1": [6, 16, 18, 20, 21, 23, 24, 25], "box": [6, 15, 16, 18, 20, 21], "3": [6, 8, 9, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25], "4028234663852886e": 6, "38": [6, 23], "4": [6, 18, 23, 25], "float32": [6, 18, 20, 21], "shape": [6, 16, 18, 20, 21], "denot": [6, 18, 20, 21, 24], "arrai": [6, 16, 18, 26], "we": [6, 12, 16, 18, 20, 21, 22, 23, 24], "well": 6, "high": [6, 21, 22, 23], "8000002e": 6, "00": 6, "4028235e": 6, "1887903e": 6, "01": 6, "dtype": 6, "low": [6, 21, 23], "northbound_interface_cli": 6, "traslat": 6, "dataformat": 6, "northboundcli": 7, "sever": 7, "repli": 7, "start": [7, 8, 9, 10, 23, 24, 25], "request": [7, 8], "where": [7, 16, 18, 21, 23], "load": [7, 16, 18, 20, 21, 23], "recv": 7, "receiv": [7, 8, 10, 16, 20, 21, 25], "messag": [7, 8, 9], "process_measur": 7, "reply_json": 7, "process": [7, 8, 24, 25], "compris": [8, 15, 23], "core": 8, "These": [8, 26], "establish": [8, 9, 15, 16, 25], "via": [8, 11, 25], "design": [8, 18, 22, 26], "southbound": [8, 10, 12, 15, 16, 22, 25], "serv": [8, 18, 20, 22, 23], "bridg": 8, "facilit": [8, 9, 15, 16, 22], "statist": [8, 18, 20, 21, 23], "keep": [8, 15, 23], "aliv": 8, "period": [8, 9, 17, 19, 20, 21], "dispatch": [8, 9], "hello": [8, 9, 25], "upon": [8, 9], "disengag": 8, "n": [8, 9, 14, 15, 16, 18, 20, 21, 22], "smulat": 8, "instig": 8, "plan": [8, 12, 16], "incorpor": 8, "emul": [8, 15], "testb": [8, 15, 23, 25], "altern": 8, "earmark": 8, "futur": 8, "releas": [8, 12], "depict": [8, 15], "flow": [8, 20, 23], "complet": [8, 25], "cycl": 8, "within": [8, 15, 16, 18, 23, 25], "session": [8, 15, 16, 18, 20, 21, 24], "launch": [8, 9, 16, 25], "env_config": [8, 9, 10, 24, 25], "trigger": [8, 26], "gener": [8, 10, 18, 20, 21, 24, 25], "incom": 8, "onc": [8, 16, 18, 20, 21, 24, 25], "conclud": 8, "map": [8, 12, 15, 16], "onli": [8, 9, 20, 23, 25], "env_sim": [8, 9, 10, 25], "ani": [8, 16, 20, 22], "given": [8, 18, 20, 21], "moment": [8, 18], "cannot": [8, 18, 20, 21, 24], "occur": 8, "simultan": 8, "standpoint": 8, "treat": 8, "both": [8, 16, 18, 19, 20, 21, 23, 24], "equival": 8, "identifi": 8, "them": [8, 16, 18, 20, 22], "entiti": [8, 9, 22, 25], "networkgymsim": 9, "env_list": [9, 25], "recept": 9, "its": [9, 15, 18, 20], "socket": [9, 10, 11, 25], "ident": [9, 10, 11], "identif": 9, "subsequ": [9, 18, 20, 21, 24], "commenc": 9, "conclus": 9, "close": 9, "reconnect": 9, "point": [9, 18, 20, 21, 23, 24], "perceiv": 9, "divis": 9, "advantag": [9, 26], "straightforward": [9, 16, 25], "expans": 9, "test": [9, 14, 20, 23, 25], "while": [9, 17, 18, 24], "support": [9, 15, 16, 20, 25], "non": [9, 16], "offic": 9, "account": [9, 18], "env_ident": 10, "client_ident": 10, "msg_json": 10, "random": [10, 16, 18, 20, 21], "sampl": [10, 16, 24, 26], "when": [10, 12, 18, 20, 21, 22, 23, 25, 26], "resum": 10, "env_idennt": 10, "env_port": 10, "first": [10, 16, 20, 21, 24], "who": 10, "msg": [10, 25], "cliet": 10, "generate_dummy_measur": 10, "num_us": 10, "ad": 10, "start_simul": 10, "api": [10, 14, 26], "report": 10, "run_one_interv": 10, "interv": [10, 16], "southbound_interfac": 11, "southbound_connect": 11, "indent": 11, "zmq": 11, "manag": [12, 16, 20, 21, 22], "select": [12, 15, 16, 18, 19, 20, 21, 25], "idl": 12, "instanc": [12, 16, 20, 22, 23, 25], "rout": [12, 15], "tabl": 12, "At": [12, 15, 18, 20, 21, 24], "present": [12, 15, 16, 20, 25], "do": 12, "softwar": [12, 22], "email": 13, "github": [13, 18, 20, 21, 25], "real": 14, "world": [14, 22], "dataset": 14, "control": [14, 20, 22], "oper": [14, 18, 20, 21, 22, 24], "difficult": 14, "acquir": 14, "align": [14, 25], "usag": [14, 18], "itself": 14, "enough": 14, "train": [14, 16, 18, 20, 21, 22], "reinforc": [14, 22, 26], "etc": [14, 22], "current": 14, "enabl": [14, 15, 16, 21, 22, 23, 26], "multi": 14, "access": [14, 18, 22, 23, 25], "traffic": [14, 23], "split": [14, 19, 23], "awar": 14, "steer": [14, 19], "cellular": [14, 17, 20, 21], "ran": [14, 16, 22], "slice": 14, "tool": [14, 22], "often": 14, "veri": 14, "complex": 14, "especi": 14, "research": [14, 15, 16, 22], "without": [14, 20, 22], "expertis": [14, 22], "lack": [14, 20, 23], "common": 14, "simpl": [14, 16], "evalu": [14, 20, 25], "benchmark": 14, "adher": [14, 18], "addition": [14, 15, 16, 25], "offer": [14, 15, 22, 23, 26], "framework": [15, 22], "consist": [15, 16, 22, 23], "essenti": [15, 16, 22, 25], "each": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "plai": [15, 22], "crucial": [15, 22], "role": [15, 22, 26], "system": [15, 16, 18, 22, 23], "encompass": 15, "seamless": 15, "interact": [15, 22, 24, 25, 26], "displai": 15, "below": [15, 16, 23, 24, 26], "graphic": 15, "architectur": [15, 22], "visual": [15, 16], "aid": 15, "divers": [15, 25], "collabor": [15, 16], "harmoni": 15, "form": 15, "streamlin": [15, 22, 25], "effect": [15, 16, 22], "servic": [15, 17, 18, 20, 22], "tailor": [15, 18, 22], "advanc": 15, "ai": [15, 16], "develop": [15, 16, 22], "By": [15, 18, 22], "click": 15, "blue": 15, "navig": 15, "directli": 15, "page": [15, 22], "respect": [15, 16, 18, 22], "main": 15, "respons": 15, "allow": [15, 16, 22, 26], "compat": 15, "like": [15, 18, 22], "stabl": [15, 22], "baselines3": [15, 22], "cleanrl": [15, 22], "desir": [15, 20], "central": 15, "maintain": [15, 22, 23], "track": 15, "assign": [15, 18, 20, 21, 25], "dure": [15, 20], "either": [15, 16, 18, 20, 21], "through": [15, 16, 18, 20, 21, 22, 24, 25], "distinct": [15, 18], "machin": [16, 18, 20, 21, 22], "requst": 16, "mlwin": 16, "ring": 16, "univers": 16, "public": 16, "internet": 16, "intel": 16, "issu": [16, 23], "feel": 16, "free": 16, "u": [16, 25], "netaigym": [16, 25], "gmail": [16, 25], "com": [16, 25], "sim": [16, 22], "aa": [16, 22], "devcloud": 16, "avail": [16, 20, 22, 26], "meanwhil": [16, 18], "enhanc": 16, "capabl": 16, "5g": 16, "distribut": [16, 18, 20, 21], "energi": 16, "save": 16, "predict": 16, "more": [16, 18, 20, 21, 22], "gain": 16, "begin": 16, "download": [16, 18, 20, 21], "your": [16, 22, 23], "prompt": 16, "collect": [16, 22, 26], "forward": [16, 25], "norhtbound": 16, "nb": 16, "algorithm": [16, 18, 22], "store": 16, "relev": 16, "transmit": [16, 18, 20, 21, 23, 25], "sb": [16, 25], "continu": [16, 18, 20, 21, 24], "conveni": 16, "websit": 16, "demonstr": [16, 24, 25], "packag": 16, "networkgymenv": [16, 18, 20, 21, 24], "client_id": [16, 18, 20, 21, 24], "argument": 16, "classic": 16, "loop": [16, 22], "implement": [16, 18, 20, 22], "load_config_fil": [16, 18, 20, 21, 24], "env_nam": [16, 24, 25], "nqos_split": [16, 21, 24], "num_step": [16, 24], "1000": [16, 24], "rang": [16, 18, 23, 24, 26], "exit": [16, 18, 20, 21, 24], "break": [16, 24], "epsiod": [16, 24], "up": [16, 24], "still": [16, 24], "anoth": [16, 24], "keyword": 16, "associ": 16, "dedic": [16, 17, 18], "worker": 16, "until": 16, "parallel": 16, "obtain": 16, "perform": [16, 17, 19, 20, 21, 22, 24], "As": 16, "along": [16, 18, 20, 21], "One": [16, 23], "multipl": [16, 18, 20, 21], "fix": 16, "restart": 16, "scenario": [16, 20, 23], "sequenti": 16, "success": 16, "insight": 16, "time": [16, 18, 20, 21, 23], "constraint": [16, 18, 20], "found": 16, "handl": [16, 18, 20, 21], "limit": [16, 18, 20, 21, 25], "illustr": [16, 23, 24], "everi": [16, 18, 20, 21], "attribut": 16, "understand": 16, "expect": [16, 25], "output": [16, 23, 25], "instead": 16, "prefer": 16, "empti": [16, 22, 26], "shown": [16, 25, 26], "np": [16, 26], "inherit": 16, "major": 16, "possibl": [16, 20], "might": [16, 23], "describ": 16, "dimension": 16, "upper": 16, "lower": 16, "our": [16, 18, 25], "shift": 16, "tupl": 16, "multibinari": 16, "binari": 16, "multidiscret": [16, 20], "wrapper": [16, 18, 20, 21], "maximum": [16, 18, 20, 23], "clipact": 16, "clip": 16, "li": 16, "rescaleact": [16, 18, 20, 21], "rescal": [16, 18, 20, 21], "lie": 16, "timeawareobserv": 16, "about": [16, 18, 20, 21, 22], "index": [16, 23], "ensur": [16, 18, 20, 21, 23], "transit": 16, "markov": 16, "flattenobserv": 16, "flatten": 16, "normalizeobserv": [16, 18, 20, 21], "normal": [16, 18, 20, 21], "t": [16, 18, 25], "coordin": [16, 23], "center": [16, 22], "unit": [16, 25], "varianc": 16, "wrap": 16, "arg": 16, "normal_obs_env": 16, "among": [17, 18], "priorit": [17, 18, 20, 23], "share": [17, 18, 25], "strive": [17, 18], "meet": [17, 18, 20, 23], "level": [17, 18, 20], "agreement": [17, 18], "entir": [18, 20, 21, 24], "partit": 18, "percept": 18, "possess": 18, "abil": 18, "great": 18, "effici": [18, 20], "belong": 18, "mac": 18, "schedul": [18, 20], "proport": 18, "fair": 18, "guarante": 18, "equit": 18, "imparti": 18, "inf": [18, 20, 21], "config": [18, 20, 21], "network_sl": 18, "pose": 18, "challeng": [18, 20], "compet": 18, "finit": 18, "primari": [18, 20], "strateg": [18, 21], "vlab": [18, 20, 21, 25], "multidimension": 18, "ndarrai": [18, 20, 21], "five": 18, "total": [18, 20], "mbp": [18, 20, 21, 25], "fraction": 18, "express": 18, "percentag": [18, 23], "sum": 18, "across": [18, 20], "equal": [18, 21, 23], "averag": 18, "violat": [18, 20, 23], "wise": 18, "record": 18, "experienc": 18, "millisecond": 18, "min": [18, 20, 21], "max": [18, 20, 21], "elabor": [18, 20, 21, 23], "note": [18, 20, 21, 23, 24], "exce": 18, "surpass": 18, "appropri": 18, "scale": 18, "down": 18, "softmax": 18, "mathemat": 18, "sum_": 18, "a_i": 18, "quad": 18, "frac": 18, "j": 18, "a_j": 18, "num": [18, 21], "factor": 18, "cost": 18, "formul": 18, "left": 18, "text": 18, "_i": 18, "lambda": 18, "cdot": 18, "delay_violation_r": 18, "gamma": 18, "rb_usage_r": 18, "adjust": [18, 20, 25], "emphasi": 18, "consider": 18, "repo": [18, 20, 21, 25], "detail": [18, 20, 21, 22, 26], "uniform": [18, 20, 21], "2d": [18, 20, 21], "plane": [18, 20, 21], "x": [18, 20, 21, 23], "y": [18, 20, 21, 23], "boundari": [18, 20, 21], "instal": [18, 20, 21, 25], "walk": [18, 20, 21], "mobil": [18, 20, 21], "model": [18, 20, 21, 22], "episodes_per_sess": [18, 20, 21, 24], "steps_per_episod": [18, 20, 21, 24], "l": [18, 20, 21, 24], "happen": [18, 20, 21], "length": [18, 20, 21, 24], "reconfigur": [18, 20, 21, 24], "program": [18, 20, 21, 22, 24], "mx": [19, 20, 21], "ratio": [19, 21, 23], "consid": [19, 20, 21], "lte": [19, 20, 21, 23, 25], "link": [19, 20, 21, 23, 25], "part": [20, 21], "dimens": 20, "qos_steer": 20, "randomli": [20, 21], "intellig": 20, "direct": [20, 23, 25], "aim": [20, 21], "achiev": [20, 21, 22, 23], "best": 20, "qualiti": 20, "regard": 20, "halt": 20, "admiss": 20, "capac": [20, 21, 23], "10": [20, 23, 25], "accommod": 20, "drop": 20, "remain": 20, "On": 20, "hand": 20, "contend": 20, "restrict": 20, "qos_requir": 20, "test_duration_m": 20, "500": 20, "durat": 20, "delay_bound_m": [20, 23], "100": [20, 23], "delay_violation_target": 20, "02": 20, "target": 20, "loss_target": 20, "001": 20, "loss": 20, "packet": [20, 23], "otherwis": 20, "met": 20, "set": 20, "zero": 20, "estim": [20, 21], "channel": [20, 21, 22], "third": [20, 21], "combin": [20, 21, 23], "mechan": 20, "maxim": [20, 21], "lead": 20, "essenc": 20, "optim": [20, 22, 26], "indirectli": 20, "overal": 20, "problem": 21, "station": 21, "closest": 21, "handov": 21, "disabl": 21, "latenc": 21, "transmitt": 21, "f": 21, "owd": [21, 23, 25], "innov": 22, "concept": 22, "seen": 22, "four": 22, "kei": 22, "knowledg": 22, "fulli": 22, "customiz": 22, "host": 22, "cloud": 22, "open": 22, "inject": 22, "flexibl": [22, 26], "languag": 22, "platform": 22, "separ": 22, "freedom": 22, "emploi": [22, 23], "smoothli": 22, "c": 22, "hide": 22, "secur": 22, "oversight": 22, "independ": 22, "deploy": 22, "deploi": 22, "workload": 22, "thei": 22, "purpos": [22, 23, 26], "offlin": [22, 26], "own": [22, 26], "special": [22, 26], "art": [22, 26], "sota": [22, 26], "tutori": [22, 25, 26], "guidanc": 22, "instruct": [22, 25, 26], "variou": 22, "convers": 22, "comprehens": 22, "overview": 22, "focus": 22, "layer": [22, 23], "involv": [22, 23, 25], "abstract": 22, "power": 22, "aspect": 22, "endeavor": 22, "full": 22, "stack": 22, "edg": 22, "fidel": 22, "proprietari": [22, 25], "applic": [22, 23], "xapp": 22, "rapp": 22, "ric": 22, "digit": 22, "twin": [22, 26], "person": 23, "match": 23, "experiment": 23, "cid": [23, 25], "end_t": [23, 25], "start_t": [23, 25], "dl": [23, 25], "6000": 23, "gma": [23, 25], "cell_id": 23, "5900": 23, "phy": [23, 25], "delay_test_1_viol": 23, "72": 23, "99270072992701": 23, "delay_test_2_viol": 23, "delay_viol": 23, "89": 23, "8989898989899": 23, "max_owd": 23, "499": 23, "538": 23, "239": 23, "195": 23, "6": [23, 25], "7": [23, 25], "8": [23, 25], "max_rat": [23, 25], "35": 23, "22": 23, "9": [23, 25], "78": 23, "65": 23, "measurement_ok": 23, "11": 23, "missed_act": 23, "12": 23, "484": 23, "517": 23, "214": 23, "102": 23, "13": 23, "491": 23, "217": 23, "145": 23, "14": 23, "15": 23, "prioriti": 23, "16": 23, "17": 23, "18": 23, "19": 23, "20": 23, "352": 23, "056": 23, "912": 23, "45": 23, "992": 23, "21": 23, "472": 23, "336": 23, "24": 23, "848": 23, "928": 23, "23": 23, "split_ratio": [23, 25], "32": 23, "29": 23, "25": 23, "traffic_ratio": 23, "55": 23, "90": 23, "34": 23, "26": 23, "66": 23, "27": 23, "tx_rate": 23, "636": 23, "757": 23, "52": 23, "681": 23, "28": 23, "x_loc": 23, "871206061072092": 23, "702857783599929": 23, "198": 23, "y_loc": 23, "964088643728281": 23, "6756194439050196": 23, "0212": 23, "field": 23, "explan": 23, "signifi": 23, "downlink": 23, "ul": 23, "uplink": 23, "converg": 23, "now": 23, "cell": 23, "255": 23, "delay_test_": 23, "_violat": 23, "threshold": 23, "_thresh_m": 23, "reorder": 23, "order": 23, "count": 23, "too": 23, "long": 23, "wait": 23, "therefor": 23, "alwai": 23, "mark": 23, "70": 23, "deliveri": 23, "cover": 23, "sinc": 23, "To": [23, 26], "iterrow": 23, "df_rate": 23, "explod": 23, "structur": 23, "occasion": 23, "absent": 23, "address": 23, "popul": 23, "modifi": [23, 25, 26], "section": [24, 25], "outlin": 24, "showcas": 24, "inclus": 25, "extern": 25, "equip": 25, "ll": 25, "ultim": 25, "merg": 25, "procedur": 25, "setup": 25, "port": 25, "alter": 25, "8087": 25, "session_nam": 25, "session_kei": 25, "network_gym_env": 25, "common_config": 25, "accord": 25, "start_custom_env": 25, "py": 25, "would": 25, "don": 25, "grant": 25, "demo": [25, 26], "Then": 25, "start_client_demo": 25, "print": 25, "custom_act": 25, "custom_tag": 25, "9269856811": 25, "5833047032": 25, "6873341799": 25, "0909367353": 25, "3403381109": 25, "0730143189": 25, "4166952968": 25, "3126658201": 25, "9090632796": 25, "6596618891": 25, "20000": 25, "21000": 25, "sole": 25, "ve": 25, "re": 25, "readi": 25, "mirror": 25, "uml": 25, "sequenc": 25, "diagram": 25, "locat": 25, "experi": 25, "contact": 25, "integr": [25, 26], "fulfil": 26, "simpli": 26, "popular": 26, "ones": 26, "ppo": 26, "proxim": 26, "ddpg": 26, "deep": 26, "determinist": 26, "gradient": 26, "sac": 26, "soft": 26, "actor": 26, "critic": 26, "td3": 26, "a2c": 26, "moreov": 26, "seamlessli": 26}, "objects": {"network_gym_client": [[2, 0, 1, "", "Adapter"], [6, 0, 1, "", "Env"], [7, 0, 1, "", "NorthBoundClient"]], "network_gym_client.Adapter": [[2, 1, 1, "", "df_to_dict"], [2, 1, 1, "", "fill_empty_feature"], [2, 1, 1, "", "get_nested_json_policy"], [2, 1, 1, "", "wandb_log"], [2, 1, 1, "", "wandb_log_buffer_append"]], "network_gym_client.Env": [[6, 2, 1, "", "action_space"], [6, 2, 1, "", "adapter"], [6, 2, 1, "", "northbound_interface_client"], [6, 2, 1, "", "observation_space"], [6, 1, 1, "", "reset"], [6, 1, 1, "", "step"]], "network_gym_client.NorthBoundClient": [[7, 1, 1, "", "connect"], [7, 1, 1, "", "process_measurement"], [7, 1, 1, "", "recv"], [7, 1, 1, "", "send"]], "network_gym_client.envs.network_slicing": [[3, 0, 1, "", "Adapter"]], "network_gym_client.envs.network_slicing.Adapter": [[3, 1, 1, "", "get_action_space"], [3, 1, 1, "", "get_observation"], [3, 1, 1, "", "get_observation_space"], [3, 1, 1, "", "get_policy"], [3, 1, 1, "", "get_rbg_size"], [3, 1, 1, "", "get_reward"]], "network_gym_client.envs.nqos_split": [[4, 0, 1, "", "Adapter"]], "network_gym_client.envs.nqos_split.Adapter": [[4, 1, 1, "", "get_action_space"], [4, 1, 1, "", "get_observation"], [4, 1, 1, "", "get_observation_space"], [4, 1, 1, "", "get_policy"], [4, 1, 1, "", "get_reward"], [4, 1, 1, "", "netowrk_util"]], "network_gym_client.envs.qos_steer": [[5, 0, 1, "", "Adapter"]], "network_gym_client.envs.qos_steer.Adapter": [[5, 1, 1, "", "calculate_wifi_qos_user_num"], [5, 1, 1, "", "get_action_space"], [5, 1, 1, "", "get_observation"], [5, 1, 1, "", "get_observation_space"], [5, 1, 1, "", "get_policy"], [5, 1, 1, "", "get_reward"]], "network_gym_env": [[9, 0, 1, "", "Configure"], [10, 0, 1, "", "DummySim"]], "network_gym_env.Configure": [[9, 1, 1, "", "run"]], "network_gym_env.DummySim": [[10, 1, 1, "", "generate_dummy_measurement"], [10, 1, 1, "", "run_one_interval"], [10, 1, 1, "", "start_simulation"]], "network_gym_env.southbound_interface": [[11, 1, 1, "", "southbound_connect"]]}, "objtypes": {"0": "py:class", "1": "py:function", "2": "py:attribute"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "function", "Python function"], "2": ["py", "attribute", "Python attribute"]}, "titleterms": {"build": 0, "document": 0, "websit": 0, "instal": 0, "depend": 0, "us": 0, "tip": 0, "auto": 0, "gener": 0, "rst": 0, "file": 0, "add": 0, "class": [0, 2], "function": 0, "md": 0, "network_gym_cli": [1, 6, 7], "adapt": [2, 3, 4, 5], "The": 2, "base": 2, "method": [2, 3, 4, 5, 6, 7, 9, 10, 11], "network_sl": 3, "reward": [3, 4, 5, 18, 20, 21, 23], "addit": [3, 4, 5, 7], "nqos_split": 4, "qos_steer": 5, "env": 6, "attribut": 6, "northbound": 7, "network_gym_env": [8, 9, 10, 11], "networkgym": [8, 14, 15, 16, 22], "uml": 8, "sequenc": 8, "diagram": 8, "configur": 9, "dummi": [10, 25], "simul": [10, 16, 25], "dummysim": 10, "southbound": 11, "network_gym_serv": 12, "contact": 13, "motiv": 14, "network": [14, 17, 18, 22], "ai": [14, 22], "model": 14, "algorithm": [14, 26], "develop": 14, "cycl": 14, "challeng": 14, "face": 14, "": 14, "approach": 14, "address": 14, "thi": 14, "overview": 15, "compon": 15, "interfac": 15, "client": [15, 16], "api": [15, 22], "server": 15, "environ": [15, 16, 25], "quickstart": 16, "access": [16, 20, 21], "servic": 16, "via": 16, "vlab": 16, "basic": 16, "usag": 16, "upon": 16, "start": [16, 18, 20, 21], "follow": 16, "seri": 16, "step": 16, "occur": 16, "dure": 16, "process": 16, "repeat": 16, "when": 16, "conclud": 16, "initi": [16, 25], "interact": 16, "explain": 16, "code": [16, 24], "action": [16, 18, 20, 21], "observ": [16, 18, 20, 21, 23], "space": [16, 18, 20, 21], "modifi": 16, "slice": [17, 18], "cellular": 18, "descript": [18, 20, 21], "prerequisit": [18, 20, 21], "argument": [18, 20, 21], "state": [18, 20, 21], "episod": [18, 20, 21], "end": [18, 20, 21], "traffic": [19, 20, 21], "manag": 19, "multi": [20, 21], "qo": 20, "steer": 20, "split": 21, "transit": 21, "dynam": 21, "democrat": 22, "object": 22, "agent": [22, 26], "gymnasium": 22, "scope": 22, "limit": [22, 24], "custom": [23, 25, 26], "work": 23, "measur": 23, "column": 23, "row": 23, "retriev": 23, "fill": 23, "miss": 23, "data": 23, "handl": 24, "time": 24, "truncat": 24, "termin": 24, "sequenti": 24, "train": [24, 26], "exampl": 24, "python": 24, "implement": 25, "your": 25, "connect": 25, "substitut": 25, "releas": 25, "system": 26, "default": 26, "stabl": 26, "baselines3": 26, "cleanrl": 26}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Build Documentation Website": [[0, "build-documentation-website"]], "Install Dependencies": [[0, "install-dependencies"]], "Build Website": [[0, "build-website"]], "Useful Tips": [[0, "useful-tips"]], "Auto Generate rst Files": [[0, "auto-generate-rst-files"]], "Add Classes and Functions to md Files": [[0, "add-classes-and-functions-to-md-files"]], "network_gym_client": [[1, "network-gym-client"]], "Adapter": [[2, "adapter"]], "The Base Class": [[2, "the-base-class"]], "Methods": [[2, "methods"], [3, "methods"], [4, "methods"], [5, "methods"], [6, "methods"], [7, "methods"], [9, "methods"], [10, "methods"], [11, "methods"]], "network_slicing Adapter": [[3, "network-slicing-adapter"]], "": [[3, "id1"], [4, "id1"], [5, "id1"]], "Reward Methods": [[3, "reward-methods"], [5, "reward-methods"]], "Additional Methods": [[3, "additional-methods"], [4, "additional-methods"], [5, "additional-methods"], [7, "additional-methods"]], "nqos_split Adapter": [[4, "nqos-split-adapter"]], "Reward Method": [[4, "reward-method"]], "qos_steer Adapter": [[5, "qos-steer-adapter"]], "Env": [[6, "env"]], "network_gym_client.Env": [[6, "network-gym-client-env"]], "Attributes": [[6, "attributes"]], "NorthBound": [[7, "northbound"]], "network_gym_client.NorthBound": [[7, "network-gym-client-northbound"]], "network_gym_env": [[8, "network-gym-env"]], "NetworkGym UML Sequence Diagram": [[8, "networkgym-uml-sequence-diagram"]], "Configure": [[9, "configure"]], "network_gym_env.Configure": [[9, "network-gym-env-configure"]], "Dummy Simulator": [[10, "dummy-simulator"]], "network_gym_env.DummySim": [[10, "network-gym-env-dummysim"]], "SouthBound": [[11, "southbound"]], "network_gym_env.SouthBound": [[11, "network-gym-env-southbound"]], "network_gym_server": [[12, "network-gym-server"]], "Contact": [[13, "contact"]], "Motivation": [[14, "motivation"]], "Network AI Models/Algorithms Development Cycle": [[14, "network-ai-models-algorithms-development-cycle"]], "Challenges Faced by Network AI Developers": [[14, "challenges-faced-by-network-ai-developers"]], "NetworkGym\u2019s Approach to Addressing this Challenge": [[14, null], [14, null], [14, null]], "Overview": [[15, "overview"]], "NetworkGym Components and Interfaces": [[15, "networkgym-components-and-interfaces"]], "Client API": [[15, "client-api"]], "Server API": [[15, "server-api"]], "Environment API": [[15, "environment-api"]], "Quickstart": [[16, "quickstart"]], "Accessing the NetworkGym Service via vLab": [[16, "accessing-the-networkgym-service-via-vlab"]], "Basic Usage": [[16, "basic-usage"]], "\u25b6\ufe0f Upon starting the Client, the following series of steps occur:": [[16, null]], "\ud83d\udd01 During the simulation, the process repeats as follows:": [[16, null]], "\u23f9\ufe0f When the NetworkGym or the simulation concludes:": [[16, null]], "Initializing Environments": [[16, "initializing-environments"]], "Interacting with the Environment": [[16, "interacting-with-the-environment"]], "Explaining the code": [[16, "explaining-the-code"]], "Action and observation spaces": [[16, "action-and-observation-spaces"]], "Modifying the environment": [[16, "modifying-the-environment"]], "Network Slicing": [[17, "network-slicing"]], "Cellular Network Slicing": [[18, "cellular-network-slicing"]], "Description": [[18, "description"], [20, "description"], [21, "description"]], "Prerequisite": [[18, "prerequisite"], [20, "prerequisite"], [21, "prerequisite"]], "Observation Space": [[18, "observation-space"], [20, "observation-space"], [21, "observation-space"]], "Action Space": [[18, "action-space"], [20, "action-space"], [21, "action-space"]], "Reward": [[18, "reward"], [20, "reward"], [21, "reward"]], "Arguments": [[18, "arguments"], [20, "arguments"], [21, "arguments"]], "Starting State": [[18, "starting-state"], [20, "starting-state"], [21, "starting-state"]], "Episode End": [[18, "episode-end"], [20, "episode-end"], [21, "episode-end"]], "Traffic Management": [[19, "traffic-management"]], "Multi-Access QoS Traffic Steering": [[20, "multi-access-qos-traffic-steering"]], "Multi-Access Traffic Splitting": [[21, "multi-access-traffic-splitting"]], "Transition Dynamics": [[21, "transition-dynamics"]], "NetworkGym: Democratizing Network AI": [[22, "networkgym-democratizing-network-ai"]], "Objectives": [[22, "objectives"]], "Agent": [[22, "agent"]], "Gymnasium API": [[22, "gymnasium-api"]], "NetworkGym API": [[22, "networkgym-api"]], "NetworkGym Scope and Limitations": [[22, "networkgym-scope-and-limitations"]], "Customizing Observation and Reward": [[23, "customizing-observation-and-reward"]], "Working with the Measurement": [[23, "working-with-the-measurement"]], "Measurement Columns": [[23, "measurement-columns"]], "Measurement Rows": [[23, "measurement-rows"]], "Retrieving a Measurement": [[23, "retrieving-a-measurement"]], "Filling the Missing Data": [[23, "filling-the-missing-data"]], "Handling Time Limits": [[24, "handling-time-limits"]], "Truncation": [[24, "truncation"]], "Termination": [[24, "termination"]], "Sequential Training Example": [[24, "sequential-training-example"]], "Python code:": [[24, "python-code"]], "Implementing Custom Environment": [[25, "implementing-custom-environment"]], "Initiating your Custom Environment": [[25, "initiating-your-custom-environment"]], "Connecting to Your Custom Environment": [[25, "connecting-to-your-custom-environment"]], "Substituting the Dummy Simulator": [[25, "substituting-the-dummy-simulator"]], "Releasing Your Custom Environment": [[25, "releasing-your-custom-environment"]], "Training Agents": [[26, "training-agents"]], "System Default Agent": [[26, "system-default-agent"]], "Custom Algorithm Agent": [[26, "custom-algorithm-agent"]], "Stable-Baselines3 Agent": [[26, "stable-baselines3-agent"]], "CleanRL Agent": [[26, "cleanrl-agent"]]}, "indexentries": {"adapter (class in network_gym_client)": [[2, "network_gym_client.Adapter"]], "df_to_dict() (in module network_gym_client.adapter)": [[2, "network_gym_client.Adapter.df_to_dict"]], "fill_empty_feature() (in module network_gym_client.adapter)": [[2, "network_gym_client.Adapter.fill_empty_feature"]], "get_nested_json_policy() (in module network_gym_client.adapter)": [[2, "network_gym_client.Adapter.get_nested_json_policy"]], "wandb_log() (in module network_gym_client.adapter)": [[2, "network_gym_client.Adapter.wandb_log"]], "wandb_log_buffer_append() (in module network_gym_client.adapter)": [[2, "network_gym_client.Adapter.wandb_log_buffer_append"]], "adapter (class in network_gym_client.envs.network_slicing)": [[3, "network_gym_client.envs.network_slicing.Adapter"]], "get_action_space() (in module network_gym_client.envs.network_slicing.adapter)": [[3, "network_gym_client.envs.network_slicing.Adapter.get_action_space"]], "get_observation() (in module network_gym_client.envs.network_slicing.adapter)": [[3, "network_gym_client.envs.network_slicing.Adapter.get_observation"]], "get_observation_space() (in module network_gym_client.envs.network_slicing.adapter)": [[3, "network_gym_client.envs.network_slicing.Adapter.get_observation_space"]], "get_policy() (in module network_gym_client.envs.network_slicing.adapter)": [[3, "network_gym_client.envs.network_slicing.Adapter.get_policy"]], "get_rbg_size() (in module network_gym_client.envs.network_slicing.adapter)": [[3, "network_gym_client.envs.network_slicing.Adapter.get_rbg_size"]], "get_reward() (in module network_gym_client.envs.network_slicing.adapter)": [[3, "network_gym_client.envs.network_slicing.Adapter.get_reward"]], "adapter (class in network_gym_client.envs.nqos_split)": [[4, "network_gym_client.envs.nqos_split.Adapter"]], "get_action_space() (in module network_gym_client.envs.nqos_split.adapter)": [[4, "network_gym_client.envs.nqos_split.Adapter.get_action_space"]], "get_observation() (in module network_gym_client.envs.nqos_split.adapter)": [[4, "network_gym_client.envs.nqos_split.Adapter.get_observation"]], "get_observation_space() (in module network_gym_client.envs.nqos_split.adapter)": [[4, "network_gym_client.envs.nqos_split.Adapter.get_observation_space"]], "get_policy() (in module network_gym_client.envs.nqos_split.adapter)": [[4, "network_gym_client.envs.nqos_split.Adapter.get_policy"]], "get_reward() (in module network_gym_client.envs.nqos_split.adapter)": [[4, "network_gym_client.envs.nqos_split.Adapter.get_reward"]], "netowrk_util() (in module network_gym_client.envs.nqos_split.adapter)": [[4, "network_gym_client.envs.nqos_split.Adapter.netowrk_util"]], "adapter (class in network_gym_client.envs.qos_steer)": [[5, "network_gym_client.envs.qos_steer.Adapter"]], "calculate_wifi_qos_user_num() (in module network_gym_client.envs.qos_steer.adapter)": [[5, "network_gym_client.envs.qos_steer.Adapter.calculate_wifi_qos_user_num"]], "get_action_space() (in module network_gym_client.envs.qos_steer.adapter)": [[5, "network_gym_client.envs.qos_steer.Adapter.get_action_space"]], "get_observation() (in module network_gym_client.envs.qos_steer.adapter)": [[5, "network_gym_client.envs.qos_steer.Adapter.get_observation"]], "get_observation_space() (in module network_gym_client.envs.qos_steer.adapter)": [[5, "network_gym_client.envs.qos_steer.Adapter.get_observation_space"]], "get_policy() (in module network_gym_client.envs.qos_steer.adapter)": [[5, "network_gym_client.envs.qos_steer.Adapter.get_policy"]], "get_reward() (in module network_gym_client.envs.qos_steer.adapter)": [[5, "network_gym_client.envs.qos_steer.Adapter.get_reward"]], "env (class in network_gym_client)": [[6, "network_gym_client.Env"]], "action_space (network_gym_client.env attribute)": [[6, "network_gym_client.Env.action_space"]], "adapter (network_gym_client.env attribute)": [[6, "network_gym_client.Env.adapter"]], "northbound_interface_client (network_gym_client.env attribute)": [[6, "network_gym_client.Env.northbound_interface_client"]], "observation_space (network_gym_client.env attribute)": [[6, "network_gym_client.Env.observation_space"]], "reset() (in module network_gym_client.env)": [[6, "network_gym_client.Env.reset"]], "step() (in module network_gym_client.env)": [[6, "network_gym_client.Env.step"]], "northboundclient (class in network_gym_client)": [[7, "network_gym_client.NorthBoundClient"]], "connect() (in module network_gym_client.northboundclient)": [[7, "network_gym_client.NorthBoundClient.connect"]], "process_measurement() (in module network_gym_client.northboundclient)": [[7, "network_gym_client.NorthBoundClient.process_measurement"]], "recv() (in module network_gym_client.northboundclient)": [[7, "network_gym_client.NorthBoundClient.recv"]], "send() (in module network_gym_client.northboundclient)": [[7, "network_gym_client.NorthBoundClient.send"]], "configure (class in network_gym_env)": [[9, "network_gym_env.Configure"]], "run() (in module network_gym_env.configure)": [[9, "network_gym_env.Configure.run"]], "dummysim (class in network_gym_env)": [[10, "network_gym_env.DummySim"]], "generate_dummy_measurement() (in module network_gym_env.dummysim)": [[10, "network_gym_env.DummySim.generate_dummy_measurement"]], "run_one_interval() (in module network_gym_env.dummysim)": [[10, "network_gym_env.DummySim.run_one_interval"]], "start_simulation() (in module network_gym_env.dummysim)": [[10, "network_gym_env.DummySim.start_simulation"]], "southbound_connect() (in module network_gym_env.southbound_interface)": [[11, "network_gym_env.southbound_interface.southbound_connect"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["README", "api/network_gym_client", "api/network_gym_client/adapter", "api/network_gym_client/adapter/network_slicing", "api/network_gym_client/adapter/nqos_split", "api/network_gym_client/adapter/qos_steer", "api/network_gym_client/env", "api/network_gym_client/northbound_interface", "api/network_gym_env", "api/network_gym_env/configure", "api/network_gym_env/simulator", "api/network_gym_env/southbound_interface", "api/network_gym_server", "contact", "content/motivation", "content/overview", "content/quickstart", "environments/mx_network_slicing", "environments/mx_network_slicing/cellular_network_slicing", "environments/mx_traffic_management", "environments/mx_traffic_management/mx_qos_traffic_steering", "environments/mx_traffic_management/mx_traffic_splitting", "index", "tutorials/customizing_observation_and_reward", "tutorials/handling_time_limits", "tutorials/implementing_custom_environment", "tutorials/training_agents"], "filenames": ["README.md", "api/network_gym_client.md", "api/network_gym_client/adapter.md", "api/network_gym_client/adapter/network_slicing.md", "api/network_gym_client/adapter/nqos_split.md", "api/network_gym_client/adapter/qos_steer.md", "api/network_gym_client/env.md", "api/network_gym_client/northbound_interface.md", "api/network_gym_env.md", "api/network_gym_env/configure.md", "api/network_gym_env/simulator.md", "api/network_gym_env/southbound_interface.md", "api/network_gym_server.md", "contact.md", "content/motivation.md", "content/overview.md", "content/quickstart.md", "environments/mx_network_slicing.md", "environments/mx_network_slicing/cellular_network_slicing.md", "environments/mx_traffic_management.md", "environments/mx_traffic_management/mx_qos_traffic_steering.md", "environments/mx_traffic_management/mx_traffic_splitting.md", "index.md", "tutorials/customizing_observation_and_reward.md", "tutorials/handling_time_limits.md", "tutorials/implementing_custom_environment.md", "tutorials/training_agents.md"], "titles": ["Build Documentation Website", "network_gym_client", "Adapter", "network_slicing Adapter", "nqos_split Adapter", "qos_steer Adapter", "Env", "NorthBound", "network_gym_env", "Configure", "Dummy Simulator", "SouthBound", "network_gym_server", "Contact", "Motivation", "Overview", "Quickstart", "Network Slicing", "Cellular Network Slicing", "Traffic Management", "Multi-Access QoS Traffic Steering", "Multi-Access Traffic Splitting", "NetworkGym: Democratizing Network AI", "Customizing Observation and Reward", "Handling Time Limits", "Implementing Custom Environment", "Training Agents"], "terms": {"option": [0, 1, 6, 16, 18, 20, 21, 22, 23, 24], "creat": [0, 10, 16, 22, 25, 26], "new": [0, 10, 16, 23], "virtual": 0, "python": [0, 16, 22], "environ": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14, 17, 18, 19, 20, 21, 22, 23, 24, 26], "python3": [0, 25], "m": [0, 18, 25], "venv": 0, "sphinx_venv": 0, "sourc": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11, 22, 26], "bin": 0, "activ": [0, 8, 15, 16, 26], "requir": [0, 14, 20, 23], "librari": 0, "pip": 0, "r": [0, 18, 21], "txt": 0, "In": [0, 8, 16, 17, 18, 19, 20, 21, 22, 24, 25], "doc": 0, "folder": 0, "run": [0, 6, 9, 10, 16, 18, 20, 21, 24], "follow": [0, 1, 6, 9, 18, 20, 21, 22, 23, 25], "command": [0, 25], "export": 0, "static": 0, "_build": 0, "html": 0, "make": [0, 16, 23], "clean": 0, "network_gym_cli": [0, 2, 3, 4, 5, 16, 18, 20, 21, 23, 24], "The": [0, 1, 6, 8, 9, 10, 12, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26], "contain": [0, 6, 16, 18, 23], "modul": [0, 8], "rm": 0, "sphinx": 0, "apidoc": 0, "o": [0, 16, 22], "d": 0, "2": [0, 6, 18, 20, 21, 22, 23, 25], "markdown": 0, "e": [0, 1, 6, 9, 10, 14, 18, 20, 21, 22, 24], "g": [0, 1, 6, 9, 10, 14, 20, 21, 22], "eval": 0, "autoclass": 0, "env": [0, 1, 3, 4, 5, 7, 8, 9, 10, 16, 18, 20, 21, 24, 25, 26], "networkgym": [1, 6, 7, 12, 18, 20, 21, 24, 25, 26], "client": [1, 6, 7, 8, 9, 10, 12, 18, 20, 21, 22, 25], "includ": [1, 12, 16, 22, 23, 26], "three": [1, 15, 18, 20, 21, 22, 24], "compon": [1, 8, 9, 12, 22], "custom": [1, 2, 6, 9, 15, 16, 18, 20, 21, 22, 24], "gymnasium": [1, 2, 6, 14, 15, 16, 26], "adapt": [1, 6, 15, 18, 20, 21, 23, 25], "northbound": [1, 6, 12, 15, 16, 22], "interfac": [1, 6, 7, 8, 11, 12, 16, 22, 25], "inheret": 1, "class": [1, 3, 4, 5, 6, 7, 9, 10, 16, 23, 25], "commun": [1, 6, 8, 15, 16], "agent": [1, 2, 3, 4, 5, 6, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25], "us": [1, 6, 9, 10, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26], "standard": [1, 14, 22, 25], "exchang": [1, 8, 9, 16], "ob": [1, 2, 6, 16, 24], "reward": [1, 2, 6, 16, 22, 24], "action": [1, 2, 3, 4, 5, 6, 8, 9, 10, 17, 19, 22, 23, 24, 25, 26], "reset": [1, 6, 16, 24], "step": [1, 6, 18, 20, 21, 24, 25], "function": [1, 2, 3, 4, 5, 16, 18, 20, 21, 22, 23], "import": [1, 16, 18, 20, 21, 24], "gym": [1, 6, 7, 22], "def": 1, "__init__": 1, "self": [1, 2, 3, 4, 5, 6, 7, 9, 10], "arg1": 1, "arg2": 1, "super": 1, "return": [1, 2, 3, 4, 5, 6, 7, 10, 11, 16], "observ": [1, 3, 4, 5, 6, 22, 26], "termin": [1, 6, 8, 9, 10, 16, 18, 20, 21, 25], "truncat": [1, 6, 16, 18, 20, 21], "info": [1, 2, 6, 16, 24, 25, 26], "seed": [1, 6], "none": [1, 6], "transform": [1, 2, 15, 23], "data": [1, 2, 5, 8, 15, 16, 18, 20, 22, 25, 26], "format": [1, 2, 15, 16, 22, 25], "from": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 18, 22, 23, 24, 26], "network_gym": [1, 2, 6], "other": [1, 9, 20, 24], "wai": [1, 6, 21, 23], "around": [1, 22], "network": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 16, 20, 21, 23, 25, 26], "stat": [1, 2, 3, 4, 5, 7, 10, 22], "chang": [1, 24], "polici": [1, 2, 3, 4, 5, 7, 8, 16, 26], "connect": [1, 6, 7, 8, 9, 10, 11, 12, 15, 16, 19, 20, 21, 22, 23], "server": [1, 6, 7, 8, 9, 10, 11, 12, 16, 18, 20, 21, 22, 25], "configur": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 20, 21, 22, 23, 24], "paramet": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 18, 20, 21, 24], "between": [1, 2, 6, 8, 9, 15, 21, 22, 25], "envrion": [1, 12], "config_json": [2, 3, 4, 5, 6, 7, 10, 11, 16, 18, 20, 21, 24], "thi": [2, 3, 4, 5, 6, 8, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "i": [2, 3, 4, 6, 7, 9, 10, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26], "an": [2, 6, 8, 9, 12, 14, 15, 16, 18, 20, 21, 22, 23, 24, 26], "It": [2, 6, 8, 15, 16, 18, 20, 21, 22, 24], "measur": [2, 3, 4, 5, 6, 7, 8, 9, 10, 16, 18, 20, 21, 22, 25], "json": [2, 3, 4, 5, 6, 7, 10, 11, 16, 18, 20, 21, 23, 24, 25], "space": [2, 3, 4, 5, 6], "also": [2, 6, 14, 16, 18, 20, 21, 22, 23, 24, 25], "can": [2, 6, 8, 9, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26], "appli": [2, 23], "initi": [2, 3, 4, 5, 6, 7, 8, 9, 18], "file": [2, 3, 4, 5, 6, 7, 10, 11, 16, 18, 20, 21, 23, 24, 25], "wandb_log_buffer_append": 2, "add": [2, 12, 16], "wandb": [2, 16], "log": [2, 6, 21], "buffer": 2, "send": [2, 6, 7, 8, 10, 16, 22, 23, 25, 26], "later": 2, "wandb_log": 2, "dict": [2, 6, 10, 16], "inform": [2, 6, 16, 20, 21, 22], "append": 2, "df_to_dict": 2, "df": [2, 3, 4, 5, 23], "descript": [2, 23], "datatyp": 2, "panda": [2, 5], "datafram": [2, 3, 4, 5, 7, 23], "dictionari": [2, 6, 16], "object": [2, 6, 18, 23], "string": 2, "descritpt": 2, "convert": 2, "fill_empty_featur": [2, 23], "featur": [2, 3, 4, 5, 18, 20, 21, 22, 23], "valu": [2, 4, 6, 16, 18, 20, 21, 23, 25], "fill": 2, "miss": 2, "input": [2, 16, 23], "pd": [2, 3, 4, 5, 7], "int": [2, 3, 6, 7, 9, 10], "list": [2, 6, 9, 10, 16, 18, 20, 21, 23], "result": [2, 6, 10, 16, 18, 20, 21, 24], "after": [2, 6, 16, 18, 20, 21, 23, 24], "replac": 2, "get_nested_json_polici": 2, "action_nam": 2, "nest": 2, "str": [2, 9, 10, 11], "name": [2, 9, 10, 16, 23, 25], "tag": [2, 10, 25], "rl": [2, 3, 4, 5, 6, 16, 22, 23, 26], "base": [3, 4, 5, 8, 15, 16, 21, 22], "get_observ": [3, 4, 5, 18, 20, 21, 23], "prepar": [3, 4, 5], "should": [3, 4, 5, 6, 16, 18, 23, 25], "same": [3, 4, 5, 9, 18, 23, 25], "number": [3, 4, 5, 6, 10, 16, 18, 20, 21, 23, 24, 25], "defin": [3, 4, 5, 6, 16, 18, 20, 21, 22, 26], "get_observation_spac": [3, 4, 5, 23], "get_reward": [3, 4, 5, 18, 20, 21, 23], "get_polici": [3, 4, 5], "No": [3, 16, 22, 26], "yet": 3, "get_action_spac": [3, 4, 5], "get": [3, 4, 5, 6], "get_rbg_siz": 3, "bandwidth": [3, 20], "comput": [3, 16, 18, 20, 21, 22, 23], "resourc": [3, 17, 18, 20, 21], "block": [3, 18], "group": [3, 18, 23, 25], "size": [3, 23], "bandwith": 3, "rb": [3, 18], "code": [3, 9, 23, 26], "coppi": 3, "ns3": 3, "pf": 3, "type": [3, 6, 16, 22, 25], "0": [3, 4, 6, 16, 18, 20, 21, 23, 24, 25], "alloc": [3, 17, 18], "rbg": 3, "resouc": 3, "netowrk_util": [4, 21], "throughput": [4, 18, 20, 21, 23], "delai": [4, 6, 18, 20, 21, 23, 26], "alpha": 4, "5": [4, 18, 20, 21, 23, 25], "calcul": [4, 5, 20], "util": [4, 9, 15, 18, 20, 21, 22, 23, 25], "specifi": [4, 6, 16, 18, 20, 21, 23, 24], "balanc": 4, "default": [4, 5, 6, 16, 18, 22, 23], "float": 4, "repres": [4, 16, 18, 20, 21, 23], "bit": 4, "per": [4, 5, 18, 20, 21, 23, 24], "second": [4, 16, 20, 21, 24], "metric": [4, 16, 23], "calculate_wifi_qos_user_num": [5, 20], "qos_rat": [5, 20, 23, 25], "qo": [5, 14, 16, 19, 23], "user": [5, 6, 10, 16, 18, 19, 20, 21, 22, 23, 25, 26], "over": [5, 19, 20, 21, 23], "wi": [5, 19, 20, 21, 23, 25], "fi": [5, 19, 20, 21, 23, 25], "rate": [5, 18, 20, 21, 23, 25], "doubl": 5, "id": [6, 7, 9, 23], "initil": [6, 10], "intern": [6, 16], "state": [6, 16, 22, 26], "": [6, 8, 9, 16, 18, 20, 21, 23, 24, 25, 26], "prng": 6, "np_random": 6, "If": [6, 16, 24], "doe": [6, 22], "alreadi": [6, 20], "have": [6, 16, 18, 20, 21, 22, 23, 24, 26], "pass": 6, "chosen": 6, "some": [6, 16, 23], "entropi": 6, "timestamp": [6, 10, 23], "dev": 6, "urandom": 6, "howev": 6, "ha": [6, 16, 18, 20, 21, 24], "you": [6, 15, 16, 18, 20, 21, 23, 24, 25, 26], "integ": 6, "even": 6, "exist": [6, 23], "usual": 6, "want": 6, "right": [6, 18], "been": [6, 16, 26], "never": 6, "again": 6, "pleas": [6, 22, 25], "refer": [6, 16, 18, 20, 21, 22, 24, 25, 26], "minim": [6, 21], "exampl": [6, 16], "abov": [6, 22], "see": [6, 18, 20, 21], "paradigm": 6, "addit": [6, 16, 22], "how": [6, 15, 16, 22, 24, 25], "depend": [6, 25], "specif": [6, 14, 15, 18, 22, 23, 24, 26], "obstyp": 6, "auxiliari": 6, "complement": 6, "analog": 6, "one": [6, 8, 10, 16, 18, 21, 23, 24], "timestep": [6, 16], "dynam": [6, 23], "gamsim": 6, "check": 6, "last": [6, 24], "episod": [6, 16, 24, 25], "done": [6, 16], "acttyp": 6, "provid": [6, 9, 15, 16, 20, 21, 22, 23, 24, 25, 26], "updat": [6, 16, 19, 21, 23], "element": [6, 15, 16], "observation_spac": [6, 16], "next": [6, 16], "due": 6, "supportsfloat": 6, "take": [6, 16, 18, 20, 23], "bool": 6, "whether": 6, "reach": [6, 16, 20], "under": 6, "mdp": 6, "task": [6, 25], "which": [6, 15, 16, 18, 20, 23], "posit": [6, 18, 20, 21], "neg": 6, "goal": [6, 20, 21, 23], "move": 6, "lava": 6, "sutton": 6, "barton": 6, "gridworld": 6, "true": [6, 16], "need": [6, 14, 16, 18], "call": [6, 16], "condit": 6, "outsid": 6, "scope": 6, "satisfi": 6, "typic": 6, "timelimit": [6, 16], "could": [6, 16], "indic": [6, 18, 20], "physic": [6, 22], "go": 6, "out": [6, 16, 22, 23], "bound": [6, 16, 23], "end": [6, 8, 16, 22, 23, 24], "prematur": 6, "befor": 6, "diagnost": 6, "help": [6, 16], "debug": 6, "learn": [6, 14, 22, 25, 26], "raw": 6, "flag": 6, "deprec": 6, "A": [6, 10, 16, 18, 20, 21, 22, 23, 24, 26], "boolean": 6, "case": [6, 14, 16, 18, 22, 23], "further": [6, 16, 18, 20, 21], "undefin": 6, "wa": 6, "remov": 6, "openai": 6, "v26": 6, "favor": 6, "signal": [6, 8, 9, 16, 21], "mai": [6, 16, 24], "emit": 6, "differ": [6, 16, 20, 22, 24], "reason": 6, "mayb": 6, "underli": [6, 9], "solv": 6, "successfulli": [6, 25], "certain": [6, 18, 20, 21, 23, 24], "exceed": [6, 16], "simul": [6, 8, 9, 14, 15, 22, 23], "enter": 6, "invalid": 6, "action_spac": [6, 16, 24, 26], "correspond": [6, 15], "valid": [6, 16, 23], "all": [6, 9, 16, 17, 18, 20, 21, 23, 25], "For": [6, 16, 20, 22, 23, 25], "discret": [6, 16], "give": 6, "mean": 6, "ar": [6, 8, 9, 16, 18, 20, 21, 25], "two": [6, 8, 12, 15, 22, 24], "1": [6, 16, 18, 20, 21, 23, 24, 25], "box": [6, 15, 16, 18, 20, 21], "3": [6, 8, 9, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25], "4028234663852886e": 6, "38": [6, 23], "4": [6, 18, 23, 25], "float32": [6, 18, 20, 21], "shape": [6, 16, 18, 20, 21], "denot": [6, 18, 20, 21, 24], "arrai": [6, 16, 18, 26], "we": [6, 12, 16, 18, 20, 21, 22, 23, 24], "well": 6, "high": [6, 21, 22, 23], "8000002e": 6, "00": 6, "4028235e": 6, "1887903e": 6, "01": 6, "dtype": 6, "low": [6, 21, 23], "northbound_interface_cli": 6, "traslat": 6, "dataformat": 6, "northboundcli": 7, "sever": 7, "repli": 7, "start": [7, 8, 9, 10, 23, 24, 25], "request": [7, 8], "where": [7, 16, 18, 21, 23], "load": [7, 16, 18, 20, 21, 23], "recv": 7, "receiv": [7, 8, 10, 16, 20, 21, 25], "messag": [7, 8, 9], "process_measur": 7, "reply_json": 7, "process": [7, 8, 24, 25], "compris": [8, 15, 23], "core": 8, "These": [8, 26], "establish": [8, 9, 15, 16, 25], "via": [8, 11, 25], "design": [8, 18, 22, 26], "southbound": [8, 10, 12, 15, 16, 22, 25], "serv": [8, 18, 20, 22, 23], "bridg": 8, "facilit": [8, 9, 15, 16, 22], "statist": [8, 18, 20, 21, 23], "keep": [8, 15, 23], "aliv": 8, "period": [8, 9, 17, 19, 20, 21], "dispatch": [8, 9], "hello": [8, 9, 25], "upon": [8, 9], "disengag": 8, "n": [8, 9, 14, 15, 16, 18, 20, 21, 22], "smulat": 8, "instig": 8, "plan": [8, 12, 16], "incorpor": 8, "emul": [8, 15], "testb": [8, 15, 23, 25], "altern": 8, "earmark": 8, "futur": 8, "releas": [8, 12], "depict": [8, 15], "flow": [8, 20, 23], "complet": [8, 25], "cycl": 8, "within": [8, 15, 16, 18, 23, 25], "session": [8, 15, 16, 18, 20, 21, 24], "launch": [8, 9, 16, 25], "env_config": [8, 9, 10, 24, 25], "trigger": [8, 26], "gener": [8, 10, 18, 20, 21, 24, 25], "incom": 8, "onc": [8, 16, 18, 20, 21, 24, 25], "conclud": 8, "map": [8, 12, 15, 16], "onli": [8, 9, 20, 23, 25], "env_sim": [8, 9, 10, 25], "ani": [8, 16, 20, 22], "given": [8, 18, 20, 21], "moment": [8, 18], "cannot": [8, 18, 20, 21, 24], "occur": 8, "simultan": 8, "standpoint": 8, "treat": 8, "both": [8, 16, 18, 19, 20, 21, 23, 24], "equival": 8, "identifi": 8, "them": [8, 16, 18, 20, 22], "entiti": [8, 9, 22, 25], "networkgymsim": 9, "env_list": [9, 25], "recept": 9, "its": [9, 15, 18, 20], "socket": [9, 10, 11, 25], "ident": [9, 10, 11], "identif": 9, "subsequ": [9, 18, 20, 21, 24], "commenc": 9, "conclus": 9, "close": 9, "reconnect": 9, "point": [9, 18, 20, 21, 23, 24], "perceiv": 9, "divis": 9, "advantag": [9, 26], "straightforward": [9, 16, 25], "expans": 9, "test": [9, 14, 20, 23, 25], "while": [9, 17, 18, 24], "support": [9, 15, 16, 20, 25], "non": [9, 16], "offic": 9, "account": [9, 18], "env_ident": 10, "client_ident": 10, "msg_json": 10, "random": [10, 16, 18, 20, 21], "sampl": [10, 16, 24, 26], "when": [10, 12, 18, 20, 21, 22, 23, 25, 26], "resum": 10, "env_idennt": 10, "env_port": 10, "first": [10, 16, 20, 21, 24], "who": 10, "msg": [10, 25], "cliet": 10, "generate_dummy_measur": 10, "num_us": 10, "ad": 10, "start_simul": 10, "api": [10, 14, 26], "report": 10, "run_one_interv": 10, "interv": [10, 16], "southbound_interfac": 11, "southbound_connect": 11, "indent": 11, "zmq": 11, "manag": [12, 16, 20, 21, 22], "select": [12, 15, 16, 18, 19, 20, 21, 25], "idl": 12, "instanc": [12, 16, 20, 22, 23, 25], "rout": [12, 15], "tabl": 12, "At": [12, 15, 18, 20, 21, 24], "present": [12, 15, 16, 20, 25], "do": 12, "softwar": [12, 22], "email": 13, "github": [13, 18, 20, 21, 25], "slack": 13, "real": 14, "world": [14, 22], "dataset": 14, "control": [14, 20, 22], "oper": [14, 18, 20, 21, 22, 24], "difficult": 14, "acquir": 14, "align": [14, 25], "usag": [14, 18], "itself": 14, "enough": 14, "train": [14, 16, 18, 20, 21, 22], "reinforc": [14, 22, 26], "etc": [14, 22], "current": 14, "enabl": [14, 15, 16, 21, 22, 23, 26], "multi": 14, "access": [14, 18, 22, 23, 25], "traffic": [14, 23], "split": [14, 19, 23], "awar": 14, "steer": [14, 19], "cellular": [14, 17, 20, 21], "ran": [14, 16, 22], "slice": 14, "tool": [14, 22], "often": 14, "veri": 14, "complex": 14, "especi": 14, "research": [14, 15, 16, 22], "without": [14, 20, 22], "expertis": [14, 22], "lack": [14, 20, 23], "common": 14, "simpl": [14, 16], "evalu": [14, 20, 25], "benchmark": 14, "adher": [14, 18], "addition": [14, 15, 16, 25], "offer": [14, 15, 22, 23, 26], "framework": [15, 22], "consist": [15, 16, 22, 23], "essenti": [15, 16, 22, 25], "each": [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "plai": [15, 22], "crucial": [15, 22], "role": [15, 22, 26], "system": [15, 16, 18, 22, 23], "encompass": 15, "seamless": 15, "interact": [15, 22, 24, 25, 26], "displai": 15, "below": [15, 16, 23, 24, 26], "graphic": 15, "architectur": [15, 22], "visual": [15, 16], "aid": 15, "divers": [15, 25], "collabor": [15, 16], "harmoni": 15, "form": 15, "streamlin": [15, 22, 25], "effect": [15, 16, 22], "servic": [15, 17, 18, 20, 22], "tailor": [15, 18, 22], "advanc": 15, "ai": [15, 16], "develop": [15, 16, 22], "By": [15, 18, 22], "click": 15, "blue": 15, "navig": 15, "directli": 15, "page": [15, 22], "respect": [15, 16, 18, 22], "main": 15, "respons": 15, "allow": [15, 16, 22, 26], "compat": 15, "like": [15, 18, 22], "stabl": [15, 22], "baselines3": [15, 22], "cleanrl": [15, 22], "desir": [15, 20], "central": 15, "maintain": [15, 22, 23], "track": 15, "assign": [15, 18, 20, 21, 25], "dure": [15, 20], "either": [15, 16, 18, 20, 21], "through": [15, 16, 18, 20, 21, 22, 24, 25], "distinct": [15, 18], "machin": [16, 18, 20, 21, 22], "requst": 16, "mlwin": 16, "ring": 16, "univers": 16, "public": 16, "internet": 16, "intel": 16, "issu": [16, 23], "feel": 16, "free": 16, "u": [16, 25], "netaigym": [16, 25], "gmail": [16, 25], "com": [16, 25], "sim": [16, 22], "aa": [16, 22], "devcloud": 16, "avail": [16, 20, 22, 26], "meanwhil": [16, 18], "enhanc": 16, "capabl": 16, "5g": 16, "distribut": [16, 18, 20, 21], "energi": 16, "save": 16, "predict": 16, "more": [16, 18, 20, 21, 22], "gain": 16, "begin": 16, "download": [16, 18, 20, 21], "your": [16, 22, 23], "prompt": 16, "collect": [16, 22, 26], "forward": [16, 25], "norhtbound": 16, "nb": 16, "algorithm": [16, 18, 22], "store": 16, "relev": 16, "transmit": [16, 18, 20, 21, 23, 25], "sb": [16, 25], "continu": [16, 18, 20, 21, 24], "conveni": 16, "websit": 16, "demonstr": [16, 24, 25], "packag": 16, "networkgymenv": [16, 18, 20, 21, 24], "client_id": [16, 18, 20, 21, 24], "argument": 16, "classic": 16, "loop": [16, 22], "implement": [16, 18, 20, 22], "load_config_fil": [16, 18, 20, 21, 24], "env_nam": [16, 24, 25], "nqos_split": [16, 21, 24], "num_step": [16, 24], "1000": [16, 24], "rang": [16, 18, 23, 24, 26], "exit": [16, 18, 20, 21, 24], "break": [16, 24], "epsiod": [16, 24], "up": [16, 24], "still": [16, 24], "anoth": [16, 24], "keyword": 16, "associ": 16, "dedic": [16, 17, 18], "worker": 16, "until": 16, "parallel": 16, "obtain": 16, "perform": [16, 17, 19, 20, 21, 22, 24], "As": 16, "along": [16, 18, 20, 21], "One": [16, 23], "multipl": [16, 18, 20, 21], "fix": 16, "restart": 16, "scenario": [16, 20, 23], "sequenti": 16, "success": 16, "insight": 16, "time": [16, 18, 20, 21, 23], "constraint": [16, 18, 20], "found": 16, "handl": [16, 18, 20, 21], "limit": [16, 18, 20, 21, 25], "illustr": [16, 23, 24], "everi": [16, 18, 20, 21], "attribut": 16, "understand": 16, "expect": [16, 25], "output": [16, 23, 25], "instead": 16, "prefer": 16, "empti": [16, 22, 26], "shown": [16, 25, 26], "np": [16, 26], "inherit": 16, "major": 16, "possibl": [16, 20], "might": [16, 23], "describ": 16, "dimension": 16, "upper": 16, "lower": 16, "our": [16, 18, 25], "shift": 16, "tupl": 16, "multibinari": 16, "binari": 16, "multidiscret": [16, 20], "wrapper": [16, 18, 20, 21], "maximum": [16, 18, 20, 23], "clipact": 16, "clip": 16, "li": 16, "rescaleact": [16, 18, 20, 21], "rescal": [16, 18, 20, 21], "lie": 16, "timeawareobserv": 16, "about": [16, 18, 20, 21, 22], "index": [16, 23], "ensur": [16, 18, 20, 21, 23], "transit": 16, "markov": 16, "flattenobserv": 16, "flatten": 16, "normalizeobserv": [16, 18, 20, 21], "normal": [16, 18, 20, 21], "t": [16, 18, 25], "coordin": [16, 23], "center": [16, 22], "unit": [16, 25], "varianc": 16, "wrap": 16, "arg": 16, "normal_obs_env": 16, "among": [17, 18], "priorit": [17, 18, 20, 23], "share": [17, 18, 25], "strive": [17, 18], "meet": [17, 18, 20, 23], "level": [17, 18, 20], "agreement": [17, 18], "entir": [18, 20, 21, 24], "partit": 18, "percept": 18, "possess": 18, "abil": 18, "great": 18, "effici": [18, 20], "belong": 18, "mac": 18, "schedul": [18, 20], "proport": 18, "fair": 18, "guarante": 18, "equit": 18, "imparti": 18, "inf": [18, 20, 21], "config": [18, 20, 21], "network_sl": 18, "pose": 18, "challeng": [18, 20], "compet": 18, "finit": 18, "primari": [18, 20], "strateg": [18, 21], "vlab": [18, 20, 21, 25], "multidimension": 18, "ndarrai": [18, 20, 21], "five": 18, "total": [18, 20], "mbp": [18, 20, 21, 25], "fraction": 18, "express": 18, "percentag": [18, 23], "sum": 18, "across": [18, 20], "equal": [18, 21, 23], "averag": 18, "violat": [18, 20, 23], "wise": 18, "record": 18, "experienc": 18, "millisecond": 18, "min": [18, 20, 21], "max": [18, 20, 21], "elabor": [18, 20, 21, 23], "note": [18, 20, 21, 23, 24], "exce": 18, "surpass": 18, "appropri": 18, "scale": 18, "down": 18, "softmax": 18, "mathemat": 18, "sum_": 18, "a_i": 18, "quad": 18, "frac": 18, "j": 18, "a_j": 18, "num": [18, 21], "factor": 18, "cost": 18, "formul": 18, "left": 18, "text": 18, "_i": 18, "lambda": 18, "cdot": 18, "delay_violation_r": 18, "gamma": 18, "rb_usage_r": 18, "adjust": [18, 20, 25], "emphasi": 18, "consider": 18, "repo": [18, 20, 21, 25], "detail": [18, 20, 21, 22, 26], "uniform": [18, 20, 21], "2d": [18, 20, 21], "plane": [18, 20, 21], "x": [18, 20, 21, 23], "y": [18, 20, 21, 23], "boundari": [18, 20, 21], "instal": [18, 20, 21, 25], "walk": [18, 20, 21], "mobil": [18, 20, 21], "model": [18, 20, 21, 22], "episodes_per_sess": [18, 20, 21, 24], "steps_per_episod": [18, 20, 21, 24], "l": [18, 20, 21, 24], "happen": [18, 20, 21], "length": [18, 20, 21, 24], "reconfigur": [18, 20, 21, 24], "program": [18, 20, 21, 22, 24], "mx": [19, 20, 21], "ratio": [19, 21, 23], "consid": [19, 20, 21], "lte": [19, 20, 21, 23, 25], "link": [19, 20, 21, 23, 25], "part": [20, 21], "dimens": 20, "qos_steer": 20, "randomli": [20, 21], "intellig": 20, "direct": [20, 23, 25], "aim": [20, 21], "achiev": [20, 21, 22, 23], "best": 20, "qualiti": 20, "regard": 20, "halt": 20, "admiss": 20, "capac": [20, 21, 23], "10": [20, 23, 25], "accommod": 20, "drop": 20, "remain": 20, "On": 20, "hand": 20, "contend": 20, "restrict": 20, "qos_requir": 20, "test_duration_m": 20, "500": 20, "durat": 20, "delay_bound_m": [20, 23], "100": [20, 23], "delay_violation_target": 20, "02": 20, "target": 20, "loss_target": 20, "001": 20, "loss": 20, "packet": [20, 23], "otherwis": 20, "met": 20, "set": 20, "zero": 20, "estim": [20, 21], "channel": [20, 21, 22], "third": [20, 21], "combin": [20, 21, 23], "mechan": 20, "maxim": [20, 21], "lead": 20, "essenc": 20, "optim": [20, 22, 26], "indirectli": 20, "overal": 20, "problem": 21, "station": 21, "closest": 21, "handov": 21, "disabl": 21, "latenc": 21, "transmitt": 21, "f": 21, "owd": [21, 23, 25], "innov": 22, "concept": 22, "seen": 22, "four": 22, "kei": 22, "knowledg": 22, "fulli": 22, "customiz": 22, "host": 22, "cloud": 22, "open": 22, "inject": 22, "flexibl": [22, 26], "languag": 22, "platform": 22, "separ": 22, "freedom": 22, "emploi": [22, 23], "smoothli": 22, "c": 22, "hide": 22, "secur": 22, "oversight": 22, "independ": 22, "deploy": 22, "deploi": 22, "workload": 22, "thei": 22, "purpos": [22, 23, 26], "offlin": [22, 26], "own": [22, 26], "special": [22, 26], "art": [22, 26], "sota": [22, 26], "tutori": [22, 25, 26], "guidanc": 22, "instruct": [22, 25, 26], "variou": 22, "convers": 22, "comprehens": 22, "overview": 22, "focus": 22, "layer": [22, 23], "involv": [22, 23, 25], "abstract": 22, "power": 22, "aspect": 22, "endeavor": 22, "full": 22, "stack": 22, "edg": 22, "fidel": 22, "proprietari": [22, 25], "applic": [22, 23], "xapp": 22, "rapp": 22, "ric": 22, "digit": 22, "twin": [22, 26], "person": 23, "match": 23, "experiment": 23, "cid": [23, 25], "end_t": [23, 25], "start_t": [23, 25], "dl": [23, 25], "6000": 23, "gma": [23, 25], "cell_id": 23, "5900": 23, "phy": [23, 25], "delay_test_1_viol": 23, "72": 23, "99270072992701": 23, "delay_test_2_viol": 23, "delay_viol": 23, "89": 23, "8989898989899": 23, "max_owd": 23, "499": 23, "538": 23, "239": 23, "195": 23, "6": [23, 25], "7": [23, 25], "8": [23, 25], "max_rat": [23, 25], "35": 23, "22": 23, "9": [23, 25], "78": 23, "65": 23, "measurement_ok": 23, "11": 23, "missed_act": 23, "12": 23, "484": 23, "517": 23, "214": 23, "102": 23, "13": 23, "491": 23, "217": 23, "145": 23, "14": 23, "15": 23, "prioriti": 23, "16": 23, "17": 23, "18": 23, "19": 23, "20": 23, "352": 23, "056": 23, "912": 23, "45": 23, "992": 23, "21": 23, "472": 23, "336": 23, "24": 23, "848": 23, "928": 23, "23": 23, "split_ratio": [23, 25], "32": 23, "29": 23, "25": 23, "traffic_ratio": 23, "55": 23, "90": 23, "34": 23, "26": 23, "66": 23, "27": 23, "tx_rate": 23, "636": 23, "757": 23, "52": 23, "681": 23, "28": 23, "x_loc": 23, "871206061072092": 23, "702857783599929": 23, "198": 23, "y_loc": 23, "964088643728281": 23, "6756194439050196": 23, "0212": 23, "field": 23, "explan": 23, "signifi": 23, "downlink": 23, "ul": 23, "uplink": 23, "converg": 23, "now": 23, "cell": 23, "255": 23, "delay_test_": 23, "_violat": 23, "threshold": 23, "_thresh_m": 23, "reorder": 23, "order": 23, "count": 23, "too": 23, "long": 23, "wait": 23, "therefor": 23, "alwai": 23, "mark": 23, "70": 23, "deliveri": 23, "cover": 23, "sinc": 23, "To": [23, 26], "iterrow": 23, "df_rate": 23, "explod": 23, "structur": 23, "occasion": 23, "absent": 23, "address": 23, "popul": 23, "modifi": [23, 25, 26], "section": [24, 25], "outlin": 24, "showcas": 24, "inclus": 25, "extern": 25, "equip": 25, "ll": 25, "ultim": 25, "merg": 25, "procedur": 25, "setup": 25, "port": 25, "alter": 25, "8087": 25, "session_nam": 25, "session_kei": 25, "network_gym_env": 25, "common_config": 25, "accord": 25, "start_custom_env": 25, "py": 25, "would": 25, "don": 25, "grant": 25, "demo": [25, 26], "Then": 25, "start_client_demo": 25, "print": 25, "custom_act": 25, "custom_tag": 25, "9269856811": 25, "5833047032": 25, "6873341799": 25, "0909367353": 25, "3403381109": 25, "0730143189": 25, "4166952968": 25, "3126658201": 25, "9090632796": 25, "6596618891": 25, "20000": 25, "21000": 25, "sole": 25, "ve": 25, "re": 25, "readi": 25, "mirror": 25, "uml": 25, "sequenc": 25, "diagram": 25, "locat": 25, "experi": 25, "contact": 25, "integr": [25, 26], "fulfil": 26, "simpli": 26, "popular": 26, "ones": 26, "ppo": 26, "proxim": 26, "ddpg": 26, "deep": 26, "determinist": 26, "gradient": 26, "sac": 26, "soft": 26, "actor": 26, "critic": 26, "td3": 26, "a2c": 26, "moreov": 26, "seamlessli": 26}, "objects": {"network_gym_client": [[2, 0, 1, "", "Adapter"], [6, 0, 1, "", "Env"], [7, 0, 1, "", "NorthBoundClient"]], "network_gym_client.Adapter": [[2, 1, 1, "", "df_to_dict"], [2, 1, 1, "", "fill_empty_feature"], [2, 1, 1, "", "get_nested_json_policy"], [2, 1, 1, "", "wandb_log"], [2, 1, 1, "", "wandb_log_buffer_append"]], "network_gym_client.Env": [[6, 2, 1, "", "action_space"], [6, 2, 1, "", "adapter"], [6, 2, 1, "", "northbound_interface_client"], [6, 2, 1, "", "observation_space"], [6, 1, 1, "", "reset"], [6, 1, 1, "", "step"]], "network_gym_client.NorthBoundClient": [[7, 1, 1, "", "connect"], [7, 1, 1, "", "process_measurement"], [7, 1, 1, "", "recv"], [7, 1, 1, "", "send"]], "network_gym_client.envs.network_slicing": [[3, 0, 1, "", "Adapter"]], "network_gym_client.envs.network_slicing.Adapter": [[3, 1, 1, "", "get_action_space"], [3, 1, 1, "", "get_observation"], [3, 1, 1, "", "get_observation_space"], [3, 1, 1, "", "get_policy"], [3, 1, 1, "", "get_rbg_size"], [3, 1, 1, "", "get_reward"]], "network_gym_client.envs.nqos_split": [[4, 0, 1, "", "Adapter"]], "network_gym_client.envs.nqos_split.Adapter": [[4, 1, 1, "", "get_action_space"], [4, 1, 1, "", "get_observation"], [4, 1, 1, "", "get_observation_space"], [4, 1, 1, "", "get_policy"], [4, 1, 1, "", "get_reward"], [4, 1, 1, "", "netowrk_util"]], "network_gym_client.envs.qos_steer": [[5, 0, 1, "", "Adapter"]], "network_gym_client.envs.qos_steer.Adapter": [[5, 1, 1, "", "calculate_wifi_qos_user_num"], [5, 1, 1, "", "get_action_space"], [5, 1, 1, "", "get_observation"], [5, 1, 1, "", "get_observation_space"], [5, 1, 1, "", "get_policy"], [5, 1, 1, "", "get_reward"]], "network_gym_env": [[9, 0, 1, "", "Configure"], [10, 0, 1, "", "DummySim"]], "network_gym_env.Configure": [[9, 1, 1, "", "run"]], "network_gym_env.DummySim": [[10, 1, 1, "", "generate_dummy_measurement"], [10, 1, 1, "", "run_one_interval"], [10, 1, 1, "", "start_simulation"]], "network_gym_env.southbound_interface": [[11, 1, 1, "", "southbound_connect"]]}, "objtypes": {"0": "py:class", "1": "py:function", "2": "py:attribute"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "function", "Python function"], "2": ["py", "attribute", "Python attribute"]}, "titleterms": {"build": 0, "document": 0, "websit": 0, "instal": 0, "depend": 0, "us": 0, "tip": 0, "auto": 0, "gener": 0, "rst": 0, "file": 0, "add": 0, "class": [0, 2], "function": 0, "md": 0, "network_gym_cli": [1, 6, 7], "adapt": [2, 3, 4, 5], "The": 2, "base": 2, "method": [2, 3, 4, 5, 6, 7, 9, 10, 11], "network_sl": 3, "reward": [3, 4, 5, 18, 20, 21, 23], "addit": [3, 4, 5, 7], "nqos_split": 4, "qos_steer": 5, "env": 6, "attribut": 6, "northbound": 7, "network_gym_env": [8, 9, 10, 11], "networkgym": [8, 14, 15, 16, 22], "uml": 8, "sequenc": 8, "diagram": 8, "configur": 9, "dummi": [10, 25], "simul": [10, 16, 25], "dummysim": 10, "southbound": 11, "network_gym_serv": 12, "contact": 13, "motiv": 14, "network": [14, 17, 18, 22], "ai": [14, 22], "model": 14, "algorithm": [14, 26], "develop": 14, "cycl": 14, "challeng": 14, "face": 14, "": 14, "approach": 14, "address": 14, "thi": 14, "overview": 15, "compon": 15, "interfac": 15, "client": [15, 16], "api": [15, 22], "server": 15, "environ": [15, 16, 25], "quickstart": 16, "access": [16, 20, 21], "servic": 16, "via": 16, "vlab": 16, "basic": 16, "usag": 16, "upon": 16, "start": [16, 18, 20, 21], "follow": 16, "seri": 16, "step": 16, "occur": 16, "dure": 16, "process": 16, "repeat": 16, "when": 16, "conclud": 16, "initi": [16, 25], "interact": 16, "explain": 16, "code": [16, 24], "action": [16, 18, 20, 21], "observ": [16, 18, 20, 21, 23], "space": [16, 18, 20, 21], "modifi": 16, "slice": [17, 18], "cellular": 18, "descript": [18, 20, 21], "prerequisit": [18, 20, 21], "argument": [18, 20, 21], "state": [18, 20, 21], "episod": [18, 20, 21], "end": [18, 20, 21], "traffic": [19, 20, 21], "manag": 19, "multi": [20, 21], "qo": 20, "steer": 20, "split": 21, "transit": 21, "dynam": 21, "democrat": 22, "object": 22, "agent": [22, 26], "gymnasium": 22, "scope": 22, "limit": [22, 24], "custom": [23, 25, 26], "work": 23, "measur": 23, "column": 23, "row": 23, "retriev": 23, "fill": 23, "miss": 23, "data": 23, "handl": 24, "time": 24, "truncat": 24, "termin": 24, "sequenti": 24, "train": [24, 26], "exampl": 24, "python": 24, "implement": 25, "your": 25, "connect": 25, "substitut": 25, "releas": 25, "system": 26, "default": 26, "stabl": 26, "baselines3": 26, "cleanrl": 26}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Build Documentation Website": [[0, "build-documentation-website"]], "Install Dependencies": [[0, "install-dependencies"]], "Build Website": [[0, "build-website"]], "Useful Tips": [[0, "useful-tips"]], "Auto Generate rst Files": [[0, "auto-generate-rst-files"]], "Add Classes and Functions to md Files": [[0, "add-classes-and-functions-to-md-files"]], "network_gym_client": [[1, "network-gym-client"]], "Adapter": [[2, "adapter"]], "The Base Class": [[2, "the-base-class"]], "Methods": [[2, "methods"], [3, "methods"], [4, "methods"], [5, "methods"], [6, "methods"], [7, "methods"], [9, "methods"], [10, "methods"], [11, "methods"]], "network_slicing Adapter": [[3, "network-slicing-adapter"]], "": [[3, "id1"], [4, "id1"], [5, "id1"]], "Reward Methods": [[3, "reward-methods"], [5, "reward-methods"]], "Additional Methods": [[3, "additional-methods"], [4, "additional-methods"], [5, "additional-methods"], [7, "additional-methods"]], "nqos_split Adapter": [[4, "nqos-split-adapter"]], "Reward Method": [[4, "reward-method"]], "qos_steer Adapter": [[5, "qos-steer-adapter"]], "Env": [[6, "env"]], "network_gym_client.Env": [[6, "network-gym-client-env"]], "Attributes": [[6, "attributes"]], "NorthBound": [[7, "northbound"]], "network_gym_client.NorthBound": [[7, "network-gym-client-northbound"]], "network_gym_env": [[8, "network-gym-env"]], "NetworkGym UML Sequence Diagram": [[8, "networkgym-uml-sequence-diagram"]], "Configure": [[9, "configure"]], "network_gym_env.Configure": [[9, "network-gym-env-configure"]], "Dummy Simulator": [[10, "dummy-simulator"]], "network_gym_env.DummySim": [[10, "network-gym-env-dummysim"]], "SouthBound": [[11, "southbound"]], "network_gym_env.SouthBound": [[11, "network-gym-env-southbound"]], "network_gym_server": [[12, "network-gym-server"]], "Contact": [[13, "contact"]], "Motivation": [[14, "motivation"]], "Network AI Models/Algorithms Development Cycle": [[14, "network-ai-models-algorithms-development-cycle"]], "Challenges Faced by Network AI Developers": [[14, "challenges-faced-by-network-ai-developers"]], "NetworkGym\u2019s Approach to Addressing this Challenge": [[14, null], [14, null], [14, null]], "Overview": [[15, "overview"]], "NetworkGym Components and Interfaces": [[15, "networkgym-components-and-interfaces"]], "Client API": [[15, "client-api"]], "Server API": [[15, "server-api"]], "Environment API": [[15, "environment-api"]], "Quickstart": [[16, "quickstart"]], "Accessing the NetworkGym Service via vLab": [[16, "accessing-the-networkgym-service-via-vlab"]], "Basic Usage": [[16, "basic-usage"]], "\u25b6\ufe0f Upon starting the Client, the following series of steps occur:": [[16, null]], "\ud83d\udd01 During the simulation, the process repeats as follows:": [[16, null]], "\u23f9\ufe0f When the NetworkGym or the simulation concludes:": [[16, null]], "Initializing Environments": [[16, "initializing-environments"]], "Interacting with the Environment": [[16, "interacting-with-the-environment"]], "Explaining the code": [[16, "explaining-the-code"]], "Action and observation spaces": [[16, "action-and-observation-spaces"]], "Modifying the environment": [[16, "modifying-the-environment"]], "Network Slicing": [[17, "network-slicing"]], "Cellular Network Slicing": [[18, "cellular-network-slicing"]], "Description": [[18, "description"], [20, "description"], [21, "description"]], "Prerequisite": [[18, "prerequisite"], [20, "prerequisite"], [21, "prerequisite"]], "Observation Space": [[18, "observation-space"], [20, "observation-space"], [21, "observation-space"]], "Action Space": [[18, "action-space"], [20, "action-space"], [21, "action-space"]], "Reward": [[18, "reward"], [20, "reward"], [21, "reward"]], "Arguments": [[18, "arguments"], [20, "arguments"], [21, "arguments"]], "Starting State": [[18, "starting-state"], [20, "starting-state"], [21, "starting-state"]], "Episode End": [[18, "episode-end"], [20, "episode-end"], [21, "episode-end"]], "Traffic Management": [[19, "traffic-management"]], "Multi-Access QoS Traffic Steering": [[20, "multi-access-qos-traffic-steering"]], "Multi-Access Traffic Splitting": [[21, "multi-access-traffic-splitting"]], "Transition Dynamics": [[21, "transition-dynamics"]], "NetworkGym: Democratizing Network AI": [[22, "networkgym-democratizing-network-ai"]], "Objectives": [[22, "objectives"]], "Agent": [[22, "agent"]], "Gymnasium API": [[22, "gymnasium-api"]], "NetworkGym API": [[22, "networkgym-api"]], "NetworkGym Scope and Limitations": [[22, "networkgym-scope-and-limitations"]], "Customizing Observation and Reward": [[23, "customizing-observation-and-reward"]], "Working with the Measurement": [[23, "working-with-the-measurement"]], "Measurement Columns": [[23, "measurement-columns"]], "Measurement Rows": [[23, "measurement-rows"]], "Retrieving a Measurement": [[23, "retrieving-a-measurement"]], "Filling the Missing Data": [[23, "filling-the-missing-data"]], "Handling Time Limits": [[24, "handling-time-limits"]], "Truncation": [[24, "truncation"]], "Termination": [[24, "termination"]], "Sequential Training Example": [[24, "sequential-training-example"]], "Python code:": [[24, "python-code"]], "Implementing Custom Environment": [[25, "implementing-custom-environment"]], "Initiating your Custom Environment": [[25, "initiating-your-custom-environment"]], "Connecting to Your Custom Environment": [[25, "connecting-to-your-custom-environment"]], "Substituting the Dummy Simulator": [[25, "substituting-the-dummy-simulator"]], "Releasing Your Custom Environment": [[25, "releasing-your-custom-environment"]], "Training Agents": [[26, "training-agents"]], "System Default Agent": [[26, "system-default-agent"]], "Custom Algorithm Agent": [[26, "custom-algorithm-agent"]], "Stable-Baselines3 Agent": [[26, "stable-baselines3-agent"]], "CleanRL Agent": [[26, "cleanrl-agent"]]}, "indexentries": {"adapter (class in network_gym_client)": [[2, "network_gym_client.Adapter"]], "df_to_dict() (in module network_gym_client.adapter)": [[2, "network_gym_client.Adapter.df_to_dict"]], "fill_empty_feature() (in module network_gym_client.adapter)": [[2, "network_gym_client.Adapter.fill_empty_feature"]], "get_nested_json_policy() (in module network_gym_client.adapter)": [[2, "network_gym_client.Adapter.get_nested_json_policy"]], "wandb_log() (in module network_gym_client.adapter)": [[2, "network_gym_client.Adapter.wandb_log"]], "wandb_log_buffer_append() (in module network_gym_client.adapter)": [[2, "network_gym_client.Adapter.wandb_log_buffer_append"]], "adapter (class in network_gym_client.envs.network_slicing)": [[3, "network_gym_client.envs.network_slicing.Adapter"]], "get_action_space() (in module network_gym_client.envs.network_slicing.adapter)": [[3, "network_gym_client.envs.network_slicing.Adapter.get_action_space"]], "get_observation() (in module network_gym_client.envs.network_slicing.adapter)": [[3, "network_gym_client.envs.network_slicing.Adapter.get_observation"]], "get_observation_space() (in module network_gym_client.envs.network_slicing.adapter)": [[3, "network_gym_client.envs.network_slicing.Adapter.get_observation_space"]], "get_policy() (in module network_gym_client.envs.network_slicing.adapter)": [[3, "network_gym_client.envs.network_slicing.Adapter.get_policy"]], "get_rbg_size() (in module network_gym_client.envs.network_slicing.adapter)": [[3, "network_gym_client.envs.network_slicing.Adapter.get_rbg_size"]], "get_reward() (in module network_gym_client.envs.network_slicing.adapter)": [[3, "network_gym_client.envs.network_slicing.Adapter.get_reward"]], "adapter (class in network_gym_client.envs.nqos_split)": [[4, "network_gym_client.envs.nqos_split.Adapter"]], "get_action_space() (in module network_gym_client.envs.nqos_split.adapter)": [[4, "network_gym_client.envs.nqos_split.Adapter.get_action_space"]], "get_observation() (in module network_gym_client.envs.nqos_split.adapter)": [[4, "network_gym_client.envs.nqos_split.Adapter.get_observation"]], "get_observation_space() (in module network_gym_client.envs.nqos_split.adapter)": [[4, "network_gym_client.envs.nqos_split.Adapter.get_observation_space"]], "get_policy() (in module network_gym_client.envs.nqos_split.adapter)": [[4, "network_gym_client.envs.nqos_split.Adapter.get_policy"]], "get_reward() (in module network_gym_client.envs.nqos_split.adapter)": [[4, "network_gym_client.envs.nqos_split.Adapter.get_reward"]], "netowrk_util() (in module network_gym_client.envs.nqos_split.adapter)": [[4, "network_gym_client.envs.nqos_split.Adapter.netowrk_util"]], "adapter (class in network_gym_client.envs.qos_steer)": [[5, "network_gym_client.envs.qos_steer.Adapter"]], "calculate_wifi_qos_user_num() (in module network_gym_client.envs.qos_steer.adapter)": [[5, "network_gym_client.envs.qos_steer.Adapter.calculate_wifi_qos_user_num"]], "get_action_space() (in module network_gym_client.envs.qos_steer.adapter)": [[5, "network_gym_client.envs.qos_steer.Adapter.get_action_space"]], "get_observation() (in module network_gym_client.envs.qos_steer.adapter)": [[5, "network_gym_client.envs.qos_steer.Adapter.get_observation"]], "get_observation_space() (in module network_gym_client.envs.qos_steer.adapter)": [[5, "network_gym_client.envs.qos_steer.Adapter.get_observation_space"]], "get_policy() (in module network_gym_client.envs.qos_steer.adapter)": [[5, "network_gym_client.envs.qos_steer.Adapter.get_policy"]], "get_reward() (in module network_gym_client.envs.qos_steer.adapter)": [[5, "network_gym_client.envs.qos_steer.Adapter.get_reward"]], "env (class in network_gym_client)": [[6, "network_gym_client.Env"]], "action_space (network_gym_client.env attribute)": [[6, "network_gym_client.Env.action_space"]], "adapter (network_gym_client.env attribute)": [[6, "network_gym_client.Env.adapter"]], "northbound_interface_client (network_gym_client.env attribute)": [[6, "network_gym_client.Env.northbound_interface_client"]], "observation_space (network_gym_client.env attribute)": [[6, "network_gym_client.Env.observation_space"]], "reset() (in module network_gym_client.env)": [[6, "network_gym_client.Env.reset"]], "step() (in module network_gym_client.env)": [[6, "network_gym_client.Env.step"]], "northboundclient (class in network_gym_client)": [[7, "network_gym_client.NorthBoundClient"]], "connect() (in module network_gym_client.northboundclient)": [[7, "network_gym_client.NorthBoundClient.connect"]], "process_measurement() (in module network_gym_client.northboundclient)": [[7, "network_gym_client.NorthBoundClient.process_measurement"]], "recv() (in module network_gym_client.northboundclient)": [[7, "network_gym_client.NorthBoundClient.recv"]], "send() (in module network_gym_client.northboundclient)": [[7, "network_gym_client.NorthBoundClient.send"]], "configure (class in network_gym_env)": [[9, "network_gym_env.Configure"]], "run() (in module network_gym_env.configure)": [[9, "network_gym_env.Configure.run"]], "dummysim (class in network_gym_env)": [[10, "network_gym_env.DummySim"]], "generate_dummy_measurement() (in module network_gym_env.dummysim)": [[10, "network_gym_env.DummySim.generate_dummy_measurement"]], "run_one_interval() (in module network_gym_env.dummysim)": [[10, "network_gym_env.DummySim.run_one_interval"]], "start_simulation() (in module network_gym_env.dummysim)": [[10, "network_gym_env.DummySim.start_simulation"]], "southbound_connect() (in module network_gym_env.southbound_interface)": [[11, "network_gym_env.southbound_interface.southbound_connect"]]}}) \ No newline at end of file diff --git a/tutorials/customizing_observation_and_reward.html b/tutorials/customizing_observation_and_reward.html index 7ed9965..5e02ec7 100644 --- a/tutorials/customizing_observation_and_reward.html +++ b/tutorials/customizing_observation_and_reward.html @@ -197,6 +197,10 @@
+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials

+

Third-Party Agents

+

Tutorials