一种基于伪随机数的网络无向通信模拟方法
【专利摘要】本发明提供的是一种基于伪随机数的网络无向通信模拟方法。该方法在拓扑网络中使用随机数生成模拟网络结点通信,突出模拟网络的随机性,将同时刻开时的网络通信进行合并,仅使用通信开始时刻和网络结点编号来记录通信信息,减少了网络通信模拟的内存使用和操作时间。
【专利说明】一种基于伪随机数的网络无向通信模拟方法
(-)【技术领域】
[0001]本发明涉及的是一种基于伪随机数的网络无向通信模拟方法。
(二)【背景技术】
[0002]在计算机网络研究中,经常需要对新的应用程序、体系结构或者协议等进行评估,需要依赖于实际的物理信道,做大量的实验,给通信实验带来困难,并且由于电波传播的多样性无法用精确的数学模型来描述其信道模型,只能通过数学上随机过程和统计模型的方法建立信息网络传播环境来分析和仿真实际物理信道,因此信道的建模、分析与仿真将为通信系统的设计与应用奠定基础。
[0003]对通信网进行随机模拟不仅对系统进行抽象与简化,还可以对系统细结进行任意详尽的考虑,但当前广泛采用的方法存在的一个突出问题是占用计算机时间太长。仿真要对所有网络事件(各个结点)进行生成、存贮、扫描与判断,直至将仿真推进到事件的发生时间,同时对路由表、事件表进行动态修改等一系列处理,这将占用大量的内存与操作时间。尤其重要的是每次仿真都只是系统性能的一个随机样本,需要经过多次仿真并加权平均得到的结果才能作为最终的仿真结果。
[0004]针对以上情况,我们提出了一种基于伪随机数的网络无向通信模拟方法来提高通信仿真的效率:首先对网络所有结点进行编号,设共有N个结点,然后生成随机数M表示未来网络中将有M对结点间进行随机通信,做M次循环,每次循环生成两个通信结点N1, N2和时刻Time,Time表示这两个结点N1, N2将在时刻Time进行通信。利用上述伪随机来随机选取通信的结点和发生通信的时间,从而模拟网络通信的情况,提高了仿真的效率。
(三)
【发明内容】
[0005]本发明的目的在于一种基于伪随机数的网络随机通信模拟方法。该方法在拓扑网络中使用随机数模拟网络结点通信,突出模拟网络的随机性,将同时刻开始的网络通信记录进行合并,仅使用时间长度和网络结点编号来记录通信信息,减少了网络通信模拟的内存使用和操作时间。
[0006]本发明的目的是这样实现的:
[0007]设网络拓扑中共存在N个网络结点,随机数M为未来将有M对结点之间进行通信;使用数据通信记录Note {A,B, Time}来记录M次随机通信的通信结点A、B和通信开始时刻 Time ;生成 M 对随机数(A1, B1, Time。}…{Ai; Bi, TimeJ- {Am,Bm, TimeJ,其中,Ai,Bi e {1,...,N} 且.Ai≠Bi {Ai7BijTimeJ表示结点Ai和结点Bi间从时刻为Timei开始进行一次通信;将通信结点{Ay Bi, TimeJ插入到通信链表NoteList中,由于生成的随机数中可能存在两对随机数{Ai; BJ, {AJ; BjI有Ai=Bp Bi=Aj的情况,即生成的通信记录有时间相同通信结点相同的记录,因此需要将两个通信记录进行合并,删除NoteList中重复的结点;删除重复的结点后,统计所有通信记录的Note中通信次数并记录到变量NUM中,如果NUM<M则需要重新生成M-NUM对随机数结点和通信开始时刻,重复上述过程,直至NUM=M,得到有效M个随机通信记录,这样根据NoteList记录通信可以模拟一种基于伪随机数的网络无向通信模拟方法;
[0008]具体步骤为:
[0009](I)用户输入网络结点数N,生成随机数M表示网络中将有M对结点进行通信,初始化有效通信数NUM=O ;初始化通信记录链表NoteList为空;
[0010](2)随机生成一个三元组{A,B, Time};
[0011](3)如果满足条件A古B,则执行步骤4;否则执行步骤2;
[0012](4)如果满足条件1 ≤A ≤ N,则执行步骤5 ;否则执行步骤2 ;
[0013](5)如果满足条件1 ≤ B ≤ N,则执行步骤6 ;否则执行步骤2 ;
[0014](6)如果NUM=O,执行步骤12,否则执行步骤7 ;
[0015](7) i=l;
[0016](8)取出 NoteList 的第 i 个元素(Ai, Bi, TimeJ 如果 Time=Timei,执行步骤 9,否则执行步骤11 ;
[0017](9)如果A=Ai并且B=Bi,执行步骤13,否则执行步骤10 ;
[0018](10)如果A=Bi并且B=Ai,执行步骤13,否则执行步骤11 ;
[0019](11) i值加1,如果i>NUM,执行步骤12,否则执行步骤8 ;
[0020](12)将{A, B, Time}加入 NoteList, NUM 值加 I ;
[0021](13)如果NUM〈M,执行步骤2,否则执行步骤14 ;
[0022](H)NoteList中保存了基于伪随机数的网络无向通信信息,生成程序结束。
[0023]本发明的关键在于在模拟网络通信随机性的基础上减少内存使用和操作时间。为此,通过随机数确定网络结点和通信时间,并将相同开始时刻通信的结点编码进行合并,在保证网络结点随机通信的基础上,还使模拟通信环境的效率得到提高。
[0024]其主要特点如下:
[0025]1、使用随机数生成方法来确定网络中的通信结点和通信开始时刻,使每次产生的通信结点和通信时刻都不尽相同,使生成的网络通信环境更具有随机性;
[0026]2、将通信时间刻相同的结点进合并,使用简单的列表完成随机通信环境的记录,提高了模拟通信环境的效率。
(四)【专利附图】
【附图说明】
[0027]图1:一种基于伪随机数的网络无向通信模拟方法
(五)具体的实施方式
[0028]下面结合附图距离对本发明作更详细的描述:
[0029]本发明所述方法的特征在于:
[0030]设网络拓扑中共存在N个网络结点,随机数M为未来将有M对结点之间进行通信;使用数据通信记录Note {A,B, Time}来记录M次随机通信的通信结点A、B和通信开始时刻 Time ;生成 M 对随机数(A1, B1, Time。}…{Ai; Bi, TimeJ- {Am,Bm, TimeJ,其中,Ai,Bi ∈{1,...,N}且 Ai≠Bi;{ Ai,Bi,TimeJ表示结点Ai和结点Bi间从时刻为Timei开始进行一次通信;将通信结点{Ay Bi, TimeJ插入到通信链表NoteList中,由于生成的随机数中可能存在两对随机数{Ai; BJ, {AJ; BjI有Ai=Bp Bi=Aj的情况,即生成的通信记录有时间相同通信结点相同的记录,因此需要将两个通信记录进行合并,删除NoteList中重复的结点;删除重复的结点后,统计所有通信记录的Note中通信次数并记录到变量NUM中,如果NUM<M则需要重新生成M-NUM对随机数结点和通信开始时刻,重复上述过程,直至NUM=M,得到有效M个随机通信记录,这样根据NoteList记录通信可以模拟一种基于伪随机数的网络无向通信模拟方法;
[0031]具体步骤为:
[0032](I)用户输入网络结点数N,生成随机数M表示网络中将有M对结点进行通信,初始化有效通信数NUM=O ;初始化通信记录链表NoteList为空;
[0033](2)随机生成一个三元组{A, B, Time};
[0034](3)如果满足条件A古B,则执行步骤4 ;否则执行步骤2 ;
[0035](4)如果满足条件I≤A≤N,则执行步骤5 ;否则执行步骤2 ;
[0036](5)如果满足条件I≤B≤N,则执行步骤6 ;否则执行步骤2 ;
[0037](6)如果NUM=O,执行步骤12,否则执行步骤7 ;
[0038](7) i=l;
[0039](8)取出 NoteList 的第 i 个元素{Ai; Bi, TimeJ 如果 Time=Timei,执行步骤 9,否则执行步骤11 ;
[0040](9)如果A=Ai并且B=Bi,执行步骤13,否则执行步骤10 ;
[0041](10)如果A=Bi并且B=Ai,执行步骤13,否则执行步骤11 ;
[0042](11) i值加1,如果i>NUM,执行步骤12,否则执行步骤8 ;
[0043](12)将{A, B, Time}加入 NoteList, NUM 值加 I ;
[0044](13)如果NUM〈M,执行步骤2,否则执行步骤14 ;
[0045](H)NoteList中保存了基于伪随机数的网络无向通信信息,生成程序结束。
[0046]其具体实施模式是这样的:
[0047]首先将网络拓扑中的网络结点进行编号,然后生成将要通信的结点对数和一次通信时间,对于每一对通信结点,随机生成两个结点编号和通信开始时刻形成一条通信记录,并去除通信开始时间和通信结点相同的记录,来完善随机数生成的合理性;这样,仅需要根据列表记录的开始时间和通信结点进行一次通信,这样便模拟了一种基于伪随机数的网络无向通信模拟方法。
【权利要求】
1.一种基于伪随机数的网络无向通信模拟方法,其特征在于:本发明的目的是这样实现的:设网络拓扑中共存在N个网络结点,随机数M为未来将有M对结点之间进行通信;使用数据通信记录Note {A,B, Time}来记录M次随机通信的通信结点A、B和通信开始时刻 Time ;生成 M 对随机数(A1, B1, Time。}…{Ai; Bi, TimeJ- {Am,Bm, TimeJ,其中,Ai,Bi e {1,...,N} 且Ai ≠ Bi {Ai7BijTime}表示结点Ai和结点Bi间从时刻为Timei开始进行一次通信;将通信结点{Ay Bi, TimeJ插入到通信链表NoteList中,由于生成的随机数中可能存在两对随机数{Ai; BJ, {AJ; BjI有Ai=Bp Bi=Aj的情况,即生成的通信记录有时间相同通信结点相同的记录,因此需要将两个通信记录进行合并,删除NoteList中重复的结点;删除重复的结点后,统计所有通信记录的Note中通信次数并记录到变量NUM中,如果NUM<M则需要重新生成M-NUM对随机数结点和通信开始时刻,重复上述过程,直至NUM=M,得到有效M个随机通信记录,这样根据NoteList记录通信可以模拟一种基于伪随机数的网络无向通信模拟方法; 具体步骤为: (1)用户输入网络结点数N,生成随机数M表示网络中将有M对结点进行通信,初始化有效通信数NUM=O ;初始化通信记录链表NoteList为空; (2)随机生成一个三元组{A,B,Time}; (3)如果满足条件A古B,则执行步骤4;否则执行步骤2 ; (4)如果满足条件1< A < N,则执行步骤5 ;否则执行步骤2 ; (5)如果满足条件1< B < N,则执行步骤6 ;否则执行步骤2 ; (6)如果NUM=O,执行步骤12,否则执行步骤7;
(7)i=l; (8)取出NoteList的第i个元素{Ai;Bi, TimeJ如果Time=Timei,执行步骤9,否则执行步骤11 ; (9)如果A=Ai并且B=Bi,执行步骤13,否则执行步骤10; (10)如果A=Bi并且B=Ai,执行步骤13,否则执行步骤11; (11)i值加1,如果i>NUM,执行步骤12,否则执行步骤8 ;
(12)将{A,B, Time}加入 NoteList, NUM 值加 I ; (13)如果NUM〈M,执行步骤2,否则执行步骤14; (H)NoteList中保存了基于伪随机数的网络无向通信信息,生成程序结束。
【文档编号】H04L12/24GK103457798SQ201310395276
【公开日】2013年12月18日 申请日期:2013年9月3日 优先权日:2013年9月3日
【发明者】姚文斌, 韩司, 王真 申请人:北京邮电大学