MaxCut: add w_jitter parameter to control edge weight randomization

This commit is contained in:
2025-06-12 10:55:40 -05:00
parent daa801b5e9
commit 7ed213d4ce
2 changed files with 40 additions and 30 deletions

View File

@@ -52,29 +52,23 @@ def test_maxcut_generator_fixed() -> None:
n=randint(low=5, high=6),
p=uniform(loc=0.5, scale=0.0),
fix_graph=True,
w_jitter=0.25,
)
data = gen.generate(3)
assert len(data) == 3
assert list(data[0].graph.nodes()) == [0, 1, 2, 3, 4]
assert list(data[0].graph.edges()) == [
(0, 2),
(0, 3),
(0, 4),
(2, 3),
(2, 4),
(3, 4),
]
assert data[0].weights.tolist() == [-1, 1, -1, -1, -1, 1]
assert list(data[1].graph.nodes()) == [0, 1, 2, 3, 4]
assert list(data[1].graph.edges()) == [
(0, 2),
(0, 3),
(0, 4),
(2, 3),
(2, 4),
(3, 4),
]
assert data[1].weights.tolist() == [-1, -1, -1, 1, -1, -1]
for i in range(3):
assert list(data[i].graph.nodes()) == [0, 1, 2, 3, 4]
assert list(data[i].graph.edges()) == [
(0, 2),
(0, 3),
(0, 4),
(2, 3),
(2, 4),
(3, 4),
]
assert data[0].weights.tolist() == [-1, -1, 1, 1, -1, 1]
assert data[1].weights.tolist() == [-1, -1, -1, -1, 1, -1]
assert data[2].weights.tolist() == [1, 1, -1, -1, -1, 1]
def test_maxcut_model():