Skip to content

Conversation

@etiennedeg
Copy link
Member

fixes #10

@Krastanov
Copy link
Member

@etiennedeg , could you check whether the switch to LEMONGraphs.jl is fixing this? If you have a chance to rebase, I will be prompt to review.

@simsurace
Copy link
Member

I briefly looked into this, but I don't know what behavior is expected from LEMON if no matching exists. I wanted to check the dualValue (see LEMON docs) but this binding is not exposed by LEMON_jll. What would it take to wrap additional methods? I'm not familiar with CxxWrap.jl, I don't know where it was specified that only very few names get exported.

@Krastanov
Copy link
Member

The wrapper is bundled with the build script for LEMON in Yggdrasil: https://github.com/JuliaPackaging/Yggdrasil/blob/master/L/LEMON/bundled/cxxwrap/lemoncxxwrap.cpp

And then the wrapping happens here: https://github.com/JuliaGraphs/LEMONGraphs.jl/blob/main/src/LEMONGraphs.jl

The wrapper is so minimal because my goal was just to make GraphsMatching installable on all systems where BlossomV.jl fails to install, so I just matched the minimal existing capabilities.

Could you run me through what other API you need access to? I can try to enable it.

@Krastanov
Copy link
Member

The official docs did not load for me. Here is the waybackmachine archive https://web.archive.org/web/20200111124408/https://lemon.cs.elte.hu/pub/doc/1.3.1/a00263.html

Do you need anything besides the scalar dualValue()?

@simsurace
Copy link
Member

I don't know what I need, I'm trying to reverse engineer what happens if there is no matching. So preferably one would have access to all the methods for MaxWeightedPerfectMatching:

init
fractionalinit
start
run
matchingWeight
matching
MatchingMap
mate
dualValue
nodeValue
blossomNum
blossomSize
blossomValue
dualScale

@Krastanov
Copy link
Member

I will try to set up a pull request to Yggdrassil that makes these available later in the day and tag you there so you also have an example. Maybe we can work together on this over the next few days (I will not have enough bandwidth to take care of updating LEMONGraphs.jl and GraphsMatching.jl themselves)?

@simsurace
Copy link
Member

That would be nice, if you can get me started on where to change things I can take it from there.

@Krastanov
Copy link
Member

attempt to wrap these is here JuliaPackaging/Yggdrasil#12376

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Segfault in maximum_weight_perfect_matching when the graph does not have a perfect matching

3 participants