$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [heap] A performance test and some questions
From: Andrew Sutton (asutton.list_at_[hidden])
Date: 2011-06-06 12:02:07
> I have now read (and tried to understand) the similar question from Andrew Sutton with respect to Dijkstra's SP:
> <http://listarchives.boost.org/Archives/boost/2011/06/182381.php>
>
> (On a slightly unrelated note, I first also used his way to call "update", but that totally killed the performance (and compare count) of fibonacci_heap. I would suggest to remove this form of "update" at least from fibonacci_heap, and require calling "increase" or "decrease" when you have modified the priority "manually".)
That's only a viable solution if you have some a priori knowledge
about which "direction" the value has changed with respect to the
comparison operator. If you have an expression like this:
x' = x + y;
where x is the previous key and x' the new key--a possible
implementation of edge relaxation. You still have to compare x and x'
to determine which direction the change was in. Minimally, you'd have
to check y to determine if it was less than 0, assuming the types of
x, x', and y are numeric.
Removing the update() method makes the user work harder. Increase and
decrease are nice when you know that you can optimize.
Andrew