Код для вычисления n-куба по подпространству - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь вычислить n-куб по субкоду C. Например, для куба 3 я бы вычислил субкод (0,0,0), (0,0,1).Другими словами, я хочу взять точки / вершины моего куба, и если они отличаются на 001 (я работаю в двоичном коде, поэтому, если я могу добавить 001 к вершине и получить другую), то я рассматриваю эти точки как одинаковыевершина моего нового фактор-пространства.Например, если бы у меня были точки 110 и 111, поскольку я могу добавить 001 к 110 и получить 111, я бы отнесся к 111 и 110 как к эквивалентным, и они были бы представлены точкой 110 в моем новом пространстве.Я пытаюсь сделать это вообще для любого куба в n-м измерении, но я не уверен, как начать это.

У меня есть код для моего 3-куба:

def dist(u,v): h = [(u[i]+v[i])%2 for i in range(len(u))] return sum(h) def cube(n): G = Graph(2**n) vertices = Tuples([0,1],n) for i in range(2**n): for j in range(2**n): if dist(vertices[i],vertices[j]) == 1: G.add_edge(i,j) return G cube(3).plot()

Я пытался использовать алгоритм quotient_graph, но я застрял на том, как определить node_relation иedge_relation.

...