dwavesystems / dwavesystems/dwave-graphs
edge_list and node_list behave unexpectedly in graph generators
- Dominant language
- Python
- Stars
- 95
- Forks
- 62
- Avg merge
- 7d 18h
- Merged PRs (30d)
- 1
Description
**Description**
It is useful to permute node and edge orderings in graph creation for example to randomize the behaviour of otherwise deterministic methods.
- dwave_networkx graph node ordering doesn't seem to respond to the ordering of the node_list parameter.
- When the edge_list parameter is provided matching the default, the node_ordering is changed relative to the default.
**To Reproduce**
```
T = dnx.pegasus_graph(2)
node_list = list(T.nodes())
node_list.reverse()
T2 = dnx.pegasus_graph(2, node_list=node_list) # Same graph
print(T2.nodes()) # original ordering, ignores provided ordering.
edge_list = list(T1.edges())
node_list = list(T1.nodes())
T3 = dnx.pegasus_graph(2, node_list=node_list, edge_list=edge_list)
print(T3.nodes()) # Does not match T1.nodes(), which is unexpected.
```
**Expected behavior**
node_list should dictate node order, edge_list should dictate edge order.
**Environment:**
- OS: [Ubuntu 22.04.3 LTS]
- Python version: [e.g. 3.12.0]
**Additional context**
I'll make a pull request to correct this unless a good case can be made not to, don't really want to mess with these core generators unnecessarily.
I want to use in combination with minorminer.subgraph.find_subgraph(S, T) which deterministically searches for a subgraph. Reordering the target (T) nodes allows a more uniform distribution across the processor with respect to some source graph S.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.