精华内容
下载资源
问答
  • 针对该问题,提出了一种基于预测的邻居节点选择算法.描述了基于虚拟直播频道的点播系统覆盖网构建方式,将系统中的节点通过DHT协议的方式组织起来.提出了一种基于用户行为的学习预测策略模型,根据该模型预测结果提前...
  • 针对当前流媒体系统用户行为研究缺少单一节点角度的长期行为特性分析及利用的问题,提出一种P2P流媒体邻居节点组织与行为预测策略(POPP).该策略基于流媒体系统中节点长程行为的互相关及自相关特性,通过在数据交互中...
  • 文件污染是对等网络共享系统普遍存在的问题,一个好的邻居节点选择方案可以有效抑制污染文件的传播。设计了基于免疫学习的投票相似度计算方法和邻居节点选择方案,并采用自适应的阈值判断文件的可信性。仿真实验表明...
  • 基于最近共享邻居节点的K-means聚类算法.pdf
  • 针对该问题,提出了一种基于预测的邻居节点选择算法。描述了基于虚拟直播频道的点播系统覆盖网构建方式,将系统中的节点通过DHT协议的方式组织起来。提出了一种基于用户行为的学习预测策略模型,根据该模型预测结果...
  • 针对基于IEEE 802.11p的车载自组织网络(VANET)中控制信道上周期性广播的可扩展性问题,提出了一种基于邻居节点估计的最小竞争窗口调整算法。首先,在IEEE 802.11广播退避的马尔可夫模型的基础上,以最小化碰撞概率...
  • 基于社会属性的CDN-P2P系统的邻居节点选择算法,李建强,张玉洁,在基于社会属性的CDN-P2P系统中,节点被分配到边缘服务器之后,会在组织而成的P2P子网中选择邻居节点邻居节点选择算法对整体吞吐��
  • 为了提高网络效率和节省网络整体能耗,提出了一种路由选择优化算法,该算法利用没连接到的邻居节点进行数据路由选择,以减少从源节点到目的节点的跳数,进而达到提高网络效率和节省能耗的目的.通过仿真实验对比分析了...
  • 针对移动Ad hoc网络传统重传机制存在的局限性, 提出了一种新的重传控制算法EX-TCGM, 利用传输路径上的邻居节点传输丢失的数据包, 使得路由上的任何节点都能够重传; 并从理论上对该算法的有效性进行了分析。通过仿真,...
  • 在Ad hoc网络贪婪地理路由协议中,传统的邻居节点表自适应构建与维护采用周期性信标交换算法,在移动环境下会导致通信暂盲现象。在分析节点移动对网络连通性影响的基础上,提出一种基于链路断开概率的自适应信标交换...
  • 为改善传统MHR网络的性能,提出一种高效可靠的最小跳数路由无线传感器网络模型MHR-ER,在MHR网络的基础上,通过提取网络梯度化邻居节点信息作为路由精细化控制的依据,通过限制最小跳数梯度场梯度层次宽度以保证数据...
  • 在无线传感器网络中,应用概率洪泛路由时,每个传感器节点收发信息具有随机性,在合理假设下,将网络中信息传输过程建立为一个分支过程模型,利用分支消亡概率和节点产生后代概率的关系,给出一种基于邻居节点数目的...
  • 针对移动Ad hoc网络传统重传机制存在的局限性, 提出了一种新的重传控制算法EX-TCGM, 利用传输路径上的邻居节点传输丢失的数据包, 使得路由上的任何节点都能够重传; 并从理论上对该算法的有效性进行了分析。通过仿真,...
  • NS2之移动节点邻居节点发现

    千次阅读 2011-12-10 19:54:15
    移动节点的邻居节点的发现函数实现如下: //You can use the following methods to discover neighbors: //1. Use Hello Packets for *neighbor* discovery. //2. Use Communication range for neighbour ...

    移动节点的邻居节点的发现函数实现如下:

    //You can use the following methods to discover neighbors:
    //1. Use Hello Packets for *neighbor* discovery.
    //2. Use Communication range for neighbour discovery.
    //3. Use Nodes Positions for *neighbor* discovery.
    
    void Node::addNeighbor(Node * neighbor) {
    
    int flag=0;
    neighbor_list_node* my_neighbor_list;
    my_neighbor_list=neighbor_
    list_;
    //cout <<"MMMMM"<<my_neighbor_list->
    nodeid<<endl;
    //return;
    
       while(my_neighbor_list)
        {
            if(my_neighbor_list->nodeid == neighbor->nodeid())
            {
            flag = 1;
        break;
            }
            else
            {
            my_neighbor_list=my_neighbor_list->next;
            }
        }
    
    
    //cout<<"MMM "<<my_neighbor_list->nodeid<<endl;
        if(flag == 1)
        {
           //neighbour already exist do nothing
        }
        else
        {
           neighbor_list_node* nlistItem = (neighbor_list_node
    *)malloc(sizeof(neighbor_list_node));
        nlistItem->nodeid = neighbor->nodeid();
        nlistItem->next = neighbor_list_;
        neighbor_list_=nlistItem;
        }
    
    
    
    }
    
    
    //After that you can easily get access to any node's neighbor list by creating
    //its object and calling its neighbor list.
    
    Node* m_node = Node::get_node_by_address(this->addr());
    neighbor_list_node* my_mobile_neighbor_list;
    my_mobile_neighbor_list = m_node->neighbor_list_;
    
                    while(my_mobile_neighbor_list)
                                {
                                cout<<"## Mubashir Neighbor ID:"<<my_mobile_neighbor_list->nodeid<<endl;
                    my_mobile_neighbor_list=my_mobile_neighbor_list->next;
                    }
    
    cout<<"node id : " <<put here node id<<" Mubashir Neighbor list contains ID:"<<my_mobile_neighbor_list-> nodeid<<endl;
    
    


     

    展开全文
  • 然后实现输入节点号,输出它的邻居节点。以及输入两个节点ID号,判断他们是否直接相连。分布解析这个题目要求。1、先读取txt文件中的数据,用ArrayList&lt;Integer[]&gt;将每一行数据存储下来。然后给这些...

    具体描述:txt文件中存储n个节点直接的联系,形如1,2表示节点1和节点2直接联系,或者说他们是邻居。有很多组这样的数据,要求将这些节点读出来进行存储。然后实现输入节点号,输出它的邻居节点。以及输入两个节点ID号,判断他们是否直接相连。

    分布解析这个题目要求。1、先读取txt文件中的数据,用ArrayList<Integer[]>将每一行数据存储下来。然后给这些数据构建数据关系。去读这个ArrayList中的数据,我们要根据节点的ID号去找它的邻居。根据关键字去找指定的数据。在Java中可以使用HashMap<Key, Value>这样的存储结构来存储。将每个节点的ID号当作Key,它的邻居节点组当作Value,但是考虑到这个节点的邻居有多个,所以我们使用HashSet进行存储。即存储数据的结构可认为是:HashMap<Integer, HashSet<Integer>>。

    参考代码如下:

    public static HashMap<Integer, HashSet<Integer>> 
    	                      getRelationMap(ArrayList<Integer[]> dataList){
    		
    		HashMap<Integer, HashSet<Integer>>  relationMap =
    				new HashMap<Integer, HashSet<Integer>>();
    		int i = 0;
    		Integer[] intArray = null;
    		Integer nodeID1 = 0;
    		Integer nodeID2 = 0;
    		for(i = 0; i < dataList.size(); i ++) {
    			intArray = dataList.get(i);
    			nodeID1 = intArray[0];
    			nodeID2 = intArray[1];
    			constructRelationMap(relationMap, nodeID1, nodeID2);
    			constructRelationMap(relationMap, nodeID2, nodeID1);
    		}
    		return relationMap;
    	}
    	private static void 
    	constructRelationMap(HashMap<Integer, HashSet<Integer>>  relationMap,
    			Integer nodeID1, Integer nodeID2) {
    		HashSet<Integer> tmpSet = null;
    		if(!relationMap.containsKey(nodeID1)) {
    			tmpSet = new HashSet<Integer>();
    			tmpSet.add(nodeID2);
    			relationMap.put(nodeID1, tmpSet);
    		}else {
    			tmpSet = relationMap.get(nodeID1);
    			tmpSet.add(nodeID2);
    		}
    	}
    	public static ArrayList<Integer[]> getData(String fileName) throws IOException{
    		ArrayList<Integer[]> dataList = new ArrayList<Integer[]>();
    		File file = new File(fileName);
    		BufferedReader reader = new BufferedReader(new FileReader(file));
    		String tempString = null;
    		String[] strArray = null;
    		Integer[] intArray = null;
    		while ((tempString = reader.readLine()) != null) {
    			strArray = tempString.split(",");
    			intArray = new Integer[]{Integer.parseInt(strArray[0]),
    					Integer.parseInt(strArray[1])};
    			dataList.add(intArray);
    		}
    		reader.close();
    		return dataList;
    	}

    2、实现要求的两个功能,只要根据上面对数据的存储方式,根据HashMap键值对的特征去查找即可。参考代码如下:

    private static void getNeighbors(HashMap<Integer, HashSet<Integer>> relationMap,
    			Integer nodeID1) {
    		System.out.print(nodeID1 + "'s neighbors are:");
    		HashSet<Integer> myset = relationMap.get(nodeID1);
    		Iterator<Integer> it = myset.iterator();
    		Integer neighborID = 0;
    		while(it.hasNext()) {
    			neighborID = it.next();
    			System.out.print(neighborID + ",");
    		}
    		System.out.println();
    	}
    	
    	public static boolean isNodeConnected(HashMap<Integer, HashSet<Integer>> relationMap,
    			Integer nodeID1, Integer nodeID2) {
    		return relationMap.get(nodeID1).contains(nodeID2);
    	}


    以上就是这篇文章的主要内容。欢迎各位提出意见。让我们一起学习进步!


    展开全文
  • 基于P2P-CDN的流媒体传输系统中的邻居节点选择策略,左启阳,张玉洁,对等网络(Peer to Peer Network)和内容分发网络(Content Distribution Network, CDN)由于其优势互补性,而被越来越多的应用到实际的系统中。...
  • 张蕾老师提的建议,因为现在broadcast获取周围信息不太靠谱,可以在节点内部存储邻居节点的信息,然后进行RTS/CTS的包统计,根据统计结果判断信道信息。 思路: (1)通过在tcl脚本里将节点位置信息设置到节点c++...

    统计RTS/CTS等信息

    因为现在broadcast获取周围信息不太靠谱,可以在节点内部存储邻居节点的信息,然后进行RTS/CTS的包统计,根据统计结果判断信道信息。

    思路:

    (1)通过在tcl脚本里将节点位置信息设置到节点c++节点内部的数组之中;


    (2)通过存储的邻居节点可以初步确定选择哪个节点作为下一跳,就可以使用基于握手的mac协议了。

    需要解决的问题:

    (1)如何将节点信息设置进去;

    (2)运行时如何选择节点;

    (3)如何统计各节点的不同状态信息;

    modified HH-VBF 协议
    1、为每个节点增加局部路由表数据结构。
    tcl脚本中node数据结构,用传命令的形式输入特殊格式的字符串,然后将这些字符串解析为邻居节点的编号和坐标:

    存储邻居的何种信息?

    在uw-uwaloha.cc中next-hop为节点标号,我们可以通过将邻居节点的位置信息设置进node的存储结构中,然后根据存储结构的信息来选择next-hop。


    2、代码版本管理,一旦出错误可以及时的恢复,实现将underwatersensor目录下的文件放到google-code中进行管理,增加代码版本管理工具.git等文件夹后对编译没有产生影响。


    3、local存储结构已经搞定,接下来要在选路时利用这个信息进行辅助。

    如果要使用这些节点进行辅助的话,那么首先应该负责选路。

    首先由UWSinkAgent负责发送数据,在sendpkt中会对数据进行组装,在这里要弄清楚哪些数据是在UWAloha中要用到的。

    UWSinkAgent中的ActiveSense参数用于更新位置。

    VectorBasedForward:

    vbf_neighborhood *hashPtr= PktTable.GetHash(vbh->sender_id, vbh->pk_num);

    这句代码是干什么的?是否接受到过这个包。下边的:

     PktTable.put_in_hash(vbh,p1);
    也就是说PktTable是用来存放已接收到过来自特定节点的包。vbh->sender_id和vbh->pk_num

    VBF事实上还是可以针对不同的包类型作出反应的,包括DATA、INTEREST等

    判断出该包是我自己发的,那么首先MACprepare,然后MACSend,是否进行broadcast决定于pkt上携带的信息:

    hdr_cmn* cmh = HDR_CMN(pkt);
    cmh->next_hop() = MAC_BROADCAST;
    在vectorbasedforward.cc的598~606行,也就说在此设置就能告诉mac进行握手通讯。


    4、在哪里设置下一跳的信息。

    可以在uw_sink.cc中进行设置,能不能直接在vectorbasedforward中进行设置呢?


    5、原来一直让我纠结的attach-vectorbasedforward是tcl函数,在ns-2.30目录下的tcl/lib/ns-agent.tcl中

    Agent/UWSink instproc attach-vectorbasedforward {w1}{
       $self instvar node_     //引用self的c++变量node_
       set rt [$node_ set ragent_]   //获得node的ragent变量
       $rt on-node $node_
       $self on-node $node_
       $rt port-dmux $self
       $rt set width $w1
       set entrance [$node_ entry]
       $self attach-rt-agent $entrance
    }
    

    仅从这个代码中并不能看出来如何将vbf和agent进行绑定的,因此可以直接在vbf中进行验证就好了。

    我们设置了$node_(0)的neibors为node1,但是在vbf中通过node并不能访问到该set,难道说明两者并无直接关系?

    那就需要在UWSinkAgent中创建包时就要将next_hop算出来。数据包到5这就传不过去了,为啥传不过去了?

    在tcl中并没有提供对vbf变量初始化的接口,目前的方法是通过对node进行初始化,让vbf能够访问到node,从而在vbf进行判断确定包的下一条,问题是为啥最后在vbf中还是无法访问呢? 

    sinkStatus_竟然为1,而不是我所设置的和node_id相同。

    UWSinkAgent中也有对UnderwaterSensorNode的引用,测试在UWSinkAgent中能否获得neighbor_nodes中的数据。

    奇怪的是,虽然UWSinkAnget也保持对node的引用,但是同样获得不到neighbor_nodes的数据,但是其他基本数据还是能活得到的。

    tcl中先初始化$node_(0)的数据,然后set rt [$node_(0) set ragent_]设置node的ragent_变量,然后new出UWSink,然后attach-agent将$a_(0) attach到$node_(0)上,这个过程应该同样能保证将$a_(0)中的node数据设为对$node_(0)的引用。

    同样是设置数据X_,Y_,Z_就设置成功了,但是为啥neibor_nodes就无法设置成功呢?关键是怎么找出原因

    调试确定设置next_hop是否成功,在vbf中已经成功设置了next_hop,但是现在的问题是在mac的uwaloha中并未正确获取到next_hop()的值。

    可能是设置的range的值较大,导致node5发送的数据node1,2,3,4都收到了。

    在uwaloha中的TxProcess中的pkt并不是我在vbf中设置的那个包,因为next_hop_的值并不符合,那怎样才让它就是我设置的数据呢?

    这里需要跟踪一下包数据了。需要在vbf的time_out中判断数据next_hop_是否正确。

    uwaloha之所以不用经过timeout是因为,node.from_id = node_id,直接就转发了,但是uwaloha中的next_hop()为什么还是-1?

    果不其然,在MACprepare中故意设置成MAC_BROADCAST了


        // printf("vectorbased: the mac_Broadcast is:%d\n",MAC_BROADCAST);
        cmh->next_hop() = MAC_BROADCAST;
    
    在channel层计算出受影响的节点,然后将这些节点都设置了延迟,在特定的时间醒来即收到包了。
    出现RECV-SEND Collision!!!!!。

    目前存在最大的问题,已经为packet设置了next_hop_,uwaloha也判断出了有next_hop,进入等待ack的状态,channel层还是按照老方法getAffectedNodes,然后受影响的节点都会接收到该包。

    这是个问题,也是个改进:

    (1)如果在发送节点已经计算出next_hop了,affectedNodes如果检查next_hop并不是自己身的话,那么可以直接忽略了,而检查是自身的节点无需计算,可以直接转发了。





    展开全文
  • 考虑到邻居节点间的相互影响,通过定义三个传播概率函数,对SDIR模型作了改进,得到了更加符合社交网络特点的传播模型。对比不同条件下信息传播的过程,实验证明了信息不能覆盖全网络,Twitter比新浪微博有更好的...
  • 该策略基于流媒体系统中节点长程行为的互相关及自相关特性,通过在数据交互中收集其他节点的在线、延迟及带宽信息来计算部居节点的综合可用性,维护能够为自身提供优质服务的潜在部居节点表,并通过基于马氏链的节点...
  • #资源达人分享计划#
  • 提出了一种新的多维序列模式挖掘算法,首先在序列信息中挖掘序列模式,然后针对每个序列模式,在包含此模式的所有元组中的多维信息中挖掘频繁1-项集,由得到的频繁1-项集开始,循环的由频繁(k-1)-项集(k>1)连接...
  • import networkx as nx G = nx.DiGraph() # 创建有向图 G.add_edge(1, 2, weight=1) # 添加 带权边,weight表示边权 G.add_edge(1, 3, weight=1) ...for nbr, value in G.adj[1].items(): # 枚举邻居 print(n
    import networkx as nx 
    
    G = nx.DiGraph() # 创建有向图
    
    G.add_edge(1, 2, weight=1)  # 添加 带权边,weight表示边权
    G.add_edge(1, 3, weight=1)
    G.add_edge(3, 1, weight=1)
    G.add_edge(2, 4, weight=1)
    
    print(G[1]) # 邻居的dict
    for nbr, value in G.adj[1].items(): # 枚举邻居
        print(nbr, value, value['weight'])
    print('*' * 20)
    
    for nbr, value in G[2].items(): # 枚举邻居,G[2]与G.adj[2]效果相同
        print(nbr, value, value['weight'])
    

    参考12


    1. https://networkx.org/documentation/stable/reference/classes/generated/networkx.Graph.adj.html?highlight=adj ↩︎

    2. https://networkx.org/documentation/stable/reference/classes/digraph.html ↩︎

    展开全文
  • AODV获取所有的邻居节点ID方法

    千次阅读 2010-12-20 22:01:00
    void AODV::nb_all() { AODV_Neighbor *nb = nbhead.lh_first; for (; nb; nb = nb->nb_link.le_next) printf("void AODV::nb_all(), %d/n",nb->nb_addr); printf("/n"); }
  • 3. 半监督学习节点分类 传播公式解释 后话 参考文献 本文为GNN教程的第二篇文章 【GCN介绍】,取自Kipf et al. 2017,文章中提出的模型叫Graph Convolutional Network(GCN),个人认为可以看作是图神经网络的...
  • 该算法是在支持向量回归(SVR)算法基础上,引入了邻居节点影响因素(或称邻居节点数据的相关性),采用邻居节点相关性对其数据进行修正,从而实现了对SVR算法的改进,弥补了SVR算法在随机突发事件中预测不够准确的...
  • P2P网络及节点发现机制

    万次阅读 2019-04-13 08:35:11
    2 邻居节点 2.1 NodeTable类主要成员 2.2 邻居节点发现方法 2.3 邻居节点网络拓扑及刷新机制。 1 分布式网络介绍 以太坊底层分布式网络即P2P网络,使用了经典的Kademlia网络,简称kad。 1.1Kad网介绍 ...
  • 邻居节点按距离分类,分析了每类邻居节点的网络覆盖率与活动节点数 k 之间的约束关系,根据.此约束关系判断节点是否冗余,并通过回退机制休眠冗余节点。理论分析和仿真结果表明,该算法能在满足指定覆.盖率的条件...
  • 针对移动导标节点定位中的路径规划问题,提出了一种通过移动导标节点,根据搜集的未知节点多跳信息,从而获得其通信范围内未定位节点的邻居节点数量的方法。利用该方法移动导标就可以向邻居节点数量最多的节点移动,以较...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,688
精华内容 11,475
关键字:

邻居节点