ns3gym与ns3ai的安装方法

编译运行的常用命令

1,针对ns3主项目的编译命令

分两步:第一,./waf configure;第二,./waf(或者./waf build)

详见《开源网络模拟器ns3》P13

2,针对多脚本同时运行的编译命令

ns3-ai的相关笔记

安装方法

基本要求:一定要检查系统的python版本是否是python3或以上,否则无法安装ns3-ai的Python-Interface。ns3-ai适配的ns3版本为ns-3.30(务必使用ns-3.30),应先在Ubuntu系统下(以Ubuntu 16.04为例)成功安装并编译好ns-3.30后再进行下列操作步骤。

参考资料:

1,ns3-ai文献:Yin H, Liu P, Liu K, et al. ns3-ai: Fostering Artificial Intelligence Algorithms for Networking Research[C]//Proceedings of the 2020 Workshop on ns-3. 2020: 57-64.

2,ns3-ai在NS3 App Store上的网页介绍(推荐使用,结合下面的详细安装步骤即可)

ns-3 App Store - ns3-ai

3,ns3-ai在GitHub上的开源代码网页(也可成功安装)

GitHub - hust-diangroup/ns3-ai: Enable the interaction between ns-3 and popular frameworks using Python, which mean you can train and test your AI algorithms in ns-3 without changing any frameworks you are using now!

详细安装步骤:

1,将网上下载的源码(推荐使用“参考资料2”中的源码)解压后再添加到ns-3.30中的contrib目录下,并重新命名为ns3-ai

2,重新编译ns-3.30

./waf configure

./waf

3,Add Python interface

3.1,Install(Python3 is used and tested)

cd $YOUR_NS3_CODE/contrib/ns3-ai/py_interface

python setup.py install --user

步骤3.1完成后,则安装完毕

3.2,Baisc usage(此处应该是介绍Python Interface的用途,以下代码在安装步骤中不需要执行)

import py_interface

py_interface.Init(1234, 4096) # key poolSize

v = NS3BigVar(233, c_int*10)

with v as o:

for i in range(10):

o[i] = c_int(i)

print(*o)

py_interface.FreeMemory()

4,测试是否成功安装

RL-TCP Examples(ns3和ai是在两个终端窗口上运行的)

4.1,Run ns-3 example(终端窗口1):

cp -r contrib/ns3-ai/example/rl-tcp scratch/
./waf --run "rl-tcp"

4.2,Run Python code(终端窗口2):

cd contrib/ns3-ai/example/rl-tcp/
python testtcp.py

NOTE: Currently the RL test in python script is not fully enabled, coming soon.

问题:目前在4.2步骤中运行命令后无反应,问题待解决(可查阅GitHub相关issue中的问答记录)

ns3-gym的相关笔记

安装方法

基本要求:ns3-gym适配的ns3版本为ns-3.29(务必使用ns-3.29),ns3-gym官网上示意Ubuntu16.04为例进行介绍安装步骤的(不排除可兼容更高版本的Ubuntu系统)。应先在Ubuntu系统下成功安装并编译好ns-3.29后再进行下列操作步骤。

参考资料:

1,ns3-gym文献:Gawłowicz P, Zubow A. Ns-3 meets openai gym: The playground for machine learning in networking research[C]//Proceedings of the 22nd International ACM Conference on Modeling, Analysis and Simulation of Wireless and Mobile Systems. 2019: 113-120.

2,ns3-gym在NS3 App Store上的网页介绍(推荐使用,结合下面的详细安装步骤即可)

ns-3 App Store - ns3-gym: OpenAI Gym integration

3,ns3-gym在GitHub上的开源代码网页(编译时会出现ZMQ报错,可查阅GitHub上的closed issues寻找解决方法)

GitHub - tkn-tub/ns3-gym: ns3-gym - The Playground for Reinforcement Learning in Networking Research

详细安装步骤:

1,Installation from the download button

Download the source archive(推荐使用“参考资料2”中的源码) and unpack it:

tar -xzf ns3-gym-1.0.0.tar.gz

Move (and rename) the ns3-gym-1.0.0 directory to(将解压后的文件重命名为opengym,并放置到contrib目录内):

ns-3.29/contrib/opengym

注:放置到src目录内也可以安装成功

2,Install ZMQ and Protocol Buffers libs:

Note: to install protobuf-3.6 on ubuntu 16.04, run:

sudo add-apt-repository ppa:maarten-fonville/protobuf

sudo apt-get update

Then:

sudo apt-get install libzmq5 libzmq5-dev -y

sudo apt-get install libprotobuf-dev -y

sudo apt-get install protobuf-compiler -y

3,Configure and build ns-3 project:

Note: if you use Python virtual environment, please execute these commands inside it.

Note: Opengym Protocol Buffer messages (C++ and Python) are build during configure.

./waf configure --enable-examples

./waf build

(成功运行上述命令后,可以看到控制台输出的Models built列表中包含了opengym)

4,Install ns3gym Python module.

Note: Python3 is recommended.

4.1,Compile Protobuf messages manually (not required if ./waf configure was executed):

(如果第3步中使用./waf configure命令编译,未加上--enable-examples,则无需进行4.1步骤)

cd ./ns-3.29/contrib/opengym/

protoc -I=./model/ --python_out=./model/ns3gym/ns3gym ./model/messages.proto

4.2,Install ns3gym Python module:

pip3 install ./ns-3.29/contrib/opengym/model/ns3gym

(官网上使用了pip,可在不同机器上尝试pip或pip3)

5,测试是否成功安装

5.1,测试用例1

cp -r ./contrib/opengym/examples/opengym scratch/

cd ./scratch/opengym

./simple_test.py

5.2,测试用例2

# Terminal 1

cp -r contrib/ns3-gym/example/opengym scratch/

./waf --run "opengym"

# Terminal 2

cd ./scratch/opengym

./test.py --start=0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu16.04安装WPS

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循<a href"http://creativecommons.org/licenses/by-sa/4.0/" target"_blank" rel"noopener"> CC 4.0 BY-SA </a>版权协议&#xff0c;转载请附上原文出处链接和本声明。 原文…

网络仿真中数据生成相关

1 流量激励生成 十分钟泊松分布 了解泊松分布与指数分布的关系

apache hadoop_通过Apache Hadoop大规模扩展Apache Solr实时实时索引

apache hadoop播客的第22集是与Patrick Hunt的谈话 我们讨论了Apache Solr&#xff08;上游&#xff09;中的新工作&#xff0c;使它可以在Apache Hadoop上工作。 Solr支持将其索引和事务日志文件写入和读取到HDFS分布式文件系统。 这不使用Hadoop Map-Reduce处理Solr数据&…

显示/隐藏我的电脑与回收站

Windows徽标键i”——打开——“Windows设置”——点击——“个性化”——进入——“主题”——下滑——“相关设置”——中的——“桌面图标设置”。把勾勾全去掉即可。

没有Javax的Jakarta EE:这次世界也不会结束

如果您错过了新闻&#xff0c; Oracle将向Eclipse基金会捐赠Java EE规范 。 这项决策在规范过程中经历了相当长时间的休眠&#xff0c;在此过程中&#xff0c;人们理所当然地怀疑Oracle对Java EE失去了战略兴趣。 起初&#xff0c;Java EE和更广泛的Java社区很好地满足了捐赠规…

NS3Gym python侧代码分析

argparse库参考链接: https://docs.python.org/zh-cn/3/howto/argparse.html

火狐浏览器常用操作

1 建立书签文件夹并在标签栏显示 https://zhidao.baidu.com/question/1510197150305270220.html

pat乙级 1007 素数对猜想(C++)

题目 让我们定义dn为&#xff1a;dn pn1 −pn &#xff0c;其中p​i​​ 是第i个素数。显然有d​1​​ 1&#xff0c;且对于n>1有d​n​​ 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105 )&#xff0c;请计算不超过N的满足猜想…

如何在不增加人员的情况下自动化API安全程序

在这篇文章中&#xff0c;我们将撰写一篇综合文章&#xff0c;内容涉及如何在不增加人员的情况下自动执行API安全程序。 在现代世界中&#xff0c;数据对于提供者和消费者都至关重要。 数据科学的出现证明了这一事实。 对于某些组织&#xff0c;整个业务模型是建立在信息交换之…

python错误bug调试问题汇总

1 Python-出现“Non-ASCII character ‘\xe6‘ in file“错误解决方法 2 python中for循环语句使用 3 Python解决两个整数相除只得到整数部分问题 4 python2的print和python3的print()

pat 乙级 1001 害死人不偿命的(3n+1)猜想(C++)

题目 卡拉兹(Callatz)猜想&#xff1a; 对任何一个正整数 n&#xff0c;如果它是偶数&#xff0c;那么把它砍掉一半&#xff1b;如果它是奇数&#xff0c;那么把 (3n1) 砍掉一半。这样一直反复砍下去&#xff0c;最后一定在某一步得到 n1。卡拉兹在 1950 年的世界数学家大会上公…

C++编译的bug解决方法

1 编译错误 jump to case label [-fpermissive]

jpa 测试_使用外星人进行测试:如何使用Arquillian测试JPA类型转换器

jpa 测试该帖子与 Aslak Knutsen &#xff08; aslakknutsen &#xff09;一起撰写。 JPA类型转换器为定义实体属性如何持久存储到数据库提供了一种简便的方法。 您可以使用它们来实现许多不同的功能&#xff0c;例如&#xff0c;如上一篇文章中所示&#xff1a;加密数据&…

pat 乙级 1002 写出这个数(C++)

题目 读入一个正整数 n&#xff0c;计算其各位数字之和&#xff0c;用汉语拼音写出和的每一位数字。 输入与输出 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;即给出自然数 n 的值。这里保证 n 小于 10^​100​​ 。 输出格式&#xff1a; 在一行内输出…

详细介绍 安装ns3步骤

安装ns3步骤&#xff1a; 准备工作—— 1.[Linux] ubuntu系统安装完成 2.熟悉Linux常用命令 开始安装—— 确保ubuntu已经完成换源---阿里云或清华,个人推荐阿里云 3.安装组件和依赖库 1.快捷键CtrlAltT 打开终端&#xff0c;输入以下命令&#xff1a; sudo apt-get update …

在硒中查找具有链接文本和部分链接文本的元素

Selenium中CSS定位器是一个基本概念&#xff0c;每个旨在使用Selenium执行自动化测试的测试人员都应该意识到这一点。 在Selenium中充分使用CSS定位器可以帮助您以更高效&#xff0c;更彻底的方式执行测试。 我从7年以来一直从事自动化测试行业&#xff0c;并且我经常观察到测试…

浅析C++的三大循环-以100以内的质数求解为例

简介 C三大循环分别是while、do while循环和for循环&#xff0c;其中for循环最为灵活&#xff0c;do while循环和while循环基本一致。 语法格式 //while语法 while(循环控制条件) { 语句 } //do while语法 do { } while(循环控制条件); //for循环 for(变量初始化;循环控制条…

如何找到CSDN的草稿

如何找到CSDN的草稿 Ps&#xff1a;CSDN的草稿箱有点难找

W10关闭不必要的服务

1 win10关不必要的服务 简单粗暴且有效 2 win10电脑如何关闭不必要的启动项 关闭不必要的启动项 3 有关服务方面 没有试验过&#xff0c;以后有空试验一下

pat 乙级 1004 成绩排名(C++)

题目 读入 n&#xff08;>0&#xff09;名学生的姓名、学号、成绩&#xff0c;分别输出成绩最高和成绩最低学生的姓名和学号。 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;格式为 第 1 行&#xff1a;正整数 n 第 2 行&#xff1a;第 1 个学生的姓名…