在Win2003下基于Cygwin环境的LEACH安装

此篇文章是实验室师兄杨师兄的作品,可以给初学习NS2仿真的同学学习。 他的博客是:blog.csdn.net/delphiwcdj

在Win2003下基于Cygwin环境的LEACH安装

Step 0: 准备必要的安装文件
1. Cygwin (70M)
下载地址:
http://140.116.72.80/~smallko/ns2/cygwin.rar
2. NS-2.27 package (55M): ns-allinone-2.27.tar.gz
下载地址:
http://www.internetworkflow.com/downloads/ns2leach/ns-allinone-2.27.tar.gz
3. MIT's LEACH extension: mit.tar.gz
下载地址:
http://www.internetworkflow.com/downloads/ns2leach/mit.tar.gz
4. LEACH's Makefile
下载地址:
http://www.internetworkflow.com/downloads/ns2leach/Makefile
5. vim7.3: gvim73_46.exe
下载地址:
http://www.vim.org/download.php
6. ns227-gcc34.patch (可选)
下载地址:
http://www.baisi.net/attachpage.php?tid=2470660&aid=1706851
7. NS-2.27环境下配置好的.bashrc文件 (可选)
下载地址:
http://140.116.72.80/~smallko/ns2/.bashrc
8. Index of /nsnam/dist/binary,nam-1.0a11a-win32.exe (可选)
下载地址:
http://www.isi.edu/nsnam/dist/binary/

Step 1: 安装Cygwin环境和NS-2.27包
(1) Cygwin通过本地的离线包安装,为了减少出现错误,选择全部all安装。
(2) 将ns-allinone-2.27.tar.gz复制到~目录下(即自己的家目录下),通过下面命令安装:
[1] cd ~
[2] tar zxvf ns-allinone-2.27.tar.gz
[3] patch -p0<ns227-gcc34.patch (可选)
[4] cd ns-allinone-2.27
[5] ./install
PS: 详细内容可参考关于安装问题的link[1]
Step 2: 设置环境变量使NS-2.27在终端下可用
[1] cd ~
[2] vim .bashrc
# LD_LIBRARY_PATH
OTCL_LIB=~/ns-allinone-2.27/otcl-1.8
NS2_LIB=~/ns-allinone-2.27/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB
# TCL_LIBRARY
1/5
如有未提及的,或相关问题,欢迎一起讨论:) blog.csdn.net/delphiwcdj 2010-11-23
TCL_LIB=~/ns-allinone-2.27/tcl8.4.5/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
PATH=$PATH:~/ns-allinone-2.27/bin:~/ns-allinone-2.27/tcl8.4.5/unix:~/ns-allinone-
2.27/tk8.4.5/unix
[3] . .bashrc # or use source .bashrc
PS: 详细可参考Step 0, 6, NS-2.27环境下配置好的.bashrc文件

Step 3: 添加MIT的LEACH extension
把mit.tar.gz复制到~/ns-allinone-2.27/ns-2.27/目录下。
[1] cd ~/ns-allinone-2.27/ns-2.27/
[2] tar zxvf mit.tar.gz
[3] rm mit.tar.gz
PS: 建议先将~/ns-allinone-2.27/ns-2.27目录复制一份,目的是便于对比在添加完LEACH extension后有
哪些文件被覆盖。

Step 4: 修改NS-2.27的源代码
(1) 修改~/ns-allinone-2.27/ns-2.27/mac/wireless-phy.cc文件:
vim ~/ns-allinone-2.27/ns-2.27/mac/wireless-phy.cc
Goto line 59, that is after line 58:
#define max(a,b) (((a)<(b))?(b):(a))
Insert:
#define min(a,b) (((a)>(b))?(b):(a))
(2) 修改~/ns-allinone-2.27/ns-2.27/indep-utils/webtrace-conv/dec/my-endian.h文件:
#ifndef _ENDIAN_H_
#define _ENDIAN_H_
改为
#ifndef _MY_ENDIAN_H_
#define _MY_ENDIAN_H_
或者将该文件的第一行和最后一行注释掉即可。
(3) 修改~/ns-allinone-2.27/ns-2.27/indep-utils/cmu-scen-gen/setdest/Makefile文件 :
change this line:
DEFINE = -Dstand_alone
-DSTL_NAMESPACE=@STL_NAMESPACE@
to this line:
DEFINE = -Dstand_alone
-DSTL_NAMESPACE=@STL_NAMESPACE@ -DCPP_NAMESPACE=std
In the other makefiles, append -DCPP_NAMESPACE=std to CFLAGS. (可以根据error的提示的目录修
改)
(4) 修改~/ns-allinone-2.27/ns-2.27/test文件:
否者在测试运行./test时,会出现:./test: line 5: ./leach_test: No such file or directly 的错误。
#!/bin/bash
cd tcl/ex
ns wireless-demo-csci694.tcl
sleep 2
# 改变下面两行代码的顺序
2/5
如有未提及的,或相关问题,欢迎一起讨论:) blog.csdn.net/delphiwcdj 2010-11-23
cd ../../
./leach_test
(5) 修改~/ns-allinone-2.27/ns-2.27/tcl/lib/ns_default.tcl文件,否者在./test的时候后会出现一堆
warnings,在第692行加入7个初始值如下:
Phy/WirelessPhy set alive_ 1
Phy/WirelessPhy set Efriss_amp_ 100e-12 # wireless-phy.cc文件中为:100 * 1e-12,修改
为:100e-12,否者会出现浮点数例外
Phy/WirelessPhy set Etwo_ray_amp_ 0.0131e-12 # 同上
Phy/WirelessPhy set EXcvr_ 50e-9 # 同上
Phy/WirelessPhy set sleep_ 0
Phy/WirelessPhy set ss_ 1
Phy/WirelessPhy set dist_ 0
具体的初始值应该对照在:~/ns-allinone-2.27/ns-2.27/mac/wireless-phy.cc输入(第95行,第97-99
行,第104-105行,第107行)
PS: 修改相关文件的目的是,为了减少在make时出现错误的可能性。详细内容可参考关于安装问题的link[2]:
LEACH protocol installation on NS2.27

Step 5: 给LEACH extension添加环境变量
[1] vim ~/.bashrc
# LEACH
export RCA_LIBRARY=`pwd`/ns-allinone-2.27/ns-2.27/mit/rca
export uAMPS_LIBRARY=`pwd`/ns-allinone-2.27/ns-2.27/mit/uAMPS
[2] . .bashrc # or use source .bashrc

Step 6: 修改Makefile文件内容,用LEACH extention重新编译NS-2.27
修改~/ns-allinone-2.27/ns-2.27/Makefile文件,复制一个新文件,不修改原文件。
PS: 在vim中使用查找命令:/word向下查找;?word向上查找。
[1] mv ~/ns-allinone-2.27/ns-2.27/Makefile ~/ns-allinone-2.27/ns-2.27/Makefile_Modified
[2] vim ~/ns-allinone-2.27/ns-2.27/Makefile_Modified
<1> Add -DMIT_uAMPS to the DEFINE list
<2> Add -I./mit/rca -I./mit/uAMPS to the INCLUDE list
<3> Add the following just prior to the line gaf/gaf.o \
mit/rca/energy.o mit/rca/rcagent.o \
mit/rca/rca-ll.o mit/rca/resource.o \
mac/mac-sensor-timers.o mac/mac-sensor.o mit/uAMPS/bsagent.o \
<4> make clean
<5> make -f Makefile_Modified
或者使用后台编译命令:nohup make -f Makefile_Modified 2>make.error >make.log &
PS: 关于nohup、2>make.error和&命令的用法可以参考关于安装问题的link[3-4]
在make完成后,查看make.error文件,会发现出现一堆irritating warnings信息(不用管它),但是没有
errors信息说明编译通过:
common/ip.cc: In member function `virtual void IPHeaderClass::export_offsets()
':
common/ip.cc:53: warning: invalid access to non-static data member `
3/5
如有未提及的,或相关问题,欢迎一起讨论:) blog.csdn.net/delphiwcdj 2010-11-23
hdr_ip::src_' of NULL object
common/ip.cc:53: warning: (perhaps the `offsetof' macro was used incorrectily)
common/ip.cc:54: warning: invalid access to non-static data member `
hdr_ip::dst_' of NULL object
common/ip.cc:54: warning: (perhaps the `offsetof' macro was used incorrectly)
common/ip.cc:55: warning: invalid access to non-static data member `
hdr_ip::ttl_' of NULL object
common/ip.cc:55: warning: (perhaps the `offsetof' macro was used incorrectly)
common/ip.cc:56: warning: invalid access to non-static data member `
hdr_ip::fid_' of NULL object
common/ip.cc:56: warning: (perhaps the `offsetof' macro was used incorrectly)

Step 7: 测试
Test default wireless demo and LEACH:
[1] cd ~/ns-allinone-2.27/ns-2.27/
[2] ./test
结果显示如下图:


[3] Validate the full installation — this takes a while too so take a break (可选)
nohup ./validate-full 2>validate.error >validate.log &
[4] 查看一下~/ns-allinone-2.27/ns-2.27/mit/leach_sims/leach.err文件的内容,如果为下面的内容,则
安装成功。
# leach.err
INITIALIZE THE LIST xListHead
channel.cc:sendUp - Calc highestAntennaZ_ and distCST_
highestAntennaZ_ = 1.5, distCST_ = 222.8
SORTING LISTS ...DONE!


【关于安装问题的link参考】
[1] Windows + Cygwin + NS2 (好,先把这个安装成功才能进行下面的工作)
http://140.116.72.80/~smallko/ns2/setup_en.htm (英文)
http://140.116.72.80/~smallko/ns2/setup.htm (中文)
[2] LEACH protocol installation on NS2.27 (好,仔细阅读,很多问题可以在这个link中解决)
http://www.linuxquestions.org/questions/linux-general-1/leach-protocol-installation-on-ns2-27-
a-785379/
[3] nohup、&、disdown、screen的用法
4/5
如有未提及的,或相关问题,欢迎一起讨论:) blog.csdn.net/delphiwcdj 2010-11-23
http://blog.csdn.net/sayigood/archive/2010/10/03/5919483.aspx
[4] "2>&1" 是什么意思?
http://hi.baidu.com/cui1206/blog/item/85e74c084ddf473ce82488d8.html
[5] ns2 2.27 ubuntu (一个韩国人的博客)
http://cypress.tistory.com/entry/ns2-227-ubuntu
[6] Leach协议学习——NS2.27+leach协议安装 (介绍了几种错误)
http://hi.baidu.com/jerry_916/blog/item/ab630c32391f944aac4b5f3e.html
[7] Cygwin+ns2.27+leach协议 安装笔记
http://www.baisi.net/viewthread.php?tid=3009793
[8] windows下 cygwin+ns2.27+leach安装与总结
http://blog.sina.com.cn/s/blog_3c680f8101008rty.html
[9] leach在ns2.28,2.29上的安装
http://hi.baidu.com/zhubanty/blog/item/6366d6ddf3215c305982ddd4.html
[10] leach在ns2各版本下安装的问题
http://hi.baidu.com/savin2009/blog/item/9090da37ef21e8d5a2cc2b56.html
[11] Cygwin+ns2.27+leach安装问题与解决方法
http://hi.baidu.com/savin2009/blog/item/7b8f6cfbf71a38d6b48f318b.html
[12] The Network Simulator ns-2: Installation Problems, Bug Fixes, and Help
http://www.isi.edu/nsnam/ns/ns-problems.html#ns-2.27
http://nsnam.isi.edu/nsnam/index.php/Troubleshooting

【进一步阅读的link参考】
[1] NS2 Leach Implementation (PDF Only 25 KB)
http://www.internetworkflow.com/resources/index.shtml
[2] MIT uAMPS LEACH ns Extensions
http://www.ece.rochester.edu/research/wcng/code/index.htm
[3] Threads Tagged(标签) with leach
http://www.linuxquestions.org/questions/tags/leach/
[4] 一个关于WSN研究的外国教授的网站
http://www.ece.rochester.edu/~wheinzel/index.html
[5] NS-2 Trace Formats
http://nsnam.isi.edu/nsnam/index.php/NS-2_Trace_Formats
[6] 一个国内博士关于的WSN博客 (好)
http://hi.baidu.com/vvfang/blog/category/Ns2%20Related
[7] 一个上交博士关于NS2学习笔记的博客 (好)
http://hi.baidu.com/jerry_916/home
http://hi.baidu.com/jerry_916/blog/category/Ns2
[8] 一个关于NS与网络模拟的博客
http://blog.sina.com.cn/s/articlelist_1013452673_9_1.html

智慧旅游解决方案利用云计算、物联网和移动互联网技术,通过便携终端设备,实现对旅游资源、经济、活动和旅游者信息的智能感知和发布。这种技术的应用旨在提升游客在旅游各个环节的体验,使他们能够轻松获取信息、规划行程、预订票务和安排食宿。智慧旅游平台为旅游管理部门、企业和游客提供服务,包括政策发布、行政管理、景区安全、游客流量统计分析、投诉反馈等。此外,平台还提供广告促销、库存信息、景点介绍、电子门票、社交互动等功能。 智慧旅游的建设规划得到了国家政策的支持,如《国家中长期科技发展规划纲要》和国务院的《关于加快发展旅游业的意见》,这些政策强调了旅游信息服务平台的建设和信息化服务的重要性。随着技术的成熟和政策环境的优化,智慧旅游的时机已经到来。 智慧旅游平台采用SaaS、PaaS和IaaS等云服务模式,提供简化的软件开发、测试和部署环境,实现资源的按需配置和快速部署。这些服务模式支持旅游企业、消费者和管理部门开发高性能、高可扩展的应用服务。平台还整合了旅游信息资源,提供了丰富的旅游产品创意平台和统一的旅游综合信息库。 智慧旅游融合应用面向游客和景区景点主管机构,提供无线城市门户、智能导游、智能门票及优惠券、景区综合安防、车辆及停车场管理等服务。这些应用通过物联网和云计算技术,实现了旅游服务的智能化、个性化和协同化,提高了旅游服务的自由度和信息共享的动态性。 智慧旅游的发展标志着旅游信息化建设的智能化和应用多样化趋势,多种技术和应用交叉渗透至旅游行业的各个方面,预示着全面的智慧旅游时代已经到来。智慧旅游不仅提升了游客的旅游体验,也为旅游管理和服务提供了高效的技术支持。
智慧旅游解决方案利用云计算、物联网和移动互联网技术,通过便携终端设备,实现对旅游资源、经济、活动和旅游者信息的智能感知和发布。这种技术的应用旨在提升游客在旅游各个环节的体验,使他们能够轻松获取信息、规划行程、预订票务和安排食宿。智慧旅游平台为旅游管理部门、企业和游客提供服务,包括政策发布、行政管理、景区安全、游客流量统计分析、投诉反馈等。此外,平台还提供广告促销、库存信息、景点介绍、电子门票、社交互动等功能。 智慧旅游的建设规划得到了国家政策的支持,如《国家中长期科技发展规划纲要》和国务院的《关于加快发展旅游业的意见》,这些政策强调了旅游信息服务平台的建设和信息化服务的重要性。随着技术的成熟和政策环境的优化,智慧旅游的时机已经到来。 智慧旅游平台采用SaaS、PaaS和IaaS等云服务模式,提供简化的软件开发、测试和部署环境,实现资源的按需配置和快速部署。这些服务模式支持旅游企业、消费者和管理部门开发高性能、高可扩展的应用服务。平台还整合了旅游信息资源,提供了丰富的旅游产品创意平台和统一的旅游综合信息库。 智慧旅游融合应用面向游客和景区景点主管机构,提供无线城市门户、智能导游、智能门票及优惠券、景区综合安防、车辆及停车场管理等服务。这些应用通过物联网和云计算技术,实现了旅游服务的智能化、个性化和协同化,提高了旅游服务的自由度和信息共享的动态性。 智慧旅游的发展标志着旅游信息化建设的智能化和应用多样化趋势,多种技术和应用交叉渗透至旅游行业的各个方面,预示着全面的智慧旅游时代已经到来。智慧旅游不仅提升了游客的旅游体验,也为旅游管理和服务提供了高效的技术支持。
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值