From: Jon Seymour <jon.seymour@gmail.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: git-rev-list: "--bisect" flag
Date: Tue, 21 Jun 2005 00:37:52 +1000 [thread overview]
Message-ID: <2cfc40320506200737113caa9f@mail.gmail.com> (raw)
In-Reply-To: <2cfc403205062003292db2b457@mail.gmail.com>
> I am exploring another variation of the idea which is even simpler.
> Experimentally it seems quite similar to your average case
> performance, but doesn't yet approach your low std deviations.
> However, I think I know why that is, so I will, after a few games of
> pool and a similar number of beers, have another crack at it.
>
Ok, just for information, I have a linear bisection algorithm which
results in a bug-blatt algorithm with the following characteristics on
the Linux 2.6 kernel:
AVERAGE 13.64589235
MEDIAN 13
MAX 28
MIN 9
STDEV 2.171923221
These results were derived by running the algorithm over the full 2118
commits of the
current Linux 2.6 source.
I'll document what this algorithm is and what its flaws are.
The algorithm is as follows:
Consider the graph as a closed network of pipes with N reservoirs of 1
unit of volume. Rotate this graph so the head is at the top. Now, pour
N units of liquid into the top of the network of pipes. The liquid
percolates through the network of pipes and ends up in the reservoirs.
The selected bisection point is the node that saw as close to N/2
units of liquid as any other node.
Now, why isn't this as good (in terms of average and stdev) as Linus'
algorithm? The flaw with this algorithm is that some liquid from peer
nodes reaches the lower half of the network before the liquid that
went through the selected node. As a result, the selected node is
elevated "above" the ideal bisection point, by a factor that I believe
would be sufficient to explain the higher average and also the greater
standard deviation.
Still, my algorithm is very simple and very linear, so it's very good a start.
As it happens, I believe I have (re-?)discovered a precise way to
discover the bisection points in O(n). I am in the midst of
implementing that now.
jon.
prev parent reply other threads:[~2005-06-20 14:32 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-18 6:31 git-rev-list: "--bisect" flag Linus Torvalds
2005-06-19 0:18 ` Jon Seymour
2005-06-19 3:38 ` Jan Harkes
2005-06-19 4:07 ` Jon Seymour
2005-06-19 3:43 ` Linus Torvalds
2005-06-19 5:03 ` Linus Torvalds
2005-06-19 5:05 ` David Lang
2005-06-19 5:30 ` Linus Torvalds
2005-06-19 10:15 ` Jon Seymour
2005-06-19 14:41 ` Jon Seymour
2005-06-19 17:20 ` Linus Torvalds
2005-06-19 17:36 ` Ingo Molnar
2005-06-19 19:01 ` Linus Torvalds
2005-06-19 19:55 ` Jon Seymour
2005-06-20 3:09 ` Linus Torvalds
2005-06-20 3:27 ` Jon Seymour
2005-06-20 3:30 ` Jon Seymour
2005-06-20 10:29 ` Jon Seymour
2005-06-20 14:37 ` Jon Seymour [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2cfc40320506200737113caa9f@mail.gmail.com \
--to=jon.seymour@gmail.com \
--cc=git@vger.kernel.org \
--cc=jon@blackcubes.dyndns.org \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).