随机网络模型_第1页
随机网络模型_第2页
随机网络模型_第3页
随机网络模型_第4页
随机网络模型_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上数学建模与实验报告 2017年4月6日星期四题目:随机网络模型姓名: 班级:应用数学 学号: 摘 要 本文主要构造三种随机网络模型,第一种是给定点数和任意两点相连的概率随机生成随机网络,第二中是通过给定点数和边数随机生成随机网络,前两种方发得到的随机网络都没有涉及到边的权重问题,而在第三种中给定了点数,边数和权值构造了随机网络。关键词: 1;随机网络2;matlab 第一种随机网络1.1 模型假设: 任意给定点数和相邻两点之间的概率构造随机网络模型,如给定50个点,相邻两点之间连接的概率是0.2构造随机网络。下面将给出详细的说明和示例。1.2 模型分析:给定N个节点,

2、每一对节点以概率p进行连接,最多可以存在N(N-1)/2条边。这样,所有连接的数目是一个随机变量。首先用matlab构造N个节点,以概率p随机选取边得到其对应顶点,之后连接起来就可以得到随机网络。1.3算法:Step1:生成n个节点,通过两个函数cos(t),sin(t)分别作为n个节点的横纵坐标。Step2:给定N个节点,最多可以存在m=N(N-1)/2条边,随机生成m个(0,1)之间的随机数,找出其中小于等于概率q的随机数。这些随机数就要连的边。Step3:通过第三步构造邻接矩阵,找到邻接矩阵中满足step3的点连线。1.4 Matlab代码: function random_networ

3、k0(n,p)t = 0:2*pi/n:2*pi;m = nchoosek(n,2);%计算n个节点完全图的边数x = cos(t);y = sin(t);%构造n个点z = rand(1,m);%随机生成m个随机数ind1=(z<=p);%找出z中小于等于p的随机数,对应的地址将来连边ind2=squareform(ind1);%把0-1向量转换成邻接矩阵i,j=find(ind2);%求边的节点编号plot(x,y,'ro');%画出给定点title('random network');for k = 1:length(i)%连接随机选中的m条边 li

4、ne(x(i(k),x(j(k),y(i(k),y(j(k),'Color','k')end1.5示例:假设给定点n取30,概率p取0.2在matlab命令窗口中输入:>> random_network0(30,0.2)随机网络图形如下:第二种随机网络2.1 模型假设: 任意给定点数和边数构造随机网络模型,如给定25个点,边数为15构造随机网络。下面将给出详细的说明和示例。2.2模型分析:给定N个节点,最多可以存在N(N-1)/2条边,从这些边中等概率的选取M条边构造随机网络,首先用matlab构造N个节点,以概率随机选取M边得到其对应顶点,之后连接

5、起来就可以得到随机网络。2.3算法:Step1:生成n个节点,通过两个函数cos(t),sin(t)分别作为n个节点的横纵坐标。Step2:给定N个节点,最多可以存在m=N(N-1)/2条边,生成一个1乘m个0的向量,随机选中s个元素。这些元素就要连的边。Step3:通过第三步构造邻接矩阵,找到邻接矩阵中满足step3的点连线。2.4 Matlab代码: function random_network1(n,s)t = 0:2*pi/n:2*pi;m = nchoosek(n,2);x = cos(t);y = sin(t);ind1 = zeros(1,m);randindex=randpe

6、rm(m);%随机选取s条边for i = 1:1:s ind1(randindex(i) = 1;endind2=squareform(ind1);i,j=find(ind2);plot(x,y,'ro');title('random network');for k = 1:length(i) line(x(i(k),x(j(k),y(i(k),y(j(k),'Color','k')end2.5示例:假设给定点n取25,边数取15在matlab命令窗口中输入:>> random_network1(25,15)随机网络

7、图形如下:第三种随机网络3.1 模型假设: 任意给定点数和边数以及权重构造随机网络模型,如给定5个点,边数为7,权重分别为1,2,3,4,5,6,7,8,9,10.构造随机网络。下面将给出详细的说明和示例。3.2模型分析:给定N个节点,最多可以存在N(N-1)/2条边,从这些边中等概率的选取M条边构造随机网络,首先用matlab构造N个节点,以概率随机选取M边得到其对应顶点,之后连接起来就可以得到随机网络。3.3算法:Step1:生成n个节点,通过两个函数cos(t),sin(t)分别作为n个节点的横纵坐标。Step2:给定N个节点,最多可以存在m=N(N-1)/2条边,生成一个1乘m个0的向

8、量,随机选中s个元素。这些元素就要连的边。Step3:给每条边复权。Step4:通过第三步构造邻接矩阵,找到邻接矩阵中满足step3的点连线。并求其总权重。3.4 Matlab代码: function weight=random_network(n,s,b)t = 0:2*pi/n:2*pi;weight = 0;m = nchoosek(n,2);x = cos(t);y = sin(t);ind1 = zeros(1,m);randindex=randperm(m);for i = 1:1:s %求选中边的总权重 ind1(randindex(i) = 1; weight = weight

9、+b(randindex(i);endind2=squareform(ind1);i,j=find(ind2);plot(x,y,'o','ro');title('random network');for k = 1:length(i) line(x(i(k),x(j(k),y(i(k),y(j(k),'Color','k');end3.5示例:假设给定点n取5,边数取8在matlab命令窗口中输入:>> b=1,2,3,4,5,6,7,8,9,10;>> random_network1(25,15)随机网络图形如下:得出总全权重为48.结论分析:本文总共采用了三种方法构造随机网络,前两种都能很好的完成给定点数,给定边数,或者给定两点之间的概率的随机网络的随机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论