2015年亚太杯APMCM数学建模大赛C题识别网络中的错误连接求解全过程文档及程序

2015年亚太杯APMCM数学建模大赛

C题 识别网络中的错误连接

原题再现

  网络是描述真实系统结构的强大工具——社交网络描述人与人之间的关系,万维网描述网页之间的超链接关系。随着现代技术的发展,我们积累了越来越多的网络数据,但这些数据部分不完整、不准确,有时甚至失真。例如,在生物网络中,一些早期证明的现有基因-基因和蛋白质-蛋白质相互关系被更高精度的新实验推翻。

  本主题将用6个网络的数据来解决生物学、信息和社交网络中的真实网络问题。这些网络的规模从数百个节点到数百万个节点不等。每个网络连接可能是无定向的(例如,推特中的朋友连接),也可能是定向的(如人们在推特中“关注”他人)。在原始真实网络的基础上,我们添加了一些符合以下标准的假连接:(1)假连接的数量不超过连接总数的10%;(2) 错误连接是以完全随机的方式选取的。

  请阅读附录中的信息,并解决以下问题:

  (1) 开发一个数学模型来理解网络的结构和组织机制。不同类型网络的结构特征和组织原则并不总是相同的。

  (2) 提出了一种识别错误连接的有效方法。显示如何发现结构特征的完整性;说明了数学模型的有效性和准确性以及算法的准确性。

  附件

  数据描述

  与该问题相关的网络在表1中编号为1至6。补充信息中给出了数据本身及其如何获得数据的详细描述。

在这里插入图片描述
  对于上述网络中的任何一个,如果错误连接的真实数量是R,则玩家应提交如何以标准格式识别这些R个错误连接(请参阅补充信息以了解提交的标准格式)。如果r个错误连接中的r个在提交中被正确识别,则得分为r/r。玩家在所有6个网络中获得的总分是衡量算法准确性的唯一指标。

整体求解过程概述(摘要)

  本文分析了复杂网络的结构性质,研究了六种网络中错误连接的识别问题。对于这些网络,我们考虑了它们的拓扑结构,并进一步分析了一些特定的特性。

  首先,我们通过绘制网络的视觉图形来对它们进行视觉研究。经过分析,我们发现几乎所有的网络都存在小世界效应、大分支及其程度分布向右倾斜。生物定向网络不服从幂律,其社会分化明显。生物无向网络和有向网络除了服从幂律和具有协调性外,几乎是一样的。信息网络的节点不具有模块性,并且非常分散。两个网络都服从幂律和非关联性。对于社交网络,定向网络服从幂律。无向网络与有向网络几乎相同。然而,它并没有巨大的分支。

  其次,我们发现生物定向网络与食物链具有相似的特征,生物无定向网络与生物器官相似。对于这两种网络,我们都使用入度和出度以及公共邻居相似性来识别错误连接。结果表明,生物定向网络的精度为0.364,无定向网络的准确度为0.226。信息导向网络类似于互联网。我们使用了入度、出度和PageRank的排序来获得错误连接。两个信息网络具有相同的特性。结果表明,信息定向网络的精度为0.173,无定向网络的准确度为0.309。对于社交导向网络,我们认为它和推特有密切的关注模式。因此,我们假设“大V”节点和“活跃用户”节点的存在。通过对其拓扑算法的分析,我们最终得出准确率为0.679的结果。对于社交无向网络,我们认为它与twitter的好友添加模式具有相同的模式。我们使用相同的方法来处理它,最终结果是0.338。

模型假设:

  1.该错误不会影响每个网络的真实链路拓扑特性。

  2.每个网络的特异性都很低,大多数节点都遵循一定的规律性。

问题分析:

  本研究是现代社会的一个问题,随着网络的积累越来越多,我们如何应对日益庞大复杂的网络数据分析。

  一个问题需要我们对不同的网络体系结构模型分别进行分析,分析其结构和内部机制。首先,我们对数据进行分析,得出不同的网络,如度分布、聚类系数、每个顶点的连接平均测地线距离等。利用这些数据,我们可以分析网络的基本性质。然后我们利用这些数据,建立了每个网络的随机图模型,通过分析和比较模型与原始网络,了解每个网络的不同结构。

  第二个问题要求我们提出一种有效的方法来识别六种不同网络连接中的错误,并展示完整的结构特征,从中发现和解释数学模型和算法的有效性和准确性。通过第一个问题我们已经知道了这些网络拓扑的结构性质,网络分别是有机体、生物无向网络、信息有向网络、无向网络,社交网络有别于社交网络本身的无向结构特征的背离,做出了合理的分析,其中一些肯定会去除正确的链接,然后应用基于相似度的链接预测方法,建立共同的邻居相似度指数,找出错误的链接。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

部分程序如下:
clear;clc;close
A=load('InfoUD.mat');
P=100;
B=[];
B(:,1)=A.node1;
B(:,2)=A.node2;
if ~all(all(B(:,1:2)));
 B(:,1:2)=B(:,1:2)+1;
end
num=max(max(B));
C=zeros(num);
n=length(B);
for i=1:n
 C(B(i,1),B(i,2))=C(B(i,1),B(i,2))+1;
end
C=C+C';
R=get_degree_correlation(C);
[M,N_DeD,N_predict,DeD,aver_DeD]=Degree_Distribution(C,P);
N_predict=floor(N_predict);
j=sum(N_predict);
D=[];
for k=1:P+1
 D=[D (k-1)*ones(1,N_predict(k))];
end
function [ out ] = get_degree(A,k)
row = A(k,:);
out=size(find(row==1),2);
end
function [M,N_DeD,N_predict,DeD,aver_DeD]=Degree_Distribution(A,P)
N=size(A,2);
DeD=zeros(1,N);
for i=1:N
 DeD(i)=sum(A(i,:));
end
aver_DeD=mean(DeD);
if sum(DeD)==0
 disp(' 该网络只是由一些孤立点组成');
 return;
else
 figure;
bar([1:N],DeD); 
 xlabel('节点编号n');
 ylabel('¸各节点度数K');
 title('网络中各节点度数大小K的分布图');
end
figure;
M=max(DeD);
predict=0:P;
for i=1:M+1; 
 N_DeD(i)=length(find(DeD==i-1));
end
P_DeD=zeros(1,M+1);
P_DeD(:)=N_DeD(:);
bar([0:M],P_DeD,'r');
xlabel('节点的度K');
ylabel('度为K的节点个数');
title('网络中的节点度个数分布图 ');
hold on
N_predict=interp1([0:M],N_DeD,predict,'spline');
plot(predict,N_predict);
hold off
figure;
PK_DeD=zeros(1,M+1);
PK_DeD(:)=N_DeD(:)./sum(N_DeD);
bar([0:M],PK_DeD);
set(gca,'yscale','log','xscale','log');
xlabel('度k');
ylabel('度为k的顶点所占比例');
title('幂律度分布')
function [ r ] = get_degree_correlation( A)
B = triu(A);
M = size(find(B==1),1);
sum1=0;
sum2=0;
sum3=0;
A1 = find(B==1);
length = size(A1,1);
for i=1:length
 
 [x y]=ind2sub(size(B),A1(i));
 sum1 = sum1+get_degree(A,x)*get_degree(A,y);
 sum2 = sum2+get_degree(A,x)+get_degree(A,y);
 sum3 = sum3+get_degree(A,x)^2+get_degree(A,y)^2;

end
x1 = sum1/M-(sum2/(2*M))^2;
y1 = sum3/(2*M)-(sum2/(2*M))^2;
r=x1/y1;
end
clear;clc;close
A=load('InfoUD.mat');
P=100;
B=[];
B(:,1)=[A.node1;A.node2];
B(:,2)=[A.node2;A.node1];
load('InfoUD_DeD.mat')
B1=B(:,1);
num0=unique(B1);
mini=min(num0);
maxi=max(num0);
check=mini:maxi;
len=length(check);
i=1;
leak_num=0;
leak=NaN*ones(len);
while i == len
 if num0(i)==check(i)
 i=i+1;
 
 else
 que_num=num0(i)-check(i);
 std_num=leak_num;
 final_num=que_num+leak_num;
 leak(std_num+1:final_num)=i:i+que_num-1;
 i=i+que_num;
 
 end
 
end
B2=B(:,2);
index=1:len;
reform_data=NaN*ones(len,len);
leak_std=1;
for j=index
 if j==leak(leak_std)
 leak_std=leak_std+1;
 continue;
 else
 judge_sign = (B1 == check(j));
 term=sum(judge_sign);
 reform_data(1:term,j)=B2(judge_sign);
 end
 
end
L=zeros(len);
S_xy=zeros(len);
AV_DeD=zeros(len);
for i=index
 for j=index
 Lx=reform_data(:,i);
 Ly=reform_data(:,j);
 Lx=Lx(~isnan(Lx));
 Ly=Ly(~isnan(Ly));
 L(i,j)=length((intersect(Lx,Ly))); 
 AV_DeD(i,j)=DeD(i)+DeD(j);
 S_xy(i,j)=2*L(i,j)/(DeD(i)+DeD(j));
 end
end
clear;clc;
A=load('S_xy_BU.mat');
UA=load('BioD.mat');
UVA=load('AV_DeD_BioUD.mat');
len1=length(UA.node1);
%C=load('C.mat');
C=zeros(len1,4);
%len1=length(C.C);
D=zeros(len1,4);
C(:,1)=UA.node1;
C(:,2)=UA.node2;
len=length(A.S_xy);
index=1:len;
B=zeros(sum(index),4);
i=1;
k=1;
while i<len+1 
 B(k:k+len-i,1)=i*ones(len+1-i,1);
 B(k:k+len-i,2)=i:len;
B(k:k+len-i,3)=A.S_xy(i,i:len);
 B(k:k+len-i,4)=UVA.AV_DeD(i,i:len);
 k=k+1+len-i;
 i=i+1;
end
B(:,1:2)=B(:,1:2)-1;
[B1 B2]=find(isnan(B));
B(B1,:)=[];
len2=length(B);
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/116595.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue3:一页多题答案校正及radio和checkbox混合使用

一页多题&#xff0c;类型包括单选&#xff0c;判断多选&#xff0c;涉及radio和checkbox同时使用&#xff0c;答案校正数据匹配&#xff0c;正确答案格式化&#xff0c;答案提交数据格式化&#xff0c;数据提交。 效果&#xff1a; 数据获取&#xff1a; 数据提交&#xff1a…

0基础学习PyFlink——时间滚动窗口(Tumbling Time Windows)

大纲 mapreduce完整代码参考资料 在《0基础学习PyFlink——个数滚动窗口(Tumbling Count Windows)》一文中&#xff0c;我们发现如果窗口内元素个数没有达到窗口大小时&#xff0c;计算个数的函数是不会被调用的。如下图中红色部分 那么有没有办法让上图中&#xff08;B,2&…

CleanMyMac X2024登录激活码

本篇将为各位小伙伴们集中讲解一下&#xff0c;Mac清理工具CleanMyMac X的下载、安装与激活是如何进行的。 系统&#xff1a;macOS 10.14&#xff08;在10.15以及Big Sur中的安装激活教程相同&#xff09; 下载CleanMyMac X 登录CleanMyMac X下载页面&#xff0c;然后点击【…

R语言 复习 习题图片

这是日天土申哥不知道从哪淘来的R语言复习知识点图片&#xff0c;大部分内容都是课后习题的答案 加油吧&#xff0c;骚年&#xff0c;考个好分数

MyBatis-Plus复习总结(一)

文章目录 一、环境搭键二、基本CRUD2.1 BaseMapper2.2 插入2.3 删除2.4 修改2.5 查询 三、通用Service四、常用注解4.1 雪花算法4.2 注解TableLogic 五、条件构造器和常用接口5.1 Wrapper介绍5.2 QueryWrapper5.3 UpdateWrapper5.4 condition5.5 LambdaQueryWrapper5.6 LambdaU…

五:Day11_SpringMVC03

一、拦截器 SpringMVC给出了拦截器来实现单元方法的拦截&#xff0c;拦截器的执行是在DispatcherServlet之后和单元方法之前的。 注意&#xff1a;只有URL匹配到了控制单元&#xff0c;拦截器才能生效。 2. 使用拦截器 2.1 创建拦截器类 public class MyInterceptor implem…

工地现场智慧管理信息化解决方案 智慧工地源码

智慧工地系统充分利用计算机技术、互联网、物联网、云计算、大数据等新一代信息技术&#xff0c;以PC端&#xff0c;移动端&#xff0c;设备端三位一体的管控方式为企业现场工程管理提供了先进的技术手段。让劳务、设备、物料、安全、环境、能源、资料、计划、质量、视频监控等…

图解系列--防火墙

05.01 防火墙是怎样的网络硬件 构建安全网络体系而需要遵循的 CIA 基本理念。CIA 是机密性 (Confidentiality) 、 完整性(Integrity) 、 可用性(Availability)。 防火墙硬件作为防范装置能够同时实现CIA 中3个条目的相应对策。在20世纪90年代中期&#xff0c;普通企业一般都…

【深度学习】pytorch——线性回归

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ 深度学习专栏链接&#xff1a; http://t.csdnimg.cn/dscW7 pytorch——线性回归 线性回归简介公式说明完整代码代码解释 线性回归简介 线性回归是一种用于建立特征和目标变量之间线性关系的统计学习方法。它假设…

JavaScript处理字符串

字符串(String)是不可变的、有限数量的字符序列&#xff0c;字符包括可见字符、不可见字符和转义字符。在程序设计中&#xff0c;经常需要处理字符串&#xff0c;如复制、替换、连接、比较、查找、截取、分割等。在JavaScript中&#xff0c;字符串是一类简单值&#xff0c;直接…

NLP之Bert多分类实现案例(数据获取与处理)

文章目录 1. 代码解读1.1 代码展示1.2 流程介绍1.3 debug的方式逐行介绍 3. 知识点 1. 代码解读 1.1 代码展示 import json import numpy as np from tqdm import tqdmbert_model "bert-base-chinese"from transformers import AutoTokenizertokenizer AutoToken…

AI:57-基于机器学习的番茄叶部病害图像识别

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

体验SOLIDWORKS钣金切口工具增强 硕迪科技

在工业生产制造中&#xff0c;钣金加工是一种常用的加工方式&#xff0c;在SOLIDWORKS2024新版本中&#xff0c;钣金切口工具再次增强了&#xff0c;从SOLIDWORKS 2024 开始&#xff0c; 您可以使用切口工具在空心或薄壁圆柱体和圆锥体中生成切口。 只需在现有空心或薄壁圆柱体…

每天五分钟计算机视觉:搭建手写字体识别的卷积神经网络

本文重点 我们学习了卷积神经网络中的卷积层和池化层,这二者都是卷积神经网络中不可缺少的元素,本例中我们将搭建一个卷积神经网络完成手写字体识别。 卷积和池化的直观体现 手写字体识别 手写字体的图片大小是32*32*3的,它是一张 RGB 模式的图片,现在我们想识别它是从 …

Leetcode刷题详解——求根节点到叶节点数字之和

1. 题目链接&#xff1a;129. 求根节点到叶节点数字之和 2. 题目描述&#xff1a; 给你一个二叉树的根节点 root &#xff0c;树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字&#xff1a; 例如&#xff0c;从根节点到叶节点的路径 1…

软通杯算法竞赛--周赛题目(一)

目录 一、S属性大爆发 二、日期杯 三、 三人行必由我师 四、集合之差 五、咱们计算机不懂烷烃 六、适度跑步健康长寿 一、S属性大爆发 测试用例 5 esS qwert codeforces PoSgju LkkJKkO 输出案例 二、日期杯 输入案例&#xff1a; 3 2022 2022 11 1900 2100 15 1989 20…

Java继承:抽取相同共性,实现代码复用

&#x1f451;专栏内容&#xff1a;Java⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、继承的概念二、继承的语法三、父类成员访问1、子类中访问父类成员变量Ⅰ、子类和父类不存在同名成员变量Ⅱ、子类和父类成员…

Zabbix监控联想服务器的配置方法

简介 图片 随着科技的发展&#xff0c;对于数据的敏感和安全大部分取决于对硬件性能、故障预判的监测&#xff0c;由此可见实时监测保障硬件的安全很重要&#xff0c;从而衍生了很多对硬件的监测软件&#xff0c;Zabbix就一个不错的选择。开源 开源 开源&#xff01; zabbix是…

树结构及其算法-二叉运算树

目录 树结构及其算法-二叉运算树 C代码 树结构及其算法-二叉运算树 二叉树的应用实际上相当广泛&#xff0c;例如表达式之间的转换。可以把中序表达式按运算符优先级的顺序建成一棵二叉运算树&#xff08;Binary Expression Tree&#xff0c;或称为二叉表达式树&#xff09;…

【文生图】Stable Diffusion XL 1.0模型Full Fine-tuning指南(U-Net全参微调)

文章目录 前言重要教程链接以海报生成微调为例总体流程数据获取POSTER-TEXTAutoPosterCGL-DatasetPKU PosterLayoutPosterT80KMovie & TV Series & Anime Posters 数据清洗与标注模型训练模型评估生成图片样例宠物包商品海报护肤精华商品海报 一些TipsMata&#xff1a;…
最新文章