<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Four questions about fuzzy rankings</title>
	<atom:link href="http://bit-player.org/2010/four-questions-about-fuzzy-rankings/feed" rel="self" type="application/rss+xml" />
	<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings</link>
	<description>An amateur's outlook on computation and mathematics.</description>
	<pubDate>Thu, 17 May 2012 10:12:15 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: John R</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3232</link>
		<dc:creator>John R</dc:creator>
		<pubDate>Tue, 28 Sep 2010 20:53:23 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3232</guid>
		<description>It is out: 
http://graduate-school.phds.org/rankings/mathematics
http://graduate-school.phds.org/rankings/computer-science

Math: 
1-4	Princeton University 
1-3	University of California-Berkeley 
2-5	Harvard University                
2-6	New York University               
4-9	Stanford University               
4-12 University of Michigan-Ann Arbor 
4-11 Yale University      
5-11 Massachusetts Institute of Technology 
5-16 Pennsylvania State University-Main Campus	
6-15 University of Wisconsin-Madison 	
8-28 University of California-Los Angeles 
9-25 Columbia University in the City of New York 

Computer Science: 
1-2	Stanford University 
2-4	Princeton University
2-5	Massachusetts Institute of Technology
3-6	University of California-Berkeley
3-10 Carnegie Mellon University  
5-12 Cornell University    
4-16 University of Illinois at Urbana-Champaign	
5-14 University of North Carolina at Chapel Hill
6-16 University of California-Los Angeles
6-18 University of California-Santa Barbara    

Odd: Stanford has to be #1 since there aren't any others...</description>
		<content:encoded><![CDATA[<p>It is out:<br />
<a href="http://graduate-school.phds.org/rankings/mathematics" rel="nofollow">http://graduate-school.phds.org/rankings/mathematics</a><br />
<a href="http://graduate-school.phds.org/rankings/computer-science" rel="nofollow">http://graduate-school.phds.org/rankings/computer-science</a></p>
<p>Math:<br />
1-4	Princeton University<br />
1-3	University of California-Berkeley<br />
2-5	Harvard University<br />
2-6	New York University<br />
4-9	Stanford University<br />
4-12 University of Michigan-Ann Arbor<br />
4-11 Yale University<br />
5-11 Massachusetts Institute of Technology<br />
5-16 Pennsylvania State University-Main Campus<br />
6-15 University of Wisconsin-Madison<br />
8-28 University of California-Los Angeles<br />
9-25 Columbia University in the City of New York </p>
<p>Computer Science:<br />
1-2	Stanford University<br />
2-4	Princeton University<br />
2-5	Massachusetts Institute of Technology<br />
3-6	University of California-Berkeley<br />
3-10 Carnegie Mellon University<br />
5-12 Cornell University<br />
4-16 University of Illinois at Urbana-Champaign<br />
5-14 University of North Carolina at Chapel Hill<br />
6-16 University of California-Los Angeles<br />
6-18 University of California-Santa Barbara    </p>
<p>Odd: Stanford has to be #1 since there aren&#8217;t any others&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barry Cipra</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3114</link>
		<dc:creator>Barry Cipra</dc:creator>
		<pubDate>Sun, 01 Aug 2010 14:26:24 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3114</guid>
		<description>Let me rephrase that "really good question" you attributed to me yesterday:  The permanent tells us the maximum number of different permutations that can be OR-summed to produce a given ormat, but what is the corresponding minimum number?  Also, in how many different ways can the minimum be achieved?

To go a little further, let p denote the permanent and m denote the minimum for a given ormat A, let P be the (maximal) set of all permutations whose OR-sum is A (so &#124;P&#124;=p), and let M1, M2, ..., Mr be all the different minimal sets (meaning &#124;Mi&#124;=m for i=1,...,r) with OR-sum A.  Obviously the union of the Mi's is contained in P, but is it necessarily equal to P?</description>
		<content:encoded><![CDATA[<p>Let me rephrase that &#8220;really good question&#8221; you attributed to me yesterday:  The permanent tells us the maximum number of different permutations that can be OR-summed to produce a given ormat, but what is the corresponding minimum number?  Also, in how many different ways can the minimum be achieved?</p>
<p>To go a little further, let p denote the permanent and m denote the minimum for a given ormat A, let P be the (maximal) set of all permutations whose OR-sum is A (so |P|=p), and let M1, M2, &#8230;, Mr be all the different minimal sets (meaning |Mi|=m for i=1,&#8230;,r) with OR-sum A.  Obviously the union of the Mi&#8217;s is contained in P, but is it necessarily equal to P?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Frans</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3107</link>
		<dc:creator>Frans</dc:creator>
		<pubDate>Thu, 29 Jul 2010 03:28:17 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3107</guid>
		<description>In your update you seem to say  John R's proposed algorithm is recursive, which in fact it is not. John R's algorithm is the following:

For each 1 entry in the matrix, delete the row and column containing this entry. Interpret the smaller matrix as a biadjacency matrix, and search for a perfect matching in the bipartite graph that corresponds to this matrix. (I.e., not "recurse" as you write in your update.)

If a perfect matching exists for all 1s, then the matrix is an ormat, otherwise it is not.

This algorithm is easily seen to be polynomial time: the running time is at most the number of ones in the matrix (which is at most n^2) times the running time of a perfect matching algorithm.

For completeness' sake here is also the correctness: If for every 1-entry in the matrix a perfect matching is found, then or-ing the matrices corresponding to these perfect matchings gives the orginal ormat: we know that for every 1-entry there is a perfect matching that has a one in that position, and for every 0-entry we know that these will never be included in any perfect matching.

If for some 1-entry a perfect matching cannot be found, then that means there does not exist a ranking that has the corresponding element in the corresponding position (because otherwise this ranking would give you the perfect matching that you are looking for).</description>
		<content:encoded><![CDATA[<p>In your update you seem to say  John R&#8217;s proposed algorithm is recursive, which in fact it is not. John R&#8217;s algorithm is the following:</p>
<p>For each 1 entry in the matrix, delete the row and column containing this entry. Interpret the smaller matrix as a biadjacency matrix, and search for a perfect matching in the bipartite graph that corresponds to this matrix. (I.e., not &#8220;recurse&#8221; as you write in your update.)</p>
<p>If a perfect matching exists for all 1s, then the matrix is an ormat, otherwise it is not.</p>
<p>This algorithm is easily seen to be polynomial time: the running time is at most the number of ones in the matrix (which is at most n^2) times the running time of a perfect matching algorithm.</p>
<p>For completeness&#8217; sake here is also the correctness: If for every 1-entry in the matrix a perfect matching is found, then or-ing the matrices corresponding to these perfect matchings gives the orginal ormat: we know that for every 1-entry there is a perfect matching that has a one in that position, and for every 0-entry we know that these will never be included in any perfect matching.</p>
<p>If for some 1-entry a perfect matching cannot be found, then that means there does not exist a ranking that has the corresponding element in the corresponding position (because otherwise this ranking would give you the perfect matching that you are looking for).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3105</link>
		<dc:creator>James</dc:creator>
		<pubDate>Wed, 28 Jul 2010 00:23:38 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3105</guid>
		<description>"The Hopcroft-Karp portion looks subtle enough to be a mild programming challenge."  

Graph algorithms like this are everywhere on the internet, take it from a toolbox.  But as Alex says, with contiguous intervals you can probably do linear time (haven't thought about it).</description>
		<content:encoded><![CDATA[<p>&#8220;The Hopcroft-Karp portion looks subtle enough to be a mild programming challenge.&#8221;  </p>
<p>Graph algorithms like this are everywhere on the internet, take it from a toolbox.  But as Alex says, with contiguous intervals you can probably do linear time (haven&#8217;t thought about it).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barry Cipra</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3104</link>
		<dc:creator>Barry Cipra</dc:creator>
		<pubDate>Tue, 27 Jul 2010 20:22:17 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3104</guid>
		<description>Not to beat a dead horse completely into the ground, but I think it's worth clarifying the similarities and differences between my failed approach to deciding whether a given k x k 0-1 matrix is ormat and the polynomial-time approach based on Hall's Marriage Theorem for perfect matchings.  (Many thanks to James for pinpointing the O(k^2.5)-time Hopcroft-Karp algorithm.  It's good to know I wasn't not seeing something utterly obvious and trivial!)

The most telling and important difference, of course, is that my approach produces an algorithm that gives wrong answers, whereas the perfect-matching approach actually solves the problem correctly.  But let's such minor matters aside, and just consider what the two approaches do to get the answers they do.

The two approaches are similar in that they each answer the question, Is this 0-1 matrix an ormat?, by asking a related question about a batch of minors corresponding to some or all of the nonzero entries and, in effect, AND-ing the answers together.  But that's where the similarity ends.

Modulo a few details that are at this point irrelevant, my approach essentially asks the exact same question -- Is this 0-1 matrix an ormat? -- about exactly three minors.  The perfect-matching approach, on the other hand, asks a *different* question -- Does this 0-1 matrix contain a permutation matrix? -- about *all* the minors (corresponding to nonzero entries).  In both approaches, the answer has to be Yes for each minor query in order for the overall answer to be Yes -- as soon as you get a No, you can stop.

By asking the exact same question at each level, my approach is naturally recursive, and one can imagine implementing it as a fairly simple (albeit inefficient) program.  It's truly a shame it gives wrong answers!  (As I said in an early posting, if it does return the overall answer Yes, you know you've got the correct answer.  Unfortunately, it appears likely that it almost always stumbles across an incorrect No.)

The perfect-matching approach uses the Hopcroft-Karp algorithm (or some equivalent) to answer the questions about the minors.  So it's more of a subroutine, or function call, approach than recursive.  The Hopcroft-Karp portion looks subtle enough to be a mild programming challenge.  (The Wikipedia description boils it down to four key steps, but I'll be the first to admit I don't understand all the verbiage.)

It's worth noting that although the Hopcroft-Karp algorithm runs in O(k^2.5) time, it has to be run for each minor corresponding to a nonzero entry in the k x k matrix, of which there are O(k^2), so a straightforward subroutine implementation results in a O(k^4.5)-time algorithm.  That's probably still practical for small to moderate values of k, but it's good to keep in mind that at some power of k, even theoretically efficient, polynomial-time algorithms get a little dicey, so there's still a roll for the occasional exponential-time horse and buggy.  That said, however, it's certainly the case that a polynomial-time algorithm that gives correct answers is infinitely preferable to an exponential-time algorithm that's almost always wrong!</description>
		<content:encoded><![CDATA[<p>Not to beat a dead horse completely into the ground, but I think it&#8217;s worth clarifying the similarities and differences between my failed approach to deciding whether a given k x k 0-1 matrix is ormat and the polynomial-time approach based on Hall&#8217;s Marriage Theorem for perfect matchings.  (Many thanks to James for pinpointing the O(k^2.5)-time Hopcroft-Karp algorithm.  It&#8217;s good to know I wasn&#8217;t not seeing something utterly obvious and trivial!)</p>
<p>The most telling and important difference, of course, is that my approach produces an algorithm that gives wrong answers, whereas the perfect-matching approach actually solves the problem correctly.  But let&#8217;s such minor matters aside, and just consider what the two approaches do to get the answers they do.</p>
<p>The two approaches are similar in that they each answer the question, Is this 0-1 matrix an ormat?, by asking a related question about a batch of minors corresponding to some or all of the nonzero entries and, in effect, AND-ing the answers together.  But that&#8217;s where the similarity ends.</p>
<p>Modulo a few details that are at this point irrelevant, my approach essentially asks the exact same question &#8212; Is this 0-1 matrix an ormat? &#8212; about exactly three minors.  The perfect-matching approach, on the other hand, asks a *different* question &#8212; Does this 0-1 matrix contain a permutation matrix? &#8212; about *all* the minors (corresponding to nonzero entries).  In both approaches, the answer has to be Yes for each minor query in order for the overall answer to be Yes &#8212; as soon as you get a No, you can stop.</p>
<p>By asking the exact same question at each level, my approach is naturally recursive, and one can imagine implementing it as a fairly simple (albeit inefficient) program.  It&#8217;s truly a shame it gives wrong answers!  (As I said in an early posting, if it does return the overall answer Yes, you know you&#8217;ve got the correct answer.  Unfortunately, it appears likely that it almost always stumbles across an incorrect No.)</p>
<p>The perfect-matching approach uses the Hopcroft-Karp algorithm (or some equivalent) to answer the questions about the minors.  So it&#8217;s more of a subroutine, or function call, approach than recursive.  The Hopcroft-Karp portion looks subtle enough to be a mild programming challenge.  (The Wikipedia description boils it down to four key steps, but I&#8217;ll be the first to admit I don&#8217;t understand all the verbiage.)</p>
<p>It&#8217;s worth noting that although the Hopcroft-Karp algorithm runs in O(k^2.5) time, it has to be run for each minor corresponding to a nonzero entry in the k x k matrix, of which there are O(k^2), so a straightforward subroutine implementation results in a O(k^4.5)-time algorithm.  That&#8217;s probably still practical for small to moderate values of k, but it&#8217;s good to keep in mind that at some power of k, even theoretically efficient, polynomial-time algorithms get a little dicey, so there&#8217;s still a roll for the occasional exponential-time horse and buggy.  That said, however, it&#8217;s certainly the case that a polynomial-time algorithm that gives correct answers is infinitely preferable to an exponential-time algorithm that&#8217;s almost always wrong!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Lopez-Ortiz</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3103</link>
		<dc:creator>Alex Lopez-Ortiz</dc:creator>
		<pubDate>Tue, 27 Jul 2010 19:59:48 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3103</guid>
		<description>&lt;i&gt;What am I not seeing here that makes Hall’s theorem into a linear-time test, as Alex says it is?&lt;/i&gt;

Its linear time when the ranges are [1..n] and contiguous as they are in this case. 

If the ranges are not contiguous, e.g. a university is either 2nd or 7th or 9-11th, then the best running time is achieved with a general matching algorithm with best known complexity of O(n^2.5) as James said.</description>
		<content:encoded><![CDATA[<p><i>What am I not seeing here that makes Hall’s theorem into a linear-time test, as Alex says it is?</i></p>
<p>Its linear time when the ranges are [1..n] and contiguous as they are in this case. </p>
<p>If the ranges are not contiguous, e.g. a university is either 2nd or 7th or 9-11th, then the best running time is achieved with a general matching algorithm with best known complexity of O(n^2.5) as James said.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3102</link>
		<dc:creator>James</dc:creator>
		<pubDate>Tue, 27 Jul 2010 15:34:28 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3102</guid>
		<description>It is polynomial time, not linear time.   In the cited Wikipedia link, or here http://en.wikipedia.org/wiki/Hopcroft-Karp_algorithm , it says that a maximum matching can be found in O(k^{5/2}) time, where k is the number of vertices/dimension of the matrix.  There are several other efficient algorithms; this is a very well-studied problem.</description>
		<content:encoded><![CDATA[<p>It is polynomial time, not linear time.   In the cited Wikipedia link, or here <a href="http://en.wikipedia.org/wiki/Hopcroft-Karp_algorithm" rel="nofollow">http://en.wikipedia.org/wiki/Hopcroft-Karp_algorithm</a> , it says that a maximum matching can be found in O(k^{5/2}) time, where k is the number of vertices/dimension of the matrix.  There are several other efficient algorithms; this is a very well-studied problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barry Cipra</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3101</link>
		<dc:creator>Barry Cipra</dc:creator>
		<pubDate>Tue, 27 Jul 2010 11:55:14 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3101</guid>
		<description>James, I wouldn't say the approach I described is worthless because it's based on an exponential-time algorithm.  It's worthless because it's WRONG.  To the question, Is this (large) matrix omat?, it tends to say No even when the correct answer is Yes.  (It has the minor virtue of never saying Yes when the answer should be No, but that's not much of a virtue, especially if it simply always, or almost always, says No.)

I was beguiled by the notion that one might approach Brian's Question 4 with a conceptually simple recursive algorithm, in essence answering the question, Is this (large) matrix ormat? by asking the same question of a relatively small set of slightly smaller matrices.  It was clear from the get-go that such an approach would be exponential-time, but it occurred to me that its simplicity would nonetheless leave it practical enough to extend Brian's calculations for a few more values of k, past what he'd been able to do by sheer brute force.  I do think what I described could well be run in a reasonable amount of time for most random 0-1 matrices up to around k=20.  The problem is, the results would be worthless.

It's not entirely clear to me that the algorithm Alex (and John R.) posted, invoking Hall's Marriage Theorem, is necessarily practical -- or even obviously polynomial-time.  When I looked up Hall's theorem on Wikipedia, the application to bipartite graphs (with edges connecting vertices in a set S with those in a set T of equal size) simply says there is a perfect matching if and only if a certain inequality holds FOR ALL SUBSETS of S.  So unless there's more to the theorem, or some additional cleverness, you're looking at a 2^k-ish computation.  What am I not seeing here that makes Hall's theorem into a linear-time test, as Alex says it is?</description>
		<content:encoded><![CDATA[<p>James, I wouldn&#8217;t say the approach I described is worthless because it&#8217;s based on an exponential-time algorithm.  It&#8217;s worthless because it&#8217;s WRONG.  To the question, Is this (large) matrix omat?, it tends to say No even when the correct answer is Yes.  (It has the minor virtue of never saying Yes when the answer should be No, but that&#8217;s not much of a virtue, especially if it simply always, or almost always, says No.)</p>
<p>I was beguiled by the notion that one might approach Brian&#8217;s Question 4 with a conceptually simple recursive algorithm, in essence answering the question, Is this (large) matrix ormat? by asking the same question of a relatively small set of slightly smaller matrices.  It was clear from the get-go that such an approach would be exponential-time, but it occurred to me that its simplicity would nonetheless leave it practical enough to extend Brian&#8217;s calculations for a few more values of k, past what he&#8217;d been able to do by sheer brute force.  I do think what I described could well be run in a reasonable amount of time for most random 0-1 matrices up to around k=20.  The problem is, the results would be worthless.</p>
<p>It&#8217;s not entirely clear to me that the algorithm Alex (and John R.) posted, invoking Hall&#8217;s Marriage Theorem, is necessarily practical &#8212; or even obviously polynomial-time.  When I looked up Hall&#8217;s theorem on Wikipedia, the application to bipartite graphs (with edges connecting vertices in a set S with those in a set T of equal size) simply says there is a perfect matching if and only if a certain inequality holds FOR ALL SUBSETS of S.  So unless there&#8217;s more to the theorem, or some additional cleverness, you&#8217;re looking at a 2^k-ish computation.  What am I not seeing here that makes Hall&#8217;s theorem into a linear-time test, as Alex says it is?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3100</link>
		<dc:creator>James</dc:creator>
		<pubDate>Tue, 27 Jul 2010 07:13:44 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3100</guid>
		<description>Barry, Alex already posted a polynomial-time algorithm...</description>
		<content:encoded><![CDATA[<p>Barry, Alex already posted a polynomial-time algorithm&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barry Cipra</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3099</link>
		<dc:creator>Barry Cipra</dc:creator>
		<pubDate>Tue, 27 Jul 2010 06:21:15 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3099</guid>
		<description>Brian, just an afterthought:  It might be helpful to your audience if you inserted an editorial comment at the top of my 8:15 post warning people not to bother reading it carefully, but to look at the subsequent retraction instead.</description>
		<content:encoded><![CDATA[<p>Brian, just an afterthought:  It might be helpful to your audience if you inserted an editorial comment at the top of my 8:15 post warning people not to bother reading it carefully, but to look at the subsequent retraction instead.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barry Cipra</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3098</link>
		<dc:creator>Barry Cipra</dc:creator>
		<pubDate>Tue, 27 Jul 2010 06:12:38 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3098</guid>
		<description>Rats!  My apologies to anyone who spent time trying to read the previous posting, withdrawing the withdrawal.  It's all nonsense.

It *is* true (I think) that if every minor looked at by the algorithm(s) I outlined turns out to be an ormat, then your matrix is an ormat, and what I said about the ormaticity of (sub)matrices with a row or column having a single 1 is also correct (I think).  But the "only if" part of the algorithm is most certainly false, as the very simplest example shows:

1 1 1
1 1 1
1 1 0

The (1,1) minor here is

1 1
1 0

which is NOT an ormat, but the 3x3 matrix IS an ormat.

Sorry!</description>
		<content:encoded><![CDATA[<p>Rats!  My apologies to anyone who spent time trying to read the previous posting, withdrawing the withdrawal.  It&#8217;s all nonsense.</p>
<p>It *is* true (I think) that if every minor looked at by the algorithm(s) I outlined turns out to be an ormat, then your matrix is an ormat, and what I said about the ormaticity of (sub)matrices with a row or column having a single 1 is also correct (I think).  But the &#8220;only if&#8221; part of the algorithm is most certainly false, as the very simplest example shows:</p>
<p>1 1 1<br />
1 1 1<br />
1 1 0</p>
<p>The (1,1) minor here is</p>
<p>1 1<br />
1 0</p>
<p>which is NOT an ormat, but the 3&#215;3 matrix IS an ormat.</p>
<p>Sorry!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barry Cipra</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3097</link>
		<dc:creator>Barry Cipra</dc:creator>
		<pubDate>Tue, 27 Jul 2010 01:15:02 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3097</guid>
		<description>&lt;blockquote&gt;[Editor's note: Barry says don't waste your time reading this comment. (I say it's &lt;em&gt;not&lt;/em&gt; a waste of time, but I've agreed to post this note anyway.)]&lt;/blockquote&gt;

OK, I've thought things over somewhat more carefully, and I'm prepared to partially withdraw my withdrawal.  The greedy recursion I initially proposed can be made to work -- and then vastly improved -- with a minor modification.

The fly in the ointment occurs when your minimal row or column has a single 1 in it.  If that entry is also the only 1 in its column or row, everything is OK, you just recurse on its minor.  But if there's another 1, you should instead stop then and there and declare the whole shebang as not an ormat.  So I really should have said the following is easy to see:

Pick any row or column of the matrix in question.  By transposing things if necessary, we can say we've picked a row.  If the row has more than one 1, the matrix is an ormat if and only if each of the minors corresponding to the row's 1's is an ormat.  If the row has a single 1, then the matrix is an ormat if and only if that entry is the only 1 in its column and its minor is an ormat.  (And if the row has no 1's at all, the matrix is obviously not an ormat.)

It may be a good idea at this point to see why that's easy to see.

Since ormats are defined as OR-sums of permutation matrices, it's clear we're free to permute rows and columns at will, as well as transposing, so without loss of generality, we can assume we've picked the first row, whose nonzero entries are in its first few columns.  If there's a single 1 in the first row, but more than that one 1 in the first column, then clearly the matrix is not an ormat:  those other 1's cannot be accounted for as coming from any permutation matrix, because any such matrix would have to have a nonzero entry elsewhere in the first row.  In essence, row one having its only nonzero entry in column one says that First Place can only go to Institution One, hence it makes no sense to ever talk about it coming in second or lower.

On the other hand, if the 1 in the (1,1) position is the only 1 in both its row and column, then it's equally clear we need only check that its minor is an ormat.  That is, each of the minor's 1's is accounted for by a permutation that rates Institutions 2-k in Positions 2-k.

Of course it goes almost without saying that if the first row has no 1's, the matrix can't possibly be an ormat.

Finally, if there are multiple 1's in the first row, then we need to check that each of them is accounted for by some permutation matrix.  This is certainly true if each of their minors is an ormat.  But what's most important here is that, by checking that each minor is an ormat, you've now verified (in some cases, multiple times!) that each of the 1's below the first row is accounted for as coming from some permutation matrix.  This doesn't happen for all 1's if there's only a single 1 in the first row, but it does as soon as there is a second 1.

So it's clear by now, I hope, that greedy recursion, suitably modified, does the trick.  But in fact it's possible to do even better.  Here's how.

Pick any nonzero entry and, by permuting rows and columns, move it to the (1,1) position.  If it's the only 1 in the first row, check if it's the only the only 1 in the first column.  If it isn't, you can declare the matrix as non-ormat; if it is, apply this algorithm (recursively) to its minor.  If there's a second 1 in the first row and in the first column, apply the algorithm to all three minors.  Without loss of generality (by permuting rows and/or columns as necessary), we can assume these other 1's are the (1,2) and (2,1) entries.  The large matrix is an ormat if and only if all three minors are ormats.

That's because the (1,1) minor being ormat establishes that the (1,1) entry and all the 1's below it and to its right are accounted for by some permutation, so it remains to verify that the other 1's in the first row and in the first column are accounted for.  Checking that the (1,2) minor is ormat establishes that the rest of the 1's in the first column are accounted for, and checking that the (2,1) minor is ormat does the same for the rest of the 1's in the first row.  (The converse is also obvious:  if the minor of some 1 is not ormat, that 1 cannot come from any permuation matrix.)

This still bogs down for large k, but its complexity is only order 3^k-ish instead of k!-ish, so it looks even more likely to be useful out to around k=20.  I'm sorry to be so rambling, but I thought it best not to try to be too terse this time.</description>
		<content:encoded><![CDATA[<blockquote><p>[Editor's note: Barry says don't waste your time reading this comment. (I say it's <em>not</em> a waste of time, but I've agreed to post this note anyway.)]</p></blockquote>
<p>OK, I&#8217;ve thought things over somewhat more carefully, and I&#8217;m prepared to partially withdraw my withdrawal.  The greedy recursion I initially proposed can be made to work &#8212; and then vastly improved &#8212; with a minor modification.</p>
<p>The fly in the ointment occurs when your minimal row or column has a single 1 in it.  If that entry is also the only 1 in its column or row, everything is OK, you just recurse on its minor.  But if there&#8217;s another 1, you should instead stop then and there and declare the whole shebang as not an ormat.  So I really should have said the following is easy to see:</p>
<p>Pick any row or column of the matrix in question.  By transposing things if necessary, we can say we&#8217;ve picked a row.  If the row has more than one 1, the matrix is an ormat if and only if each of the minors corresponding to the row&#8217;s 1&#8217;s is an ormat.  If the row has a single 1, then the matrix is an ormat if and only if that entry is the only 1 in its column and its minor is an ormat.  (And if the row has no 1&#8217;s at all, the matrix is obviously not an ormat.)</p>
<p>It may be a good idea at this point to see why that&#8217;s easy to see.</p>
<p>Since ormats are defined as OR-sums of permutation matrices, it&#8217;s clear we&#8217;re free to permute rows and columns at will, as well as transposing, so without loss of generality, we can assume we&#8217;ve picked the first row, whose nonzero entries are in its first few columns.  If there&#8217;s a single 1 in the first row, but more than that one 1 in the first column, then clearly the matrix is not an ormat:  those other 1&#8217;s cannot be accounted for as coming from any permutation matrix, because any such matrix would have to have a nonzero entry elsewhere in the first row.  In essence, row one having its only nonzero entry in column one says that First Place can only go to Institution One, hence it makes no sense to ever talk about it coming in second or lower.</p>
<p>On the other hand, if the 1 in the (1,1) position is the only 1 in both its row and column, then it&#8217;s equally clear we need only check that its minor is an ormat.  That is, each of the minor&#8217;s 1&#8217;s is accounted for by a permutation that rates Institutions 2-k in Positions 2-k.</p>
<p>Of course it goes almost without saying that if the first row has no 1&#8217;s, the matrix can&#8217;t possibly be an ormat.</p>
<p>Finally, if there are multiple 1&#8217;s in the first row, then we need to check that each of them is accounted for by some permutation matrix.  This is certainly true if each of their minors is an ormat.  But what&#8217;s most important here is that, by checking that each minor is an ormat, you&#8217;ve now verified (in some cases, multiple times!) that each of the 1&#8217;s below the first row is accounted for as coming from some permutation matrix.  This doesn&#8217;t happen for all 1&#8217;s if there&#8217;s only a single 1 in the first row, but it does as soon as there is a second 1.</p>
<p>So it&#8217;s clear by now, I hope, that greedy recursion, suitably modified, does the trick.  But in fact it&#8217;s possible to do even better.  Here&#8217;s how.</p>
<p>Pick any nonzero entry and, by permuting rows and columns, move it to the (1,1) position.  If it&#8217;s the only 1 in the first row, check if it&#8217;s the only the only 1 in the first column.  If it isn&#8217;t, you can declare the matrix as non-ormat; if it is, apply this algorithm (recursively) to its minor.  If there&#8217;s a second 1 in the first row and in the first column, apply the algorithm to all three minors.  Without loss of generality (by permuting rows and/or columns as necessary), we can assume these other 1&#8217;s are the (1,2) and (2,1) entries.  The large matrix is an ormat if and only if all three minors are ormats.</p>
<p>That&#8217;s because the (1,1) minor being ormat establishes that the (1,1) entry and all the 1&#8217;s below it and to its right are accounted for by some permutation, so it remains to verify that the other 1&#8217;s in the first row and in the first column are accounted for.  Checking that the (1,2) minor is ormat establishes that the rest of the 1&#8217;s in the first column are accounted for, and checking that the (2,1) minor is ormat does the same for the rest of the 1&#8217;s in the first row.  (The converse is also obvious:  if the minor of some 1 is not ormat, that 1 cannot come from any permuation matrix.)</p>
<p>This still bogs down for large k, but its complexity is only order 3^k-ish instead of k!-ish, so it looks even more likely to be useful out to around k=20.  I&#8217;m sorry to be so rambling, but I thought it best not to try to be too terse this time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barry Cipra</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3094</link>
		<dc:creator>Barry Cipra</dc:creator>
		<pubDate>Mon, 26 Jul 2010 21:59:26 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3094</guid>
		<description>Oh dear, let me withdraw that last comment.  What I said is easy to see is only easy to see if you're not thinking very carefully.  It's just not true!</description>
		<content:encoded><![CDATA[<p>Oh dear, let me withdraw that last comment.  What I said is easy to see is only easy to see if you&#8217;re not thinking very carefully.  It&#8217;s just not true!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barry Cipra</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3093</link>
		<dc:creator>Barry Cipra</dc:creator>
		<pubDate>Mon, 26 Jul 2010 18:38:13 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3093</guid>
		<description>Pick any row or column of a 0-1 matrix and consider the minors corresponding to each of the non-zero entries in the chosen row or column (i.e., the (k-1)x(k-1) matrix obtained by eliminating the row and column of the non-zero entry).  It's easy to see that the large matrix is an ormat if and only if each and every one of the minors is an ormat.  This suggests a recursive algorithm with a greedy aspect:  Pick a row or column with a minimal number of 1's and recursively invoke the same process for each of the minors.

This clearly bogs down for large values of k, and may even occasionally get hung up in moderate-sized cases, but it should be sufficiently efficient to extend the computations for the graph prompting Question 4, maybe out to around k=20.  After all, a random 0-1 matrix is likely to have at least one row or column with a "smaller than average" number of 1's.  At the very least, greedy recursion fairly quickly spots which of the three 5x5 matrices you asked about is not an ormat (and confirms that the other two are).</description>
		<content:encoded><![CDATA[<p>Pick any row or column of a 0-1 matrix and consider the minors corresponding to each of the non-zero entries in the chosen row or column (i.e., the (k-1)x(k-1) matrix obtained by eliminating the row and column of the non-zero entry).  It&#8217;s easy to see that the large matrix is an ormat if and only if each and every one of the minors is an ormat.  This suggests a recursive algorithm with a greedy aspect:  Pick a row or column with a minimal number of 1&#8217;s and recursively invoke the same process for each of the minors.</p>
<p>This clearly bogs down for large values of k, and may even occasionally get hung up in moderate-sized cases, but it should be sufficiently efficient to extend the computations for the graph prompting Question 4, maybe out to around k=20.  After all, a random 0-1 matrix is likely to have at least one row or column with a &#8220;smaller than average&#8221; number of 1&#8217;s.  At the very least, greedy recursion fairly quickly spots which of the three 5&#215;5 matrices you asked about is not an ormat (and confirms that the other two are).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jim</title>
		<link>http://bit-player.org/2010/four-questions-about-fuzzy-rankings#comment-3089</link>
		<dc:creator>jim</dc:creator>
		<pubDate>Sun, 25 Jul 2010 17:21:04 +0000</pubDate>
		<guid isPermaLink="false">http://bit-player.org/?p=731#comment-3089</guid>
		<description>What's the precision of the probability matrix itself?

Program H has a 42% chance of being 2nd, but a 0% chance being 3rd? Even with C, G and D breathing down it's neck?

The raw score for each school should be a distribution, but the NRC has picked some confidence level and built an interval out of it. Is it clear that that level is equal to that of the matrix? Or does all that manipulation start to compound the potential errors?</description>
		<content:encoded><![CDATA[<p>What&#8217;s the precision of the probability matrix itself?</p>
<p>Program H has a 42% chance of being 2nd, but a 0% chance being 3rd? Even with C, G and D breathing down it&#8217;s neck?</p>
<p>The raw score for each school should be a distribution, but the NRC has picked some confidence level and built an interval out of it. Is it clear that that level is equal to that of the matrix? Or does all that manipulation start to compound the potential errors?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

