Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vf2 vs vf2pp #89

Open
wants to merge 19 commits into
base: main
Choose a base branch
from
Open

Vf2 vs vf2pp #89

wants to merge 19 commits into from

Conversation

paulitapb
Copy link
Member

An initial draft of benchmarking of vf2 vs vf2++. There are still some details to fix in the plots (mainly x labels and some titles) and many TODOs.

Copy link
Member

@dschult dschult left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I finally had a chance to look at this. Very cool!
I have a couple of comments below. Nice job.

content/algorithms/vf2_vs_vf2pp/vf2_vs_vf2pp.md Outdated Show resolved Hide resolved
```

To do this same experiment on DiGraphs, we need to define an in-degree sequence and an out-degree sequence.
We will use the function *nx.directed_configuration_model(in_degree_sequence, out_degree_sequence, create_using, seed)*. Both degree sequences must have the same sum. Again this function returns a MultiDiGraph so we will have to convert it into a DiGraph. Let's do this in an example:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm surprised that the resulting degree sequences are the same for the two graphs. The multiedges are not likely to be the same -- and the selfloop edges are also likely to be a different number of edges with the two seeds. So when you convert to a non-multigraph, and remove the selfloops, you change the degree sequences. And it seems like you would be changing them in different ways. Have you checked that the two graphs have the same degree sequence? If they don't, the function will correctly return True, but it won't actually run any of the algorithm to find this out. I think it doesn't even create the data structures that would cost time for overhead in VF2++, but I'm not sure about that.

Co-authored-by: Dan Schult <dschult@colgate.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants