标签: adjacency-matrix

如何在java生成hamilton循环中实现邻接矩阵

我试图在java中实现一个邻接矩阵,它将产生哈密顿循环的输出,然后可以用不同的算法解决,例如kruskurals,djikstras和2opt方法.我知道我需要一个2d阵列,但我不知道从哪里开始.我需要能够存储矩阵并将其应用于我拥有的图形,该图形目前是具有"n"个节点的圆(取决于矩阵).欢迎所有的帮助,谢谢

java hamiltonian-cycle adjacency-matrix

5
推荐指数
1
解决办法
4978
查看次数

C编程:如何找到最短路径?

想象一下,我有一个由36个顶点组成的6x6正方形(即每行6个顶点和每列6个顶点),看起来像这样:

•  •  •  •  •  •  
•  •  •  •  •  •  
•  •  •  •  •  •  
•  •  •  •  •  •  
•  •  •  •  •  •  
•  •  •  •  •  •
Run Code Online (Sandbox Code Playgroud)

每个顶点都与1,2,3或4个近邻点连接 - 所以我们基本上得到一个带有顶点和边的图.我的问题如下:我想要一个机器人通过那个"迷宫"的边缘,直到找到某个顶点放置某个物体.一旦找到该对象,就应该以最快的方式回到起点.

现在,我不太清楚如何实现这一点,所以我的问题是:在C中保存有关顶点和边的信息的最佳结构是什么?(邻接矩阵对我来说似乎效率低,因为36x36非常大).而且,使用这些信息,我怎样才能找到最快的方式?

c path adjacency-matrix

5
推荐指数
1
解决办法
792
查看次数

在MATLAB中将大邻接矩阵转换为边缘列表的有效方法?

我有大约100个节点的大型稀疏邻接矩阵,我正在使用MATLAB进行处理.我想尽可能高效地将这些矩阵转换为网络边缘列表.作为一个示例邻接矩阵来说明这一点:

adj =
     1     0     1     0
     0     0     1     1
     0     0     1     0
     0     1     0     0

我在这里称之为网络边缘列表的输出是:

>> adj2edgeList_Alex(adj)
ans =
     0     0
     0     2
     1     2
     1     3
     2     2
     3     1

我必须这样做的代码停留了一段时间.

function edge_list = adj2edgeList_Alex(graph)

edge_num = length(logical(graph > 0));
edge_list = zeros(edge_num,2);
row_ind = 1;
for ii=1:size(graph,2)
    ind_temp = find(graph(ii,:)==1);
    if(isempty(ind_temp) == 0)
        ind_temp = ind_temp - 1;
        edges_iter = length(ind_temp);   
        node_num = ii - 1; …

optimization matlab graph-theory matrix adjacency-matrix

5
推荐指数
1
解决办法
3468
查看次数

R根据data.frame中的列创建邻接矩阵

我有data.frame10个视频,每列都是一个标记,指示视频的类别.例如,数据将如下所示:

data <- data.frame(id=paste0("r", 1:10), A=sample(0:1,10,TRUE), B=sample(0:1,10,TRUE), C=sample(0:1,10,TRUE))
data
    id A B C
1   r1 1 0 1
2   r2 0 0 0
3   r3 0 1 0
4   r4 1 1 0
5   r5 0 0 0
6   r6 1 0 1
7   r7 1 0 1
8   r8 0 1 1
9   r9 0 0 1
10 r10 1 0 0
Run Code Online (Sandbox Code Playgroud)

现在我想基于标签形成一个邻接矩阵,其值应该是具有相同标签的视频数量.例如,单元格A-C应该是3,因为r1,r6并且r7具有相同的标签.最后,我想要一个如下输出矩阵:

     A    B    C
A    5    1 …
Run Code Online (Sandbox Code Playgroud)

r adjacency-matrix reshape2

5
推荐指数
1
解决办法
1660
查看次数

需要帮助使用广度优先搜索(Java)获得邻接矩阵(图形)的第n级

在此输入图像描述 在此输入图像描述

public int bfs(int maxDepth){
        int src = 2;
        int dest = 2;
        int i;
        int depth = 0;
        int countPaths = 0;
        int element;

        queue.add(src);

        while(!queue.isEmpty() && depth <= maxDepth)
        {   
            element = queue.remove();
            i = 0;

            while(i < 5) 
            {   
                if(arr[element][i] > 0)
                {
                    queue.add(i);

                    if(i == dest)
                        countPaths++;
                }       
                i++;
            }
        }

        queue.clear();
        return countPaths;
    }
Run Code Online (Sandbox Code Playgroud)

你好!!给定源和目的地,我需要找到一条路径.就遍历图表而言,我的BFS算法工作得很好.我的问题是当我想要它时停止它.我拿出了我增加深度的地方,所以我看起来不像是一个完全白痴.我希望有人能帮帮忙.基本上我想知道如何跟踪当前的深度.谢谢!

例:

找到从C到C的路径数,最多3个停靠点.答案是两条路:

C - > D - > C(2站)

C - > E - > B - > C(3站)

示例2:找到从A到C的路径数,最多3个停靠点.答案是三条路.

A …

java algorithm directed-graph breadth-first-search adjacency-matrix

5
推荐指数
1
解决办法
543
查看次数

图节点之间的乘法距离

我想找到图中所有节点之间的距离,而不是总和我想要乘以它们的边权重.

举个例子:

library(igraph)

# create a weighted adjacency matrix
mx <- structure(c(0, 0.5, 0, 0, 0, 0.5, 0, 0.5, 0.5, 0, 0, 0.5, 0, 0, 0.5, 0, 0.5, 
    0, 0, 0, 0, 0, 0.5, 0, 0), .Dim = c(5L, 5L))

## convert to igraph object
mx2 <- graph.adjacency(mx, weighted = TRUE)
Run Code Online (Sandbox Code Playgroud)

我可以得到所有节点之间的距离如下:

shortest.paths(mx2)

 [,1] [,2] [,3] [,4] [,5]
[1,]  0.0  0.5  1.0  1.0  1.5
[2,]  0.5  0.0  0.5  0.5  1.0
[3,]  1.0  0.5  0.0  1.0  0.5
[4,]  1.0  0.5  1.0 …
Run Code Online (Sandbox Code Playgroud)

r igraph adjacency-matrix

5
推荐指数
1
解决办法
136
查看次数

在matlab中从邻接矩阵创建图形

我在matlab中有一个邻接矩阵.我如何绘制图表?由于我有> 500个节点,我不能使用随机(或网格状)坐标的gplot.

matlab graph adjacency-matrix

4
推荐指数
1
解决办法
1万
查看次数

如何创建 4 或 8 连接的邻接矩阵

我一直在寻找一个 python 实现,给定一个数组,它返回 4 或 8 连接的邻接矩阵。我感到惊讶的是 cv2 或 networkx 不包含此功能。我遇到了这个很棒的 Matlab实现,并决定用 python 做一些类似的东西。

问题:我正在寻找一种可以改进运行时/空间中链接的 Matlab 解决方案或其他有趣方法的实现。

免责声明

我在这里提交我自己的实现,因为我认为我不可能是唯一需要为图像处理或其他应用程序创建(4 / 8 连接)邻接矩阵的人。我希望能够提供改进或更好的实施。

python numpy image-processing scipy adjacency-matrix

4
推荐指数
1
解决办法
2651
查看次数

Python计算顶点度矩阵

我目前正在尝试编写代码来计算度矩阵,以便我可以计算拉普拉斯 L = D - A,其中 D=度矩阵,A=邻接矩阵。

这将在我的光谱聚类算法中使用。我正在使用 Python。所以对于这个玩具示例,我在做这件事时遇到了麻烦。任何人都可以提供一种有效的方法来做到这一点,或者是否有用于计算度矩阵的 API?我的问题很简单,计算连接矩阵度的有效方法是什么,或者是否有一个 python 模块?

例子:

import numpy as np
matrix = np.matrix('1, 1, 1, 1; 1, 0, 0, 0; 0, 0, 1, 1')

matrix =

 1     1     1     1
 1     0     0     0
 0     1     0     1
 0     0     1     1
Run Code Online (Sandbox Code Playgroud)

我如何计算给我 5 3 4 4 的度(矩阵),它代表每个节点的连接度?谢谢你。

python graph-theory cluster-analysis adjacency-matrix

4
推荐指数
3
解决办法
8413
查看次数

从元组列表生成邻接矩阵的更优雅方法

假设我们从一个由元组列表表示的“友谊”图开始,

friendships = [(0, 1), (0, 2), (1, 2), (1, 3), (2,
3), (3, 4),(4, 5), (5, 6), (5, 7), (6, 8), (7, 8), (8, 9)]
Run Code Online (Sandbox Code Playgroud)

其中元素0是1的朋友(因此1是0的朋友)。

我想以一种始终适用于这种元组表示形式的方式从头构造邻接矩阵。

我有以下(排斥)Python代码:

friendships = [(0, 1), (0, 2), (1, 2), (1, 3), (2,
3), (3, 4),(4, 5), (5, 6), (5, 7), (6, 8), (7, 8), (8, 9)]
Run Code Online (Sandbox Code Playgroud)

我知道它效率低下而且非常难看。有没有更聪明的方法来解决这个问题?我上面给出的示例列表的输出应为

[[0, 1, 1, 0, 0, 0, 0, 0, 0, 0],
 [1, 0, 1, 1, 0, 0, 0, 0, 0, 0],
 [1, 1, 0, …
Run Code Online (Sandbox Code Playgroud)

python graph function adjacency-matrix

4
推荐指数
1
解决办法
329
查看次数