如何在OMNeT++中通过同一.ini文件为同一网络运行不同实验?
解决OMNeT++中同一网络多实验配置的重复键问题
你遇到的重复键错误是因为OMNeT++的.ini配置文件不允许出现同名的配置块(你写了两个[Net]),要实现同一网络用不同转发算法跑两个实验,有两种实用方案:
方案1:为每个实验创建独立配置块
给两个实验的配置块起不同的名称,各自完整定义网络和转发算法参数,示例如下:
[SP_Experiment] network = Test *.fwdAlgorithm = "sp" [KSP_Experiment] network = Test *.fwdAlgorithm = "ksp"
运行时,在OMNeT++的仿真启动界面里,选择SP_Experiment或KSP_Experiment即可分别启动对应算法的仿真。
方案2:使用配置变体(继承基础配置)
如果两个实验大部分配置相同,只需要修改转发算法,可以先定义一个基础配置块,再通过变体覆盖差异参数,这样更简洁:
[Net] network = Test [Net:sp] *.fwdAlgorithm = "sp" [Net:ksp] *.fwdAlgorithm = "ksp"
这里[Net:sp]和[Net:ksp]继承了[Net]的所有配置(比如network = Test),只修改了fwdAlgorithm参数。运行时选择Net:sp或Net:ksp就能启动对应实验。
这两种方法都能避免重复键问题,根据你的实验复杂度选合适的就行。
内容的提问来源于stack exchange,提问作者Mohamad Al Adraa
相关产品推荐
相关产品推荐

