R语言-关键节点问题-方案一
来源:互联网 发布:锐捷mac地址绑定错误 编辑:程序博客网 时间:2024/05/01 23:42
问题说明:社交网络以及其他各种各样的网络,在社会经济、自然科学等领域中发挥着越来越大的作用,而其中一个很核心的问题是了解一个节点在网络中发挥的作用。比如SARS的传播,可能香港一个超级传播者带来的影响比其他100甚至1000个人还多;一条谣言的传播,一个核心大号的转发可能带来巨大的影响。
因此需要我们有一种能力,可以从生物的大规模基因调控网络中,找到导致疾病的重要基因;从大规模的社交网络中,找到传播谣言/疾病的最重要的节点;从大规模的企业投资关系网络中,找到可能导致金融风险的重要企业。
因此需要我们有一种能力,可以从生物的大规模基因调控网络中,找到导致疾病的重要基因;从大规模的社交网络中,找到传播谣言/疾病的最重要的节点;从大规模的企业投资关系网络中,找到可能导致金融风险的重要企业。
这些零零总总都可以划归为一类问题:如何寻找网络中的关键节点,这实际上是从现在到未来最有可能导致商业模式革新的一个重要方向。这个问题,也叫做复杂网络最优渗流,是网络科学领域的一个经典问题。本次大赛聚焦于此,邀请国内外ABM学者合作指导,以期获得精准的算法结果和优美的解决方案。
方案说明:由于是无向图,无法使用PageRank和HITS算法。先按照结点权重,无脑排序。
R语言实现:
library(RMySQL) # 载入RMySQL包conn <- dbConnect(MySQL(),dbname = "NETWORKS",username = "root") # 建立数据库连接dbSendQuery(conn, "SET @@sql_mode=ANSI;") # 启动非严格模式dbSendQuery(conn, "SET NAMES GBK") # win7环境下如果汉字乱码,就运行这条命令res <- dbSendQuery(conn, "SELECT * FROM NODEWeight1")dat <- dbFetch(res, n=-1) #n=-1表示取所有数据,n=2表示取2条数据res1 <- dbSendQuery(conn, "SELECT * FROM NODEMap1")dat1 <- dbFetch(res1, n=-1) #n=-1表示取所有数据,n=2表示取2条数据output = data.frame(nodeID = 0,Weight = 0,seq = 0) #建立空的输出序列output = output[-1,] #清空数据for (i in 1:nrow(dat)) { print(Sys.time()) node_del <- dat[which.max(dat$Weight),1] #权重最大的结点编号,只会输出一个 node_rel <- dat1[which(dat1$nodeID1==node_del),2] #node_del相连接的结点 dat[dat$nodeID==node_del,] <- c(node_del,0,i) #权重置0 for (j in 1:length(node_rel)) { n <- which(dat$nodeID==node_rel[j]) dat$Weight[n] <- dat$Weight[n] -1 #关联结点权重-1 效率不高 } dat1 <- dat1[-which(dat1$nodeID1==node_del),] #删除node_del的数据 dat1 <- dat1[-which(dat1$nodeID2==node_del),] #删除连接node_del的数据 output[i,] <- c(node_del,length(node_rel),i) #输出node_del结点信息 print(output[i,]) #页面输出 if (i%%500 == 0) #每500个结点保存一次文件 { file.path <- paste("E:/PACT-上海/私の稿/比赛/大师赛-挖掘复杂网络中的关键节点/方案一/output_",i,".csv",sep="") write.table(output,file.path, col.names=T,row.names = F, quote = F, sep=",") } }
阅读全文
0 0
- R语言-关键节点问题-方案一
- R语言-关键节点问题-方案二
- R语言-关键节点问题-方案三
- R语言-关键节点问题-方案四-K-shell分解法
- R语言问题——连接数据库乱码问题解决方案
- R语言学习(一)
- R语言数据处理(一)
- R语言学习(一)
- R语言体验一
- R语言笔记一
- R语言学习一
- R语言数据处理之缺失数据问题(一)
- R语言seed问题
- R 语言乱码问题
- 【R语言】问题处理
- R语言编码问题
- R语言for循环的替换方案
- R语言因子分析(一)
- 转自百度百科,strncpy函数
- redis 单实例
- 【笔记】微信头条app全栈中html相关处理
- d指针在QT上应用及实现
- debug.keystore文件不存在解决办法
- R语言-关键节点问题-方案一
- Intersection (hdu-5120)
- SAPUI5 (40)
- Log4Net使用时间作为日志文件路径
- 安卓中获取EditText中输入的内容
- Android下的指纹识别及登陆
- 错误中学习--a different object with the same identifier value was already associated with the session
- github:把你的项目给我保管吧!
- Xcode 7 App Transport Security has blocked a cleartext HTTP 报错解决办法