LEDA v / s Boost Graph Library

I want efficiency, and I am ready to write the code myself if the efficiency (= 0.9 * speed + 0.1 * others) is high. If I had to choose between an LEDA graph or a Boost graph, which should I choose?

My algorithms are time consuming (some are not even polynomial in time), which work on large graphs.

+4
source share
3 answers

Boost is usually a good library, but I would not suggest a Boost chart for a number of reasons.

The BGL documentation is disgusting, it’s easy to follow user instructions. I found that trying to define graphs with properties that are relevant to my own problems is very difficult.

Often you encounter huge compiler errors that show patterns inside patterns in patterns ... it's almost impossible to see what happens.

The only solution I found is to start with the trivial example that comes with the Boost Graph and adapt it until it does what I want.

I know many bright and capable people who, due to these reasons, have removed Boost Graph. It's sad because there are very efficient algorithms under all of this. For me, BGL is an example of an example using a template. Boost Graph is a great idea that fails due to a lack of purpose: the code is useless if it cannot be read, maintained, extended or debugged.

There are alternatives for implementing LEDA / Boost. You can do worse than investigate this similar post: https://stackoverflow.com/questions/510758/can-you-suggest-a-good-book-on-graphs-and-graph-algorithms (link is no longer valid)

+5
source

Boost is constantly being reorganized, so parts of it are moving to the standard, after which the supplier continues to optimize it for the target systems that they support. In rare use cases, using inheritance, the developer can customize the part for a specific case.

If work is limited to C ++, then because parts of Boost tend to integrate into the standard, it has these advantages. There may be a specific reason to use a proprietary LED, such as guaranteed error-freeness by testing, and then as a decision maker, you should only comply with such criteria.

+3
source

Graph acceleration algorithms can be created to work with LEDA charts and even stanzas, but not vice versa. http://www.boost.org/doc/libs/1_46_1/libs/graph/doc/leda_conversion.html

I would suggest using a boost chart, this is the state of the art.

microphone

+2
source

Source: https://habr.com/ru/post/1403730/


All Articles