{"id":26235,"name":"enero","description":"Code used in the paper \"ENERO: Efficient real-time WAN routing optimization with Deep Reinforcement Learning\". In this paper, the DRL agent is implemented with the PPO algorithm","url":"https://github.com/bnn-upc/enero","last_synced_at":"2025-09-05T03:06:17.079Z","repository":{"id":51541975,"uuid":"515042727","full_name":"BNN-UPC/ENERO","owner":"BNN-UPC","description":"Code used in the paper \"ENERO: Efficient real-time WAN routing optimization with Deep Reinforcement Learning\". In this paper, the DRL agent is implemented with the PPO algorithm","archived":false,"fork":false,"pushed_at":"2023-02-06T09:08:40.000Z","size":344,"stargazers_count":28,"open_issues_count":1,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-13T12:47:58.511Z","etag":null,"topics":["deep-learning","graph-neural-networks","machine-learning","network-embedding","reinforcement-learning"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BNN-UPC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-07-18T05:10:53.000Z","updated_at":"2025-04-09T03:41:06.000Z","dependencies_parsed_at":"2023-02-19T06:01:14.789Z","dependency_job_id":null,"html_url":"https://github.com/BNN-UPC/ENERO","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BNN-UPC/ENERO","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BNN-UPC%2FENERO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BNN-UPC%2FENERO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BNN-UPC%2FENERO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BNN-UPC%2FENERO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BNN-UPC","download_url":"https://codeload.github.com/BNN-UPC/ENERO/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BNN-UPC%2FENERO/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273703720,"owners_count":25153011,"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-09-05T02:00:09.113Z","response_time":402,"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"}},"owner":{"login":"BNN-UPC","name":"Barcelona Neural Networking Center","uuid":"83408876","kind":"organization","description":"BNN has been created  with the main goals of carrying fundamental research in the field of Graph Neural Network applied to Computer Networks","email":null,"website":"https://bnn.upc.edu/","location":"Barcelona","twitter":"bnn_upc","company":null,"icon_url":"https://avatars.githubusercontent.com/u/83408876?v=4","repositories_count":13,"last_synced_at":"2023-03-07T15:07:25.441Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/BNN-UPC","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-17T12:45:49.246Z","updated_at":"2023-03-07T15:07:25.448Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BNN-UPC","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BNN-UPC/repositories"},"packages":null,"commits":{"message":"Repository syncing started."},"issues_stats":{"full_name":"bnn-upc/enero","html_url":"https://github.com/bnn-upc/enero","last_synced_at":null,"status":null,"issues_count":null,"pull_requests_count":null,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":null,"pull_requests_closed_count":null,"pull_request_authors_count":null,"issue_authors_count":null,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":null,"bot_issues_count":null,"bot_pull_requests_count":null,"past_year_issues_count":null,"past_year_pull_requests_count":null,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":null,"past_year_pull_requests_closed_count":null,"past_year_pull_request_authors_count":null,"past_year_issue_authors_count":null,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":null,"past_year_bot_pull_requests_count":null,"past_year_merged_pull_requests_count":null,"created_at":"2025-09-05T03:05:32.595Z","updated_at":"2025-09-05T03:05:32.595Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/bnn-upc%2Fenero","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/bnn-upc%2Fenero/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{},"pull_request_author_associations_count":{},"issue_authors":{},"pull_request_authors":{},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-05T00:00:10.444Z","repositories_count":10083752,"issues_count":31254324,"pull_requests_count":96222393,"authors_count":10694625,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":{"total":{"WatchEvent":7},"last_year":{"WatchEvent":7}},"keywords":["deep-learning","graph-neural-networks","machine-learning","network-embedding","reinforcement-learning"],"dependencies":[{"ecosystem":"pypi","filepath":"gym-graph/gym_graph.egg-info/requires.txt","sha":null,"kind":"manifest","created_at":"2022-08-22T05:01:20.808Z","updated_at":"2022-08-22T05:01:20.808Z","repository_link":"https://github.com/BNN-UPC/ENERO/blob/master/gym-graph/gym_graph.egg-info/requires.txt","dependencies":[{"id":2244774350,"package_name":"gym","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"gym-graph/setup.py","sha":null,"kind":"manifest","created_at":"2022-08-22T05:01:20.974Z","updated_at":"2022-08-22T05:01:20.974Z","repository_link":"https://github.com/BNN-UPC/ENERO/blob/master/gym-graph/setup.py","dependencies":[{"id":2244777704,"package_name":"gym","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2022-08-22T05:01:21.180Z","updated_at":"2022-08-22T05:01:21.180Z","repository_link":"https://github.com/BNN-UPC/ENERO/blob/master/requirements.txt","dependencies":[{"id":2244780909,"package_name":"absl-py","ecosystem":"pypi","requirements":"==0.10.0","direct":true,"kind":"runtime","optional":false},{"id":2244780912,"package_name":"appdirs","ecosystem":"pypi","requirements":"==1.4.3","direct":true,"kind":"runtime","optional":false},{"id":2244780913,"package_name":"astunparse","ecosystem":"pypi","requirements":"==1.6.3","direct":true,"kind":"runtime","optional":false},{"id":2244780914,"package_name":"attrs","ecosystem":"pypi","requirements":"==20.2.0","direct":true,"kind":"runtime","optional":false},{"id":2244780916,"package_name":"CacheControl","ecosystem":"pypi","requirements":"==0.12.6","direct":true,"kind":"runtime","optional":false},{"id":2244780917,"package_name":"cachetools","ecosystem":"pypi","requirements":"==4.1.1","direct":true,"kind":"runtime","optional":false},{"id":2244780919,"package_name":"certifi","ecosystem":"pypi","requirements":"==2020.6.20","direct":true,"kind":"runtime","optional":false},{"id":2244780920,"package_name":"chardet","ecosystem":"pypi","requirements":"==3.0.4","direct":true,"kind":"runtime","optional":false},{"id":2244780922,"package_name":"cloudpickle","ecosystem":"pypi","requirements":"==1.6.0","direct":true,"kind":"runtime","optional":false},{"id":2244780923,"package_name":"colorama","ecosystem":"pypi","requirements":"==0.4.3","direct":true,"kind":"runtime","optional":false},{"id":2244780925,"package_name":"contextlib2","ecosystem":"pypi","requirements":"==0.6.0","direct":true,"kind":"runtime","optional":false},{"id":2244780927,"package_name":"cycler","ecosystem":"pypi","requirements":"==0.10.0","direct":true,"kind":"runtime","optional":false},{"id":2244780928,"package_name":"decorator","ecosystem":"pypi","requirements":"==4.4.2","direct":true,"kind":"runtime","optional":false},{"id":2244780930,"package_name":"distlib","ecosystem":"pypi","requirements":"==0.3.0","direct":true,"kind":"runtime","optional":false},{"id":2244780931,"package_name":"distro","ecosystem":"pypi","requirements":"==1.4.0","direct":true,"kind":"runtime","optional":false},{"id":2244780933,"package_name":"dm-tree","ecosystem":"pypi","requirements":"==0.1.5","direct":true,"kind":"runtime","optional":false},{"id":2244780935,"package_name":"flatbuffers","ecosystem":"pypi","requirements":"==1.12","direct":true,"kind":"runtime","optional":false},{"id":2244780938,"package_name":"future","ecosystem":"pypi","requirements":"==0.18.2","direct":true,"kind":"runtime","optional":false},{"id":2244780940,"package_name":"gast","ecosystem":"pypi","requirements":"==0.3.3","direct":true,"kind":"runtime","optional":false},{"id":2244780942,"package_name":"google-auth","ecosystem":"pypi","requirements":"==1.22.1","direct":true,"kind":"runtime","optional":false},{"id":2244780944,"package_name":"google-auth-oauthlib","ecosystem":"pypi","requirements":"==0.4.1","direct":true,"kind":"runtime","optional":false},{"id":2244780946,"package_name":"google-pasta","ecosystem":"pypi","requirements":"==0.2.0","direct":true,"kind":"runtime","optional":false},{"id":2244780948,"package_name":"grpcio","ecosystem":"pypi","requirements":"==1.32.0","direct":true,"kind":"runtime","optional":false},{"id":2244780950,"package_name":"gym","ecosystem":"pypi","requirements":"==0.17.3","direct":true,"kind":"runtime","optional":false},{"id":2244780952,"package_name":"gym-notices","ecosystem":"pypi","requirements":"==0.0.7","direct":true,"kind":"runtime","optional":false},{"id":2244780955,"package_name":"h5py","ecosystem":"pypi","requirements":"==2.10.0","direct":true,"kind":"runtime","optional":false},{"id":2244780957,"package_name":"html5lib","ecosystem":"pypi","requirements":"==1.0.1","direct":true,"kind":"runtime","optional":false},{"id":2244780960,"package_name":"idna","ecosystem":"pypi","requirements":"==2.8","direct":true,"kind":"runtime","optional":false},{"id":2244780962,"package_name":"importlib-metadata","ecosystem":"pypi","requirements":"==4.12.0","direct":true,"kind":"runtime","optional":false},{"id":2244780970,"package_name":"ipaddr","ecosystem":"pypi","requirements":"==2.2.0","direct":true,"kind":"runtime","optional":false},{"id":2244780972,"package_name":"jsonschema","ecosystem":"pypi","requirements":"==3.2.0","direct":true,"kind":"runtime","optional":false},{"id":2244780974,"package_name":"Keras","ecosystem":"pypi","requirements":"==2.4.3","direct":true,"kind":"runtime","optional":false},{"id":2244780978,"package_name":"Keras-Preprocessing","ecosystem":"pypi","requirements":"==1.1.2","direct":true,"kind":"runtime","optional":false},{"id":2244780981,"package_name":"kiwisolver","ecosystem":"pypi","requirements":"==1.2.0","direct":true,"kind":"runtime","optional":false},{"id":2244780984,"package_name":"lockfile","ecosystem":"pypi","requirements":"==0.12.2","direct":true,"kind":"runtime","optional":false},{"id":2244780987,"package_name":"Markdown","ecosystem":"pypi","requirements":"==3.3.1","direct":true,"kind":"runtime","optional":false},{"id":2244780990,"package_name":"matplotlib","ecosystem":"pypi","requirements":"==3.3.2","direct":true,"kind":"runtime","optional":false},{"id":2244780992,"package_name":"msgpack","ecosystem":"pypi","requirements":"==0.6.2","direct":true,"kind":"runtime","optional":false},{"id":2244780994,"package_name":"networkx","ecosystem":"pypi","requirements":"==2.5","direct":true,"kind":"runtime","optional":false},{"id":2244780996,"package_name":"numpy","ecosystem":"pypi","requirements":"==1.19.5","direct":true,"kind":"runtime","optional":false},{"id":2244780999,"package_name":"oauthlib","ecosystem":"pypi","requirements":"==3.1.0","direct":true,"kind":"runtime","optional":false},{"id":2244781001,"package_name":"opt-einsum","ecosystem":"pypi","requirements":"==3.3.0","direct":true,"kind":"runtime","optional":false},{"id":2244781004,"package_name":"packaging","ecosystem":"pypi","requirements":"==20.3","direct":true,"kind":"runtime","optional":false},{"id":2244781006,"package_name":"pandas","ecosystem":"pypi","requirements":"==1.1.3","direct":true,"kind":"runtime","optional":false},{"id":2244781009,"package_name":"pep517","ecosystem":"pypi","requirements":"==0.8.2","direct":true,"kind":"runtime","optional":false},{"id":2244781012,"package_name":"Pillow","ecosystem":"pypi","requirements":"==7.2.0","direct":true,"kind":"runtime","optional":false},{"id":2244781014,"package_name":"progress","ecosystem":"pypi","requirements":"==1.5","direct":true,"kind":"runtime","optional":false},{"id":2244781017,"package_name":"protobuf","ecosystem":"pypi","requirements":"==3.13.0","direct":true,"kind":"runtime","optional":false},{"id":2244781020,"package_name":"pyasn1","ecosystem":"pypi","requirements":"==0.4.8","direct":true,"kind":"runtime","optional":false},{"id":2244781023,"package_name":"pyasn1-modules","ecosystem":"pypi","requirements":"==0.2.8","direct":true,"kind":"runtime","optional":false},{"id":2244781025,"package_name":"pyglet","ecosystem":"pypi","requirements":"==1.5.0","direct":true,"kind":"runtime","optional":false},{"id":2244781028,"package_name":"pyparsing","ecosystem":"pypi","requirements":"==2.4.6","direct":true,"kind":"runtime","optional":false},{"id":2244781030,"package_name":"pyrsistent","ecosystem":"pypi","requirements":"==0.17.3","direct":true,"kind":"runtime","optional":false},{"id":2244781033,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"==2.8.1","direct":true,"kind":"runtime","optional":false},{"id":2244781035,"package_name":"pytoml","ecosystem":"pypi","requirements":"==0.1.21","direct":true,"kind":"runtime","optional":false},{"id":2244781037,"package_name":"pytz","ecosystem":"pypi","requirements":"==2020.1","direct":true,"kind":"runtime","optional":false},{"id":2244781038,"package_name":"PyYAML","ecosystem":"pypi","requirements":"==5.3.1","direct":true,"kind":"runtime","optional":false},{"id":2244781040,"package_name":"requests","ecosystem":"pypi","requirements":"==2.22.0","direct":true,"kind":"runtime","optional":false},{"id":2244781042,"package_name":"requests-oauthlib","ecosystem":"pypi","requirements":"==1.3.0","direct":true,"kind":"runtime","optional":false},{"id":2244781044,"package_name":"retrying","ecosystem":"pypi","requirements":"==1.3.3","direct":true,"kind":"runtime","optional":false},{"id":2244781046,"package_name":"rsa","ecosystem":"pypi","requirements":"==4.6","direct":true,"kind":"runtime","optional":false},{"id":2244781048,"package_name":"scipy","ecosystem":"pypi","requirements":"==1.5.2","direct":true,"kind":"runtime","optional":false},{"id":2244781049,"package_name":"seaborn","ecosystem":"pypi","requirements":"==0.11.2","direct":true,"kind":"runtime","optional":false},{"id":2244781051,"package_name":"six","ecosystem":"pypi","requirements":"==1.15.0","direct":true,"kind":"runtime","optional":false},{"id":2244781054,"package_name":"tensorboard","ecosystem":"pypi","requirements":"==2.4.1","direct":true,"kind":"runtime","optional":false},{"id":2244781056,"package_name":"tensorboard-plugin-wit","ecosystem":"pypi","requirements":"==1.7.0","direct":true,"kind":"runtime","optional":false},{"id":2244781058,"package_name":"tensorflow","ecosystem":"pypi","requirements":"==2.4.1","direct":true,"kind":"runtime","optional":false},{"id":2244781059,"package_name":"tensorflow-estimator","ecosystem":"pypi","requirements":"==2.4.0","direct":true,"kind":"runtime","optional":false},{"id":2244781060,"package_name":"tensorflow-probability","ecosystem":"pypi","requirements":"==0.12.1","direct":true,"kind":"runtime","optional":false},{"id":2244781061,"package_name":"termcolor","ecosystem":"pypi","requirements":"==1.1.0","direct":true,"kind":"runtime","optional":false},{"id":2244781063,"package_name":"toml","ecosystem":"pypi","requirements":"==0.10.1","direct":true,"kind":"runtime","optional":false},{"id":2244781065,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"==3.7.4.3","direct":true,"kind":"runtime","optional":false},{"id":2244781067,"package_name":"urllib3","ecosystem":"pypi","requirements":"==1.25.8","direct":true,"kind":"runtime","optional":false},{"id":2244781069,"package_name":"webencodings","ecosystem":"pypi","requirements":"==0.5.1","direct":true,"kind":"runtime","optional":false},{"id":2244781071,"package_name":"Werkzeug","ecosystem":"pypi","requirements":"==1.0.1","direct":true,"kind":"runtime","optional":false},{"id":2244781073,"package_name":"wrapt","ecosystem":"pypi","requirements":"==1.12.1","direct":true,"kind":"runtime","optional":false},{"id":2244781076,"package_name":"zipp","ecosystem":"pypi","requirements":"==3.8.1","direct":true,"kind":"runtime","optional":false}]}],"score":null,"created_at":"2025-09-04T15:50:58.302Z","updated_at":"2025-10-07T08:11:49.659Z","avatar_url":"https://github.com/BNN-UPC.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":[],"readme_doi_urls":["https://doi.org/10.1016/j.comnet.2022.109166"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/26235","html_url":"https://science.ecosyste.ms/projects/26235","bibtex_url":"https://science.ecosyste.ms/projects/26235/export.bibtex","apalike_url":"https://science.ecosyste.ms/projects/26235/export.apalike"}