Мы можем получить матрицу инцидентности орграфа, используя метод incidence_matrix(oriented=None, sparse=True, vertices=None)
в SageMath .
Каждая строка является вершиной, а каждый столбец - ребром. Вершины упорядочены, как получено методом vertices()
, за исключением случая, когда задан параметр vertices
, и ребра, как получено методом edge_iterator()
.
У меня вопрос, как указать порядок вершин и порядок ребер?
Например, g
- взвешенный орграф с 10 ребрами:
edges = [('s', 'x', 3), ('s', 'y', 5),
('x', 'y', 2), ('x', 'z', 6),
('y', 'x', 1), ('y', 'z', 4), ('y', 't', 6),
('z', 't', 2),
('t', 's', 3), ('t', 'z', 7)]
g = DiGraph(edges)
Я хочу расположить матрицу инцидентности так, чтобы вершины (сверху вниз) были упорядочены как s, x, y, z, t
, а ребра упорядочены (слева направо), как в edges
(то есть, перечисление ребер в алфавитный порядок s, x, y, z, t
).