欢迎来到天天文库
浏览记录
ID:27801643
大小:350.00 KB
页数:31页
时间:2018-12-06
《算法分析课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、算法分析与设计实验报告书评分:题目:(例如)基于矩阵变换算法的图同构识别设计人:李文森班级:网络工程2班学号:1214080613213一、实验环境:1、硬件环境:个人机,CPU主频:2.3GHZ内存:4GB2、软件环境:操作系统:windows编程语言:C++二、实验任务解决方案:实验思路:设两个无向图G=(V,E)G=(V,,EJ,G,G,同构当且仅当两图的邻接矩阵、行间同或矩阵、行间异或矩阵具有相同的行行置换。1.矩阵算法步骤a.根据定义,求出同型矩阵AAg、AAg,・b.计算出行间同或矩阵RAG、RAG,行间异或矩阵RXG、RX&.c.以图G=(V,E)
2、的行间异或矩阵为参照,对RXG的每一行,从RX&搜索所有行,找到一个匹配。若不存在相应匹配,则两图不同构;若匹配,转步骤(4).d.判断邻接矩阵AG、Ag,行间同或矩阵中是否存在同样的匹配,若匹配存在,调整邻接矩阵Aq、行间异或矩阵RXg,、行间同或矩阵RAg对应的行和列;若不匹配,则不同构.2、基于矩阵变换算法的流程图。3、基于矩阵变换算法实现的关键代码。voidwensen_mp(intmp[],intn){intt;for(inti=0;ivn-l;i++){for(intj=O;j3、///核心代码〃异或矩阵行转换voidwensen_hx(int**pl,int**pl3,int**pl4,int**p2,int**p23,int**p24,intn)int*p77=newint[n];//用于替换的临时一维数组,存放pl3int*p88=newint[n];//用于替换的临时一维数组,存放p23int*p33=newint[n];//用于替换的临吋一维数组,存放plint*p44=newint[n];//用于替换的临时一维数组,存放pl4int*p55=newintfn];//用于替换的临时一维数组,存放p2int*p66=newint[4、n];//用于替换的临时一维数组,存放p24int*p99=newint[n];//用于行行替换的临时数组intt;inttt;〃进行跳转判断intttt=O;//进行跳转判断〃行行替换for(inti=O;i5、4[i441=pl4[i][i44];}〃p77,p33,p44冒泡排序wensen_mp(p77,n);wensen_mp(p33,n);wensen_mp(p44,n);〃开始进行比较,pl2的每一行与p23的每一行进行比较for(inty=i;y6、ti66=0;i66vn;i66++)p66[i66]=p24[y][i66J;//p88,p55,p66冒泡排序wensen_mp(p88,n);wensen_mp(p55,n);wensen_mp(p66,n);〃开始比较for(inta=O;a7、O;c8、[u2];p23[y][
3、///核心代码〃异或矩阵行转换voidwensen_hx(int**pl,int**pl3,int**pl4,int**p2,int**p23,int**p24,intn)int*p77=newint[n];//用于替换的临时一维数组,存放pl3int*p88=newint[n];//用于替换的临时一维数组,存放p23int*p33=newint[n];//用于替换的临吋一维数组,存放plint*p44=newint[n];//用于替换的临时一维数组,存放pl4int*p55=newintfn];//用于替换的临时一维数组,存放p2int*p66=newint[
4、n];//用于替换的临时一维数组,存放p24int*p99=newint[n];//用于行行替换的临时数组intt;inttt;〃进行跳转判断intttt=O;//进行跳转判断〃行行替换for(inti=O;i5、4[i441=pl4[i][i44];}〃p77,p33,p44冒泡排序wensen_mp(p77,n);wensen_mp(p33,n);wensen_mp(p44,n);〃开始进行比较,pl2的每一行与p23的每一行进行比较for(inty=i;y6、ti66=0;i66vn;i66++)p66[i66]=p24[y][i66J;//p88,p55,p66冒泡排序wensen_mp(p88,n);wensen_mp(p55,n);wensen_mp(p66,n);〃开始比较for(inta=O;a7、O;c8、[u2];p23[y][
5、4[i441=pl4[i][i44];}〃p77,p33,p44冒泡排序wensen_mp(p77,n);wensen_mp(p33,n);wensen_mp(p44,n);〃开始进行比较,pl2的每一行与p23的每一行进行比较for(inty=i;y6、ti66=0;i66vn;i66++)p66[i66]=p24[y][i66J;//p88,p55,p66冒泡排序wensen_mp(p88,n);wensen_mp(p55,n);wensen_mp(p66,n);〃开始比较for(inta=O;a7、O;c8、[u2];p23[y][
6、ti66=0;i66vn;i66++)p66[i66]=p24[y][i66J;//p88,p55,p66冒泡排序wensen_mp(p88,n);wensen_mp(p55,n);wensen_mp(p66,n);〃开始比较for(inta=O;a7、O;c8、[u2];p23[y][
7、O;c8、[u2];p23[y][
8、[u2];p23[y][
此文档下载收益归作者所有