相关疑难解决方法(0)

在Python中表示图形(数据结构)

如何在Python中整齐地表示图形?(从头开始,即没有库!)什么数据结构(例如dicts/tuples/dict(元组))将快速但内存效率高?一个人必须能够对其进行各种图形操作. 正如所指出的,各种图表表示可能会有所帮助.如何在Python中实现它们?至于图书馆,这个问题有很好的答案.





python graph data-structures

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

Python实现图相似性分级算法

我正在寻找一个算法的Python实现,它执行以下任务:

给定两个有向图,可能包含周期及其根,对两个图的相似性产生分数.

(Python difflib可以为两个序列执行的方式)

希望这样的实现存在.否则,我会尝试自己实现一个算法.在这种情况下,什么是优选的算法(关于简单性).

算法的工作方式对我来说并不重要,尽管它的复杂性是.此外,只要可以用该DS表示诸如我所描述的图形,也可以使用与不同数据结构一起工作的算法.

我要强调的是,一个实现会更好.

编辑:
似乎同构algortihm是不相关的.有人建议图形编辑距离更接近点,这会将我的搜索范围缩小到一个解决方案,该解决方案执行图形编辑距离将图形缩小为树,然后执行树编辑距离.
它们的节点由每行的几行汇编代码组成.

python algorithm graph

22
推荐指数
2
解决办法
8344
查看次数

Django在图中的两个顶点之间找到路径

这主要是一个逻辑问题,但上下文是在Django中完成的.

在我们的数据库中,我们有Vertex和Line Classes,它们形成一个(神经)网络,但它是无序的,我无法改变它,它是一个遗留数据库

class Vertex(models.Model)
    code = models.AutoField(primary_key=True)
    lines = models.ManyToManyField('Line', through='Vertex_Line')

class Line(models.Model)
    code = models.AutoField(primary_key=True)

class Vertex_Line(models.Model)
    line = models.ForeignKey(Line, on_delete=models.CASCADE)
    vertex = models.ForeignKey(Vertex, on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)

现在,在应用程序中,用户将能够直观地选择两个顶点(下面的绿色圆圈)

在此输入图像描述

然后javascript将这两个顶点的pk发送到Django,它必须找到满足它们之间路由的Line类,在这种情况下,以下4个红线:

在此输入图像描述

商业逻辑:

  • 顶点可以有1-4条与之相关的线
  • 一条线可以有1-2个与它相关的顶点
  • 两个顶点之间只有一条可能的路径

到目前为止我所拥有的:

  • 我明白答案可能包括递归
  • 必须通过尝试从一个Vertex的每个路径找到路径,直到另一个找到,它不能直接找到
  • 由于有四个和三个路口,所有正在尝试的路径必须在整个递归过程中保存(不确定这个)

我知道基本逻辑是循环遍历每个Vertex的所有行,然后得到这些行的另一个Vertex,并继续递归,但我真的不知道从哪里开始.

这是我可以得到的,但它可能没有帮助(views.py):

def findRoute(request):
    data = json.loads(request.body.decode("utf-8"))
    v1 = Vertex.objects.get(pk=data.get('v1_pk'))
    v2 = Vertex.objects.get(pk=data.get('v2_pk'))
    lines = v1.lines.all()
    routes = []
    for line in lines:
        starting_line = line
        #Trying a new route
        this_route_index = len(routes)
        routes[this_route_index] = [starting_line.pk]
        other_vertex = line.vertex__set.all().exclude(pk=v1.pk)
        #There are …
Run Code Online (Sandbox Code Playgroud)

python django recursion logic django-models

11
推荐指数
1
解决办法
365
查看次数

图中的模式匹配

我正在尝试找到工具/算法来搜索与面向图中指定模式相对应的部分,例如:

A-> B-> C或或A- - B-> C.

请建议我搜索的方向.

我的意思是模式匹配.我需要找到匹配指定模式的所有节点和边的组

python graph pattern-matching isomorphism subgraph

10
推荐指数
1
解决办法
6731
查看次数

关于图工具中嵌套块模型的基本问题

非常简短,关于minimize_nested_blockmodel_dl函数的两三个基本问题graph-tool library.有没有办法找出哪个顶点落在哪个块上?换句话说,从每个块中提取列表,包含其顶点的标签.

分层可视化对于网络理论中的业余爱好者来说相当难以理解,例如,绘制有向边的正方形是否意味着涉及所考虑的两个块之间的下层边缘的主方向?块使用不同的颜色很好地显示,但在概念层面上,哪些类型的图案或边/顶点属性位于顶点的块分类后面?换句话说,当两个顶点在同一个块中时,我可以对它们的共同属性说些什么呢?

python graph-theory graph-tool

6
推荐指数
1
解决办法
948
查看次数

为什么在Python中使用字典表示图形?

Python没有对图形的直接支持,但很多消息来源都说它们可以用字典表示,例如.

graph = { "a" : ["c"],
          "b" : ["c", "e"],
          "c" : ["a", "b", "d", "e"],
          "d" : ["c"],
          "e" : ["c", "b"],
          "f" : []
        }
Run Code Online (Sandbox Code Playgroud)

因为这是一个无向图,字典是定向映射,所以看起来真的很不合适.说graph = {'x':['y'], 'y':['x']}而不是真的graph = {{'x', 'y'}}好吗?

python math dictionary graph set

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

对于复杂的问题解决练习(例如Graphs),这是一种更好的语言(C++或Python)?

我正在努力研究一些问题和算法.我知道C++,但是一位朋友告诉我,如果用Python完成它会更好.因为开发速度快得多,花在编程细节上的时间也会少,实际上并没有任何解决方案.

编辑2:我打算使用谷歌代码中的python-graph lib,如果您使用过,请提供示例代码.

编辑1:更快 - 更少的时间和更少的工作来编写解决方案

感谢大家的帮助 !

c++ python algorithm graph

4
推荐指数
6
解决办法
1169
查看次数