网络节点激活的什么的无参考价值代码

rick    2018-11-22 21:52

刚才例会听不知道谁说了节点以一定概率向邻居节点发送激活信号,挺感兴趣,写了demo

函数jihuo以递归方式输送信号,这里没有卡递归层数,如果网络太大会崩溃,但是每次概率p会自乘,意味初始概率是0.5的话,下一层传播概率是0.25,越来越小,目前跑代码还没有崩溃,但是层数太高真的会崩。若随机数在范围内则进行激活下个邻居节点,代码如下:

import os

import networkx as nx
import random

from util.graphDealer import load_graph_gml


def jihuo(G, node, percent, res_dic):
    percent *= percent
    res_dic[node] += 1
    for nei in nx.neighbors(G, node):
        if random.random() < percent:
            jihuo(G, nei, percent, res_dic)

if __name__ == '__main__':
    dataSetList = os.listdir('../network/gml/')
    dataSetDict = {}
    dataSetId = 1
    for dataSet in dataSetList:
        dataSetDict[dataSetId] = dataSet
        dataSetId += 1
    print(dataSetDict)
    for item in dataSetDict:
        print("%s: %s" % (str(item), dataSetDict[item]))
    gId = input("输入划分名单序号:")

    G = load_graph_gml('../network/gml/%s' % dataSetDict[int(gId)])
    G.graph['title'] = dataSetDict[int(gId)].split('.')[0]

    res = {}
    for i in G.nodes():
        res[i] = 0
    p = 0.5
    for n in G.nodes():
        jihuo(G, n, p, res)

    sorted(res.items(), key=lambda x: x[1], reverse=True)
    for r in res:
        print(r, res[r])

对网络中所有节点进行随机激活可以得到如下数据,这里针对冰与火之歌网络仅进行了一次实验,没有代表性

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
 book1book2book3book4book5book45all
Eddard-Stark33Joffrey-Baratheon27Joffrey-Baratheon34Cersei-Lannister23Daenerys-Targaryen27Jon-Snow33Jaime-Lannister68
Tyrion-Lannister31Tyrion-Lannister24Tyrion-Lannister27Jaime-Lannister22Jon-Snow21Daenerys-Targaryen29Tyrion-Lannister67
Cersei-Lannister31Cersei-Lannister21Jon-Snow25Tyrion-Lannister19Tyrion-Lannister18Cersei-Lannister28Stannis-Baratheon66
Robert-Baratheon30Catelyn-Stark21Catelyn-Stark24Sansa-Stark14Stannis-Baratheon17Sansa-Stark21Jon-Snow63
Joffrey-Baratheon22Renly-Baratheon21Sansa-Stark22Tommen-Baratheon14Theon-Greyjoy15Stannis-Baratheon21Cersei-Lannister63
Robb-Stark22Stannis-Baratheon20Tywin-Lannister21Margaery-Tyrell11Cersei-Lannister14Tyrion-Lannister21Joffrey-Baratheon59
Jon-Snow21Sansa-Stark18Arya-Stark20Gregor-Clegane11Hizdahr-zo-Loraq12Theon-Greyjoy20Robert-Baratheon57
Petyr-Baelish20Eddard-Stark17Robert-Baratheon19Stannis-Baratheon11Tywin-Lannister12Jaime-Lannister19Catelyn-Stark54
Benjen-Stark18Robb-Stark17Cersei-Lannister18Samwell-Tarly10Selyse-Florent12Tommen-Baratheon18Sansa-Stark53
Catelyn-Stark18Arya-Stark16Robb-Stark18Brienne-of-Tarth10Aegon-Targaryen11Irri16Robb-Stark50

分析数据可以看出来,在纯随机情况下,一些重要人物的排名的确高于其他角色

前两部robb还没凉的时候排名还可以,四五robb凉了就没了,心疼

Views: 1.5K

[[total]] comments

Post your comment
  1. [[item.time]]
    [[item.user.username]] [[item.floor]]Floor
  2. Click to load more...
  3. Post your comment