<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-786333285568106173</id><updated>2009-12-07T13:16:45.052-05:00</updated><title type='text'>WebDiarios de Motocicleta</title><subtitle type='html'>Informatics Weekly, written by Mihai Pătraşcu.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default?start-index=26&amp;max-results=25'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>139</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-5098542847347496402</id><published>2009-12-04T08:02:00.002-05:00</published><updated>2009-12-04T08:17:38.323-05:00</updated><title type='text'>Talks</title><content type='html'>I am giving two talks in Bucharest this coming week:&lt;div&gt;&lt;ul&gt;&lt;li&gt;a more practical one at Poly on Monday (December 7) at 6pm in room EC 101 (Fac. Automatică şi Calculatoare)&lt;/li&gt;&lt;li&gt;a more theoretical one at UniBuc on Friday (December 11). Room and time to be announced here, but it will be earlier in the afternoon.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Abstracts below. Don't forget to vote on Sunday.&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;i&gt;Funcţii de hash tabulare&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Implementarea tabelelor de hash folosind căutare liniară (linear probing) este mai eficientă decât alte implementări dacă funcţia de hash este suficient de alteatoare. Din păcate, linear probing se comportă foarte prost în conjuncţie cu funcţiile de hash bazate pe înmulţire (cele mai folosite în practică), şi ca atare, acest algoritm este deseori evitat.&lt;br /&gt;&lt;br /&gt;Voi descrie o funcţie de hash foarte simplă, care este la fel de rapidă ca înmulţirea pe procesoarele actuale, dar se bazează pe indexarea în tabele precalculate. O analiză matematică ne demonstrează că această funcţie garantează timp de rulare constant pentru tabelele de hash.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: rgb(80, 0, 80); "&gt;&lt;i&gt;Rezultate negative pentru structuri de date&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Cum demonstrăm că anumite rezultate algoritmice sunt imposibil de obţinut? Spre exemplu, cum demonstrăm că nu există nicio structură de date cu spațiu liniar care poate suporta range queries în timp constant? În acest curs, voi descrie o demonstrație completă a acestui rezultat, trecând prin mai mulți pași simpli, dar interesanți.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="im" style="color: rgb(80, 0, 80); "&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-5098542847347496402?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/5098542847347496402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=5098542847347496402' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/5098542847347496402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/5098542847347496402'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/12/talks.html' title='Talks'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-4272819242134434766</id><published>2009-11-24T11:41:00.001-05:00</published><updated>2009-11-24T11:42:26.242-05:00</updated><title type='text'>FOCS 2010</title><content type='html'>The FOCS 2010 website is already &lt;a href="http://www.focs2010.com/"&gt;up&lt;/a&gt;. This promises to be a very interesting conference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-4272819242134434766?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/4272819242134434766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=4272819242134434766' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/4272819242134434766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/4272819242134434766'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/11/focs-2010.html' title='FOCS 2010'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-5082541697431093716</id><published>2009-11-10T14:56:00.002-05:00</published><updated>2009-11-10T15:59:50.259-05:00</updated><title type='text'>A Simple Encoding Proof</title><content type='html'>In this post, I discuss a nice and simple example of an encoding proof, showing that maintaining partial sums require Ω(lg &lt;i&gt;n&lt;/i&gt;) time per operation.&lt;div&gt;&lt;br /&gt;Go ahead and read the lecture notes in &lt;a href="http://people.csail.mit.edu/mip/docs/blog/dynlogn.pdf"&gt;[PDF]&lt;/a&gt;. Or, if you prefer a more visual exposition, try the &lt;a href="http://people.csail.mit.edu/mip/docs/blog/dynlogn.pptx"&gt;[PPTX]&lt;/a&gt; or &lt;a href="http://people.csail.mit.edu/mip/docs/blog/dynlogn.ppt"&gt;[PPT]&lt;/a&gt; presentation. (These were extracted from my thesis and job talk.)&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you are teaching a data structures course, you should consider teaching this. (It's already done at MIT by &lt;a href="http://erikdemaine.org/"&gt;Erik&lt;/a&gt; and UIUC by &lt;a href="http://compgeom.cs.uiuc.edu/~jeffe/"&gt;Jeff&lt;/a&gt;.) I feel it's quite improper to teach data structures without some lower bounds; this is akin to teaching algorithms without NP-completeness. Now, if you're going to teach a lower bound, this is probably the easiest you'll ever get (certainly teachable to undergrads), and it does prove something very interesting: that binary trees are optimal for aggregation-type problems.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, for a bit of amusing history. This result was the very first paper I ever wrote, back in SODA'04. In the fall of my freshman year, I asked a friend if there were any cool theory problems left to solve, and he suggested P vs NP as quite interesting. I googled up some useful definitions, and worked on it for several months -- unfortunately without much success :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the second semester, I convinced Erik to pay me to do theory research -- this is called exploitation of a confused young faculty by a freshman. Expecting that I should publish something to retain my job, I decided to work on simpler lower bound questions, which (amazingly!) were still said to be open on some internet pages. In particular, my google searches had revealed Miltersen's survey on cell-probe complexity, which said that an Ω(lg &lt;i&gt;n&lt;/i&gt;) bound was a big challenge.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Arrogant as I am, I didn't let such things intimidate me, and I proved the bound. Of course, I hadn't heard of such things as entropy at the time, but I had learned about Kolmogorov complexity from Sipser's book, which I was reading to develop background on P vs NP. The concept was obvious: you simply count strings of length &lt;i&gt;n&lt;/i&gt; and &lt;i&gt;n-&lt;/i&gt;O(1), and conclude that there exist incompressible strings. Thus, my proof was in terms of incompressible strings. (A referee comment later suggested that the authors should learn the useful concept of entropy, so I read up on Wikipedia and changed the terminology in the paper.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I then came to Erik to explain the proof (which didn't go well at all, since I was essentially just standing in front of a blackboard and saying "It's obvious!"), and to ask about writing a paper. He explained that there are these theory conferences "STOC" and "FOCS" and one on algorithms/theory with a more practical focus, called "SODA." He did not elaborate on the relative rankings of these, but he didn't have to, since the situation was obvious. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I decided to be bold and submit to "SODA." My paper was unfortunately all about theory, but it was about an important practical problem, and I had a very good lower bound for it, so maybe it would make the cut even in the top conference, which cared about practically-important research. If it was rejected, I would have to resign and just publish it along with all the purely-theoretical crap that probably fills these "STOC" and "FOCS" conferences.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The rest is history. I went to Romania during the summer, and had to finish the paper over my parents' 56K modem connection. It got accepted. At the conference, some people said "amazing" and others had no clue what an augmented binary tree was. And, for some reason, 6.5 years later, I am still doing theory...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-5082541697431093716?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/5082541697431093716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=5082541697431093716' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/5082541697431093716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/5082541697431093716'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/11/simple-encoding-proof.html' title='A Simple Encoding Proof'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-7117143604220909221</id><published>2009-10-23T20:48:00.002-04:00</published><updated>2009-10-24T16:38:19.021-04:00</updated><title type='text'>Encoding Proofs</title><content type='html'>Various fields have various notions of "nice proofs," be they &lt;i&gt;combinatorial&lt;/i&gt;, or &lt;i&gt;elementary&lt;/i&gt;, or &lt;i&gt;bijective&lt;/i&gt;. In TCS, perhaps the correct standard for lower bound proofs should be "encoding proofs." In these proofs, one starts with the assumption that some algorithm exists, and derives from that some impossible encoding algorithm, e.g. one that can always compress &lt;i&gt;n &lt;/i&gt;bits into &lt;i&gt;n&lt;/i&gt;-1 bits.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A normal lower bound will have a lot of big-bad-ugly statements -- "there are at least A bad sets (cf Definition 12), each containing at least B elements, of which at most a fraction of C are ugly (cf Definition 6)". To deal with such things, one invokes concentrations left and right, and keeps throwing away rows, columns, elements, and any hope that the reader will not get lost in the details.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are 3 huge problems with this:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Most lower bounds cannot be taught in a regular class. But we can't go on saying how problems like P-vs-NP are so awesome, and keep training &lt;i&gt;all&lt;/i&gt; our graduate students to round LPs better and squeeze randomness from stone.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The reader will often not understand and appreciate the simple and beautiful idea, as it is too hard to pull apart from its technical realization. Many people in TCS seem to think lower bounds are some form of dark magic, which involves years of experience and technical development. There is certainly lots of dark magic in the step where you find small-but-cool tricks that are the cornerstone of the lower bound; the rest can be done by anybody.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You start having lower-bounds researchers who are so passionate about the technical details that they actually think that's what was important! I often say "these two ideas are identical" only to get a blank stare. A lower bound &lt;i&gt;idea&lt;/i&gt; never talks about entropy or rectangle width; such things are synonymous in the world of ideas.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Proofs that are merely an algorithm to compress &lt;i&gt;n&lt;/i&gt; bits have elegant linearity properties (entropy is an expectation, therefore linear), and you never need any ugly concentration. Anybody, starting with a mathematically-mature high school student, could follow them with some effort, and teaching them is feasible. Among researchers, such proofs are games of wits and creativity, not games involving heavy guns that one may or may not have in their toolkit.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;***&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;My paper on lower bounds for succinct rank/select data structures was submitted to SODA in extraordinary circumstances. I had been travelling constantly for a month, and the week before the deadline I was packing to move out of California and down with a flu. In the end, the only time I found for the paper was on an airplane ride to Romania, but of course I had no laptop since I had just quit IBM. So I ended up handwriting the paper on my notepad, and quickly typing it in on my sister's laptop just in time for the deadline.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;[ You would be right to wonder why anybody would go through such an ordeal. I hate submitting half-baked papers, and anyway I wanted to send the paper to STOC. But unfortunately I was literally forced to do this due to some seriously misguided (I apologize for the hypocritical choice of epithets)  behavior by my now-coauthor on that paper. ]&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;If you have 8 hours for a paper, you use all the guns you have, and make it work. But after the paper got in, I was haunted by a feeling that a simple encoding proof should exist. I've learnt long ago not to resist my obsessions, so I ended up spending 3 weeks on the paper -- several dozen times more than before submission :). I am happy to report that I found a nice encoding proof, just "in time" for the SODA camera-ready deadline. (As you know, in time for a camera-ready deadline means 2 weeks and 1 final warning later.)&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The paper is &lt;a href="http://people.csail.mit.edu/mip/papers/index.html#ranklb"&gt;here&lt;/a&gt;, if you are interested.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-7117143604220909221?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/7117143604220909221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=7117143604220909221' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/7117143604220909221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/7117143604220909221'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/10/encoding-proofs.html' title='Encoding Proofs'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-4074110978661977637</id><published>2009-10-08T07:57:00.002-04:00</published><updated>2009-10-08T08:34:21.086-04:00</updated><title type='text'>Nobels</title><content type='html'>Since we've been talking about prizes, let me mention the recently announced Nobel awards for 2009.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In &lt;a href="http://nobelprize.org/nobel_prizes/physics/laureates/2009/press.html"&gt;Physics&lt;/a&gt;, half the prize goes to two retired researchers from the old Bell Labs, Willard Boyle and George Smith. According to &lt;a href="http://en.wikipedia.org/wiki/Bell_Labs"&gt;Wikipedia&lt;/a&gt;, this is the 7&lt;sup&gt;th&lt;/sup&gt; time the Nobel prize is won for work done at Bell Labs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course, the Lab is not what it used to be. After the famous AT&amp;amp;T/Lucent split of 1996, AT&amp;amp;T Bell Labs split into Lucent's Bell Labs (currently in a somewhat precarious state), and AT&amp;amp;T Labs, Inc. AT&amp;amp;T Labs experienced massive corporate pain at one point (famously firing an entire machine learning group in one shot), but currently appears to be in good shape (for instance, two machine learning researchers from AT&amp;amp;T were in the team that won the recent &lt;a href="http://en.wikipedia.org/wiki/Netflix_Prize"&gt;Netflix Challenge&lt;/a&gt;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course, there is no active Physics research going on today, so the Nobel is only about past glory. But could the Labs win a Turing award for current work? Possibly, although it's certainly not a top contender. At least some baby steps are being taken to turn this place back into a real research lab: Howard Karloff recently bought a ping-pong table.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;***&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In other news, &lt;a href="http://en.wikipedia.org/wiki/Herta_M%C3%BCller"&gt;Herta Müller&lt;/a&gt; won the Nobel in literature. She is a Romanian-born Banat Schwab (a German ethnic group in Romania and Serbia). She lived the first 34 years in Romania, and later emigrated to Germany in 1987. Her work focuses on the harsh life under Romanian communism, and so she was not allowed to publish freely before leaving Romania.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In Romania, her work is essentially unknown -- as you might imagine, we have enough Romanian-language authors writing on the same topic, some of which are unquestionably very good.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-4074110978661977637?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/4074110978661977637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=4074110978661977637' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/4074110978661977637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/4074110978661977637'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/10/nobels.html' title='Nobels'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-8044918874702680853</id><published>2009-10-02T21:23:00.002-04:00</published><updated>2009-10-03T16:05:23.520-04:00</updated><title type='text'>Follow-up</title><content type='html'>&lt;div&gt;My previous blog post generated a record number of comments (74 as I write this). Of course, this is not necessarily something to write home about, but I am proud that we might have passed the threshold of 5 intelligent comments to a post.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I pulled away from it due to some travel (which was a good idea anyway), so let me get back with some follow-up observations.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;1. &lt;/b&gt;Michael &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Mitzenmacher&lt;/span&gt; &lt;a href="http://mybiasedcoin.blogspot.com/2009/09/blog-posts-of-day.html"&gt;discussed&lt;/a&gt; the post, and the comments there are quite interesting (or depressing, depending on your point of view). I have always said that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;TCS&lt;/span&gt; is headed for bad trouble given how we educate the current generation of students. We will end up with a batch of researchers who have never heard of 90% of the problems at the intersection of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;TCS&lt;/span&gt; and the rest of CS, who successfully turn our discipline into philosophy while day dreaming about turning it into pure mathematics.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you may see among the comments, there are people who have actually never heard of those problems, yet are fully confident in their comprehensive understanding. When faced with commentators who actually like the problems, there are only two logical conclusions open to them: these guys are either insane, or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Mihai&lt;/span&gt; himself (two possibilities that are not mutually exclusive, of course).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, one cannot take conclusions based on blog discussions too seriously. But I will volunteer anecdotal evidence from a talk at Weizmann: when I asked who knew what a "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Voronoi&lt;/span&gt; diagram" was, a few sporadic hands came up. (Go try this at home!) The problem: Weizmann is an excellent school, educating many of our future colleagues.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;2. &lt;/b&gt;Some people asked whether I would have gone to UCSD, had they made me an offer first. This is impossible to tell. I was certainly considering it wholeheartedly, but I didn't even have the answers from all places at the time, so I cannot know how my opinion would have evolved.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Many commentators seem to have missed that the post was about psychology, not logic. I did not explain how (1) UCSD made an offer to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Costis&lt;/span&gt; implied (2) I rejected UCSD; I explained my perception of (1). Indeed, you are missing some facts that contributed to "(1) implies (2)," at least some of which are not appropriate for blogs --- even by my &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;unorthodox&lt;/span&gt; standard.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;3. &lt;/b&gt;Another thing that I did not comment on (except inside some people's minds) was the work of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Costis&lt;/span&gt;. If you want to hear his work being put down, you really don't need me; tune in to the appropriate non-blog channels and I can guarantee you won't be disappointed. (This is to be expected for any person who achieved some degree of notoriety at early age, and perhaps got more hype than he had bargained for.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In fact, my opinion is quite the opposite: I find &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Costis&lt;/span&gt; to be a very deep thinker, both technically and meta-technically. We repeatedly went for beers and I can report no significant disagreements were found, in spite of liberal comments during said encounters :). For example, due to my algorithmic sensibilities, it is quite clear that I consider the complexity of computing Nash to be very important (it is a concrete, central, and structurally-interesting algorithmic question).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;4. &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Many negative comments were knee-jerk reactions, fully reflecting people's frustrations and insecurities. In the US culture, it would be customary to apologize for insulting people's sensibilities (I never figured out whether such apologies are interpreted as sincere, or they are merely correct protocol). Of course, things are rather different in my own culture, and it has never been my priority to tread lightly. So let me offer the typical Romanian advice in such circumstances: "Don't worry; life may be hard, but it passes quickly."&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;5. &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Some more commentators found it hard to accept my comments given "my position" (whatever they interpreted my position to be). The most constructive of them told me to look at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Hamming's&lt;/span&gt; well-known &lt;a href="http://www.cs.virginia.edu/~robins/YouAndYourResearch.pdf"&gt;speech&lt;/a&gt; so that I may learn "&lt;/span&gt;&lt;span class="Apple-style-span"   style="  font-weight: normal; color: rgb(51, 51, 51); line-height: 18px; font-family:'Trebuchet MS', Verdana, Arial, sans-serif;font-size:small;"&gt;how it is possible to get the considerable benefits of egotism without needlessly pissing people off&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;."&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;I find this particularly funny, since I once learned the position of a great information theorist, a contemporary of Hamming. It was roughly "Eh, Hamming... He's just arrogant, he never had any really good results."&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This reminds me of something that a friend told me a long time ago: "the most crucial ingredient in the greatest paintings is the light bulb in the room; even the work the best painters is quite dull in a dark room." &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you find that your point of view doesn't allow you to see what is being said, perhaps you can try another one temporarily.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;5. &lt;/b&gt;Finally, let me respond to somebody who seems to write politely and in good faith:&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); line-height: 18px; font-family:'Trebuchet MS', Verdana, Arial, sans-serif;font-size:small;"&gt;I was on a hiring committee in one of these schools that decided not to interview you. Although I hesitated to post this comment, I think what I have to say will be helpful to your career.&lt;/span&gt;&lt;/blockquote&gt;Thank you for the comment; I appreciate the difficulty in writing on such a topic.&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); line-height: 18px; font-family:'Trebuchet MS', Verdana, Arial, sans-serif;font-size:small;"&gt;The reason we decided against further considering your case was because of your reputation as a very difficult, arrogant, and opinionated person. We even read your blog and found many posts that confirmed this reputation.&lt;/span&gt;&lt;/blockquote&gt;I am aware that suggestions of this form were made. Of course, I may point out the significant pitfalls in searching for evidence (in a blog, of all places) for something that you are already biased to believe. I may also point out that the places that actually know me (the labs were I did internships) both made me offers, and a notable fraction of the universities where I interviewed were also interested in hiring me. So the suggestions may be a bit exaggerated, or perhaps there is a high variance in how people perceive me. If for some reason your university finds itself interested in my case, I would consider a conversation at a conference or an invitation for a talk as more reliable courses of action.&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); line-height: 18px; font-family:'Trebuchet MS', Verdana, Arial, sans-serif;font-size:small;"&gt;At least in our university, a post like this one significantly hurts your chances of getting a job. We don't want to hire a person who writes a blog post insulting their departmental colleagues every time they're not nominated for a fellowship or an award. "I can't believe my department decided to nominate X for a Sloan Fellowship when my research is so much deeper than X's."&lt;/span&gt;&lt;/blockquote&gt;If your department has no faculty engaging in the common activity of "bitching and moaning," I am not sure whether I should envy you for your luck, or worry about the hyper-formal environment that you may have in place. It is safe to say that I am not good at keeping rank formation; but it is also fair to say that I choose the battles where I pull out of the formation very selectively.&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); line-height: 18px; font-family:'Trebuchet MS', Verdana, Arial, sans-serif;font-size:small;"&gt;You're smart, but there are *many* (equally) smart (or smarter) people who are also publicly nice.&lt;/span&gt;&lt;/blockquote&gt;It is my hope that I will prove you wrong on this statement.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-8044918874702680853?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/8044918874702680853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=8044918874702680853' title='35 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/8044918874702680853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/8044918874702680853'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/10/follow-up.html' title='Follow-up'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>35</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-686905763822672202</id><published>2009-09-28T14:31:00.003-04:00</published><updated>2009-09-28T16:26:45.686-04:00</updated><title type='text'>Loser Awards</title><content type='html'>In spring of 2008, as I was interviewing for jobs, I briefly considered going to UCSD. The interview there was a vast success for them (i.e. I, the candidate, liked them a lot). While I was quite upset about not having any interviews at the top universities, it was also quite obvious to me that UCSD would not be a bad place to be.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately, the sequence of events took a turn that contradicted what they had been telling me. They were originally hoping to make two offers, one to me and one to &lt;a href="http://www.eecs.berkeley.edu/~costis/"&gt;Costis&lt;/a&gt;. As this plan was rejected by the higher authorities, they went ahead and made an offer to Costis with something like a 1-week expiration date, promising me a quick offer at the end of the week if he hadn't accepted in the mean time.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you might guess, I had no hesitation in sending the following email:&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"   style="  border-collapse: collapse; font-family:arial, sans-serif;font-size:13px;"&gt;Dear **** and ****,&lt;br /&gt;&lt;br /&gt;I very much enjoyed my visit to UCSD and continuing contact with your faculty. Thank you very much for inviting me.&lt;br /&gt;&lt;br /&gt;However, I must let you know that recent developments, such as an unfortunate hiring decision reached by your department that you have kindly communicated to me, have cast some doubt in my mind regarding your long-term strategy for becoming one of the top research departments in the theory of computation. It is not without regret that I have reached the conclusion that my employment in your department might not be mutually beneficial at this stage.&lt;br /&gt;&lt;br /&gt;I would therefore like to withdraw my application from consideration by your hiring committee. I would appreciate it if you could communicate this in a timely manner to the relevant members of your faculty, along with my regrets for the situation.&lt;br /&gt;&lt;br /&gt;With best regards and due consideration,&lt;br /&gt;Mihai Patrascu&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Reportedly, some people in the department found this to be funny, some others were annoyed, and yet others were depressed. Obviously, the delivery was meant to be funny, but the message was nothing other than serious (it was not passionate, for instance). Their decision had revealed important information about their goals and thought process, and this information helped me reach my decision.&lt;br /&gt;&lt;br /&gt;They did actually make me an offer the next week, and invited me to a re-visit, which, reportedly, would've been quite nice (featuring sail boats, for instance). People who didn't know me encouraged me to go, hoping I could change my mind. People who knew me encouraged me to go as retaliation (have fun on their money). However, my idea of fun in the nature does not include any of the pampering I was certain to get, so I turned them down without further consideration.&lt;br /&gt;&lt;br /&gt;One of my principles in life is to never mistake a loser's award for an award. Sure, one could tell one self that getting a faculty job is great, that the market is tough, that getting an offer in any circumstance is a nice achievement, etc. But my own conclusion was that, for reasons that merited further investigation, I had simply not gotten an interview at the top places, and lost in some direct competition with Costis. That interview season was nothing but a failure; that I should get a job &lt;i&gt;somewhere&lt;/i&gt; was not a success for someone with my CV.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;***&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;Today, I received another loser's award. MIT gave 3 Sprowls awards (aka Best Thesis in Computer Science), including one to me. However, they can only forward 2 theses to the ACM competition, and they instead chose to forward another &lt;a href="http://www.mit.edu/~vinodv/thesis.pdf"&gt;theory thesis&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now, I am not trying to insult the Sprowls award. I'm sure it was a success to many people who received it. But I was convinced that I had a serious claim to the ACM award, so this decision came as a major surprise to me. I have no intention of painting this award as anything other than a failure. Unlike interviews (which I will likely go through again and affect my career in nontrivial ways), this incident probably doesn't even deserve serious consideration. I doubt there are lessons to be learned beyond a reminder of the politics inside academia, and the lip-service type of commitment that our discipline has to proving lower bounds.&lt;br /&gt;&lt;br /&gt;One question remains, though. What should I write back? Right now, the only thing I can think of is to instruct them to send my certificate to Santa Claus, 100 Snow Way, North Pole (or maybe to &lt;a href="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=100+lungomare,+pula+croatia&amp;amp;sll=44.859915,13.838782&amp;amp;sspn=0.020929,0.045447&amp;amp;gl=us&amp;amp;ie=UTF8&amp;amp;z=16&amp;amp;iwloc=A"&gt;100 Lungamare, Pula, Croatia&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-686905763822672202?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/686905763822672202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=686905763822672202' title='80 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/686905763822672202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/686905763822672202'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/09/loser-awards.html' title='Loser Awards'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>80</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-3751638294190381246</id><published>2009-09-10T21:21:00.005-04:00</published><updated>2009-09-11T00:06:00.850-04:00</updated><title type='text'>Labs vs Academia</title><content type='html'>The topic of the day seems to be labs vs academia (sparked by &lt;a href="http://www.zephoria.org/thoughts/archives/2009/08/25/am_i_an_academi.html"&gt;this&lt;/a&gt;, and indirectly by &lt;a href="http://mysliceofpizza.blogspot.com/2009/09/www2010.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Muthu&lt;/span&gt;&lt;/a&gt;, picked up by &lt;a href="http://mybiasedcoin.blogspot.com/2009/09/research-labs-vs-academia.html"&gt;Michael &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Mitzenmacher&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://jonkatz.wordpress.com/2009/09/10/industry-vs-academia/"&gt;Jon &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Katz&lt;/span&gt;&lt;/a&gt;). I thought I would contribute my own perspective, since I've been in labs for about a year, and went through university/lab and lab/lab transitions recently.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Location.&lt;/b&gt; For those of us with families, location is one of the main factors. It is not easy to get a job in a top lab, but it &lt;i&gt;is&lt;/i&gt; much easier than in a &lt;b&gt;top&lt;/b&gt; university, simply because a lot more people go through the lab system (see below). Consider the three prime markets: NY, Bay Area, and Boston. &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;In the Bay Area, Berkeley / Stanford weren't interested in interviewing me, but IBM gave me jobs (both a temporary and a full-time one, which was great). &lt;/li&gt;&lt;li&gt;In the NY area, Princeton / NYU / Columbia weren't interested, but, again, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;ATT&lt;/span&gt; gave me a job. &lt;/li&gt;&lt;li&gt;In Boston, the problem remains unsolved since &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;MSR&lt;/span&gt; New &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;England&lt;/span&gt; is not in the mood to hire young people. But arguably there are many more non-top-but-good universities, so this compensates (around San Francisco, for instance, this alternative is entirely lacking).&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;For me, location made the decision between IBM and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;ATT&lt;/span&gt; (since California tries quite hard to keep foreign medical doctors away).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To see the difference between the chance of getting a job in labs vs universities, think about the numbers: IBM, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;ATT&lt;/span&gt;, and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;MSR&lt;/span&gt; Silicon Valley were willing to hire in theory (and they did) on my particular year, but among the top universities only MIT did.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;As for the non-prime locations, there is a wide range between almost-prime and really-avoid. I had offers from some almost-prime ones (Atlanta and San Diego), and I think I would've been happy with them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, I want to add that I don't buy Jon &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Katz's&lt;/span&gt; argument that non-prime locations are cheaper. Think about what you want; the cost depends very much on your utility function. For me, things that matter include flight time (and cost) to Europe, availability of Romanian/Eastern European wine and food, and closeness to mountains (the worst thing about NY). Things that don't matter include the price of houses in suburbs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Career prospects. &lt;/b&gt;Let me make this explicit: the chance that you will grow old in a lab is slim. Think of your lab career as a 5-year postdoc, and be prepared to reapply to faculty jobs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sure, labs will go through a great deal of effort to tell you that this is not true. But look around: the vast majority old people in labs are either the big founder-of-the-group types, or people who are post-faculty &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;positions&lt;/span&gt; (they had one and left). The number of people who go &lt;i&gt;through&lt;/i&gt; the lab system is significantly higher than the number of people who stay (which is great for young job seekers, as I mentioned above).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am not sure what causes this empirical fact, but I can offer some hypotheses:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Tradition and culture encourage you to leave for universities at some point;&lt;/li&gt;&lt;li&gt;Labs reliably go through periods of instability, where things turn really bad, and most of the group leaves. Some labs never recover, while others recovered quite successfully, but with a significantly changed group (see IBM &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Almaden&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;ATT&lt;/span&gt;).&lt;/li&gt;&lt;li&gt;If you spend too many years in a lab, there is a danger that you fade into &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;TCS&lt;/span&gt; oblivion. (You get integrated more into practical groups, and stop being a theorist; you lose contact with the recent trends; etc.)&lt;/li&gt;&lt;li&gt;The perspective of having students seems much more attractive once you get tired of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;nitty&lt;/span&gt; gritty details and would like to delegate some.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Thus, my recommendation to job seekers is to &lt;i&gt;consider labs as very high risk venture&lt;/i&gt;, compared to a job in a university. On the one hand, if you choose the lab option, you will most likely seek to move to a university later, so make sure that your track record stays very competitive. On the other hand, if you choose a university, CS departments are exceedingly friendly and rumour has it that tenure is easy to come by (even if your record as Assistant Professor is one notch lower than it was as a PhD student, when you were hired --- as someone put it, "people who get jobs at top places are brilliant, while people who get tenure at top places are very good").&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Freedom for in-depth work. &lt;span class="Apple-style-span" style="font-weight: normal; "&gt;If you're reading the discussion above as saying that a university job is always better, you're missing the fact that "risk" is always two-sided. The one aspect where labs &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;excel&lt;/span&gt; is the ability to do in-depth work.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As faculty, you have to worry about your classes, your students, and your grants. These will slowly push you to be more stable, reliable, and risk-avoiding (turning you from brilliant to very good). No matter how insensitive you are, chances are you will care about your students at least a little bit, and you will think twice before hanging their life paths on some super-risky venture. (Not to mention that you have to train them before they can join you on said super-risky venture.) And ignoring the students is also hard to do in practice; they drain a lot of mental energy from you. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In a lab, you have to worry about not getting fired, and nothing else. Theory-wise, you can take large risks if you care to (you're not affecting anybody else), and you don't owe anybody any significant share of your brain.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;In-breadth work.&lt;/b&gt; As I showed above, labs are much better for in-depth, risky, theoretical work. How about if you fancy yourself doing non-theoretical work? The situation is exactly the opposite.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Labs are the ideal place to collaborate on &lt;i&gt;standard&lt;/i&gt; problems with people across Computer Science. There are many people in the lab doing practical things. You get brownie points for working with them, and they are very interested in working with you (I think they also get brownie points). They don't have an empire of students that they can't really leave; they have time for you. Their problems make sense, i.e. you won't dismiss them as "practice" (as someone put it, in universities, most of "practice" doesn't apply to practice, which is a big turn-off for some theoreticians who try to stick their heads outside theory). You can question their model as much as you like, since lab people have the real data, and they are open to revising their understanding of the world if you see that data in a different light.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But if you want to go broader and riskier, you're out of luck. You simply cannot work in theoretical linguistics, both because there's nobody around you whom you can talk to, and because nobody in the management wants to hear about you doing this. And you cannot even work on anything too non-standard in computer science -- companies are surprisingly risk averse and slow. (You may remember the story of a theory guy who came up with the Google page-rank scheme around the same time; he was in an industrial lab, while the Google founders were at a university. Which of them turned this into a billion-dollar product?)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thus, if you fancy yourself as revolutionary outside theory, go for a university (and start by getting tenure). If you want to solve really cool problems inside a bigger system, a lab is the place to be. In a university, you will simply never hear about those problems, and in a start-up you will not face them. (A start-up has to do one thing very well, and other things less than horribly; they don't have much variety for deep thinkers.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Salary.&lt;/b&gt; If that matters a lot for you, I have bad news. Salaries in labs are really not what they're rumoured to be. They are, indeed, higher than in universities, but only marginally so. From the data points I have, this seems to hold true at any level (e.g. comparing middle age lab people with Associate Professors.) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In fact, be prepared to negotiate for &lt;i&gt;any&lt;/i&gt; salary advantage. My initial offer was equal to the initial offer I got for a 9-months salary at a university! It got increased significantly after I laughed them off. (I heard a very good phrase that I recommend: "I certainly prefer to come to your place on intellectual grounds alone; but my wife would find it very strange that I am refusing this other job with such nice benefits." -- somehow HR people never argue with the stereotype of a wife interested in money :) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Intellectual honesty. &lt;/b&gt;In some sense, the lab offers you a great feeling of intellectual honesty: you have seen the real problems (even if you don't work on them). You have informed opinions on what is really important outside theory, and you may get to do such work yourself.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But the labs can also be awful on the same grounds of intellectual honesty. You have to ask for &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;permission&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;IP&lt;/span&gt;-clearance before you publish anything. If you do anything that might be interpreted as important, there is a risk that you are forced to patent it (a horrible thing from my own ethical perspective, due to the way patents are abused and misused in the US). And if you want to write a library for the world to use, chances are it will be very hard to release it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Personal freedom and appreciation of your work.&lt;/b&gt; People complain about boring faculty meetings, and other such annoyances in the life of a professors. Well, labs are worse. There are, for instance, the unbelievably ridiculous things, like hour-long mandatory courses on the effectiveness of sending polite emails to coworkers. As opposed to a professors, whose relation to the university is more like a member in a coop, in a lab there are people above you who have no respect for you or your time.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then there are the moderately ridiculous things, like cutting coffee to save money. Again, it comes down to the fact the decisions are made by people who don't know you or have any respect for you.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, there is the issue of travel. Faculty may complain (rightly) about the horrors of periodic begging for grants, but it is nowhere are demeaning as begging for every single trip you want to make (whether your lab should pay, or some external source is paying). I'm not saying travel approvals are harder to write -- they are much easier than grant proposals; but their periodic, and insignificant nature makes them demeaning. (This issue is especially bad during times of economic hardship. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;Muthu&lt;/span&gt; once mentioned a deal of the form "add $15K to my salary and I'll never file a reimbursement form." In certain times, the deal you get at labs is really like "we'll add $0 to your salary, and you never file a reimbursement form.")&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course, objectively things are not bad. We have high enough salaries to afford coffee, and even all scientific travel when it comes to that (it's tax deductible, so it's half the dollar cost to you). It's all about the fact that somebody far above you sees no difference between your job and a dishwasher's.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are probably many aspects of the lab vs. university comparison that I missed, so feel free to comment or ask.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-3751638294190381246?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/3751638294190381246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=3751638294190381246' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/3751638294190381246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/3751638294190381246'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/09/labs-vs-academia.html' title='Labs vs Academia'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-1841896794979523384</id><published>2009-09-09T23:34:00.002-04:00</published><updated>2009-09-10T00:51:50.246-04:00</updated><title type='text'>SODA / Data Structures</title><content type='html'>The SODA list of accepted papers, &lt;b&gt;with abstracts&lt;/b&gt;, is &lt;a href="http://soda10.cs.princeton.edu/SODA10-abstracts.txt"&gt;here&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are the clear data structures papers:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Fully-Functional Succinct Trees&lt;/i&gt; (Kunihiko Sadakane, Gonzalo Navarro)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;On the Cell Probe Complexity of Dynamic Membership&lt;/i&gt; (Ke Yi, Qin Zhang)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Data Structures for Range Minimum Queries in Multidimensional Arrays&lt;/i&gt; (Hao Yuan, Mikhail J. Atallah)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;A locality-sensitive hash for real vectors&lt;/i&gt; (Tyler Neylon)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Deletion Without Rebalancing in Balanced Binary Trees&lt;/i&gt; (Siddhartha Sen, Robert E. Tarjan)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Cache-Oblivious Dynamic Dictionaries with Optimal Update/Query Tradeoff&lt;/i&gt; (Gerth Stølting Brodal, Erik D. Demaine, Jeremy T. Fineman, John Iacono, Stefan Langerman, J. Ian Munro)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Cell-probe lower bounds for prefix sums and matching brackets&lt;/i&gt; (Emanuele Viola)&lt;br /&gt;+ &lt;i&gt;A Lower Bound for Succinct Rank Queries&lt;/i&gt; (Mihai Patrascu)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Applications of Forbidden 0-1 Matrices to Search Trees and Path Compression-Based Data Structures&lt;/i&gt; (Seth Pettie)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The following are also data structures papers, though they can be seen as stradling two areas:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;A Nearly Optimal Algorithm for Approximating Replacement Paths and k Shortest Simple Paths in General Graphs&lt;/i&gt; (Aaron Bernstein) -- the main contribution is better preprocessing time of a data structure&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Counting Inversions, Offline Orthogonal Range Counting, and Related Problems&lt;/i&gt; (Timothy M. Chan, Mihai Patrascu) -- improves the preprocessing and offline times of some data structures&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Highway Dimension, Shortest Paths, and Provably Efficient Algorithms&lt;/i&gt; (Ittai Abraham, Amos Fiat, Andrew Goldberg, Renato Werneck) -- distance oracles are a very important topic in data structures; this paper is more about modelling, though.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;On the Exact Space Complexity of Sketching and Streaming Small Norms&lt;/i&gt; (Daniel M. Kane, Jelani Nelson, David P. Woodruff) -- whenever you talk about streaming and care about time complexity, this is clearly a data structure; if you solve the problem with k-wise independent hash functions, even more so.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;The 1+&lt;span class="Apple-style-span" style="font-family: arial; font-size: 13px; "&gt;β&lt;/span&gt; Choice Process and Weighted Balls-into-Bins&lt;/i&gt; (Yuval Peres, Kunal Talwar, Udi Wieder) -- more on the power of two choices, though the process is probably unrealistic in a data structures context.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Regular Expression Matching with Multi-Strings&lt;/i&gt; (Philip Bille, Mikkel Thorup) -- stringology is close enough :)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Fast distance multiplication of unit-Monge matrices&lt;/i&gt; (Alexander Tiskin) -- also stringology.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I find the number of papers to be on the low side. There are a couple of rejected papers where I may disagree with the wisdom of the PC, but overall I think the numbers just reflect the fact that the field is old, and progress comes hard.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Disclaimer: Note that this list is not so closely correlated with my interests. There are data structure papers that I am not interested in, and many non-data-structures papers that I am interested in (even among my own papers, only half can be found above).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-1841896794979523384?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/1841896794979523384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=1841896794979523384' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/1841896794979523384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/1841896794979523384'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/09/soda-data-structures.html' title='SODA / Data Structures'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-2269133418350801288</id><published>2009-09-03T16:31:00.002-04:00</published><updated>2009-09-03T17:49:43.272-04:00</updated><title type='text'>What is efficient?</title><content type='html'>In my previous post, I wrote about how calling P "efficient computation" is nothing more than bad philosophy. I think a lot more examples are in order.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Are problems constant size? &lt;span class="Apple-style-span" style="font-weight: normal; "&gt;Opinions that P is efficient often stem from the following understanding of what computers are used for. Let's say that I have to optimize the bus schedules in NYC, and there are some 200 bus routes to consider. Certainly, an O(n&lt;sup&gt;3&lt;/sup&gt;) algorithm is worse than an O(n lg n) algorithm, but there is a really large gap between both of these, and an O(n!) algorithm. Indeed, with an O(n&lt;sup&gt;3&lt;/sup&gt;) running time I will have to buy more/bigger computers, and let them run for a week instead of 30 seconds. But with an O(n!) algorithm, throwing more resources at the problem is simply not possible (I would need a computer the size of Earth). In general, as machines grow in power, more and more polynomial algorithms become usable, whereas exponential algorithms remain similarly useless.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The big fallacy of this argument is assuming that we know what we're doing. We don't! The problem, and the size of the problem changes, often faster that the speed of our computers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you give me an O(n&lt;sup&gt;3&lt;/sup&gt;) algorithm for the bus scheduling problem, all of a sudden I will realize that I can ask for more. Before, I was assuming that each bus route should have a fixed frequency, but certainly I can get better results (in real life) if I allow variable gaps between consecutive buses. All of a sudden, the number of variables in your problem will explode (e.g., there might be 30 cycles on the same bus route during the day). Why did it explode? Only because you told me that you had a faster algorithm.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Twenty years ago, nobody could envision problems of the scale that Google solves today. Now we can, and it's all a fault of the hardware guys. They managed to push storage capacity (disk and RAM) so much, that it makes sense to ask questions about billions of web pages.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For as long as Moore's law is (was) active, we can at best expect the memory size and the processor "power" to grow at the same rate. Even worse, processor power will probably lag behind: doubling the density will roughly double my RAM capacity, but algorithmically I will probably not be able to do double the computation on the CPU (it's hard to exploit parallelism perfectly). With an exponential gap between memory and CPU, it's only linear time algorithms that survive.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;We don't know what we're doing.&lt;/b&gt; A related issue, highlighted in the buses example, is that we don't know what we ultimately want to solve. It depends on what we can solve. If I give you a faster algorithm, you will want to model your problem with more details, making my algorithm too slow.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;The core problem that Internet routers have to solve comes down to nothing more than a binary search (each subnetwork has an IP range, and I have to figure out in which of these ranges my destination IP lies). Could we solve it in O(lg n)? With current data rates and traffic, we probably could (barely). But if we speed it up, we can now maintain that interesting statistic, which allows us to bill customers more accurately. And if we could speed it up some more, we have time-per-packet to fit that extra component, which will allow us to track virus infections ex post facto.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Functionality is never fixed. The more you can do, the more I will ask you to do. It makes equal sense to improve an O(n!) algorithm to O(2&lt;sup&gt;n&lt;/sup&gt;), or to improve an O(n&lt;sup&gt;3&lt;/sup&gt;) algorithm to O(n&lt;sup&gt;2&lt;/sup&gt;), or to improve hash tables by 20% (they're already constant time!). In all cases, you will notice that the problem size was just at the limit of what you could handle, and the new algorithm will make somebody very happy.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Apart from the many examples that I heard about at ATT, I can give another. I am working with an OR guy, the kind of person who teaches at Business School and spent significant time optimizing truck schedules for Amazon (not in theory, but actually chasing 2% improvements that they implemented). Do you know what problem he brought to me? He wants to improve an O(n lg n) algorithm.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I remember a quote from David Karger in Advanced Algorithms. He said that one week after you improve a running time from O(n&lt;sup&gt;2&lt;/sup&gt;) to O(n lg&lt;sup&gt;2&lt;/sup&gt;n), you should celebrate. But two years later, you should work on improving it to O(n); most likely, it is a very interesting problem by now.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Intellectual curiosity. &lt;/b&gt;Ultimately, all arguments about reality cannot compete with our (very developed) sense of the aesthetic. What lives and dies in a branch of mathematics is determined by what trigers our intellectual curiosity. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My ferm belief is that whenever you have a clean and ellegant problem, there will some fascinating behavior, in the eyes of somebody who loves to understand computation, at any one of the levels of the running time hierarchy. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have heard the claim that P-vs-NP is the most interesting question, because it's the root node in our binary search tree for understanding problems --- the first thing we ask is whether this problem is in P or not, and then proceed with two different sets of techniques depending on the answer. The root node of the classification tree has to be the most interesting.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But this argument pales when you remember that we're really chasing the intellectually challenging cases. For many problems, a 5th grader who just learned programming can give a polynomial algorithm. This doesn't tell me anything interesting from a scientific perspective. The most interesting behavior happens right at the phase transitiong where the problem becomes hard. For some problems, it's at O(lglg n), while for some it's at O(2&lt;sup&gt;n&lt;/sup&gt;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;A problem in current TCS. &lt;/b&gt;Of course, I cannot write a post without being provocative :) So let me state what I view as a significant problem in current TCS.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is a field of study, namely approximation algorithms (which includes such newer branches as mechanism design), in which you can do fine without much understanding or appreciation of computation. The name of the game in this subfield is rounding LPs and SDPs, a task which requires geometric skills and discrete Maths skills, but not much algorithmic skills. Heck, many papers in the area don't even have a for loop in them! The only interesting algorithmic content is solving the LP or SDP, which few people really work on.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This has led to a hoard of TCS students with very little appreciation of algorithmic phenomena, who basically learned how to hide them all away under the "polynomial" hood. (I'm sure you've met people who are surprised at the idea of storing some forward and backward pointers between two pieces of information for navigation throughout the algorithm...)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I hope this doesn't ruin the future of our field. Once there's a significant group of such people, we could easily diverge into creating useless problems that can be solved by these techniques, and lose track of the fact that we were supposed to do algorithms and complexity. (As I said before, the field evolves based on what the field finds exciting. Another way to put it is that researchers are often in the business of drawing targets around the arrows that they manage to shoot, and I can see these new targets drifting away from the original big one.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The encouraging bit is that the standards for success in approximation algorithms (for old researchers) still involve crystal clear algorithmic thinking. Consider for instance, the two recent algorithms researchers who won the Gödel Prize: Dan Spielman and Shanghua Teng. They moved from a major polynomial-vs-exponential result with mostly mathematical content (smoothed complexity of LP) to a much more algorithmic question, approximating the sparsest cut in linear time. This latter problem has picked up quite a bit of steam in recent years.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-2269133418350801288?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/2269133418350801288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=2269133418350801288' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/2269133418350801288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/2269133418350801288'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/09/what-is-efficient.html' title='What is efficient?'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-5106695996956476742</id><published>2009-09-02T21:55:00.003-04:00</published><updated>2009-09-02T23:03:33.727-04:00</updated><title type='text'>Food for thought</title><content type='html'>Here is a &lt;a href="http://www.gdd.ro/the-yellow-smiley-face-fata-galbena-care-rade.html"&gt;short movie&lt;/a&gt; (with subtitles) on Romanian parents whose kids &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;emigrated&lt;/span&gt; to the US. It is hilarious, at least for people who have gone through this. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Funny enough, my own parents went through an abridged version of this, even though my mother has a Bachelor in Computer Science. She did her university studies just as Computer Science was introduced, and she got a degree after writing &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;FORTRAN&lt;/span&gt; programs on punch cards. After graduating, her parents convinced her that there was no future in this discipline, so she became a mathematician. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is a funny &lt;a href="http://www.infidels.org/library/historical/rupert_hughes/why_i_quit_going_to_church.html"&gt;article&lt;/a&gt; on religion published in the Cosmopolitan in the 1920s. The author was scared by religious fundamentalists who tried to introduce bills limiting the teaching of evolution. Sound familiar?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When it comes to social issues, I am always more comfortable in Romanian circles than in the US. I never feel the need to engage in a conversation on the existence of God, since I &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;genuinely&lt;/span&gt; consider any person who believes such a thing to be intellectually inferior --- he prefers to rationalize a feeling rather than "&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;truly&lt;/span&gt; feel" a logical conclusion. (Of course, my position is not politically correct in the US.) The truly interesting question, to me, is whether we should allow discrimination on religious grounds --- after all, would you want a professor who has proven himself to be intellectually inferior? While I cannot give a definite answer, I think it is &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;OK&lt;/span&gt; to accept religious people as scientists, since there is a lot of technical work in science --- i.e. there are many useful skills, and they seem to be distributed independently of the particular feature on which religious people show inferiority. Thus, rejecting religious people would reduce the pool of talent, rather than &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;concentrate&lt;/span&gt; it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Via Luca, here is a bad &lt;a href="http://andrewsullivan.theatlantic.com/the_daily_dish/2009/09/robert-wright-against-jerry-coyne.html"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;philosophical&lt;/span&gt; piece&lt;/a&gt; on how efficient algorithms show that God exists. There are, of course, many cringe-inducing examples of bad philosophy that abuses concepts in computer science. This is just one that I saw today.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To quote some from last week, consider some talks from the &lt;a href="http://blog.computationalcomplexity.org/2009/09/musing-from-barriers-workshop.html"&gt;Barriers &lt;/a&gt;workshop at Princeton. "P vs NP is really the deepest question in Mathematics, since it talks about the essence of Mathematical proofs."   "The decades since P-vs-NP was posed really convinced us that this is the right question to ask about computational efficiency."    "P!=NP is a law of the universe."&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, "computational efficiency" means many things in many contexts. If you're sitting inside &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;ATT&lt;/span&gt; routers, O(lg n) may be trivial to achieve, but a prohibitive cost. If you're aggregating over &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Google's&lt;/span&gt; data, O(n&lt;sup&gt;2&lt;/sup&gt;) may be trivial, but &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;prohibitive&lt;/span&gt;. And if you're optimizing the bus schedules in NY, O(n!) may be trivial, but prohibitive. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;P is not the universal definition of "efficient." The P vs NP question is a misnomer for the question "Can you beat backtracking for the following list [...] of problems?", which is, by all accounts, a fascinating question. But substituting P with "efficient" and talking about the universe is just bad philosophy abusing sounds concepts in Computer Science.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Any attempts to ascribe metaphysical (or "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;metamathematical&lt;/span&gt;") meaning to this question is, like religion, a failure to accept the most plausible interpretation of reality, leading to an urge to replace it with a feel-good half-logical explanation.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-5106695996956476742?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/5106695996956476742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=5106695996956476742' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/5106695996956476742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/5106695996956476742'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/09/food-for-thought.html' title='Food for thought'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-5887464916321211403</id><published>2009-08-28T09:28:00.003-04:00</published><updated>2009-08-28T11:19:07.947-04:00</updated><title type='text'>Romania</title><content type='html'>&lt;div&gt;I saw two recent news items that reflect on Romania.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lance &lt;a href="http://blog.computationalcomplexity.org/2009/08/cs-and-web-of-knowledge.html"&gt;blogs&lt;/a&gt; about the ISI Web of Science. I first heard of this thing a few years ago, when the Romanian government instituted paper counting as the means for promotion in any public university. The flavor of paper counting was that you only count "articles" in ISI "A-ranked" publications. This means, for instance, that I could not get a job there, since all my journal papers are in special issues (so they don't count, plus I don't really have a clue which TCS journals are A-ranked).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, the basic idea of the Romanian government was not bad. The Romanian university system is fundamentally screwed up on all levels (I will post about this later). Anything that will force them to engage with the rest of the world is generally a good idea. For instance, I would support the idea of having committees that decide minimal area-specific requirements. Say, "you may not apply for a faculty job in TCS group before you have at least 2 papers in STOC, FOCS, SODA, or SoCG." The idea would not be paper counting, but forcing people to notice the outside world (they might like it, and stay involved). Anything except a formal requirement is unlikely to work (since all senior faculty never heard of the outside world, you cannot base the system on recommendation letters, or the idea that a hiring committee will make intelligent decisions).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But the ISI implementation of the idea turned out to be quite wrong. It does not work in TCS, for instance, and it is abused in the other disciplines, as well. The common strategy is to fight hard to get some Romanian journal in the ISI list (say, "Modern Metallurgy" as a somewhat fictional example). Then, accepting papers in that journal is no longer a question of merit, but one of connections (yes, of course your cousin's daughter will get a job in our department) and bribe (yes, editor, of course I will be glad to have you as co-investigator on my compiler optimizations grant). The journal starts being filled with articles like "Red-Black trees with Faster Deletions, and Applications to Steel Production."&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;On to the second piece of news. BBC and others ran articles on how Madonna was booed at her own concert in Romania, when she spoke against discrimination against gypsies. I thought it would be good to discuss some context for that.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Discrimination against gypsies has its roots in the vanilla-flavored discrimination against any minority which is poor, uneducated, and prone to engaging in criminal behavior. As with the black community in the US, the most frequent critique that you hear in Romania is that the "uneducated" feature was by choice, i.e. it stems from the traditional values of the community. There is probably more of a case for this in Romania (where the communist regime made education mandatory, showered students with fellowships, and made all decisions based on anonymous written exams) than in the US (where many inner city schools are in disarray). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As far as I can tell, education or a stable job eliminates discrimination; we certainly had gypsy teachers in high school, and I never heard any negative comment about it. Again this is different from the US, where affirmative action programs have created a way to rationalize discrimination, even, say, against black MIT alumni.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In any case, contemporary discrimination against gypsies is driven by something quite different: a certain segment of the European media and politicians. Today, there is wide-spread (and very vocal) discrimination against Romanians in some European countries, with extremist politicians calling for mass deportations and things like that. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Again, this is vanilla-flavored discrimination against the large immigrant group who is willing to do more work for less money. But as wage and unemployment numbers don't make good ratings, the media show is built on specific examples: the accordion-playing beggars with 3 naked children in their arms, the pick-pockets, the guys who ate the swans from some park, the shanty houses outside Rome... &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The problem? These people are usually gypsies bearing Romanian passports. These highly publicized examples have created a great deal of resentment among Romanians, both towards the Europeans who fail to understand the local ethnic differences, and towards the easier target, the gypsy community.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To illustrate this feeling, I attach a song from a well-known Romanian hip-hop band entitled "Message for Europe." (Warning: strong language, especially in Romanian; the English subtitles are not too good, and nothing can really do justice to the brilliant lyrics -- but you get the idea.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/HfygBMc7PN8&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/HfygBMc7PN8&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-5887464916321211403?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/5887464916321211403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=5887464916321211403' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/5887464916321211403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/5887464916321211403'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/08/romania.html' title='Romania'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-1548171183075933801</id><published>2009-08-26T15:05:00.003-04:00</published><updated>2009-08-26T15:11:05.687-04:00</updated><title type='text'>Longest Multipermutation</title><content type='html'>Here's an algorithmic problem for your enjoyment:&lt;br /&gt;&lt;blockquote&gt;Define a multipermutation to be a sequence of integers that contains all numbers from 1 to some &lt;i&gt;K&lt;/i&gt; at least once. Examples include (1,3,1,2,2), or (1,4,3,2); but not (1,2,3,5,5).&lt;br /&gt;&lt;br /&gt;Given an array of &lt;i&gt;n&lt;/i&gt; integers, find the longest multipermutation in O(&lt;i&gt;n&lt;/i&gt;) time.&lt;br /&gt;&lt;/blockquote&gt;I saw a recent paper doing this in superlinear time, and of course I had to find a linear-time algorithm :) Can you also find one?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-1548171183075933801?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/1548171183075933801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=1548171183075933801' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/1548171183075933801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/1548171183075933801'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/08/longest-multipermutation.html' title='Longest Multipermutation'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-3576720444518512532</id><published>2009-08-23T05:41:00.003-04:00</published><updated>2009-08-26T15:04:44.464-04:00</updated><title type='text'>A Technical Lemma</title><content type='html'>[You can also read &lt;a href="http://people.csail.mit.edu/mip/papers/ranklb/soda-lemma.pdf"&gt;this post in PDF&lt;/a&gt;.]&lt;br /&gt;&lt;br /&gt;In a recent SODA submission, I had to prove a small technical lemma that I considered more or less straightforward. But what exactly is straightforward is in the eye of the beholder, and one of the referees did not like my (succinct and semicoherent) proof. I was thus asked to provide as detailed an explanation as I could, pronto. (&lt;a href="http://infoweekly.blogspot.com/2008/06/lsd-randomized-lower-bounds.html"&gt;Sound familiar&lt;/a&gt;? I maintain that we are all too often missing the forest for the trees, but that's a topic for another post.)&lt;br /&gt;&lt;br /&gt;Anyway, I thought I would take the opportunity to explain this small technical lemma to my readers who fancy themselves working with entropy inequalities in the future. If you do lower bounds, such things will sooner or later feel quite standard (as standard as, say, maintaining some forward and backward pointers in your algorithm). So if you fancy yourself working in this area, you might consider going through this proof carefully as an exercise.&lt;br /&gt;&lt;br /&gt;(A word of caution: Don't be discouraged if this seems overly technical. This is not "what we do" in lower bounds — the point is to discover non-straightforward stuff. Piano skills are not what makes a great composer.)&lt;br /&gt;&lt;br /&gt;So, what exactly are we proving? Let A[0..n-1] be a bit vector, chosen uniformly at random. Let Q(i)=A[0]+...+A[i] be the partial sums of the vector (these were queries in my original problem).&lt;br /&gt;&lt;br /&gt;I imagine the vector A being split into k blocks of n/k bits each. I denote by Q&lt;sub&gt;Δ&lt;/sub&gt; the Δ-th partial sum inside each block, i.e. the vector ( Q(Δ), Q(Δ + n/k), Q(Δ + 2n/k), ...).&lt;br /&gt;&lt;br /&gt;We now look at Q&lt;sub&gt;0&lt;/sub&gt; (the first query in each block) and Q&lt;sub&gt;Δ&lt;/sub&gt; for some arbitrary Δ. The main technical question is: how much more efficient is it to encode Q&lt;sub&gt;0&lt;/sub&gt; and Q&lt;sub&gt;Δ&lt;/sub&gt; jointly, as opposed to encoding them separately?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lemma 1.&lt;/b&gt; H(Q&lt;sub&gt;0&lt;/sub&gt;) + H(Q&lt;sub&gt;Δ&lt;/sub&gt;) − H(Q&lt;sub&gt;0&lt;/sub&gt;, Q&lt;sub&gt;Δ&lt;/sub&gt;)) = Ω(k)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Proof.&lt;/i&gt; The lemma is simple and intuitive. First remark that H(a, a+b, a+b+c) = H(a, b, c); furthermore, this is H(a)+H(b)+H(c) if a, b, and c are independent. Thus, H(Q&lt;sub&gt;0&lt;/sub&gt;) = H(sum in block 1) + H(sum in block 2) + ... Of course, the sum in a block is a binomial with n/k Bernoulli trials. Thus, H(Q&lt;sub&gt;0&lt;/sub&gt;) = (k-1) * h(n/k), where I use h to denote the entropy of a binomial.&lt;br /&gt;&lt;br /&gt;Just the same, H(Q&lt;sub&gt;Δ&lt;/sub&gt;) = h(Δ) + (k-1) * h(n/k). Thus H(Q&lt;sub&gt;0&lt;/sub&gt;) + H(Q&lt;sub&gt;Δ&lt;/sub&gt;) ≈ 2k * h(n/k).&lt;br /&gt;&lt;br /&gt;Finally, H(Q&lt;sub&gt;0&lt;/sub&gt;, Q&lt;sub&gt;Δ&lt;/sub&gt;)) = h(Δ) + h(n/k - Δ) + h(Δ) + h(n/k - Δ) + ... ≈ k*h(Δ) + k*h(n/k-Δ). Indeed, I can break (Q&lt;sub&gt;0&lt;/sub&gt;, Q&lt;sub&gt;Δ&lt;/sub&gt;) into 2k independent components: the sum up to Δ, the sum from there up to n/k, the sum from there up to n/k + Δ, the sum from there up to 2n/k, and so on.&lt;br /&gt;&lt;br /&gt;To conclude, we look up the entropy of a binomial on Wikipedia and find that h(m) = 0.5 * ln(πem/2) + O(1/m). Thus, doubling the number of trials m increases the entropy by ln(2)/2 - O(1/m) = Ω(1) bits. The lemma follows: either Δ ≥ n/2k, and we have h(n/k) - h(n/k-Δ) = Ω(1), or otherwise h(n/k) - h(Δ) = Ω(1). □&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now we get to the interesting part. I need to prove that there is a lot of loss in a separate encoding of Q&lt;sub&gt;0&lt;/sub&gt; and Q&lt;sub&gt;Δ&lt;/sub&gt;, &lt;i&gt;even&lt;/i&gt; in a probabilistic universe where I've conditioned on some event. Of course, I need a lower bound on the probability of the event (for instance, if the event is A[0]=A[1]=...=0, all entropies are zero, so I can't prove anything).&lt;br /&gt;&lt;br /&gt;How rare an event can I handle? The magic answer is Pr[E] ≥ 2&lt;sup&gt;-εk&lt;/sup&gt;, for some small constant ε. Why is this the right answer?&lt;br /&gt;&lt;ul&gt; &lt;li&gt;First, I &lt;i&gt;should&lt;/i&gt; be able to handle such an event. If I have some variable X with some entropy H(X), and I tell you some event E has happened, how much did I knock off the entropy of X? You've just learned roughly lg(1/Pr[E]) bits of entropy (the fact that E happened). Intuitively, H(X) cannot decrease by more than what you learned. Thus, if I had a lower bound of Ω(k) on some entropic quantities, I should be able to maintain it under an event of measure 2&lt;sup&gt;-εk&lt;/sup&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Second, conditioning on such an event E is a very frequent trick in lower bounds — and 2&lt;sup&gt;-εk&lt;/sup&gt; is always the answer :) The event E fixes something (say, some M bits of memory have been read by the algorithm, so Pr[E] ≈ 2&lt;sup&gt;-M&lt;/sup&gt;). How can I bound the amount by which E simplified the problem? (In particular, I need to show the answer is not already known, otherwise there's no more&lt;br /&gt;lowerbounding to do.)&lt;br /&gt;&lt;br /&gt;A good way to bound the help E can render is to break the problem into 99*M subproblems. Intuitively, the M bits that the algorithm knows cannot help with 99*M independent subproblems; for some of the them, the algorithm must be clueless. Thus, the logic goes in the other direction: I'm considering k blocks &lt;i&gt;precisely because&lt;/i&gt; I need to argue about an algorithm that has learned εk bits, i.e. I am in a universe where we condition on an event of probability 2&lt;sup&gt;-εk&lt;/sup&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Thus, what I really want to prove is:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lemma 2.&lt;/b&gt; For any event E with Pr[E] ≥ 2&lt;sup&gt;-εk&lt;/sup&gt;, we have H(Q&lt;sub&gt;0&lt;/sub&gt; | E) + H(Q&lt;sub&gt;Δ&lt;/sub&gt; | E) − H(Q&lt;sub&gt;0&lt;/sub&gt;, Q&lt;sub&gt;Δ&lt;/sub&gt;) | E) = Ω(k)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Proof.&lt;/i&gt; Remember the intuition from above: if I tell you that some event E happened, I am affecting your entropies by lg 1/Pr[E]. There's only one problem in implementing this intuition, namely that it's false. Imagine the following distribution: on odd days, a uniformly random vector of n bits; on even days, the vector (0,...,0). The entropy, which is an average, is n/2, i.e. quite high. But if I condition on an event with probability 1/2, I can bring the entropy down to zero.&lt;br /&gt;&lt;br /&gt;What I need is &lt;i&gt;concentration&lt;/i&gt; for entropies. And how do we always prove concentration? By using independence, which, luckily, we have here — remember how we broke the entropies into independent binomials. Of course, the formal implementation may not seem obvious yet, so let's do it carefully.&lt;br /&gt;&lt;br /&gt;Let's assume Δ ≤ n/2k by symmetry. In this case, Lemma 1 boils down to: H(Q&lt;sub&gt;0&lt;/sub&gt;) + H(Q&lt;sub&gt;Δ&lt;/sub&gt;) − H(Q&lt;sub&gt;0&lt;/sub&gt;, Q&lt;sub&gt;Δ&lt;/sub&gt;)) ≈ 2k * h(n/k) - k*h(Δ) + k*h(n/k-Δ) ≥ k * (h(n/k) - h(Δ)) = Ω(k). I want to exploit the independence of k quantities, each with expectation h(n/k) - h(Δ).&lt;br /&gt;&lt;br /&gt;These quantities come from the definition of entropy. Remember that H(X) = E[ lg 1/p(X) ], where p(.) is the probability density function of X. Let's make the following convenient definitions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;X&lt;sub&gt;i&lt;/sub&gt; = the sum of the bits in the i-th block. Let X = (X&lt;sub&gt;0&lt;/sub&gt;, X&lt;sub&gt;1&lt;/sub&gt;, ...).&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Y&lt;sub&gt;i&lt;/sub&gt; = the sum of the first Δ bits in the i-th block. Let Y = (Y&lt;sub&gt;0&lt;/sub&gt;, Y&lt;sub&gt;1&lt;/sub&gt;, ...). Denote the probability densities for Y by q(.). &lt;/ul&gt;&lt;br /&gt;In the regime Δ ≤ n/2k, we used the lower bound H(Q&lt;sub&gt;0&lt;/sub&gt;) + H(Q&lt;sub&gt;Δ&lt;/sub&gt;) − H(Q&lt;sub&gt;0&lt;/sub&gt;, Q&lt;sub&gt;Δ&lt;/sub&gt;)) ≥ H(X) - H(Y). Thus, I am interested in analyzing H(X|E) - H(Y|E).&lt;br /&gt;&lt;br /&gt;To this end, I write H(X) - H(Y) = E[ lg q(Y)/p(X) ] = E[ lg (q(Y&lt;sub&gt;1&lt;/sub&gt;) * q(Y&lt;sub&gt;2&lt;/sub&gt;) * ...) / (p(X&lt;sub&gt;1&lt;/sub&gt;) * p(X&lt;sub&gt;2&lt;/sub&gt;) * ...) ] = E[ lg q(Y&lt;sub&gt;1&lt;/sub&gt;) / (p(X&lt;sub&gt;1&lt;/sub&gt;) + lg q(Y&lt;sub&gt;2&lt;/sub&gt;) / p(X&lt;sub&gt;2&lt;/sub&gt;) + ...].&lt;br /&gt;&lt;br /&gt;This is in the desired form, the sum of k independent quantities, since (X&lt;sub&gt;1&lt;/sub&gt;, Y&lt;sub&gt;1&lt;/sub&gt;) is independent of (X&lt;sub&gt;2&lt;/sub&gt;, Y&lt;sub&gt;2&lt;/sub&gt;), etc. Each term has expectation h(n/k) - h(Δ) ≥ ln(2)/2 - O(1/m), as we showed in Lemma 1. Thus, I can apply Chernoff and conclude that the sum is Ω(k) with probability 1 - 2&lt;sup&gt;-Ω(k)&lt;/sup&gt;.&lt;br /&gt;&lt;br /&gt;This probability is so large, that an event happening with probability 2&lt;sup&gt;-εk&lt;/sup&gt; does not scare me any more. Indeed, even if I condition on E, the sum is Ω(k) with probability 1-o(1). Thus, it's expectation is also Ω(k).&lt;br /&gt;&lt;br /&gt;Have I just shown H(X|E) - H(Y|E) = Ω(k)? Well, not quite. I've shown E[ lg q(Y)/p(X) | E ] = E[lg 1/p(X) | E] - E[lg 1/q(Y) | E] = Ω(k). But the probability density function p(.) is just another function when I condition on E. Under this conditioning, the real probability density is another function p'(.), i.e. H(X|E) = E[ lg 1/&lt;b&gt;p'&lt;/b&gt;(X) ].&lt;br /&gt;&lt;br /&gt;First remark that the probability mass inside E is a subset of the mass in the general universe, i.e. p(x) ≥ p'(x) * Pr[E], for any x. Thus p'(x) ≤ p(x) * 2&lt;sup&gt;εk&lt;/sup&gt; and lg 1/p'(x) ≥ lg 1/p(x) - εk. So I can switch between p'(.) and p(.): E[lg 1/p'(X) | E] ≥ E[lg 1/p(X) | E] - εk.&lt;br /&gt;&lt;br /&gt;Switching between q(.) and q'(.) is more tricky, since I want an upper bound. It is true that for many y, q'(y) could be much smaller than q(y), thus increasing the "entropy" lg 1/q'(y). Let's call y bad if q'(y) ≤ q(y) / 2&lt;sup&gt;2εk&lt;/sup&gt;. How much mass could the bad occupy? We has Sum&lt;sub&gt;y&lt;/sub&gt; q(y) = 1, so Sum&lt;sub&gt;y∈Bad&lt;/sub&gt; q'(y) ≤ 2&lt;sup&gt;-2εk&lt;/sup&gt;. Thus, even inside the event E, the bad y's only have mass 2&lt;sup&gt;-εk&lt;/sup&gt;. Now H(Y|E) is the average over the good y's and the bad y's. For the good, lg 1/q'(y) ≤ lg 1/q(y) + 2εk. For the bad, lg 1/q'(y) ≤ n (the smallest event in my distribution has probability 2&lt;sup&gt;-n&lt;/sup&gt;). But the weight of the bad inside E is 2&lt;sup&gt;-εk&lt;/sup&gt; = o(1/n) for reasonable k. Thus, the contribution of the bad is o(1).&lt;br /&gt;&lt;br /&gt;We have thus shown E[lg 1/q'(Y) | E] ≤ E[lg 1/q(Y)] + 2εk. We conclude that H(X|E) - H(Y|E) ≥ E[ lg q(Y)/p(X) | E ] - 3εk = Ω(k). □&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's it. My hope was to present the proof as a sequence of interesting ideas, rather than a long technical thing filled with calculations. I don't know if I succeeded in conveying this feeling; let me know if you need help with any of the steps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-3576720444518512532?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/3576720444518512532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=3576720444518512532' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/3576720444518512532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/3576720444518512532'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/08/technical-lemma.html' title='A Technical Lemma'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-4620314812957289468</id><published>2009-08-21T20:08:00.002-04:00</published><updated>2009-08-21T20:44:08.363-04:00</updated><title type='text'>An Evening in Bucharest</title><content type='html'>5:30pm. I am at the "Brewers' Court," meeting with an old friend from computer olympiads, now faculty at Bucharest Polytechnic. We order 1-liter beers and I describe an algorithm answering the main open problem from a recent paper. The first question I get is quite polite (I tend to get a lot of respect in Romania), but can roughly be translated as "Dude, does this make any sense?" As is often the case, I show that I cannot focus without coauthors. My algorithm is obviously non-sense, except that it contains enough original ideas that a correct algorithm can be reconstructed in 10 minutes.&lt;br /&gt;&lt;br /&gt;7:00pm. I take a few more steps on a path that I have been pursuing for a long time: I try to communicate some of the energy, passion, and standards of US research (sorely lacking in the parts of Europe that I have had contact with). We both have 1-liter beers.&lt;br /&gt;&lt;br /&gt;8:00pm. My godfather arrives. We all have 1-liter beers, and talk about work in networking (he is working in software at a major corporation in this field; I am at ATT, of course).&lt;br /&gt;&lt;br /&gt;9:00pm. Another friend from high school (CN Carol I, class of 2001) arrives. We have 1-liter beers with some food, and gossip about another high-school friend (now CEO of a software company).&lt;br /&gt;&lt;br /&gt;11:00pm. Two Romanian re-pats (old friends from MIT) arrive. We have 1-liter beers, and talk about their start-up, the child that one has, etc.&lt;br /&gt;&lt;br /&gt;12:30am. Another re-pat (Harvard) arrives. We have 1-liter beers, and talk about the cars that they drive at 150mph, the good old times at Physics Olympiads, and life.&lt;br /&gt;&lt;br /&gt;1:30am. Yet another re-pat (MIT) arrives. We have 1-liter beers, and talk about the hedge fund where he works, the likely inflation for the dollar in the next 10 years, and life in Romania vs the US.&lt;br /&gt;&lt;br /&gt;3:30am. I make it to my sister's apartment and write blog posts (at the end of my European trip, I am still jet-lagged).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-4620314812957289468?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/4620314812957289468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=4620314812957289468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/4620314812957289468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/4620314812957289468'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/08/evening-in-bucharest.html' title='An Evening in Bucharest'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-8330284880042919868</id><published>2009-08-03T15:13:00.005-04:00</published><updated>2009-08-03T16:03:41.007-04:00</updated><title type='text'>More on Problem 2</title><content type='html'>You might be wondering what caused the hiatus in posting CEOI problems. My modus operandi as a researcher is to induldge in whatever obsession I currently have. For the past week, the raging obsession has been &lt;a href="http://infoweekly.blogspot.com/2009/07/ceoi-problem-2.html"&gt;Problem 2&lt;/a&gt; (tempered, of course, by the beaurocracy of joining AT&amp;amp;T).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Several people found the O(n&lt;sup&gt;4&lt;/sup&gt;) solution, both during the real competition and on the blog. In addition, Berman, Karpinski, and Lingas also found this solution in a recent &lt;a href="http://arxiv.org/abs/0904.2310"&gt;arXiv paper&lt;/a&gt;. (Thanks to Nate Xiaoming Xu for telling me about this paper!) Their paper is not about rectangle covers, but something about wireless antennas. This goes to show that olympiad problems are often deep enough to become research papers. The only additional skill that we have in research is keeping a straight face when we write the introductions. (Don't worry, it comes with age.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; As I announced in the comments to the previous blog post, I found an O(n&lt;sup&gt;3&lt;/sup&gt;) solution. This appears to be tricky (several people tried to reconstruct my solution in the comments, but without success). My solution is described in this post.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am still quite optimistic that O(n&lt;sup&gt;2&lt;/sup&gt;) might be possible, but so far I haven't been able to beat cubic time. If you find a way, I will be impressed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you don't find a way but want to discuss promissing ideas, use the comments to this post. Think of this as an experimental poly-CS project. The discussion is open to anyone. Don't be shy to post, but please be use a nickname for identification ("CarpathianBlackMetal" is much more informative than "Anonymous"). Also number your comments (e.g. "This is comment #4 from CarpathianBlackMetal"). Do not delete a comment if you posted something wrong. Explaining why it is wrong is much more informative for the audience.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now let me describe the solutions I know for this problem.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Observation 1.&lt;/b&gt; In an optimal solution, any two rectangles are either disjoint or "nested" (one of them is taller and has the base included in the other). If two rectangles were to intersect properly, the shorter one can be shrunk horizontally until the rectangles become disjoint.&lt;br /&gt;&lt;br /&gt;Let the points have coordinates (x[i], y[i]). Assume they are sorted by x.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Observation 2.&lt;/b&gt; We can construct an optimal solution in which every rectangle satisfies:&lt;ol&gt;&lt;li&gt;it extends horizontally from some x[i] to some x[j];&lt;br /&gt;&lt;/li&gt;&lt;li&gt;it extends vertically up to A / (x[i] - x[j]), i.e. as high as possible.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;it covers points i and j, i.e. y[i], y[j] ≤ A / (x[i] - x[j]).&lt;/li&gt;&lt;/ol&gt;Perhaps the only nonobvious condition is 3. But note that if the rectangle doesn't cover point i, I might as well move its edge inside (beyond point i), and thus increase the height. The only change that could happen would be to cover more points.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;An O(n&lt;sup&gt;4&lt;/sup&gt;) solution.&lt;/b&gt; We thus know that there are only O(n&lt;sup&gt;2&lt;/sup&gt;) distinct rectangles to consider. Denote them by R(i,j); though not all pairs (i,j) are valid rectangles.&lt;br /&gt;&lt;br /&gt;If R(i,j) is used in the solution, we have a well-contained subproblem to solve: cover all points between x[i] and x[j], which are not already covered by R(i,j), that is, they are above the rectangle. Let A(i,j) be the minimal number of rectangles needed to cover all such points. This is our dynamic program.&lt;br /&gt;&lt;br /&gt;We fill the dynamic program by increasing values of j-i. To compute A(i,j), let S be the set of points k (i &lt; k &lt; j) which are not covered by the rectangle. Note that i and j are always covered (by condition 3. above). Thus, any information pertitent to covering S has already been computed by our dynamic program.&lt;br /&gt;&lt;br /&gt;Let S={X1, X2, ... }. To compute A(i,j), we need to find splitters a &lt; b &lt; c &lt; ... which minimize A(X1, Xa) + A(X{a+1}, Xb) + A(X{b+1}, Xc) + ...&lt;br /&gt;&lt;br /&gt;This is a classic dynamic programming problem itself, or, if you wish, a shortest paths problem where A(x,y) is the length of the path from node x to node y. This subproblem can be solved in O(n&lt;sup&gt;2&lt;/sup&gt;) time (which is "linear time", since there are n&lt;sup&gt;2&lt;/sup&gt; subproblem A(x,y)). Thus, the original dynamic program is filled in O(n&lt;sup&gt;4&lt;/sup&gt;).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;An O(n&lt;sup&gt;3&lt;/sup&gt;) solution.&lt;/b&gt; A common strategy for improving the running time is to try to maintain &lt;i&gt;more&lt;/i&gt; information. Thus, I first reformulate the dynamic program above to use O(n&lt;sup&gt;3&lt;/sup&gt;) state.&lt;br /&gt;&lt;br /&gt;Let T(i,j,k) be the optimal number of rectangles to cover all points (x,y) with x[i] ≤ x ≤ x[j] and y ≥ heights[k], where heights contains all y's in sorted order. Unlike the previous solution, I consider all heights k, not just the maximal one for a fixed i and j.&lt;br /&gt;&lt;br /&gt;This dynamic program is easy to fill in O(n&lt;sup&gt;4&lt;/sup&gt;). For some triple (i,j,k), I will either:&lt;ul&gt;&lt;li&gt;draw a rectangle from x[i] to x[j] of maximal height. If this height is more than y[k], I get the optimum for covering the remaining points from T(i,j,new height).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;if there is no rectangle spanning x[i] to x[j], there must be a break point m, such that T(i,j,k) = T(i,m,k) + T(m+1,j,k). Iterate to find the optimal such m. &lt;/li&gt;&lt;/ul&gt;To fill this in O(n&lt;sup&gt;3&lt;/sup&gt;) requires a nice trick. The order of the computation will be: by increasing value of j-i, and, for some fixed (i,j), by &lt;i&gt;increasing&lt;/i&gt; k.&lt;br /&gt;&lt;br /&gt;To compute the optimal T(i,j,0), proceed exactly as above, taking time O(n). The rest of T(i,j,k) for k&gt;0 can be computed in constant time per entry. For each T(i,j,k+1), I have two possibilities:&lt;ul&gt;&lt;li&gt;T(i,j,k+1) = T(i,j,k).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;T(i,j,k+1) &amp;lt; T(i,j,k). Thus, the optimal solution for k+1 is different from the optimal solution for k. But the set of points that must be covered by these two solutions only differ by one point P (with y[P]=k). Thus, point P must not be covered by the solution for T(i,j,k+1) &amp;mdash; if it were, the better solution for T(i,j,k+1) would also hold for T(i,j,k). Thus, x[P] is a break point in the solution T(i,j,k+1), and we have T(i,j,k+1) = T(i,P-1,k+1) + T(P+1,j,k+1).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Good luck thinking about this problem!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-8330284880042919868?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/8330284880042919868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=8330284880042919868' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/8330284880042919868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/8330284880042919868'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/08/more-on-problem-2.html' title='More on Problem 2'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-2191322895326462470</id><published>2009-07-19T05:40:00.003-04:00</published><updated>2009-07-19T06:13:09.375-04:00</updated><title type='text'>CEOI: Problem 2</title><content type='html'>The discussion on &lt;a href="http://infoweekly.blogspot.com/2009/07/ceoi-problem-1.html"&gt;Problem 1&lt;/a&gt; was quite active; I even posted a lower bound for the streaming complexity of the problem. The official solution is:&lt;br /&gt;&lt;blockquote&gt;The basic idea is to sweep through each line &lt;i&gt;i&lt;/i&gt;, and maintain the “height” of each column, i.e., the number of ones in that column extending upwards from line &lt;i&gt;i&lt;/i&gt;. Given the heights of each column, one has to find a subset &lt;i&gt;S&lt;/i&gt; of columns maximizing |&lt;i&gt;S&lt;/i&gt;| • min(&lt;i&gt;S&lt;/i&gt;). You can find this subset by trying values for min(&lt;i&gt;S&lt;/i&gt;) and counting how many heights are greater or equal. By maintaining the heights in sorted order, this computation becomes linear time. &lt;/blockquote&gt;&lt;blockquote&gt;To make the algorithm run in O(&lt;i&gt;N&lt;/i&gt;•&lt;i&gt;M&lt;/i&gt;) time, the key observation is that, while the sweep line advances to another row, a height is either incremented or reset to zero. This means that one can maintain the sorted order in linear time: place the values that become zero up front, and maintain the order for the rest (which is unchanged by incrementing them).&lt;/blockquote&gt;Let us now move to a problem of average difficulty. Originally, I was worried that it would be too easy (the contestants really know dynamic programming), but it seems the details behind the dynamic program were unusual enough, and some people missed them.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Problem: Photo. &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;You are given a skyline photograph taken during the night. Some rooms still have the light on. You know that all the buildings can be modeled by rectangles of surface area at most &lt;i&gt;A&lt;/i&gt;. Find the minimum number of buildings that can lead to the picture.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;In other words, you are given an integer &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;A&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;, and &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;N&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; points at integer coordinates (&lt;i&gt;x&lt;/i&gt;,&lt;i&gt;y&lt;/i&gt;). You must find a minimum number of rectangles with one side on the &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;x&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;-axis and area at most &lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;A&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;, which cover all points. The rectangles may overlap.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;i&gt;Desired running time&lt;/i&gt;: polynomial in &lt;i&gt;N&lt;/i&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-2191322895326462470?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/2191322895326462470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=2191322895326462470' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/2191322895326462470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/2191322895326462470'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/07/ceoi-problem-2.html' title='CEOI: Problem 2'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-4577832181680958201</id><published>2009-07-17T04:13:00.003-04:00</published><updated>2009-07-17T04:45:26.495-04:00</updated><title type='text'>CEOI: Problem 1</title><content type='html'>As I've announced before, I was the chair of the Scientific Committee at The 16&lt;sup&gt;th&lt;/sup&gt; Central European Olympiad in Informatics (CEOI'09). I will have a few non-technical post on the experience, but in the next 6 posts,  I will simply let you enjoy the problems.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I would encourage all my theory friends to think about these problems. What you might gain:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;You can form your own impression on the level of these contests (I think it is quite high, and it will allow us to recuit many researchers down the road. Consider that one has to solve and implement 3 problems in 5 hours.)&lt;/li&gt;&lt;li&gt;These are great algorithmic puzzles, of the kind that is hard to come by (as opposed to math puzzles, which are everywhere, but I find boring).&lt;/li&gt;&lt;li&gt;You may finally answer the question: Are you smarter than an 11&lt;sup&gt;th&lt;/sup&gt; grader? :)&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Please feel free to use the comments section. The official solution to each problem will be posted together with the next problem.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To start lightly, today I will show you the easiest problem. (It is perhaps easy enough for an exam in Introduction to Algorithms... What do you think?)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Problem: LOGS.&lt;/b&gt; Given an &lt;i&gt;N&lt;/i&gt; by &lt;i&gt;M&lt;/i&gt; binary matrix, find the area of the biggest rectangle consisting entirely of values of 1, knowing that you can &lt;i&gt;permute the columns&lt;/i&gt; of the matrix.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Desired running time: O(&lt;i&gt;MN&lt;/i&gt;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example, if the matrix is:&lt;/div&gt;&lt;tt&gt;&lt;div&gt;001010&lt;/div&gt;&lt;div&gt;111110&lt;/div&gt;&lt;div&gt;011110&lt;/div&gt;&lt;div&gt;111110&lt;/div&gt;&lt;div&gt;011110&lt;/div&gt;&lt;div&gt;111111&lt;/div&gt;&lt;div&gt;110111&lt;/div&gt;&lt;div&gt;110111&lt;/div&gt;&lt;div&gt;000101&lt;/div&gt;&lt;div&gt;010101&lt;/div&gt;&lt;/tt&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;The answer should be 21: by permuting the columns such that columns 2, 4, and 5 are adjacent, you have a rectangle of area 21 (rows 2-8 and columns 2, 4, 5).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PS: Yes, today's my birthday. Only 13 more years to win the Nevanlinna Prize :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-4577832181680958201?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/4577832181680958201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=4577832181680958201' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/4577832181680958201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/4577832181680958201'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/07/ceoi-problem-1.html' title='CEOI: Problem 1'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-973877018630796512</id><published>2009-06-26T21:26:00.002-04:00</published><updated>2009-06-26T22:30:48.845-04:00</updated><title type='text'>The Conceptual Wars</title><content type='html'>Scott Aaronson, in his &lt;a href="http://scottaaronson.com/blog/?p=253"&gt;regular&lt;/a&gt; post-FOCS-notification column, has &lt;a href="http://scottaaronson.com/blog/?p=411"&gt;indicated me&lt;/a&gt; as a leader of the Technicians Resistance Army of TCS (a leader, at least, in irășcibility). &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As Anup &lt;a href="http://scottaaronson.com/blog/?p=411#comment-35258"&gt;points out&lt;/a&gt;, our guerrilla force shall strive to remain concealed in the shadows of the dark STOC/FOCS committee rooms. But, as an exposed member, I must accept my destiny as a preacher of our movement during the coming conceptual wars.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My basic plan is to sing the ideas of theoretical computer science from the rooftops&lt;sup&gt; 1&lt;/sup&gt;. I want to convince you that we have a destiny grander than communicating with quantum aliens. I want to remind you of the beauty of the algorithm. I want to tell you mystical prophecies about the depth our field will achieve when it will show, e.g., that max flow needs superlinear time. And, yes, I want to reprehend you for behaving like a bitter fringe mathematician instead of accepting the place of TCS as the New Maths... Or for having such low self-esteem that you will gladly wipe the floors of the Economics department for some attention. And, against all odds, I want to convince you that solving hard problems is more rewarding than inventing easy new ones.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;***&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just, please, hold off the war for a few weeks. For now, I am the chair of the Scientific Committee of the CEOI (Central European Olympiad in Informatics). These kids have prepared for years to get here, and we owe them some exciting problems (which will certainly find their way to the blog later).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;–––––&lt;/div&gt;&lt;div&gt;&lt;sup&gt; 1 &lt;/sup&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;This cool quotation comes, I believe, from Scott's job application. I learned of it in a bar from a friend who was on the job market at the same time as Scott. My friend added "I don't have this [...] in me."&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-973877018630796512?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/973877018630796512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=973877018630796512' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/973877018630796512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/973877018630796512'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/06/conceptual-wars.html' title='The Conceptual Wars'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-2623500962019070666</id><published>2009-06-04T18:02:00.002-04:00</published><updated>2009-06-04T18:18:46.155-04:00</updated><title type='text'>Conceptual Contributions Conference</title><content type='html'>At STOC, there was an announcement of a new conference dedicated to conceptual contributions, titled &lt;a href="http://itcs.tsinghua.edu.cn/ICS2010/"&gt;ICS&lt;/a&gt; (Innovations in Computer Science). Michael &lt;a href="http://mybiasedcoin.blogspot.com/2009/06/ics-conference-what-should-it-be.html"&gt;asks&lt;/a&gt; for more discussion on this conference.&lt;br /&gt;&lt;br /&gt;Personally, I am enthusiastic about ICS. It seems like one of the best ideas in decades for improving the quality of STOC/FOCS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-2623500962019070666?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/2623500962019070666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=2623500962019070666' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/2623500962019070666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/2623500962019070666'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/06/conceptual-contributions-conference.html' title='Conceptual Contributions Conference'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-3450922974877295410</id><published>2009-05-12T17:38:00.002-04:00</published><updated>2009-05-12T18:03:37.748-04:00</updated><title type='text'>Conference in Romania</title><content type='html'>I am on the program committee for &lt;a href="http://tcs.ieat.ro/"&gt;Advances in the Theory of Computing (AITC'09)&lt;/a&gt;, to take place in Timișoara, Romania on September 26-29. The conference is a new, experimental theory track for a larger and more established conference (The 11&lt;sup&gt;th&lt;/sup&gt; International Symposium on Symbolic and Numeric Algorithms for Scientific Computing, &lt;a href="http://synasc09.info.uvt.ro/"&gt;SYNASC'09&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The deadline for regular papers is May 30. You know you always wanted to visit Romania, so use the next couple of weeks to wrap up a result and send it in!&lt;br /&gt;&lt;br /&gt;Alternatively, the conference will double up as a workshop (papers in the "presentation track" will not be published in proceedings, allowing you to submit elsewhere). The deadline for such presentations is July 1st. &lt;br /&gt;&lt;br /&gt;So come to discuss the most exciting developments in theory, while enjoying your 1-liter beers with a view of one of the most beautiful Romanian cities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-3450922974877295410?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/3450922974877295410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=3450922974877295410' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/3450922974877295410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/3450922974877295410'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/05/conference-in-romania.html' title='Conference in Romania'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-6730406264148875158</id><published>2009-05-08T03:42:00.004-04:00</published><updated>2009-05-08T05:19:44.563-04:00</updated><title type='text'>Letter Grades</title><content type='html'>&lt;div style="text-align: left;"&gt;In the US, final course grades are expressed in letters (the schemes I've seen are A/B/C, and A/A-/B+/B/B-). This leaves one with the interesting task of drawing barriers in between students (a task best performed at 2am the night before moving out of your apartment).&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;I am not comfortable with adding different components of the grade (like the midterm and final), as the average and standard deviation are vastly different. Is there a good statistical approach to this problem, with some convincing theory behind it? (Being at IBM Almaden, I should automatically go for rank aggregation, I guess... But there seems to be a lot of noise in the rank, since there are clusters of people with similar scores on each exam.)&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fortunately, if you only give one midterm (and assign low weight to the homework), you can plot the results in 2D. Unfortunately, you may end up with something like this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_u9iBO1Zjoks/SgP2PbuyinI/AAAAAAAAAjw/rO9X1p1fewk/s1600-h/image.png"&gt;&lt;img src="http://1.bp.blogspot.com/_u9iBO1Zjoks/SgP2PbuyinI/AAAAAAAAAjw/rO9X1p1fewk/s320/image.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5333377128739277426" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 280px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Oh well... Everybody knows grades are somewhat random.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-6730406264148875158?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/6730406264148875158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=6730406264148875158' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/6730406264148875158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/6730406264148875158'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/05/letter-grades.html' title='Letter Grades'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_u9iBO1Zjoks/SgP2PbuyinI/AAAAAAAAAjw/rO9X1p1fewk/s72-c/image.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-5678697748866388734</id><published>2009-05-03T15:21:00.003-04:00</published><updated>2009-05-03T17:47:27.559-04:00</updated><title type='text'>Complexity Everywhere</title><content type='html'>I know that whenever I write about TCS politics on this blog, it ends up bad. For instance, I get a comment such as the following one (left by an anonymous to my last post):&lt;br /&gt;&lt;blockquote&gt;What makes it tough for some of the papers you cite is the view that shaving off log factors is often viewed as much less interesting than larger improvements.&lt;/blockquote&gt;This, of course, makes my latin blood run even hotter, and I cannot help writing follow-up posts (this is the first). If only I could keep my promise of not writing about politics, my life would be so much simpler. (If only I could learn from history... I got to observe my father become a leading figure in Romanian Dermatology a decade before he could get a faculty position — mainly due to his latin blood. He got a faculty position well into his 50s, essentially going straight to department chair after the previous chair retired.)&lt;br /&gt;&lt;br /&gt;So, let's talk about shaving off log factors (a long overdue topic on this blog). As one of my friends once said:&lt;br /&gt;&lt;blockquote&gt;All this talk about shaving off log factors from complexity people, who aren't even capable of &lt;i&gt;shaving on&lt;/i&gt; a log factor into those circuit lower bounds...&lt;/blockquote&gt;There is something very deep in this quote. Complexity theorists have gone way too long without making progress on proving hardness, their &lt;i&gt;raison d'être&lt;/i&gt;. During this time, drawing targets around the few accidental arrows that hit walls became the accepted methodology. For instance, this led to an obsession about the polynomial / non-polynomial difference, where at least we had an accepted conjecture and some techniques for proving something.&lt;br /&gt;&lt;br /&gt;Complexity theory is not about polynomial versus non-polynomial running times. Complexity theory is about looking at computational problems and classifying then "structurally" by their hardness. There are beautiful structures in data structures:&lt;ul&gt;&lt;li&gt;dictionaries take constant time, randomized. (But if we could prove that deterministically, dynamic dictionaries need superconstant time per operation, it would be a very powerful message about the power of randomness — one that computer scientists could understand better than "any randomized algorithm in time n&lt;sup&gt;c&lt;/sup&gt; can be simulated deterministically in time n&lt;sup&gt;10c&lt;/sup&gt; if E requires exponential size circuits.")&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;predecessor search requires log-log time. The lower bound uses direct sum arguments for round elimination in communication complexity, a very "complexity topic." A large class of problems are equivalent to predecessor search, by reductions.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;the hardness of many problems is related to the structure of a binary hierarchy. These have bound of Θ(lg &lt;i&gt;n&lt;/i&gt;) or Θ(lg &lt;i&gt;n&lt;/i&gt; / lglg &lt;i&gt;n&lt;/i&gt;) depending on interesting information-theoretic issues (roughly, can you sketch a subproblem with low entropy?). There are many &lt;a href="http://people.csail.mit.edu/mip/papers/index.html#structures"&gt;nonobvious reductions&lt;/a&gt; between such problems.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;we have a less sharp understanding of problems above the logarithmic barrier, but knowledge is slowly developing. For instance, I have a conjecture about 3-player number-on-forehead games that would imply n&lt;sup&gt;Ω(1)&lt;/sup&gt; for a large class of problems (reductions, again!). [This was in my Dagstuhl 2008 talk; I guess I should write it down at some point.]&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;the last class of problems are the "really hard" ones: high-dimensional problems for which there is a sharp transition between "exponential space and really fast query time" and "linear space and really slow query time." Whether or not there are reductions among these is a question that has preoccupied people for quite a while (you need some gap amplification, a la PCP). Right now, we can only prove optimal bounds for decision trees (via communication complexity), and some weak connections to NP (if SAT requires strongly exponential time, partial match requires weakly exponential space).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Ok, perhaps you simply do not care about data structures. That would be short-sighted (faster data structures imply faster algorithms; so you cannot hope for lower bounds for algorithms before proving lower bounds for data structures) — but it is a mistake that I can tolerate.&lt;br /&gt;&lt;br /&gt;Let's look at algorithms:&lt;ul&gt;&lt;li&gt;Some problems take linear time (often in very non-obvious ways).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Sorting seems to take super-linear time, and some problems seem to be as fast as sorting. My favorite example: undirected shortest paths takes linear time, but for directed graphs it seems you need sorting. Why?&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;FFT seems to require Θ(&lt;i&gt;n&lt;/i&gt; lg &lt;i&gt;n&lt;/i&gt;) time. I cannot over-emphasize how powerful an interdisciplinary message it would be, if we could prove this. There are related problems: if you can beat the permutation bound in external memory, you can solve FFT in o(&lt;i&gt;n&lt;/i&gt; lg &lt;i&gt;n&lt;/i&gt;). The permutation bound in external memory is, to me, the most promissing attack to circuit lower bounds.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;some problems circle around the Θ(&lt;i&gt;n&lt;/i&gt; sqrt(&lt;i&gt;n&lt;/i&gt;)) bound, for reasons unclear. Examples: flow, shortest paths with negative lengths, min convolution with a mask. But we do have some reductions (bipartite matching is as hard as flow, bidirectionally).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;some problems circle around the n&lt;sup&gt;2&lt;/sup&gt; bound. Here we do have the beginning of a classification: 3SUM-hard problems. But there are many more things that we cannot classify: edit distance and many other dynamic programs, min convolution (signal processing people thought hard about it), etc.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;some problems have an n*sort(n) upper bound, and are shown to be X+Y-hard. Though the time distinction between n&lt;sup&gt;2&lt;/sup&gt; and n*sort(n) is tiny, the X+Y question is as tantalizing as they get.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;some problems can be solved in n&lt;sup&gt;ω&lt;/sup&gt; by fast matrix multiplication, while others seem to be stuck at n&lt;sup&gt;3&lt;/sup&gt; (all pairs shortest paths, given-weight triangle). But interestingly, this class is related to the n&lt;sup&gt;2&lt;/sup&gt; problems: if 3SUM needs quadratic time, given-weight triangle requires cubic time; and if min-convolution requires quadratic time, APSP requires cubic time.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;what can we say about all those dynamic programs that run in time n&lt;sup&gt;5&lt;/sup&gt; or something like that? To this party, TCS comes empty-handed.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;how about problems in super-polynomial sub-exponential running time? Ignoring this regime is why the misguided "polynomial / non-polynomial" distinction is often confused with the very meaningful "exponential hardness." There is much recent work here in fixed-parameter tractability. One can show, for instance, that k-clique requires n&lt;sup&gt;Ω(k)&lt;/sup&gt; time, or that some problems require 2&lt;sup&gt;Ω(tree-width)&lt;/sup&gt; time.&lt;br /&gt;&lt;br /&gt;And what can we say about k-SUM and all the k-SUM-hard problems (computational geometry in k dimensions)? This is an important illustration of the "curse of dimensionality" in geometry. I can show that if 3SAT takes exponential time, k-SUM takes n&lt;sup&gt;Ω(k)&lt;/sup&gt; time.&lt;br /&gt;&lt;br /&gt;Finally, what can we say about PTAS running times? In my paper with Piotr and Alex, we showed that some geometric problems requires n&lt;sup&gt;Ω~(1/ε^2) &lt;/sup&gt;running time. This has a powerful structural message: the best thing to do is to exhaustive search after a Johnson-Lindenstrauss projection.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;inside exponential running time, there is the little-known work of [Impagliazzo-Paturi] showing, for instance, that sparse-3SAT is as hard as general 3SAT. Much more can be done here.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Lest we forget, I should add that we have no idea what the hard distributions might look like for these problems... Average case complexity cannot even talk about superpolynomial running times (a la hidden clique, noisy parity etc). &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;This is what complexity theory is about. Sometimes, it needs to understand log factors in the running time. Sometimes, it needs to understand log factors in the exponent. Whereever there is some fascinating structure related to computational hardness, there is computational complexity.&lt;div&gt;&lt;br /&gt;&lt;div&gt;While we construct exotic objects based on additive combinatorics and analyze the bias of polynomials, we should not forget that we are engaging in a temporary exercise of drawing a target around an arrow — a great exploration strategy, as long as it doesn't make us forget where we wanted to shoot the arrow in the first place.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And while complexity theory is too impotent right now to say anything about log factors, it should not spend its time &lt;a href="http://weblog.fortnow.com/2009/01/soda-and-me.html"&gt;poking fun&lt;/a&gt; at more potent disciplines.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-5678697748866388734?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/5678697748866388734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=5678697748866388734' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/5678697748866388734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/5678697748866388734'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/05/complexity-everywhere.html' title='Complexity Everywhere'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-5040509270168688036</id><published>2009-05-02T15:02:00.002-04:00</published><updated>2009-05-02T17:24:41.489-04:00</updated><title type='text'>The non-Gödel papers</title><content type='html'>As you probably know, I think theory is in a deep crisis: our obsession to turn into philosophy (prividing unappreciated service to disciplines we do not understand), stemming from our deep commitment to become as ignorant and irrelevant as possible inside the CS department; the influx of people who like to pretend we're Mathematics, and have no idea what computation means; the obsession with the "polynomial" versus "non-polynomial" and it's many consequences; etc etc etc. Since I am not inclined to write novels, I have never been able to put all these arguments inside a coherent text.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fortunately, every once in a while, the ball is raised at the net and I can say something short that expresses my feelings. Richard Lipton &lt;a href="http://rjlipton.wordpress.com/2009/05/01/great-papers-in-theory/"&gt;talks&lt;/a&gt; about the Gödel prize, and some papers that could also have won it. His examples are all in complexity, which is reasonable since he's a complexity theorist. But looking at the &lt;a href="http://en.wikipedia.org/wiki/G%C3%B6del_Prize"&gt;list of winners&lt;/a&gt; on Wikipedia, what it lacks more is algorithms — you know, papers that try to understand how fast some problems can be solved (the thing non-theorists believe we're studying).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is my own "forgotten list," from which I am certain to have forgotten some papers. Please add your favorite examples in the comments — but note that I am deliberately discarding old papers that were inelligible, like splay trees, classic flow algorithms, persistence, etc. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In no particular order:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;[Fredman-Willard] on the fusion tree. This kick-started a major field (integer search) and directly led to at least two dozen follow-up papers in STOC-FOCS-SODA. Candidates for the Gödel Prize do not get any better.&lt;br /&gt;&lt;br /&gt;This paper has passed its eligibility period, unfortunately. Another good candidate in this line of work would be [Thorup] solving undirected shortest paths in O(&lt;span class="Apple-style-span" style="font-style: italic;"&gt;n&lt;/span&gt;) time.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Karger's papers on mincut, which are very influential on the use of randomization in graph algorithms.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Clarkson's introduction of randomization to geometry (thanks, Suresh!).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Chazelle's series on "Lower Bounds for Orthogonal Range Searching" is a remarkable contribution. However, Chazelle should probably just win the &lt;a href="http://en.wikipedia.org/wiki/Knuth_Prize"&gt;Knuth Prize&lt;/a&gt; since his contributions are too varied (MST, fractional cascading, triangulation, etc).&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;the power of two choices is an influential and popular idea. I'm not sure who should get the award though; as with PCPs, it can perhaps be shared by a couple of papers.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;dynamic graph algorithms are a broad, deep, and popular research topic. [Henzinger-King] and [Holm-de Lichtenberg-Thorup] could win a joint award for polylogarithmic connectivity. These papers basically restarted the whole area and led to maybe 2 dozen publications in STOC-FOCS-SODA. The latter is also a popular data structure to teach, for its basic beauty.&lt;br /&gt;&lt;br /&gt;Another candidate pair for a joint award would be [Demetrescu-Italiano] and [Sankowski], which give remarkable solutions to all-pairs shortest paths and transitive closure.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Add your own favorite examples in the comments.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, am I claiming an anti-algorithmic bias because these papers did not win? No, all sorts of randomness is involved in prizes. I am claiming an anti-algoritmic bias because, in the current environment, it seems such papers are not even viable candidates.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-5040509270168688036?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/5040509270168688036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=5040509270168688036' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/5040509270168688036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/5040509270168688036'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/05/non-godel-papers.html' title='The non-Gödel papers'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-786333285568106173.post-4746621524387188185</id><published>2009-04-19T04:49:00.000-04:00</published><updated>2009-04-19T04:50:53.079-04:00</updated><title type='text'>Christos a înviat!</title><content type='html'>Happy Easter!  Christos a înviat!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/786333285568106173-4746621524387188185?l=infoweekly.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://infoweekly.blogspot.com/feeds/4746621524387188185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=786333285568106173&amp;postID=4746621524387188185' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/4746621524387188185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/786333285568106173/posts/default/4746621524387188185'/><link rel='alternate' type='text/html' href='http://infoweekly.blogspot.com/2009/04/christos-inviat.html' title='Christos a înviat!'/><author><name>Mihai</name><uri>http://www.blogger.com/profile/11599372864611039927</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03248219363972237367'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry></feed>