Skip to main content
23 events
when toggle format what by license comment
May 2, 2020 at 18:00 history tweeted twitter.com/StackMma/status/1256644630826889218
May 2, 2020 at 1:26 comment added kglr @Szabolcs, very good point. I don't.
May 2, 2020 at 1:23 history edited J. M.'s missing motivation
edited tags
May 1, 2020 at 18:18 comment added Szabolcs @kglr Do you have any evidence that that is the function that FindClique is actually using? FindClique's definition is hidden. It may not be using InternalFindClique. InternalFindClique may be an unrelated experimental implementation. Notably, InternalFindClique seems to ignore the size argument. So I don't think this is what FindClique really uses ...
May 1, 2020 at 18:13 history edited Szabolcs CC BY-SA 4.0
added 10 characters in body; edited title
May 1, 2020 at 17:54 answer added Szabolcs timeline score: 3
May 1, 2020 at 17:33 comment added Kiril Danilchenko @Szabolcs Thank you for your comments and the ranks that you give to my question. In this case, I can't use IGraph/M.
May 1, 2020 at 17:31 comment added Kiril Danilchenko @Juho Thank you. I look for the maximal cliques solver
May 1, 2020 at 17:14 comment added Szabolcs @KirilDanilchenko There are three separate things here: 1) what problem does FindClique solve? 2) How does it solve it? 3) How can on solve that problem, in general? (1) is relevant, (3) is also a useful thing to ask, but not for this QA site. (2) is on-topic, but in my opinion quite pointless to ask. If you insist anyway, realistically, your options are what kglr said (read the code) or to ask Wolfram Support. I predict they will not give you any satisfactory answer though. If you want to use a program whose implementation is completely open and documented, I recommend IGraph/M.
May 1, 2020 at 17:10 comment added Szabolcs @Juho FindClique[g] does in fact find a maximum clique.
May 1, 2020 at 16:57 comment added Juho @KirilDanilchenko For which problem? Finding a maximum clique or a maximal clique? If you want maximum cliques, google for pmc. Another solver is cliquer which is older but still solid.
May 1, 2020 at 16:36 comment added Kiril Danilchenko @Szabolcs I think I didn't explain myself correctly. A maximal clique is one of the steps of the whole solution. To find the maximal clique, I would use WL so I want to understand this function in more detail
May 1, 2020 at 16:27 comment added Kiril Danilchenko @Juho Can you suggest a good solver of this problem, where the size of the graph is around 40K nodes and 2-3M edges?
May 1, 2020 at 16:12 comment added Juho @KirilDanilchenko First, you don't have to use a heuristic to find a maximum cliques. Indeed, there are very good exact solvers for the problem. Second, IIRC, FindClique just finds a maximal clique but there's no guarantee a larger clique wouldn't exist.
May 1, 2020 at 15:44 comment added Szabolcs It seems to me that then the right thing to research is how to find maximal cliques, not how Mathematica does it specifically.
May 1, 2020 at 10:43 comment added Kiril Danilchenko @Szabolcs I want to know which algorithm WL uses to compute a maximal clique. The reason for that is straightforward. I'm planning to use it as one of the phases of the solution of a "big" problem. Before to use it as a "black box" I prefer to understand the prof and con of the "black box."
May 1, 2020 at 10:36 comment added kglr @Szabolcs, the code is not too long and it looks like the core method is just LP.
May 1, 2020 at 10:24 comment added Szabolcs @kglr I don't think that spelunking will give a productive answer to this question. I really wonder if OP wants to know the specific algorithm Mathematica uses, or if he just wants to know how to find maximal cliques, e.g. en.wikipedia.org/wiki/Bron%E2%80%93Kerbosch_algorithm
May 1, 2020 at 10:16 comment added kglr try PrintDefinitions[GraphComputation`InternalFindClique] and click on the link to get the notebook that gives definition of findClique.
May 1, 2020 at 10:13 comment added Szabolcs Why do you want to know? (It's a serious question.)
May 1, 2020 at 10:11 comment added Kiril Danilchenko @kglr In WL 12.1, I get an error. FindClique[g] finds the largest clique in the graph g. Is it means finding a maximum clique or something else? If yes, it is an NP problem, and to solve it, we have to use a heuristic solution, which one WL uses for that?
May 1, 2020 at 9:48 comment added kglr you can see the definition of the function called by FindClique using Needs["GeneralUtilities`"]; PrintDefinitions[GraphComputation`GraphCliqueDump`findClique]
May 1, 2020 at 9:23 history asked Kiril Danilchenko CC BY-SA 4.0