版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CENTRAL SOUTH UNIVERSITY通信网原理课程设计报告选题N1 通信网的最佳容量分配与延迟计算专业班级电子信息1202姓名学号指导教师完成日期2015年7月14日备注:目 录1. 设计目的2. 设计要求3. 设计原理和方法4. 程序清单5. 测试数据及其结果6. 总结7. 参考文献1. 设计目的用TC、Visual BASIC、Visual C+、Java等编程工具和路由器、交换机、主机等网络设备提供的接口,解决网络用户之间通信的有关 问题,如通信实现、编码分析、协议分析、程序设计等。进一步深入 掌握通信网原理。使学生对通信网的原理及其设计实现有较深的了解, 培养较高的通信网开
2、发应用能力。2. 设计要求总体要求:了解常用通信网络设备的操作和应用,掌握常用的通信协议的工作原理,能利用 TC、Visual、BASIC、Visual C+、Java 等至少一种开发工具完成相应的通信程序的设计工作。学习简明地介绍自己的设计工作。程序设计课题方面,要求:程序操作简单、方便,界面布 局合理美观。环境要求:Win dows2000/XP/7/8功能要求:(1)设有n个节点的通信网络,三个 n阶方阵A、R、V分别表 示该网络的邻接矩阵、端对端的信息量和路由。编写一个程序,对于输入的n、A、R、V、报文长度1/口,总容量C,设计一个程 序,计算出网络的最佳容量分配及相应的延时。注意,
3、一条链路的平 均延时时间计算参考公式 T=1/(成 入),其中1/口是以比特为单位 的报文分组平均长度;C是以该链路的容量,单位是比特/秒;入是平 均流量,单位是分组/秒。给出:n = 6,l/= 800比特/分组,厂n厂Jri1 OJ,OALO|11 094亿4 11 0222Q1 1A1A0J I11 9,0影2,4 |1 1A3,6,6,6|A= | OJA1,1,O|1R = 1 4,&0小 Iv =1 2.2,0,45,5 |1 0A1A0J I11 133A3,4 |1 gO30|1 1A1A0J I11 7233Q5 |1 1A3,36|1 OJAlJ.Ol11 442
4、炖 11 525Q0ILL的网络的最佳容量分配及相应的延时。(3)当该网络增加1个节点,其链路、路由、信息量需求自行定义,给出对应的延时。3. 设计原理和方法分析问题:这个课程设计的题目是要在已知网络结构、端对端的路由的信息 量和路由、以及网络总容量的前提下,求取最佳的容量分配方案,使 网络处于最佳状态,另外还需求这时的网络延时。一个网络的好坏可以用很多参数来衡量, 其中比较重要的有延时、 网速、稳定性等,为了简化问题这里只选取延时作为指标,因而本课 题也就是问在怎样的容量分配方法下,网络的延时最小。从已知的计算一条链路延时的公式 Ti=1/( QCi-为可知,是已知 常数,而平均流量入可以由
5、信息量以及路由矩阵可以求得,因而影响 一条链路延时的唯一因素就是该链路的容量 Ci。既然单个链路的延时已经找到控制方法,接下来的问题是如何定 义整个网络的延时?简单的将所有链路的延时相加吗, 显然这时不科 学的,因为不同链路对整个网络的影响程度显然是不同的。一种更好的方法是把平均流量作为权重得到所有链路延时的加权和,作为整个 网络的延时。原因很明显,假如流量最大的链路发生阻塞对整个网络 的影响明显比流量几乎为零的链路发生阻塞要严重的多。转化为数学问题:从上面的分析可以定义整个网络的延时为:"?-伽刀??1?- ?由于我们关心的并不是该值的大小,而是相对大小,故可以简化为:f(?,?,
6、?d题中还有个约束条件是:?= C?2??于是很自然的转化为在约束条件 E?- C=0下求f(?,?, ,?最 小值的问题,这是一个经典的多元函数求极值的问题, 可以用拉格朗 日乘数法求解。拉格朗日乘数法简介设给定二元函数z=?(x,y)和附加条件© (x,y)=0,为寻找z= ? (x,y)在附加条件下的极值点,先做拉格朗日函数:其中入为参数。求L(x,y)对x和y的一阶偏导数,令它们等于 零,并与附加条件联立,即L'x(x,y)= ?'x(x,y)+ 入 Mx,y)=0 ,-L'y(x,y)= ?'y(x,y)+ 入椒(x,y)=O ,L O(x,
7、y)=0由上述方程组解出x, y及入,如此求得的(x,y),就是函数z= ? (x,y)在附加条件© (x,y)=0下的可能极值点。求解方法:构造拉格朗日函数:?,?,?1=刀?誌?务 + a?(?+?+ ? + 畑?分别对?,?,??求一阶偏导数,并使其为零,再与联立得:?+ ?= 0(?- ?)2?- + ?= 0 (?- ?)2一 ?+?+? + ?- ?= 0观察上式可知:?=?将?,?,??弋入最后一个方程可得V?+? - ?=上式中只包含一个变量?只要求出?整个问题就可以得到解决了,不幸的是该方程的形式比较复杂,并不是很好求解。但是细心点就会观察到关于?的函数f(?=刀V
8、?+ ? ? - ?是个单调递减的函数,使用二分法就可以很容易的求解了二分法简介:二分法(英语:Bisection method ),是一种方程式根的近似值求 法。若要求已知函数f(x) = 0的根(x的解),则:1. 先找出一个区间a, b,使得f(a)与f(b)异号。根据介值定理,这个区间内一定包含着方程式的根。_ a + b2. 求该区间的中点-,并找出f(m)的值。3. 若f(m)与f(a)正负号相同则取 m, b为新的区间,否则取a, m.4. 重复第2和第3步至理想精确度为止。忆+ ?求出?后,代入??= -?7-就可以得到最佳容量分配,再代入T=1/( pC-为就可以得到相应链路
9、的延时。至此问题完全的解决了。更多的思考:在上面定义整个网络延时的时候,我们是基于一个事实:流量更 大的链路对整个网络的影响更大,也就是说流量更大的链路应该分配 更多的流量。那么是否可以认为直接流量的比例分配容量呢?其实对于这种方法,我同样给出了程序实现,并且同样用公式 衡量整个网络的延时,实验结果证明了这个方法能达到同样的延时指 标。4. 程序清单/多元函数求极小值方法#in elude viostream>#in elude vcstri ng>#in elude <stdio.h>#in elude <math.h>#in elude <algo
10、rithm>using n amespace std ;const int MAXN = 10 ;int N ;intAMAXNMAXN,RMAXNMAXN,VMAXNMAXN, namdaMAXNMAXN double C_sum ,U, CMAXNMAXN , TMAXNMAXN;void add_li nk(i nt u , int t , int val) if(u = t) return ;int next = Vut;n amdau next += val;add_li nk(n ext , t , val);double f(double alpha)double ans=
11、 0 ;for(i nt i=1; i<=N; i+) for(int j=1; jv=N; j+) if(Aij) ans += ( sqrt(U / alpha) + n amdaij ) / U ;ans -= C_sum ; return ans;/二分法求“ Lagrange乘数法"中的待定常数alphadouble cal_alpha() double eps = 1e-10 ;double low = eps , high = 1e8 ;while(high - low > eps) double mid = (high + low) /2 ;if(f(mi
12、d) > 0) low = mid ; else high = mid ;retur n (high + low) / 2 ;int mai n()printf("n请输入节点数 N : n");scan f("%d", &N);printf("n请输入邻接矩阵 A : n");for(i nt i=1; i<=N; i+)for(int j=1; jv=N; j+)scanf("%d", &Aij);printf("n请输入端对端的信息量 R: n");for(i
13、nt i=1; i<=N; i+)for(int j=1; jv=N; j+)sca nf("%d", & Rij);printf("n请输入路由 V: n");for(i nt i=1; i<=N; i+)for(int j=1; j<=N; j+)sca nf("%d", &Vij);printf("n请输入报文分组平均长度U : n");scan f("%lf", &U);prin tf("n请输入链路总容量 C_sum:n")
14、;scan f("%lf", & C_sum);for(i nt i=1; i<=N; i+)for(int j=1; jv=N; j+)addnk(i , j, Rij);prin tf("n平均流量矩阵为:n");for(i nt i=1; i<=N; i+) for(i nt j=1; jv=N; j+) pri ntf("%-5d " , namdaij);prin tf("n");double alpha = cal_alpha();prin tf("nalpha = %fn
15、" , alpha);for(int i=1; i<=N; i+)for(int j=1; j<=N; j+)if(Aij) Ci j= ( sqrt(U / alpha) + namdaij) / U ;Ti j= 1.0 / ( U*Cij - namdaij);double fans = 0;for(i nt i=1; i<=N; i+)for(int j=1; jv=N; j+) if(Aij) fans += n amdaij / ( U * Ci j - namdai j);pri ntf("f = %fn" , fan s);pri
16、n tf("n");printf("个链路的最佳容量分配为:n");for(i nt i=1; i<=N; i+) for(int j=1; j<=N; j+)if(!Aij) pri ntf("-");else printf(%10.3f", Cij);prin tf("n");prin tf("n");printf("个链路的平均延时为:n");for(i nt i=1; i<=N; i+) for(int j=1; jv=N; j+)if(A
17、ij) pri ntf("%-10.5f", Tij); else printf("");prin tf("n");prin tf("n");return 0;/按流量比例分配方法#in clude <iostream>#in clude <cstri ng>#in clude <stdio.h>#in clude <math.h>#i nclude <algorithm> using n amespace std ;const int MAXN = 10
18、 ;int N ;intAMAXNMAXN,RMAXNMAXN,VMAXNMAXN, namdaMAXNMAXN double C_sum ,U, CMAXNMAXN , TMAXNMAXN;void add_li nk(i nt u , int t , int val) if(u = t) return ;int next = Vut;n amdau next += val;add_li nk(n ext , t , val);int mai n()printf("n请输入节点数 N : n");scan f("%d", &N);printf(
19、"n请输入邻接矩阵 A : n");for(i nt i=1; i<=N; i+)for(int j=1; jv=N; j+)sea nf("%d", &Aij);printf("n请输入端对端的信息量 R: n");for(i nt i=1; i<=N; i+)for(int j=1; j<=N; j+)sca nf("%d", & Rij);printf("n请输入路由 V: n");for(i nt i=1; i<=N; i+)for(int j=1
20、; j<=N; j+)sca nf("%d", &Vij);printf("n请输入报文分组平均长度U : n");scan f("%lf", &U);prin tf("n请输入链路总容量 C_sum:n");scan f("%lf", & C_sum);for(i nt i=1; i<=N; i+)for(int j=1; j<=N; j+)add_li nk(i , j, Rij);prin tf("n平均流量矩阵为:n");fo
21、r(i nt i=1; i<=N; i+) for(i nt j=1; jv=N; j+) pri ntf("%-5d " , namdaij);prin tf("n");double n amda_sum =0 ;for(i nt i=1; i<=N; i+)for(int j=1; j<=N; j+)n amda_sum += n amdai j;double k = C_sum / n amda_sum ;pr in tf("k = %.2fn" , k);for(int i=1; i<=N; i+)fo
22、r(int j=1; j<=N; j+)Cij=k * namdaij;if(Aij) Tij= 1.0 / ( (U*k - 1.0)* namdaij);double fans = 0;for(i nt i=1; i<=N; i+)for(int j=1; jv=N; j+) if(Aij) fans += namdai j / ( U * Ci j - namdai j);pri ntf("f = %fn" , fan s);pri ntf("n");printf("个链路的最佳容量分配为:n");for(i nt
23、i=1; i<=N; i+) for(int j=1; jv=N; j+)if(!Aij) pri ntf("");else prin tf("%-10.3f", Cij);prin tf("n");pri ntf("n");printf("个链路的平均延时为:n");for(i nt i=1; i<=N; i+) for(int j=1; jv=N; j+)if(Aij) pri ntf("%-10.5f", Tij); else printf("&q
24、uot;);prin tf("n");prin tf("n");return 0;5. 测试数据及其结果多元函数求极值方法的结果:1 D:AC Mcode2015xingxingwangbinDebugxin,0100101010010101100 01 00I10 100 In1 o11(I橋输人扁对端的信WR:0 9 4 174 2 463 0 ? 3 24 $ 0 3 3 U $ 0 S7 2 3 5 B4 4 2 4 50 22255109606t 20455SCS036163306惰输入报文分组平旳长度U:5l1400121200609800c
25、0000140 ID08130时h& = 0.000123 f = 0,065070金前路的最住咨里分酉珑:3.1303.1273.1273_1203.12?3.123<J.12S3.1273.12G 3.1258.1203.122gj22 31289.1223 J90个阴的平均延时为:0.00040U血啊0.00040Looooo |:| .00CI400.000400.000400,90040a.900400,000400.CQ04O0.OUO4O0.000400.000400JOO4O0,00040 D:ACMcode2015xingxingw3ngbirADQbugxi门.0 3 4 17 4 19 0 8 3 2 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年小学实验室实验人员培训合同协议
- 5年(2021-2025)河北高考政治真题分类汇编专题11 世界多极化与经济全球化(原卷版)
- 北师大版高中数学选修1 第1章 2.2 圆的一般方程 同步练习(含答案)
- 2026年山东德州市高三二模高考历史试卷试题(含答案详解)
- 铜川市教师招聘考试题库及答案
- 铁岭市护士招聘考试题库及答案
- 天水市教师招聘考试题库及答案
- 绥化市教师招聘考试题库及答案
- 公务员申论试题及答案
- 家庭法试卷及答案
- 新版电力重大事故隐患判定标准及治理监督管理规定解读
- 2026年北京市门头沟区街道办人员招聘笔试备考试题及答案解析
- 2026年学校防范非法宗教势力渗透工作机制
- 2026年成都市金牛区街道办人员招聘考试参考试题及答案解析
- 2026年四川省成都市网格员招聘笔试模拟试题及答案解析
- 2025年四川农信(农商行)社会招聘试题及答案解析
- 2026年水利水电二级建造师继续教育通关试题库含完整答案详解【夺冠】
- 2026福州首邑产业投资集团有限公司第一次招聘19人笔试参考题库及答案解析
- 2026年校园食品安全培训试题及答案
- 建设项目提级论证方案
- 教科版六年级科学下册期中综合素养测试卷
评论
0/150
提交评论