peal / vole

A GAP package for backtrack search in permutation groups with graphs
https://peal.github.io/vole
Mozilla Public License 2.0
8 stars 2 forks source link

(Why) does Vole work properly with multidigraphs? #60

Open wilfwilson opened 2 years ago

wilfwilson commented 2 years ago

Superficially, it seems that Vole is properly taking multidigraphs into account:

gap> D1 := Digraph([[2],[1]]);
<immutable digraph with 2 vertices, 2 edges>
gap> D2 := Digraph([[2,2],[1]]);
<immutable multidigraph with 2 vertices, 3 edges>
gap> VoleFind.Rep(VoleCon.Transport(D1, D1, OnDigraphs));
(1,2)
gap> VoleFind.Rep(VoleCon.Transport(D2, D2, OnDigraphs));
()
gap> VoleFind.Rep(VoleCon.Transport(D1, D2, OnDigraphs));
fail
gap> VoleFind.Rep(VoleCon.Transport(D2, D1, OnDigraphs));
fail

However, @ChrisJefferson wasn't consciously thinking about digraphs with multiple edges when he implemented this stuff. So it's possibly that it's only coincidentally working for the cases that I've tried, and that it will not work properly in some cases.

We should look at the code and convince ourselves that it does 'the right thing' in all cases.