1.åºäº Plexe-SUMO ç V2X 仿ç
2.ns3-ai:用于网络研究的简单NS3人工智能算法接口
3.交通模型仿真工具SUMO介绍
4.NS3NS2与NS3的关系
åºäº Plexe-SUMO ç V2X 仿ç
ç®å车èç½å车路åå (V2V, V2I, V2P... ç»ç§° V2X) æ¯èªå¨é©¾é©¶åæºè½äº¤éé¢åç 究çæ ¸å¿é®é¢ä¹ä¸ãç®åæ¥è¯´ï¼V2X å°±æ¯ä¸ºè½¦è¾æä¾äºä¸å¸è§è§ï¼å¯ä»¥è·åæ´å¤§èå´ãæ´åç¡®çä¿¡æ¯ï¼ä»èä¼å驾驶å³çã
å¨åç§æºè½äº¤éåºæ¯ä¸ï¼platooning (车éç¼æ) æ¯ä¸ä¸ªå¾çé¨çè¯é¢ãåå© V2Xï¼ platooning å¯ä»¥åå°è½¦è¾ä¹é´çå®å ¨è·ç¦»ãè¾å°çå®å ¨è·ç¦»å¯ä»¥å¢å éè·¯çååéï¼å¯¹äºå¨é«éå ¬è·¯ä¸è¡é©¶çå¡è½¦ç¼éï¼è¿å¯ä»¥åå°é£é»ï¼éä½è½èã
对äºä¸è¬çç 究æºæï¼ç±äºåæ¹é¢çéå¶ï¼å¾é¾å¨å®è½¦ãå®è·¯ä¸æµè¯æºè½äº¤éç®æ³çæ§è½ãå¨è¿ç§æ åµä¸ï¼ä»¿çæµè¯å¯ä»¥å¨ä¸å®ç¨åº¦ä¸éªè¯ç®æ³çæææ§ã
V2X 仿çä¸æ¶åå°ä¸¤æ¹é¢ï¼äº¤éåºæ¯åç½ç»é讯ã
SUMO å¯ä»¥å®ç°äº¤éåºæ¯ç仿çï¼ç½ç»é讯æ¹é¢ç仿ç软件æ OMNeT++ , NS3 ç.
Veins (vehicles in network simulation) = SUMO + OMNeT++
ä»ååå°±å¯ä»¥çåºæ¥ï¼ Veins æ¯é对车èç½ç仿ç软件ã
Plexe (platooning extension for veins) = Plexe-SUMO + Plexe-Veins
Plexe æ¯å¨ Veins ä¸å å ¥äº platooning çå ç´ ã
å¨å V2X 仿çæ¶ï¼å¦æ对ç½ç»é讯æ¹é¢ççå®åº¦è¦æ±ä¸é«ï¼ä¸éè¦æ¨¡æå®é èç½ä¸ç延è¿ã丢å çæ åµï¼å¯ä»¥åªç¨ Plexe-SUMOï¼è¿æ ·ç¨åºç¼åè¦ç®åå¾å¤ã
Plexe-SUMO æ¯å¨ SUMO åºç¡ä¸å å ¥äº platooning ç¸å ³çå ç´ ï¼æ´æ¹ä¾¿ platooning åºæ¯çæ建ãå¦å¤ï¼Plexe-SUMO æä¾äº Python API ï¼å¯ä»¥å¨ python ä¸ä»¥ module çæ¹å¼è°ç¨ï¼ç¨åºä¹¦åæ´ç®åã
æ¬æé¦å ä»ç»äº Plexe-SUMO python API çå®è£ æ¹æ³ï¼ç¶ååæ Plexe-SUMO å®æ¹ç»ç demo ç¨åº ï¼å¹¶å¨æ¤åºç¡ä¸å°è¯æé æ们èªå·±ç仿çåºæ¯ãå®æ¹ demo å æ¬
æ¬æéç¹åæ brakedemo.py å joindemo.py 两个ç¨åºã
å¨ platoon åºæ¯ä¸ï¼è½¦è¾çé度æ§å¶ä¸è¬éç¨ CACC (cooperative adaptive cruise control)ï¼è¿éç cooperative å°±æå³ç车è¾ä¹é´å¯ä»¥åä½ï¼å ±äº«ä¿¡æ¯ãå¨ brakedemo.py ç¨åºä¸ï¼platoon å®ç°ååå¹è½¦ï¼å³ä½¿è·è½¦è·ç¦»æ¯è¾çï¼ä¹ä¸ä¼åç碰æã
ç¨åºå注éå¦ä¸ï¼
该ç¨åºå®ç°äºå个车è¾ä»ä¸é¨å å ¥ platoon çè¿ç¨
ç¨åºå注éå¦ä¸ï¼
ä»¥ä¸ demo 涵çäºå¾å¤åºæ¬åºæ¯æ¨¡åï¼å¦æé ç¼éãéååå²ãæ·»å æ° leaderãæ¢éãå¹è½¦çãåºäºè¿äºæ¨¡åï¼æ们å¯ä»¥æé ä¸åç仿çåºæ¯ï¼æµè¯èªå·±ç车èç½å车路ååçç¥ã
è¿éæ们èèä¸ä¸ª platoon éè¿äº¤éè·¯å£çåºæ¯ã交éç¯å¯ä»¥åä¸å®èå´å ç车è¾åéä¿¡å·ï¼ä¿¡å·ä¸å å«å½å交éç¯ç¶æ以åå©ä½æ¶é´çä¿¡æ¯ï¼platoon leader åºäºè¿äºä¿¡æ¯ä½åºå³çï¼platoon ä¸åªäºè½¦è¾å¯ä»¥éè¿ï¼åªäºè½¦è¾éè¦æåå¹è½¦é¿å é¯çº¢ç¯ã
为äºå®ç°ä¸è¿° V2X åºæ¯ï¼å¯ä»¥å¨ brakedemo.py åºç¡ä¸åç®åä¿®æ¹ãéè¦æ³¨æçæ¯ï¼è¿éç sumo ç½ç»åé ç½®æ件ä¸åæ¯ä¹åç freewayï¼èæ¯éè¦èªå·±è®¾è®¡ï¼å å ¥äº¤éç¯çå ç´ ã
å¨è½¦è¾é¢è²æ¹é¢ï¼ä¸ºäºåºå leader å followerï¼æ对 utils ä¸ç车è¾é¢è²åäºä¸äºä¿®æ¹ï¼ä¸åä½¿ç¨ randomï¼èæ¯å° leader 设å®ä¸ºçº¢è²ï¼ follower 设å®ä¸ºé»è²ã
platoon leader å¨è¿å ¥äº¤éç¯ m èå´å å°±å¯ä»¥è·å¾äº¤éç¯ä¿¡æ¯ï¼ç¥éå½åç¶æåå©ä½æ¶é´ï¼ç¶åè¿è¡åç»ç platoon split æä½ï¼åè£æ两个 platoonãåé¨ç platoon ä¼æ£å¸¸è¡é©¶éè¿è·¯å£ï¼åé¨ç platoon å¨æ°ç leader 带é¢ä¸å¹è½¦ï¼åå¨è·¯å£å¤ï¼çå¾ ä¸ä¸ªç»¿ç¯éè¡ã
ç¨åºå注éå¦ä¸ï¼
ns3-ai:用于网络研究的NS3人工智能算法接口
在计算机网络研究领域,人工智能(AI)技术的仿真仿引入旨在提升网络系统的性能评估能力。为了实现这一目标,源码研究人员开发了一系列工具,代码其中ns3-ai是简单一个特别值得关注的工具。ns3-ai旨在促进人工智能算法在计算机网络研究中的仿真仿无限循环源码使用应用,通过将ns-3(一个开源系统级网络仿真工具)与现有的源码开源人工智能框架进行交互,加速这一过程。代码
本文首先回顾了人工智能在图像处理和自然语言处理领域的简单长足发展,以及在计算机网络研究中的仿真仿应用潜力。ns3-ai模块的源码开发是为了连接ns-3与基于Python的人工智能框架,提供高效、代码高速的简单数据交换机制。该模块基于共享内存实现,仿真仿相较于ns3gym,源码其在基准实例上的IPC传输速度快倍。此外,ns3-ai还提供了高级接口,stk10 源码以改进ns-3与不同AI框架之间的抽象层次,为用户提供更为灵活和直观的体验。
对于在通信网络中集成人工智能框架的挑战,本文进行了详细分析。首先,大规模数据需求是关键挑战之一,真实网络数据的获取和监控往往成本高昂,且在实际网络中难以进行测试。其次,网络中的人工智能模型验证和测试也面临困难,尤其是当需要在ns-3和AI框架之间传输大量数据时。此外,现有的仿真工具往往仅支持特定的AI框架,限制了研究的灵活性。
针对上述挑战,ns3-ai模块的提出旨在实现ns-3与多种人工智能框架之间的无缝集成,通过高效的vscode查看项目源码数据交换机制加速算法开发和测试过程。模块设计强调了共享内存作为核心数据传输方式的重要性,以减少数据传输时间,支持大规模数据传输。同时,高级接口的开发简化了与不同AI框架的交互,提高了用户使用体验。
本文进一步介绍了ns3-ai模块的架构和实现细节。模块由两部分组成:C++开发的ns3-ai接口和Python开发的AI接口。模块通过共享内存池进行数据传输,允许用户在Python和C++程序之间高效交换数据。共享内存池结构包括内存块、控制块和主控制块,实现了读写锁定和同步机制,确保了数据传输的安全性。此外,模块还提供了一个高级接口,支持不同类型数据的接口网站源码模板传输,简化了复杂数据结构的处理。
作为案例研究,本文展示了ns3-ai在CQI预测中的应用。通过使用长短时记忆(LSTM)算法,模块能够预测蜂窝系统中的信道质量指数(CQI),这对于实时通信质量控制至关重要。在线训练模块的引入减少了过时CQI对通信质量的影响,特别是在高速移动场景下。实验结果表明,LSTM预测方法在高速移动场景下的预测精度优于传统方法。
最后,基准测试结果表明,ns3-ai在数据传输性能上显著优于现有工具,如ns3gym。具体而言,从ns-3到AI框架的传输速度提高至7倍,从Python到ns-3的算命源码持续更新传输速度甚至提高了到倍。这些性能提升对于大规模数据传输尤为重要,尤其是在下一代无线网络中,网络密度和复杂性迅速增加。
总结而言,ns3-ai模块的开发和应用旨在加速人工智能算法在计算机网络研究中的应用,通过高效的数据交换机制和高级接口设计,简化了算法开发和测试过程,为下一代网络技术的研究提供了有力支持。
交通模型仿真工具SUMO介绍
基于开源软件SUMO,本文将介绍交通仿真的模型问题。
SUMO道路网络可以通过自身程序生成或导入数字道路地图生成。此外,SUMO支持从其他交通模拟器读取网络,如Vissim或MATsim,兼容常见的地图格式,如Open Street Map(OSM)和openDRIVE。
SUMO是一种微观交通模拟工具,每辆车都给定标识符、出发时间和路线。它可以定义出发和到达属性,如车道、速度或位置。每辆车分配一个类型,描述其物理特性和运动模型的变量。
模拟是时间离散和空间连续的,内部描述每个车辆的位置。当车辆移动时,使用跟车模型计算车速。SUMO扩展了传统的交通措施,包括噪声排放和污染物排放/燃料消耗模型。
SUMO交通建模定义给定区域的交通群体总数和移动性愿望,作为交通模拟器的输入。一些软件还可以考虑环境特征,如天气状况。
SUMO-ROUTER模块读取虚拟群体的出发时间、起点和目的地,使用Dijkstra路由算法计算路线。
SUMO的车-驾驶员模型采用Gipps模型的扩展型,显示交通的主要特征。每个时间步骤,车辆的速度适应前车速度,避免碰撞。车辆的期望速度为可能的最大速度、车速加最大加速度或安全速度的最小值。
模拟中,实际速度减去随机“人为错误”,车辆当前速度是计算速度和零的最大值。该模型是无碰撞的,模拟中不允许模型的不完整造成的变异。
SUMO提供V2X的可能,可以耦合外部通信仿真器,如ns2或ns3。
SUMO为主交通需求或一组车辆分配适当路线,建模交通参与者选择路线到目的地。路线计算是实现大规模交通模拟的关键步骤。SUMO提供用户分配或交通分配功能。
如何使交通灯适应当前交通是SUMO的主要应用之一。其快速执行时间和开放式接口使其成为评估新交通控制算法的良好候选者。
NS3NS2与NS3的关系
NS3与NS2之间的关系并非简单的继承关系,而是两个独立且功能各异的网络模拟器。尽管NS3同样使用C++编写的,但它并不兼容NS2的API,而是作为一个全新的开发平台。NS3在发展过程中,虽然会维护NS2,但其目标是提供更先进的功能和一致性。
对于NS2用户来说,转向NS3的最大变化体现在脚本语言的选择上。NS2采用OTcl,而NS3则完全依赖C++,不再支持OTcl。NS2的模块混合了C++和OTcl,而在NS3中,所有模块都以C++为基础,只提供了Python语言的绑定。这意味着NS3的仿真脚本可以使用C++或Python编写,虽然nam在NS3中仍可用来演示仿真结果,但新的动画演示器正在研发中。
尽管两者在某些方面如基于C++对象的相似性,NS3的优势在于其功能的扩展和改进,例如支持多接口处理、更准确的IP地址处理,以及更完善的.模块等。尽管NS3尚不包含所有NS2的模块,但移植工具正在开发中。
至于选择哪个,答案取决于具体需求。NS3虽然尚在发展中,但其开发者对其性能和潜力充满信心,对于寻求新项目和更先进技术的用户,NS3无疑是一个有吸引力的选择。因此,决定继续使用NS2还是转向NS3,需要权衡现有的熟悉度和NS3的潜在优势。