2 u013994781 u013994781 于 2015.07.14 12:21 提问

JAVA实现距离矢量算法 20C

1.编程实现右图所示简单网络拓扑的距离向量路由算法。
1.1 结点之间的连接关系固定;
1.2 链路开销可以由用户设定。
2.距离向量算法的实现方式:
2.1 可以利用多线程机制;每个结点一个
线程;每隔一段事件利用线程间通信
机制传递距离向量(DV);或是
2.2 每个结点利用单独的进程实现;每隔一
段时间利用Socket实现结点间的距离向量交换;
2.3 距离向量的计算与结点路由表的显示。
3.网络拓扑结构的描述(数据结构),拓扑结构利用文件存储。
4.结点初始化流程/消息传递与路由计算/节点路由表显示等的程序设计

我总共有40个金币,做出来了,我都给你,求大牛

3个回答

frank_20080215
frank_20080215   2015.07.14 13:13

public class LD {

/**
* 计算矢量距离
* Levenshtein Distance(LD)

* @param str1 str1
* @param str2 str2
* @return ld
*/
public int ld(String str1, String str2)

{

//Distance

int [][] d;

int n = str1.length();

int m = str2.length();

int i; //iterate str1

int j; //iterate str2

char ch1; //str1

char ch2; //str2

int temp;

if (n == 0)

{

return m;

}

if (m == 0)

{

return n;

}

d = new int[n + 1][m + 1];

for (i = 0; i <= n; i++)

{ d[i][0] = i;

}

for (j = 0; j <= m; j++)

{

d[0][j] = j;

}

for (i = 1; i <= n; i++)

{

ch1 = str1.charAt(i - 1);

//match str2

for (j = 1; j <= m; j++)

{

ch2 = str2.charAt(j - 1);

if (ch1 == ch2)

{

temp = 0;

}

else
{

temp = 1;

}

            d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + temp);  
        }  
    }  
    return d[n][m];  
}  

private int min(int one, int two, int three)  
{  
    int min = one;  
    if (two < min)  
    {  
        min = two;  
    }  
    if (three < min)  
    {  
        min = three;  
    }  
    return min;  
}  

/** 
 * 计算相似度 
 * @param str1 str1 
 * @param str2 str2 
 * @return sim   
 */ 
public double sim(String str1, String str2)  
{  
    int ld = ld(str1, str2);  
    return 1 - (double) ld / Math.max(str1.length(), str2.length());  
}  

/** 
 * 测试 
 * @param args 
 */ 
public static void main(String[] args)  
{  
    LD ld = new LD();  
    double num = ld.ld("人民", "中国人民是人才");  
    System.out.println(num);  
}

}

tongyi55555
tongyi55555   2015.07.14 12:42

这个。。。看起来好复杂,查了下资料没有找到实现过的。

CSDNXIAON
CSDNXIAON   2015.07.16 15:27

编辑距离算法的java实现
最小编辑距离算法JAVA实现
JAVA:距离后方交会算法GUI实现
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
距离矢量路由算法实验
计算机网络实验:///Distance Vector routing #include<iostream> #include<cstring> #include<string> #include<vector> #include<algorithm> #include<cstdio> #include<map> #include<set> #include<cmath> #include<cctyp
计算机网络1-距离矢量路由算法模拟
距离矢量路由算法实验 一、实验要求   网络拓扑图   实验过程描述 1、将上面的网络拓扑图保存待用 例如,可用二维数组保存,数组下标或索引可隐含表示网络节点。数组元素保存网络拓扑图边上的权值 2、为每个网络节点初始化并保存一张路由表 例如,可以用单链表表示一个网络节点的路由表,单链表的每个结点存储一个表项信息;表项信息是一个三元组(目的节点,下一跳,开销),可用结构体表示。
java实现基于距离向量算法 路由协议
算法就不多说了,该程序实现的功能:首先你要将网络结构转化成邻接矩阵,每个路由器对应一行,若路由器m与网络n直接相连,则m行n列为1,否则为0 该程序的路由器和网络都从0开始编号 首先创建Table类,代表路由器的路由表 public class Table { public int hostId;//哪个路由器的路由表 public int netId;//目的网络的id
网络层—距离矢量算法
本文主要介绍距离矢量路由(distance vector routing)算法,也可以叫做Bellman-Ford路由算法(这是根据设计者的名字来命名的),该算法应用于很多网络协议中,例如著名的RIP。 距离矢量算法(我们简称它为DV,而链路路由算法我们简称为LS)是一种迭代的、异步的、分布式的算法。首先,说它是迭代的,是因为这个过程一直要持续到邻居之间没有更多信息需要交换为止。其次,说它是异步
距离向量路由算法的Java模拟
实验内容与实现原理; 实验内容:模拟距离向量路由算法的路由表交换过程,演示每轮交换后路由表的变化。基本要求(动态生成网络拓扑图,节点间的距离随机生成。从初始路由表开始,进行交换路由表,演示每轮交换后的路由表的变化。观察和讨论多少轮交换后路由表稳定)。 实现原理:初始时设定站点个数,每一个站点附带一个表格来记录其余的站点以及距离,并用随机数产生站点之间距离记入表格(产生距离是要考虑到是否相邻的情况
距离矢量路由算法
该代码用C语言实现了最短路由算法,简单明了。
C#实现的 路由 距离矢量算法
压缩包内包含完整程序、使用说明、实验报告 1.关与距离 本程序使用8作为路由投递的最大距离,通过吧距离设为8作为路由不可达的标志。 2.关于路由回路 本程序同时采用了水平分割,毒性转换,和抑制时间来避免路由回路的产生。即不再想X发送从X处学得的路由信息;把到故障路由的距离设置为最大值8,表示不可达;不接受除故障路由外的其它路由发来的故障路由恢复的信息。 3.程序操作指令说明: 1.N 动态输出路由器的邻居路由 2.T 动态打印路由器的路由表 3.0~9 转发分组。注:本程序设置TTL=2 4.R X(注:此处R与X之间必须加空格) 路由器拒绝包含X的路由更新信息 5.r X(同上) 路由器恢复接收包含X的路由更新信息 6.“路由中止”和“路由恢复”按钮 用来使路由器停止或恢复发送路由表
点到线段的最短距离——矢量法
最近在看recast&amp;amp;detour源码的时候有遇到许多数学上的算法问题,特此记录,以便以后查看。矢量法推导: 求点P到线段AB的最短距离。分成以下三种情况(a),(b),(c)。所以可以先根据计算出r的值,进而对应计算A点 B点  C点 和 P点之间的距离即可。特殊情况:当P在线段AB上:计算出来r仍然是 1&amp;gt;r&amp;gt;0, P点即C点,PC的距离d = 0; 当P在线段AB端点或其...
距离矢量与链路状态的区别
一、PK第一番 距离矢量: 运行距离矢量路由协议的路由器,会将所有它知道的路由信息与邻居共享,但是只与直连邻居共享! 链路状态: 运行链路状态路由协议的路由器,只将它所直连的链路状态与邻居共享,这个邻居是指一个域内(domain),或一个区域内(area)的所有路由器! 二、PK第二番 所有距离矢量路由协议均使用Bellman-Ford(Ford-Fulkerson)算法,容易产生路由
距离矢量算法简介
转载自http://blog.sina.com.cn/s/blog_635e1a9e0100z41v.html 距离矢量路由选择(Vector-Distance)算法发送完整的路由选择表到相邻的路由器使用,相邻的路由器会将接收到的路由表项与自己原有的路由表进行组合,以完善路由表。 传言路由:使用距离矢量路由选择算法时,由于路由器收到的更新只是来自相邻路由器对于远程网络的确认信息,它并没