{"id":22220886,"url":"https://github.com/nokia/wireless-suite","last_synced_at":"2025-08-01T21:07:11.526Z","repository":{"id":152002357,"uuid":"249912614","full_name":"nokia/wireless-suite","owner":"nokia","description":null,"archived":false,"fork":false,"pushed_at":"2020-11-12T12:25:18.000Z","size":275,"stargazers_count":47,"open_issues_count":1,"forks_count":31,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-07-27T16:50:48.198Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nokia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-03-25T07:21:54.000Z","updated_at":"2025-04-10T13:42:07.000Z","dependencies_parsed_at":"2023-09-12T10:16:45.881Z","dependency_job_id":null,"html_url":"https://github.com/nokia/wireless-suite","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nokia/wireless-suite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokia%2Fwireless-suite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokia%2Fwireless-suite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokia%2Fwireless-suite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokia%2Fwireless-suite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nokia","download_url":"https://codeload.github.com/nokia/wireless-suite/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nokia%2Fwireless-suite/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268297261,"owners_count":24228122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-02T23:10:49.521Z","updated_at":"2025-08-01T21:07:11.517Z","avatar_url":"https://github.com/nokia.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wireless Suite\n\n## Overview\nWireless Suite is a collection of problems in wireless telecommunications.\n\nComparing research results in telecoms remains a challenge due to the lack of standard problem implementations against\nwhich to benchmark.\nTo solve this, Wireless Suite implements some well-known problems, built as Open-AI Gym compatible classes.\nThese are intended to establish performance benchmarks, stimulate reproducible research and foster quantitative\ncomparison of algorithms for telecommunication problems.\n\n## Getting started\nThe code has been tested to work on Python 3.7 under Windows 10.\n\n1. Get the code:\n    ```\n    git clone https://github.com/nokia/wireless-suite.git\n    ```\n\n2. Use `pip3` to install the package:\n   ```\n   cd wireless-suite\n   pip3 install .\n   ```\n\n3. **OPTIONAL**: Modify the script *scripts/launch_agent.py* to execute a problem of your choosing.\n\n4. **OPTIONAL**: Modify the configuration of your problem at *config/config_environment.json*.\n\n5. Simulate an agent-environment interaction:\n    ```\n   cd wireless/scripts\n   python launch_agent.py\n   ```\n\n## Provided problems \n\n### TimeFreqResourceAllocation-v0\nThis environment simulates a OFDM resource allocation task, where a limited number of frequency resources are to be\nallocated to a large number of User Equipments (UEs) over time.\nAn agent interacting with this environment plays the role of the MAC scheduler. On each time step, the agent must\nallocate one frequency resource to one of a large number of UEs. The agent gets rewarded for these resource allocation\ndecisions. The reward increases with the number of UEs, whose traffic requirements are satisfied.\nThe traffic requirements for each UE are expressed in terms of their Guaranteed Bit Rate (if any) and their Packet\nDelay Budget (PDP).\n\nYou are invited to develop a new agent that interacts with this environment and takes effective resource allocation\ndecisions.\nFive sample agents are provided for reference in the *wireless/agents* folder.\nThe performance obtained by the default agents on the default environment configuration is:\n* Random                          -69590\n* Round Robin                     -69638\n* Round Robin IfTraffic           -3284\n* Proportional Fair               -9595\n* Proportional Fair Channel Aware -1729\n\nNote that the above average rewards are negative values. The best performing agent is thus the Proportional Fair Channel Aware.\n\nAdditional details about this problem are provided in document *wireless/doc/TimeFreqResourceAllocation-v0.pdf*\n\n### NomaULTimeFreqResourceAllocation-v0\nThis environment is an extension of the above TimeFreqResourceAllocation-v0 environment, with the difference that it\nallows multiple UEs to be allocated on a time-frequency resource. It consists on an uplink power-domain NOMA system,\nwherein the base station receives superimposed signals from the multiplexed UEs and performs successive interference\ncancellation (SIC) to decode them. \n\nThe default environment can be obtained by setting `\"env\": \"NomaULTimeFreqResourceAllocation-v0\"` and\n`\"n_ues_per_prb\": 2` in *config/config_environment.json*. \nTwo sample agents are provided for reference in the *wireless/agents* folder. \nThe performance obtained on the default environment configuration is:\n* Random                          -33499\n* NOMA UL Proportional Fair Channel Aware -1431\n\n### UlOpenLoopPowerControl-v0\nThis environment simulates a free-space scenario with a Base Station located at coordinates [0, 0] and one UE at a\nrandom location. On each time step, the UE moves linearly in a random direction with constant speed 2 m/s . The agent\ninteracting with the environment plays the role of the the Base Station. On each time step the agent must select one of\nfour possible Power Control (PC) commands to increase/decrease the uplink transmit power. The objective is to measure an\nuplink SNR as close as possible to the SNR target (4 dB by default).\n\nSee the file `envs/umts_olpc.py` for more details.\n\n### Evaluation\nThe simulated environment can be chosen by setting `\"env\": \"TimeFreqResourceAllocation-v0\"` or `\"env\": \"NomaULTimeFreqResourceAllocation-v0\"` in *config/config_environment.json*. The script *wireless/scripts/launch_agent.py* runs 16 episodes with a maximum of 65536 time steps each, and collects the reward\nobtained by the agent on each time step. The result is calculated as the average reward obtained in all time steps on all episodes.\n\n## How to contribute\nThere are two main ways of contributing to Wireless Suite:\n\n1. **Implementing new problems**: This version of Wireless Suite contains two problems implementation. New\nproblems can be easily added as simple variations of the existing ones (e.g. by changing their parameters), or by introducing\nfully new problem implementations (e.g. Adaptive Modulation and Coding, Open Loop Power Control, Handover optimization,\netc).\n\n2. **Implementing new agents**: Ideally, new agent contributions shall perform better than the default ones.\n\n## References\n1. [Open AI Gym Documentation](http://gym.openai.com/docs/)\n2. [How to create new environments for Gym](https://github.com/openai/gym/blob/master/docs/creating-environments.md)\n3. [Sacred Documentation](https://sacred.readthedocs.io/en/stable/index.html)\n\n\n## License\n\nThis project is licensed under the BSD-3-Clause license - see the [LICENSE](https://github.com/nokia/wireless-suite/blob/master/LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnokia%2Fwireless-suite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnokia%2Fwireless-suite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnokia%2Fwireless-suite/lists"}