<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Big Red Bits</title>
	<atom:link href="http://www.bigredbits.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bigredbits.com</link>
	<description>Theory, Distributed Systems, and Other Random Bits</description>
	<lastBuildDate>Mon, 31 May 2010 23:36:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Erlang or Stackless Python</title>
		<link>http://www.bigredbits.com/archives/286</link>
		<comments>http://www.bigredbits.com/archives/286#comments</comments>
		<pubDate>Mon, 31 May 2010 23:33:36 +0000</pubDate>
		<dc:creator>hussam</dc:creator>
				<category><![CDATA[Systems]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=286</guid>
		<description><![CDATA[I recently wrote a simple, event-driven, simulation framework to allow me to quickly prototype and test distributed protocols. Unfortunately it did not scale in the number of messages simulated. So I am planning to re-implement it. To keep with the spirit of rapid prototyping, I want to use a dynamically typed language. My final two [...]]]></description>
			<content:encoded><![CDATA[<p>I recently wrote a simple, event-driven, simulation framework to allow me to quickly prototype and test distributed protocols. Unfortunately it did not scale in the number of messages simulated. So I am planning to re-implement it.</p>
<p>To keep with the spirit of rapid prototyping, I want to use a dynamically typed language. My final two candidates are <a href="http://www.erlang.org/">Erlang</a> and <a href="http://www.stackless.com/">Stackless Python</a> (or rather <a href="http://codespeak.net/pypy/dist/pypy/doc/stackless.html">PyPy</a>). There certainly is a lot of buzz around Erlang these days: My advisor is very enthusiastic about it, and after reading through the tutorial and dummy protocols, I can see why. On the other hand, Stackless Python has the familiar syntax and the huge library of modules.</p>
<p>I read through many posts comparing the two and I finally decided to stick with Python for now. I will code up the framework (hopefully this week) and report back on my findings. However, I am personally still interested in coding something in Erlang, so who knows <img src='http://www.bigredbits.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/286/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probability Puzzles</title>
		<link>http://www.bigredbits.com/archives/278</link>
		<comments>http://www.bigredbits.com/archives/278#comments</comments>
		<pubDate>Wed, 17 Feb 2010 02:54:53 +0000</pubDate>
		<dc:creator>renatoppl</dc:creator>
				<category><![CDATA[puzzles]]></category>
		<category><![CDATA[probability]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=278</guid>
		<description><![CDATA[Today in a dinner with Thanh, Hu and Joel I heard about a paradox I haven&#8217;t heard so far. Probability is full of cute problems that challenge our understanding of the basic concepts. The most famous of them is the Monty Hall Problem, which asks: You are on a TV game show and there are [...]]]></description>
			<content:encoded><![CDATA[<p>Today in a dinner with Thanh, Hu and Joel I heard about a paradox I haven&#8217;t heard so far. Probability is full of cute problems that challenge our understanding of the basic concepts. The most famous of them is the <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Monty_Hall_problem">Monty Hall Problem</a>, which asks:</p>
<blockquote><p>You are on a TV game show and there are <img src='http://s.wordpress.com/latex.php?latex=%7B3%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{3}' title='{3}' class='latex' /> doors &#8211; one of them contains a prize, say a car and the other two door contain things you don&#8217;t care about, say goats. You choose a door. Then the TV host, who knows where the prize is, opens one door you haven&#8217;t chosen and that he knows has a goat. Then he asks if you want to stick to the door you have chosen or if you want to change to the other door. What should you do?</p></blockquote>
<p>Probably you&#8217;ve already came across this question in some moment of your life and the answer is that changing doors would double your probability of getting the price. There are several ways of convincing your intuitions:</p>
<ul>
<li> Do the math: when you chose the door, there were three options so the prize is in the door you chose with <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B3%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{3}}' title='{\frac{1}{3}}' class='latex' /> probability and in the other door with probability <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B2%7D%7B3%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{2}{3}}' title='{\frac{2}{3}}' class='latex' /> (note that the presenter can always open some door with a goat, so conditioning on that event doesn&#8217;t give you any new information).</li>
<li> Do the actual experiment (computationally) as done <a class="snap_noshots" href="http://igor-nav.livejournal.com/16784.html">here</a>. One can always ask a friend to help, get some goats and perform the actual experiment.</li>
<li> To convince yourself that &#8220;it doesn&#8217;t matter&#8221; is not correct, think <img src='http://s.wordpress.com/latex.php?latex=%7B100%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{100}' title='{100}' class='latex' /> doors. You choose one and the TV host open <img src='http://s.wordpress.com/latex.php?latex=%7B98%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{98}' title='{98}' class='latex' /> of them and asks if you want to change or stick with your first choice. Wouldn&#8217;t you change?</li>
</ul>
<p>I&#8217;ve seen TV shows where this happened and I acknowledge that other things may be involved: there might be behavioral and psychologic issues associated with the Monty Hall problem &#8211; and possibly those would interest <a class="snap_noshots" href="http://www.amazon.com/Predictably-Irrational-Revised-Intl-Decisions/dp/0062018205/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1266295712&amp;sr=8-2">Dan Ariely</a>, whose book I began reading today &#8211; and looks quite fun. But the problem they told me about today in dinner was another: <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Two_envelope_problem">the envelope problem</a>:</p>
<blockquote><p>There are two envelopes and you are told that in one of them there is twice the amount that there is in the other. You choose one of the envelopes at random and open it: it contains <img src='http://s.wordpress.com/latex.php?latex=%7B100%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{100}' title='{100}' class='latex' /> bucks. Now, you don&#8217;t know if the other envelope has <img src='http://s.wordpress.com/latex.php?latex=%7B50%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{50}' title='{50}' class='latex' /> bucks or <img src='http://s.wordpress.com/latex.php?latex=%7B200%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{200}' title='{200}' class='latex' /> bucks. Then someone asks you if you wanted to pay <img src='http://s.wordpress.com/latex.php?latex=%7B10%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{10}' title='{10}' class='latex' /> bucks and change to the other envelope. Should you change?</p></blockquote>
<p>Now, consider two different solutions to this problem: the first is fallacious and the second is correct:</p>
<ol>
<li> If I don&#8217;t change, I get <img src='http://s.wordpress.com/latex.php?latex=%7B100%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{100}' title='{100}' class='latex' /> bucks, if I change I pay a penalty of <img src='http://s.wordpress.com/latex.php?latex=%7B10%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{10}' title='{10}' class='latex' /> and I get either <img src='http://s.wordpress.com/latex.php?latex=%7B50%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{50}' title='{50}' class='latex' /> or <img src='http://s.wordpress.com/latex.php?latex=%7B200%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{200}' title='{200}' class='latex' /> with equal probability, so my expected prize if I change is <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B200%2B50%7D%7B2%7D-10%20%3D%20115%20%3E%20100%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{200+50}{2}-10 = 115 &gt; 100}' title='{\frac{200+50}{2}-10 = 115 &gt; 100}' class='latex' />, so I should change.</li>
<li> I know there is one envelope with <img src='http://s.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> and one with <img src='http://s.wordpress.com/latex.php?latex=%7B2x%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{2x}' title='{2x}' class='latex' />, then my expected prize if I don&#8217;t change is <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7Bx%20%2B%202x%7D%7B2%7D%20%3D%20%5Cfrac%7B3%7D%7B2%7Dx%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{x + 2x}{2} = \frac{3}{2}x}' title='{\frac{x + 2x}{2} = \frac{3}{2}x}' class='latex' />. If I change, my expected prize is <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7Bx%20%2B%202x%7D%7B2%7D%20-%2010%20%3C%20%5Cfrac%7B3%7D%7B2%7Dx%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{x + 2x}{2} - 10 &lt; \frac{3}{2}x}' title='{\frac{x + 2x}{2} - 10 &lt; \frac{3}{2}x}' class='latex' />, so I should not change.</li>
</ol>
<p>The fallacy in the first argument is perceiving a probability distribution where there is no one. Either the other envelope contains <img src='http://s.wordpress.com/latex.php?latex=%7B50%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{50}' title='{50}' class='latex' /> bucks or it contains <img src='http://s.wordpress.com/latex.php?latex=%7B200%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{200}' title='{200}' class='latex' /> bucks &#8211; we just don&#8217;t know, but there is no probability distribution there &#8211; it is a deterministic choice by the game designer. Most of those paradoxes are a result of either an ill-defined probability space, as <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Bertrand%27s_paradox_%28probability%29">Bertrand&#8217;s Paradox</a> or a wrong comprehension of the probability space, as in Monty Hall or in several paradoxes exploring the same idea as: <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Three_Prisoners_problem">Three Prisioners</a>, <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Sleeping_Beauty_problem">Sleeping Beauty</a>, <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Boy_or_Girl_paradox">Boy or Girl Paradox</a>, &#8230;</p>
<p style="text-align: center;"><img class="aligncenter size-medium wp-image-280" title="73a_humpty-dumpty" src="http://www.bigredbits.com/wp-content/uploads/2010/02/73a_humpty-dumpty-300x184.jpg" alt="73a_humpty-dumpty" width="300" height="184" /></p>
<p>There was very recently a thrilling discussion about a variant on the envelope paradox in the <a class="snap_noshots" href="http://blag.xkcd.com/">xkcd blag </a> &#8211; which is the blog accompaning that <a class="snap_noshots" href="http://xkcd.com/">amazing webcomic</a>. There was a recent blog post with <a class="snap_noshots" href="http://blog.xkcd.com/2010/02/09/math-puzzle/">a very intriguing problem</a>. A better idea is to go there and read the discussion, but if you are not doing so, let me summarize it here. The problem is:</p>
<blockquote><p>There are two envelopes containing each of them a distinct real number. You pick one envelope at random, open it and see the number, then you are asked to guess if the number in the other envelope is larger or smaller then the previous one. Can you guess correctly with more than <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' /> probability?</p>
<p>A related problem is: given that you are playing the envelope game and there are number <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BB%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{B}' title='{B}' class='latex' /> (with <img src='http://s.wordpress.com/latex.php?latex=%7BA%20%3C%20B%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A &lt; B}' title='{A &lt; B}' class='latex' />). You pick one envelope at random and then you are able to look at the content of the first envelope you open and then decide to switch or not. Is there a strategy that gives you expected earnings greater than <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7BA%2BB%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{A+B}{2}}' title='{\frac{A+B}{2}}' class='latex' /> ?</p></blockquote>
<p>The very unexpected answers is <strong>yes</strong> !!! The strategy that Randall presents in the blog and there is a <a class="snap_noshots" href="http://www.iwr.uni-heidelberg.de/groups/ngg/People/winckler/PU/p008.html">link to the source here</a> is: let <img src='http://s.wordpress.com/latex.php?latex=%7BX%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X}' title='{X}' class='latex' /> be a random variable on <img src='http://s.wordpress.com/latex.php?latex=%7B%7B%5Cmathbb%20R%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{{\mathbb R}}' title='{{\mathbb R}}' class='latex' /> such that for each <img src='http://s.wordpress.com/latex.php?latex=%7Ba%3Cb%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{a&lt;b}' title='{a&lt;b}' class='latex' /> we have <img src='http://s.wordpress.com/latex.php?latex=%7BP%28a%20%3C%20X%20%3C%20b%29%20%3E%200%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{P(a &lt; X &lt; b) &gt; 0}' title='{P(a &lt; X &lt; b) &gt; 0}' class='latex' />, for example, the normal distribution or the logistic distribution.</p>
<p>Sample <img src='http://s.wordpress.com/latex.php?latex=%7BX%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X}' title='{X}' class='latex' /> then open the envelope and find a number <img src='http://s.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' /> now, if <img src='http://s.wordpress.com/latex.php?latex=%7BX%20%3C%20S%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X &lt; S}' title='{X &lt; S}' class='latex' /> say the other number is lower and if <img src='http://s.wordpress.com/latex.php?latex=%7BX%20%3E%20S%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X &gt; S}' title='{X &gt; S}' class='latex' /> say the other number is higher. You get it right with probability</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20P%28%5Ctext%7Bpicked%20%7DA%29%20P%28X%20%3E%20A%29%20%2B%20P%28%5Ctext%7Bpicked%20%7DB%29%20P%28X%20%3C%20B%29%20%3D%20%5Cfrac%7B1%7D%7B2%7D%20%281%20%2B%20P%28A%20%3C%20X%20%3C%20B%29%29%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  P(\text{picked }A) P(X &gt; A) + P(\text{picked }B) P(X &lt; B) = \frac{1}{2} (1 + P(A &lt; X &lt; B)) ' title='\displaystyle  P(\text{picked }A) P(X &gt; A) + P(\text{picked }B) P(X &lt; B) = \frac{1}{2} (1 + P(A &lt; X &lt; B)) ' class='latex' /></p>
<p>which is impressive. If you follow your guess, your expected earning <img src='http://s.wordpress.com/latex.php?latex=%7BY%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Y}' title='{Y}' class='latex' /> is:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cbegin%7Baligned%7D%20%26P%28%5Ctext%7Bpicked%20%7DA%29%20%5Cmathop%7B%5Cmathbb%20E%7D%5BY%20%5Cvert%20%5Ctext%7Bpicked%20%7DA%5D%20%2B%20P%28%5Ctext%7Bpicked%20%7DB%29%20%5Cmathop%7B%5Cmathbb%20E%7D%5BY%20%5Cvert%20%5Ctext%7Bpicked%20%7DB%5D%20%3D%20%5C%5C%20%26%20%3D%20%5Cfrac%7B1%7D%7B2%7D%20%5BP%28X%3CA%29%20A%20%2B%20P%28X%3EA%29%20B%5D%20%2B%20%5Cfrac%7B1%7D%7B2%7D%20%5BP%28X%3CB%29%20B%20%2B%20P%28X%3EB%29%20A%5D%20%5C%5C%20%26%3D%20%5Cfrac%7B1%7D%7B2%7D%5BA%20%5BP%28X%3CA%29%20%2B%20P%28X%3EB%29%5D%20%2B%20B%20%5BP%28X%3EA%29%20%2B%20P%28X%3CB%29%5D%5D%20%3E%20%5Cfrac%7BA%2BB%7D%7B2%7D%20%5C%5C%20%5Cend%7Baligned%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \begin{aligned} &amp;P(\text{picked }A) \mathop{\mathbb E}[Y \vert \text{picked }A] + P(\text{picked }B) \mathop{\mathbb E}[Y \vert \text{picked }B] = \\ &amp; = \frac{1}{2} [P(X&lt;A) A + P(X&gt;A) B] + \frac{1}{2} [P(X&lt;B) B + P(X&gt;B) A] \\ &amp;= \frac{1}{2}[A [P(X&lt;A) + P(X&gt;B)] + B [P(X&gt;A) + P(X&lt;B)]] &gt; \frac{A+B}{2} \\ \end{aligned}' title='\displaystyle \begin{aligned} &amp;P(\text{picked }A) \mathop{\mathbb E}[Y \vert \text{picked }A] + P(\text{picked }B) \mathop{\mathbb E}[Y \vert \text{picked }B] = \\ &amp; = \frac{1}{2} [P(X&lt;A) A + P(X&gt;A) B] + \frac{1}{2} [P(X&lt;B) B + P(X&gt;B) A] \\ &amp;= \frac{1}{2}[A [P(X&lt;A) + P(X&gt;B)] + B [P(X&gt;A) + P(X&lt;B)]] &gt; \frac{A+B}{2} \\ \end{aligned}' class='latex' /></p>
<p>The xkcd pointed to this cool <a class="snap_noshots" href="http://www.iwr.uni-heidelberg.de/groups/ngg/People/winckler/PU/">archive of puzzles and riddles</a>. I was also told that the <a class="snap_noshots" href="http://forums.xkcd.com/viewforum.php?f=3&amp;sid=0a47f2eeadd72be7890309b1c685c503">xkcd puzzle forum</a> is also a source of excellent puzzles, as this:</p>
<blockquote><p>You are the most eligible bachelor in the kingdom, and as such the King has invited you to his castle so that you may choose one of his three daughters to marry. The eldest princess is honest and always tells the truth. The youngest princess is dishonest and always lies. The middle princess is mischievous and tells the truth sometimes and lies the rest of the time. As you will be forever married to one of the princesses, you want to marry the eldest (truth-teller) or the youngest (liar) because at least you know where you stand with them. The problem is that you cannot tell which sister is which just by their appearance, and the King will only grant you ONE yes or no question which you may only address to ONE of the sisters. What yes or no question can you ask which will ensure you do not marry the middle sister?</p></blockquote>
<p>copied from <a class="snap_noshots" href="http://forums.xkcd.com/viewtopic.php?f=3&amp;t=87">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/278/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Walrasian Equilibrium I</title>
		<link>http://www.bigredbits.com/archives/274</link>
		<comments>http://www.bigredbits.com/archives/274#comments</comments>
		<pubDate>Tue, 16 Feb 2010 04:32:53 +0000</pubDate>
		<dc:creator>renatoppl</dc:creator>
				<category><![CDATA[theory]]></category>
		<category><![CDATA[equilibrium theory]]></category>
		<category><![CDATA[game theory]]></category>
		<category><![CDATA[market design]]></category>
		<category><![CDATA[microeconomics]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=274</guid>
		<description><![CDATA[Currently I&#8217;ve been trying to understand more about the dynamics of markets and basic concepts of microeconomic theory and, as always, writing a blog post will help me to keep my ideas clear. First, why are markets interesting from a computer scientist/mathematician point of view? Markets are multi-objective optimization problems: one can think of the [...]]]></description>
			<content:encoded><![CDATA[<p>
Currently I&#8217;ve been trying to understand more about the dynamics of markets and basic concepts of <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Microeconomic">microeconomic theory</a> and, as always, writing a blog post will help me to keep my ideas clear. First, why are markets interesting from a computer scientist/mathematician point of view?</p>
<p><ul>
<li> Markets are multi-objective optimization problems: one can think of the possible state of a market some point in a space of possible <img src='http://s.wordpress.com/latex.php?latex=%7Bx%20%3D%20%28x_1%2C%20%5Chdots%2C%20x_N%29%20%5Cin%20%5COmega%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x = (x_1, \hdots, x_N) \in \Omega}&amp;fg=000000' title='{x = (x_1, \hdots, x_N) \in \Omega}&amp;fg=000000' class='latex' />. Each player of the market controls one variable, say <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i}&amp;fg=000000' title='{x_i}&amp;fg=000000' class='latex' /> and is interested in maximizing one objective function <img src='http://s.wordpress.com/latex.php?latex=%7Bf_i%28x%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_i(x)}&amp;fg=000000' title='{f_i(x)}&amp;fg=000000' class='latex' />. So, player <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> is trying to set <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%20%3D%20%5Ctext%7Bargmax%7D_%7Bx_i%7D%20f_i%28x_i%2C%20x_%7B-i%7D%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i = \text{argmax}_{x_i} f_i(x_i, x_{-i})}&amp;fg=000000' title='{x_i = \text{argmax}_{x_i} f_i(x_i, x_{-i})}&amp;fg=000000' class='latex' />.
<li> Markets are a computational model: one can think of a market as a way of performing a certain computation &#8211; as extracting some kind of information, as a <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Prediction_market">prediction market</a>, <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Stock_exchange">stock exchanges</a>, &#8230; If we think of it as a computational device, we are asking the same questions: given those preferences which are implicit functions to each of the agents, calculate &#8220;fair&#8221; prices of items.
<li> Markets are distributed systems where each part of the system has a selfish interest.
</ul>
<p>
A market is composed by a set <img src='http://s.wordpress.com/latex.php?latex=%7BL%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{L}&amp;fg=000000' title='{L}&amp;fg=000000' class='latex' /> of commodities, <img src='http://s.wordpress.com/latex.php?latex=%7BI%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{I}&amp;fg=000000' title='{I}&amp;fg=000000' class='latex' /> of consumers and <img src='http://s.wordpress.com/latex.php?latex=%7BJ%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{J}&amp;fg=000000' title='{J}&amp;fg=000000' class='latex' /> of producers. Now, we describe how to characterize each of them:</p>
<p><ul>
<li> Each <b>consumer</b> is defined by a set <img src='http://s.wordpress.com/latex.php?latex=%7BX_i%20%5Csubseteq%20%7B%5Cmathbb%20R%7D%5EL%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X_i \subseteq {\mathbb R}^L}&amp;fg=000000' title='{X_i \subseteq {\mathbb R}^L}&amp;fg=000000' class='latex' /> of commodities combinations he is interested (typically we take <img src='http://s.wordpress.com/latex.php?latex=%7BX_i%20%3D%20%7B%5Cmathbb%20R%7D%5EL_%2B%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X_i = {\mathbb R}^L_+}&amp;fg=000000' title='{X_i = {\mathbb R}^L_+}&amp;fg=000000' class='latex' />) and an utility function <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%20%3A%20X_i%20%5Crightarrow%20%7B%5Cmathbb%20R%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i : X_i \rightarrow {\mathbb R}}&amp;fg=000000' title='{u_i : X_i \rightarrow {\mathbb R}}&amp;fg=000000' class='latex' /> expressing his interest for this bundle of commodities. Consumer <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> will try to maximize <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28%5Ccdot%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(\cdot)}&amp;fg=000000' title='{u_i(\cdot)}&amp;fg=000000' class='latex' /> in a further restricted <img src='http://s.wordpress.com/latex.php?latex=%7BX_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X_i}&amp;fg=000000' title='{X_i}&amp;fg=000000' class='latex' />.
<li> Each <b>producer</b> is define by a set <img src='http://s.wordpress.com/latex.php?latex=%7BY_j%20%5Csubset%20%7B%5Cmathbb%20R%7D%5EL%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Y_j \subset {\mathbb R}^L}&amp;fg=000000' title='{Y_j \subset {\mathbb R}^L}&amp;fg=000000' class='latex' /> it has the capacity to produce.
<li> <b>Endowments</b>: Each consumer comes to the market with an initial endowment <img src='http://s.wordpress.com/latex.php?latex=%7B%5Comega_i%20%5Cin%20%7B%5Cmathbb%20R%7D%5EL%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\omega_i \in {\mathbb R}^L}&amp;fg=000000' title='{\omega_i \in {\mathbb R}^L}&amp;fg=000000' class='latex' />, so for <img src='http://s.wordpress.com/latex.php?latex=%7Bj%20%5Cin%20L%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{j \in L}&amp;fg=000000' title='{j \in L}&amp;fg=000000' class='latex' />, <img src='http://s.wordpress.com/latex.php?latex=%7B%5Comega_%7Bij%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\omega_{ij}}&amp;fg=000000' title='{\omega_{ij}}&amp;fg=000000' class='latex' /> is the amount of commodity <img src='http://s.wordpress.com/latex.php?latex=%7Bj%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{j}&amp;fg=000000' title='{j}&amp;fg=000000' class='latex' /> that consumer <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> originally has. The initial total endowment of the market is given by <img src='http://s.wordpress.com/latex.php?latex=%7B%5Coverline%7B%5Comega%7D%20%3D%20%5Csum_%7Bi%20%5Cin%20I%7D%20%5Comega_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\overline{\omega} = \sum_{i \in I} \omega_i}&amp;fg=000000' title='{\overline{\omega} = \sum_{i \in I} \omega_i}&amp;fg=000000' class='latex' />, which is a vector indicating how much of each commodity originally exists in the market.
<li> <b>Shares</b>: consumers have shares in the companies, so for <img src='http://s.wordpress.com/latex.php?latex=%7Bi%20%5Cin%20I%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i \in I}&amp;fg=000000' title='{i \in I}&amp;fg=000000' class='latex' />, <img src='http://s.wordpress.com/latex.php?latex=%7Bj%20%5Cin%20J%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{j \in J}&amp;fg=000000' title='{j \in J}&amp;fg=000000' class='latex' />, consumer <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> has <img src='http://s.wordpress.com/latex.php?latex=%7B%5Ctheta_%7Bij%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\theta_{ij}}&amp;fg=000000' title='{\theta_{ij}}&amp;fg=000000' class='latex' /> shares of company <img src='http://s.wordpress.com/latex.php?latex=%7Bj%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{j}&amp;fg=000000' title='{j}&amp;fg=000000' class='latex' />, such that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_i%20%5Ctheta_%7Bij%7D%20%3D%201%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_i \theta_{ij} = 1}&amp;fg=000000' title='{\sum_i \theta_{ij} = 1}&amp;fg=000000' class='latex' />.
</ul>
<p>
Something very crucial is missing in this picture: a way to compare commodities and something that makes exchanges possible: the answer to that is to attribute <b>prices</b> to the items. How to attribute prices to the items so that the market works fine? A price vector is a vector <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Cin%20%7B%5Cmathbb%20R%7D%5EL_%2B%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \in {\mathbb R}^L_+}&amp;fg=000000' title='{p \in {\mathbb R}^L_+}&amp;fg=000000' class='latex' />. Consider the following scenario after prices <img src='http://s.wordpress.com/latex.php?latex=%7Bp_%5Cell%2C%20%5Cell%20%5Cin%20L%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_\ell, \ell \in L}&amp;fg=000000' title='{p_\ell, \ell \in L}&amp;fg=000000' class='latex' /> are established to commodities:</p>
<p><ul>
<li> by producing <img src='http://s.wordpress.com/latex.php?latex=%7By_j%20%5Cin%20Y_j%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{y_j \in Y_j}&amp;fg=000000' title='{y_j \in Y_j}&amp;fg=000000' class='latex' />, company <img src='http://s.wordpress.com/latex.php?latex=%7Bj%20%5Cin%20J%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{j \in J}&amp;fg=000000' title='{j \in J}&amp;fg=000000' class='latex' /> gets profit <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Ccdot%20y_j%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \cdot y_j}&amp;fg=000000' title='{p \cdot y_j}&amp;fg=000000' class='latex' />, so each company will try to maximize its profit producing <img src='http://s.wordpress.com/latex.php?latex=%7By_j%5E%2A%20%5Cin%20%5Ctext%7Bargmax%7D_%7By_j%20%5Cin%20Y_j%7D%20p%20%5Ccdot%20y_j%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{y_j^* \in \text{argmax}_{y_j \in Y_j} p \cdot y_j}&amp;fg=000000' title='{y_j^* \in \text{argmax}_{y_j \in Y_j} p \cdot y_j}&amp;fg=000000' class='latex' />.
<li> each consumer sells its initial endowment and gets the profit respective to the companies he owns. So, consumer <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> gets <img src='http://s.wordpress.com/latex.php?latex=%7Bw_i%20%3D%20p%20%5Ccdot%20%5Comega_i%20%2B%20%5Csum_%7Bj%20%5Cin%20J%7D%20%5Ctheta_%7Bij%7D%20p%20%5Ccdot%20y_j%5E%2A%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{w_i = p \cdot \omega_i + \sum_{j \in J} \theta_{ij} p \cdot y_j^*}&amp;fg=000000' title='{w_i = p \cdot \omega_i + \sum_{j \in J} \theta_{ij} p \cdot y_j^*}&amp;fg=000000' class='latex' />.
<li> now consumer <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> uses the money he has to buy the best bundle he can afford, which is <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%5E%2A%20%3D%20%5Ctext%7Bargmax%7D%20%5C%7Bu_i%28x_i%29%3B%20x_i%20%5Cin%20X_i%2C%20p%20%5Ccdot%20x_i%20%5Cleq%20w_i%5C%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i^* = \text{argmax} \{u_i(x_i); x_i \in X_i, p \cdot x_i \leq w_i\}}&amp;fg=000000' title='{x_i^* = \text{argmax} \{u_i(x_i); x_i \in X_i, p \cdot x_i \leq w_i\}}&amp;fg=000000' class='latex' />.
</ul>
<p>
The amount of commodities in the market must conserve, so that is possible only if we get:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Csum_%7Bi%20%5Cin%20I%7D%20x_i%5E%2A%20%3D%20%5Csum_%7Bi%20%5Cin%20I%7D%20%5Comega_i%20%2B%20%5Csum_%7Bj%20%5Cin%20J%7D%20y_j%5E%2A%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \sum_{i \in I} x_i^* = \sum_{i \in I} \omega_i + \sum_{j \in J} y_j^*&amp;fg=000000' title='\displaystyle \sum_{i \in I} x_i^* = \sum_{i \in I} \omega_i + \sum_{j \in J} y_j^*&amp;fg=000000' class='latex' /></p>
<p>
First, it is not clear if such a price vector exists. If it exists, is it unique? If this is an equilibrium, is it the best thing for the consumers? How those prices can be set in practice without a centralized authority? Can people lie? Below, let&#8217;s collect a couple of questions I&#8217;ll try to answer (yes, no or unknown) in this and the following posts.</p>
<p>
<b>Question 1:</b> Does a price vector <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Cgeq%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \geq 0}&amp;fg=000000' title='{p \geq 0}&amp;fg=000000' class='latex' /> always exist that generates an equilibrium?</p>
<p>
<b>Question 2:</b> If it exists, is it unique?</p>
<p>
<b>Question 3:</b> Can we describe an efficent method to find <img src='http://s.wordpress.com/latex.php?latex=%7Bp%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p}&amp;fg=000000' title='{p}&amp;fg=000000' class='latex' /> ?</p>
<p>
<b>Question 4:</b> Is it the best thing for the consumers in the following sense: if <img src='http://s.wordpress.com/latex.php?latex=%7B%28x%5E%2A%2Cy%5E%2A%2Cp%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(x^*,y^*,p)}&amp;fg=000000' title='{(x^*,y^*,p)}&amp;fg=000000' class='latex' /> is an equilibrium, are there feasible <img src='http://s.wordpress.com/latex.php?latex=%7B%28x%2Cy%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(x,y)}&amp;fg=000000' title='{(x,y)}&amp;fg=000000' class='latex' /> such that <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28x_i%29%20%5Cgeq%20u_i%28x_i%5E%2A%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(x_i) \geq u_i(x_i^*)}&amp;fg=000000' title='{u_i(x_i) \geq u_i(x_i^*)}&amp;fg=000000' class='latex' /> and for at least one consumer <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28x_i%29%20%3E%20u_i%28x_i%5E%2A%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(x_i) &gt; u_i(x_i^*)}&amp;fg=000000' title='{u_i(x_i) &gt; u_i(x_i^*)}&amp;fg=000000' class='latex' />? (This is called Pareto improvement)</p>
<p>
<b>Question 5:</b> A central authority could use the knowledge about functions <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i}&amp;fg=000000' title='{u_i}&amp;fg=000000' class='latex' /> and endowments <img src='http://s.wordpress.com/latex.php?latex=%7B%5Comega_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\omega_i}&amp;fg=000000' title='{\omega_i}&amp;fg=000000' class='latex' /> to calculate the price vector <img src='http://s.wordpress.com/latex.php?latex=%7Bp%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p}&amp;fg=000000' title='{p}&amp;fg=000000' class='latex' /> using some method. Can consumers <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> be better off by lieing about their utility and endowments?</p>
<p>
<b>Question 6:</b> How prices get defined without a central authority? Is there a dynamic/game-theoretical model to that?</p>
<p>
For simplicity, let&#8217;s think of <b>Exchange Economies</b>, which are economies with no producers. Let&#8217;s define it formally:</p>
<blockquote><p><b>Definition 1</b> <em> An exchange economy is composed by a set of commodities <img src='http://s.wordpress.com/latex.php?latex=%7BL%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{L}&amp;fg=000000' title='{L}&amp;fg=000000' class='latex' /> and a set of consumers <img src='http://s.wordpress.com/latex.php?latex=%7BI%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{I}&amp;fg=000000' title='{I}&amp;fg=000000' class='latex' /> each with an utility <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%20%3A%20X_i%20%5Crightarrow%20%7B%5Cmathbb%20R%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i : X_i \rightarrow {\mathbb R}}&amp;fg=000000' title='{u_i : X_i \rightarrow {\mathbb R}}&amp;fg=000000' class='latex' /> and an initial endowment <img src='http://s.wordpress.com/latex.php?latex=%7B%5Comega_i%20%5Cin%20%7B%5Cmathbb%20R%7D%5EL_%2B%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\omega_i \in {\mathbb R}^L_+}&amp;fg=000000' title='{\omega_i \in {\mathbb R}^L_+}&amp;fg=000000' class='latex' />. </em></p></blockquote>
<p>
<blockquote><p><b>Definition 2</b> <em> A price vector <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Cin%20%7B%5Cmathbb%20R%7D%5EL_%2B%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \in {\mathbb R}^L_+}&amp;fg=000000' title='{p \in {\mathbb R}^L_+}&amp;fg=000000' class='latex' /> is a Walrasian equilibrium for an exchange economy <img src='http://s.wordpress.com/latex.php?latex=%7B%28L%2C%20I%2C%20%5C%7BX_i%2C%20u_i%2C%20%5Comega_i%5C%7D_%7Bi%20%5Cin%20I%7D%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(L, I, \{X_i, u_i, \omega_i\}_{i \in I})}&amp;fg=000000' title='{(L, I, \{X_i, u_i, \omega_i\}_{i \in I})}&amp;fg=000000' class='latex' /> if there is <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%5E%2A%20%5Cin%20X_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i^* \in X_i}&amp;fg=000000' title='{x_i^* \in X_i}&amp;fg=000000' class='latex' /> such that: </p>
<ol>
<li> <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%5E%2A%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i^*}&amp;fg=000000' title='{x_i^*}&amp;fg=000000' class='latex' /> s.t. <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28x_i%5E%2A%29%20%3D%20%5Cmax%20%5C%7Bu_i%28x_i%29%3B%20x_i%20%5Cin%20X_i%2C%20p%20%5Ccdot%20x_i%20%5Cleq%20p%20%5Ccdot%20%5Comega_i%5C%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(x_i^*) = \max \{u_i(x_i); x_i \in X_i, p \cdot x_i \leq p \cdot \omega_i\}}&amp;fg=000000' title='{u_i(x_i^*) = \max \{u_i(x_i); x_i \in X_i, p \cdot x_i \leq p \cdot \omega_i\}}&amp;fg=000000' class='latex' />
<li> <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_i%20x_i%5E%2A%20%5Cleq%20%5Csum_i%20%5Comega_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_i x_i^* \leq \sum_i \omega_i}&amp;fg=000000' title='{\sum_i x_i^* \leq \sum_i \omega_i}&amp;fg=000000' class='latex' />
<li> <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Ccdot%20%28%5Csum_i%20x_i%5E%2A%20-%20%5Comega_i%29%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \cdot (\sum_i x_i^* - \omega_i)= 0}&amp;fg=000000' title='{p \cdot (\sum_i x_i^* - \omega_i)= 0}&amp;fg=000000' class='latex' />
</ol>
<p> </em></p></blockquote>
<p><p>
The first condition says that each consumer is maximizing his utility given his prices, the second says that we can&#8217;t buy more commodities than what is available in the market and the third, called Walras&#8217; Law, says that if there is surplus of a certain product, it should have price zero. It is by far the most unnatural of those, but it can be easily justifiable in some circumnstances: suppose we say that utilities are non-satiated if for each <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%20%5Cin%20X_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i \in X_i}&amp;fg=000000' title='{x_i \in X_i}&amp;fg=000000' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cepsilon%20%3E%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\epsilon &gt; 0}&amp;fg=000000' title='{\epsilon &gt; 0}&amp;fg=000000' class='latex' />, there is <img src='http://s.wordpress.com/latex.php?latex=%7Bx%27_i%20%5Cin%20X_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x&#039;_i \in X_i}&amp;fg=000000' title='{x&#039;_i \in X_i}&amp;fg=000000' class='latex' />, <img src='http://s.wordpress.com/latex.php?latex=%7B%5CVert%20x_i%20-%20x%27_i%20%5CVert%20%3C%20%5Cepsilon%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Vert x_i - x&#039;_i \Vert &lt; \epsilon}&amp;fg=000000' title='{\Vert x_i - x&#039;_i \Vert &lt; \epsilon}&amp;fg=000000' class='latex' /> such that <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28x%27_i%29%20%3E%20u_i%28x_i%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(x&#039;_i) &gt; u_i(x_i)}&amp;fg=000000' title='{u_i(x&#039;_i) &gt; u_i(x_i)}&amp;fg=000000' class='latex' />. If <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i}&amp;fg=000000' title='{u_i}&amp;fg=000000' class='latex' /> are differentiable, that would mean <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cnabla%20u_i%20%5Cneq%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\nabla u_i \neq 0}&amp;fg=000000' title='{\nabla u_i \neq 0}&amp;fg=000000' class='latex' />, for example a linear function <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28x_i%29%20%3D%20%5Csum_%5Cell%20u_%7Bi%5Cell%7D%20x_%7Bi%5Cell%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(x_i) = \sum_\ell u_{i\ell} x_{i\ell}}&amp;fg=000000' title='{u_i(x_i) = \sum_\ell u_{i\ell} x_{i\ell}}&amp;fg=000000' class='latex' /> with some <img src='http://s.wordpress.com/latex.php?latex=%7Bu_%7Bi%5Cell%7D%20%3E%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_{i\ell} &gt; 0}&amp;fg=000000' title='{u_{i\ell} &gt; 0}&amp;fg=000000' class='latex' />. In that case, <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_i%20%28p%20%5Ccdot%20x_i%5E%2A%20-%20p%20%5Ccdot%20%5Comega_i%29%20%3C%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_i (p \cdot x_i^* - p \cdot \omega_i) &lt; 0}&amp;fg=000000' title='{\sum_i (p \cdot x_i^* - p \cdot \omega_i) &lt; 0}&amp;fg=000000' class='latex' /> and some player has money surplus and therefore he could increase his utility.</p>
<p>
Now, we define for each price vector <img src='http://s.wordpress.com/latex.php?latex=%7Bp%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p}&amp;fg=000000' title='{p}&amp;fg=000000' class='latex' /> the excess demand function <img src='http://s.wordpress.com/latex.php?latex=%7Bz_i%28p%29%20%3D%20x_i%28p%29%20-%20%5Comega_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z_i(p) = x_i(p) - \omega_i}&amp;fg=000000' title='{z_i(p) = x_i(p) - \omega_i}&amp;fg=000000' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Bz%28p%29%20%3D%20%5Csum_i%20z_i%28p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z(p) = \sum_i z_i(p)}&amp;fg=000000' title='{z(p) = \sum_i z_i(p)}&amp;fg=000000' class='latex' />. Now, under non-satiated utilities, by the last argument, we have that <img src='http://s.wordpress.com/latex.php?latex=%7Bp%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p}&amp;fg=000000' title='{p}&amp;fg=000000' class='latex' /> is an equilibrium vector iff <img src='http://s.wordpress.com/latex.php?latex=%7Bz%28p%29%20%5Cleq%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z(p) \leq 0}&amp;fg=000000' title='{z(p) \leq 0}&amp;fg=000000' class='latex' />. Actually, if <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i}&amp;fg=000000' title='{u_i}&amp;fg=000000' class='latex' /> are also strong monotone, i.e., <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28x_i%20%2B%20%5Cxi%29%20%5Cgeq%20u_i%28x_i%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(x_i + \xi) \geq u_i(x_i)}&amp;fg=000000' title='{u_i(x_i + \xi) \geq u_i(x_i)}&amp;fg=000000' class='latex' /> for each <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cxi%20%5Cgeq%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\xi \geq 0}&amp;fg=000000' title='{\xi \geq 0}&amp;fg=000000' class='latex' />, then it becomes: <img src='http://s.wordpress.com/latex.php?latex=%7Bp%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p}&amp;fg=000000' title='{p}&amp;fg=000000' class='latex' /> is an equilibrium iff <img src='http://s.wordpress.com/latex.php?latex=%7Bz%28p%29%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z(p) = 0}&amp;fg=000000' title='{z(p) = 0}&amp;fg=000000' class='latex' />, which means that the market clears:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Csum_i%20x_i%5E%2A%20%3D%20%5Csum_i%20%5Comega_i%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \sum_i x_i^* = \sum_i \omega_i&amp;fg=000000' title='\displaystyle \sum_i x_i^* = \sum_i \omega_i&amp;fg=000000' class='latex' /></p>
<p>
The question that is easier to answer is Question 4 and it is sometimes refered as the First Fundamental Theorem of Welfare Economics:</p>
<blockquote><p><b>Theorem 3</b> <em> Given non-satiated preferences, each equilibrium <img src='http://s.wordpress.com/latex.php?latex=%7B%28x%2Cp%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(x,p)}&amp;fg=000000' title='{(x,p)}&amp;fg=000000' class='latex' /> is Pareto, i.e. there is no other feasible allocation <img src='http://s.wordpress.com/latex.php?latex=%7Bx%27%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x&#039;}&amp;fg=000000' title='{x&#039;}&amp;fg=000000' class='latex' /> such that for all <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' />, <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28x%27_i%29%20%5Cgeq%20u_i%28x_i%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(x&#039;_i) \geq u_i(x_i)}&amp;fg=000000' title='{u_i(x&#039;_i) \geq u_i(x_i)}&amp;fg=000000' class='latex' /> with the inequality strict for at least one component. </em></p></blockquote>
<p><p>
<em>Proof:</em>  Suppose there were, since <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28x%27_i%29%20%5Cgeq%20u_i%28x_i%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(x&#039;_i) \geq u_i(x_i)}&amp;fg=000000' title='{u_i(x&#039;_i) \geq u_i(x_i)}&amp;fg=000000' class='latex' /> then <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Ccdot%20x%27_i%20%5Cgeq%20p%20%5Ccdot%20%5Comega_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \cdot x&#039;_i \geq p \cdot \omega_i}&amp;fg=000000' title='{p \cdot x&#039;_i \geq p \cdot \omega_i}&amp;fg=000000' class='latex' />, because if <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Ccdot%20x%27_i%20%3C%20p%20%5Ccdot%20%5Comega_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \cdot x&#039;_i &lt; p \cdot \omega_i}&amp;fg=000000' title='{p \cdot x&#039;_i &lt; p \cdot \omega_i}&amp;fg=000000' class='latex' /> then we could improve the utility of <img src='http://s.wordpress.com/latex.php?latex=%7Bx%27_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x&#039;_i}&amp;fg=000000' title='{x&#039;_i}&amp;fg=000000' class='latex' /> still within the budget, contradicting the optimality of <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28x_i%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(x_i)}&amp;fg=000000' title='{u_i(x_i)}&amp;fg=000000' class='latex' /> for that budget. And clearly <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28x%27_i%29%20%3E%20u_i%28x_i%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(x&#039;_i) &gt; u_i(x_i)}&amp;fg=000000' title='{u_i(x&#039;_i) &gt; u_i(x_i)}&amp;fg=000000' class='latex' /> implies <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Ccdot%20x%27_i%20%3E%20p%20%5Ccdot%20%5Comega_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \cdot x&#039;_i &gt; p \cdot \omega_i}&amp;fg=000000' title='{p \cdot x&#039;_i &gt; p \cdot \omega_i}&amp;fg=000000' class='latex' />.</p>
<p>
 Summing over <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' />, we get <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_i%20p%20x%27_i%20%3E%20%5Csum_i%20p%20%5Comega_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_i p x&#039;_i &gt; \sum_i p \omega_i}&amp;fg=000000' title='{\sum_i p x&#039;_i &gt; \sum_i p \omega_i}&amp;fg=000000' class='latex' />, what is a contradiction, because since <img src='http://s.wordpress.com/latex.php?latex=%7Bx%27%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x&#039;}&amp;fg=000000' title='{x&#039;}&amp;fg=000000' class='latex' /> is feasible, <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_i%20x%27_i%20%5Cleq%20%5Csum_i%20%5Comega_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_i x&#039;_i \leq \sum_i \omega_i}&amp;fg=000000' title='{\sum_i x&#039;_i \leq \sum_i \omega_i}&amp;fg=000000' class='latex' /> and therefore <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_i%20p%20%5Ccdot%20x%27_i%20%5Cleq%20%5Csum_i%20p%20%5Ccdot%20%5Comega_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_i p \cdot x&#039;_i \leq \sum_i p \cdot \omega_i}&amp;fg=000000' title='{\sum_i p \cdot x&#039;_i \leq \sum_i p \cdot \omega_i}&amp;fg=000000' class='latex' />. <img src='http://s.wordpress.com/latex.php?latex=%5CBox%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\Box&amp;fg=000000' title='\Box&amp;fg=000000' class='latex' /></p>
<p>
Now, let&#8217;s tackle Question 1. We assume linearly of utility: <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28x_i%29%20%3D%20%5Csum_%7B%5Cell%20%5Cin%20L%7D%20u_%7Bi%20%5Cell%7D%20x_%7Bi%20%5Cell%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(x_i) = \sum_{\ell \in L} u_{i \ell} x_{i \ell}}&amp;fg=000000' title='{u_i(x_i) = \sum_{\ell \in L} u_{i \ell} x_{i \ell}}&amp;fg=000000' class='latex' /> for <img src='http://s.wordpress.com/latex.php?latex=%7Bu_%7Bi%20%5Cell%7D%20%3E%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_{i \ell} &gt; 0}&amp;fg=000000' title='{u_{i \ell} &gt; 0}&amp;fg=000000' class='latex' />. This gives us strong monotonicity and local nonsatiated preferences.</p>
<blockquote><p><b>Theorem 4</b> <em> Under linear utilities, there is always an equilibrium price vector <img src='http://s.wordpress.com/latex.php?latex=%7Bp%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p}&amp;fg=000000' title='{p}&amp;fg=000000' class='latex' />. </em></p></blockquote>
<p><p>
Consider the function <img src='http://s.wordpress.com/latex.php?latex=%7Bz%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z}&amp;fg=000000' title='{z}&amp;fg=000000' class='latex' /> defined above: <img src='http://s.wordpress.com/latex.php?latex=%7Bz%28p%29%20%3D%20%5Csum_i%20%28x_i%28p%29%20-%20%5Comega_i%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z(p) = \sum_i (x_i(p) - \omega_i)}&amp;fg=000000' title='{z(p) = \sum_i (x_i(p) - \omega_i)}&amp;fg=000000' class='latex' /> where <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%28p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i(p)}&amp;fg=000000' title='{x_i(p)}&amp;fg=000000' class='latex' /> is the bundle of best possible utility. Now, since we are using linear utilities we can&#8217;t guarantee there will be only one such bundle, so instead of considering a function, consider <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i}&amp;fg=000000' title='{x_i}&amp;fg=000000' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Bz%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z}&amp;fg=000000' title='{z}&amp;fg=000000' class='latex' /> as being correspondences: <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%2C%20z%3A%20%7B%5Cmathbb%20R%7D%5EL_%2B%20%5Crightarrow%20%5Cmathcal%7BP%7D%28%7B%5Cmathbb%20R%7D%5EL%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i, z: {\mathbb R}^L_+ \rightarrow \mathcal{P}({\mathbb R}^L)}&amp;fg=000000' title='{x_i, z: {\mathbb R}^L_+ \rightarrow \mathcal{P}({\mathbb R}^L)}&amp;fg=000000' class='latex' />, i.e., <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%28p%29%20%5Csubseteq%20%7B%5Cmathbb%20R%7D%5EL_%2B%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i(p) \subseteq {\mathbb R}^L_+}&amp;fg=000000' title='{x_i(p) \subseteq {\mathbb R}^L_+}&amp;fg=000000' class='latex' /> is the set of all allocations that maximize <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28x_i%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(x_i)}&amp;fg=000000' title='{u_i(x_i)}&amp;fg=000000' class='latex' /> subject to <img src='http://s.wordpress.com/latex.php?latex=%7Bp%5Ccdot%20x_i%20%5Cleq%20p%20%5Ccdot%20%5Comega_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p\cdot x_i \leq p \cdot \omega_i}&amp;fg=000000' title='{p\cdot x_i \leq p \cdot \omega_i}&amp;fg=000000' class='latex' />. Since <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i}&amp;fg=000000' title='{u_i}&amp;fg=000000' class='latex' /> are linear functionals, we can calculate <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%28p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i(p)}&amp;fg=000000' title='{x_i(p)}&amp;fg=000000' class='latex' /> by a Fractional Knapsack algorithm: we sort commodities <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cell%20%5Cin%20L%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\ell \in L}&amp;fg=000000' title='{\ell \in L}&amp;fg=000000' class='latex' /> by <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7Bp_%5Cell%7D%7Bu_%7Bi%5Cell%7D%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{p_\ell}{u_{i\ell}}}&amp;fg=000000' title='{\frac{p_\ell}{u_{i\ell}}}&amp;fg=000000' class='latex' /> and start buying in the cost-benefit order (the ones that provide more utility per buck spent). Most of the time there will be just one solution, but in points where <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7Bp_%5Cell%7D%7Bu_%7Bi%5Cell%7D%7D%20%3D%20%5Cfrac%7Bp_k%7D%7Bu_%7Bi%20k%7D%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{p_\ell}{u_{i\ell}} = \frac{p_k}{u_{i k}}}&amp;fg=000000' title='{\frac{p_\ell}{u_{i\ell}} = \frac{p_k}{u_{i k}}}&amp;fg=000000' class='latex' />, then <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%28p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i(p)}&amp;fg=000000' title='{x_i(p)}&amp;fg=000000' class='latex' /> might be a convex region. This correpondence is <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Hemicontinuous">upper hemicontinuous</a>, which is the correspondence analogue to continuity for functions. As Wikipedia defines:</p>
<blockquote><p><b>Definition 5</b> <em> A correspondence <img src='http://s.wordpress.com/latex.php?latex=%7B%5CGamma%20%3A%20A%20%5Crightarrow%20B%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Gamma : A \rightarrow B}&amp;fg=000000' title='{\Gamma : A \rightarrow B}&amp;fg=000000' class='latex' /> is said to be <b>upper hemicontinuous</b> at the point <img src='http://s.wordpress.com/latex.php?latex=%7Ba%20%5Cin%20A%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{a \in A}&amp;fg=000000' title='{a \in A}&amp;fg=000000' class='latex' /> if for any open neighbourhood <img src='http://s.wordpress.com/latex.php?latex=%7BV%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{V}&amp;fg=000000' title='{V}&amp;fg=000000' class='latex' /> of <img src='http://s.wordpress.com/latex.php?latex=%7B%5CGamma%28a%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Gamma(a)}&amp;fg=000000' title='{\Gamma(a)}&amp;fg=000000' class='latex' /> there exists a neighbourhood <img src='http://s.wordpress.com/latex.php?latex=%7BU%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{U}&amp;fg=000000' title='{U}&amp;fg=000000' class='latex' /> of a such that <img src='http://s.wordpress.com/latex.php?latex=%7B%5CGamma%28x%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Gamma(x)}&amp;fg=000000' title='{\Gamma(x)}&amp;fg=000000' class='latex' /> is a subset of <img src='http://s.wordpress.com/latex.php?latex=%7BV%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{V}&amp;fg=000000' title='{V}&amp;fg=000000' class='latex' /> for all <img src='http://s.wordpress.com/latex.php?latex=%7Bx%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x}&amp;fg=000000' title='{x}&amp;fg=000000' class='latex' /> in <img src='http://s.wordpress.com/latex.php?latex=%7BU%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{U}&amp;fg=000000' title='{U}&amp;fg=000000' class='latex' />. </em></p></blockquote>
<p><p>
It is not hard to see that <img src='http://s.wordpress.com/latex.php?latex=%7Bz%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z}&amp;fg=000000' title='{z}&amp;fg=000000' class='latex' /> is upper hemicontinuous according to that definition. Our goal is to prove that there is one price vector <img src='http://s.wordpress.com/latex.php?latex=%7Bp%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p}&amp;fg=000000' title='{p}&amp;fg=000000' class='latex' /> for which <img src='http://s.wordpress.com/latex.php?latex=%7B%5Coverline%7B%5Comega%7D%20%5Cin%20x_i%28p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\overline{\omega} \in x_i(p)}&amp;fg=000000' title='{\overline{\omega} \in x_i(p)}&amp;fg=000000' class='latex' /> or: <img src='http://s.wordpress.com/latex.php?latex=%7B0%20%5Cin%20z%28p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{0 \in z(p)}&amp;fg=000000' title='{0 \in z(p)}&amp;fg=000000' class='latex' />. To prove that we use <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Kakutani_fixed_point_theorem">Kakutani&#8217;s Fixed Point Theorem</a>. Before we go into that, we&#8217;ll explore some other properties of <img src='http://s.wordpress.com/latex.php?latex=%7Bz%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z}&amp;fg=000000' title='{z}&amp;fg=000000' class='latex' />:</p>
<p><ul>
<li> <b>0-Homogeneous:</b> <img src='http://s.wordpress.com/latex.php?latex=%7Bz%28%5Calpha%20p%29%20%3D%20z%28p%29%2C%20%5Cforall%20%5Calpha%20%3E%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z(\alpha p) = z(p), \forall \alpha &gt; 0}&amp;fg=000000' title='{z(\alpha p) = z(p), \forall \alpha &gt; 0}&amp;fg=000000' class='latex' />
<li> <b>Walras&#8217; Law:</b> <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Ccdot%20z%28p%29%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \cdot z(p) = 0}&amp;fg=000000' title='{p \cdot z(p) = 0}&amp;fg=000000' class='latex' />. For any <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_i%20%28x_i%20-%20%5Comega_i%29%20%5Cin%20z%28p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_i (x_i - \omega_i) \in z(p)}&amp;fg=000000' title='{\sum_i (x_i - \omega_i) \in z(p)}&amp;fg=000000' class='latex' /> we know <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_i%20%28p%20%5Ccdot%20x_i%20-%20p%20%5Ccdot%20%5Comega_i%29%20%5Cleq%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_i (p \cdot x_i - p \cdot \omega_i) \leq 0}&amp;fg=000000' title='{\sum_i (p \cdot x_i - p \cdot \omega_i) \leq 0}&amp;fg=000000' class='latex' /> by the definition of <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i}&amp;fg=000000' title='{x_i}&amp;fg=000000' class='latex' />. So, if it not zero, some <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> has money surplus what is absurd given that preferences are strongly monotone.
<li> <b>Bounded:</b> <img src='http://s.wordpress.com/latex.php?latex=%7Bz%28p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z(p)}&amp;fg=000000' title='{z(p)}&amp;fg=000000' class='latex' /> is bounded from below, i.e., <img src='http://s.wordpress.com/latex.php?latex=%7Bz_%5Cell%28p%29%20%5Cgeq%20-s%2C%20%5Cforall%20p%2C%20%5Cell%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z_\ell(p) \geq -s, \forall p, \ell}&amp;fg=000000' title='{z_\ell(p) \geq -s, \forall p, \ell}&amp;fg=000000' class='latex' /> for some <img src='http://s.wordpress.com/latex.php?latex=%7Bs%20%3E%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{s &gt; 0}&amp;fg=000000' title='{s &gt; 0}&amp;fg=000000' class='latex' />. Simply take <img src='http://s.wordpress.com/latex.php?latex=%7Bs%20%3D%20%5Cmax%20%5Comega_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{s = \max \omega_i}&amp;fg=000000' title='{s = \max \omega_i}&amp;fg=000000' class='latex' />
<li> <b>Boundary behavior:</b> if <img src='http://s.wordpress.com/latex.php?latex=%7Bp%5Ek%20%5Crightarrow%20p%20%5Cneq%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p^k \rightarrow p \neq 0}&amp;fg=000000' title='{p^k \rightarrow p \neq 0}&amp;fg=000000' class='latex' /> with <img src='http://s.wordpress.com/latex.php?latex=%7Bp_%5Cell%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_\ell = 0}&amp;fg=000000' title='{p_\ell = 0}&amp;fg=000000' class='latex' />, then <img src='http://s.wordpress.com/latex.php?latex=%7Bz_%5Cell%28p%5Ek%29%20%5Crightarrow%20%5Cinfty%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z_\ell(p^k) \rightarrow \infty}&amp;fg=000000' title='{z_\ell(p^k) \rightarrow \infty}&amp;fg=000000' class='latex' />. That is clear from the fractional knapsack algorithm when one desirable item gets price zero.
</ul>
<p>
Now, we are in shape for applying Kakutani&#8217;s Fixed Point Theorem:</p>
<blockquote><p><b>Theorem 6 (Kakutani, 1941)</b> <em> If <img src='http://s.wordpress.com/latex.php?latex=%7Bf%3AA%20%5Crightarrow%20%5Cmathcal%7BP%7D%28A%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f:A \rightarrow \mathcal{P}(A)}&amp;fg=000000' title='{f:A \rightarrow \mathcal{P}(A)}&amp;fg=000000' class='latex' /> is an upper hemicontinuous correspondence such that <img src='http://s.wordpress.com/latex.php?latex=%7Bf%28a%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f(a)}&amp;fg=000000' title='{f(a)}&amp;fg=000000' class='latex' /> is a convex non-empty set for all <img src='http://s.wordpress.com/latex.php?latex=%7Ba%20%5Cin%20A%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{a \in A}&amp;fg=000000' title='{a \in A}&amp;fg=000000' class='latex' /> then <img src='http://s.wordpress.com/latex.php?latex=%7Bf%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f}&amp;fg=000000' title='{f}&amp;fg=000000' class='latex' /> has a fixed point, i.e., <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cexists%20x%20%5Cin%20A%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\exists x \in A}&amp;fg=000000' title='{\exists x \in A}&amp;fg=000000' class='latex' /> s.t. <img src='http://s.wordpress.com/latex.php?latex=%7Bx%20%5Cin%20f%28x%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x \in f(x)}&amp;fg=000000' title='{x \in f(x)}&amp;fg=000000' class='latex' />. </em></p></blockquote>
<p><p>
Since prices are <img src='http://s.wordpress.com/latex.php?latex=%7B0%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{0}&amp;fg=000000' title='{0}&amp;fg=000000' class='latex' />-homogeneous, consider the simplex <img src='http://s.wordpress.com/latex.php?latex=%7B%5CDelta%20%3D%20%5C%7Bp%20%5Cgeq%200%3B%20%5Csum_%5Cell%20p_%5Cell%20%3D%201%5C%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Delta = \{p \geq 0; \sum_\ell p_\ell = 1\}}&amp;fg=000000' title='{\Delta = \{p \geq 0; \sum_\ell p_\ell = 1\}}&amp;fg=000000' class='latex' />, its relative interior <img src='http://s.wordpress.com/latex.php?latex=%7B%5CDelta%5E0%20%3D%20%5C%7Bp%20%3E%200%3B%20%5Csum_%5Cell%20p_%5Cell%20%3D%201%5C%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Delta^0 = \{p &gt; 0; \sum_\ell p_\ell = 1\}}&amp;fg=000000' title='{\Delta^0 = \{p &gt; 0; \sum_\ell p_\ell = 1\}}&amp;fg=000000' class='latex' /> and the boundary <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cpartial%20%5CDelta%20%3D%20%5CDelta%20%5Csetminus%20%5CDelta%5E0%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\partial \Delta = \Delta \setminus \Delta^0}&amp;fg=000000' title='{\partial \Delta = \Delta \setminus \Delta^0}&amp;fg=000000' class='latex' />. Now we define the following price correcting correspondence <img src='http://s.wordpress.com/latex.php?latex=%7Bf%3A%5CDelta%20%5Crightarrow%20%5Cmathcal%7BP%7D%28%5CDelta%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f:\Delta \rightarrow \mathcal{P}(\Delta)}&amp;fg=000000' title='{f:\Delta \rightarrow \mathcal{P}(\Delta)}&amp;fg=000000' class='latex' />.</p>
<p>
If some price <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Cin%20%5CDelta%5E0%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \in \Delta^0}&amp;fg=000000' title='{p \in \Delta^0}&amp;fg=000000' class='latex' /> is set, it generates demand <img src='http://s.wordpress.com/latex.php?latex=%7Bd%20%5Cin%20z%28p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{d \in z(p)}&amp;fg=000000' title='{d \in z(p)}&amp;fg=000000' class='latex' />. For that demand, the price that would maximize profit would be <img src='http://s.wordpress.com/latex.php?latex=%7Bq%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{q}&amp;fg=000000' title='{q}&amp;fg=000000' class='latex' />, i.e. <img src='http://s.wordpress.com/latex.php?latex=%7Bq%5Ccdot%20d%20%5Cgeq%20q%27%20%5Ccdot%20d%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{q\cdot d \geq q&#039; \cdot d}&amp;fg=000000' title='{q\cdot d \geq q&#039; \cdot d}&amp;fg=000000' class='latex' /> for all <img src='http://s.wordpress.com/latex.php?latex=%7Bq%27%20%5Cin%20%5CDelta%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{q&#039; \in \Delta}&amp;fg=000000' title='{q&#039; \in \Delta}&amp;fg=000000' class='latex' />. It is natural to re-adjust the prices to <img src='http://s.wordpress.com/latex.php?latex=%7Bq%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{q}&amp;fg=000000' title='{q}&amp;fg=000000' class='latex' />. So we define for <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Cin%20%5CDelta%5E0%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \in \Delta^0}&amp;fg=000000' title='{p \in \Delta^0}&amp;fg=000000' class='latex' />:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20f%28p%29%20%3D%20%5C%7Bq%20%5Cin%20%5CDelta%3B%20q%20%5Ctext%7B%20is%20a%20best%20response%20price%20to%20some%20%7D%20d%20%5Cin%20z%28p%29%5C%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle f(p) = \{q \in \Delta; q \text{ is a best response price to some } d \in z(p)\}&amp;fg=000000' title='\displaystyle f(p) = \{q \in \Delta; q \text{ is a best response price to some } d \in z(p)\}&amp;fg=000000' class='latex' /></p>
<p> and for <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Cin%20%5Cpartial%20%5CDelta%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \in \partial \Delta}&amp;fg=000000' title='{p \in \partial \Delta}&amp;fg=000000' class='latex' />:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20f%28p%29%20%3D%20%5C%7Bq%20%5Cin%20%5CDelta%3B%20q%20%5Ccdot%20p%20%3D%200%5C%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle f(p) = \{q \in \Delta; q \cdot p = 0\}&amp;fg=000000' title='\displaystyle f(p) = \{q \in \Delta; q \cdot p = 0\}&amp;fg=000000' class='latex' /></p>
<p> Now, I claim that this correspondence satisfies the conditions in Kakutani&#8217;s Theorem. We skip a formal proof of this fact, but this is intuitive for the interior <img src='http://s.wordpress.com/latex.php?latex=%7B%5CDelta%5E0%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Delta^0}&amp;fg=000000' title='{\Delta^0}&amp;fg=000000' class='latex' /> &#8211; let&#8217;s give the intuition why this is true as we approach the boundary: if <img src='http://s.wordpress.com/latex.php?latex=%7B%5CDelta%5E0%20%5Cni%20p%5Ek%20%5Crightarrow%20p%20%5Cin%20%5Cpartial%20%5CDelta%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Delta^0 \ni p^k \rightarrow p \in \partial \Delta}&amp;fg=000000' title='{\Delta^0 \ni p^k \rightarrow p \in \partial \Delta}&amp;fg=000000' class='latex' />, then <img src='http://s.wordpress.com/latex.php?latex=%7Bp%5Ek_%5Cell%20%5Crightarrow%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p^k_\ell \rightarrow 0}&amp;fg=000000' title='{p^k_\ell \rightarrow 0}&amp;fg=000000' class='latex' />, therefore the demans explodes: <img src='http://s.wordpress.com/latex.php?latex=%7Bz_%5Cell%28p%5Ek%29%20%5Crightarrow%20%5Cinfty%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z_\ell(p^k) \rightarrow \infty}&amp;fg=000000' title='{z_\ell(p^k) \rightarrow \infty}&amp;fg=000000' class='latex' /> and as a result the best thing to do is to set the prices of those commodities much higher than the rest. Therefore, the price of the commodities whose demand explode are positive while the prices of the commodities where the price doesn&#8217;t get value zero.</p>
<p>
Now, after waiving our hands about the upper continuity of <img src='http://s.wordpress.com/latex.php?latex=%7Bf%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f}&amp;fg=000000' title='{f}&amp;fg=000000' class='latex' />, we have by Kakutani&#8217;s Theorem a point <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Cin%20%5CDelta%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \in \Delta}&amp;fg=000000' title='{p \in \Delta}&amp;fg=000000' class='latex' /> such that <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Cin%20f%28p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \in f(p)}&amp;fg=000000' title='{p \in f(p)}&amp;fg=000000' class='latex' />. By the definition of <img src='http://s.wordpress.com/latex.php?latex=%7Bf%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f}&amp;fg=000000' title='{f}&amp;fg=000000' class='latex' /> we must have <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Cin%20%5CDelta%5E0%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \in \Delta^0}&amp;fg=000000' title='{p \in \Delta^0}&amp;fg=000000' class='latex' /> (because for <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Cin%20%5Cpartial%20%5CDelta%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \in \partial \Delta}&amp;fg=000000' title='{p \in \partial \Delta}&amp;fg=000000' class='latex' />, <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20%5Cnotin%20f%28p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p \notin f(p)}&amp;fg=000000' title='{p \notin f(p)}&amp;fg=000000' class='latex' />. Now, I claim <img src='http://s.wordpress.com/latex.php?latex=%7Bz%28p%29%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z(p) = 0}&amp;fg=000000' title='{z(p) = 0}&amp;fg=000000' class='latex' />. In fact if <img src='http://s.wordpress.com/latex.php?latex=%7Bz%28p%29%20%5Cneq%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z(p) \neq 0}&amp;fg=000000' title='{z(p) \neq 0}&amp;fg=000000' class='latex' />, still <img src='http://s.wordpress.com/latex.php?latex=%7Bp%20z%28p%29%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p z(p) = 0}&amp;fg=000000' title='{p z(p) = 0}&amp;fg=000000' class='latex' /> by Walras&#8217; Law. So, if <img src='http://s.wordpress.com/latex.php?latex=%7Bz%28p%29%20%5Cneq%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z(p) \neq 0}&amp;fg=000000' title='{z(p) \neq 0}&amp;fg=000000' class='latex' /> then there is <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cell%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\ell}&amp;fg=000000' title='{\ell}&amp;fg=000000' class='latex' /> with <img src='http://s.wordpress.com/latex.php?latex=%7Bz_%5Cell%20%28p%29%20%3C%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z_\ell (p) &lt; 0}&amp;fg=000000' title='{z_\ell (p) &lt; 0}&amp;fg=000000' class='latex' /> and therefore <img src='http://s.wordpress.com/latex.php?latex=%7Bq_%5Cell%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{q_\ell = 0}&amp;fg=000000' title='{q_\ell = 0}&amp;fg=000000' class='latex' /> for all <img src='http://s.wordpress.com/latex.php?latex=%7Bq%20%5Cin%20f%28p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{q \in f(p)}&amp;fg=000000' title='{q \in f(p)}&amp;fg=000000' class='latex' />, and <img src='http://s.wordpress.com/latex.php?latex=%7Bf%28p%29%20%5Csubseteq%20%5Cpartial%20%5CDelta%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f(p) \subseteq \partial \Delta}&amp;fg=000000' title='{f(p) \subseteq \partial \Delta}&amp;fg=000000' class='latex' />. For this reason <img src='http://s.wordpress.com/latex.php?latex=%7Bz%28p%29%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{z(p) = 0}&amp;fg=000000' title='{z(p) = 0}&amp;fg=000000' class='latex' />.</p>
<p>
In the next blog post (or serie of blog posts, let&#8217;s see) we discuss issues related to the other questions: uniqueness, dynamics, game-theoretical considerations, &#8230;</p>
<p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/274/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy Perihelion</title>
		<link>http://www.bigredbits.com/archives/267</link>
		<comments>http://www.bigredbits.com/archives/267#comments</comments>
		<pubDate>Sun, 03 Jan 2010 04:43:46 +0000</pubDate>
		<dc:creator>hussam</dc:creator>
				<category><![CDATA[Comics]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=267</guid>
		<description><![CDATA[Happy Perihelion from the Big Red Bits team.]]></description>
			<content:encoded><![CDATA[<p>Happy <a href="http://en.wikipedia.org/wiki/Perihelion">Perihelion</a> from the Big Red Bits team.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-271" title="Happy Perihelion" src="http://www.bigredbits.com/wp-content/uploads/2010/01/perihelion_comic1.png" alt="Happy Perihelion" width="597" height="1233" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/267/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>On Peer Review Blindness</title>
		<link>http://www.bigredbits.com/archives/260</link>
		<comments>http://www.bigredbits.com/archives/260#comments</comments>
		<pubDate>Sun, 22 Nov 2009 19:33:24 +0000</pubDate>
		<dc:creator>hussam</dc:creator>
				<category><![CDATA[Comics]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=260</guid>
		<description><![CDATA[This started as a joke over dinner with some friends (click on the picture for more legible fonts) Coming to think about it &#8230; why stop at quintuple blindness? how about automated reviewers or mixing reviewers from different eras? Ok, I&#8217;ll stop here]]></description>
			<content:encoded><![CDATA[<p>This started as a joke over dinner with some friends</p>
<p style="text-align: center;"><a href="http://www.bigredbits.com/wp-content/uploads/2009/11/peer_review_overload.jpg"><img class="size-full wp-image-261 aligncenter" title="Peer Review Overload" src="http://www.bigredbits.com/wp-content/uploads/2009/11/peer_review_overload_small.jpg" alt="Peer Review Overload" width="600" height="469" /></a><em>(click on the picture for more legible fonts)</em></p>
<p style="text-align: left;">Coming to think about it &#8230; why stop at quintuple blindness? how about automated reviewers or mixing reviewers from different eras? Ok, I&#8217;ll stop here <img src='http://www.bigredbits.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/260/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bounded Degree Spanning Tree and an Uncrossing Lemma</title>
		<link>http://www.bigredbits.com/archives/249</link>
		<comments>http://www.bigredbits.com/archives/249#comments</comments>
		<pubDate>Wed, 18 Nov 2009 04:07:18 +0000</pubDate>
		<dc:creator>renatoppl</dc:creator>
				<category><![CDATA[theory]]></category>
		<category><![CDATA[approximation algorithms]]></category>
		<category><![CDATA[combinatorics]]></category>
		<category><![CDATA[iterated rounding]]></category>
		<category><![CDATA[linear algebra]]></category>
		<category><![CDATA[linear programming]]></category>
		<category><![CDATA[uncrossing]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=249</guid>
		<description><![CDATA[I&#8217;ve been reading about the Bounded Degree Spanning Tree problem and I thought of writing some of what I am learning here. It illustrates a beautiful techique called Iterated Rounding and uses the combinatorial idea of uncrossing. I&#8217;ll try to give a high-level idea of the argument and give references on the details. The first [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been reading about the Bounded Degree Spanning Tree problem and I thought of writing some of what I am learning here. It illustrates a beautiful techique called Iterated Rounding and uses the combinatorial idea of uncrossing. I&#8217;ll try to give a high-level idea of the argument and give references on the details. The first result of this kind was given by Goemans (although there were previous results with weaker guarantees) by Goemans in <a class="snap_noshots" href="http://math.mit.edu/~goemans/PAPERS/bmst-focs06.pdf">Minimum Bounded Degree Spanning Trees</a>, but the result based on iterated rounding and a subsequent improvement are due to Singh and Lau in a serie of papers. A main reference is <a class="snap_noshots" href="http://portal.acm.org/citation.cfm?id=1250887">Approximating minimum bounded degree spanning trees to within one of optimal</a>.</p>
<p>The problem of bounded degree spanning tree is as follows: consider a graph <img src='http://s.wordpress.com/latex.php?latex=%7BG%20%3D%20%28V%2CE%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G = (V,E)}' title='{G = (V,E)}' class='latex' /> with edge weights and we for some nodes <img src='http://s.wordpress.com/latex.php?latex=%7BW%20%5Csubseteq%20V%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{W \subseteq V}' title='{W \subseteq V}' class='latex' /> a degree bound <img src='http://s.wordpress.com/latex.php?latex=%7Bb_v%2C%20v%20%5Cin%20W%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_v, v \in W}' title='{b_v, v \in W}' class='latex' />. We want to find, among the spanning trees for which the degree of <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> is <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleq%20b_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\leq b_v}' title='{\leq b_v}' class='latex' /> the one with minimum cost. It is clearly a hard problem, since taking all weights equal to <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}' title='{1}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Bb_v%20%3D%202%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_v = 2}' title='{b_v = 2}' class='latex' /> for all nodes is the <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Hamiltonian_path">Hamiltonian Path problem</a>, which is NP-complete. We will get a different kind of approximation. Let OPT be the optimal solution: we will show an algorithm that gives a spanning tree of cost <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleq%20OPT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\leq OPT}' title='{\leq OPT}' class='latex' /> such that each node <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> has degree <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleq%20b_v%20%2B%202%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\leq b_v + 2}' title='{\leq b_v + 2}' class='latex' /> (this can be improved to <img src='http://s.wordpress.com/latex.php?latex=%7Bb_v%20%2B%201%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_v + 1}' title='{b_v + 1}' class='latex' /> with a more sofisticated algorithm, also based on Iterated Rounding).</p>
<p>As always, the first step to design an approximation algorithm is to relax it to an LP. We consider the following LP:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cleft.%20%5Cbegin%7Baligned%7D%20%26%20%5Cmin%20%5Csum_%7Be%5Cin%20E%7D%20c_e%20x_e%20%5Ctext%7B%20s.t.%20%7D%20%5C%5C%20%26%20%5Cqquad%20%5Cleft.%20%5Cbegin%7Baligned%7D%20%26%20%5Csum_%7Be%20%5Cin%20E%7D%20x_e%20%3D%20%5Cvert%20V%20%5Cvert%20-%201%20%5C%5C%20%26%20%5Csum_%7Be%20%5Cin%20E%28S%29%7D%20x_e%20%5Cleq%20%5Cvert%20S%20%5Cvert%20-%201%20%26%20%5Cforall%20S%20%5Csubseteq%20V%2C%20%5Cvert%20S%20%5Cvert%20%5Cgeq%202%20%5C%5C%20%26%20%5Csum_%7Be%20%5Cin%20%5Cdelta%28v%29%7D%20x_e%20%5Cleq%20b_v%20%26%20%5Cforall%20v%20%5Cin%20W%5C%5C%20%26%20x_e%20%5Cgeq%200%20%26%20%5Cforall%20e%20%5Cin%20E%20%5Cend%7Baligned%7D%20%5Cright.%20%5Cend%7Baligned%7D%20%5Cright.%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \left. \begin{aligned} &amp; \min \sum_{e\in E} c_e x_e \text{ s.t. } \\ &amp; \qquad \left. \begin{aligned} &amp; \sum_{e \in E} x_e = \vert V \vert - 1 \\ &amp; \sum_{e \in E(S)} x_e \leq \vert S \vert - 1 &amp; \forall S \subseteq V, \vert S \vert \geq 2 \\ &amp; \sum_{e \in \delta(v)} x_e \leq b_v &amp; \forall v \in W\\ &amp; x_e \geq 0 &amp; \forall e \in E \end{aligned} \right. \end{aligned} \right. ' title='\displaystyle \left. \begin{aligned} &amp; \min \sum_{e\in E} c_e x_e \text{ s.t. } \\ &amp; \qquad \left. \begin{aligned} &amp; \sum_{e \in E} x_e = \vert V \vert - 1 \\ &amp; \sum_{e \in E(S)} x_e \leq \vert S \vert - 1 &amp; \forall S \subseteq V, \vert S \vert \geq 2 \\ &amp; \sum_{e \in \delta(v)} x_e \leq b_v &amp; \forall v \in W\\ &amp; x_e \geq 0 &amp; \forall e \in E \end{aligned} \right. \end{aligned} \right. ' class='latex' /></p>
<p>The first constraint expresses that in a spanning tree, there are at most <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cvert%20V%20%5Cvert%20-%201%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\vert V \vert - 1}' title='{\vert V \vert - 1}' class='latex' /> edges, the second prevent the formation of cycles and the third guarantees the degree bounds. For <img src='http://s.wordpress.com/latex.php?latex=%7BW%20%3D%20%5Cemptyset%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{W = \emptyset}' title='{W = \emptyset}' class='latex' /> we have the standard Minimal Spanning Tree problem and for this problem the polytope is integral. With the degree bounds, we lose this nice property. We can solve this LP using the Ellipsoid Method. The separation oracle for the <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_%7Be%20%5Cin%20E%28S%29%7D%20x_e%20%5Cleq%20%5Cvert%20S%20%5Cvert%20-%201%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_{e \in E(S)} x_e \leq \vert S \vert - 1}' title='{\sum_{e \in E(S)} x_e \leq \vert S \vert - 1}' class='latex' /> is done by a flow computation.</p>
<p><strong> Iterated Rounding </strong></p>
<p>Now, let&#8217;s go ahead and solve the LP. It would be great if we had an integral solution: we would be done. It is unfortunately not the case, but we can still hope it is almost integral in some sense: for example, some edges are integral and we can take them to the final solution and recurse the algorithm on a smaller graph. This is not far from truth and that&#8217;s the main idea of the iterated rounding. We will show that the support of the optimal solution <img src='http://s.wordpress.com/latex.php?latex=%7BE%28x%29%20%3D%20%5C%7Be%20%5Cin%20E%3B%20x_e%20%3E%200%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E(x) = \{e \in E; x_e &gt; 0\}}' title='{E(x) = \{e \in E; x_e &gt; 0\}}' class='latex' /> has some nice structure. Consider the following lemma:</p>
<blockquote><p><strong>Lemma 1</strong> <em><a name="structure_lemma"></a> For any basic solution <img src='http://s.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> of the LP, either there is <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> with just one incident edge in the support <img src='http://s.wordpress.com/latex.php?latex=%7BE%28x%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E(x)}' title='{E(x)}' class='latex' /> or there is one <img src='http://s.wordpress.com/latex.php?latex=%7Bv%20%5Cin%20W%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v \in W}' title='{v \in W}' class='latex' /> such that that at most <img src='http://s.wordpress.com/latex.php?latex=%7B3%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{3}' title='{3}' class='latex' /> edges are incident to it. </em></p></blockquote>
<p>If we can prove this lemma, we can solve the problem in the following way: we begin with an empty tree: then we solve the LP and look at the support <img src='http://s.wordpress.com/latex.php?latex=%7BE%28x%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E(x)}' title='{E(x)}' class='latex' />. There are two possibilities according to the lemma:</p>
<ul>
<li> If there is one node <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> with just one edge <img src='http://s.wordpress.com/latex.php?latex=%7Be%20%3D%20%28u%2Cv%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{e = (u,v)}' title='{e = (u,v)}' class='latex' /> incident to it in the support, we add it to the tree, remove <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> from <img src='http://s.wordpress.com/latex.php?latex=%7BV%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{V}' title='{V}' class='latex' />, decrease <img src='http://s.wordpress.com/latex.php?latex=%7Bb_u%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_u}' title='{b_u}' class='latex' />, make <img src='http://s.wordpress.com/latex.php?latex=%7BE%20%3D%20E%28x%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E = E(x)}' title='{E = E(x)}' class='latex' /> (the trick is to remove in each iteration edges from <img src='http://s.wordpress.com/latex.php?latex=%7BE%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E}' title='{E}' class='latex' /> that are not in the support. Clearly, removing those edges doesn&#8217;t hurt the objective value) and run the algorithm again. Notice that the LP called in the recursion has value less or equal then the actual LP <img src='http://s.wordpress.com/latex.php?latex=%7B-%20c_e%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{- c_e}' title='{- c_e}' class='latex' />. So if by induction we get a spanning tree respecting the new degree bounds plus two and value less or equal than the new LP value, we can just add <img src='http://s.wordpress.com/latex.php?latex=%7Be%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{e}' title='{e}' class='latex' /> and we have a solution with value less or equal than the one of the original LP respecting the degree bounds plus two.</li>
<li> Otherwise, there is one node <img src='http://s.wordpress.com/latex.php?latex=%7Bv%20%5Cin%20W%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v \in W}' title='{v \in W}' class='latex' /> that has degree <img src='http://s.wordpress.com/latex.php?latex=%7B3%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{3}' title='{3}' class='latex' /> in the support. So, we just remove that degree bound on that vertex (i.e. remove <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> from <img src='http://s.wordpress.com/latex.php?latex=%7BW%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{W}' title='{W}' class='latex' />), make <img src='http://s.wordpress.com/latex.php?latex=%7BE%20%3D%20E%28x%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E = E(x)}' title='{E = E(x)}' class='latex' /> (again,eliminate the edges not in the support) and run the algorithm again. Clearly, if one node is still in <img src='http://s.wordpress.com/latex.php?latex=%7BW%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{W}' title='{W}' class='latex' />, it has <img src='http://s.wordpress.com/latex.php?latex=%7Bb_v%20%5Cgeq%201%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_v \geq 1}' title='{b_v \geq 1}' class='latex' />, since there are only three edges in the support, there will be for the rest of the computation, just three edges incident to it, so there will be at most three edges more incident to it. So it will exceed its original <img src='http://s.wordpress.com/latex.php?latex=%7Bb_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_v}' title='{b_v}' class='latex' /> by at most <img src='http://s.wordpress.com/latex.php?latex=%7B2%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{2}' title='{2}' class='latex' />.</li>
</ul>
<p>The algorithm eventually stops, since in each iteration we have less edges or less nodes in <img src='http://s.wordpress.com/latex.php?latex=%7BW%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{W}' title='{W}' class='latex' /> and the solution is as desired. The main effort is therefore to prove the lemma. But before, let&#8217;s look at the lemma: it is of the following kind: &#8220;any basic solution of the LP has some nice properties, which envolve having a not too big (at least in some point) support&#8221;. So, it involves proving that the support is not too large. That is our next task as we are trying to prove the lemma. And we will be done with:</p>
<blockquote><p><strong>Theorem 2</strong> <em> The algorithm described above produces a spanning tree of cost </em><em><img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleq%20Z%5E%2A%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\leq Z^*}' title='{\leq Z^*}' class='latex' /></em><em> (the LP values and therefore </em><em><img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleq%20OPT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\leq OPT}' title='{\leq OPT}' class='latex' />)</em><em>in which each node <img src='http://s.wordpress.com/latex.php?latex=%7Bv%20%5Cin%20W%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v \in W}' title='{v \in W}' class='latex' /> has degree <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleq%20b_v%20%2B%202%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\leq b_v + 2}' title='{\leq b_v + 2}' class='latex' />. </em></p></blockquote>
<p><strong> Bounding the size of the support </strong></p>
<p>We would like now to prove some result like the Lemma above: that in the solution of the LP we have either one <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> with degree <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}' title='{1}' class='latex' /> in <img src='http://s.wordpress.com/latex.php?latex=%7BE%28x%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E(x)}' title='{E(x)}' class='latex' /> or we have a node in <img src='http://s.wordpress.com/latex.php?latex=%7BW%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{W}' title='{W}' class='latex' /> with degree <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleq%203%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\leq 3}' title='{\leq 3}' class='latex' />. First, we suppose the opposite, that <img src='http://s.wordpress.com/latex.php?latex=%7B%28V%2CE%28x%29%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(V,E(x))}' title='{(V,E(x))}' class='latex' /> has all the nodes with degree <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cgeq%202%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\geq 2}' title='{\geq 2}' class='latex' /> and all the nodes in <img src='http://s.wordpress.com/latex.php?latex=%7BW%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{W}' title='{W}' class='latex' /> have degree <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cgeq%204%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\geq 4}' title='{\geq 4}' class='latex' />. This implies that we have a large number of edges in the support. From the degrees, we know that:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cvert%20E%28x%29%20%5Cvert%20%5Cgeq%20%5Cfrac%7B1%7D%7B2%7D%20%5Cleft%28%202%28%20%5Cvert%20V%20%5Cvert%20-%20%5Cvert%20W%20%5Cvert%20%29%20%2B%204%20%5Cvert%20W%20%5Cvert%20%5Cright%29%20%3D%20%5Cvert%20V%20%5Cvert%20%2B%20%5Cvert%20W%20%5Cvert&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \vert E(x) \vert \geq \frac{1}{2} \left( 2( \vert V \vert - \vert W \vert ) + 4 \vert W \vert \right) = \vert V \vert + \vert W \vert' title='\displaystyle \vert E(x) \vert \geq \frac{1}{2} \left( 2( \vert V \vert - \vert W \vert ) + 4 \vert W \vert \right) = \vert V \vert + \vert W \vert' class='latex' /></p>
<p>We want to prove that the support <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cvert%20E%28x%29%20%5Cvert%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\vert E(x) \vert}' title='{\vert E(x) \vert}' class='latex' /> of the LP can&#8217;t be too large. The first question is: how to estimate the size of the support of a basic solution. The constraints look like that:</p>
<p><img class="aligncenter size-full wp-image-251" title="bst_fig1" src="http://www.bigredbits.com/wp-content/uploads/2009/11/bst_fig1.png" alt="bst_fig1" width="506" height="248" /></p>
<p>A basic solution can be represented by picking <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cvert%20E%20%5Cvert%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\vert E \vert}' title='{\vert E \vert}' class='latex' /> rows of the matrix and making them tight. So, if we have a general <img src='http://s.wordpress.com/latex.php?latex=%7BAx%20%5Cleq%20b%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Ax \leq b}' title='{Ax \leq b}' class='latex' /> LP, we pick some submatrix <img src='http://s.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> of <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> which is <img src='http://s.wordpress.com/latex.php?latex=%7Bn%20%5Ctimes%20n%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{n \times n}' title='{n \times n}' class='latex' /> and the basic solution is just <img src='http://s.wordpress.com/latex.php?latex=%7Bx%20%3D%20A%27%5E%7B-1%7D%20b%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x = A&#039;^{-1} b&#039;}' title='{x = A&#039;^{-1} b&#039;}' class='latex' />. The lines of matrix <img src='http://s.wordpress.com/latex.php?latex=%7BA%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A&#039;}' title='{A&#039;}' class='latex' /> can be of three types: they can be <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cchi_S%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\chi_S}' title='{\chi_S}' class='latex' />, which are corresponding to <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_%7Be%20%5Cin%20E%28S%29%7D%20x_e%20%5Cleq%20%5Cvert%20S%20%5Cvert%20-%201%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_{e \in E(S)} x_e \leq \vert S \vert - 1}' title='{\sum_{e \in E(S)} x_e \leq \vert S \vert - 1}' class='latex' />, <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cchi_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\chi_v}' title='{\chi_v}' class='latex' /> that correspond to <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_%7Be%20%5Cin%20%5Cdelta%28v%29%7D%20x_e%20%5Cleq%20b_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_{e \in \delta(v)} x_e \leq b_v}' title='{\sum_{e \in \delta(v)} x_e \leq b_v}' class='latex' /> or <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cdelta_e%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\delta_e}' title='{\delta_e}' class='latex' /> corresponding to <img src='http://s.wordpress.com/latex.php?latex=%7Bx_e%20%5Cgeq%200%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_e \geq 0}' title='{x_e \geq 0}' class='latex' />. There are <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cvert%20E%20%5Cvert%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\vert E \vert}' title='{\vert E \vert}' class='latex' /> vectors in total. The size of the support <img src='http://s.wordpress.com/latex.php?latex=%7BE%28x%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E(x)}' title='{E(x)}' class='latex' /> is smaller or equal the number of rows of the form <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cchi_S%2C%20%5Cchi_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\chi_S, \chi_v}' title='{\chi_S, \chi_v}' class='latex' /> in the basic solution. Therefore the idea to bound the size of the support is to prove that &#8220;all basic solutions can be represented by a small number of rows in the form <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cchi_S%2C%20%5Cchi_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\chi_S, \chi_v}' title='{\chi_S, \chi_v}' class='latex' />. And this is done using the following:</p>
<blockquote><p><strong>Lemma 3</strong> <em><a name="basic_sol"></a> Assuming <img src='http://s.wordpress.com/latex.php?latex=%7BE%20%3D%20E%28x%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E = E(x)}' title='{E = E(x)}' class='latex' />, for any basic solution <img src='http://s.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' />, there is <img src='http://s.wordpress.com/latex.php?latex=%7BZ%20%5Csubseteq%20W%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Z \subseteq W}' title='{Z \subseteq W}' class='latex' /> and a family <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BS%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{S}}' title='{\mathcal{S}}' class='latex' /> of sets such that: </em></p>
<ol>
<li><em> The restrictions correspondent to <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Cin%20%5Cmathcal%7BS%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \in \mathcal{S}}' title='{S \in \mathcal{S}}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Bv%20%5Cin%20Z%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v \in Z}' title='{v \in Z}' class='latex' /> are tight for <img src='http://s.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> </em></li>
<li><em> <img src='http://s.wordpress.com/latex.php?latex=%7B%5C%7B%20%5Cchi_S%3B%20S%20%5Cin%20%5Cmathcal%7BS%7D%20%5C%7D%20%5Ccup%20%5C%7B%20%5Cchi_v%3B%20v%20%5Cin%20Z%20%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\{ \chi_S; S \in \mathcal{S} \} \cup \{ \chi_v; v \in Z \}}' title='{\{ \chi_S; S \in \mathcal{S} \} \cup \{ \chi_v; v \in Z \}}' class='latex' /> is an independent set </em></li>
<li><em> <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cvert%20%5Cmathcal%7BS%7D%20%5Cvert%20%2B%20%5Cvert%20Z%20%5Cvert%20%3D%20%5Cvert%20E%28x%29%20%5Cvert%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\vert \mathcal{S} \vert + \vert Z \vert = \vert E(x) \vert}' title='{\vert \mathcal{S} \vert + \vert Z \vert = \vert E(x) \vert}' class='latex' /> </em></li>
<li><em> <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BS%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{S}}' title='{\mathcal{S}}' class='latex' /> is a laminar family </em></li>
</ol>
<p><em> </em></p></blockquote>
<p>The first 3 items are straightfoward properties of basic solutions. The fourth one, means that for two sets <img src='http://s.wordpress.com/latex.php?latex=%7BS_1%2C%20S_2%20%5Cin%20%5Cmathcal%7BS%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S_1, S_2 \in \mathcal{S}}' title='{S_1, S_2 \in \mathcal{S}}' class='latex' />, one of three things happen: <img src='http://s.wordpress.com/latex.php?latex=%7BS_1%20%5Csubseteq%20S_2%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S_1 \subseteq S_2}' title='{S_1 \subseteq S_2}' class='latex' />, <img src='http://s.wordpress.com/latex.php?latex=%7BS_2%20%5Csubseteq%20S_1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S_2 \subseteq S_1}' title='{S_2 \subseteq S_1}' class='latex' /> or <img src='http://s.wordpress.com/latex.php?latex=%7BS_1%20%5Ccap%20S_2%20%3D%20%5Cemptyset%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S_1 \cap S_2 = \emptyset}' title='{S_1 \cap S_2 = \emptyset}' class='latex' />. Now, we based on the previous lemma and in the following result that can be easily proved by induction, we will prove Lemma <a href="#structure_lemma">1</a>.</p>
<blockquote><p><strong>Lemma 4</strong> <em> If <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BS%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{S}}' title='{\mathcal{S}}' class='latex' /> is a laminar family over the set <img src='http://s.wordpress.com/latex.php?latex=%7BV%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{V}' title='{V}' class='latex' /> where each set <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Cin%20%5Cmathcal%7BS%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \in \mathcal{S}}' title='{S \in \mathcal{S}}' class='latex' /> contains at least <img src='http://s.wordpress.com/latex.php?latex=%7B2%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{2}' title='{2}' class='latex' /> elements, then <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cvert%20%5Cmathcal%7BS%7D%20%5Cvert%20%5Cleq%20%5Cvert%20V%20%5Cvert%20-%201%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\vert \mathcal{S} \vert \leq \vert V \vert - 1}' title='{\vert \mathcal{S} \vert \leq \vert V \vert - 1}' class='latex' />. </em></p></blockquote>
<p>Now, the proof of Lemma <a href="#structure_lemma">1</a> is easy. Let&#8217;s do it and then we come back to prove Lemma <a href="#basic_sol">3</a>. Simply see that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cvert%20E%28x%29%20%5Cvert%20%3D%20%5Cvert%20%5Cmathcal%7BS%7D%20%5Cvert%20%2B%20%5Cvert%20Z%20%5Cvert%20%5Cleq%20%5Cvert%20V%20%5Cvert%20-%201%20%2B%20%5Cvert%20W%20%5Cvert%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\vert E(x) \vert = \vert \mathcal{S} \vert + \vert Z \vert \leq \vert V \vert - 1 + \vert W \vert}' title='{\vert E(x) \vert = \vert \mathcal{S} \vert + \vert Z \vert \leq \vert V \vert - 1 + \vert W \vert}' class='latex' /> what contradicts <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cvert%20E%28x%29%20%5Cvert%20%5Cgeq%20%5Cvert%20V%20%5Cvert%20%2B%20%5Cvert%20W%20%5Cvert%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\vert E(x) \vert \geq \vert V \vert + \vert W \vert}' title='{\vert E(x) \vert \geq \vert V \vert + \vert W \vert}' class='latex' />.</p>
<p><strong> Uncrossing argument </strong></p>
<p>And now we arrive in the technical heart of the proof, which is proving Lemma <a href="#basic_sol">3</a>. This says that given any basic solution, given any feasible solution, we can write it as a &#8220;structured&#8221; basic solution. We start with any basic feasible solution. This already satifies (1)-(3), then we need to change that solution to satisfy condition (4) as well. We need to get rid crossing elements, i.e., <img src='http://s.wordpress.com/latex.php?latex=%7BS%2CT%20%5Cin%20%5Cmathcal%7BS%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S,T \in \mathcal{S}}' title='{S,T \in \mathcal{S}}' class='latex' /> in the form:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-252" title="bst_fig2" src="http://www.bigredbits.com/wp-content/uploads/2009/11/bst_fig2.png" alt="bst_fig2" width="246" height="80" /></p>
<p>We do that by the means of the:</p>
<blockquote><p><strong>Lemma 5 (Uncrossing Lemma)</strong> <em> If <img src='http://s.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' /> are intersecting and tight (tight in the sense that their respective constraint is tight), then <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Ccup%20T%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \cup T}' title='{S \cup T}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Ccap%20T%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \cap T}' title='{S \cap T}' class='latex' /> are also tight and:<br />
</em></p>
<p align="center"><em><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cchi_%7BS%20%5Ccap%20T%7D%20%2B%20%5Cchi_%7BS%20%5Ccup%20T%7D%20%3D%20%5Cchi_S%20%2B%20%5Cchi_T&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \chi_{S \cap T} + \chi_{S \cup T} = \chi_S + \chi_T' title='\displaystyle \chi_{S \cap T} + \chi_{S \cup T} = \chi_S + \chi_T' class='latex' /></em></p>
<p><em> </em></p></blockquote>
<p>Which corresponds to that picture:</p>
<p><img class="aligncenter size-full wp-image-253" title="bst_fig3" src="http://www.bigredbits.com/wp-content/uploads/2009/11/bst_fig3.png" alt="bst_fig3" width="493" height="135" /></p>
<p><em>Proof:</em> First, we note that <img src='http://s.wordpress.com/latex.php?latex=%7Bx%28E%28S%29%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x(E(S))}' title='{x(E(S))}' class='latex' /> is a supermodular function, i.e.:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20x%28E%28S%29%29%20%2B%20x%28E%28T%29%29%20%5Cleq%20x%28E%28S%20%5Ccap%20T%29%29%20%2B%20x%28E%28S%20%5Ccup%20T%29%29&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle x(E(S)) + x(E(T)) \leq x(E(S \cap T)) + x(E(S \cup T))' title='\displaystyle x(E(S)) + x(E(T)) \leq x(E(S \cap T)) + x(E(S \cup T))' class='latex' /></p>
<p>We can see that by case analysis. Every edge appearing in the left side appears in the right side with at least the same multiplicity. Notice also that it holds with strict inequality iff there are edges from <img src='http://s.wordpress.com/latex.php?latex=%7BS%5Csetminus%20T%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S\setminus T}' title='{S\setminus T}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7BT%20%5Csetminus%20S%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T \setminus S}' title='{T \setminus S}' class='latex' />. Now, we have:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cbegin%7Baligned%7D%20%28%5Cvert%20S%20%5Cvert%20-%201%29%20%2B%20%28%5Cvert%20T%20%5Cvert%20-%201%29%20%26%20%3D%20%28%5Cvert%20S%20%5Ccap%20T%20%5Cvert%20-%201%29%20%2B%20%28%5Cvert%20S%20%5Ccup%20T%20%5Cvert%20-%201%29%20%5Cgeq%20%5C%5C%20%26%20%5Cgeq%20x%28E%28S%20%5Ccap%20T%29%29%20%2B%20x%28E%28S%20%5Ccup%20T%29%29%20%5Cgeq%20%5C%5C%20%26%20%5Cgeq%20x%28E%28S%29%29%20%2B%20x%28E%28T%29%29%20%3D%20%28%5Cvert%20S%20%5Cvert%20-%201%29%20%2B%20%28%5Cvert%20T%20%5Cvert%20-%201%29%20%5Cend%7Baligned%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \begin{aligned} (\vert S \vert - 1) + (\vert T \vert - 1) &amp; = (\vert S \cap T \vert - 1) + (\vert S \cup T \vert - 1) \geq \\ &amp; \geq x(E(S \cap T)) + x(E(S \cup T)) \geq \\ &amp; \geq x(E(S)) + x(E(T)) = (\vert S \vert - 1) + (\vert T \vert - 1) \end{aligned}' title='\displaystyle \begin{aligned} (\vert S \vert - 1) + (\vert T \vert - 1) &amp; = (\vert S \cap T \vert - 1) + (\vert S \cup T \vert - 1) \geq \\ &amp; \geq x(E(S \cap T)) + x(E(S \cup T)) \geq \\ &amp; \geq x(E(S)) + x(E(T)) = (\vert S \vert - 1) + (\vert T \vert - 1) \end{aligned}' class='latex' /></p>
<p>where the first relation is trivial, the second is by feasibility, the third is by supermodularity and the lastone is by tightness. So, all hold with equality and therefore <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Ccap%20T%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \cap T}' title='{S \cap T}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Ccup%20T%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \cup T}' title='{S \cup T}' class='latex' /> are tight. We also proved that:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20x%28E%28S%20%5Ccap%20T%29%29%20%2B%20x%28E%28S%20%5Ccup%20T%29%29%20%3D%20x%28E%28S%29%29%20%2B%20x%28E%28T%29%29&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle x(E(S \cap T)) + x(E(S \cup T)) = x(E(S)) + x(E(T))' title='\displaystyle x(E(S \cap T)) + x(E(S \cup T)) = x(E(S)) + x(E(T))' class='latex' /></p>
<p>so there can be no edge from <img src='http://s.wordpress.com/latex.php?latex=%7BS%5Csetminus%20T%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S\setminus T}' title='{S\setminus T}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7BT%20%5Csetminus%20S%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T \setminus S}' title='{T \setminus S}' class='latex' /> in <img src='http://s.wordpress.com/latex.php?latex=%7BE%28x%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E(x)}' title='{E(x)}' class='latex' /> and therefore, thinking just of edges in <img src='http://s.wordpress.com/latex.php?latex=%7BE%28x%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E(x)}' title='{E(x)}' class='latex' /> we have:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cchi_%7BS%20%5Ccap%20T%7D%20%2B%20%5Cchi_%7BS%20%5Ccup%20T%7D%20%3D%20%5Cchi_S%20%2B%20%5Cchi_T&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \chi_{S \cap T} + \chi_{S \cup T} = \chi_S + \chi_T' title='\displaystyle \chi_{S \cap T} + \chi_{S \cup T} = \chi_S + \chi_T' class='latex' /></p>
<img src='http://s.wordpress.com/latex.php?latex=%5CBox&#038;bg=T&#038;fg=000000&#038;s=0' alt='\Box' title='\Box' class='latex' />
<p><a class="snap_noshots" href="http://www.science.unitn.it/cirm/Goemans.pdf">Uncrossing arguments</a> are found everywhere in combinatorics. Now, we show how the Uncrossing Lemma can be used to prove Lemma <a href="#structure_lemma">1</a>:</p>
<p><em>Proof:</em> Let <img src='http://s.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> be any basic solution. It can be represented by a pair <img src='http://s.wordpress.com/latex.php?latex=%7B%28Y%2C%20%5Cmathcal%7BC%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(Y, \mathcal{C})}' title='{(Y, \mathcal{C})}' class='latex' /> where <img src='http://s.wordpress.com/latex.php?latex=%7BY%20%5Csubseteq%20W%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Y \subseteq W}' title='{Y \subseteq W}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BC%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{C}}' title='{\mathcal{C}}' class='latex' /> is a family of sets. We will show that the same basic solution can be represented by <img src='http://s.wordpress.com/latex.php?latex=%7B%28Y%2C%20%5Cmathcal%7BL%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(Y, \mathcal{L})}' title='{(Y, \mathcal{L})}' class='latex' /> where <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BL%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{L}}' title='{\mathcal{L}}' class='latex' /> is a laminar family and has the same size of <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BC%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{C}}' title='{\mathcal{C}}' class='latex' />.</p>
<p>Let <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BS%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{S}}' title='{\mathcal{S}}' class='latex' /> be all sets that are tight under <img src='http://s.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BL%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{L}}' title='{\mathcal{L}}' class='latex' /> a maximal laminar family of tights sets in <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BS%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{S}}' title='{\mathcal{S}}' class='latex' />, such that <img src='http://s.wordpress.com/latex.php?latex=%7B%5C%7B%5Cchi_S%3B%20S%20%5Cin%20%5Cmathcal%7BL%7D%20%5C%7D%20%5Ccup%20%5C%7B%5Cchi_v%3B%20v%20%5Cin%20Z%20%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\{\chi_S; S \in \mathcal{L} \} \cup \{\chi_v; v \in Z \}}' title='{\{\chi_S; S \in \mathcal{L} \} \cup \{\chi_v; v \in Z \}}' class='latex' /> are independent. I claim that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cvert%20%5Cmathcal%7BL%7D%20%5Cvert%20%3D%20dim%28span%28%5Cmathcal%7BS%7D%29%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\vert \mathcal{L} \vert = dim(span(\mathcal{S}))}' title='{\vert \mathcal{L} \vert = dim(span(\mathcal{S}))}' class='latex' />.</p>
<p>In fact, suppose <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cvert%20%5Cmathcal%7BL%7D%20%5Cvert%20%3C%20dim%28span%28%5Cmathcal%7BS%7D%29%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\vert \mathcal{L} \vert &lt; dim(span(\mathcal{S}))}' title='{\vert \mathcal{L} \vert &lt; dim(span(\mathcal{S}))}' class='latex' />, then there are sets of <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BS%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{S}}' title='{\mathcal{S}}' class='latex' /> we could add to <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BL%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{L}}' title='{\mathcal{L}}' class='latex' /> without violating independence &#8211; the problem is that those sets would cross some set. Pick such <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Cin%20%5Cmathcal%7BS%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \in \mathcal{S}}' title='{S \in \mathcal{S}}' class='latex' /> intersecting fewer possible sets in <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BL%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{L}}' title='{\mathcal{L}}' class='latex' />. The set <img src='http://s.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' /> intersects some <img src='http://s.wordpress.com/latex.php?latex=%7BT%20%5Cin%20%5Cmathcal%7BL%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T \in \mathcal{L}}' title='{T \in \mathcal{L}}' class='latex' />. Since both are tight we can use the Uncrossing Lemma and we get:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cchi_%7BS%20%5Ccap%20T%7D%20%2B%20%5Cchi_%7BS%20%5Ccup%20T%7D%20%3D%20%5Cchi_S%20%2B%20%5Cchi_T&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \chi_{S \cap T} + \chi_{S \cup T} = \chi_S + \chi_T' title='\displaystyle \chi_{S \cap T} + \chi_{S \cup T} = \chi_S + \chi_T' class='latex' /></p>
<p>since <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cchi_S%20%5Cnotin%20span%28%5Cmathcal%7BL%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\chi_S \notin span(\mathcal{L})}' title='{\chi_S \notin span(\mathcal{L})}' class='latex' />, we can&#8217;t have simultaneously <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cchi_%7BS%20%5Ccap%20T%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\chi_{S \cap T}}' title='{\chi_{S \cap T}}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cchi_%7BS%20%5Ccup%20T%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\chi_{S \cup T}}' title='{\chi_{S \cup T}}' class='latex' /> in <img src='http://s.wordpress.com/latex.php?latex=%7Bspan%28%5Cmathcal%7BL%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{span(\mathcal{L})}' title='{span(\mathcal{L})}' class='latex' />. Let&#8217;s consider two cases:</p>
<ol>
<li> <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cchi_%7BS%20%5Ccap%20T%7D%20%5Cnotin%20span%28%5Cmathcal%7BL%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\chi_{S \cap T} \notin span(\mathcal{L})}' title='{\chi_{S \cap T} \notin span(\mathcal{L})}' class='latex' />, then <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Ccap%20T%20%5Cin%20span%28%5Cmathcal%7BS%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \cap T \in span(\mathcal{S})}' title='{S \cap T \in span(\mathcal{S})}' class='latex' /> is in <img src='http://s.wordpress.com/latex.php?latex=%7Bspan%28%5Cmathcal%7BS%7D%29%20%5Csetminus%20span%28%5Cmathcal%7BL%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{span(\mathcal{S}) \setminus span(\mathcal{L})}' title='{span(\mathcal{S}) \setminus span(\mathcal{L})}' class='latex' /> and intersects fewer sets of <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BL%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{L}}' title='{\mathcal{L}}' class='latex' /> than <img src='http://s.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' />, since all sets that intersect <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Ccap%20T%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \cap T}' title='{S \cap T}' class='latex' /> in <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BL%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{L}}' title='{\mathcal{L}}' class='latex' /> must intersect <img src='http://s.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' /> as well (since no set can cross <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' />).<img class="aligncenter size-full wp-image-254" title="bst_fig4" src="http://www.bigredbits.com/wp-content/uploads/2009/11/bst_fig4.png" alt="bst_fig4" width="253" height="181" /></li>
<li> <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cchi_%7BS%20%5Ccup%20T%7D%20%5Cnotin%20span%28%5Cmathcal%7BL%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\chi_{S \cup T} \notin span(\mathcal{L})}' title='{\chi_{S \cup T} \notin span(\mathcal{L})}' class='latex' />, then <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Ccup%20T%20%5Cin%20span%28%5Cmathcal%7BS%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \cup T \in span(\mathcal{S})}' title='{S \cup T \in span(\mathcal{S})}' class='latex' /> is in <img src='http://s.wordpress.com/latex.php?latex=%7Bspan%28%5Cmathcal%7BS%7D%29%20%5Csetminus%20span%28%5Cmathcal%7BL%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{span(\mathcal{S}) \setminus span(\mathcal{L})}' title='{span(\mathcal{S}) \setminus span(\mathcal{L})}' class='latex' /> and intersects fewer sets of <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BL%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{L}}' title='{\mathcal{L}}' class='latex' /> than <img src='http://s.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' />, since all sets that intersect <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Ccup%20T%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \cup T}' title='{S \cup T}' class='latex' /> in <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BL%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{L}}' title='{\mathcal{L}}' class='latex' /> must intersect <img src='http://s.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' />.</li>
</ol>
<p>In either case we have a contradiction, so we proved that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cvert%20%5Cmathcal%7BL%7D%20%5Cvert%20%3D%20dim%28span%28%5Cmathcal%7BS%7D%29%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\vert \mathcal{L} \vert = dim(span(\mathcal{S}))}' title='{\vert \mathcal{L} \vert = dim(span(\mathcal{S}))}' class='latex' />. So we can generate all the space of tight sets with a laminar family. <img src='http://s.wordpress.com/latex.php?latex=%5CBox&#038;bg=T&#038;fg=000000&#038;s=0' alt='\Box' title='\Box' class='latex' /></p>
<p>And this finishes the proof. Let&#8217;s go over all that we&#8217;ve done: we started with an LP and we wanted to prove that the support of each solution was not too large. We wanted that because we wanted to prove that there was one node with degree one in the support or a node in <img src='http://s.wordpress.com/latex.php?latex=%7BW%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{W}' title='{W}' class='latex' /> with small (<img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleq%203%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\leq 3}' title='{\leq 3}' class='latex' />) degree. To prove that the degree of the support is small, we show that any basic solution has a representation in terms of a laminar family. Then we use the fact that laminar families can&#8217;t be very large families of sets. For that, we use the celebrated Uncrossing Lemma.</p>
<p><strong>Note:</strong> Most of this is based on my notes on David Williamson&#8217;s Approximation Algorithms class. I spent some time thinking about this algorithm and therefore I decided o post it here.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/249/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Looking at probability distributions</title>
		<link>http://www.bigredbits.com/archives/231</link>
		<comments>http://www.bigredbits.com/archives/231#comments</comments>
		<pubDate>Fri, 13 Nov 2009 03:16:27 +0000</pubDate>
		<dc:creator>renatoppl</dc:creator>
				<category><![CDATA[theory]]></category>
		<category><![CDATA[mathematics]]></category>
		<category><![CDATA[probability]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=231</guid>
		<description><![CDATA[I&#8217;ve been taking two classes in probability this semester and in those I saw the proofs of a lot of interesting theorems which I knew about previously but I have never seen the proof, as the Central Limit Theorem, the Laws of Large Numbers and so on&#8230; Also, some theory which is looks somewhat ugly [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been taking two classes in probability this semester and in those I saw the proofs of a lot of interesting theorems which I knew about previously but I have never seen the proof, as the Central Limit Theorem, the Laws of Large Numbers and so on&#8230; Also, some theory which is looks somewhat ugly in the undergrad courses becomes very clear with the proper formal treatment. Today I was thinking what was the main take-home message that a computer scientist could take from those classes and. at ;east for me, this message is the various ways of looking to probability distributions. I&#8217;ve heard about moments, Laplace transform, Fourier transform and other tools like that, but I never realized before their true power. Probably still today, most of their true power is hidden from me, but I am starting to look at them in a different way. Let me try to go over a few examples of different ways we can look at probability distributions and show cases where they are interesting.</p>
<p>Most of ways of looking at probability distributions are associated with multiplicative system: a multiplicative system <img src='http://s.wordpress.com/latex.php?latex=%7BQ%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Q}' title='{Q}' class='latex' /> is a set of real-valued functions with the property that if <img src='http://s.wordpress.com/latex.php?latex=%7Bf_1%2C%20f_2%20%5Cin%20Q%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_1, f_2 \in Q}' title='{f_1, f_2 \in Q}' class='latex' /> then <img src='http://s.wordpress.com/latex.php?latex=%7Bf_1%20%5Cdot%20f_2%20%5Cin%20Q%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_1 \dot f_2 \in Q}' title='{f_1 \dot f_2 \in Q}' class='latex' />. Those kinds of sets are powerful because of the Multiplicative Systems Theorem:</p>
<blockquote><p><strong>Theorem 1 (Multiplicative Systems Theorem)</strong> <em> If <img src='http://s.wordpress.com/latex.php?latex=%7BQ%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Q}' title='{Q}' class='latex' /> is a multiplicative system, <img src='http://s.wordpress.com/latex.php?latex=%7BH%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{H}' title='{H}' class='latex' /> is a linear space containing <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}' title='{1}' class='latex' /> (the constant function <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}' title='{1}' class='latex' />) and is closed under bounded convergence, then <img src='http://s.wordpress.com/latex.php?latex=%7BQ%20%5Csubseteq%20H%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Q \subseteq H}' title='{Q \subseteq H}' class='latex' /> implies that <img src='http://s.wordpress.com/latex.php?latex=%7BH%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{H}' title='{H}' class='latex' /> contains all bounded <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csigma%28Q%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sigma(Q)}' title='{\sigma(Q)}' class='latex' />-measurable functions. </em></p></blockquote>
<p>The theorem might look a bit cryptic if you are not familiar with the definitions, but it boils down to the following translation:</p>
<blockquote><p><strong>Theorem 2 (Translation of the Multiplicative Systems Theorem)</strong> <em> If <img src='http://s.wordpress.com/latex.php?latex=%7BQ%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Q}' title='{Q}' class='latex' /> is &#8220;general&#8221; multiplicative system, <img src='http://s.wordpress.com/latex.php?latex=%7BX%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X}' title='{X}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BY%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Y}' title='{Y}' class='latex' /> are random variable such that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathop%7B%5Cmathbb%20E%7D%7Bf%28X%29%7D%20%3D%20%5Cmathop%7B%5Cmathbb%20E%7D%7Bf%28Y%29%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathop{\mathbb E}{f(X)} = \mathop{\mathbb E}{f(Y)}}' title='{\mathop{\mathbb E}{f(X)} = \mathop{\mathbb E}{f(Y)}}' class='latex' /> for all <img src='http://s.wordpress.com/latex.php?latex=%7Bf%20%5Cin%20Q%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f \in Q}' title='{f \in Q}' class='latex' /> then <img src='http://s.wordpress.com/latex.php?latex=%7BX%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X}' title='{X}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BY%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Y}' title='{Y}' class='latex' /> have the same distribution. </em></p></blockquote>
<p>where general excludes some troublesome cases like <img src='http://s.wordpress.com/latex.php?latex=%7BQ%20%3D%20%5C%7B1%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Q = \{1\}}' title='{Q = \{1\}}' class='latex' /> or all constant functions, for example. In technical terms, we wanted <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csigma%28Q%29%20%3D%20%5Csigma%5C%7Bf%5E%7B-1%7D%28%28-%5Cinfty%2Ca%5D%29%3B%20a%5Cin%20%7B%5Cmathbb%20R%7D%2C%20f%20%5Cin%20Q%20%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sigma(Q) = \sigma\{f^{-1}((-\infty,a]); a\in {\mathbb R}, f \in Q \}}' title='{\sigma(Q) = \sigma\{f^{-1}((-\infty,a]); a\in {\mathbb R}, f \in Q \}}' class='latex' /> to be the Borel <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csigma%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sigma}' title='{\sigma}' class='latex' />-algebra. But let&#8217;s not worry about those technical details and just look at the translated version. We now, discuss several kinds of multiplicative systems:</p>
<ol>
<li> The most common description of the a random variable is by the cummulative distribution function <img src='http://s.wordpress.com/latex.php?latex=%7BF%28u%29%20%3D%20P%5C%7BX%20%5Cleq%20u%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{F(u) = P\{X \leq u\}}' title='{F(u) = P\{X \leq u\}}' class='latex' />. This is associated with <img src='http://s.wordpress.com/latex.php?latex=%7BQ%20%3D%20%5C%7B%201_%7B%28-%5Cinfty%2Cu%5D%7D%28x%29%3B%20u%20%5Cin%20%7B%5Cmathbb%20R%7D%20%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Q = \{ 1_{(-\infty,u]}(x); u \in {\mathbb R} \}}' title='{Q = \{ 1_{(-\infty,u]}(x); u \in {\mathbb R} \}}' class='latex' /> notice that simply <img src='http://s.wordpress.com/latex.php?latex=%7BF%28u%29%20%3D%20%5Cmathop%7B%5Cmathbb%20E%7D%7B1_%7B%28-%5Cinfty%2Cu%5D%7D%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{F(u) = \mathop{\mathbb E}{1_{(-\infty,u]}}}' title='{F(u) = \mathop{\mathbb E}{1_{(-\infty,u]}}}' class='latex' />.</li>
<li> We can characterize a random variable by its moments: the variable <img src='http://s.wordpress.com/latex.php?latex=%7BX%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X}' title='{X}' class='latex' /> is characterized by the set <img src='http://s.wordpress.com/latex.php?latex=%7BM_n%20%3D%20%5Cint_%7B%5Cmathbb%20R%7D%20x%5En%20%5Cmu_X%28dx%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{M_n = \int_{\mathbb R} x^n \mu_X(dx)}' title='{M_n = \int_{\mathbb R} x^n \mu_X(dx)}' class='latex' />. Given the moemnts <img src='http://s.wordpress.com/latex.php?latex=%7BM_1%2C%20M_2%2C%20%5Chdots%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{M_1, M_2, \hdots}' title='{M_1, M_2, \hdots}' class='latex' />, the variable is totally characterized, i.e., if two variables have the same moments, then they have the same distribution by the Multiplicative Systems Theorem. This description is associated with the system <img src='http://s.wordpress.com/latex.php?latex=%7BQ%20%3D%20%5C%7Bx%5En%3B%20n%20%3D%201%2C%202%2C%20%5Chdots%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Q = \{x^n; n = 1, 2, \hdots\}}' title='{Q = \{x^n; n = 1, 2, \hdots\}}' class='latex' /></li>
<li> <strong>Moment Generating Function</strong>: If <img src='http://s.wordpress.com/latex.php?latex=%7BX%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X}' title='{X}' class='latex' /> is a variable that assumes only integer values, we can describe the it as <img src='http://s.wordpress.com/latex.php?latex=%7Bp_0%2C%20p_1%2C%20p_2%2C%20%5Chdots%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_0, p_1, p_2, \hdots}' title='{p_0, p_1, p_2, \hdots}' class='latex' />, where <img src='http://s.wordpress.com/latex.php?latex=%7Bp_n%20%3D%20P%5C%7B%20X%20%3D%20n%20%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_n = P\{ X = n \}}' title='{p_n = P\{ X = n \}}' class='latex' />. An interesting way of representing those probabilities is as the moment generating function <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cpsi_X%28z%29%20%3D%20%5Cmathop%7B%5Cmathbb%20E%7D%7Bz%5EX%7D%20%3D%20%5Csum_%7Bn%3D0%7D%5E%5Cinfty%20p_n%20z%5En%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\psi_X(z) = \mathop{\mathbb E}{z^X} = \sum_{n=0}^\infty p_n z^n}' title='{\psi_X(z) = \mathop{\mathbb E}{z^X} = \sum_{n=0}^\infty p_n z^n}' class='latex' />. This is associated with the multiplicative system <img src='http://s.wordpress.com/latex.php?latex=%7BQ%20%3D%20%5C%7Bz%5Ex%2C%200%20%5Cleq%20z%20%3C%201%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Q = \{z^x, 0 \leq z &lt; 1\}}' title='{Q = \{z^x, 0 \leq z &lt; 1\}}' class='latex' />.Now suppose we are given two discrete independent variables <img src='http://s.wordpress.com/latex.php?latex=%7BX%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X}' title='{X}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BY%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Y}' title='{Y}' class='latex' />. What do we know about <img src='http://s.wordpress.com/latex.php?latex=%7BX%2BY%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X+Y}' title='{X+Y}' class='latex' />. It is easy to know its expectation, its variance, &#8230; but what about more complicated things? What is the distribution of <img src='http://s.wordpress.com/latex.php?latex=%7BX%2BY%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X+Y}' title='{X+Y}' class='latex' /> ? Moment generating functions answer this question very easily, since:
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cpsi_%7BX%2BY%7D%20%28z%29%20%3D%20%5Cmathop%7B%5Cmathbb%20E%7D%20%5Bz%5E%7BX%2BY%7D%5D%20%3D%20%5Cmathop%7B%5Cmathbb%20E%7D%20%5Bz%5E%7BX%7D%5D%20%5Ccdot%20%5Cmathop%7B%5Cmathbb%20E%7D%5Bz%5E%7BY%7D%5D%20%3D%20%5Cpsi_X%28z%29%20%5Ccdot%20%5Cpsi_Y%28z%29&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \psi_{X+Y} (z) = \mathop{\mathbb E} [z^{X+Y}] = \mathop{\mathbb E} [z^{X}] \cdot \mathop{\mathbb E}[z^{Y}] = \psi_X(z) \cdot \psi_Y(z)' title='\displaystyle \psi_{X+Y} (z) = \mathop{\mathbb E} [z^{X+Y}] = \mathop{\mathbb E} [z^{X}] \cdot \mathop{\mathbb E}[z^{Y}] = \psi_X(z) \cdot \psi_Y(z)' class='latex' /></p>
<p>If we know moment generating functions, we can calculate expectation very easily, since <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathop%7B%5Cmathbb%20E%7D%5BX%5D%20%3D%20%5Cpsi%27_X%281%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathop{\mathbb E}[X] = \psi&#039;_X(1)}' title='{\mathop{\mathbb E}[X] = \psi&#039;_X(1)}' class='latex' />. For example, suppose we have a process like that: there is one bacteria in time <img src='http://s.wordpress.com/latex.php?latex=%7Bt%20%3D%200%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{t = 0}' title='{t = 0}' class='latex' />. In each timestep, either this bacteria dies (with probability <img src='http://s.wordpress.com/latex.php?latex=%7Bp_0%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_0}' title='{p_0}' class='latex' />), continues alive without reproducing (with probability <img src='http://s.wordpress.com/latex.php?latex=%7Bp_1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_1}' title='{p_1}' class='latex' /> or has <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}' title='{k}' class='latex' /> offsprings (with probability <img src='http://s.wordpress.com/latex.php?latex=%7Bp_%7B1%2Bk%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_{1+k}}' title='{p_{1+k}}' class='latex' />). In that case <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_0%5E%5Cinfty%20p_n%20%3D%201%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_0^\infty p_n = 1}' title='{\sum_0^\infty p_n = 1}' class='latex' />. Each time, the same happens, independently with each of the bacteria alive in that moment. The question is, what is the expected number of bacteria in time <img src='http://s.wordpress.com/latex.php?latex=%7Bt%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{t}' title='{t}' class='latex' /> ?</p>
<p>It looks like a complicated problem with just elementary tools, but it is a simple problem if we have moment generating functions. Just let <img src='http://s.wordpress.com/latex.php?latex=%7BX_%7Bti%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X_{ti}}' title='{X_{ti}}' class='latex' /> be the variable associated with the <img src='http://s.wordpress.com/latex.php?latex=%7Bi%5E%7Bth%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i^{th}}' title='{i^{th}}' class='latex' /> bacteria of time <img src='http://s.wordpress.com/latex.php?latex=%7Bt%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{t}' title='{t}' class='latex' />. It is zero if it dies, <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}' title='{1}' class='latex' /> if it stays the same and <img src='http://s.wordpress.com/latex.php?latex=%7Bk%2B1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k+1}' title='{k+1}' class='latex' /> if it has <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}' title='{k}' class='latex' /> offsprings. Let also <img src='http://s.wordpress.com/latex.php?latex=%7BN_t%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{N_t}' title='{N_t}' class='latex' /> be the number of bacteria in time <img src='http://s.wordpress.com/latex.php?latex=%7Bt%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{t}' title='{t}' class='latex' />. We want to know <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathop%7B%5Cmathbb%20E%7D%20N_t%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathop{\mathbb E} N_t}' title='{\mathop{\mathbb E} N_t}' class='latex' />. First, see that:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20N_t%20%3D%20%5Csum_%7Bi%3D1%7D%5E%7BN_%7Bt-1%7D%7D%20X_%7Bti%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle N_t = \sum_{i=1}^{N_{t-1}} X_{ti}' title='\displaystyle N_t = \sum_{i=1}^{N_{t-1}} X_{ti}' class='latex' /></p>
<p>Now, let&#8217;s write that in terms of moment generating functions:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cpsi_%7BN_t%7D%28z%29%20%3D%20%5Cmathop%7B%5Cmathbb%20E%7D%7Bz%5E%7BX_%7Bt1%7D%20%2B%20%5Chdots%20%2B%20X_%7BtN_t%7D%7D%7D%20%3D%20%5Csum_%7Bk%3D0%7D%5E%5Cinfty%20P%5C%7BN_%7Bt-1%7D%20%3D%20k%5C%7D%20%5Ccdot%20%5Cmathop%7B%5Cmathbb%20E%7D%5Bz%5E%7BX_%7Bt1%7D%20%2B%20%5Chdots%20%2B%20X_%7BtN_t%7D%7D%20%5Cvert%20N_t%20%3D%20k%5D&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \psi_{N_t}(z) = \mathop{\mathbb E}{z^{X_{t1} + \hdots + X_{tN_t}}} = \sum_{k=0}^\infty P\{N_{t-1} = k\} \cdot \mathop{\mathbb E}[z^{X_{t1} + \hdots + X_{tN_t}} \vert N_t = k]' title='\displaystyle \psi_{N_t}(z) = \mathop{\mathbb E}{z^{X_{t1} + \hdots + X_{tN_t}}} = \sum_{k=0}^\infty P\{N_{t-1} = k\} \cdot \mathop{\mathbb E}[z^{X_{t1} + \hdots + X_{tN_t}} \vert N_t = k]' class='latex' /></p>
<p>which is just:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cpsi_%7BN_t%7D%28z%29%20%3D%20%5Csum_%7Bk%3D0%7D%5E%5Cinfty%20P%5C%7BN_%7Bt-1%7D%20%3D%20k%5C%7D%20%5Ccdot%20%5Cmathop%7B%5Cmathbb%20E%7D%5Bz%5E%7BX_%7Bt1%7D%20%2B%20%5Chdots%20%2B%20X_%7Btk%7D%7D%5D%20%3D%20%5Csum_%7Bk%3D0%7D%5E%5Cinfty%20P%5C%7BN_%7Bt-1%7D%20%3D%20k%20%5C%7D%20%5Ccdot%20%5Cpsi_X%20%28z%29%5Ek&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \psi_{N_t}(z) = \sum_{k=0}^\infty P\{N_{t-1} = k\} \cdot \mathop{\mathbb E}[z^{X_{t1} + \hdots + X_{tk}}] = \sum_{k=0}^\infty P\{N_{t-1} = k \} \cdot \psi_X (z)^k' title='\displaystyle \psi_{N_t}(z) = \sum_{k=0}^\infty P\{N_{t-1} = k\} \cdot \mathop{\mathbb E}[z^{X_{t1} + \hdots + X_{tk}}] = \sum_{k=0}^\infty P\{N_{t-1} = k \} \cdot \psi_X (z)^k' class='latex' /></p>
<p>since the variables are all independent and identically distributed. Now, notice that:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cpsi_%7BN_%7Bt-1%7D%7D%28z%29%20%3D%20%5Csum_%7Bk%3D0%7D%5E%5Cinfty%20P%5C%7BN_%7Bt-1%7D%20%3D%20k%5C%7D%20%5Ccdot%20z%5Ek&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \psi_{N_{t-1}}(z) = \sum_{k=0}^\infty P\{N_{t-1} = k\} \cdot z^k' title='\displaystyle \psi_{N_{t-1}}(z) = \sum_{k=0}^\infty P\{N_{t-1} = k\} \cdot z^k' class='latex' /></p>
<p>by the definition of moment generating function, so we effectively proved that:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cpsi_%7BN_%7Bt%7D%7D%28z%29%20%3D%20%5Cpsi_%7BN_%7Bt-1%7D%7D%28%5Cpsi_X%28z%29%29%20%3D%20%5Cpsi_X%20%5Cpsi_X%20%5Chdots%20%5Cpsi_X%28z%29%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \psi_{N_{t}}(z) = \psi_{N_{t-1}}(\psi_X(z)) = \psi_X \psi_X \hdots \psi_X(z) ' title='\displaystyle \psi_{N_{t}}(z) = \psi_{N_{t-1}}(\psi_X(z)) = \psi_X \psi_X \hdots \psi_X(z) ' class='latex' /></p>
<p>We proved that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cpsi_%7BN_%7Bt%7D%7D%28z%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\psi_{N_{t}}(z)}' title='{\psi_{N_{t}}(z)}' class='latex' /> is just <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cpsi%28z%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\psi(z)}' title='{\psi(z)}' class='latex' /> iterated <img src='http://s.wordpress.com/latex.php?latex=%7Bt%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{t}' title='{t}' class='latex' /> times. Now, calculating the expectation is easy, using the fact that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cpsi_X%281%29%20%3D%201%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\psi_X(1) = 1}' title='{\psi_X(1) = 1}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cpsi%27_X%281%29%20%3D%20%5Cmathop%7B%5Cmathbb%20E%7D%20X%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\psi&#039;_X(1) = \mathop{\mathbb E} X}' title='{\psi&#039;_X(1) = \mathop{\mathbb E} X}' class='latex' />. Just see that: <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathop%7B%5Cmathbb%20E%7D%20N_t%20%3D%20%5Cpsi_%7BN_%7Bt%7D%7D%27%281%29%20%3D%20%5Cpsi_%7BN_%7Bt-1%7D%7D%27%28%5Cpsi_X%281%29%29%20%5Ccdot%20%5Cpsi%27_X%281%29%20%3D%20%5Cpsi_%7BN_%7Bt-1%7D%7D%27%281%29%20%5Ccdot%20%5Cmathop%7B%5Cmathbb%20E%7D%20X%20%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathop{\mathbb E} N_t = \psi_{N_{t}}&#039;(1) = \psi_{N_{t-1}}&#039;(\psi_X(1)) \cdot \psi&#039;_X(1) = \psi_{N_{t-1}}&#039;(1) \cdot \mathop{\mathbb E} X }' title='{\mathop{\mathbb E} N_t = \psi_{N_{t}}&#039;(1) = \psi_{N_{t-1}}&#039;(\psi_X(1)) \cdot \psi&#039;_X(1) = \psi_{N_{t-1}}&#039;(1) \cdot \mathop{\mathbb E} X }' class='latex' />. Then, clearly <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathop%7B%5Cmathbb%20E%7D%20N_t%20%3D%20%28%5Cmathop%7B%5Cmathbb%20E%7D%20X%29%5Et%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathop{\mathbb E} N_t = (\mathop{\mathbb E} X)^t}' title='{\mathop{\mathbb E} N_t = (\mathop{\mathbb E} X)^t}' class='latex' />. Using similar technique we can prove a lot more things about this process, just by analyzing the behavior of the moment generating function.</li>
<li> <strong>Laplace Tranform</strong>: Now, moving to continuous variables, if <img src='http://s.wordpress.com/latex.php?latex=%7BX%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X}' title='{X}' class='latex' /> is a continuous non-negative variable we can define its Laplace tranform as: <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cphi_X%28u%29%20%3D%20%5Cmathop%7B%5Cmathbb%20E%7D%20%5Be%5E%7Bu%20X%7D%5D%20%3D%20%5Cint_0%5E%5Cinfty%20e%5E%7Bux%7D%20%5Cmu_X%28dx%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\phi_X(u) = \mathop{\mathbb E} [e^{u X}] = \int_0^\infty e^{ux} \mu_X(dx)}' title='{\phi_X(u) = \mathop{\mathbb E} [e^{u X}] = \int_0^\infty e^{ux} \mu_X(dx)}' class='latex' />, where <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmu_X%28dx%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mu_X(dx)}' title='{\mu_X(dx)}' class='latex' /> stands for the distribution of <img src='http://s.wordpress.com/latex.php?latex=%7BX%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X}' title='{X}' class='latex' />, for example, <img src='http://s.wordpress.com/latex.php?latex=%7B%5Crho_X%28x%29%20dx%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\rho_X(x) dx}' title='{\rho_X(x) dx}' class='latex' />. This is associated with the multiplicative system <img src='http://s.wordpress.com/latex.php?latex=%7BQ%20%3D%20%5C%7Be%5E%7Bux%7D%3B%20u%20%5Cgeq%200%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Q = \{e^{ux}; u \geq 0\}}' title='{Q = \{e^{ux}; u \geq 0\}}' class='latex' />. Again, by the Multiplicative Systems Theorem, if <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cphi_X%20%3D%20%5Cphi_Y%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\phi_X = \phi_Y}' title='{\phi_X = \phi_Y}' class='latex' />, then the two variables have the same distribution. The Laplace tranform has the same nice properties as the Moment Generating Function, for example, <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cphi_%7BX%2BY%7D%28u%29%20%3D%20%5Cmathop%7B%5Cmathbb%20E%7D%5Be%5E%7B%28X%2BY%29u%7D%5D%20%3D%20%5Cmathop%7B%5Cmathbb%20E%7D%5Be%5E%7BXu%7D%5D%20%5Ccdot%20%5Cmathop%7B%5Cmathbb%20E%7D%5Be%5E%7BYu%7D%5D%20%3D%20%5Cphi_X%28u%29%20%5Ccdot%20%5Cphi_Y%28u%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\phi_{X+Y}(u) = \mathop{\mathbb E}[e^{(X+Y)u}] = \mathop{\mathbb E}[e^{Xu}] \cdot \mathop{\mathbb E}[e^{Yu}] = \phi_X(u) \cdot \phi_Y(u)}' title='{\phi_{X+Y}(u) = \mathop{\mathbb E}[e^{(X+Y)u}] = \mathop{\mathbb E}[e^{Xu}] \cdot \mathop{\mathbb E}[e^{Yu}] = \phi_X(u) \cdot \phi_Y(u)}' class='latex' />.And it allows us to do similar tricks than the one I just showed for Moment Generating Functions. One common trick that is used, for example, in the proof of Chernoff bounds is, given independent non-negative random variables:
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20P%5Cleft%5C%7B%5Csum_i%20X_i%20%3E%20u%5Cright%5C%7D%20%3D%20P%5Cleft%5C%7Be%5E%7B%5Csum_i%20X_i%7D%20%3E%20e%5Eu%5Cright%5C%7D%20%5Cleq%20%5Cfrac%7B%5Cmathop%7B%5Cmathbb%20E%7D%5Be%5E%7B%5Csum_i%20X_i%7D%20%5D%7D%7Be%5Eu%7D%20%3D%20%5Cfrac%7B%5Cprod_i%20%5Cmathop%7B%5Cmathbb%20E%7D%5Be%5E%7BX_i%7D%20%5D%7D%7Be%5Eu%7D%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle P\left\{\sum_i X_i &gt; u\right\} = P\left\{e^{\sum_i X_i} &gt; e^u\right\} \leq \frac{\mathop{\mathbb E}[e^{\sum_i X_i} ]}{e^u} = \frac{\prod_i \mathop{\mathbb E}[e^{X_i} ]}{e^u} ' title='\displaystyle P\left\{\sum_i X_i &gt; u\right\} = P\left\{e^{\sum_i X_i} &gt; e^u\right\} \leq \frac{\mathop{\mathbb E}[e^{\sum_i X_i} ]}{e^u} = \frac{\prod_i \mathop{\mathbb E}[e^{X_i} ]}{e^u} ' class='latex' /></p>
<p>where we also used Markov Inequality: <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathop%7B%5Cmathbb%20E%7D%5BX%5D%20%5Cgeq%20%5Cbeta%20P%5C%7BX%20%5Cgeq%20%5Cbeta%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathop{\mathbb E}[X] \geq \beta P\{X \geq \beta\}}' title='{\mathop{\mathbb E}[X] \geq \beta P\{X \geq \beta\}}' class='latex' />. Passing to the Laplace transform is the main ingredient in the Chernoff bound and it allows us to sort of &#8220;decouple&#8221; the random variables in the sum. There are several other cases where the Laplace transform proves itsself very useful and turns things that looked very complicated when we saw in undergrad courses into simple and clear things. One clear example of that is the motivation for the Poisson random variable:</p>
<p>If <img src='http://s.wordpress.com/latex.php?latex=%7BT_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T_i}' title='{T_i}' class='latex' /> are independend exponentially distributed random variables with mean <img src='http://s.wordpress.com/latex.php?latex=%7B%5Clambda%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\lambda}' title='{\lambda}' class='latex' />, then <img src='http://s.wordpress.com/latex.php?latex=%7B%5Crho_%7BT_i%7D%28t%29%20%3D%20%5Clambda%20e%5E%7B-%20%5Clambda%20t%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\rho_{T_i}(t) = \lambda e^{- \lambda t}}' title='{\rho_{T_i}(t) = \lambda e^{- \lambda t}}' class='latex' />. An elementary calculation shows that its laplace transform is <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cphi_%7BT_i%7D%28u%29%20%3D%20%5Cfrac%7B%5Clambda%7D%7B%5Clambda%2Bu%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\phi_{T_i}(u) = \frac{\lambda}{\lambda+u}}' title='{\phi_{T_i}(u) = \frac{\lambda}{\lambda+u}}' class='latex' />. Let <img src='http://s.wordpress.com/latex.php?latex=%7BS_n%20%3D%20T-0%20%2B%20T_1%20%2B%20T_2%20%2B%20%5Chdots%20%2B%20T_n%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S_n = T-0 + T_1 + T_2 + \hdots + T_n}' title='{S_n = T-0 + T_1 + T_2 + \hdots + T_n}' class='latex' />, i.e., the time of the <img src='http://s.wordpress.com/latex.php?latex=%7B%28n%2B1%29%5E%7Bth%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(n+1)^{th}}' title='{(n+1)^{th}}' class='latex' /> arrival. We want to know what is the distribution of <img src='http://s.wordpress.com/latex.php?latex=%7BS_n%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S_n}' title='{S_n}' class='latex' />. How to do that?</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cphi_%7BS_n%7D%28u%29%20%3D%20%5Cmathop%7B%5Cmathbb%20E%7D%5Be%5E%7Bu%28T_0%20%2B%20%5Chdots%20%2B%20T_n%29%7D%5D%20%3D%20%5Cphi_T%28u%29%5E%7Bn%2B1%7D%20%3D%20%5Cleft%28%20%5Cfrac%7B%5Clambda%7D%7B%5Clambda%2Bu%7D%20%5Cright%29%5E%7Bn%2B1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \phi_{S_n}(u) = \mathop{\mathbb E}[e^{u(T_0 + \hdots + T_n)}] = \phi_T(u)^{n+1} = \left( \frac{\lambda}{\lambda+u} \right)^{n+1}' title='\displaystyle \phi_{S_n}(u) = \mathop{\mathbb E}[e^{u(T_0 + \hdots + T_n)}] = \phi_T(u)^{n+1} = \left( \frac{\lambda}{\lambda+u} \right)^{n+1}' class='latex' /></p>
<p>Now, we need to find <img src='http://s.wordpress.com/latex.php?latex=%7B%5Crho_%7BS_n%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\rho_{S_n}}' title='{\rho_{S_n}}' class='latex' /> such that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cint_0%5E%5Cinfty%20%5Crho_%7BS_n%7D%28t%29%20e%5E%7Biu%7D%20dt%20%3D%20%5Cleft%28%20%5Cfrac%7B%5Clambda%7D%7B%5Clambda%2Bu%7D%20%5Cright%29%5E%7Bn%2B1%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\int_0^\infty \rho_{S_n}(t) e^{iu} dt = \left( \frac{\lambda}{\lambda+u} \right)^{n+1}}' title='{\int_0^\infty \rho_{S_n}(t) e^{iu} dt = \left( \frac{\lambda}{\lambda+u} \right)^{n+1}}' class='latex' />. Now it is just a matter of solving this equation and we get: <img src='http://s.wordpress.com/latex.php?latex=%7B%5Crho_%7BS_n%7D%28t%29%20%3D%20%5Cfrac%7B%5Clambda%20%28%5Clambda%20t%29%5En%7D%7Bn%21%7D%20e%5E%7B-%5Clambda%20t%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\rho_{S_n}(t) = \frac{\lambda (\lambda t)^n}{n!} e^{-\lambda t}}' title='{\rho_{S_n}(t) = \frac{\lambda (\lambda t)^n}{n!} e^{-\lambda t}}' class='latex' />. Now, the Poisson varible <img src='http://s.wordpress.com/latex.php?latex=%7BN_t%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{N_t}' title='{N_t}' class='latex' /> measures the number of arrivals in <img src='http://s.wordpress.com/latex.php?latex=%7B%5B0%2Ct%5D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{[0,t]}' title='{[0,t]}' class='latex' /> and therefore:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cbegin%7Baligned%7D%20P%5C%7BN_t%20%3D%20n%5C%7D%20%26%20%3D%20P%5C%7BS_%7Bn-1%7D%20%3C%20t%20%3C%20S_n%5C%7D%20%3D%20P%5C%7BS_n%20%3E%20t%5C%7D%20-%20P%5C%7BS_%7Bn-1%7D%20%5Cgeq%20t%5C%7D%20%5C%5C%20%26%20%3D%20%5Cint_t%5E%5Cinfty%20%5Crho_%7BS_n%7D%28t%29%20dt%20-%20%5Cint_t%5E%5Cinfty%20%5Crho_%7BS_%7Bn-1%7D%7D%28t%29%20dt%20%3D%20%5Cfrac%7B%28%5Clambda%20t%29%5En%7D%7Bn%21%7D%20e%5E%7B-%5Clambda%20t%7D%20%5Cend%7Baligned%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \begin{aligned} P\{N_t = n\} &amp; = P\{S_{n-1} &lt; t &lt; S_n\} = P\{S_n &gt; t\} - P\{S_{n-1} \geq t\} \\ &amp; = \int_t^\infty \rho_{S_n}(t) dt - \int_t^\infty \rho_{S_{n-1}}(t) dt = \frac{(\lambda t)^n}{n!} e^{-\lambda t} \end{aligned}' title='\displaystyle \begin{aligned} P\{N_t = n\} &amp; = P\{S_{n-1} &lt; t &lt; S_n\} = P\{S_n &gt; t\} - P\{S_{n-1} \geq t\} \\ &amp; = \int_t^\infty \rho_{S_n}(t) dt - \int_t^\infty \rho_{S_{n-1}}(t) dt = \frac{(\lambda t)^n}{n!} e^{-\lambda t} \end{aligned}' class='latex' /></p>
</li>
<li> <strong>Characteristic Function or Fourier Tranform</strong>: Taking <img src='http://s.wordpress.com/latex.php?latex=%7BQ%20%3D%20%5C%7Be%5E%7Bi%5Clambda%20x%7D%3B%20x%20%5Cin%20%5Cmathbb%7BC%7D%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{Q = \{e^{i\lambda x}; x \in \mathbb{C}\}}' title='{Q = \{e^{i\lambda x}; x \in \mathbb{C}\}}' class='latex' /> we get the Fourier Transform: <img src='http://s.wordpress.com/latex.php?latex=%7Bf_X%28%5Clambda%29%20%3D%20%5Cmathop%7B%5Cmathbb%20E%7D%20e%5E%7Bi%20%5Clambda%20x%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_X(\lambda) = \mathop{\mathbb E} e^{i \lambda x}}' title='{f_X(\lambda) = \mathop{\mathbb E} e^{i \lambda x}}' class='latex' /> which also has some of the nice properties of the previous ones and some additional ones. The characteristic functions were the main actors in the development of all the probability techniques that lead to the main result of 19th century Probability Theory: the Central Limit Theorem. We know that moment generating functions and Laplace transforms completely characterize the distributions, but it is not clear how to recover a distribution once we have a transform. For Fourier Transform there is a cleas and simple way of doing that by means of the Inversion Formula:
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Crho_X%28x%29%20%3D%20%5Cfrac%7B1%7D%7B2%20%5Cpi%7D%20%5Cint_%7B%5Cmathbb%20R%7D%20e%5E%7B-i%20%5Clambda%20x%7D%20f_X%28%5Clambda%29%20d%5Clambda&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \rho_X(x) = \frac{1}{2 \pi} \int_{\mathbb R} e^{-i \lambda x} f_X(\lambda) d\lambda' title='\displaystyle \rho_X(x) = \frac{1}{2 \pi} \int_{\mathbb R} e^{-i \lambda x} f_X(\lambda) d\lambda' class='latex' /></p>
<p>One fact that always puzzled me was: why is the normal distribution <img src='http://s.wordpress.com/latex.php?latex=%7B%5Crho_N%20%28x%29%20%3D%20%5Cfrac%7B1%7D%7B%5Csqrt%7B2%20%5Cpi%7D%7D%20e%5E%7B-x%5E2%2F2%7D%20%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\rho_N (x) = \frac{1}{\sqrt{2 \pi}} e^{-x^2/2} }' title='{\rho_N (x) = \frac{1}{\sqrt{2 \pi}} e^{-x^2/2} }' class='latex' /> so important? What does it have in special to be the limiting distribution in the Central Limit Theorem, i.e., if <img src='http://s.wordpress.com/latex.php?latex=%7BX_1%2C%20X_2%2C%20%5Chdots%2C%20X_n%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{X_1, X_2, \hdots, X_n}' title='{X_1, X_2, \hdots, X_n}' class='latex' /> is a sequence of independent random variables, <img src='http://s.wordpress.com/latex.php?latex=%7BS_n%20%3D%20%5Csum_1%5En%20X_i%20-%20%5Csum_1%5En%20%5Cmathop%7B%5Cmathbb%20E%7D%20X_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S_n = \sum_1^n X_i - \sum_1^n \mathop{\mathbb E} X_i}' title='{S_n = \sum_1^n X_i - \sum_1^n \mathop{\mathbb E} X_i}' class='latex' /> then <img src='http://s.wordpress.com/latex.php?latex=%7BS_n%20%2F%20%5Csqrt%7Bvar%20S_n%7D%20%5Crightarrow%20N%280%2C1%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S_n / \sqrt{var S_n} \rightarrow N(0,1)}' title='{S_n / \sqrt{var S_n} \rightarrow N(0,1)}' class='latex' /> under some natural conditions on the variables. The reason the normal is so special is because it is a &#8220;fixed point&#8221; for the Fourier Transform. We can see that <img src='http://s.wordpress.com/latex.php?latex=%7Bf_N%28%5Clambda%29%20%3D%20e%5E%7B-%5Clambda_2%2F2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_N(\lambda) = e^{-\lambda_2/2}}' title='{f_N(\lambda) = e^{-\lambda_2/2}}' class='latex' />. And there we have something special about it that makes me believe the Central Limit Theorem.</li>
</ol>
<p style="text-align: center;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>This blog post was based on lectures by Professor Dynkin at Cornell.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/231/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Random Spanning Trees</title>
		<link>http://www.bigredbits.com/archives/226</link>
		<comments>http://www.bigredbits.com/archives/226#comments</comments>
		<pubDate>Wed, 04 Nov 2009 04:51:59 +0000</pubDate>
		<dc:creator>renatoppl</dc:creator>
				<category><![CDATA[theory]]></category>
		<category><![CDATA[combinatorics]]></category>
		<category><![CDATA[probability]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=226</guid>
		<description><![CDATA[BigRedBits is again pleased to have Igor Gorodezky as a guest blogger directly from UCLA. I leave you with his excelent post on the Wilson&#8217;s algorithm. &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; Igor again, with another mathematical dispatch from UCLA, where I&#8217;m spending the semester eating and breathing combinatorics as part of the 2009 program on combinatorics and its applications [...]]]></description>
			<content:encoded><![CDATA[<p>BigRedBits is again pleased to have <a href="http://jay.cam.cornell.edu/~igor/">Igor Gorodezky</a> as a guest blogger directly from UCLA. I leave you with his excelent post on the Wilson&#8217;s algorithm.</p>
<p style="text-align: center;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Igor again, with another mathematical dispatch from UCLA, where I&#8217;m spending the semester eating and breathing combinatorics as part of the 2009 program on combinatorics and its applications at IPAM. In the course of some reading related to a problem with which I&#8217;ve been occupying myself, I ran across a neat algorithmic result &#8211; Wilson&#8217;s algorithm for uniformly generating spanning trees of a graph. With Renato&#8217;s kind permission, let me once again make myself at home here at Big Red Bits and tell you all about this little gem.</p>
<p>The problem is straightforward, and I&#8217;ve essentially already stated it: given an undirected, connected graph <img src='http://s.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' />, we want an algorithm that outputs uniformly random spanning trees of <img src='http://s.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' />. In the early &#8217;90s, Aldous and Broder independently discovered an algorithm for accomplishing this task. This algorithm generates a tree <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' /> by, roughly speaking, performing a random walk on <img src='http://s.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> and adding the edge <img src='http://s.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' /> every time that the walk steps from <img src='http://s.wordpress.com/latex.php?latex=%7Bu%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u}' title='{u}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> is a vertex that has not been seen before.</p>
<p>Wilson&#8217;s algorithm (D. B. Wilson, <a class="snap_noshots" href="http://dbwilson.com/ja/tau.ps">&#8220;Generating random spanning trees more quickly than the cover time,&#8221;</a> STOC &#8217;96) takes a slightly different approach. Let us fix a root vertex <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' />. Wilson&#8217;s algorithm can be stated as a <em>loop-erased random walk</em> on <img src='http://s.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> as follows.</p>
<blockquote><p><strong>Algorithm 1 (Loop-erased random walk)</strong> Maintain a tree <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' />, initialized to consist of <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' /> alone. While there remains a vertex <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> not in <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' />: perform a random walk starting at <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' />, erasing loops as they are created, until the walk encounters a vertex in <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' />, then add to <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' /> the cycle-erased simple path from <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' />.</p></blockquote>
<p>We observe that the algorithm halts with probability 1 (its expected running time is actually polynomial, but let&#8217;s not concern ourselves with these issues here), and outputs a random directed spanning tree oriented towards <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' />. It is a minor miracle that this tree is in fact sampled <em>uniformly</em> from the set of all such trees. Let us note that this offers a solution to the original problem, as sampling <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' /> randomly and then running the algorithm will produce a uniformly generated spanning tree of <img src='http://s.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' />.</p>
<p>It remains, then, to prove that the algorithm produces uniform spanning trees rooted at <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' /> (by which we mean directed spanning trees oriented towards <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' />). To this we dedicate the remainder of this post.</p>
<p><strong>1. A &#8220;different&#8221; algorithm </strong></p>
<p>Wilson&#8217;s proof is delightfully sneaky: we begin by stating and analyzing a seemingly different algorithm, the <em>cycle-popping</em> algorithm. We will prove that this algorithm has the desired properties, and then argue that it is equivalent to the loop-erased random walk (henceforth LERW).</p>
<p>The cycle-popping algorithm works as follows. Given <img src='http://s.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' />, associate with each non-root vertex <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> an infinite <em>stack</em> of neighbors. More formally, to each <img src='http://s.wordpress.com/latex.php?latex=%7Bv%20%5Cneq%20r%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v \neq r}' title='{v \neq r}' class='latex' /> we associate</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Cmathcal%20S_v%20%3D%20%5Bu_%7B0%7D%2C%20u_%7B1%7D%2C%20%5Cdots%20%5D%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \mathcal S_v = [u_{0}, u_{1}, \dots ] ' title='\displaystyle  \mathcal S_v = [u_{0}, u_{1}, \dots ] ' class='latex' /></p>
<p>where each <img src='http://s.wordpress.com/latex.php?latex=%7Bu_%7Bi%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_{i}}' title='{u_{i}}' class='latex' /> is uniformly (and independently) sampled from the set of neighbors of <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' />. Note that each stack is <em>not</em> a random walk, just a list of neighbors. We refer to the left-most element above as the <em>top</em> of <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%20S_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal S_v}' title='{\mathcal S_v}' class='latex' />, and by <em>popping</em> the stack <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%20S_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal S_v}' title='{\mathcal S_v}' class='latex' /> we mean removing this top vertex from <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%20S_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal S_v}' title='{\mathcal S_v}' class='latex' />.</p>
<p>Define the <em>stack graph</em> <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7B%5Cmathcal%20S%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{\mathcal S}}' title='{G_{\mathcal S}}' class='latex' /> to be the directed graph on <img src='http://s.wordpress.com/latex.php?latex=%7BV%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{V}' title='{V}' class='latex' /> that has an edge from <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7Bu%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u}' title='{u}' class='latex' /> if <img src='http://s.wordpress.com/latex.php?latex=%7Bu%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u}' title='{u}' class='latex' /> is at the top of the stack <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%20S_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal S_v}' title='{\mathcal S_v}' class='latex' />. Clearly, if <img src='http://s.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> has <img src='http://s.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> vertices then <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7B%5Cmathcal%20S%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{\mathcal S}}' title='{G_{\mathcal S}}' class='latex' /> is an oriented subgraph of <img src='http://s.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> with <img src='http://s.wordpress.com/latex.php?latex=%7Bn-1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{n-1}' title='{n-1}' class='latex' /> edges. The following lemma follows immediately.</p>
<blockquote><p><strong>Lemma 1</strong> <em><a name="lemstack_graph"></a> Either <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7B%5Cmathcal%20S%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{\mathcal S}}' title='{G_{\mathcal S}}' class='latex' /> is a directed spanning tree oriented towards <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' /> or it contains a directed cycle. </em></p></blockquote>
<p>If there is a directed cycle <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}' title='{C}' class='latex' /> in <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7B%5Cmathcal%20S%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{\mathcal S}}' title='{G_{\mathcal S}}' class='latex' /> we may pop it by popping <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%20S_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal S_v}' title='{\mathcal S_v}' class='latex' /> for every <img src='http://s.wordpress.com/latex.php?latex=%7Bv%20%5Cin%20C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v \in C}' title='{v \in C}' class='latex' />. This eliminates <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}' title='{C}' class='latex' />, but of course might create other directed cycles. Without resolving this tension quite yet, let us go ahead and formally state the cycle-popping algorithm.</p>
<blockquote><p><strong>Algorithm 2 (Cycle-popping algorithm)</strong> Create a stack <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%20S_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal S_v}' title='{\mathcal S_v}' class='latex' /> for every <img src='http://s.wordpress.com/latex.php?latex=%7Bv%20%5Cneq%20r%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v \neq r}' title='{v \neq r}' class='latex' />. While <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7B%5Cmathcal%20S%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{\mathcal S}}' title='{G_{\mathcal S}}' class='latex' /> contains any directed cycles, pop a cycle from the stacks. If this process ever terminates, output <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7B%5Cmathcal%20S%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{\mathcal S}}' title='{G_{\mathcal S}}' class='latex' />.</p></blockquote>
<p>Note that by the lemma, if the algorithm ever terminates then its output is a spanning tree rooted at <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' />. We claim that the algorithm terminates with probability 1, and moreover generates spanning trees rooted at <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' /> uniformly.</p>
<p>To this end, some more definitions: let us say that given a stack <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%20S_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal S_v}' title='{\mathcal S_v}' class='latex' />, the vertex <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i}' title='{u_i}' class='latex' /> is at <em>level</em> <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}' title='{i}' class='latex' />. The level of a vertex in a stack is static, and is defined when the stack is created. That is, the level of <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i}' title='{u_i}' class='latex' /> does not change even if <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i}' title='{u_i}' class='latex' /> advances to the top of the stack as a result of the stack getting popped.</p>
<p>We regard the sequence of stack graphs produced by the algorithm as <em>leveled</em> stack graphs: each non-root vertex <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> is assigned the level of its stack. Observe that the level of <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> in <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7B%5Cmathcal%20S%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{\mathcal S}}' title='{G_{\mathcal S}}' class='latex' /> is the number of times that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%20S_v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal S_v}' title='{\mathcal S_v}' class='latex' /> has been popped. In the same way, we regard cycles encountered by the algorithm as leveled cycles, and we can regard the tree produced by the algorithm (if indeed one is produced) as a leveled tree.</p>
<p>The analysis of the algorithm relies on the following key lemma (Theorem 4 in Wilson&#8217;s paper), which tells us that the order in which the algorithm pops cycles is irrelevant.</p>
<blockquote><p><strong>Lemma 2</strong> <em><a name="lemcycles_commute"></a> For a given set of stacks, either the cycle-popping algorithm never terminates, or there exists a unique leveled spanning tree <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' /> rooted at <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' /> such that the algorithm outputs <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' /> irrespective of the order in which cycles are popped. </em></p></blockquote>
<p><em>Proof:</em> Fix a set of stacks <img src='http://s.wordpress.com/latex.php?latex=%7B%5C%7B%20%5Cmathcal%20S_v%20%5C%7D_%7Bv%20%5Cneq%20r%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\{ \mathcal S_v \}_{v \neq r}}' title='{\{ \mathcal S_v \}_{v \neq r}}' class='latex' />. Consider a leveled cycle <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}' title='{C}' class='latex' /> that is pop-able, i.e.~there exist leveled cycles <img src='http://s.wordpress.com/latex.php?latex=%7BC_1%2C%20C_2%2C%20%5Cdots%2C%20C_k%3DC%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C_1, C_2, \dots, C_k=C}' title='{C_1, C_2, \dots, C_k=C}' class='latex' /> that can be popped in sequence. We claim that if the algorithm pops any cycle not equal to <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}' title='{C}' class='latex' />, then there still must exist a series of cycles that ends in <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}' title='{C}' class='latex' /> and that can be popped in sequence. In other words, if <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}' title='{C}' class='latex' /> is pop-able then it remains pop-able, no matter which cycles are popped, until <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}' title='{C}' class='latex' /> itself is actually popped.</p>
<p>Let <img src='http://s.wordpress.com/latex.php?latex=%7BC%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C&#039;}' title='{C&#039;}' class='latex' /> be a cycle popped by the algorithm. If <img src='http://s.wordpress.com/latex.php?latex=%7BC%27%3DC_1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C&#039;=C_1}' title='{C&#039;=C_1}' class='latex' /> then the claim is clearly true. Also, if <img src='http://s.wordpress.com/latex.php?latex=%7BC%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C&#039;}' title='{C&#039;}' class='latex' /> shares no vertices with <img src='http://s.wordpress.com/latex.php?latex=%7BC_1%2C%20%5Cdots%2C%20C_k%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C_1, \dots, C_k}' title='{C_1, \dots, C_k}' class='latex' />, then the claim is true again. So assume otherwise, and let <img src='http://s.wordpress.com/latex.php?latex=%7BC_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C_i}' title='{C_i}' class='latex' /> be the first in the series <img src='http://s.wordpress.com/latex.php?latex=%7BC_1%2C%20%5Cdots%2C%20C_k%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C_1, \dots, C_k}' title='{C_1, \dots, C_k}' class='latex' /> to share a vertex with <img src='http://s.wordpress.com/latex.php?latex=%7BC%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C&#039;}' title='{C&#039;}' class='latex' />. Let us show that <img src='http://s.wordpress.com/latex.php?latex=%7BC%27%3DC_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C&#039;=C_i}' title='{C&#039;=C_i}' class='latex' /> by contradiction.</p>
<p>If <img src='http://s.wordpress.com/latex.php?latex=%7BC_i%20%5Cneq%20C%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C_i \neq C&#039;}' title='{C_i \neq C&#039;}' class='latex' />, then <img src='http://s.wordpress.com/latex.php?latex=%7BC_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C_i}' title='{C_i}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BC%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C&#039;}' title='{C&#039;}' class='latex' /> must share a vertex <img src='http://s.wordpress.com/latex.php?latex=%7Bw%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{w}' title='{w}' class='latex' /> that has different successors in <img src='http://s.wordpress.com/latex.php?latex=%7BC%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C&#039;}' title='{C&#039;}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BC_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C_i}' title='{C_i}' class='latex' />. But by definition of <img src='http://s.wordpress.com/latex.php?latex=%7BC_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C_i}' title='{C_i}' class='latex' />, none of the <img src='http://s.wordpress.com/latex.php?latex=%7BC_1%2C%20%5Cdots%2C%20C_%7Bi-1%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C_1, \dots, C_{i-1}}' title='{C_1, \dots, C_{i-1}}' class='latex' /> contain <img src='http://s.wordpress.com/latex.php?latex=%7Bw%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{w}' title='{w}' class='latex' />, and this implies that <img src='http://s.wordpress.com/latex.php?latex=%7Bw%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{w}' title='{w}' class='latex' /> has the same level in <img src='http://s.wordpress.com/latex.php?latex=%7BC%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C&#039;}' title='{C&#039;}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BC_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C_i}' title='{C_i}' class='latex' />. Therefore its successor in both cycles is the same, a contradiction. This proves <img src='http://s.wordpress.com/latex.php?latex=%7BC_i%3DC%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C_i=C&#039;}' title='{C_i=C&#039;}' class='latex' />.</p>
<p>Moreover, the argument above proves that <img src='http://s.wordpress.com/latex.php?latex=%7BC_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C_i}' title='{C_i}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BC%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C&#039;}' title='{C&#039;}' class='latex' /> are equal as <em>leveled</em> cycles (i.e.~every vertex has the same level in both cycles). Hence</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20C%27%3DC_i%2C%20C_1%2C%20C_2%2C%20%5Cdots%2C%20C_%7Bi-1%7D%2C%20C_%7Bi%2B1%7D%2C%20%5Cdots%2C%20C_k%3DC%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  C&#039;=C_i, C_1, C_2, \dots, C_{i-1}, C_{i+1}, \dots, C_k=C ' title='\displaystyle  C&#039;=C_i, C_1, C_2, \dots, C_{i-1}, C_{i+1}, \dots, C_k=C ' class='latex' /></p>
<p>is a series of cycles that can be popped in sequence, which proves the original claim about <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}' title='{C}' class='latex' />.</p>
<p>We conclude that given a set of stacks, either there is an infinite number of pop-able cycles, in which case there will always be an infinite number and the algorithm will never terminate, or there is a finite number of such cycles. In the latter case, every one of these cycles is eventually popped, and the algorithm produces a spanning tree <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' /> rooted at <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' />. The level of each non-root vertex in <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' /> is given by (one plus) the number of popped cycles that contained <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' />. <img src='http://s.wordpress.com/latex.php?latex=%5CBox&#038;bg=T&#038;fg=000000&#038;s=0' alt='\Box' title='\Box' class='latex' /></p>
<p>Wilson summarizes the cycle-popping algorithm thusly: &#8220;[T]he stacks uniquely define a tree together with a partially ordered set of cycles layered on top of it. The algorithm peels off these cycles to find the tree.&#8221;</p>
<blockquote><p><strong>Theorem 3</strong> <em> The cycle-popping algorithm terminates with probability 1, and the tree that it outputs is a uniformly sampled spanning tree rooted at <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' />. </em></p></blockquote>
<p><em>Proof:</em> The first claim is easy: <img src='http://s.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> has a spanning tree, therefore it has a directed spanning tree oriented towards <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' />. The stacks generated in the first step of the algorithm will contain such a tree, and hence the algorithm will terminate, with probability 1.</p>
<p>Now, consider a spanning tree <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' /> rooted at <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' />. We&#8217;ll abuse notation and let <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' /> be the event that <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' /> is produced by the algorithm. Similarly, given a collection of leveled cycles <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%20C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal C}' title='{\mathcal C}' class='latex' />, we will write <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%20C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal C}' title='{\mathcal C}' class='latex' /> for the event that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%20C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal C}' title='{\mathcal C}' class='latex' /> is the set of leveled cycles popped by the algorithm before it terminates. Finally, let <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%20C%20%5Cwedge%20T%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal C \wedge T}' title='{\mathcal C \wedge T}' class='latex' /> be the event that the algorithm popped the leveled cycles in <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%20C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal C}' title='{\mathcal C}' class='latex' /> and terminated, with the resulting <em>leveled</em> tree being equal to <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' />.</p>
<p>By the independence of the stack entries, we have <img src='http://s.wordpress.com/latex.php?latex=%7B%5CPr%5B%5Cmathcal%20C%20%5Cwedge%20T%5D%20%3D%20%5CPr%5B%5Cmathcal%20C%5D%20%5Ccdot%20p%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Pr[\mathcal C \wedge T] = \Pr[\mathcal C] \cdot p}' title='{\Pr[\mathcal C \wedge T] = \Pr[\mathcal C] \cdot p}' class='latex' />, where <img src='http://s.wordpress.com/latex.php?latex=%7Bp%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p}' title='{p}' class='latex' /> is the probability that the algorithm&#8217;s output is a leveled version of <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' />, a quantity which a moment&#8217;s reflection will reveal is independent of <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' />. Now,</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5CPr%5BT%5D%20%3D%20%5Csum_%7B%5Cmathcal%20C%7D%20%5CPr%5B%5Cmathcal%20C%20%5Cwedge%20T%5D%20%3D%20p%20%5Csum_%7B%5Cmathcal%20C%7D%20%5CPr%5B%5Cmathcal%20C%5D%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \Pr[T] = \sum_{\mathcal C} \Pr[\mathcal C \wedge T] = p \sum_{\mathcal C} \Pr[\mathcal C] ' title='\displaystyle  \Pr[T] = \sum_{\mathcal C} \Pr[\mathcal C \wedge T] = p \sum_{\mathcal C} \Pr[\mathcal C] ' class='latex' /></p>
<p>which, as desired, is independent of <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' />. <img src='http://s.wordpress.com/latex.php?latex=%5CBox&#038;bg=T&#038;fg=000000&#038;s=0' alt='\Box' title='\Box' class='latex' /></p>
<p><strong>2. Conclusion </strong></p>
<p>We have shown that the cycle-popping algorithm generates spanning trees rooted at <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' /> uniformly. It remains to observe that the LERW algorithm is nothing more than an implementation of the cycle-popping algorithm! Instead of initially generating the (infinitely long) stacks and then looking for cycles to pop, the LERW generates stack elements as necessary via random walk (computer scientists might recognize this as the Principle of Deferred Decisions). If the LERW encounters a loop, then it has found a cycle in the stack graph <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7B%5Cmathcal%20S%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{\mathcal S}}' title='{G_{\mathcal S}}' class='latex' /> induced by the stacks that the LERW has been generating. Erasing the loop is equivalent to popping this cycle. We conclude that the LERW algorithm generates spanning trees rooted at <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}' title='{r}' class='latex' /> uniformly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/226/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More about hats and auctions</title>
		<link>http://www.bigredbits.com/archives/218</link>
		<comments>http://www.bigredbits.com/archives/218#comments</comments>
		<pubDate>Thu, 29 Oct 2009 05:41:52 +0000</pubDate>
		<dc:creator>renatoppl</dc:creator>
				<category><![CDATA[puzzles]]></category>
		<category><![CDATA[theory]]></category>
		<category><![CDATA[coding theory]]></category>
		<category><![CDATA[mechanism design]]></category>
		<category><![CDATA[profit maximization]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=218</guid>
		<description><![CDATA[In my last post about hats, I told I&#8217;ll soon post another version with some more problems, which I ended up not doing and would talk a bit more about those kind of problems. I ended up not doing, but here are a few nice problems: Those people are again a room, each with a [...]]]></description>
			<content:encoded><![CDATA[<p>In <a class="snap_noshots" href="http://www.bigredbits.com/?p=161">my last post about hats</a>, I told I&#8217;ll soon post another version with some more problems, which I ended up not doing and would talk a bit more about those kind of problems. I ended up not doing, but here are a few nice problems:</p>
<blockquote><p>Those <img src='http://s.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> people are again a room, each with a hat which is either black or white (picked with probability <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' /> at random) and they can see the color of the other people&#8217;s hats but they can&#8217;t see their own color. They write in a piece of paper either &#8220;BLACK&#8221; or &#8220;WHITE&#8221;. The whole team wins if all of them get their colors right. The whole team loses, if at least one writes the wrong color. Before entering the room and getting the hats, they can strategyze. What is a strategy that makes them win with <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' /> probability?</p></blockquote>
<p>If they all choose their colors at random, the probability of winning is very small: <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%5En%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2^n}}' title='{\frac{1}{2^n}}' class='latex' />. So we should try to correlate them somehow. The solution is again related with error correcting codes. We can think of the hats as a string of bits. How to correct one bit if it is lost? The simple engineering solution is to add a parity check. We append to the string <img src='http://s.wordpress.com/latex.php?latex=%7Bx_0%2C%20x_1%2C%20%5Chdots%2C%20x_n%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_0, x_1, \hdots, x_n}' title='{x_0, x_1, \hdots, x_n}' class='latex' /> a bit <img src='http://s.wordpress.com/latex.php?latex=%7By%20%3D%20%5Csum_i%20x_i%20%5Cmod%202%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{y = \sum_i x_i \mod 2}' title='{y = \sum_i x_i \mod 2}' class='latex' />. So, if bit <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}' title='{i}' class='latex' /> is lost, we know it is <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%20%3D%20%28y%20%2B%20%5Csum_%7Bj%20%5Cneq%20i%7D%20x_j%29%20%5Cmod%202%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i = (y + \sum_{j \neq i} x_j) \mod 2}' title='{x_i = (y + \sum_{j \neq i} x_j) \mod 2}' class='latex' />. We can use this idea to solve the puzzle above: if hats are places with <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' /> probability, the parity check will be <img src='http://s.wordpress.com/latex.php?latex=%7B0%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{0}' title='{0}' class='latex' /> with probability <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}' title='{1}' class='latex' /> with probability <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' />. They can decide before hand that everyone will use <img src='http://s.wordpress.com/latex.php?latex=%7By%20%3D%200%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{y = 0}' title='{y = 0}' class='latex' /> and with probability <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' /> they are right and everyone gets his hat color right. Now, let&#8217;s extend this problem in some ways:</p>
<blockquote><p>The same problem, but there are <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}' title='{k}' class='latex' /> hat colors, they are choosen independently with probability <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7Bk%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{k}}' title='{\frac{1}{k}}' class='latex' /> and they win if everyone gets his color right. Find a strategy that wins with probability <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7Bk%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{k}}' title='{\frac{1}{k}}' class='latex' />.</p></blockquote>
<blockquote><p>There are again <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}' title='{k}' class='latex' /> hat colors, they are choosen independently with probability <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7Bk%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{k}}' title='{\frac{1}{k}}' class='latex' /> and they win if at least a fraction <img src='http://s.wordpress.com/latex.php?latex=%7Bf%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f}' title='{f}' class='latex' /> (<img src='http://s.wordpress.com/latex.php?latex=%7B0%20%3C%20f%20%3C%201%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{0 &lt; f &lt; 1}' title='{0 &lt; f &lt; 1}' class='latex' />) of the people guesses the right color. Find a strategy that wins with probability <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7Bfk%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{fk}}' title='{\frac{1}{fk}}' class='latex' />.</p></blockquote>
<blockquote><p>Again to the problem where we just have BLACK and WHITE colors, they are chosen with probability <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' /> and everyone needs to find the right color to win, can you prove that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' /> is the best one can do? And what about the two other problems above?</p></blockquote>
<p>The first two use variations of the parity check idea in the solution. For the second case, given any strategy of the players, for each string <img src='http://s.wordpress.com/latex.php?latex=%7Bx%20%5Cin%20%5C%7B0%2C1%5C%7D%5En%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x \in \{0,1\}^n}' title='{x \in \{0,1\}^n}' class='latex' /> they have probability <img src='http://s.wordpress.com/latex.php?latex=%7Bp_x%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_x}' title='{p_x}' class='latex' />. Therefore the total probability of winning is <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%5En%7D%5Csum_%7Bx%20%5Cin%20%5C%7B0%2C1%5C%7D%5En%7D%20p_x%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2^n}\sum_{x \in \{0,1\}^n} p_x}' title='{\frac{1}{2^n}\sum_{x \in \{0,1\}^n} p_x}' class='latex' />. Let <img src='http://s.wordpress.com/latex.php?latex=%7Bx%27%20%3D%20%281-x_1%2C%20x_2%2C%20%5Chdots%2C%20x_n%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x&#039; = (1-x_1, x_2, \hdots, x_n)}' title='{x&#039; = (1-x_1, x_2, \hdots, x_n)}' class='latex' />, i.e., the same input but with the bit <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}' title='{1}' class='latex' /> flipped. Notice that the answer of player <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}' title='{1}' class='latex' /> is the same (or at least has the same probabilities) in both <img src='http://s.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Bx%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x&#039;}' title='{x&#039;}' class='latex' />, since he can&#8217;t distinguish between <img src='http://s.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Bx%27%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x&#039;}' title='{x&#039;}' class='latex' />. Therefore, <img src='http://s.wordpress.com/latex.php?latex=%7Bp_%7Bx%7D%20%2B%20p_%7Bx%27%7D%20%5Cleq%201%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_{x} + p_{x&#039;} \leq 1}' title='{p_{x} + p_{x&#039;} \leq 1}' class='latex' />. So,</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%202%20%5Cfrac%7B1%7D%7B2%5En%7D%5Csum_%7Bx%20%5Cin%20%5C%7B0%2C1%5C%7D%5En%7D%20p_x%20%3D%20%5Cfrac%7B1%7D%7B2%5En%7D%5Csum_%7Bx%20%5Cin%20%5C%7B0%2C1%5C%7D%5En%7D%20p_x%20%2B%20%5Cfrac%7B1%7D%7B2%5En%7D%5Csum_%7Bx%20%5Cin%20%5C%7B0%2C1%5C%7D%5En%7D%20p_x%27%20%5Cleq%201&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle 2 \frac{1}{2^n}\sum_{x \in \{0,1\}^n} p_x = \frac{1}{2^n}\sum_{x \in \{0,1\}^n} p_x + \frac{1}{2^n}\sum_{x \in \{0,1\}^n} p_x&#039; \leq 1' title='\displaystyle 2 \frac{1}{2^n}\sum_{x \in \{0,1\}^n} p_x = \frac{1}{2^n}\sum_{x \in \{0,1\}^n} p_x + \frac{1}{2^n}\sum_{x \in \{0,1\}^n} p_x&#039; \leq 1' class='latex' /></p>
<p>. This way, no strategy can have more than <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' /> probability of winning.</p>
<p>Another variation of it:</p>
<blockquote><p>Suppose now we have two colors BLACK and WHITE and the hats are drawn from one distribution <img src='http://s.wordpress.com/latex.php?latex=%7BD%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{D}' title='{D}' class='latex' />, i.e., we have a probability distribution over <img src='http://s.wordpress.com/latex.php?latex=%7Bx%20%5Cin%20%5C%7B0%2C1%5C%7D%5En%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x \in \{0,1\}^n}' title='{x \in \{0,1\}^n}' class='latex' /> and we draw the colors from that distribution. Notice that now the hats are not uncorrelated. How to win again with probability <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' /> (to win, everyone needs the right answer).</p></blockquote>
<p>I like a lot those hat problems. A friend of mine just pointed out to me that there is a <a class="snap_noshots" href="http://www.cs.cornell.edu/~rdk/papers/Hats.pdf">very nice paper by Bobby Kleinberg</a> generalizing several aspects of hat problems, for example, when players have limited visibility of other players hats.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-163" title="hats1" src="http://www.bigredbits.com/wp-content/uploads/2009/10/hats1.png" alt="hats1" width="420" height="70" /></p>
<p>I began being interested by this sort of problem after reading the <a class="snap_noshots" href="www.ece.northwestern.edu/~hartline/papers/auctions-STOC-05.ps">Derandomization of Auctions</a> paper. Hat guessing games are not just a good model for error correcting codes, but they are also a good model for truthful auctions. Consider an auction with a set <img src='http://s.wordpress.com/latex.php?latex=%7BN%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{N}' title='{N}' class='latex' /> single parameter agents, i.e., an auction where each player gives one bid <img src='http://s.wordpress.com/latex.php?latex=%7Bb_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_i}' title='{b_i}' class='latex' /> indicating how much he is willing to pay to win. We have a set of constraints: <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BX%7D%20%5Csubseteq%202%5EN%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{X} \subseteq 2^N}' title='{\mathcal{X} \subseteq 2^N}' class='latex' /> of all feasible allocations. Based on the bids <img src='http://s.wordpress.com/latex.php?latex=%7B%28b_i%29_%7Bi%20%5Cin%20N%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(b_i)_{i \in N}}' title='{(b_i)_{i \in N}}' class='latex' /> we choose an allocation <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Cin%20%5Cmathcal%7BX%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \in \mathcal{X}}' title='{S \in \mathcal{X}}' class='latex' /> and we charge payments to the bidders. An example of a problem like this is the Digital Goods Auction, where <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BX%7D%20%3D%202%5EN%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{X} = 2^N}' title='{\mathcal{X} = 2^N}' class='latex' />.</p>
<p>In <a class="snap_noshots" href="http://www.bigredbits.com/?p=151">this blog post</a>, I discussed the concept of truthful auction. If an auction is randomized, an universal truthful auction is an auction that is truthful even if all the random bits in the mechanism are revealed to the bidders. Consider the Digital Goods Auction. We can characterize universal truthful digital goods auction as bid-independent auctions. A bid-independent auction is given by function <img src='http://s.wordpress.com/latex.php?latex=%7Bf_i%28b_%7B-i%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_i(b_{-i})}' title='{f_i(b_{-i})}' class='latex' />, which associated for each <img src='http://s.wordpress.com/latex.php?latex=%7Bb_%7B-i%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_{-i}}' title='{b_{-i}}' class='latex' /> a random variable <img src='http://s.wordpress.com/latex.php?latex=%7Bf_i%28b_%7B-i%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_i(b_{-i})}' title='{f_i(b_{-i})}' class='latex' />. In that auction, we offer the service to player <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}' title='{i}' class='latex' /> at price <img src='http://s.wordpress.com/latex.php?latex=%7Bf_i%28b_%7B-i%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_i(b_{-i})}' title='{f_i(b_{-i})}' class='latex' />. If <img src='http://s.wordpress.com/latex.php?latex=%7Bb_i%20%5Cgeq%20f_i%28b_%7B-i%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_i \geq f_i(b_{-i})}' title='{b_i \geq f_i(b_{-i})}' class='latex' /> we allocate to <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}' title='{i}' class='latex' /> and charge him <img src='http://s.wordpress.com/latex.php?latex=%7Bf_i%28b_%7B-i%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_i(b_{-i})}' title='{f_i(b_{-i})}' class='latex' />. Otherwise, we don&#8217;t allocate and we charge nothing.</p>
<p>It is not hard to see that all universal truthful mechanisms are like that: if <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%28b_i%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i(b_i)}' title='{x_i(b_i)}' class='latex' /> is the probability that player <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}' title='{i}' class='latex' /> gets the item bidding <img src='http://s.wordpress.com/latex.php?latex=%7Bb_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_i}' title='{b_i}' class='latex' /> let <img src='http://s.wordpress.com/latex.php?latex=%7BU%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{U}' title='{U}' class='latex' /> be an uniform random variable on <img src='http://s.wordpress.com/latex.php?latex=%7B%5B0%2C1%5D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{[0,1]}' title='{[0,1]}' class='latex' /> and define <img src='http://s.wordpress.com/latex.php?latex=%7Bf_i%28b_%7B-i%7D%29%20%3D%20x_i%5E%7B-1%7D%28U%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_i(b_{-i}) = x_i^{-1}(U)}' title='{f_i(b_{-i}) = x_i^{-1}(U)}' class='latex' />. Notice that here <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%28.%29%20%3D%20x_i%28.%2C%20b_%7B-i%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i(.) = x_i(., b_{-i})}' title='{x_i(.) = x_i(., b_{-i})}' class='latex' />, but we are inverting with respect to <img src='http://s.wordpress.com/latex.php?latex=%7Bb_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_i}' title='{b_i}' class='latex' />. It is a simple exercise to prove that.</p>
<p>With this characterization, universal truthful auctions suddenly look very much like hat guessing games: we need to design a function that looks at everyone else&#8217;s bid but not on our own and in some sense, &#8220;guesses&#8221; what we probably have and with that calculated the price we offer. It would be great to be able to design a function that returns <img src='http://s.wordpress.com/latex.php?latex=%7Bf%28b_%7B-i%7D%29%20%3D%20b_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f(b_{-i}) = b_i}' title='{f(b_{-i}) = b_i}' class='latex' />. That is unfortunately impossible. But how to approximate <img src='http://s.wordpress.com/latex.php?latex=%7Bb_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_i}' title='{b_i}' class='latex' /> nicely? Some papers, like the <a class="snap_noshots" href="www.ece.northwestern.edu/~hartline/papers/auctions-STOC-05.ps">Derandomization of Auctions</a> and <a class="snap_noshots" href="www.avglab.com/andrew/pub/soda03.ps">Competitiveness via Consensus</a> use this idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/218/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cayley-Hamilton Theorem and Jordan Canonical Form</title>
		<link>http://www.bigredbits.com/archives/215</link>
		<comments>http://www.bigredbits.com/archives/215#comments</comments>
		<pubDate>Thu, 29 Oct 2009 04:17:15 +0000</pubDate>
		<dc:creator>renatoppl</dc:creator>
				<category><![CDATA[theory]]></category>
		<category><![CDATA[finite fields]]></category>
		<category><![CDATA[linear algebra]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=215</guid>
		<description><![CDATA[I was discussing last week with my officemates Hu Fu and Ashwin about the Cayley-Hamilton Theorem. The theorem is the following, given an matrix we can define its characteristic polynomial by . The Cayley-Hamilton Theorem says that . The polynomiale is something like: so we can just see it as a formal polynomial and think [...]]]></description>
			<content:encoded><![CDATA[<p>
I was discussing last week with my officemates Hu Fu and Ashwin about the Cayley-Hamilton Theorem. The theorem is the following, given an <img src='http://s.wordpress.com/latex.php?latex=%7Bn%20%5Ctimes%20n%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{n \times n}&amp;fg=000000' title='{n \times n}&amp;fg=000000' class='latex' /> matrix <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}&amp;fg=000000' title='{A}&amp;fg=000000' class='latex' /> we can define its characteristic polynomial by <img src='http://s.wordpress.com/latex.php?latex=%7Bp_A%28%5Clambda%29%20%3D%20%5Cdet%28A%20-%20I%5Clambda%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_A(\lambda) = \det(A - I\lambda)}&amp;fg=000000' title='{p_A(\lambda) = \det(A - I\lambda)}&amp;fg=000000' class='latex' />. The Cayley-Hamilton Theorem says that <img src='http://s.wordpress.com/latex.php?latex=%7Bp_A%28A%29%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_A(A) = 0}&amp;fg=000000' title='{p_A(A) = 0}&amp;fg=000000' class='latex' />. The polynomiale is something like:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20p_A%28x%29%20%3D%20a_k%20x%5Ek%20%2B%20a_%7Bk-1%7D%20x%5E%7Bk-1%7D%20%2B%20%5Chdots%20%2B%20a_1%20x%5E1%20%2B%20a_0%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle p_A(x) = a_k x^k + a_{k-1} x^{k-1} + \hdots + a_1 x^1 + a_0&amp;fg=000000' title='\displaystyle p_A(x) = a_k x^k + a_{k-1} x^{k-1} + \hdots + a_1 x^1 + a_0&amp;fg=000000' class='latex' /></p>
<p> so we can just see it as a formal polynomial and think of:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20p_A%28A%29%20%3D%20a_k%20A%5Ek%20%2B%20a_%7Bk-1%7D%20A%5E%7Bk-1%7D%20%2B%20%5Chdots%20%2B%20a_1%20A%20%2B%20a_0%20I%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle p_A(A) = a_k A^k + a_{k-1} A^{k-1} + \hdots + a_1 A + a_0 I&amp;fg=000000' title='\displaystyle p_A(A) = a_k A^k + a_{k-1} A^{k-1} + \hdots + a_1 A + a_0 I&amp;fg=000000' class='latex' /></p>
<p> which is an <img src='http://s.wordpress.com/latex.php?latex=%7Bn%20%5Ctimes%20n%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{n \times n}&amp;fg=000000' title='{n \times n}&amp;fg=000000' class='latex' /> matrix. The theorem says it is the zero matrix. We thought for a while, looked in the <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Cayley_hamilton_theorem">Wikipedia</a>, and there there were a few proofs, but not the one-line proof I was looking for. Later, I got this proof that I sent to Hu Fu:</p>
<p>
Write the matrix <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}&amp;fg=000000' title='{A}&amp;fg=000000' class='latex' /> in the basis of its eigenvectors, then we can write <img src='http://s.wordpress.com/latex.php?latex=%7BA%20%3D%20%5CGamma%5Et%20D%20%5CGamma%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A = \Gamma^t D \Gamma}&amp;fg=000000' title='{A = \Gamma^t D \Gamma}&amp;fg=000000' class='latex' /> where <img src='http://s.wordpress.com/latex.php?latex=%7BD%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{D}&amp;fg=000000' title='{D}&amp;fg=000000' class='latex' /> is the diagonal matrix with the eigenvalues in the main diagonal.
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20A%5Ek%20%3D%20%28%5CGamma%5Et%20D%20%5CGamma%29%20%5Chdots%20%28%5CGamma%5Et%20D%20%5CGamma%29%20%3D%20%5CGamma%5Et%20D%5Ek%20%5CGamma%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle A^k = (\Gamma^t D \Gamma) \hdots (\Gamma^t D \Gamma) = \Gamma^t D^k \Gamma&amp;fg=000000' title='\displaystyle A^k = (\Gamma^t D \Gamma) \hdots (\Gamma^t D \Gamma) = \Gamma^t D^k \Gamma&amp;fg=000000' class='latex' /></p>
<p> and since <img src='http://s.wordpress.com/latex.php?latex=%7BD%20%3D%20%5Ctext%7Bdiag%7D%28%5Clambda_1%2C%20%5Chdots%2C%20%5Clambda_n%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{D = \text{diag}(\lambda_1, \hdots, \lambda_n)}&amp;fg=000000' title='{D = \text{diag}(\lambda_1, \hdots, \lambda_n)}&amp;fg=000000' class='latex' /> we have <img src='http://s.wordpress.com/latex.php?latex=%7BD%5Ek%20%3D%20%5Ctext%7Bdiag%7D%28%5Clambda_1%5Ek%2C%20%5Chdots%2C%20%5Clambda_n%5Ek%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{D^k = \text{diag}(\lambda_1^k, \hdots, \lambda_n^k)}&amp;fg=000000' title='{D^k = \text{diag}(\lambda_1^k, \hdots, \lambda_n^k)}&amp;fg=000000' class='latex' />. Now, it is simple to see that:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20p_A%28A%29%20%3D%20%5CGamma%5Et%20p%28D%29%20%5CGamma%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle p_A(A) = \Gamma^t p(D) \Gamma&amp;fg=000000' title='\displaystyle p_A(A) = \Gamma^t p(D) \Gamma&amp;fg=000000' class='latex' /></p>
<p> and therefore:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20p%28D%29%20%3D%20%5Cbegin%7Bbmatrix%7D%26%20p_A%28%5Clambda_1%29%20%26%20%26%20%26%20%5C%5C%20%26%20%26%20p_A%28%5Clambda_2%29%20%26%20%26%20%26%20%5C%5C%20%26%20%26%20%26%20%5Cddots%20%26%20%5C%5C%20%26%20%26%20%26%20%26%20p_A%28%5Clambda_n%29%20%5Cend%7Bbmatrix%7D%20%3D%20%5Cbegin%7Bbmatrix%7D%20%26%200%20%26%20%26%20%26%20%5C%5C%20%26%20%26%200%20%26%20%26%20%26%20%5C%5C%20%26%20%26%20%26%20%5Cddots%20%26%20%5C%5C%20%26%20%26%20%26%20%26%200%20%5Cend%7Bbmatrix%7D%20%3D%200%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle p(D) = \begin{bmatrix}&amp; p_A(\lambda_1) &amp; &amp; &amp; \\ &amp; &amp; p_A(\lambda_2) &amp; &amp; &amp; \\ &amp; &amp; &amp; \ddots &amp; \\ &amp; &amp; &amp; &amp; p_A(\lambda_n) \end{bmatrix} = \begin{bmatrix} &amp; 0 &amp; &amp; &amp; \\ &amp; &amp; 0 &amp; &amp; &amp; \\ &amp; &amp; &amp; \ddots &amp; \\ &amp; &amp; &amp; &amp; 0 \end{bmatrix} = 0&amp;fg=000000' title='\displaystyle p(D) = \begin{bmatrix}&amp; p_A(\lambda_1) &amp; &amp; &amp; \\ &amp; &amp; p_A(\lambda_2) &amp; &amp; &amp; \\ &amp; &amp; &amp; \ddots &amp; \\ &amp; &amp; &amp; &amp; p_A(\lambda_n) \end{bmatrix} = \begin{bmatrix} &amp; 0 &amp; &amp; &amp; \\ &amp; &amp; 0 &amp; &amp; &amp; \\ &amp; &amp; &amp; \ddots &amp; \\ &amp; &amp; &amp; &amp; 0 \end{bmatrix} = 0&amp;fg=000000' class='latex' /></p>
<p>
And that was the one-line proof. One even simpler proof is: let <img src='http://s.wordpress.com/latex.php?latex=%7Bv_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_i}&amp;fg=000000' title='{v_i}&amp;fg=000000' class='latex' /> be the eigenvectors, then <img src='http://s.wordpress.com/latex.php?latex=%7Bp_A%28A%29v_i%20%3D%20p_A%28%5Clambda_i%29A%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_A(A)v_i = p_A(\lambda_i)A = 0}&amp;fg=000000' title='{p_A(A)v_i = p_A(\lambda_i)A = 0}&amp;fg=000000' class='latex' />, so <img src='http://s.wordpress.com/latex.php?latex=%7Bp_A%28A%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_A(A)}&amp;fg=000000' title='{p_A(A)}&amp;fg=000000' class='latex' /> must be <img src='http://s.wordpress.com/latex.php?latex=%7B0%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{0}&amp;fg=000000' title='{0}&amp;fg=000000' class='latex' /> since it returns zero for all elements of a basis. Well, I sent that to Hu Fu and he told me the proof had a bug. Not really a bug, but I was proving only for symmetric matrices. More generally, I was proving for diagonalizable matrices. He showed me, for example, the matrix:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Cbegin%7Bbmatrix%7D%200%20%26%201%20%5C%5C%200%20%26%200%20%5Cend%7Bbmatrix%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \begin{bmatrix} 0 &amp; 1 \\ 0 &amp; 0 \end{bmatrix}&amp;fg=000000' title='\displaystyle  \begin{bmatrix} 0 &amp; 1 \\ 0 &amp; 0 \end{bmatrix}&amp;fg=000000' class='latex' /></p>
<p> which has only one eigenvalue <img src='http://s.wordpress.com/latex.php?latex=%7B0%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{0}&amp;fg=000000' title='{0}&amp;fg=000000' class='latex' /> and the the eigenvectors are all of the form <img src='http://s.wordpress.com/latex.php?latex=%7B%28x%2C0%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(x,0)}&amp;fg=000000' title='{(x,0)}&amp;fg=000000' class='latex' /> for <img src='http://s.wordpress.com/latex.php?latex=%7Bx%20%5Cin%20%7B%5Cmathbb%20R%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x \in {\mathbb R}}&amp;fg=000000' title='{x \in {\mathbb R}}&amp;fg=000000' class='latex' />. So, the dimension of the space spanned by the eigenvectors is <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}&amp;fg=000000' title='{1}&amp;fg=000000' class='latex' />, less than the dimension of the matrix. This never happens for symmetric matrices, and I guess after some time as a computer scientist, I got used to work only with symmetric matrices for almost everything I use: metrics, quadratic forms, correlation matrices, &#8230; but there is more out there then only symmetric matrices. The good news is that this proof is not hard to fix for the general case.</p>
<p>
First, it is easy to prove that for each root of the characteristic polynomial there is one eigenvector associated to it (just see that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cdet%28A%20-%20%5Clambda%20I%29%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\det(A - \lambda I) = 0}&amp;fg=000000' title='{\det(A - \lambda I) = 0}&amp;fg=000000' class='latex' /> and therefore there must be <img src='http://s.wordpress.com/latex.php?latex=%7Bv%20%5Cin%20%5Cker%28A%20-%20%5Clambda%20I%29%20%5Csetminus%20%5C%7B%200%20%5C%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v \in \ker(A - \lambda I) \setminus \{ 0 \}}&amp;fg=000000' title='{v \in \ker(A - \lambda I) \setminus \{ 0 \}}&amp;fg=000000' class='latex' />, so if all the roots are distinct, then there is a basis of eigenvalues, and therefore the matrix is diagonalizable (notice that maybe we will need to use complex eigenvalues, but it is ok). The good thing is that a matrix having two identical eigenvalues is a &#8220;coincidence&#8221;. We can identify matrices with <img src='http://s.wordpress.com/latex.php?latex=%7B%7B%5Cmathbb%20R%7D%5E%7Bn%5E2%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{{\mathbb R}^{n^2}}&amp;fg=000000' title='{{\mathbb R}^{n^2}}&amp;fg=000000' class='latex' />. The matrices with identical eigenvalues form a zero measure subset of <img src='http://s.wordpress.com/latex.php?latex=%7B%7B%5Cmathbb%20R%7D%5E%7Bn%5E2%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{{\mathbb R}^{n^2}}&amp;fg=000000' title='{{\mathbb R}^{n^2}}&amp;fg=000000' class='latex' />, they are in fact the roots of a polynomial in <img src='http://s.wordpress.com/latex.php?latex=%7Bx_%7Bij%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_{ij}}&amp;fg=000000' title='{x_{ij}}&amp;fg=000000' class='latex' />. This polynomial is the <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Resultant">resultant polynomial</a> <img src='http://s.wordpress.com/latex.php?latex=%7BR_%7Bp%2Cp%27%7D%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{R_{p,p&#039;} = 0}&amp;fg=000000' title='{R_{p,p&#039;} = 0}&amp;fg=000000' class='latex' />. Therefore, we proved Cayley-Hamilton theorem in the complement of a zero-measure set in <img src='http://s.wordpress.com/latex.php?latex=%7B%7B%5Cmathbb%20R%7D%5E%7Bn%5E2%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{{\mathbb R}^{n^2}}&amp;fg=000000' title='{{\mathbb R}^{n^2}}&amp;fg=000000' class='latex' />. Since <img src='http://s.wordpress.com/latex.php?latex=%7BA%20%5Cmapsto%20p_A%28A%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A \mapsto p_A(A)}&amp;fg=000000' title='{A \mapsto p_A(A)}&amp;fg=000000' class='latex' /> is a continuous function, it extends naturally to all matrices <img src='http://s.wordpress.com/latex.php?latex=%7BA%20%5Cin%20%7B%5Cmathbb%20R%7D%5E%7Bn%5E2%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A \in {\mathbb R}^{n^2}}&amp;fg=000000' title='{A \in {\mathbb R}^{n^2}}&amp;fg=000000' class='latex' />.</p>
<p>
We can also interpret that probabilistically: get a matrix <img src='http://s.wordpress.com/latex.php?latex=%7BU%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{U}&amp;fg=000000' title='{U}&amp;fg=000000' class='latex' /> where <img src='http://s.wordpress.com/latex.php?latex=%7BU_%7Bij%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{U_{ij}}&amp;fg=000000' title='{U_{ij}}&amp;fg=000000' class='latex' /> is taken uniformly at random from <img src='http://s.wordpress.com/latex.php?latex=%7B%5B0%2C1%5D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{[0,1]}&amp;fg=000000' title='{[0,1]}&amp;fg=000000' class='latex' />. Then <img src='http://s.wordpress.com/latex.php?latex=%7BA%20%2B%20%5Cepsilon%20U%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A + \epsilon U}&amp;fg=000000' title='{A + \epsilon U}&amp;fg=000000' class='latex' /> has with probability <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}&amp;fg=000000' title='{1}&amp;fg=000000' class='latex' /> all different eigenvalues. So, <img src='http://s.wordpress.com/latex.php?latex=%7Bp_%7BA%2B%5Cepsilon%20U%7D%20%28A%2B%5Cepsilon%20U%29%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_{A+\epsilon U} (A+\epsilon U) = 0}&amp;fg=000000' title='{p_{A+\epsilon U} (A+\epsilon U) = 0}&amp;fg=000000' class='latex' /> with probability <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}&amp;fg=000000' title='{1}&amp;fg=000000' class='latex' />. Now, just make <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cepsilon%20%5Crightarrow%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\epsilon \rightarrow 0}&amp;fg=000000' title='{\epsilon \rightarrow 0}&amp;fg=000000' class='latex' />.</p>
<p>
Ok, this proves the Theorem for real and complex matrices, but what about a matrix defined over a general field where we can&#8217;t use those continuity arguments. A way to get around it is by using <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Jordan_canonical_form">Jordan Canonical Form</a>, which is a generalization of eigenvector decomposition. Not all matrices have eigenvector decomposition, but all matrices over an algebraic closed field can be written in Jordan Canonical Form. Given any <img src='http://s.wordpress.com/latex.php?latex=%7BA%20%5Cin%20%5Coverline%7BK%7D%5E%7Bn%5E2%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A \in \overline{K}^{n^2}}&amp;fg=000000' title='{A \in \overline{K}^{n^2}}&amp;fg=000000' class='latex' /> there is a matrix <img src='http://s.wordpress.com/latex.php?latex=%7B%5CGamma%20%5Cin%20%5Coverline%7BK%7D%5E%7Bn%5E2%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Gamma \in \overline{K}^{n^2}}&amp;fg=000000' title='{\Gamma \in \overline{K}^{n^2}}&amp;fg=000000' class='latex' /> so that:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20A%20%3D%20%5CGamma%5E%7B-1%7D%20%5Cbegin%7Bbmatrix%7D%26%20B_1%20%26%20%26%20%26%20%5C%5C%20%26%20%26%20B_2%20%26%20%26%20%26%20%5C%5C%20%26%20%26%20%26%20%5Cddots%20%26%20%5C%5C%20%26%20%26%20%26%20%26%20B_p%20%5Cend%7Bbmatrix%7D%5CGamma%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle A = \Gamma^{-1} \begin{bmatrix}&amp; B_1 &amp; &amp; &amp; \\ &amp; &amp; B_2 &amp; &amp; &amp; \\ &amp; &amp; &amp; \ddots &amp; \\ &amp; &amp; &amp; &amp; B_p \end{bmatrix}\Gamma&amp;fg=000000' title='\displaystyle A = \Gamma^{-1} \begin{bmatrix}&amp; B_1 &amp; &amp; &amp; \\ &amp; &amp; B_2 &amp; &amp; &amp; \\ &amp; &amp; &amp; \ddots &amp; \\ &amp; &amp; &amp; &amp; B_p \end{bmatrix}\Gamma&amp;fg=000000' class='latex' /></p>
<p> where <img src='http://s.wordpress.com/latex.php?latex=%7BB_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{B_i}&amp;fg=000000' title='{B_i}&amp;fg=000000' class='latex' /> are blocks of the form:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20B_i%20%3D%20%5Cbegin%7Bbmatrix%7D%26%20%5Clambda%20%26%201%20%26%20%26%20%5C%5C%20%26%20%26%20%5Clambda%20%26%201%20%26%20%26%20%5C%5C%20%26%20%26%20%26%20%5Cddots%20%26%20%5C%5C%20%26%20%26%20%26%20%26%20%5Clambda%20%5Cend%7Bbmatrix%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle B_i = \begin{bmatrix}&amp; \lambda &amp; 1 &amp; &amp; \\ &amp; &amp; \lambda &amp; 1 &amp; &amp; \\ &amp; &amp; &amp; \ddots &amp; \\ &amp; &amp; &amp; &amp; \lambda \end{bmatrix}&amp;fg=000000' title='\displaystyle B_i = \begin{bmatrix}&amp; \lambda &amp; 1 &amp; &amp; \\ &amp; &amp; \lambda &amp; 1 &amp; &amp; \\ &amp; &amp; &amp; \ddots &amp; \\ &amp; &amp; &amp; &amp; \lambda \end{bmatrix}&amp;fg=000000' class='latex' /></p>
<p> By the same argument as above, we just need to prove Cayley Hamilton for each block in separate. So we need to prove that <img src='http://s.wordpress.com/latex.php?latex=%7Bp_A%28B_i%29%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_A(B_i) = 0}&amp;fg=000000' title='{p_A(B_i) = 0}&amp;fg=000000' class='latex' />. If the block has size <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}&amp;fg=000000' title='{1}&amp;fg=000000' class='latex' />, then it is exacly the proof above. If the block is bigger, then we need to look at how does <img src='http://s.wordpress.com/latex.php?latex=%7BB_i%5Ek%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{B_i^k}&amp;fg=000000' title='{B_i^k}&amp;fg=000000' class='latex' /> looks like. By inspection:</p>
<p><p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20B_i%5E2%20%3D%20%5Cbegin%7Bbmatrix%7D%26%20%5Clambda%5E2%20%26%202%20%5Clambda%20%26%201%20%26%20%26%20%26%20%5C%5C%20%26%20%26%20%5Clambda%5E2%20%26%202%20%5Clambda%20%26%201%20%26%20%26%20%26%20%5C%5C%20%26%20%26%20%26%20%26%20%26%20%5Cddots%20%26%20%5C%5C%20%26%20%26%20%26%20%26%20%26%20%5Clambda%5E2%20%5Cend%7Bbmatrix%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle B_i^2 = \begin{bmatrix}&amp; \lambda^2 &amp; 2 \lambda &amp; 1 &amp; &amp; &amp; \\ &amp; &amp; \lambda^2 &amp; 2 \lambda &amp; 1 &amp; &amp; &amp; \\ &amp; &amp; &amp; &amp; &amp; \ddots &amp; \\ &amp; &amp; &amp; &amp; &amp; \lambda^2 \end{bmatrix}&amp;fg=000000' title='\displaystyle B_i^2 = \begin{bmatrix}&amp; \lambda^2 &amp; 2 \lambda &amp; 1 &amp; &amp; &amp; \\ &amp; &amp; \lambda^2 &amp; 2 \lambda &amp; 1 &amp; &amp; &amp; \\ &amp; &amp; &amp; &amp; &amp; \ddots &amp; \\ &amp; &amp; &amp; &amp; &amp; \lambda^2 \end{bmatrix}&amp;fg=000000' class='latex' /></p>
<p>
Tipically, for <img src='http://s.wordpress.com/latex.php?latex=%7BB_i%5Ek%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{B_i^k}&amp;fg=000000' title='{B_i^k}&amp;fg=000000' class='latex' /> we have in each row, starting in column <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}&amp;fg=000000' title='{k}&amp;fg=000000' class='latex' /> the sequence <img src='http://s.wordpress.com/latex.php?latex=%7B%5Clambda%5Ek%2C%20k%20%5Clambda%5E%7Bk-1%7D%2C%20k%28k-1%29%20%5Clambda%5E%7Bk-1%7D%2C%20%5Chdots%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\lambda^k, k \lambda^{k-1}, k(k-1) \lambda^{k-1}, \hdots}&amp;fg=000000' title='{\lambda^k, k \lambda^{k-1}, k(k-1) \lambda^{k-1}, \hdots}&amp;fg=000000' class='latex' />, i.e., <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7Bd%5E0%7D%7Bd%5Clambda%5E0%7D%20%5Clambda%5Ek%2C%20%5Cfrac%7Bd%5E1%7D%7Bd%5Clambda%5E1%7D%20%5Clambda%5Ek%20%2C%20%5Cfrac%7Bd%5E2%7D%7Bd%5Clambda%5E2%7D%20%5Clambda%5Ek%20%5Chdots%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{d^0}{d\lambda^0} \lambda^k, \frac{d^1}{d\lambda^1} \lambda^k , \frac{d^2}{d\lambda^2} \lambda^k \hdots}&amp;fg=000000' title='{\frac{d^0}{d\lambda^0} \lambda^k, \frac{d^1}{d\lambda^1} \lambda^k , \frac{d^2}{d\lambda^2} \lambda^k \hdots}&amp;fg=000000' class='latex' />. So, we have
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20p%28B_i%29%20%3D%20%5Cbegin%7Bbmatrix%7D%20p%28%5Clambda%29%20%26%20p%27%28%5Clambda%29%20%26%20p%27%27%28%5Clambda%29%20%26%20p%27%27%27%28%5Clambda%29%20%26%20%5Chdots%20%5C%5C%20%26%20p%28%5Clambda%29%20%26%20p%27%28%5Clambda%29%20%26%20p%27%27%28%5Clambda%29%20%26%20%5Chdots%20%5C%5C%20%09%09%09%09%26%20%26%20p%28%5Clambda%29%20%26%20p%27%28%5Clambda%29%20%26%20%5Chdots%20%5C%5C%20%09%09%09%09%26%20%26%20%26%20p%28%5Clambda%29%20%26%20%5Chdots%20%5C%5C%20%09%09%09%09%26%20%26%20%26%20%26%20%5Cddots%20%5C%5C%20%5Cend%7Bbmatrix%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle p(B_i) = \begin{bmatrix} p(\lambda) &amp; p&#039;(\lambda) &amp; p&#039;&#039;(\lambda) &amp; p&#039;&#039;&#039;(\lambda) &amp; \hdots \\ &amp; p(\lambda) &amp; p&#039;(\lambda) &amp; p&#039;&#039;(\lambda) &amp; \hdots \\ 				&amp; &amp; p(\lambda) &amp; p&#039;(\lambda) &amp; \hdots \\ 				&amp; &amp; &amp; p(\lambda) &amp; \hdots \\ 				&amp; &amp; &amp; &amp; \ddots \\ \end{bmatrix}&amp;fg=000000' title='\displaystyle p(B_i) = \begin{bmatrix} p(\lambda) &amp; p&#039;(\lambda) &amp; p&#039;&#039;(\lambda) &amp; p&#039;&#039;&#039;(\lambda) &amp; \hdots \\ &amp; p(\lambda) &amp; p&#039;(\lambda) &amp; p&#039;&#039;(\lambda) &amp; \hdots \\ 				&amp; &amp; p(\lambda) &amp; p&#039;(\lambda) &amp; \hdots \\ 				&amp; &amp; &amp; p(\lambda) &amp; \hdots \\ 				&amp; &amp; &amp; &amp; \ddots \\ \end{bmatrix}&amp;fg=000000' class='latex' /></p>
<p>
If block <img src='http://s.wordpress.com/latex.php?latex=%7BB_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{B_i}&amp;fg=000000' title='{B_i}&amp;fg=000000' class='latex' /> has size <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}&amp;fg=000000' title='{k}&amp;fg=000000' class='latex' />, then <img src='http://s.wordpress.com/latex.php?latex=%7B%5Clambda_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\lambda_i}&amp;fg=000000' title='{\lambda_i}&amp;fg=000000' class='latex' /> has multiplicity <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}&amp;fg=000000' title='{k}&amp;fg=000000' class='latex' /> in <img src='http://s.wordpress.com/latex.php?latex=%7Bp%28.%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p(.)}&amp;fg=000000' title='{p(.)}&amp;fg=000000' class='latex' /> and therefore <img src='http://s.wordpress.com/latex.php?latex=%7Bp%28%5Clambda_i%29%20%3D%20p%27%28%5Clambda_i%29%20%3D%20%5Chdots%20%3D%20p%5E%7B%28k-1%29%7D%28%5Clambda_i%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p(\lambda_i) = p&#039;(\lambda_i) = \hdots = p^{(k-1)}(\lambda_i)}&amp;fg=000000' title='{p(\lambda_i) = p&#039;(\lambda_i) = \hdots = p^{(k-1)}(\lambda_i)}&amp;fg=000000' class='latex' /> and therefore, <img src='http://s.wordpress.com/latex.php?latex=%7Bp%28B_i%29%20%3D%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p(B_i) = 0}&amp;fg=000000' title='{p(B_i) = 0}&amp;fg=000000' class='latex' /> as we wanted to prove.</p>
<p>
It turned out not to be a very very short proof, but it is still short, since it uses mostly elementary stuff and the proof is really intuitive in some sense. I took some lessons from that: (i) first it reinforces my idea that, if I need to say something about a matrix, the first thing I do is to look at its eigenvectors decomposition. A lot of Linear Algebra problems are very simple when we consider things in the right basis. Normally the right basis is the eigenvector basis. (ii) not all matrices are diagonalizable. But in those cases, Jordan Canonical Form comes in our help and we can do almost the same as we did with eigenvalue decomposition.</p>
<p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/215/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[LADIS 2009] Technical Session #4 &#8211; Monitoring and Repair</title>
		<link>http://www.bigredbits.com/archives/208</link>
		<comments>http://www.bigredbits.com/archives/208#comments</comments>
		<pubDate>Sun, 11 Oct 2009 22:33:57 +0000</pubDate>
		<dc:creator>hussam</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Live Blogging]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=208</guid>
		<description><![CDATA[Second Talk: A case for the accountable cloud by Andreas Haeberlen Three cloud stories .. a threatening cloud, a promising cloud, and a nice cloud The problem with current clouds is that the user does not know what the cloud service provider is doing with the customer&#8217;s code and data. Also, from the cloud service [...]]]></description>
			<content:encoded><![CDATA[<p>Second Talk: <strong><u>A case for the accountable cloud</u></strong> by Andreas Haeberlen</p>
<p>Three cloud stories .. a threatening cloud, a promising cloud, and a nice cloud <img src='http://www.bigredbits.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The problem with current clouds is that the user does not know what the cloud service provider is doing with the customer&#8217;s code and data. Also, from the cloud service provider&#8217;s perspective, the operator does not know what is the code that they are running for customers supposed to do.</p>
<p>Alice is the customer running a service on the cloud owned and operated by Bob.</p>
<p>A solution: what if we had an oracle that Alice and Bob could ask about cloud problems? We want completeness, (if something is faulty, we will know) accuracy (no false positives), verifiability (the oracle can prove its diagnoses is correct).</p>
<p>Idea: make clud accountable to alice+bob. Cloud records its actions in a tamper-evident log, alice and bob can audit, use log to construct evidence that a fault does or does not exist.</p>
<p>Discussion: 1) Isn&#8217;t this too pessimistic? bob isn&#8217;t malicious ..maybe, but bob can get hacked, or things can just go wrong. 2) shouldn&#8217;t bob use fault tolerance instead? yes whenever we can, but masking faults is never perfect, we still need to check. 3) why would a provider want to deploy this? this feature will be attractive to prospective customers, and helpful for support. 4) Are these the right guarantees? completeness (no false negatives), could be relaxed with probabilistic completeness; verifiability could be relaxed only provide some evidence; accuracy (no false positives) can not be relaxed because we need to have confidence when we rule out problems.</p>
<p>A call to action: cloud accountability should do; deliverable provable guarantees, work for most cloud apps, require no changes to application code, cover a wide spectrum of properties, low overhead.</p>
<p>Work in Progress: Accountable Virtual Machines (AVM), goal: provide accountability for arbitrary unmodified software. cloud records enough data to enable deterministic replay, alice can replay log with a known-good copy of the software, can audit any part of the original execution.</p>
<p>Conclusion: current cloud designs carry risks for both customers and providers (mainly because of split administration problem). Proposed solution: accountable cloud. Lots of research opportunities.</p>
<p>Third Talk: <strong><u>Learning from the Past for Resolving Dilemmas of Asynchrony</u></strong> by Paul Ezhilchelvan</p>
<p>In an asynchronous model you can not bound message delivery time or even message processing time by a machine. However, in a probabilistic synchronous model, we can bound times within a certain probability via proactive measurements. The new central hypothesis of the new model is that most of the time, performance of the past is indicative of the performance of the near future (i.e. delay in the past is the indicative of delay in the future).</p>
<p>Design steps include doing proactive measurements, using them to establish synchrony bounds, and assign time bounds based on that, try that and see how it works and enable exceptions.</p>
<p>On-going work: development of exceptions (to deal with exceptional cases when mistakes are detected). Open environments are asynchronous, use crash signals for notification of extreme unexpected behavior.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/208/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[LADIS 2009] Technical Session #5 &#8211; Communication</title>
		<link>http://www.bigredbits.com/archives/210</link>
		<comments>http://www.bigredbits.com/archives/210#comments</comments>
		<pubDate>Sun, 11 Oct 2009 20:37:11 +0000</pubDate>
		<dc:creator>hussam</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Live Blogging]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=210</guid>
		<description><![CDATA[First Talk: Bulletin Board: A Scalable and Robust Eventually Consistent Shared Memory over a Peer-to-Peer Overlay by Gregory Chockler WebSphere Virtual Enterprise (WVE) is a product for managing resources in a data center. The product is a distributed system whose nodes and controllers need to communicate and share information, and BulletinBoard (BB) is used for [...]]]></description>
			<content:encoded><![CDATA[<p>First Talk: <strong><u>Bulletin Board: A Scalable and Robust Eventually Consistent Shared Memory over a Peer-to-Peer Overlay</u></strong> by Gregory Chockler</p>
<p>WebSphere Virtual Enterprise (WVE) is a product for managing resources in a data center. The product is a distributed system whose nodes and controllers need to communicate and share information, and BulletinBoard (BB) is used for that. BB is a platform service for facilitating group-based information sharing in a data center. It is critical component of WVE, and its primary application is monitoring and control, but the designers believe that it could be useful for other weakly consistent services.</p>
<p>Motivation &amp; Contribution: Prior implementation of group communication implemented internall as not designed to grow 10 folds, and that was based on Virtual Synchronous group communication; robustness, stability, high runtime overheads as the system grew beyond several 100s of processes; static hierarchy introduced configuration problems. So the goal was to provide a new implementation to resolve the scaling and stability issues of the prior implementation (and implement this in a short time! so this constraint had important implications on the design decisions).</p>
<p>BB supports a write-sub (write subscribe) service model. It is a cross between pub-sub systems, shared memory systems, and traditional group communication systems. In pub-sub communication is async and done through topics. In shared memory we have overwrite semantics, singe writer per topic and process, and notifications are snapshots of state.</p>
<p>Consistency Semantics (single topic). PRAM Consistency: notified snapshots are consistent with the other process order of writes. A note made was that developers who built services on top of that turned out to understand this semantics of consistency.</p>
<p>Liveness Semantics (single topics). Uses Eventual inclusion: eventually each write by a correct and connected process is included into the notified snapshot. Eventual exclusion means that failed processes will be eventually excluded from updates.</p>
<p>Performance and Scalability Goals: adequate latency, scalable runtime costs, throughput is less of an issue (management load is fixed and low). Low overhead. Robustness, scalability in the presence of large number of processes and topics (2883 topics in a system of 127 processes, note that the initial target was around 1000 processes).</p>
<p>Approach: decided to build this on an overlay network called SON. Service Overlay Network (SON). SON is a semi-structured P2P overlay, already in the product, and self-* (recover from changes quickly without problems), resilient, and supports peer membership and broadcast. <u>The research question</u> here was whether if BB can be implemented efficiently on top of a P2P overlay like SON?</p>
<p>Architecture: SON with IAM (interest aware membership) built on top of it and BB on top of that (but BB can interact directly with SON).</p>
<p>Reliable Shared State Maintenance in SON for BB: is made fully decentralized, and update propagation is optimized for bimodal topic popularity. Overlay broadcast or iterative unicast over direct TCP connections if # subscribers of a topic is less than a certain threshold (and group broadcast otherwise). For Reliability, periodic refresh of the latest written value (on a long cycle) if not overwritten (this was a bad decision in retrospect) with state transfer to new/reconnected subscribers.</p>
<p>Experimental study on different topologies showed low cpu overhead and latency, but these numbers increased as the topology increased in size. Analysis of that revealed that this was because the periodic refreshes were stacked and caused increased CPU &amp; latency overheads. An additional problem was in broadcast flooding, and when that was removed cpu &amp; latency overheads stayed flat as the topology increased in size.</p>
<p>Lessons learned: communication cost is the major factor affecting scalability of overlay based implementations, and that anti-entropy techniques are best fit for such services.</p>
<hr />
<p>Second Talk: <strong><u>Optimizing Information Flow in the Gossip Objects Platform</u></strong> by Ymir Vigfusson</p>
<p>In gossip, nodes exchange information with a random peer periodically in rounds. Gossip has appealing properties such as bounded network traffic, scalability in group size, robustness against failures, coding simplicity. This is nice when gossip is considered individually per application. In cloud computing with nodes joining many groups, the traffic is no longer bounded per node (but per topic).</p>
<p>The Gossip Objects (GO) platform is a general platform for running gossip for multiple applications on a single node. It bounds the gossip traffic going out of a particular node. The talk focused on how to select rumors to publish out from multiple applications on a single node such that we reduce number of messages. This is possible because rumor messages are small and have a short destination. An observation made is that rumors can be delivered indirectly, uninterested nodes can forward rumors to interested nodes.</p>
<p>The GO heuristic: recipient selection is biased towards higher group traffic. The content is selected by computing a utility of a rumor which is defined as the probability of that rumor will add information to a host that didn&#8217;t know that info.</p>
<p>Simulation, a first simulation of an extreme example with only two nodes joining many groups. The GO heuristic showed promising results. Then a real-world evaluation was conducted based on a 55 minute trace of the IBM WebSphere Virtual Enterprise Bulletin Board layer. The trace had 127 nodes and 1364 groups, and the evaluation showed that GO had placed a cap on traffic compared to random and random with stacking heuristics for GO. Additionally, the GO heuristic was able to deliver rumors faster than the other heuristic, and the number of messages needed to deliver the messages to interested nodes, and the GO heuristic had multiple orders of reduction over other heuristics and traditional rumor spreading.</p>
<p>Conclusion: GO implemented novel ideas such as per-node gossip, rumor stacking (pushing the rumor to the MTU size), utility based rumor dissemination, and adapting to traffic rates. GO gives per-node guarantees even when the # of groups scales up. Experimental results were compelling.</p>
<p>Questions:</p>
<p>Mike Spreitzer, IBM Research: What would happen if the number of groups increases?</p>
<p>Answer: Study of available real-world traces showed a pattern of overlap. We also conducted simulation with other group membership patterns and the results were similar.</p>
<p>&#8212;: What was the normal rumor size? And what would happen if that increased?</p>
<p>Answer: The average rumor size was 100Bytes. If the message size increased we will stack less rumors, but our platform can also reject really large rumors.</p>
<p>&#8212;: Have you thought about network-level encoding?</p>
<p>Answer: Not yet, but we plan to in the future.</p>
<p>&#8212;: Have you thought of leveraging other dissemination techniques to run under GO?</p>
<p>Answer: Actually, we thought about the opposite direction where we would run other communication protocols and map them under the hood to GO. Results are pending.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/210/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[LADIS 2009] Keynote #4 &#8211; Life on the Farm: Using SQL for Fun and Profit in Windows Live</title>
		<link>http://www.bigredbits.com/archives/206</link>
		<comments>http://www.bigredbits.com/archives/206#comments</comments>
		<pubDate>Sun, 11 Oct 2009 19:38:15 +0000</pubDate>
		<dc:creator>hussam</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Live Blogging]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=206</guid>
		<description><![CDATA[Keynote #4 by David Nichols from Microsoft. Published abstract and speaker bio. In his talk, David shared some stories about his experience of using SQL in a data center environment to provide cloud services. The speaker was a bit fast while talking, I captured most of his message and the important parts, but i had [...]]]></description>
			<content:encoded><![CDATA[<p>Keynote #4 by David Nichols from Microsoft. <a href="http://www.cs.cornell.edu/projects/ladis2009/program.htm#keynote4">Published abstract and speaker bio</a>.</p>
<p>In his talk, David shared some stories about his experience of using SQL in a data center environment to provide cloud services. The speaker was a bit fast while talking, I captured most of his message and the important parts, but i had to skip some parts.</p>
<p>In Windows Live, when building a new service they prefer to use off-the-shelf products such as SQL. Why SQL? familiar tested programming model (real queries, real transactions, good data modeling, excellent at OLTP, easy to find developers that know it). Solid systems software (used often and fine tuned many times and updated). Challenges with using SQL, living without single-image database model (no global transactions or global indexes). Administration and maintenance overhead. Breaking things at scale.</p>
<p>DB partitioned by user, many users per instance DB because it is easy and self contained. User info are small enough that you can place multiple users on single location. Front ends send requests to proper DB. Location is determined by lookup (a Lookup Partition Service &#8211; LPS &#8211; maps users to partitions). DBs are partitioned by hash to avoid hotspots.</p>
<p>Architecture: Three stages of scale out: bigger server, functional division, and data division.</p>
<p>A problem with scaling out: updates to multiple sevices and users (e.g., add messenger buddy, upload a photo which is writen to file store and recent activity store). Two-phase commit is out (because the risk of having the crash that locks your data out is too high), instead us ad hoc methods: for example: write A intent, write B, write A; another example, write A and work item, let work item write B; another example: write A, then B, tolerate inconsistency.</p>
<p>Another problem is how do you read data about multiple users or even all users. Example scenario, user updates his status, his friends need to know. The old way (inefficient) to do that is to write a change about the users into the profile of all affected users, easy to query, but heavy write load. </p>
<p>Data Availability and Reliability. Replication is used for all user data using SQL replication. Front ends have library (WebStore) to notice failures and switch to secondary. Original scheme was one-to-one which was too slow because parallel transactions vs. single replication stream. Next try was to have four DBs talking to four DBs which fixed most speed problems, but too much load on secondaries after failure. Current approach uses 8-host pods, 25% load increase for secondaries on failure (8&#215;8 matrix, and the replication was done on the transpose of the matrix). However, still not fast enough for key tables (100&#8242;s of write threads vs. 5 replication streams). Manual replication (FE&#8217;s run SProcs at both primary and secondary, but small probability of inconsistent data). Replication runs a few seconds behind (ops reluctant to auto-promote secondary due to potential data in replication stream), new SQL tech should fix this.</p>
<p>Data loss causes: above the app (external application and old data); in the app (software bugs especially migration logic bugs); below the app (controller failure, disk failure). Mitigation techniques: audit trails and soft deletes for above app problems; per-user backup for software bugs; tape backup, sql replication, and RAID for below app problems (however these are expensive).</p>
<p>Managing Replication: fail safe set, a set of databases in some sort of replication membership. Typical fail safe set is two to four DBs (most are two). Fail safe are the true target of partition schemes.</p>
<p>Upgrade options: upgrade partitions: run DDL in each partition (via WebStore),  this is complicated by replication, after all DBs are done, upgrade FEs (SProcs are compatible; changed APIs get new names). Migrate users: can take various forms (between servers, within a server, or even within services), and migrating users can be complex, slow, error-prone, and nobody&#8217;s likes it.</p>
<p>Some Operation stories.</p>
<p>Capacity management: growth is in units of servers. when to buy more? test teams provides one opinion, ops team aims to find max  resource and stay below limit, two kinds of limits, graceful and catastrophic. Interesting thing about graceful vs catastrophic limits .. if you back off from graceful limits, you can usually go back to your original state (good state), however for catastrophic limits, even if you back off you can remain in a bad situation.</p>
<p>Ops lessons: 1) never do the same thing to all machines at once -stats queries, re-indexing have all crashed clusters in the past. 2) Smaller DBs are better, already coping with many DBs, plus re-indexing backups, upgrades are all faster for small DBs. 3) Read-only mode is powerful (failure maintenance and migration all use it). 4) Use the the live site to try things out (new code new SQL settings etc) &#8220;taste vs test&#8221;.</p>
<p>Conclusions: SQL can be tamed, it has some real issues but mostly manageable with some infrastructure, and its ops cost not out of line. It is hard to do better than SQL, it keeps improving, each time we go to design something, we find that SQL already design it, perhaps not in the form we want exactly, but close enough and not worth the effort probably. However SQL is not always the best solution.</p>
<p>SQL wish list. Easy ones: partitioned data support, easy migration/placement control, reporting, jobs; supporting aggregated data pattern, improved manageability. Hard ones: taming DB schema evolution, soft delete/versioning support of some kind, and A&#8211;D transactions (Atomic &amp; Durable).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/206/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[LADIS 2009] Technical session #3 &#8211; Storage</title>
		<link>http://www.bigredbits.com/archives/201</link>
		<comments>http://www.bigredbits.com/archives/201#comments</comments>
		<pubDate>Sun, 11 Oct 2009 17:56:58 +0000</pubDate>
		<dc:creator>hussam</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Live Blogging]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=201</guid>
		<description><![CDATA[First Talk: Consistency without concurrency control by Marc Shapiro This seemed like an interesting piece of work. Unfortunately i came in a bit late from the break and so my writing is sloppy and doesn&#8217;t do it much justice. However the paper about CRDTs and TreeDoc has been published in ICDCS. Problem motivation: TreeDoc is [...]]]></description>
			<content:encoded><![CDATA[<p>First Talk: <strong><u>Consistency without concurrency control</u></strong> by Marc Shapiro</p>
<p>This seemed like an interesting piece of work. Unfortunately i came in a bit late from the break and so my writing is sloppy and doesn&#8217;t do it much justice. However the paper about CRDTs and TreeDoc has been published in ICDCS.</p>
<p>Problem motivation: TreeDoc is a storage structure that uses binary tree encoding to address and store data. Inserting data is done by adding leaves to the tree. Reading the document consists of reading the binary tree using an &#8220;In Order&#8221; traversal. Deleting portions of the tree involves marking nodes with tombstones. However, trees can grow very badly, so removing deleted nodes and &#8220;rebalancing&#8221; the tree is needed. However, now after the rebalancing the tree addresses do not have the same meaning as before, so incoming updates might be inserted in the wrong location. So how can we agree on current addresses without concurrency control.</p>
<p>Tree located at two types of sites: Core and Nebula. The core is a smaller group that runs 2-phase commit to manage updates. the Nebula is a larger set of remote sites that do not run a consistency protocol. Catch-up protocol: if a core and nebula are networked partitioned, core proceeds with updates and buffers operations, let&#8217;s say that the nebula also gets some updates and buffers them. Then when the nebula gets the updates from the core, and replays it and the replays its own operations.</p>
<p><strong>main point:</strong> There is a need for useful data structures that support operations that commute. The commutativity gives us convergence between multiple sites without concurrency control. TreeDoc is an example of such data structure. The main point with such data structures is that we should take care of garbage collection because it becomes a big issue.</p>
<hr />
<p>Second Talk: <strong><u>Provenance as First Class Cloud Data</u></strong> by Kiran-Kumar Muniswamy-Reddy</p>
<p>This talk gave motivation for why would provenance be useful in cloud computing services. The speaker argued that provenance can allow us to reason better about the data from cloud services. The speaker argued that <u>native</u> support for provenance in cloud services will be beneficial.</p>
<p>Provenance tells us where did the data come from, its dependencies, and origins. Provenance is essentially a DAG that captures links between objects. Motivating example applications: web-search vs. cloud-search: both have tons of resources, however web search uses hyperlinks to infer dependencies, while no such thing exists for cloud-search. Provenance can provide a solution for that, and this has been argued for in a previous paper by Shah in usenix &#8217;07. Another example, pre-fetching. Provenance can tell us which documents are related to each other, and this allows you to pre-fetch related items for performance. Other examples include ACLs and auditing apps.</p>
<p>Requirements for provenance: consistency, long-term persistence, queryable, security, coordinate compute facilities and storage facilities.</p>
<hr />
<p>Third Talk: <strong><u>Cassandra &#8211; A Decentralized Structured Storage System</u></strong> by Prashant Malik</p>
<p>Why Cassandra? Lots of data (copies of messages, reverse indices of messages, per user data ..etc), random queries ..etc.</p>
<p>Design goals: high availability, eventual consistency (trade-off strong consistency in favor of high availability), incremental scalability, optimistic replication, &#8220;knobs&#8221; to tune trade-offs between consistency durability and latency, low total cost of ownership, minimal administration.</p>
<p>Data model: similar to the BigTable data model. columns are indexed by key, data is stored in column families, and the columns are sorted by value or by timestamp. Super columns allow columns to be added dynamically.</p>
<p>Write operations, a client issues a write request to a random node in the Cassandra cluster. The &#8220;partitioner&#8221; determines the nodes responsible for the data. Locally, write operations are logged and then applied to an in-memory version. Commit log is stored on a dedicated disk local to the machine.</p>
<p>Write properties: there are no locks in the critical path, we have sequential disk access. It behaves like a write back cache, and we have append support without read ahead. Atomicity guarantee for a key per replica. &#8220;Always Writable&#8221;, writes accepted even during failures, in that case the write is handed-off to some other node and loaded back to the correct place when node comes back up.</p>
<p>Reads are sent from the client to any node in the cassandra cluster, and then depending about the knobs the reads either get the most recent value or a quorrum.</p>
<p>Gossip is used between replicas using the Scuttlebutt protocol which has low overhead. Failure detection assigns a failure suspicion to nodes that increases with time until you hear again from users.</p>
<p><strong>Lessons learned:</strong> add fancy features only when absolutely necessary. Failures are the norm not the exception. You need system-level monitoring. Value simple designs.</p>
<hr />
<p> Fourth Talk: <strong><u>Towards Decoupling Storage and Computation in Hadoop with SuperDataNodes</u></strong> by George Porter</p>
<p>Hadoop is growing, gaining adopting, and used in production (Facebook, last.fm, linked in). E.g., facebook imports 25/day to 1k hadoop nodes. A key to that growth and efficiency relies on coupling compute and storage: benefits of moving computation to data, scheduling, locality reduce traffic, map parallelism (&#8220;grep&#8221; type workload).</p>
<p>So, when to couple storage with computation? This is a critical and complicated design decision, and this is not always done right. Examples, Emerging best practices with dedicated clusters. Your data center design may not be based on the needs for Hadoop (adding map/reduce to existing cluster, or a small workgroup who like the programming model such as Pig, Hive, and Mahout). </p>
<p>Goal is to support late binding between storage and computation. Explore alternative balances between the two (specifically explore the extreme point of decoupling storage and compute nodes). An observation from the Facebook deployment is that the scheduler is really good at scheduling nodes to local nodes for small tasks and bad for scheduling them in rack-locality for large tasks.</p>
<p>SuperDataNode approach: key features include a stateless worker tier, and storage node with shared pool of disks under single O/S, and a high bisection bandwidth worker tier.</p>
<p>There has been alot of talk about advantages of coupling storage and computation, what are the advantages of decoupling them. Advantages include, decoupling amount of storage from number of worker nodes. More intra-rack bandwidth than inter-rack bandwidth. Support for &#8220;archival&#8221; data, subset of data with low probability of access. Increased uniformity for job scheduling and block placement. Ease of management, workers become stateless; SDN management similar to that of a regular storage node. Replication only for node failures.</p>
<p>Limitations of SDN, scarce storage bandwidth between workers and SDN. Effective throughput with N disks in SDN (@ 100MB/sec each) 1:N ration of bandwidth between local and remote disks. Effect on fault -tolerance. Disk vs Node vs Link failure model. Cost. Performance depends on the work loads.</p>
<p>Evaluation compared a baseline hadoop cluster and an SDN cluster with 10 servers. The results showed that SDN performed better for grep and sort like workloads, and a bad case was random writers were hadoop performed better (workload was just each worker write to disk as fast as possible .. 100% parallelism).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/201/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[LADIS 2009] Keynote #2 &#8211; Some Lessons Learned from Running Amazon Web Services</title>
		<link>http://www.bigredbits.com/archives/195</link>
		<comments>http://www.bigredbits.com/archives/195#comments</comments>
		<pubDate>Sun, 11 Oct 2009 00:46:16 +0000</pubDate>
		<dc:creator>hussam</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Live Blogging]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=195</guid>
		<description><![CDATA[Keynote #2 by Marvin Theimer from Amazon. Published abstract and speaker bio. In his talk, Marvin reflected on experiences building and maintaining applications in data centers. He stressed the point that each of these issues are non-surprising individually by themselves, but the very large scale makes all of the possible all at once, and this [...]]]></description>
			<content:encoded><![CDATA[<p>Keynote #2 by Marvin Theimer from Amazon. <a href="http://www.cs.cornell.edu/projects/ladis2009/program.htm#keynote2">Published abstract and speaker bio</a>.</p>
<p>In his talk, Marvin reflected on experiences building and maintaining applications in data centers. He stressed the point that each of these issues are non-surprising individually by themselves, but the very large scale makes all of the possible all at once, and this is the surprising point! I really liked this talk.</p>
<p>A nice analogy he gave for building and running data center and cloud services is: <em>Evolving a Cessna prop-plane into a 747 jump jet in-flight </em> <img src='http://www.bigredbits.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Start with a Cessna prop-plane for cost and timeliness reasons. 4-9&#8242;s availability means that you get to land for 52 minutes every year (including scheduled maintenance, refueling, and crash landings). Success implies growth and evolution and rebuilding the plane mid-flight: Passenger capacity goes from 4-person cabin to 747 jumbo wide-body cabin, support for &#8220;scale out&#8221; means you add jet engines and remove the propellers while flying, testing and safety have to happen while flying!</p>
<p>Here are the lessons learned:</p>
<p>The unexpected happens! A fuse blows and darkens a set of racks, chillers die in a datacenter and a fraction of servers are down, an electrical plug bursts into flames, tornadoes or lightening hits datacenter, datacenter floods from the roof down, a telco connectivity goes down, the DNS provider creates black holes, simultaneous infant mortality occurs of servers newly-deployed in multiple datacenters, power generation doesn&#8217;t start because the ambient temperature is too high, load ..etc</p>
<p>Networking challenges. The IP protocol is deeply embedded in systems that you de-facto have to use it. IP networks can have lost packets, duplicate packets, and corrupted packets. Even if you use TCP your applications still need to worry about lost packets, duplicate packets, and corrupted packets. Software (and hardware) bugs can result in consistent loss or corruption of some packets. You have to be prepared for message storms. Client software is sometimes written without a notion of backing off on retries. One might expect that CRCs and the design of TCP can catch most of these issues. However, we are running in such a large scale that there are enough rare events that can give multiple errors. For example, if a switch or some network hardware erroneously flips the 8th bit of every 64 packets, with the large running scale, these rare events can happen repeatedly!</p>
<p><strong><u>Things you should be able to do without causing outages:</u></strong> adding new hardware, deploying a new version of software, rolling back to a previous version of software, recovering from the absence, loss, or corruption of non-critical data. Losing a mirror of a DBMS, recovering from having lost a mirror of a DBMS, losing a host in its fleet, losing a datacenter, losing network connectivity between data centers. Can we roll back some parts in the middle of upgrading other parts ?</p>
<p><strong><u>System resources/objects have lives of their own!</u></strong> Resources/objects in a service may live longer than the accounts used to create them. You have to be able to remap them between accounts. Resources/objects may live longer than versions of the service! You have to be able to migrate them forward with minimal or no disruptions. For example, EC2 instances were designed to run for short periods on demand, but customers start using them and keeping instances up for a long time, and this happens often enough such that shooting down long-lived instances will upset the clients. So how can you deal with that ?</p>
<p><strong><u>Downstream dependencies fail.</u></strong> It&#8217;s a service-oriented architecture. The good news is that your service has the ability to keep going even if other services become unavailable, and the challenge is how to keep going and/or degrade gracefully if you depend on the functionality of downstream services at low levels. Suppose all services are 4-9&#8242;s available, if a downstream service fails for 52 minutes, how will you meet your own SLA of failing no more than 52 minutes ? Cascading outages happen, if multiple downstream services fail, how will you handle it? For example, if a storage service fails, 2 services depending on it can also fail, then more services depending on them fail, and so on and so forth. Services need to defend against that.</p>
<p><strong><u>You must be prepared to deal with data corruption.</u></strong> Data corruption happens: flakey hardware, IO sub-systems can lie, software can be wrong, system evolution happen, people can screw up. End-to-end integrity checks are a must, straight-forward data corruption checking, how do you know if your system is operating correctly? Can your design do <em>fsck</em> in &lt; 52 minutes ?</p>
<p><strong><u>Keep it simple.</u></strong> It&#8217;s 4am on Sunday morning and the service has gone down, can you explain the corner cases of your design to the front-line on-call team over the phone? can you figure out what&#8217;s going on in under 52 minutes? Can you make sure it is not a corner case of using your code that did not result in that crash, or how to fix it if it is ? Simple brute force is sometimes preferable to elegant complexity: examples: eventual consistency considered painful (but sometimes necessary), P2P can be harder to debug than centralized approaches (but may be necessary). Is it necessary to build your system to handle situations after product growth when it is more likely that your system will actually change and be replaced by the time that it is big enough to require handling that issue.</p>
<p><strong><u>Scale: will your design envelope scale far enough? Do you understand your components well enough?</u></strong> Cloud computing has global reach, services may grow at an astonishing pace, the overall scale is HUGE!. The scale of cloud computing tends to push systems outside their standard design envelopes. The rule of thumb that you must redesign your system every time it grows by 10x implies you must be prepared to redesign early and often.</p>
<p><strong><u>**CAE Trade-Off for Resources.</u></strong> CAE: cost-efficient, available, elastic. You can only pick two of them!</p>
<p><strong><u>Do not Ignore the Business Model or your TCO.</u></strong> Do you know all the sources of cost? can you accurately measure them? Do you know all the &#8220;dimensions of cost&#8221; that will be used in pricing? Can you meter them? Have you thought about ways the system can be abused? How will you resolve billing disputes? All these may affect the design of the service in fundamental ways. This is important to measure even if you think that your revenue will come from adds. For example, some customer figured out that if they store large names in the key part of the key/value store rather than the name, they can reduce their cost by 1000x times because S3 only charges for the size of the value not key! So you have to think about what you are not charging people for and how can they abuse it.</p>
<p><strong><u>Elastic Resources: What boundaries to expose?</u></strong> High availability apps require the notion of independent failure zones &#8211;&gt; introduce the notion of availability zones (AZ). Concurrent apps want bounded, preferably low message latency and high bandwidths &#8211;&gt; introduce notion of <em>cluster affinity</em> to an AZ. The challenges of AZ clustering, clumping effect since everyone will want to be near everyone else (for example, if you ask people to pick an AZ and they don&#8217;t care, everyone will end up in AZ1 !!), makes elastic scheduling harder. Fine-tuned applications are the enemy of elasticity, customers will try to divine your intra-AZ topology (co-location on the same rack, etc.) Eventual evolution to different network infrastructures and topologies means you don&#8217;t want to expose more than you have to.</p>
<p><strong><u>Summary and Conclusions:</u></strong> The unexpected happens, in large systems even extremely rare events occur with a non-negligible frequency; what&#8217;s your story on handling them? Keep it simple: it&#8217;s 4&#8242;am and the clock is ticking- can you debug what&#8217;s going on in your system? Cloud computing is a business: you have to think about cost-efficiency as well as availability and elasticity.</p>
<p><strong><u>Questions:</u></strong></p>
<p>Mike Freedman, Princeton University: What things of these issues are specific for infrastructure provider (such as Amazon) compared to web service providers such as walmart.com or hotmail?</p>
<p>Answer: Many things are common such as hazards and load. As for other things such as accounting and billing, this is still useful for service providers, then this can at least minimize your running costs and allow you to know where you are spending your money.</p>
<p>Ken Birman, Cornell University: What makes you feel consistency, is it the 4am call or is latency and competitiveness and the added complexity?</p>
<p>Answer: It is the 4am call. When you have systems at large scale, you have to work out all the possible cases in your system and you can not cheat out of it. These corner cases make it hard. Remember that this has to be developed in a timely manner and it is developed by junior developers that are evolving their knowledge and expertise in this.</p>
<p>&#8212;: How do you test the resilience of your data centers? Are there people who go and turn off part of your datacenter?</p>
<p>Answer: Essentially yes! You test as much as you can, then you roll out.</p>
<p>Dough Terry, MSR-SV: Shouldn&#8217;t the analogy be that you start with a fleet of Cessnas and you want to evolve them into a fleet of Jumbo jets in flight without losing all of them together.</p>
<p>Answer: the problem is that you can not parallelize everything. There is some percentage of your code that does not get fixed.</p>
<p>Hakim Weatherspoon, Cornell University: What about embracing failure? running your systems hot and expect that nodes will fail ?</p>
<p>Answer: That solves some of the existing problems, but newer problems that we don&#8217;t know about yet can rise. For example, we never thought that the boot temperature on backup power generators will ever be an issue but it was! So you can never enumerate all problems.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/195/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[LADIS 2009] Technical Session #2 &#8211; Applications and Services</title>
		<link>http://www.bigredbits.com/archives/181</link>
		<comments>http://www.bigredbits.com/archives/181#comments</comments>
		<pubDate>Sat, 10 Oct 2009 22:14:21 +0000</pubDate>
		<dc:creator>hussam</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Live Blogging]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=181</guid>
		<description><![CDATA[First Talk: Are Clouds Ready for Large Distributed Applications? by Kay Sripanidkulchai This talk essentially focused on how can enterprise applications be transported to cloud computing settings. Issues focused on are: deployment, this is more complex than just booting up VMs due to data and functionality dependencies. The second issue, availability. Enterprise apps are heavily [...]]]></description>
			<content:encoded><![CDATA[<p>First Talk: <strong><u>Are Clouds Ready for Large Distributed Applications?</u></strong> by Kay Sripanidkulchai</p>
<p>This talk essentially focused on how can enterprise applications be transported to cloud computing settings. Issues focused on are: deployment, this is more complex than just booting up VMs due to data and functionality dependencies. The second issue, availability. Enterprise apps are heavily engineered to maximize uptime. According to a published study, current cloud services can expect up to 5 hours of down time per year. Enterprise customers however really expect 1 hour of downtime per year. So how can this gap be bridged ? The third issue is that of problem resolution.</p>
<p>Bridging the availability gap: ideas include: 1) implementing scaling architectures in the cloud, 2) developing APIs to allow multiple clouds to interact with each other so as to develop failover techniques, 3) Live VM migration to mask failures.</p>
<p>As for problem resolution: categories of issues raised regarding EC2 on EC2 boards: 10% of topics discussed are feature request, 56% user how-to. As for problems 25% cloud error, 64% user error, 11% unknown error. One of the important things that enterprise customers want is being able to know if something is not running correctly, is the issue with the cloud platform, the VM, faulty hardware or what. So techniques and tools have to be developed in that regards.</p>
<hr />
<p>Second Talk: <strong><u>Cloudifying Source Code Repositories: How Much Does it Cost?</u></strong><strong> </strong>by Michael Siegenthaler</p>
<p>Cloud computing used to be mainly used by large companies that have the resources that enabled them to build and maintain the datacenters. Now this is accessible to people outside these companies for low costs.</p>
<p>Why move source control to the cloud? resilient storage, no physical server to administrate, scale to large communities. Used SVN which is very popular, store data on S3 (problem with eventual consistency), used Yahoo Zookeeper (a coordination service) as a lock service. How to measure costs for SVN on S3? measure cost per diff files and stored files. Back of the envelope analysis of cost shows it is inexpensive even for large projects such as Debian and KDE. A trend to notice is that code repos are getting larger in size, but the price of storing a GB is decreasing with time.</p>
<p>Architecture: machines talk to front-end servers on EC2 and storage is on S3. The front-end need not be on EC2, the cloud is there mainly for storage. A problem with a naive implementation is that eventual consistency in S3 means that multiple revision numbers can be issued for conflicting updates. For this reason locking is required. The commit process essentially has a hook that acquires a lock from ZooKeeper and pull for the most recent version number. The most recent version is retrieved from S3 (retry if not found due to eventual consistency), then make commit and release lock and ZooKeeper increments the version number.</p>
<p>Performance evaluation: usage patterns: Apache foundation has 1 repo for 74 project with average 1.10 commits per minute and a max of 7 per minute. The Debian community has 506 repos with 1.12 commits per minute in aggregate and 6 in max. These were used as experiment traces. The results showed that as you add more front-end servers from EC2 the performance does not suffocate due to possible lock contention, and this was tried with differing number of clients.</p>
<hr />
<p>Third Talk: <strong><u>Cloud9: A Software Testing Service</u></strong> by Stefan Bucur</p>
<p>There is a need to facilitate automatic testing of programs. Cloud computing can make this have better performance. Testing frameworks should provide autonomy (no human intervention), usability, performance. Cloud9 (<a href="http://cloud9.epfl.ch/">http://cloud9.epfl.ch/</a>) is a web service for testing cloud applications.</p>
<p>Symbolic Execution: when testing a function, instead of feeding it input values, send it an input abstraction (say, lambda) and whenever we see a control flow branching (such as an if statement) create a subtree of execution. One idea is to send each of these subtrees to a separate machine and test all possible execution paths at once. A naive approach can have many problems. For example trees can expand exponentially, so incrementally getting new resources to run can be problematic. A solution to that is to pre-allocate all needed machines. There are many challenges in parallel symbolic execution in the cloud such as dynamically load balancing trees among workers and state transfers. Along with other problems such as picking the right strategy portfolios</p>
<p>Preliminary results show that parallel symbolic execution on the cloud can give over linear improvement over conventional methods and KLEE.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/181/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[LADIS 2009] Technical Session #1 &#8211; Programming Models</title>
		<link>http://www.bigredbits.com/archives/178</link>
		<comments>http://www.bigredbits.com/archives/178#comments</comments>
		<pubDate>Sat, 10 Oct 2009 14:56:30 +0000</pubDate>
		<dc:creator>hussam</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Live Blogging]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=178</guid>
		<description><![CDATA[First talk: Cloud-TM: Harnessing the Cloud with Distributed Transactional Memories given by Luis Rodrigues MapReduce is nice if your data and task fits the model. However, it is unnatural for many scenarios. Another model for programming in the cloud is: PGAS (Partitioned Global Address Space), it masks machines as different addresses, but it has falls [...]]]></description>
			<content:encoded><![CDATA[<p>First talk: <strong><u>Cloud-TM: Harnessing the Cloud with Distributed Transactional Memories</u></strong> given by Luis Rodrigues</p>
<p>MapReduce is nice if your data and task fits the model. However, it is unnatural for many scenarios. Another model for programming in the cloud is: PGAS (Partitioned Global Address Space), it masks machines as different addresses, but it has falls short because programmers do not know how many machines is their program running on ahead of time. D-STM (Distributed Software Transactional Memories) extends the TM abstraction across the boundaries of a single machine.</p>
<p>Research challenges:</p>
<ul>
<li>Automatic parallelization: extremely hard, but transactional support makes it easier to implement strategies based on the speculative execution portions of the code.</li>
<li>Fault tolerance: only started to be considered by recent D-STMs</li>
<li>Coping with Workload Heterogeneity. STM performance is heavily dependent on the workload, different algorithms exist optimized for different workloads, but this needs to be automated.</li>
<li>Automatic Resource Provisioning.</li>
<li>Persistence ACI vs ACID</li>
</ul>
<p>Dependable Distributed STM (D2-STM) is a distributed fully replicated STM that uses atomic broadcast to coordinate replicas. Bloom filters used to reduce messages. Some prelim results: speculative replication, a technique that runs potentially conflicting transactions speculatively in order to hide the inter-replica coordination latency. Identifying and predicting the data access, we are developing stochastic techniques for identifying and predicting data access pattern. Thread-level speculation.</p>
<p>An application they built based on their techniques. FenixEDU manages the on-line campus activities used in production by the Technical University of Lisbon and being installed in other machines. 1000s of students. Web app, OO-domain model, Relational DMBS to store data, object/relational mapping tool to store objects in the db, runs on a STM implementation.</p>
<p>FenixEDU can be run in the cloud. We want programmers to be able to use the OO model they are familiar with, resource management has to be automatic, and consistency is crucial.</p>
<p>Conclusions: D-STM have many good properties that make them a promising technology to support distributed applications with consistency requirements in the cloud. </p>
<hr />
<p>Second Talk: <strong><u>Storing and Accessing Live Mashup Content in the Cloud</u></strong> by Krzysztof Ostrowski</p>
<p>Interactive collaborative cloud services currently go through a &#8220;centralized&#8221; cloud service and users just poll for the updates. In the Cornell Live Objects model, clients collaborate together on the &#8220;edge&#8221;.</p>
<p>Cloud vs Edge ? if all on edge, we have persistence but potentially no consistency. If all on the cloud, we have consistency from the clients&#8217; view but no scalability. For example, in second life, we can only handle 40 clients/server. The edge is much larger than the cloud. Many more under utilized machines in the edge than in the cloud.</p>
<p>In live objects, we used checkpointed channel. that are abstractions for communication that have proxies on machines and partially reside on the edge and cloud. Data is in that channel. Channels have a proxy and a network facing component. An event on a channel is considered to be delivered only if the proxy declares that and notifies the application above. If an update is received on a checkpoint channel (CC) we get a new CC`. For the programming model, CCs are given types in the programming language that reflect what kind of data is contained in each channel. Channels can have references to other channels which allow users to build complex structures and enable applications that subscribe to many channels representing many different objects. For example, a shared desktop can have references to the different objects in that desktop.</p>
<p>Conclusion: Checkpointed Channels are a new storage abstraction where users express interest in data regardless of where it resides or how it is stored (in a cloud service or a P2P system). Tremendous opportunity for scaling by splitting data between the cloud and edge.</p>
<p>Questions: questions mostly focused on the synchronized timing of correlated channels. For example, if a channel contains video data, and another channel contains audio data, how can the two be synchronized.</p>
<hr />
<p>Third Talk: <strong><u>A Unified Execution Model for Cloud Computing</u></strong> by Eric Van Hensbergen</p>
<p>In current cloud programming settings, we have two models: platform as a service, and infrastructure as a service. That is, are we given unmanaged machines (EC2) that we are free to use as we want. Or are we given a managed platform (Google App Engine and Microsoft Azure) that manage the underlying complexity but limit what you can do. Idea, can we break down this barrier ? This is similar to previous studies on distributed operating systems from the past. However, the difference here is that they have to be more flexible, elastic, and work at scale.</p>
<p>Many techniques were discussed such as synthetic file systems, execution &amp; control mechanisms, and aggregation techniques. Support for BlueGene/P Preliminary support for EC2.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/178/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[LADIS 2009] Keynote #1 &#8211; Data Serving in the Cloud</title>
		<link>http://www.bigredbits.com/archives/175</link>
		<comments>http://www.bigredbits.com/archives/175#comments</comments>
		<pubDate>Sat, 10 Oct 2009 13:56:30 +0000</pubDate>
		<dc:creator>hussam</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[Live Blogging]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=175</guid>
		<description><![CDATA[Keynote #1 by: Raghu Ramakrishnan from Yahoo! Research. Published abstract and Speaker bio . Raghu&#8217;s talk focused mostly on how is data stored in large scale for cloud services. His talk was in three parts, the first part discussed general principles, the second part discussed the PNUTS (internally called Sherpa) at Yahoo, and in the [...]]]></description>
			<content:encoded><![CDATA[<p>Keynote #1 by: Raghu Ramakrishnan from Yahoo! Research. <a href="http://www.cs.cornell.edu/projects/ladis2009/program.htm#keynote1">Published abstract and Speaker bio</a> .</p>
<p>Raghu&#8217;s talk focused mostly on how is data stored in large scale for cloud services. His talk was in three parts, the first part discussed general principles, the second part discussed the PNUTS (internally called Sherpa) at Yahoo, and in the last part he proposed having a community driven benchmark targeted at what he called <em>VLSD Data Stores</em>: Very Large Scale Distributed Data Stores.</p>
<p>Here are the &#8220;raw&#8221; notes I took while he was giving his presentation. Sorry about the roughness</p>
<p>Two types of cloud services at Yahoo!:</p>
<ol>
<li>Horizontal (Platform) Clouds Services: e.g., storage, web front, ..etc</li>
<li>Functional Services: e.g., Content Optimization, Search Index, Ads Optimization, ML for spam detection ..etc</li>
</ol>
<p>Yahoo!&#8217;s Cloud: massive user base (&gt; 500M unique users per month) and very high requests per second.</p>
<p><strong>VLSD DS:</strong> Very Large Scale Distributed Data Stores. Three types of data stores used in the cloud categorized by focus:</p>
<ul>
<li>Large data analysis (e.g., Hadoop). Data warehousing, scan oriented workloads, focus on sequential disk I/O. focus on cpu cycles.</li>
<li>Structured record storage (e.g., PNUTS/Sherpa). CRUD, point lookups and short scans, index table, opt for latency.</li>
<li>Blob storage (e.g., MObStore). object retrieval and streaming, scalable file storage, opt for GB storage</li>
</ul>
<p>In the last 30 years, the world has changed significantly. Things have become more elastic. Customers need scalability, flexible schemas, geographic distribution, high availability, reliable storage. Web serving apps can do without complicated queries and strong transactions. Some consistency is desirable, but not necessarily full ACID.</p>
<p>Typical applications for Yahoo VLSD:</p>
<ul>
<li>user logins and profiles (changes must not be lost)</li>
<li>events (news alerts, social network activity, ad clicks)</li>
<li>app-specific data (flickr photo edits ..etc)</li>
</ul>
<p>In VLSD data servincg stores, <strong>must:</strong></p>
<ul>
<li><u>Partition</u> data across store. How are partitions determined? can they be changed easily ?</li>
<li><u>Availability</u> and failure tolerance what failures are handled.</li>
<li>How is data <u>Replicated</u>? sync, or async, geo or non.</li>
</ul>
<p>Brewer&#8217;s CAP theorem: Consistency Availability Partition tolerance. Can not have all three, must forgo one. Approaches to handle CAP, &#8220;BASE&#8221;, no ACID, use a single version of DB reconcile later. Defer transaction commitment.</p>
<p><strong>PNUTS/Sherpa:</strong></p>
<p>Environment:</p>
<ul>
<li>Small records (&lt;= 100KB)</li>
<li>Structured records (lots of fields and adding)</li>
<li>Extreme data scale (tens of TB)</li>
<li>Extreme request scale (Tens of thousands of res/sec</li>
<li>Low latency globally (20+ datacenters worldwide</li>
<li>High availability and reliability</li>
</ul>
<p>What is PNUTS/Sherpa: parallel database (sharded), geographic replication, structured flexible scheme (NO schema evolution, at any point in time each table has a set of fields, but not all records have values for all fields). Hosted and managed. This is PNUTS today. In the future it will add support for indexes and views to be maintained async. PNUTS is built on other cloud services such as <em>Tribble</em> for pub/sub messaging, and Zookeeper for consistency</p>
<p>The actual data are stored on commodity boxes called storage units, data is broken into tablets. Storage units have tablets from multiple tables and a table&#8217;s tablets can be split on multiple storage units. The routers have maps for tablets to storage units. The same architecture is replicated at many areas. Using <em>Tribble</em> for message passing.</p>
<p>Data Model. Per-record ops: get/set/delete, multi-record ops: multiget/scan/getrange, Web service RESTful API</p>
<p>Tablets are hashed for load distribution. Tablets also can be ordered tables, and this allows better scans and frequent and range queries. in ordered tablets the data is ordered inside the tablet, but tablets can be shuffled on storage units. Index maintenance, how to have lots of interesting indexes and views without killing performance ? Solution is asynchrony.</p>
<p>Processing reads and updates. An update goes to a router that routes to a storage unit, and then the write is sent to two message brokers and then SUCCESS is returned to the SU and an update is back to the router. The two message brokers provides persistence (just like a write ahead log) but data is garbage collected, so availability and FT is provided by replication. Reads and multireads are straight forward through lookup from router. For Bulk Loads, pre-allocate tablets to avoid hotspots.</p>
<p>Asynchrony, replication, consistency</p>
<p>Replicaion from one datacenter to another happens eventually (order of 1 or 2 seconds). If copies are async updated, what can we say about stale copies ? ACID guarantees require sync updates which is very expensive. Eventual consistency: copies can drift apart but will eventually converge if the system is allowed to quiesce. Do we have middle ground ? Eventual consistency might not be enough.</p>
<p>If user update in one area, then network partition, then update in another region by same user, what will the final value be ? eventual consis will give one of the two values, but we want a specific last value.</p>
<p>PNUTS consistency model, Goal make it easier for apps to reason about updates and cope with ansync, what happens to a record with primary key &#8220;alice&#8221; ? Each record has a master, and each record has a version number that changes with updates. Masters can change.</p>
<p>Writes always go to the current version. Possibly stale versions at non-master location. Support test-and-set write per record transaction. Reads can get stale versions. But &#8220;read-uptodate&#8221; gets most recent version. Other variations, read forward will give you records with versions non-decreasing for sequential reads.</p>
<p>Operability: tablets are initially assigned to some storage units. An SU can get hot, so tablets are moved to other tablets. A tablet master (tablet controller) will always know about tablet moves. Consistency techniques: Per-record mastering and per tablet mastering.</p>
<p>Mastering: Alice making changes mostly in west cost, so master for the her records are in the west cost When alice moves to east cost, first few updates are bounced to west cost, then the tablet master is moved to east cost. Coping with failures, when failure happens, mastership is moved to another location, after recovery, mastership can stay in new location or move back to place.</p>
<p><strong>Comparing Some Cloud Serving Stores</strong></p>
<p>Many cloud DB (and nosql systems out there: PNUTS, BigTable, Azure, Cassandra, Megastore, Amazone. How do they compare ? Can we have a community drivern benchmark for comparing this ?</p>
<p>Baseline: Sharded MySQL, PNUTS, Cassandra, BigTable</p>
<p>Shard Server: server is apache + plugin + mysql, mysql scema key varchar(255) value mediumtext, flexible schema: value is blob of key/value pairs this is to have dynamic schemas to compare.</p>
<p>Pros of sharding: simple, infinitely scalable, low latency, geo-replication. Cons: not elastic (resharding is hard), poor suport for load balancing, failr over, replication unreliable, asyc log shipping. </p>
<p>Azure SDS: cloud of SQL server intstances. App partitions data into instance-sized pieces, transactions ardn queries within an instance (SDS instance = storage + per-field indexing)</p>
<p>Google MegaStore: transactions across groups: entity group hierarchically linked records, can transactionally update multiple records with an entity group, build on big table</p>
<p>PNUTS pros and cons: reliable geo-replication, scalability consistency model, elastic scaling, easy load balancing, Cons: system complexity relative to sharded my SQL to support geo-replication, consistency etc. Latency added by router</p>
<p>HBASE: HBASE is like BigTable on top Hadoop. When you try to write a record, this is spread to HRegion Server: records partitioned by column family into HStores each HStore contains many MapFiles. All writes to HStore applied to single memchche, Reads consult MapFiles and memcache, Memcaches flushed as MapFailes (HDFS files) when full. Compactions limit the number ofMapFile. Pros and Cons: Pros: log-based storage for high write throughput, elastic scaling, easy load balancing, column storage for OLAP workloads. Cons: write are not imimediately persisted to disk, reads are across multiple disks and mem locations, no geo-replication, latency</p>
<p>Cassandra: Facebook&#8217;s storage system. It uses BigTable data model, and uses Dynamo to locate records. Pros: elastic scalability, easy management peer-to-peer, bigtable model is nice, flexible schema columns ..etc Cons: does not support geo-replication and consistency.</p>
<p>The numbers comparing the storage systems:</p>
<p>Setup: 8 cores 2x quad core, 8gb ram, workloads 120 million 1kb records 20 gb per server. Write heavy loads 50/50 read update, read heavy 95/5.</p>
<p>Read latency vs actual throughput for read heavy. Sharded my sql is best. PNUTS and Cassandra did well. Hbase did bad (died after 100 ops/sec . Cassandra and PNUTS did well and died at 4500</p>
<p>Qualitative comparisons: storage layer: filebased: hbase and cassandra, mysql based: pnuts and sharded mysql. Write Persistence: writes committed synchronously to disk PNUTS cassandra and sharded. Writes async HBAase. Read pattern: find record in mysqk (disk or buffer pool) PNUTS, sharded. Replication: intra-region: hbase and cassandra, inter and intra region (pnuts, mysql not guaranteed). Mapping record to srever: router pnuts and hbase. Cloud </p>
<p>Main point is: push for a community based benchmark for a cloud storage systems. YCS Benchmark. send mail to ragu and brian cooper.</p>
<p>Shadoop: sherpa + hadoop. Sherpa optimized for low-latency record-level access b-trees. HDFS optimized for batch oriented acces: file-syste.</p>
<p>Questions:</p>
<p>Ken Birman, Cornell University: Have you considered design techniques that will express stability and predictability along with scalability ?</p>
<p>Answer: not thought about it explicitly. But have not examined design techniques that do not perform wildly at scale. There are some interesting possible techniques such as in-memory systems. Most developers were worried about availability and performance at scale. Issues of stability at scale are still at early stages and have not been explored yet.</p>
<p>&#8212;: You described how the master moves over. What happens for the records on the master when a crash happens.</p>
<p>Answer: the protocols will ensure that when a failure in one data center and the record master one of two things happen. Either the master moves cleanly, or blocking. So if you try to write with time-line consistency, you will not progress. Example of when could this happens: write on west, failure happens, you move to east. It depends on the failure cause. If it is just because of disk issues, the message bus still contains the data, and when that data reaches new master it is made a master. The real problem is if the failure happens to the messaging system or to the link. It takes alot of work to find if the failure happens on the messaging system or not.</p>
<p>Doug Terry, MSR: how do you decide what is acceptable to give up to get CAP properties ?</p>
<p>Answer: it is crude. Developers ask for what they want and they implement it.</p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/175/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blogging at SOSP and LADIS 2009</title>
		<link>http://www.bigredbits.com/archives/170</link>
		<comments>http://www.bigredbits.com/archives/170#comments</comments>
		<pubDate>Sat, 10 Oct 2009 13:38:40 +0000</pubDate>
		<dc:creator>hussam</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[LADIS]]></category>
		<category><![CDATA[Live Blogging]]></category>
		<category><![CDATA[SOSP]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=170</guid>
		<description><![CDATA[I arrived yesterday night at Big Sky Montana, a nice mountain resort covered in snow. I will be attending the 22nd ACM Symposium on Operating Systems Principles (SOSP 2009) as well as the 3rd ACM SIGOPS International Workshop on Large-Scale Distributed Systems and Middleware (LADIS 2009). The programs (LADIS, SOSP) are very promising. I am [...]]]></description>
			<content:encoded><![CDATA[<p>I arrived yesterday night at Big Sky Montana, a nice mountain resort covered in snow. I will be attending the <a href="http://www.sigops.org/sosp/sosp09/">22nd ACM Symposium on Operating Systems Principles (SOSP 2009)</a> as well as the <a href="http://www.cs.cornell.edu/projects/ladis2009/program.htm">3rd ACM SIGOPS International Workshop on Large-Scale Distributed Systems and Middleware (LADIS 2009)</a>. The programs (<a href="http://www.cs.cornell.edu/projects/ladis2009/program.htm">LADIS</a>, <a href="http://www.sigops.org/sosp/sosp09/program.html">SOSP</a>) are very promising. I am certainly looking forward to the keynotes and technical sessions. I will try to live-blog the events as much as possible. I haven&#8217;t done that before so I don&#8217;t know how it&#8217;ll go. However, my plan is to have one post per session and update that post after each talk in that session. We&#8217;ll see how it goes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/170/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hats, codes and puzzles</title>
		<link>http://www.bigredbits.com/archives/161</link>
		<comments>http://www.bigredbits.com/archives/161#comments</comments>
		<pubDate>Sat, 03 Oct 2009 22:51:16 +0000</pubDate>
		<dc:creator>renatoppl</dc:creator>
				<category><![CDATA[puzzles]]></category>
		<category><![CDATA[coding theory]]></category>
		<category><![CDATA[game theory]]></category>
		<category><![CDATA[mechanism design]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=161</guid>
		<description><![CDATA[When I was a child someone told me the following problem: A king promised to marry his daughter to the most intelligent man. Three princes came to claim her hand and he tryed the following logic experiment with them: The princes are gathered into a room and seated in a line, one behind the other, [...]]]></description>
			<content:encoded><![CDATA[<p>When I was a child someone told me the following problem:</p>
<blockquote><p>A king promised to marry his daughter to the most intelligent man. Three princes came to claim her hand and he tryed the following logic experiment with them: The princes are gathered into a room and seated in a line, one behind the other, and are shown 2 black hats and 3 white hats. They are blindfolded, and 1 hat is placed on each of their heads, with the remaining hats hidden in a different room. The first one to deduce his hat color will marry the princess. If some prince claims his hat color incorrectly he dies.</p>
<p>The prince who is seated behind removes his blindfold, sees the two hats in front of him and says nothing. Then the prince in the middle removes his blindfold after that and he can see the hat of the prince in front of him. He also says nothing. Noticing the other princes said nothing, the prince seated in the first whole, without even removing his blindfold, gives the correct answer? The question is: what is the color he said?</p></blockquote>
<p>This is a simple logical puzzle: we just write all the possibilities and start ruling them out given that the other princes didn&#8217;t answer and in the end we can find the color of his hat. I remember that this puzzle surprised me a lot as a kid. A found it extremly cool by then, what made me want to read books about logic problems. After that, I had a lot of fun reading the books by <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Raymond_Smullyan">Raymond Smullyan</a>. I usually would read the problems, think something like: there can&#8217;t ba a solution to that. Then go to school with the problem in mind and spend the day thinking about that. Here is a problem I liked a lot:</p>
<blockquote><p>There is one prisoner and there are two doors: each has one guardian. One door leads to an exit and one door leads to death. The prisioner can choose one door to open. One guardian speaks only the truth and one guardian always lies. But you don&#8217;t know which door is which, which guardian is which and who guards each door. You are allowed to choose one guardian and make him one Yes/No question, and then you need to choose a door. What is the right question to ask?</p></blockquote>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-163" title="hats1" src="http://www.bigredbits.com/wp-content/uploads/2009/10/hats1.png" alt="hats1" width="420" height="70" /></p>
<p>But my goal is not to talk about logic puzzles, but about Hat problems. There are a lot of variations of the problems above: in all of them a person is allowed to see the other hats but not his own hat and we need to &#8220;guess&#8221; which is the color of our hat. If we think carefully, we will see that this is a very general kind of problem in computer science: (i) the whole goal of learning theory is to predict one thing from a lot of other things you observe; (ii) in error correcting code, we should guess one bit from all the others, or from some subset of the others; (iii) in universal truthful mechanisms, we need to make a price offer to one player that just depends on all other players bids. I&#8217;ll come back to this example in a later post, since it is what made me interested in those kinds of problems, but for now, let&#8217;s look at one puzzle I was told about by <a class="snap_noshots" href="http://pages.cs.wisc.edu/~dmalec/">David Malec</a> at EC&#8217;09:</p>
<blockquote><p>There are black and white hats and <img src='http://s.wordpress.com/latex.php?latex=%7B3%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{3}' title='{3}' class='latex' /> people: for each of them we choose one color independently at random with probability <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' />. Now, they can look at each others hats but not at their own hat. Then they need to write in a piece of paper either &#8220;PASS&#8221; or one color. If all pass or if someone has a wrong color, the whole team loses (this is a team game) and if at lest one person gets the color right and no one gets wrong, the whole team wins. Create a strategy for the team to win with <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B3%7D%7B4%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{3}{4}}' title='{\frac{3}{4}}' class='latex' /> probability.</p></blockquote>
<p>To win with <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' /> probability is easy: one person will always write &#8220;BLACK&#8221; and the others &#8220;PASS&#8221;. A better strategy is the following: if one person sees two hats of equal color, he writes the opposite color, otherwise, he passes. It is easy to see the team wins except in the case where all hats are the same color, what happens with <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B4%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{4}}' title='{\frac{1}{4}}' class='latex' /> probability. We would like to extend this to a more general setting:</p>
<blockquote><p>There are black and white hats and <img src='http://s.wordpress.com/latex.php?latex=%7B2%5Ek%20-%201%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{2^k - 1}' title='{2^k - 1}' class='latex' /> people: for each of them we choose one color independently at random with probability <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2}}' title='{\frac{1}{2}}' class='latex' />. Now, they can look at each others hats but not at their own hat. Then they need to write in a piece of paper either &#8220;PASS&#8221; or one color. If all pass or if someone has a wrong color, the whole team loses (this is a team game) and if at lest one person gets the color right and no one gets wrong, the whole team wins. Create a strategy for the team to win with <img src='http://s.wordpress.com/latex.php?latex=%7B1-%5Cfrac%7B1%7D%7B2%5Ek%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1-\frac{1}{2^k}}' title='{1-\frac{1}{2^k}}' class='latex' /> probability.</p></blockquote>
<p>It is a tricky question on how to extend the above solution in that case. A detailed solution can be found <a class="snap_noshots" href="www.math.ksu.edu/~dbski/hats.pdf">here</a>. The idea is quite ingenious, so I&#8217;ll sketch here. It envolves Error Correcting Code, in that case, the Hamming Code. Let <img src='http://s.wordpress.com/latex.php?latex=%7BF%20%3D%20%5C%7B0%2C1%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{F = \{0,1\}}' title='{F = \{0,1\}}' class='latex' /> with sum and product modulo <img src='http://s.wordpress.com/latex.php?latex=%7B2%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{2}' title='{2}' class='latex' />. Let <img src='http://s.wordpress.com/latex.php?latex=%7Bw_1%2C%20%5Chdots%2C%202%5E%7B2%5Ek-1%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{w_1, \hdots, 2^{2^k-1}}' title='{w_1, \hdots, 2^{2^k-1}}' class='latex' /> be the non-zero vector of <img src='http://s.wordpress.com/latex.php?latex=%7BF%5Ek%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{F^k}' title='{F^k}' class='latex' /> and the following linear map:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cbegin%7Baligned%7D%20%5Cphi%3A%20F%5E%7B2%5Ek-1%7D%20%5Crightarrow%20F%5Ek%20%5C%5C%20%28a_1%2C%5Chdots%2C%20a_%7B2%5Ek-1%7D%29%20%5Cmapsto%20%5Csum_i%20a_i%20w_i%20%5Cend%7Baligned%7D%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \begin{aligned} \phi: F^{2^k-1} \rightarrow F^k \\ (a_1,\hdots, a_{2^k-1}) \mapsto \sum_i a_i w_i \end{aligned} ' title='\displaystyle \begin{aligned} \phi: F^{2^k-1} \rightarrow F^k \\ (a_1,\hdots, a_{2^k-1}) \mapsto \sum_i a_i w_i \end{aligned} ' class='latex' /></p>
<p>Let <img src='http://s.wordpress.com/latex.php?latex=%7BH%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{H}' title='{H}' class='latex' /> be the kernel of that application. Then, it is not hard to see that <img src='http://s.wordpress.com/latex.php?latex=%7BH%2C%20H%2Be_1%2C%20%5Chdots%2C%20H%2Be_%7B2%5Ek-1%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{H, H+e_1, \hdots, H+e_{2^k-1}}' title='{H, H+e_1, \hdots, H+e_{2^k-1}}' class='latex' /> is a partition of <img src='http://s.wordpress.com/latex.php?latex=%7BF%5E%7B2%5Ek-1%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{F^{2^k-1}}' title='{F^{2^k-1}}' class='latex' /> and also that because of that fact, for each <img src='http://s.wordpress.com/latex.php?latex=%7Bx%20%5Cin%20F%5E%7B2%5Ek-1%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x \in F^{2^k-1}}' title='{x \in F^{2^k-1}}' class='latex' /> either <img src='http://s.wordpress.com/latex.php?latex=%7Bx%20%5Cin%20H%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x \in H}' title='{x \in H}' class='latex' /> or exists a unique <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}' title='{i}' class='latex' /> s.t. <img src='http://s.wordpress.com/latex.php?latex=%7Bx%20%2B%20e_i%20%5Cin%20H%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x + e_i \in H}' title='{x + e_i \in H}' class='latex' />. This gives an algorithm for just one player to guess his correct color. Let <img src='http://s.wordpress.com/latex.php?latex=%7Bx%20%5Cin%20F%5E%7B2%5Ek-1%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x \in F^{2^k-1}}' title='{x \in F^{2^k-1}}' class='latex' /> be the color vector of the hats. Player <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}' title='{i}' class='latex' /> sees this vector as:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%28x_1%2C%20%5Chdots%2C%20x_%7Bi-1%7D%2C%20%3F%2C%20x_%7Bi%2B1%7D%2C%20%5Chdots%2C%20x_n%29&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle (x_1, \hdots, x_{i-1}, ?, x_{i+1}, \hdots, x_n)' title='\displaystyle (x_1, \hdots, x_{i-1}, ?, x_{i+1}, \hdots, x_n)' class='latex' /></p>
<p>which can be <img src='http://s.wordpress.com/latex.php?latex=%7B%28x_1%2C%20%5Chdots%2C%20x_%7Bi-1%7D%2C%200%2C%20x_%7Bi%2B1%7D%2C%20%5Chdots%2C%20x_n%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(x_1, \hdots, x_{i-1}, 0, x_{i+1}, \hdots, x_n)}' title='{(x_1, \hdots, x_{i-1}, 0, x_{i+1}, \hdots, x_n)}' class='latex' /> or <img src='http://s.wordpress.com/latex.php?latex=%7B%28x_1%2C%20%5Chdots%2C%20x_%7Bi-1%7D%2C%201%2C%20x_%7Bi%2B1%7D%2C%20%5Chdots%2C%20x_n%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(x_1, \hdots, x_{i-1}, 1, x_{i+1}, \hdots, x_n)}' title='{(x_1, \hdots, x_{i-1}, 1, x_{i+1}, \hdots, x_n)}' class='latex' />. The strategy is: if either one of those vector is in <img src='http://s.wordpress.com/latex.php?latex=%7BH%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{H}' title='{H}' class='latex' />, write the color corresponding to the other vector. If both are out of <img src='http://s.wordpress.com/latex.php?latex=%7BH%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{H}' title='{H}' class='latex' />, pass. The team wins iff <img src='http://s.wordpress.com/latex.php?latex=%7Bx%20%5Cnotin%20H%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x \notin H}' title='{x \notin H}' class='latex' />, what happens with <img src='http://s.wordpress.com/latex.php?latex=%7B1%20-%20%5Cfrac%7B1%7D%7B2%5Ek%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1 - \frac{1}{2^k}}' title='{1 - \frac{1}{2^k}}' class='latex' /> probability. Is is an easy and fun exercise to prove those facts. Or you can refer to the solution I just wrote.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-164" title="hats2" src="http://www.bigredbits.com/wp-content/uploads/2009/10/hats2.png" alt="hats2" width="502" height="95" /></p>
<p>Now, we can complicate it a bit more: we can add other colors and other distributions. But I wanted to move to a different problem: the paper <a href="http://www.ece.northwestern.edu/~hartline/papers/auctions-STOC-05.ps">Derandomization of Auctions</a> showed me an impressive thing: we can use coding theory to derandomize algorithms. To illustrate their ideas, they propose the following problem:</p>
<blockquote><p><strong>Color guessing problem:</strong> There are <img src='http://s.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> people wearing hats of <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}' title='{k}' class='latex' /> different colors. If each person can see everyone else&#8217;s hats but not his or her own. Each person needs to guess the color of his own hat. We want a <strong>deterministic</strong> guessing algorithm that <img src='http://s.wordpress.com/latex.php?latex=%7B1%2Fk%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1/k}' title='{1/k}' class='latex' /> fraction of each color class is guessed correctly.</p></blockquote>
<p>The problem is very easy if we have a source of random bits. Each person guesses some color at random. It seems very complicated to do that without random bits. Surprisingly, we will solve that using a flow computation:</p>
<p>Let <img src='http://s.wordpress.com/latex.php?latex=%7Bc%20%3D%20%28c_1%2C%20%5Chdots%2C%20c_n%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c = (c_1, \hdots, c_n)}' title='{c = (c_1, \hdots, c_n)}' class='latex' /> be an array of colors <img src='http://s.wordpress.com/latex.php?latex=%7Bc_%7B-i%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c_{-i}}' title='{c_{-i}}' class='latex' /> the array with color <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}' title='{i}' class='latex' /> removed. Consider the following flow network: nodes <img src='http://s.wordpress.com/latex.php?latex=%7Bs%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{s}' title='{s}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Bt%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{t}' title='{t}' class='latex' /> (source and sink), nodes <img src='http://s.wordpress.com/latex.php?latex=%7Bv_%7Bc_%7B-i%7D%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_{c_{-i}}}' title='{v_{c_{-i}}}' class='latex' /> for each <img src='http://s.wordpress.com/latex.php?latex=%7Bc_%7B-i%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c_{-i}}' title='{c_{-i}}' class='latex' />. There are <img src='http://s.wordpress.com/latex.php?latex=%7Bn%20%5Ccdot%20k%5E%7Bn-1%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{n \cdot k^{n-1}}' title='{n \cdot k^{n-1}}' class='latex' /> such nodes. Consider also nodes in the form <img src='http://s.wordpress.com/latex.php?latex=%7Bu_%7B%5Cgamma%2C%20c%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_{\gamma, c})}' title='{u_{\gamma, c})}' class='latex' /> where <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cgamma%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\gamma}' title='{\gamma}' class='latex' /> is a color (<img src='http://s.wordpress.com/latex.php?latex=%7B1%2C%20%5Chdots%2C%20k%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1, \hdots, k}' title='{1, \hdots, k}' class='latex' />) and <img src='http://s.wordpress.com/latex.php?latex=%7Bc%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c}' title='{c}' class='latex' /> is a color vector. There are <img src='http://s.wordpress.com/latex.php?latex=%7Bk%5E%7Bn%2B1%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k^{n+1}}' title='{k^{n+1}}' class='latex' /> such nodes.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-165" title="hats_net" src="http://www.bigredbits.com/wp-content/uploads/2009/10/hats_net.png" alt="hats_net" width="408" height="325" /></p>
<p>We have edges from <img src='http://s.wordpress.com/latex.php?latex=%7Bs%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{s}' title='{s}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7Bv_%7Bc_%7B-i%7D%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_{c_{-i}}}' title='{v_{c_{-i}}}' class='latex' /> for all nodes of that kind. And we have edges from <img src='http://s.wordpress.com/latex.php?latex=%7Bu_%7B%5Cgamma%2C%20c%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_{\gamma, c})}' title='{u_{\gamma, c})}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7Bt%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{t}' title='{t}' class='latex' />. Now, if <img src='http://s.wordpress.com/latex.php?latex=%7Bc%20%3D%20%28%5Cgamma%2C%20c_%7B-i%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c = (\gamma, c_{-i})}' title='{c = (\gamma, c_{-i})}' class='latex' />, i.e., if <img src='http://s.wordpress.com/latex.php?latex=%7Bc_%7B-i%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c_{-i}}' title='{c_{-i}}' class='latex' /> completed in the <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}' title='{i}' class='latex' />-th coordinate with <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cgamma%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\gamma}' title='{\gamma}' class='latex' /> generates <img src='http://s.wordpress.com/latex.php?latex=%7Bc%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c}' title='{c}' class='latex' />, then add an edge from <img src='http://s.wordpress.com/latex.php?latex=%7Bv_%7Bc_%7B-i%7D%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_{c_{-i}}}' title='{v_{c_{-i}}}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7Bu_%7B%5Cgamma%2C%20c%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_{\gamma, c})}' title='{u_{\gamma, c})}' class='latex' />.</p>
<p>Consider the following flow: add <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}' title='{1}' class='latex' /> unit of flow from <img src='http://s.wordpress.com/latex.php?latex=%7Bs%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{s}' title='{s}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7Bv_%7Bc_%7B-i%7D%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_{c_{-i}}}' title='{v_{c_{-i}}}' class='latex' /> and from <img src='http://s.wordpress.com/latex.php?latex=%7Bv_%7Bc_%7B-i%7D%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_{c_{-i}}}' title='{v_{c_{-i}}}' class='latex' /> split that flow in pieces of size <img src='http://s.wordpress.com/latex.php?latex=%7B1%2Fk%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1/k}' title='{1/k}' class='latex' /> and send each to <img src='http://s.wordpress.com/latex.php?latex=%7Bu_%7B%5Cgamma%2C%20c%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_{\gamma, c}}' title='{u_{\gamma, c}}' class='latex' /> for <img src='http://s.wordpress.com/latex.php?latex=%7Bc%20%3D%20%28%5Cgamma%2C%20c_%7B-i%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c = (\gamma, c_{-i})}' title='{c = (\gamma, c_{-i})}' class='latex' />. Now, each node <img src='http://s.wordpress.com/latex.php?latex=%7Bu_%7B%5Cgamma%2C%20c_%7B-i%7D%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_{\gamma, c_{-i}}}' title='{u_{\gamma, c_{-i}}}' class='latex' /> receives <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7Bn_%5Cgamma%28c%29%7D%7B%5Cgamma%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{n_\gamma(c)}{\gamma}}' title='{\frac{n_\gamma(c)}{\gamma}}' class='latex' /> flow, where <img src='http://s.wordpress.com/latex.php?latex=%7Bn_%7B%5Cgamma%7D%28c%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{n_{\gamma}(c)}' title='{n_{\gamma}(c)}' class='latex' /> is the number of occurencies of <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cgamma%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\gamma}' title='{\gamma}' class='latex' /> in <img src='http://s.wordpress.com/latex.php?latex=%7Bc%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c}' title='{c}' class='latex' />. Send all that flow to <img src='http://s.wordpress.com/latex.php?latex=%7Bt%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{t}' title='{t}' class='latex' />.</p>
<p>We can think of that flow as the guessing procedure. When we see <img src='http://s.wordpress.com/latex.php?latex=%7Bc_%7B-i%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c_{-i}}' title='{c_{-i}}' class='latex' /> we choose the guess independently at random and this way, each <img src='http://s.wordpress.com/latex.php?latex=%7Bc%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c}' title='{c}' class='latex' /> receives in expectation <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7Bn_%5Cgamma%28c%29%7D%7B%5Cgamma%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{n_\gamma(c)}{\gamma}}' title='{\frac{n_\gamma(c)}{\gamma}}' class='latex' /> guesses <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cgamma%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\gamma}' title='{\gamma}' class='latex' />. Notice that an integral flow in that graph represents a deterministic guessing procedure: so all we need is an integral flow so that the flow from <img src='http://s.wordpress.com/latex.php?latex=%7Bu_%7B%5Cgamma%2C%20c%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_{\gamma, c}}' title='{u_{\gamma, c}}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7Bt%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{t}' title='{t}' class='latex' /> is <img src='http://s.wordpress.com/latex.php?latex=%7B%5Clfloor%20n_%5Cgamma%20%28c%29%20%2F%20k%20%5Crfloor%20%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\lfloor n_\gamma (c) / k \rfloor }' title='{\lfloor n_\gamma (c) / k \rfloor }' class='latex' />. The flow received is from nodes of the type: <img src='http://s.wordpress.com/latex.php?latex=%7Bv_%7Bc_%7B-i%7D%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_{c_{-i}}}' title='{v_{c_{-i}}}' class='latex' /> and that means that bidder <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}' title='{i}' class='latex' /> in <img src='http://s.wordpress.com/latex.php?latex=%7Bc%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c}' title='{c}' class='latex' />, looking at the other hats will correctly choose <img src='http://s.wordpress.com/latex.php?latex=%7Bc_i%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c_i}' title='{c_i}' class='latex' />, <img src='http://s.wordpress.com/latex.php?latex=%7B%5Clfloor%20n_%5Cgamma%20%28c%29%20%2F%20k%20%5Crfloor%20%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\lfloor n_\gamma (c) / k \rfloor }' title='{\lfloor n_\gamma (c) / k \rfloor }' class='latex' /> times.</p>
<p>Now, define the capacities this way: for all edges from <img src='http://s.wordpress.com/latex.php?latex=%7Bs%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{s}' title='{s}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7Bv_%7Bc_%7B-i%7D%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_{c_{-i}}}' title='{v_{c_{-i}}}' class='latex' /> and from <img src='http://s.wordpress.com/latex.php?latex=%7Bv_%7Bc_%7B-i%7D%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_{c_{-i}}}' title='{v_{c_{-i}}}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7Bu_%7B%5Cgamma%2C%20c%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_{\gamma, c}}' title='{u_{\gamma, c}}' class='latex' /> have capacity <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}' title='{1}' class='latex' /> and from <img src='http://s.wordpress.com/latex.php?latex=%7Bu_%7B%5Cgamma%2C%20c%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_{\gamma, c}}' title='{u_{\gamma, c}}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7Bt%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{t}' title='{t}' class='latex' /> capacity <img src='http://s.wordpress.com/latex.php?latex=%7B%5Clfloor%20n_%5Cgamma%20%28c%29%20%2F%20k%20%5Crfloor%20%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\lfloor n_\gamma (c) / k \rfloor }' title='{\lfloor n_\gamma (c) / k \rfloor }' class='latex' />. There is an integral flow that saturates all edges from <img src='http://s.wordpress.com/latex.php?latex=%7Bu%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u}' title='{u}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7Bt%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{t}' title='{t}' class='latex' />, because of the fractional flow showed. So, the solution gives us a deterministic decision procedure.</p>
<p>In the next blog post, I&#8217;ll try to show the result in the <a href="http://www.ece.northwestern.edu/~hartline/papers/auctions-STOC-05.ps">Derandomization of Auctions</a> that relates that to competitive auctions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/161/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using expanders to prove sum-product inequalities in finite fields</title>
		<link>http://www.bigredbits.com/archives/154</link>
		<comments>http://www.bigredbits.com/archives/154#comments</comments>
		<pubDate>Thu, 24 Sep 2009 03:47:28 +0000</pubDate>
		<dc:creator>renatoppl</dc:creator>
				<category><![CDATA[theory]]></category>
		<category><![CDATA[combinatorics]]></category>
		<category><![CDATA[expanders]]></category>
		<category><![CDATA[finite fields]]></category>
		<category><![CDATA[sum-product]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=154</guid>
		<description><![CDATA[I am happy to have the first guest post of BigRedBits written by Igor Gorodezky about an elegant and exciting result in combinatorics. &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- I&#8217;m fortunate enough to be spending this semester in beautiful Los Angeles as a core participant in the 2009 long program on combinatorics at IPAM (an NSF-funded math institute on UCLA&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I am happy to have the first guest post of BigRedBits written by <a href="http://jay.cam.cornell.edu/~igor/">Igor Gorodezky</a> about an elegant and exciting result in combinatorics.</p>
<p style="text-align: center;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>I&#8217;m fortunate enough to be spending this semester in beautiful Los Angeles as a core participant in the 2009 long program on combinatorics at IPAM (an NSF-funded math institute on UCLA&#8217;s campus). We&#8217;ve recently wrapped up the first part of the program, which consisted of tutorial lectures on various topics in combinatorics. There was an abundance of gorgeous mathematics, and with Renato&#8217;s kind permission I&#8217;d like to hijack his blog and write about what to me was one of the most memorable lectures.</p>
<p>This was a lecture by Jozsef Solymosi of the University of British Columbia describing some of his recent work on the sum-product problem in finite fields. In particular, he outlined a spectral-graph-theoretic proof of a recent sum-product inequality due to Garaev. Solymosi&#8217;s proof is an extremely clever and elegant application of spectral graph theory to a classical problem in combinatorial number theory, and so I thought I&#8217;d present it here. Before stating the result and giving Solymosi&#8217;s proof, let us begin with a very brief introduction to the sum-product problem.</p>
<p><strong>1. Introduction </strong></p>
<p>Given a finite set of real numbers <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' />, define the sum set</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20A%2BA%20%3D%20%5C%7Ba%2Bb%20%5Cmid%20a%2Cb%20%5Cin%20A%5C%7D%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  A+A = \{a+b \mid a,b \in A\} ' title='\displaystyle  A+A = \{a+b \mid a,b \in A\} ' class='latex' /></p>
<p>and the product set</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20A%20%5Ccdot%20A%20%3D%20%5C%7Bab%20%5Cmid%20a%2Cb%20%5Cin%20A%5C%7D.%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  A \cdot A = \{ab \mid a,b \in A\}. ' title='\displaystyle  A \cdot A = \{ab \mid a,b \in A\}. ' class='latex' /></p>
<p>Both the sum set and the product set clearly must have cardinality between <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A|}' title='{|A|}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%7C%5E2%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A|^2}' title='{|A|^2}' class='latex' />. Observe that if <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> is an arithmetic progression then <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%2BA%7C%20%5Capprox%202%7CA%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A+A| \approx 2|A|}' title='{|A+A| \approx 2|A|}' class='latex' /> while <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%20%5Ccdot%20A%7C%20%5Capprox%20%7CA%7C%5E2%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A \cdot A| \approx |A|^2}' title='{|A \cdot A| \approx |A|^2}' class='latex' />, while if <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> is a geometric progression then <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%20%5Ccdot%20A%7C%20%5Capprox%202%7CA%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A \cdot A| \approx 2|A|}' title='{|A \cdot A| \approx 2|A|}' class='latex' /> while <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%20%2B%20A%7C%20%5Capprox%20%7CA%7C%5E2%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A + A| \approx |A|^2}' title='{|A + A| \approx |A|^2}' class='latex' />. Intuition suggests that keeping <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%2BA%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A+A|}' title='{|A+A|}' class='latex' /> small by giving <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> lots of additive structure inevitably blows up <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%20%5Ccdot%20A%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A \cdot A|}' title='{|A \cdot A|}' class='latex' />, while keep <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%20%5Ccdot%20A%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A \cdot A|}' title='{|A \cdot A|}' class='latex' /> small by giving <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> lots of multiplicative structure in turn blows up <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%2BA%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A+A|}' title='{|A+A|}' class='latex' />. For an arbitrary <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' />, one would expect at least one of these sets, if not both, to be fairly large.</p>
<p>Estimating the maximum of <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%2BA%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A+A|}' title='{|A+A|}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%20%5Ccdot%20A%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A \cdot A|}' title='{|A \cdot A|}' class='latex' /> is the <em>sum-product problem</em>. It was posed in a paper by Erdos and Szemeredi, who proved the existence of a small constant <img src='http://s.wordpress.com/latex.php?latex=%7Bc%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c}' title='{c}' class='latex' /> such that</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Cmax%5C%7B%20%7CA%2BA%7C%2C%20%7CA%20%5Ccdot%20A%7C%20%5C%7D%20%3D%20%5COmega%5Cleft%28%20%7CA%7C%5E%7B1%2Bc%7D%20%5Cright%29%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \max\{ |A+A|, |A \cdot A| \} = \Omega\left( |A|^{1+c} \right) ' title='\displaystyle  \max\{ |A+A|, |A \cdot A| \} = \Omega\left( |A|^{1+c} \right) ' class='latex' /></p>
<p>for any finite <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' />. They conjecture that we actually have</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Cmax%5C%7B%20%7CA%2BA%7C%2C%20%7CA%20%5Ccdot%20A%7C%20%5C%7D%20%3D%20%5COmega%5Cleft%28%20%7CA%7C%5E%7B2-%5Cdelta%7D%20%5Cright%29%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \max\{ |A+A|, |A \cdot A| \} = \Omega\left( |A|^{2-\delta} \right) ' title='\displaystyle  \max\{ |A+A|, |A \cdot A| \} = \Omega\left( |A|^{2-\delta} \right) ' class='latex' /></p>
<p>for any <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cdelta%20%3E%200%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\delta &gt; 0}' title='{\delta &gt; 0}' class='latex' /> and sufficiently large <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A|}' title='{|A|}' class='latex' />. In other words, the value of <img src='http://s.wordpress.com/latex.php?latex=%7Bc%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c}' title='{c}' class='latex' /> in their bound can be made arbitrarily close to 1.</p>
<p>Much ink has been spilled in attempts to push up the value of <img src='http://s.wordpress.com/latex.php?latex=%7Bc%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c}' title='{c}' class='latex' />. At present, the best sum-product bound is due to Solymosi and gives <img src='http://s.wordpress.com/latex.php?latex=%7Bc%20%5Capprox%203%2F11%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c \approx 3/11}' title='{c \approx 3/11}' class='latex' />. As an aside, I want to mention an extremely simple and elegant probabilistic proof of Elekes that gives <img src='http://s.wordpress.com/latex.php?latex=%7Bc%3D1%2F4%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c=1/4}' title='{c=1/4}' class='latex' />; it is detailed in Alon and Spencer&#8217;s classic text <em>The Probabilistic Method</em>, and is an absolute gem (look in the chapter on crossing numbers of graphs).</p>
<p><strong>2. The finite field variant </strong></p>
<p>Solymosi&#8217;s IPAM lecture was not, however, on this original sum-product problem, but rather on its natural finite field analogue: if <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> is a subset of <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathbb%20F_p%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathbb F_p}' title='{\mathbb F_p}' class='latex' />, the finite field of prime order <img src='http://s.wordpress.com/latex.php?latex=%7Bp%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p}' title='{p}' class='latex' />, what can we say about the maximum of <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%2BA%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A+A|}' title='{|A+A|}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%20%5Ccdot%20A%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A \cdot A|}' title='{|A \cdot A|}' class='latex' />? Observe that it is important to consider fields whose order is prime and not the power of a prime, for in the latter case we could take <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> to be a subring and end up with the degenerate case <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%7C%3D%7CA%2BA%7C%3D%7CA%20%5Ccdot%20A%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A|=|A+A|=|A \cdot A|}' title='{|A|=|A+A|=|A \cdot A|}' class='latex' />.</p>
<p>Bourgain, Katz and Tao got the party started in 2004 by proving the following sum-product bound.</p>
<blockquote><p><strong>Theorem 1</strong> <em> For all <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cepsilon%20%3E%200%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\epsilon &gt; 0}' title='{\epsilon &gt; 0}' class='latex' /> there exists <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cdelta%20%3E%200%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\delta &gt; 0}' title='{\delta &gt; 0}' class='latex' /> such that if <img src='http://s.wordpress.com/latex.php?latex=%7BA%20%5Csubseteq%20%5Cmathbb%20F_p%20%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A \subseteq \mathbb F_p }' title='{A \subseteq \mathbb F_p }' class='latex' /> with <img src='http://s.wordpress.com/latex.php?latex=%7Bp%5E%7B%5Cepsilon%7D%20%3C%20%7CA%7C%20%3C%20p%5E%7B1%2B%5Cepsilon%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p^{\epsilon} &lt; |A| &lt; p^{1+\epsilon}}' title='{p^{\epsilon} &lt; |A| &lt; p^{1+\epsilon}}' class='latex' /> then<br />
</em></p>
<p align="center"><em><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Cmax%5C%7B%20%7CA%2BA%7C%2C%20%7CA%20%5Ccdot%20A%7C%20%5C%7D%20%3D%20%5COmega%5Cleft%28%20%7CA%7C%5E%7B1%2B%5Cdelta%7D%20%5Cright%29.%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \max\{ |A+A|, |A \cdot A| \} = \Omega\left( |A|^{1+\delta} \right). ' title='\displaystyle  \max\{ |A+A|, |A \cdot A| \} = \Omega\left( |A|^{1+\delta} \right). ' class='latex' /></em></p>
<p><em> </em></p></blockquote>
<p>We note that the implied constant also depends on <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cepsilon%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\epsilon}' title='{\epsilon}' class='latex' />. The best known bound is the following, due to Garaev (2007).</p>
<blockquote><p><strong>Theorem 2</strong> <em> If <img src='http://s.wordpress.com/latex.php?latex=%7BA%20%5Csubseteq%20%5Cmathbb%20F_p%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A \subseteq \mathbb F_p}' title='{A \subseteq \mathbb F_p}' class='latex' /> then<br />
</em></p>
<p align="center"><em><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Cmax%5C%7B%20%7CA%2BA%7C%2C%20%7CA%20%5Ccdot%20A%7C%20%5C%7D%20%3D%20%5COmega%5Cleft%28%20%5Cmin%5Cleft%5C%7B%20%7CA%7C%5E%7B1%2F2%7Dp%5E%7B1%2F2%7D%2C%7CA%7C%5E2p%5E%7B-1%2F2%7D%20%5Cright%5C%7D%20%5Cright%29.%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \max\{ |A+A|, |A \cdot A| \} = \Omega\left( \min\left\{ |A|^{1/2}p^{1/2},|A|^2p^{-1/2} \right\} \right). ' title='\displaystyle  \max\{ |A+A|, |A \cdot A| \} = \Omega\left( \min\left\{ |A|^{1/2}p^{1/2},|A|^2p^{-1/2} \right\} \right). ' class='latex' /></em></p>
<p><em> </em></p></blockquote>
<p>To illustrate the theorem, observe that if <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%7C%20%5Capprox%20p%5E%7B2%2F3%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A| \approx p^{2/3}}' title='{|A| \approx p^{2/3}}' class='latex' /> then <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmax%5C%7B%20%7CA%2BA%7C%2C%20%7CA%20%5Ccdot%20A%7C%20%5C%7D%20%3D%20%5COmega%28%20%7CA%7C%5E%7B5%2F4%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\max\{ |A+A|, |A \cdot A| \} = \Omega( |A|^{5/4})}' title='{\max\{ |A+A|, |A \cdot A| \} = \Omega( |A|^{5/4})}' class='latex' />. It is this theorem that Solymosi proves using spectral graph theory (Garaev&#8217;s original proof went by way of Fourier analysis and the estimation of exponential sums).</p>
<p><strong>3. Solymosi&#8217;s proof </strong></p>
<p>In this section we give Solymosi&#8217;s proof of Theorem 2 (we will assume familiarity with basic facts about eigenvalues and eigenvectors of adjacency matrices). Let us first establish some notation. Consider a <img src='http://s.wordpress.com/latex.php?latex=%7Bd%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{d}' title='{d}' class='latex' />-regular graph <img src='http://s.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> and let the eigenvalues of its adjacency matrix be</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20d%3D%5Clambda_1%20%5Cgeq%20%5Clambda_2%20%5Cgeq%20%5Cdots%20%5Cgeq%20%5Clambda_n.%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  d=\lambda_1 \geq \lambda_2 \geq \dots \geq \lambda_n. ' title='\displaystyle  d=\lambda_1 \geq \lambda_2 \geq \dots \geq \lambda_n. ' class='latex' /></p>
<p>As usual, we define</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Clambda%28G%29%20%3D%20%5Cmax%5C%7B%20%5Clambda_2%2C%7C%5Clambda_n%7C%5C%7D.%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \lambda(G) = \max\{ \lambda_2,|\lambda_n|\}. ' title='\displaystyle  \lambda(G) = \max\{ \lambda_2,|\lambda_n|\}. ' class='latex' /></p>
<p>Recall that if <img src='http://s.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> is connected and non-bipartite then <img src='http://s.wordpress.com/latex.php?latex=%7B%5Clambda%28G%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\lambda(G)}' title='{\lambda(G)}' class='latex' /> is strictly smaller than <img src='http://s.wordpress.com/latex.php?latex=%7Bd%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{d}' title='{d}' class='latex' />, and such a graph is an expander if <img src='http://s.wordpress.com/latex.php?latex=%7Bd-%5Clambda%28G%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{d-\lambda(G)}' title='{d-\lambda(G)}' class='latex' /> is bounded below by some constant.</p>
<p>We will make use of a fundamental result in spectral graph theory: the expander mixing lemma.</p>
<blockquote><p><strong>Lemma 3</strong> <em> Let <img src='http://s.wordpress.com/latex.php?latex=%7BG%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G}' title='{G}' class='latex' /> be a <img src='http://s.wordpress.com/latex.php?latex=%7Bd%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{d}' title='{d}' class='latex' />-regular graph with <img src='http://s.wordpress.com/latex.php?latex=%7Bn%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{n}' title='{n}' class='latex' /> vertices. For all <img src='http://s.wordpress.com/latex.php?latex=%7BS%2CT%20%5Csubseteq%20V%28G%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S,T \subseteq V(G)}' title='{S,T \subseteq V(G)}' class='latex' /> we have<br />
</em></p>
<p align="center"><em><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Cleft%7C%20e%28S%2CT%29%20-%20%5Cfrac%7Bd%7D%7Bn%7D%7CS%7C%7CT%7C%20%5Cright%7C%20%5Cleq%20%5Clambda%28G%29%20%5Csqrt%7B%7CS%7C%7CT%7C%7D%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \left| e(S,T) - \frac{d}{n}|S||T| \right| \leq \lambda(G) \sqrt{|S||T|} ' title='\displaystyle  \left| e(S,T) - \frac{d}{n}|S||T| \right| \leq \lambda(G) \sqrt{|S||T|} ' class='latex' /></em></p>
<p><em> where <img src='http://s.wordpress.com/latex.php?latex=%7Be%28S%2CT%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{e(S,T)}' title='{e(S,T)}' class='latex' /> is the number of edges with one endpoint in <img src='http://s.wordpress.com/latex.php?latex=%7BS%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S}' title='{S}' class='latex' /> and the other in <img src='http://s.wordpress.com/latex.php?latex=%7BT%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{T}' title='{T}' class='latex' />. </em></p></blockquote>
<p>The proof of the lemma is straightforward; we omit it because of space considerations, but it can be found in the survey on expanders by Linial, Hoory, and Wigderson.</p>
<p>Now, back to Theorem 2: we have a finite field <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathbb%20F_p%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathbb F_p}' title='{\mathbb F_p}' class='latex' /> and a subset <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' />. Solymosi proves the desired lower bound on <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmax%5C%7B%20%7CA%2BA%7C%2C%20%7CA%20%5Ccdot%20A%7C%20%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\max\{ |A+A|, |A \cdot A| \}}' title='{\max\{ |A+A|, |A \cdot A| \}}' class='latex' /> by constructing a <em>sum-product graph</em> <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7BSP%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{SP}}' title='{G_{SP}}' class='latex' /> over <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathbb%20F_p%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathbb F_p}' title='{\mathbb F_p}' class='latex' /> and using its spectral properties to reason about <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%2BA%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A+A|}' title='{|A+A|}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%7CA%20%5Ccdot%20A%7C%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|A \cdot A|}' title='{|A \cdot A|}' class='latex' />. So without further ado, let&#8217;s define <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7BSP%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{SP}}' title='{G_{SP}}' class='latex' />.</p>
<p>The vertex set of <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7BSP%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{SP}}' title='{G_{SP}}' class='latex' /> is <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleft%28%20%5Cmathbb%20F_p%20%5Csetminus%20%5C%7B0%5C%7D%20%5Cright%29%20%5Ctimes%20%5Cmathbb%20F_p%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\left( \mathbb F_p \setminus \{0\} \right) \times \mathbb F_p}' title='{\left( \mathbb F_p \setminus \{0\} \right) \times \mathbb F_p}' class='latex' />, and two vertices <img src='http://s.wordpress.com/latex.php?latex=%7B%28a%2Cb%29%2C%28c%2Cd%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(a,b),(c,d)}' title='{(a,b),(c,d)}' class='latex' /> have an edge between them if <img src='http://s.wordpress.com/latex.php?latex=%7Bac%3Db%2Bd%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{ac=b+d}' title='{ac=b+d}' class='latex' />. It is easy to see that <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7BSP%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{SP}}' title='{G_{SP}}' class='latex' /> has <img src='http://s.wordpress.com/latex.php?latex=%7Bp%28p-1%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p(p-1)}' title='{p(p-1)}' class='latex' /> vertices and is <img src='http://s.wordpress.com/latex.php?latex=%7B%28p-1%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(p-1)}' title='{(p-1)}' class='latex' />-regular (some edges are loops). We also have the following key fact.</p>
<blockquote><p><strong>Lemma 4</strong> <em><a name="neighbors"></a> Consider <img src='http://s.wordpress.com/latex.php?latex=%7B%28a%2Cb%29%2C%28c%2Cd%29%20%5Cin%20V%28G_%7BSP%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(a,b),(c,d) \in V(G_{SP})}' title='{(a,b),(c,d) \in V(G_{SP})}' class='latex' />. If <img src='http://s.wordpress.com/latex.php?latex=%7Ba%3Dc%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{a=c}' title='{a=c}' class='latex' /> or <img src='http://s.wordpress.com/latex.php?latex=%7Bb%3Dd%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b=d}' title='{b=d}' class='latex' /> then these two vertices have no common neighbor, otherwise they have precisely one. </em></p></blockquote>
<p><em>Proof:</em> This follows from the fact that the unique solution of the system</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Cbegin%7Barray%7D%7Bc%7D%20ax%3Db%2By%20%5C%5C%20cx%3Dd%2By%20%5Cend%7Barray%7D%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \begin{array}{c} ax=b+y \\ cx=d+y \end{array} ' title='\displaystyle  \begin{array}{c} ax=b+y \\ cx=d+y \end{array} ' class='latex' /></p>
<p>is given by</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Cbegin%7Barray%7D%7Bc%7D%20x%20%3D%20%28b-d%29%28a-c%29%5E%7B-1%7D%5C%5C%202y%20%3D%20x%28a%2Bc%29-b-d%20%5Cend%7Barray%7D%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \begin{array}{c} x = (b-d)(a-c)^{-1}\\ 2y = x(a+c)-b-d \end{array} ' title='\displaystyle  \begin{array}{c} x = (b-d)(a-c)^{-1}\\ 2y = x(a+c)-b-d \end{array} ' class='latex' /></p>
<p>which is only defined when <img src='http://s.wordpress.com/latex.php?latex=%7Ba%20%5Cneq%20c%2C%20b%20%5Cneq%20d%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{a \neq c, b \neq d}' title='{a \neq c, b \neq d}' class='latex' />. <img src='http://s.wordpress.com/latex.php?latex=%5CBox&#038;bg=T&#038;fg=000000&#038;s=0' alt='\Box' title='\Box' class='latex' /></p>
<p>Lemma <a href="#neighbors">4</a> can be used to show that <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7BSP%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{SP}}' title='{G_{SP}}' class='latex' /> is in fact a very good expander (those more familiar with the literature on expanders will recognize that moreover, <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7BSP%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{SP}}' title='{G_{SP}}' class='latex' /> is almost a Ramanujan graph).</p>
<blockquote><p><strong>Lemma 5</strong> <em><a name="eig"></a> <img src='http://s.wordpress.com/latex.php?latex=%7B%5Clambda%28G_%7BSP%7D%29%20%3C%20%5Csqrt%7B3p%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\lambda(G_{SP}) &lt; \sqrt{3p}}' title='{\lambda(G_{SP}) &lt; \sqrt{3p}}' class='latex' />. </em></p></blockquote>
<p><em>Proof:</em> Let <img src='http://s.wordpress.com/latex.php?latex=%7BM%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{M}' title='{M}' class='latex' /> be the adjacency matrix of <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7BSP%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{SP}}' title='{G_{SP}}' class='latex' />. Recall that the <img src='http://s.wordpress.com/latex.php?latex=%7B%28u%2Cv%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(u,v)}' title='{(u,v)}' class='latex' />-entry of <img src='http://s.wordpress.com/latex.php?latex=%7BM%5E2%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{M^2}' title='{M^2}' class='latex' /> is the number of walks from <img src='http://s.wordpress.com/latex.php?latex=%7Bu%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u}' title='{u}' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}' title='{v}' class='latex' /> of length 2. If <img src='http://s.wordpress.com/latex.php?latex=%7Bu%3Dv%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u=v}' title='{u=v}' class='latex' />, this number is the degree <img src='http://s.wordpress.com/latex.php?latex=%7Bp-1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p-1}' title='{p-1}' class='latex' />, while if <img src='http://s.wordpress.com/latex.php?latex=%7Bu%20%5Cneq%20v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u \neq v}' title='{u \neq v}' class='latex' />, with <img src='http://s.wordpress.com/latex.php?latex=%7Bu%3D%28a%2Cb%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u=(a,b)}' title='{u=(a,b)}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Bv%3D%28c%2Cd%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v=(c,d)}' title='{v=(c,d)}' class='latex' />, Lemma <a href="#neighbors">4</a> tells us that this number is 1 if <img src='http://s.wordpress.com/latex.php?latex=%7Ba%5Cneq%20c%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{a\neq c}' title='{a\neq c}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Bb%20%5Cneq%20d%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b \neq d}' title='{b \neq d}' class='latex' /> and 0 otherwise. It follows that <a name="eqq"><br />
</a></p>
<p align="center"><a name="eqq"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20M%5E2%20%3D%20J%2B%28p-2%29I-E%20%5C%20%5C%20%5C%20%5C%20%5C%20%281%29&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  M^2 = J+(p-2)I-E \ \ \ \ \ (1)' title='\displaystyle  M^2 = J+(p-2)I-E \ \ \ \ \ (1)' class='latex' /></a></p>
<p>where <img src='http://s.wordpress.com/latex.php?latex=%7BJ%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{J}' title='{J}' class='latex' /> is the all-1 matrix, <img src='http://s.wordpress.com/latex.php?latex=%7BI%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{I}' title='{I}' class='latex' /> is the identity matrix, and <img src='http://s.wordpress.com/latex.php?latex=%7BE%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E}' title='{E}' class='latex' /> is the adjacency matrix of the graph <img src='http://s.wordpress.com/latex.php?latex=%7BG_E%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_E}' title='{G_E}' class='latex' /> whose vertex set is the same as <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7BSP%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{SP}}' title='{G_{SP}}' class='latex' />, and in which two vertices <img src='http://s.wordpress.com/latex.php?latex=%7B%28a%2Cb%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(a,b)}' title='{(a,b)}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%28c%2Cd%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(c,d)}' title='{(c,d)}' class='latex' /> are connected by an edge if <img src='http://s.wordpress.com/latex.php?latex=%7Ba%3Dc%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{a=c}' title='{a=c}' class='latex' /> or <img src='http://s.wordpress.com/latex.php?latex=%7Bb%3Dd%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b=d}' title='{b=d}' class='latex' />. It is easy to see that <img src='http://s.wordpress.com/latex.php?latex=%7BG_E%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_E}' title='{G_E}' class='latex' /> is a <img src='http://s.wordpress.com/latex.php?latex=%7B%282p-3%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(2p-3)}' title='{(2p-3)}' class='latex' />-regular graph.</p>
<p>Since <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7BSP%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{SP}}' title='{G_{SP}}' class='latex' /> is regular and its adjacency matrix <img src='http://s.wordpress.com/latex.php?latex=%7BM%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{M}' title='{M}' class='latex' /> is symmetric, we know that the all-1 vector is an eigenvector of <img src='http://s.wordpress.com/latex.php?latex=%7BM%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{M}' title='{M}' class='latex' /> and all other eigenvectors are orthogonal to it. It is easy to check that <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7BSP%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{SP}}' title='{G_{SP}}' class='latex' /> is connected and not bipartite, so that the eigenvalue <img src='http://s.wordpress.com/latex.php?latex=%7Bp-1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p-1}' title='{p-1}' class='latex' /> has multiplicity 1, and for any other eigenvalue <img src='http://s.wordpress.com/latex.php?latex=%7B%5Ctheta%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\theta}' title='{\theta}' class='latex' /> we have <img src='http://s.wordpress.com/latex.php?latex=%7B%7C%5Ctheta%7C%20%3C%20p-1%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|\theta| &lt; p-1}' title='{|\theta| &lt; p-1}' class='latex' />.</p>
<p>Given such an eigenvalue <img src='http://s.wordpress.com/latex.php?latex=%7B%5Ctheta%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\theta}' title='{\theta}' class='latex' />, let <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cbf%20v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\bf v}' title='{\bf v}' class='latex' /> be a corresponding eigenvector. Then by equation~<a href="#eqq">(1)</a>,</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Ctheta%5E2%20%5Cmathbf%7Bv%7D%20%3D%20%28p-2%29%5Cmathbf%7Bv%7D%20-%20E%20%5Cmathbf%20v%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \theta^2 \mathbf{v} = (p-2)\mathbf{v} - E \mathbf v ' title='\displaystyle  \theta^2 \mathbf{v} = (p-2)\mathbf{v} - E \mathbf v ' class='latex' /></p>
<p>since <img src='http://s.wordpress.com/latex.php?latex=%7BJ%5Cmathbf%20v%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{J\mathbf v}' title='{J\mathbf v}' class='latex' /> is the all-0 vector. Therefore <img src='http://s.wordpress.com/latex.php?latex=%7Bp-2-%5Ctheta%5E2%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p-2-\theta^2}' title='{p-2-\theta^2}' class='latex' /> is an eigenvalue of <img src='http://s.wordpress.com/latex.php?latex=%7BE%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E}' title='{E}' class='latex' />.</p>
<p>Now, the degree of <img src='http://s.wordpress.com/latex.php?latex=%7BG_E%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_E}' title='{G_E}' class='latex' /> is an upper bound on the absolute value of every eigenvalue of <img src='http://s.wordpress.com/latex.php?latex=%7BE%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E}' title='{E}' class='latex' />. It follows that</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20p-2-%5Ctheta%5E2%20%5Cgeq%20-2p%2B3%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  p-2-\theta^2 \geq -2p+3 ' title='\displaystyle  p-2-\theta^2 \geq -2p+3 ' class='latex' /></p>
<p>which implies <img src='http://s.wordpress.com/latex.php?latex=%7B%7C%5Ctheta%7C%20%3C%20%5Csqrt%7B3p%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{|\theta| &lt; \sqrt{3p}}' title='{|\theta| &lt; \sqrt{3p}}' class='latex' />, as desired. <img src='http://s.wordpress.com/latex.php?latex=%5CBox&#038;bg=T&#038;fg=000000&#038;s=0' alt='\Box' title='\Box' class='latex' /></p>
<p>So <img src='http://s.wordpress.com/latex.php?latex=%7BG_%7BSP%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G_{SP}}' title='{G_{SP}}' class='latex' /> is an expander; very good, but what about <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' />? Solymosi introduces <img src='http://s.wordpress.com/latex.php?latex=%7BA%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{A}' title='{A}' class='latex' /> into the proof through very clever use of the expander mixing lemma: if we define <img src='http://s.wordpress.com/latex.php?latex=%7BS%2CT%20%5Csubseteq%20V%28G_%7BSP%7D%29%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S,T \subseteq V(G_{SP})}' title='{S,T \subseteq V(G_{SP})}' class='latex' /> by</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20S%3D%28A%20%5Ccdot%20A%29%20%5Ctimes%20%28-A%29%2C%20%5C%20%5Cquad%20T%3D%28A%5E%7B-1%7D%29%20%5Ctimes%20%28A%2BA%29%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  S=(A \cdot A) \times (-A), \ \quad T=(A^{-1}) \times (A+A) ' title='\displaystyle  S=(A \cdot A) \times (-A), \ \quad T=(A^{-1}) \times (A+A) ' class='latex' /></p>
<p>then that lemma tells us that</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20e%28S%2CT%29%20%5Cleq%20%5Cfrac%7B%7CS%7C%7CT%7C%7D%7Bp%7D%20%2B%20%5Clambda%28G_%7BSP%7D%29%20%5Csqrt%7B%7CS%7C%7CT%7C%7D%20%3C%20%5Cfrac%7B%7CA%5Ccdot%20A%7C%7CA%2BA%7C%7CA%7C%5E2%7D%7Bp%7D%20%2B%20%5Csqrt%7B3p%7CA%20%5Ccdot%20A%7C%7CA%2BA%7C%7CA%7C%5E2%7D%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  e(S,T) \leq \frac{|S||T|}{p} + \lambda(G_{SP}) \sqrt{|S||T|} &lt; \frac{|A\cdot A||A+A||A|^2}{p} + \sqrt{3p|A \cdot A||A+A||A|^2} ' title='\displaystyle  e(S,T) \leq \frac{|S||T|}{p} + \lambda(G_{SP}) \sqrt{|S||T|} &lt; \frac{|A\cdot A||A+A||A|^2}{p} + \sqrt{3p|A \cdot A||A+A||A|^2} ' class='latex' /></p>
<p>where the second inequality used Lemma <a href="#eig">5</a>.</p>
<p>But for every <img src='http://s.wordpress.com/latex.php?latex=%7Ba%2Cb%2Cc%20%5Cin%20A%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{a,b,c \in A}' title='{a,b,c \in A}' class='latex' /> there is an edge between <img src='http://s.wordpress.com/latex.php?latex=%7B%28ab%2C-c%29%20%5Cin%20S%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(ab,-c) \in S}' title='{(ab,-c) \in S}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%28b%5E%7B-1%7D%2Ca%2Bc%29%20%5Cin%20T%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(b^{-1},a+c) \in T}' title='{(b^{-1},a+c) \in T}' class='latex' />, so that <img src='http://s.wordpress.com/latex.php?latex=%7Be%28S%2CT%29%20%5Cgeq%20%7CA%7C%5E3%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{e(S,T) \geq |A|^3}' title='{e(S,T) \geq |A|^3}' class='latex' />. Using this observation and rearranging the resulting inequality gives</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Csqrt%7B%7CA%20%5Ccdot%20A%7C%7CA%2BA%7C%7D%20%3E%20%5Cleft%28%20%5Cfrac%7B%5Csqrt%7B%7CA%20%5Ccdot%20A%7C%7CA%2BA%7C%7D%7D%7Bp%7CA%7C%7D%2B%5Csqrt%7B3%7D%5Cfrac%7Bp%5E%7B1%2F2%7D%7D%7B%7CA%7C%5E2%7D%20%5Cright%29%5E%7B-1%7D.%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \sqrt{|A \cdot A||A+A|} &gt; \left( \frac{\sqrt{|A \cdot A||A+A|}}{p|A|}+\sqrt{3}\frac{p^{1/2}}{|A|^2} \right)^{-1}. ' title='\displaystyle  \sqrt{|A \cdot A||A+A|} &gt; \left( \frac{\sqrt{|A \cdot A||A+A|}}{p|A|}+\sqrt{3}\frac{p^{1/2}}{|A|^2} \right)^{-1}. ' class='latex' /></p>
<p>Now, since <img src='http://s.wordpress.com/latex.php?latex=%7B%28x%2By%29%5E%7B-1%7D%20%5Cgeq%20%5Cfrac%7B1%7D%7B2%7D%5Cmin%5C%7Bx%5E%7B-1%7D%2Cy%5E%7B-1%7D%5C%7D%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(x+y)^{-1} \geq \frac{1}{2}\min\{x^{-1},y^{-1}\}}' title='{(x+y)^{-1} \geq \frac{1}{2}\min\{x^{-1},y^{-1}\}}' class='latex' /> for positive <img src='http://s.wordpress.com/latex.php?latex=%7Bx%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x}' title='{x}' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7By%7D&#038;bg=T&#038;fg=000000&#038;s=0' alt='{y}' title='{y}' class='latex' />, we find that</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Csqrt%7B%7CA%20%5Ccdot%20A%7C%7CA%2BA%7C%7D%20%3D%20%5COmega%5Cleft%28%20%5Cmin%5Cleft%5C%7B%20%5Cfrac%7Bp%7CA%7C%7D%7B%5Csqrt%7B%7CA%20%5Ccdot%20A%7C%7CA%2BA%7C%7D%7D%2C%20%7CA%7C%5E2%20p%5E%7B-1%2F2%7D%20%5Cright%5C%7D%20%5Cright%29%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \sqrt{|A \cdot A||A+A|} = \Omega\left( \min\left\{ \frac{p|A|}{\sqrt{|A \cdot A||A+A|}}, |A|^2 p^{-1/2} \right\} \right) ' title='\displaystyle  \sqrt{|A \cdot A||A+A|} = \Omega\left( \min\left\{ \frac{p|A|}{\sqrt{|A \cdot A||A+A|}}, |A|^2 p^{-1/2} \right\} \right) ' class='latex' /></p>
<p>which in turn implies</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Csqrt%7B%7CA%20%5Ccdot%20A%7C%7CA%2BA%7C%7D%20%3D%20%5COmega%5Cleft%28%20%5Cmin%5Cleft%5C%7B%20%7CA%7C%5E%7B1%2F2%7Dp%5E%7B1%2F2%7D%2C%20%7CA%7C%5E2%20p%5E%7B-1%2F2%7D%20%5Cright%5C%7D%20%5Cright%29.%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \sqrt{|A \cdot A||A+A|} = \Omega\left( \min\left\{ |A|^{1/2}p^{1/2}, |A|^2 p^{-1/2} \right\} \right). ' title='\displaystyle  \sqrt{|A \cdot A||A+A|} = \Omega\left( \min\left\{ |A|^{1/2}p^{1/2}, |A|^2 p^{-1/2} \right\} \right). ' class='latex' /></p>
<p>To finish the proof, we need only cite the two-term AM-GM inequality:</p>
<p align="center"><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Cmax%5C%7B%20%7CA%2BA%7C%2C%20%7CA%20%5Ccdot%20A%7C%20%5C%7D%20%5Cgeq%20%5Cfrac%7B%7CA%20%5Ccdot%20A%7C%2B%7CA%2BA%7C%7D%7B2%7D%20%5Cgeq%20%5Csqrt%7B%7CA%20%5Ccdot%20A%7C%7CA%2BA%7C%7D%20.%20&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \max\{ |A+A|, |A \cdot A| \} \geq \frac{|A \cdot A|+|A+A|}{2} \geq \sqrt{|A \cdot A||A+A|} . ' title='\displaystyle  \max\{ |A+A|, |A \cdot A| \} \geq \frac{|A \cdot A|+|A+A|}{2} \geq \sqrt{|A \cdot A||A+A|} . ' class='latex' /></p>
<p><strong>4. A very terse bibliography </strong></p>
<p>Solymosi&#8217;s proof is from his paper <a class="snap_noshots" href="http://www.springerlink.com/content/n044057tw410178t/">&#8220;Incidences and the spectra of graphs&#8221;</a> (requires institutional access).</p>
<p>A more knowledgeable treatment of sum-product problems than I could ever provide can be found in <a class="snap_noshots" href="http://terrytao.wordpress.com/tag/sum-product-estimates/">these two entries from Terry Tao&#8217;s blog</a>. In these, Tao provides a detailed introduction to the problem, gives the probabilistic proof of Elekes&#8217; bound, discusses an interesting cryptographic application, and provides many references.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;"><span class="ik"><img id="upi" class="de" src="http://mail.google.com/mail/images/cleardot.gif" alt="" width="16" height="16" /></span></p>
<h3 class="gD" style="color: #00681c;"><span>Igor Gorodezky</span></h3>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/154/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Competitive Auctions</title>
		<link>http://www.bigredbits.com/archives/151</link>
		<comments>http://www.bigredbits.com/archives/151#comments</comments>
		<pubDate>Thu, 17 Sep 2009 19:18:38 +0000</pubDate>
		<dc:creator>renatoppl</dc:creator>
				<category><![CDATA[theory]]></category>
		<category><![CDATA[game theory]]></category>
		<category><![CDATA[mechanism design]]></category>
		<category><![CDATA[profit maximization]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=151</guid>
		<description><![CDATA[This week I will present the Theory Discussion Group about Competitive Auctions. It is mainly a serie of results in papers from Jason Hartline, Andrew Goldberg, Anna Karlin, Amos Fiat, &#8230; The first paper is Competitive Auctions and Digital Goods and the second is Competitive Generalized Auctions. My objective is to begin with a short [...]]]></description>
			<content:encoded><![CDATA[<p>
This week I will present the Theory Discussion Group about Competitive Auctions. It is mainly a serie of results in papers from Jason Hartline, Andrew Goldberg, Anna Karlin, Amos Fiat, &#8230; The first paper is <a class="snap_noshots" href="http://www.ece.northwestern.edu/~hartline/papers/auctions-SODA-01.pdf">Competitive Auctions and Digital Goods</a> and the second is <a class="snap_noshots" href="http://www.ece.northwestern.edu/~hartline/papers/auctions-STOC-02.pdf">Competitive Generalized Auctions</a>. My objective is to begin with a short introduction about Mechanism Design, the concept of truthfulness and the characterization of Truthful Mechanisms for Single Parameter Agents. Then we describe the Random Sampling Auction for Digital Goods and in the end we discuss open questions. I thought writting a blog post was a good way of organizing my ideas to the talk.</p>
<p>
<p><b>1. Mechanism Design and Truthfulness </b></p>
<p><p>
A mechanism is an algorithm augmented with economic incentives. They are usually applied in the following context: there is an algorithmic problem and the input is distributed among several agents that have some interest in the final outcome and therefore they may try manipulate the algorithm. Today we restrict our attention to a specific class of mechanisms called <b>single parameter agents</b>. In that setting, there is a set <img src='http://s.wordpress.com/latex.php?latex=%7BN%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{N}&amp;fg=000000' title='{N}&amp;fg=000000' class='latex' /> consisting of <img src='http://s.wordpress.com/latex.php?latex=%7Bn%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{n}&amp;fg=000000' title='{n}&amp;fg=000000' class='latex' /> agents and a service. Each agent <img src='http://s.wordpress.com/latex.php?latex=%7Bi%20%5Cin%20N%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i \in N}&amp;fg=000000' title='{i \in N}&amp;fg=000000' class='latex' /> has a value <img src='http://s.wordpress.com/latex.php?latex=%7Bv_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_i}&amp;fg=000000' title='{v_i}&amp;fg=000000' class='latex' /> for receiving the service and <img src='http://s.wordpress.com/latex.php?latex=%7B0%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{0}&amp;fg=000000' title='{0}&amp;fg=000000' class='latex' /> otherwise. We can think of <img src='http://s.wordpress.com/latex.php?latex=%7Bv_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_i}&amp;fg=000000' title='{v_i}&amp;fg=000000' class='latex' /> as the maximum player <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> is willing to pay for that service. We call an environment <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BX%7D%20%5Csubseteq%202%5EN%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{X} \subseteq 2^N}&amp;fg=000000' title='{\mathcal{X} \subseteq 2^N}&amp;fg=000000' class='latex' /> the subsets of the bidders that can be simultaneously served. For example:</p>
<p><ol>
<li> Single item auction: <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BX%7D%20%3D%5C%7BS%3B%20%5Cvert%20S%20%5Cvert%20%5Cleq%201%5C%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{X} =\{S; \vert S \vert \leq 1\}}&amp;fg=000000' title='{\mathcal{X} =\{S; \vert S \vert \leq 1\}}&amp;fg=000000' class='latex' />
<li> Multi item auction: <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BX%7D%20%3D%5C%7BS%3B%20%5Cvert%20S%20%5Cvert%20%5Cleq%20k%5C%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{X} =\{S; \vert S \vert \leq k\}}&amp;fg=000000' title='{\mathcal{X} =\{S; \vert S \vert \leq k\}}&amp;fg=000000' class='latex' />
<li> Digital goods auction: <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BX%7D%20%3D2%5EN%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{X} =2^N}&amp;fg=000000' title='{\mathcal{X} =2^N}&amp;fg=000000' class='latex' />
<li> Matroid auctions: <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BX%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{X}}&amp;fg=000000' title='{\mathcal{X}}&amp;fg=000000' class='latex' /> is a matroid on <img src='http://s.wordpress.com/latex.php?latex=%7BN%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{N}&amp;fg=000000' title='{N}&amp;fg=000000' class='latex' />
<li> Path auctions: <img src='http://s.wordpress.com/latex.php?latex=%7BN%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{N}&amp;fg=000000' title='{N}&amp;fg=000000' class='latex' /> is the set of edges in a graph and <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BX%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{X}}&amp;fg=000000' title='{\mathcal{X}}&amp;fg=000000' class='latex' /> is the set of <img src='http://s.wordpress.com/latex.php?latex=%7Bs-t%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{s-t}&amp;fg=000000' title='{s-t}&amp;fg=000000' class='latex' />-paths in the graph
<li> Knapsack auctions: there is a size <img src='http://s.wordpress.com/latex.php?latex=%7Bs_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{s_i}&amp;fg=000000' title='{s_i}&amp;fg=000000' class='latex' /> for each <img src='http://s.wordpress.com/latex.php?latex=%7Bi%20%5Cin%20N%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i \in N}&amp;fg=000000' title='{i \in N}&amp;fg=000000' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Cin%20%5Cmathcal%7BX%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \in \mathcal{X}}&amp;fg=000000' title='{S \in \mathcal{X}}&amp;fg=000000' class='latex' /> iff <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_%7Bi%20%5Cin%20S%7D%20s_i%20%5Cleq%20C%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_{i \in S} s_i \leq C}&amp;fg=000000' title='{\sum_{i \in S} s_i \leq C}&amp;fg=000000' class='latex' /> for a fixed <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}&amp;fg=000000' title='{C}&amp;fg=000000' class='latex' />
</ol>
<p>
Most mechanism design problems focus in maximizing (or approximating) the social welfare, i.e., finding <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Cin%20%5Cmathcal%7BX%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \in \mathcal{X}}&amp;fg=000000' title='{S \in \mathcal{X}}&amp;fg=000000' class='latex' /> maximizing <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_%7Bi%20%5Cin%20S%7D%20v_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_{i \in S} v_i}&amp;fg=000000' title='{\sum_{i \in S} v_i}&amp;fg=000000' class='latex' />. Our focus here will be maximizing the revenue of the auctioneer. Before we start searching for such a mechanism, we should first see which properties it is supposed to have, and maybe even first that that, define what we mean by a mechanism. In the first moment, the agents report their valuations <img src='http://s.wordpress.com/latex.php?latex=%7Bv_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_i}&amp;fg=000000' title='{v_i}&amp;fg=000000' class='latex' /> (which can be their true valuations or lies), then the mechanism decides on an allocation <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Csubseteq%20N%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \subseteq N}&amp;fg=000000' title='{S \subseteq N}&amp;fg=000000' class='latex' /> (in a possibly randomized way) and charges a payment <img src='http://s.wordpress.com/latex.php?latex=%7BP_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{P_i}&amp;fg=000000' title='{P_i}&amp;fg=000000' class='latex' /> for each allocated agents. The profit of the auctioneer is <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_%7Bi%20%5Cin%20S%7D%20P_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_{i \in S} P_i}&amp;fg=000000' title='{\sum_{i \in S} P_i}&amp;fg=000000' class='latex' /> and the utility of a bidder is:</p>
<p><p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20u_i%20%3D%20%5Cleft%5C%7B%20%5Cbegin%7Baligned%7D%20v_i%20-%20P_i%20%26%2C%20i%20%5Cin%20S%20%5C%5C%200%20%26%2C%20i%20%5Cnotin%20S%20%5Cend%7Baligned%7D%20%5Cright.%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle u_i = \left\{ \begin{aligned} v_i - P_i &amp;, i \in S \\ 0 &amp;, i \notin S \end{aligned} \right.&amp;fg=000000' title='\displaystyle u_i = \left\{ \begin{aligned} v_i - P_i &amp;, i \in S \\ 0 &amp;, i \notin S \end{aligned} \right.&amp;fg=000000' class='latex' /></p>
<p>
The agents will report valuations so to maximize their final utility. We could either consider a general mechanism e calculate the profit/social welfare in the game induced by this mechanism or we could design an algorithm that gives incentives for the bidders to report their true valuation. The revelation principle says there is no loss of generality to consider only mechanisms of the second type. The intuition is: the mechanisms of the first type can be simulated by mechanisms of the second type. So, we restrict our attention to mechanisms of the second type, which we call <b>truthful mechanisms</b>. This definnition is clear for deterministic mechanisms but not so clear for randomized mechanisms. There are two such definitions:</p>
<p><ul>
<li> <b>Universal Truthful mechanisms</b>: distribution over deterministic truthful mechanisms, i.e., some coins are tossed and based on those coins, we choose a deterministic mechanism and run it. Even if the players knew the random coins, the mechanism would still be truthful.
<li> <b>Truthful in Expectation mechanisms:</b> Let <img src='http://s.wordpress.com/latex.php?latex=%7Bu_i%28b_i%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{u_i(b_i)}&amp;fg=000000' title='{u_i(b_i)}&amp;fg=000000' class='latex' /> be the utility of agent <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> if he bids <img src='http://s.wordpress.com/latex.php?latex=%7Bb_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_i}&amp;fg=000000' title='{b_i}&amp;fg=000000' class='latex' />. Since it is a randomized mechanism, then it is random variable. Truthful in expectation means that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathop%7B%5Cmathbb%20E%7D%5Bu_i%28v_i%29%5D%20%5Cgeq%20%5Cmathop%7B%5Cmathbb%20E%7D%5Bu_i%28b_i%29%5D%2C%20%5Cforall%20b_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathop{\mathbb E}[u_i(v_i)] \geq \mathop{\mathbb E}[u_i(b_i)], \forall b_i}&amp;fg=000000' title='{\mathop{\mathbb E}[u_i(v_i)] \geq \mathop{\mathbb E}[u_i(b_i)], \forall b_i}&amp;fg=000000' class='latex' />.
</ul>
<p>
Clearly all Universal Truthful mechanisms are Truthful in Expectation but the converse is not true. Now, before we proceed, we will redefine a mechanism in a more formal way so that it will be easier to reason about:</p>
<blockquote><p><b>Definition 1</b> <em> A mechanism <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BM%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{M}}&amp;fg=000000' title='{\mathcal{M}}&amp;fg=000000' class='latex' /> is a function that associated for each <img src='http://s.wordpress.com/latex.php?latex=%7Bv%20%5Cin%20%7B%5Cmathbb%20R%7D%5EN%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v \in {\mathbb R}^N}&amp;fg=000000' title='{v \in {\mathbb R}^N}&amp;fg=000000' class='latex' /> a distribution over elements of <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BX%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{X}}&amp;fg=000000' title='{\mathcal{X}}&amp;fg=000000' class='latex' />. </em></p></blockquote>
<p>
<blockquote><p><b>Theorem 2</b> <em> Let <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%28v%29%20%3D%20%5Csum_%7Bi%20%5Cin%20S%20%5Cin%20%5Cmathcal%7BX%7D%7D%20Pr_%7B%5Cmathcal%7BM%7D%28v%29%7D%5BS%5D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i(v) = \sum_{i \in S \in \mathcal{X}} Pr_{\mathcal{M}(v)}[S]}&amp;fg=000000' title='{x_i(v) = \sum_{i \in S \in \mathcal{X}} Pr_{\mathcal{M}(v)}[S]}&amp;fg=000000' class='latex' /> be the probability that <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> is allocated by the mechanism given <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}&amp;fg=000000' title='{v}&amp;fg=000000' class='latex' /> is reported. The mechanism is truthful iff <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%28v%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i(v)}&amp;fg=000000' title='{x_i(v)}&amp;fg=000000' class='latex' /> is monotone and each allocated bidder is charged payment:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20P_i%20%3D%20v_i%20-%20%5Cfrac%7B1%7D%7Bx_i%28v_i%2C%20v_%7B-i%7D%29%7D%20%5Cint_0%5E%7Bv_i%7D%20x_i%28w%2C%20v_%7B-i%7D%29%20dw%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle P_i = v_i - \frac{1}{x_i(v_i, v_{-i})} \int_0^{v_i} x_i(w, v_{-i}) dw&amp;fg=000000' title='\displaystyle P_i = v_i - \frac{1}{x_i(v_i, v_{-i})} \int_0^{v_i} x_i(w, v_{-i}) dw&amp;fg=000000' class='latex' /></p>
<p> </em></p></blockquote>
<p><p>
This is a classical theorem by Myerson about the characterization of truthful auctions. It is not hard to see that the auction define above is truthful. We just need to check that <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%28v_i%2C%20v_%7B-i%7D%29%20%28v_i%20-%20P%28v_i%2C%20v_%7B-i%7D%29%29%20%5Cgeq%20x_i%28v%27_i%2C%20v_%7B-i%7D%29%20%28v_i%20-%20P%28v%27_i%2C%20v_%7B-i%7D%29%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i(v_i, v_{-i}) (v_i - P(v_i, v_{-i})) \geq x_i(v&#039;_i, v_{-i}) (v_i - P(v&#039;_i, v_{-i}))}&amp;fg=000000' title='{x_i(v_i, v_{-i}) (v_i - P(v_i, v_{-i})) \geq x_i(v&#039;_i, v_{-i}) (v_i - P(v&#039;_i, v_{-i}))}&amp;fg=000000' class='latex' /> for all <img src='http://s.wordpress.com/latex.php?latex=%7Bv%27_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v&#039;_i}&amp;fg=000000' title='{v&#039;_i}&amp;fg=000000' class='latex' />. The opposite is trickier but is also not hard to see.</p>
<p>
Note that this characterization implies the following characterization of deterministic truthful auctions, i.e., auctions that map each <img src='http://s.wordpress.com/latex.php?latex=%7Bv%20%5Cin%20%7B%5Cmathbb%20R%7D%5EN%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v \in {\mathbb R}^N}&amp;fg=000000' title='{v \in {\mathbb R}^N}&amp;fg=000000' class='latex' /> to a set <img src='http://s.wordpress.com/latex.php?latex=%7BS%20%5Cin%20%5Cmathcal%7BX%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{S \in \mathcal{X}}&amp;fg=000000' title='{S \in \mathcal{X}}&amp;fg=000000' class='latex' />, i.e., the probability distribution is concentrated in one set.</p>
<blockquote><p><b>Theorem 3</b> <em> A mechanism is a truthful deterministic auction iff there is a functions <img src='http://s.wordpress.com/latex.php?latex=%7Bf_i%28b_%7B-i%7D%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_i(b_{-i})}&amp;fg=000000' title='{f_i(b_{-i})}&amp;fg=000000' class='latex' /> such that for each we allocate to bidder <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> iff <img src='http://s.wordpress.com/latex.php?latex=%7Bb_i%20%5Cgeq%20f_i%28b_%7B-i%7D%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_i \geq f_i(b_{-i})}&amp;fg=000000' title='{b_i \geq f_i(b_{-i})}&amp;fg=000000' class='latex' /> and in case it is allocated, we charge payment <img src='http://s.wordpress.com/latex.php?latex=%7Bf_i%28b_%7B-i%7D%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_i(b_{-i})}&amp;fg=000000' title='{f_i(b_{-i})}&amp;fg=000000' class='latex' />. </em></p></blockquote>
<p><p>
It is actually easy to generate this function. Given a mechanism, <img src='http://s.wordpress.com/latex.php?latex=%7Bb_i%20%5Cmapsto%20x_i%28b_i%2C%20b_%7B-i%7D%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_i \mapsto x_i(b_i, b_{-i})}&amp;fg=000000' title='{b_i \mapsto x_i(b_i, b_{-i})}&amp;fg=000000' class='latex' /> is a monotone and is a <img src='http://s.wordpress.com/latex.php?latex=%7B%5C%7B0%2C1%5C%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\{0,1\}}&amp;fg=000000' title='{\{0,1\}}&amp;fg=000000' class='latex' />-function. Let <img src='http://s.wordpress.com/latex.php?latex=%7Bf_i%28b_%7B-i%7D%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_i(b_{-i})}&amp;fg=000000' title='{f_i(b_{-i})}&amp;fg=000000' class='latex' /> the point where it transitions from <img src='http://s.wordpress.com/latex.php?latex=%7B0%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{0}&amp;fg=000000' title='{0}&amp;fg=000000' class='latex' /> to <img src='http://s.wordpress.com/latex.php?latex=%7B1%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{1}&amp;fg=000000' title='{1}&amp;fg=000000' class='latex' />. Now, we can give a similar characterization for Universal Truthful Mechanism:</p>
<blockquote><p><b>Theorem 4</b> <em> A mechanism is a universal truthful randomized auction if there are functions <img src='http://s.wordpress.com/latex.php?latex=%7Bf_i%28r%2Cb_%7B-i%7D%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_i(r,b_{-i})}&amp;fg=000000' title='{f_i(r,b_{-i})}&amp;fg=000000' class='latex' /> such that for each we allocate to bidder <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> iff <img src='http://s.wordpress.com/latex.php?latex=%7Bb_i%20%5Cgeq%20f_i%28r%2Cb_%7B-i%7D%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_i \geq f_i(r,b_{-i})}&amp;fg=000000' title='{b_i \geq f_i(r,b_{-i})}&amp;fg=000000' class='latex' /> and in case it is allocated, we charge payment <img src='http://s.wordpress.com/latex.php?latex=%7Bf_i%28r%2Cb_%7B-i%7D%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_i(r,b_{-i})}&amp;fg=000000' title='{f_i(r,b_{-i})}&amp;fg=000000' class='latex' />, where <img src='http://s.wordpress.com/latex.php?latex=%7Br%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{r}&amp;fg=000000' title='{r}&amp;fg=000000' class='latex' /> are random bits. </em></p></blockquote>
<p>
<p><b>2. Profit benchmarks </b></p>
<p><p>
Let&#8217;s consider a Digital Goods auction, where <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BX%7D%20%3D%202%5EN%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{X} = 2^N}&amp;fg=000000' title='{\mathcal{X} = 2^N}&amp;fg=000000' class='latex' />. Two natural goals for profit extraction would be <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BT%7D%28v%29%20%3D%20%5Csum_i%20v_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{T}(v) = \sum_i v_i}&amp;fg=000000' title='{\mathcal{T}(v) = \sum_i v_i}&amp;fg=000000' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BF%7D%28v%29%20%3D%20%5Cmax_i%20i%20v_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{F}(v) = \max_i i v_i}&amp;fg=000000' title='{\mathcal{F}(v) = \max_i i v_i}&amp;fg=000000' class='latex' /> where we can think of <img src='http://s.wordpress.com/latex.php?latex=%7Bv_1%20%5Cgeq%20v_2%20%5Cgeq%20%5Chdots%20%5Cgeq%20v_n%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_1 \geq v_2 \geq \hdots \geq v_n}&amp;fg=000000' title='{v_1 \geq v_2 \geq \hdots \geq v_n}&amp;fg=000000' class='latex' />, the first is the best profit you can extract charging different prices and the second is the best profit you can hope to extract by charging a fixed price. Unfortunately it is impossible to design a mechanism that even <img src='http://s.wordpress.com/latex.php?latex=%7BO%281%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{O(1)}&amp;fg=000000' title='{O(1)}&amp;fg=000000' class='latex' />-approximates both benchmarks on every input. The intuition is that <img src='http://s.wordpress.com/latex.php?latex=%7Bv_1%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_1}&amp;fg=000000' title='{v_1}&amp;fg=000000' class='latex' /> can be much larger then the rest, so there is no way of setting <img src='http://s.wordpress.com/latex.php?latex=%7Bf_1%28b_%7B-1%7D%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{f_1(b_{-1})}&amp;fg=000000' title='{f_1(b_{-1})}&amp;fg=000000' class='latex' /> in a proper way. Under the assumption that the first value is not much larger than the second, we can do a good profit approximation, though. This motivates us to find an universal truthful mechanism that approximates the following profit benchmark:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cmathcal%7BF%7D%5E%7B%282%29%7D%28v%29%20%3D%20%5Cmax_%7Bi%20%5Cgeq%202%7D%20i%20v_i%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \mathcal{F}^{(2)}(v) = \max_{i \geq 2} i v_i&amp;fg=000000' title='\displaystyle \mathcal{F}^{(2)}(v) = \max_{i \geq 2} i v_i&amp;fg=000000' class='latex' /></p>
<p> which is the highest single-price profit we can get selling to at least <img src='http://s.wordpress.com/latex.php?latex=%7B2%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{2}&amp;fg=000000' title='{2}&amp;fg=000000' class='latex' /> agents. We will show a truthful mechanism that <img src='http://s.wordpress.com/latex.php?latex=%7B4%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{4}&amp;fg=000000' title='{4}&amp;fg=000000' class='latex' />-approximates this benchmark.</p>
<p>
<p><b>3. Profit Extractors </b></p>
<p><p>
Profit extractor are building blocks of many mechanisms. The goal of a profit extractor is, given a constant target profit <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}&amp;fg=000000' title='{C}&amp;fg=000000' class='latex' />, extract that profit from a set of agents if that is possible. In this first moment, let&#8217;s see <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}&amp;fg=000000' title='{C}&amp;fg=000000' class='latex' /> as an exogenous constant. Consider the following mechanism called CostShare<img src='http://s.wordpress.com/latex.php?latex=%7B_C%20%28v%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{_C (v)}&amp;fg=000000' title='{_C (v)}&amp;fg=000000' class='latex' />: find the largest <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}&amp;fg=000000' title='{k}&amp;fg=000000' class='latex' /> s.t. <img src='http://s.wordpress.com/latex.php?latex=%7Bk%20%5Ccdot%20v_k%20%5Cgeq%20C%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k \cdot v_k \geq C}&amp;fg=000000' title='{k \cdot v_k \geq C}&amp;fg=000000' class='latex' />. Then allocate to </p>
<blockquote><p><b>Lemma 5</b> <em> CostShare<img src='http://s.wordpress.com/latex.php?latex=%7B_C%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{_C}&amp;fg=000000' title='{_C}&amp;fg=000000' class='latex' /> is a truthful profit-extractor that can extract profit <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}&amp;fg=000000' title='{C}&amp;fg=000000' class='latex' /> whenever <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BF%7D%28v%29%20%3D%20%5Cmax_i%20i%20v_i%20%5Cgeq%20C%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{F}(v) = \max_i i v_i \geq C}&amp;fg=000000' title='{\mathcal{F}(v) = \max_i i v_i \geq C}&amp;fg=000000' class='latex' />. </em></p></blockquote>
<p><p>
<em>Proof:</em>  It is clear that it can extract profit at most <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}&amp;fg=000000' title='{C}&amp;fg=000000' class='latex' /> if <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BF%7D%28v%29%20%5Cgeq%20C%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{F}(v) \geq C}&amp;fg=000000' title='{\mathcal{F}(v) \geq C}&amp;fg=000000' class='latex' />. We just need to prove it is a truthful mechanism and this can be done by checking the characterization of truthful mechanisms. Suppose that under CostShare<img src='http://s.wordpress.com/latex.php?latex=%7B_C%20%28v%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{_C (v)}&amp;fg=000000' title='{_C (v)}&amp;fg=000000' class='latex' /> exacly <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}&amp;fg=000000' title='{k}&amp;fg=000000' class='latex' /> bidders are getting the item, then let&#8217;s look at a bidder <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' />. If bidder <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> is not getting the item, then his value is smaller than <img src='http://s.wordpress.com/latex.php?latex=%7BC%2Fk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C/k}&amp;fg=000000' title='{C/k}&amp;fg=000000' class='latex' />, otherwise we could incluse all bidders up to <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> and sell for a price <img src='http://s.wordpress.com/latex.php?latex=%7BC%2Fk_1%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C/k_1}&amp;fg=000000' title='{C/k_1}&amp;fg=000000' class='latex' /> for some <img src='http://s.wordpress.com/latex.php?latex=%7Bk_1%20%3E%20k%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k_1 &gt; k}&amp;fg=000000' title='{k_1 &gt; k}&amp;fg=000000' class='latex' />. It is easy to see that bidder <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> will get the item just if he changes his value <img src='http://s.wordpress.com/latex.php?latex=%7Bv_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_i}&amp;fg=000000' title='{v_i}&amp;fg=000000' class='latex' /> to some value greater or equal than <img src='http://s.wordpress.com/latex.php?latex=%7BC%2Fk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C/k}&amp;fg=000000' title='{C/k}&amp;fg=000000' class='latex' />.</p>
<p>
On the other hand, it <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> is currently getting the item under <img src='http://s.wordpress.com/latex.php?latex=%7Bv%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v}&amp;fg=000000' title='{v}&amp;fg=000000' class='latex' />, then increasing his value won&#8217;t make it change. It is also clear that for any value <img src='http://s.wordpress.com/latex.php?latex=%7Bv_i%20%5Cgeq%20C%2Fk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_i \geq C/k}&amp;fg=000000' title='{v_i \geq C/k}&amp;fg=000000' class='latex' />, he will still get the item. For <img src='http://s.wordpress.com/latex.php?latex=%7Bv_i%20%3C%20C%2Fk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_i &lt; C/k}&amp;fg=000000' title='{v_i &lt; C/k}&amp;fg=000000' class='latex' /> he doesn&#8217;t get it. Suppose it got, then at least <img src='http://s.wordpress.com/latex.php?latex=%7Bk%2B1%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k+1}&amp;fg=000000' title='{k+1}&amp;fg=000000' class='latex' /> people get the item, because the price they sell it to <img src='http://s.wordpress.com/latex.php?latex=%7Bi%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i}&amp;fg=000000' title='{i}&amp;fg=000000' class='latex' /> must be less than <img src='http://s.wordpress.com/latex.php?latex=%7Bv_i%20%3C%20C%2Fk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_i &lt; C/k}&amp;fg=000000' title='{v_i &lt; C/k}&amp;fg=000000' class='latex' />. Thefore, increasing <img src='http://s.wordpress.com/latex.php?latex=%7Bv_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_i}&amp;fg=000000' title='{v_i}&amp;fg=000000' class='latex' /> back to its original value, we could still sell it to <img src='http://s.wordpress.com/latex.php?latex=%7Bk%2B1%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k+1}&amp;fg=000000' title='{k+1}&amp;fg=000000' class='latex' /> players, what is a contradiction, since we assumed we were selling to <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}&amp;fg=000000' title='{k}&amp;fg=000000' class='latex' /> players.</p>
<p>
We checked monotonicity and we also need to check the payments, but it is straightforward to check they satisfy the second condition, since <img src='http://s.wordpress.com/latex.php?latex=%7Bx_i%28v_i%29%20%3D%201%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{x_i(v_i) = 1}&amp;fg=000000' title='{x_i(v_i) = 1}&amp;fg=000000' class='latex' /> for <img src='http://s.wordpress.com/latex.php?latex=%7Bv_i%20%5Cgeq%20C%2Fk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{v_i \geq C/k}&amp;fg=000000' title='{v_i \geq C/k}&amp;fg=000000' class='latex' /> and zero instead. <img src='http://s.wordpress.com/latex.php?latex=%5CBox%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\Box&amp;fg=000000' title='\Box&amp;fg=000000' class='latex' /></p>
<p>
<p><b>4. Random Sampling Auctions </b></p>
<p><p>
Now, using that profit extractor as a building block, the main idea is to estimate <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C}&amp;fg=000000' title='{C}&amp;fg=000000' class='latex' /> smaller than <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BF%7D%28v%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{F}(v)}&amp;fg=000000' title='{\mathcal{F}(v)}&amp;fg=000000' class='latex' /> for one subset of the agents and extract that profit from them using a profit extractor. First we partition <img src='http://s.wordpress.com/latex.php?latex=%7BN%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{N}&amp;fg=000000' title='{N}&amp;fg=000000' class='latex' /> is two sets <img src='http://s.wordpress.com/latex.php?latex=%7BN%27%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{N&#039;}&amp;fg=000000' title='{N&#039;}&amp;fg=000000' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BN%27%27%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{N&#039;&#039;}&amp;fg=000000' title='{N&#039;&#039;}&amp;fg=000000' class='latex' /> tossing a coin for each agent to decide in which set we will place it, then we calculate <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BF%7D%27%20%3D%20%5Cmathcal%7BF%7D%28v_%7BN%27%7D%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{F}&#039; = \mathcal{F}(v_{N&#039;})}&amp;fg=000000' title='{\mathcal{F}&#039; = \mathcal{F}(v_{N&#039;})}&amp;fg=000000' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BF%7D%27%27%20%3D%20%5Cmathcal%7BF%7D%28v_%7BN%27%27%7D%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{F}&#039;&#039; = \mathcal{F}(v_{N&#039;&#039;})}&amp;fg=000000' title='{\mathcal{F}&#039;&#039; = \mathcal{F}(v_{N&#039;&#039;})}&amp;fg=000000' class='latex' />. Now, we run CostShare<img src='http://s.wordpress.com/latex.php?latex=%7B_%7B%5Cmathcal%7BF%7D%27%7D%20%28v%27%27%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{_{\mathcal{F}&#039;} (v&#039;&#039;)}&amp;fg=000000' title='{_{\mathcal{F}&#039;} (v&#039;&#039;)}&amp;fg=000000' class='latex' /> and CostShare<img src='http://s.wordpress.com/latex.php?latex=%7B_%7B%5Cmathcal%7BF%7D%27%27%7D%20%28v%27%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{_{\mathcal{F}&#039;&#039;} (v&#039;)}&amp;fg=000000' title='{_{\mathcal{F}&#039;&#039;} (v&#039;)}&amp;fg=000000' class='latex' />. This is called Random Cost Sharing Auction.</p>
<blockquote><p><b>Theorem 6</b> <em> The Random Cost Sharing Auction is a truthful auction whose revenue <img src='http://s.wordpress.com/latex.php?latex=%7B4%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{4}&amp;fg=000000' title='{4}&amp;fg=000000' class='latex' />-approximates the benchmark <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BF%7D%5E%7B%282%29%7D%28v%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{F}^{(2)}(v)}&amp;fg=000000' title='{\mathcal{F}^{(2)}(v)}&amp;fg=000000' class='latex' />. </em></p></blockquote>
<p><p>
<em>Proof:</em>  Let <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BR%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{R}}&amp;fg=000000' title='{\mathcal{R}}&amp;fg=000000' class='latex' /> be a random variable associated with the revenue of the Sampling Auction mechanism. It is clear that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BR%7D%20%3D%20%5Cmin%20%5C%7B%20%5Cmathcal%7BF%7D%27%2C%20%5Cmathcal%7BF%7D%27%27%20%5C%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{R} = \min \{ \mathcal{F}&#039;, \mathcal{F}&#039;&#039; \}}&amp;fg=000000' title='{\mathcal{R} = \min \{ \mathcal{F}&#039;, \mathcal{F}&#039;&#039; \}}&amp;fg=000000' class='latex' />. Let&#8217;s write <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BF%7D%5E%7B%282%29%7D%28v%29%20%3D%20kp%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{F}^{(2)}(v) = kp}&amp;fg=000000' title='{\mathcal{F}^{(2)}(v) = kp}&amp;fg=000000' class='latex' /> meaning that we sell <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}&amp;fg=000000' title='{k}&amp;fg=000000' class='latex' /> items at price <img src='http://s.wordpress.com/latex.php?latex=%7Bp%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p}&amp;fg=000000' title='{p}&amp;fg=000000' class='latex' />. Let <img src='http://s.wordpress.com/latex.php?latex=%7Bk%20%3D%20k%27%20%2B%20k%27%27%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k = k&#039; + k&#039;&#039;}&amp;fg=000000' title='{k = k&#039; + k&#039;&#039;}&amp;fg=000000' class='latex' /> where <img src='http://s.wordpress.com/latex.php?latex=%7Bk%27%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k&#039;}&amp;fg=000000' title='{k&#039;}&amp;fg=000000' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Bk%27%27%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k&#039;&#039;}&amp;fg=000000' title='{k&#039;&#039;}&amp;fg=000000' class='latex' /> are the items among those <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}&amp;fg=000000' title='{k}&amp;fg=000000' class='latex' /> items that went to <img src='http://s.wordpress.com/latex.php?latex=%7BN%27%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{N&#039;}&amp;fg=000000' title='{N&#039;}&amp;fg=000000' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7BN%27%27%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{N&#039;&#039;}&amp;fg=000000' title='{N&#039;&#039;}&amp;fg=000000' class='latex' /> respectively. Then, clearly <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BF%7D%27%20%5Cgeq%20p%20k%27%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{F}&#039; \geq p k&#039;}&amp;fg=000000' title='{\mathcal{F}&#039; \geq p k&#039;}&amp;fg=000000' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BF%7D%27%27%20%5Cgeq%20p%20k%27%27%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{F}&#039;&#039; \geq p k&#039;&#039;}&amp;fg=000000' title='{\mathcal{F}&#039;&#039; \geq p k&#039;&#039;}&amp;fg=000000' class='latex' />, what gives us:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cfrac%7B%5Cmathcal%7BR%7D%7D%7B%5Cmathcal%7BF%7D%5E%7B%282%29%7D%7D%20%3D%20%5Cfrac%7B%5Cmin%5C%7B%5Cmathcal%7BF%7D%27%2C%20%5Cmathcal%7BF%7D%27%27%5C%7D%7D%7B%5Cmathcal%7BF%7D%5E%7B%282%29%7D%7D%20%5Cgeq%20%5Cfrac%7B%5Cmin%5C%7Bk%27p%2C%20k%27%27p%5C%7D%7D%7Bkp%7D%20%3D%20%5Cfrac%7B%5Cmin%5C%7Bk%27%2C%20k%27%27%5C%7D%7D%7Bk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \frac{\mathcal{R}}{\mathcal{F}^{(2)}} = \frac{\min\{\mathcal{F}&#039;, \mathcal{F}&#039;&#039;\}}{\mathcal{F}^{(2)}} \geq \frac{\min\{k&#039;p, k&#039;&#039;p\}}{kp} = \frac{\min\{k&#039;, k&#039;&#039;\}}{k}&amp;fg=000000' title='\displaystyle \frac{\mathcal{R}}{\mathcal{F}^{(2)}} = \frac{\min\{\mathcal{F}&#039;, \mathcal{F}&#039;&#039;\}}{\mathcal{F}^{(2)}} \geq \frac{\min\{k&#039;p, k&#039;&#039;p\}}{kp} = \frac{\min\{k&#039;, k&#039;&#039;\}}{k}&amp;fg=000000' class='latex' /></p>
<p> and from there, it is a straighforward probability exercise:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cfrac%7B%5Cmathop%7B%5Cmathbb%20E%7D%5B%7B%5Cmathcal%7BR%7D%7D%5D%7D%7B%5Cmathcal%7BF%7D%5E%7B%282%29%7D%7D%20%3D%20%5Cmathop%7B%5Cmathbb%20E%7D%5Cleft%5B%7B%20%5Cfrac%7B%5Cmin%5C%7Bk%27%2C%20k%27%27%5C%7D%7D%7Bk%7D%20%7D%5Cright%5D%20%3D%20%5Cfrac%7B1%7D%7Bk%7D%20%5Csum_%7Bi%3D1%7D%5E%7Bk-1%7D%20%5Cmin%5C%7B%20i%2C%20k-i%20%5C%7D%20%5Cbegin%7Bpmatrix%7D%20k%20%5C%5C%20i%20%5Cend%7Bpmatrix%7D%202%5E%7B-k%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \frac{\mathop{\mathbb E}[{\mathcal{R}}]}{\mathcal{F}^{(2)}} = \mathop{\mathbb E}\left[{ \frac{\min\{k&#039;, k&#039;&#039;\}}{k} }\right] = \frac{1}{k} \sum_{i=1}^{k-1} \min\{ i, k-i \} \begin{pmatrix} k \\ i \end{pmatrix} 2^{-k}&amp;fg=000000' title='\displaystyle \frac{\mathop{\mathbb E}[{\mathcal{R}}]}{\mathcal{F}^{(2)}} = \mathop{\mathbb E}\left[{ \frac{\min\{k&#039;, k&#039;&#039;\}}{k} }\right] = \frac{1}{k} \sum_{i=1}^{k-1} \min\{ i, k-i \} \begin{pmatrix} k \\ i \end{pmatrix} 2^{-k}&amp;fg=000000' class='latex' /></p>
<p> since:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cfrac%7Bk%7D%7B2%7D%20%3D%20%5Csum_%7Bi%20%3D%200%7D%5Ek%20i%20%5Cbegin%7Bpmatrix%7D%20k%20%5C%5C%20i%20%5Cend%7Bpmatrix%7D%202%5E%7B-k%7D%20%5Cleq%20%5Cfrac%7Bk%7D%7B4%7D%20%2B%202%20%5Csum_%7Bi%20%3D%200%7D%5E%7Bk%2F2%7D%20i%20%5Cbegin%7Bpmatrix%7D%20k%20%5C%5C%20i%20%5Cend%7Bpmatrix%7D%202%5E%7B-k%7D%20%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \frac{k}{2} = \sum_{i = 0}^k i \begin{pmatrix} k \\ i \end{pmatrix} 2^{-k} \leq \frac{k}{4} + 2 \sum_{i = 0}^{k/2} i \begin{pmatrix} k \\ i \end{pmatrix} 2^{-k} &amp;fg=000000' title='\displaystyle \frac{k}{2} = \sum_{i = 0}^k i \begin{pmatrix} k \\ i \end{pmatrix} 2^{-k} \leq \frac{k}{4} + 2 \sum_{i = 0}^{k/2} i \begin{pmatrix} k \\ i \end{pmatrix} 2^{-k} &amp;fg=000000' class='latex' /></p>
<p> and therefore:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%20%5Cfrac%7B%5Cmathop%7B%5Cmathbb%20E%7D%5B%7B%5Cmathcal%7BR%7D%7D%5D%7D%7B%5Cmathcal%7BF%7D%5E%7B%282%29%7D%7D%20%5Cgeq%20%5Cfrac%7B1%7D%7B4%7D%20%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle  \frac{\mathop{\mathbb E}[{\mathcal{R}}]}{\mathcal{F}^{(2)}} \geq \frac{1}{4} &amp;fg=000000' title='\displaystyle  \frac{\mathop{\mathbb E}[{\mathcal{R}}]}{\mathcal{F}^{(2)}} \geq \frac{1}{4} &amp;fg=000000' class='latex' /></p>
<img src='http://s.wordpress.com/latex.php?latex=%5CBox%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\Box&amp;fg=000000' title='\Box&amp;fg=000000' class='latex' />
<p>
This similar approximations can be extended to more general environments with very little change. For example, for multi-unit auctions, where <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BX%7D%20%3D%20%5C%7B%20S%3B%20%5Cvert%20S%20%5Cvert%20%5Cleq%20k%20%5C%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{X} = \{ S; \vert S \vert \leq k \}}&amp;fg=000000' title='{\mathcal{X} = \{ S; \vert S \vert \leq k \}}&amp;fg=000000' class='latex' /> we use the benchmark <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BF%7D%5E%7B%282%2Ck%29%7D%20%3D%20%5Cmax_%7B2%20%5Cleq%20i%20%5Cleq%20k%7D%20i%20v_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{F}^{(2,k)} = \max_{2 \leq i \leq k} i v_i}&amp;fg=000000' title='{\mathcal{F}^{(2,k)} = \max_{2 \leq i \leq k} i v_i}&amp;fg=000000' class='latex' /> and we can be <img src='http://s.wordpress.com/latex.php?latex=%7BO%281%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{O(1)}&amp;fg=000000' title='{O(1)}&amp;fg=000000' class='latex' />-competitive against it, by random-sampling, evaluating <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BF%7D%5E%7B%281%2Ck%29%7D%20%3D%20%5Cmax_%7B%5Cleq%20i%20%5Cleq%20k%7D%20i%20v_i%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{F}^{(1,k)} = \max_{\leq i \leq k} i v_i}&amp;fg=000000' title='{\mathcal{F}^{(1,k)} = \max_{\leq i \leq k} i v_i}&amp;fg=000000' class='latex' /> on both sets and running a profit extractor on both. The profit extractor is a simple generalization of the previous one.</p>
<p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/151/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Minimum average cost cycle and TSP</title>
		<link>http://www.bigredbits.com/archives/148</link>
		<comments>http://www.bigredbits.com/archives/148#comments</comments>
		<pubDate>Thu, 03 Sep 2009 04:01:34 +0000</pubDate>
		<dc:creator>renatoppl</dc:creator>
				<category><![CDATA[theory]]></category>
		<category><![CDATA[approximation algorithms]]></category>
		<category><![CDATA[TSP]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=148</guid>
		<description><![CDATA[After some time, I did again Code Jam &#8211; well, not again, this is the first time I do Code Jam, but there is a while I don&#8217;t do Programming Competitions. Back in my undergrad I remember all the fun I had with my ACM-ICPC team solving problems and discussing algorithms problems. Actually, ICPC was [...]]]></description>
			<content:encoded><![CDATA[<p>
After some time, I did again <a class="snap_noshots" href="http://code.google.com/codejam/">Code Jam</a> &#8211; well, not again, this is the first time I do Code Jam, but there is a while I don&#8217;t do Programming Competitions. Back in my undergrad I remember all the fun I had with <a class="snap_noshots" href="http://picasaweb.google.com/renatoppl/BanffICPC2008#5191786378005370066">my ACM-ICPC team</a> solving problems and discussing algorithms problems. Actually, <a class="snap_noshots" href="http://cm2prod.baylor.edu/welcome.icpc">ICPC</a> was what made me interested in Algorithms and Theory of Computing for the first time. I was remembering that not only because Code Jam because I came across a nice problem whose solution I learned in programming competitions, specifically a technique I learned to solve <a class="snap_noshots" href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2728">this problem</a>.</p>
<p>
Let&#8217;s formulate the problem in a more abstract way: Given a graph <img src='http://s.wordpress.com/latex.php?latex=%7BG%20%3D%20%28V%2CE%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G = (V,E)}&amp;fg=000000' title='{G = (V,E)}&amp;fg=000000' class='latex' /> and two functions: a cost function <img src='http://s.wordpress.com/latex.php?latex=%7Bc%3AE%20%5Crightarrow%20%7B%5Cmathbb%20R%7D_%2B%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c:E \rightarrow {\mathbb R}_+}&amp;fg=000000' title='{c:E \rightarrow {\mathbb R}_+}&amp;fg=000000' class='latex' /> and a benefit function <img src='http://s.wordpress.com/latex.php?latex=%7Bb%3AE%20%5Crightarrow%20%7B%5Cmathbb%20R%7D_%2B%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b:E \rightarrow {\mathbb R}_+}&amp;fg=000000' title='{b:E \rightarrow {\mathbb R}_+}&amp;fg=000000' class='latex' />, we define the cost-benefit of a set of edges as <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7Bb%28S%29%7D%7Bc%28S%29%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{b(S)}{c(S)}}&amp;fg=000000' title='{\frac{b(S)}{c(S)}}&amp;fg=000000' class='latex' />. Now, consider those two questions:</p>
<p>
<b>Question I</b>: Find the spanning tree of maximum (minimum) cost-benefit.</p>
<p>
<b>Question II</b>: Find the cycle of maximum (minimum) cost-benefit.</p>
<p>
The solution of those uses binary search. If we can answer the following query: given <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cbeta%20%3E%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\beta &gt; 0}&amp;fg=000000' title='{\beta &gt; 0}&amp;fg=000000' class='latex' />, is there a cycle (spanning tree) of cost-benefit smaller (larger) than <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cbeta%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\beta}&amp;fg=000000' title='{\beta}&amp;fg=000000' class='latex' />? We either state there is no such tree (cycle) or exhibit that. How can we solve this? It is simple: consider the graph <img src='http://s.wordpress.com/latex.php?latex=%7BG%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{G}&amp;fg=000000' title='{G}&amp;fg=000000' class='latex' /> with edge weights given by <img src='http://s.wordpress.com/latex.php?latex=%7Bb_e%20-%20%5Cbeta%20c_e%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b_e - \beta c_e}&amp;fg=000000' title='{b_e - \beta c_e}&amp;fg=000000' class='latex' />. Then there is a cycle (spanning tree) of cost benefit <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleq%20%5Cbeta%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\leq \beta}&amp;fg=000000' title='{\leq \beta}&amp;fg=000000' class='latex' /> if and only if there is a cycle (spanning tree) in this graph with transformed weights with negative total weight. Finding a cycle with negative weight is easy and can be done, for example, using Bellman Ford&#8217;s algorithm. Finding a spanning tree with negative weights can be done using any minimal spanning tree algorithm, as Kruskal, Prim or Boruvka.</p>
<p>
Taking <img src='http://s.wordpress.com/latex.php?latex=%7Bc%28e%29%20%3D%201%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c(e) = 1}&amp;fg=000000' title='{c(e) = 1}&amp;fg=000000' class='latex' /> for all <img src='http://s.wordpress.com/latex.php?latex=%7Be%20%5Cin%20E%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{e \in E}&amp;fg=000000' title='{e \in E}&amp;fg=000000' class='latex' /> we can find using binary search, the cycle with smallest average length, i.e., smallest <img src='http://s.wordpress.com/latex.php?latex=%7Bb%28C%29%20%2F%20%5Cvert%20C%20%5Cvert%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{b(C) / \vert C \vert}&amp;fg=000000' title='{b(C) / \vert C \vert}&amp;fg=000000' class='latex' /> where <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cvert%20C%20%5Cvert%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\vert C \vert}&amp;fg=000000' title='{\vert C \vert}&amp;fg=000000' class='latex' /> is the number of edges in the cycle.</p>
<p>
<p><b> Asymmetric Travelling Salesman Problem </b></p>
<p><p>
We can use this trick just described to design an <img src='http://s.wordpress.com/latex.php?latex=%7BO%28%5Clog%20n%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{O(\log n)}&amp;fg=000000' title='{O(\log n)}&amp;fg=000000' class='latex' />-approximation to the asymmetric TSP problem. Consider we have <img src='http://s.wordpress.com/latex.php?latex=%7Bn%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{n}&amp;fg=000000' title='{n}&amp;fg=000000' class='latex' /> nodes in <img src='http://s.wordpress.com/latex.php?latex=%7BV%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{V}&amp;fg=000000' title='{V}&amp;fg=000000' class='latex' /> and a function <img src='http://s.wordpress.com/latex.php?latex=%7Bc%3A%20V%20%5Ctimes%20V%20%5Crightarrow%20%7B%5Cmathbb%20R%7D_%2B%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c: V \times V \rightarrow {\mathbb R}_+}&amp;fg=000000' title='{c: V \times V \rightarrow {\mathbb R}_+}&amp;fg=000000' class='latex' />, not necessarily symmetric, such that the triangular inequality holds, i.e., <img src='http://s.wordpress.com/latex.php?latex=%7Bc%28i%2Cj%29%20%5Cleq%20c%28i%2Ck%29%20%2B%20c%28k%2Cj%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c(i,j) \leq c(i,k) + c(k,j)}&amp;fg=000000' title='{c(i,j) \leq c(i,k) + c(k,j)}&amp;fg=000000' class='latex' />. A TSP tour is an ordering <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cpi%3A%20%5C%7B1%2C%20%5Chdots%2C%20n%5C%7D%20%5Crightarrow%20V%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\pi: \{1, \hdots, n\} \rightarrow V}&amp;fg=000000' title='{\pi: \{1, \hdots, n\} \rightarrow V}&amp;fg=000000' class='latex' /> and has total cost:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20c%28%5Cpi%29%20%3D%20%5Csum_%7Bj%3D1%7D%5En%20c%28%5Cpi_j%2C%20%5Cpi_%7Bj%2B1%7D%29%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle c(\pi) = \sum_{j=1}^n c(\pi_j, \pi_{j+1})&amp;fg=000000' title='\displaystyle c(\pi) = \sum_{j=1}^n c(\pi_j, \pi_{j+1})&amp;fg=000000' class='latex' /></p>
<p> where <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cpi_%7Bn%2B1%7D%20%3D%20%5Cpi_1%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\pi_{n+1} = \pi_1}&amp;fg=000000' title='{\pi_{n+1} = \pi_1}&amp;fg=000000' class='latex' />. Let OPT be the cost of the optimal tour. It is NP-complete to calculate the optimal, but consider the following approximation algorithm: find the cycle with smallest average cost. Then remove all the nodes in that cycle except one, in the remaining graph find again the cycle of smallest average cost and remove all nodes except one. Continue doing that until there is just one node left. Taking all those cycles together, we have a strongly connected Eulerian graph (in-degrees are equal to out-degrees) for each node). I claim that the total weight of edges <img src='http://s.wordpress.com/latex.php?latex=%7BE%27%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{E&#039;}&amp;fg=000000' title='{E&#039;}&amp;fg=000000' class='latex' /> in this Eulerian graph is:</p>
<p><p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20c%28E%27%29%20%5Cleq%202%20%5Cmathcal%7BH%7D_n%20%5Ccdot%20OPT%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle c(E&#039;) \leq 2 \mathcal{H}_n \cdot OPT&amp;fg=000000' title='\displaystyle c(E&#039;) \leq 2 \mathcal{H}_n \cdot OPT&amp;fg=000000' class='latex' /></p>
<p> where <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathcal%7BH%7D_n%20%3D%20%5Csum_%7Bj%3D1%7D%5En%20%5Cfrac%7B1%7D%7Bj%7D%20%3D%20O%28%5Clog%20n%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathcal{H}_n = \sum_{j=1}^n \frac{1}{j} = O(\log n)}&amp;fg=000000' title='{\mathcal{H}_n = \sum_{j=1}^n \frac{1}{j} = O(\log n)}&amp;fg=000000' class='latex' /> is the harmonic number. Now, since we have this graph we can find an Eulerian tour and transform it into a TSP tour shortcutting when necessary (triangle inequality guarantees that shortcutting doesn&#8217;t decrease the cost of the tour). So, we just need to prove the claim.</p>
<p>
In fact, it is not hard to see that after removing some nodes, the optimal tour is still <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleq%20OPT%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\leq OPT}&amp;fg=000000' title='{\leq OPT}&amp;fg=000000' class='latex' />, where <img src='http://s.wordpress.com/latex.php?latex=%7BOPT%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{OPT}&amp;fg=000000' title='{OPT}&amp;fg=000000' class='latex' /> is the tour of smallest cost for all nodes. To see this, just take the original tour and shortcut it, for example, if the original tour passed through a sequence of nodes <img src='http://s.wordpress.com/latex.php?latex=%7Bi_1%2C%20%5Chdots%2C%20i_p%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i_1, \hdots, i_p}&amp;fg=000000' title='{i_1, \hdots, i_p}&amp;fg=000000' class='latex' /> but nodes <img src='http://s.wordpress.com/latex.php?latex=%7Bi_2%2C%20%5Chdots%2C%20i_%7Bp-1%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{i_2, \hdots, i_{p-1}}&amp;fg=000000' title='{i_2, \hdots, i_{p-1}}&amp;fg=000000' class='latex' /> then by triangle inequality:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20c%28i_1%2C%20i_p%29%20%5Cleq%20%5Csum_%7Bj%3D1%7D%5E%7Bp-1%7D%20c%28i_j%2C%20i_%7Bj%2B1%7D%29%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle c(i_1, i_p) \leq \sum_{j=1}^{p-1} c(i_j, i_{j+1})&amp;fg=000000' title='\displaystyle c(i_1, i_p) \leq \sum_{j=1}^{p-1} c(i_j, i_{j+1})&amp;fg=000000' class='latex' /></p>
<p> so we can just substitute the edges <img src='http://s.wordpress.com/latex.php?latex=%7B%28i_1%2C%20i_2%29%2C%20%5Chdots%2C%20%28i_%7Bp-1%7D%2C%20i_p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(i_1, i_2), \hdots, (i_{p-1}, i_p)}&amp;fg=000000' title='{(i_1, i_2), \hdots, (i_{p-1}, i_p)}&amp;fg=000000' class='latex' /> by <img src='http://s.wordpress.com/latex.php?latex=%7B%28i_1%2C%20i_p%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{(i_1, i_p)}&amp;fg=000000' title='{(i_1, i_p)}&amp;fg=000000' class='latex' />. Now, suppose we do <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}&amp;fg=000000' title='{k}&amp;fg=000000' class='latex' /> iterations and in the beginning of the <img src='http://s.wordpress.com/latex.php?latex=%7Bj%5E%7Bth%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{j^{th}}&amp;fg=000000' title='{j^{th}}&amp;fg=000000' class='latex' /> iteration there are <img src='http://s.wordpress.com/latex.php?latex=%7Bn_j%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{n_j}&amp;fg=000000' title='{n_j}&amp;fg=000000' class='latex' /> nodes left. So, clearly the average length of the cycle we picked in the algorithm is <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleq%20%5Cfrac%7BOPT%7D%7Bn_j%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\leq \frac{OPT}{n_j}}&amp;fg=000000' title='{\leq \frac{OPT}{n_j}}&amp;fg=000000' class='latex' /> and therefore, if <img src='http://s.wordpress.com/latex.php?latex=%7BC_1%2C%20%5Chdots%20C_k%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{C_1, \hdots C_k}&amp;fg=000000' title='{C_1, \hdots C_k}&amp;fg=000000' class='latex' /> are the cycles chosen, we have:</p>
<p><p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20c%28E%27%29%20%3D%20%5Csum_%7Bj%3D1%7D%5Ek%20c%28C_j%29%20%5Cleq%20%5Csum_%7Bj%3D1%7D%5Ek%20%5Cfrac%7BOPT%7D%7Bn_j%7D%20%28n_j%20-%20n_%7Bj%2B1%7D%20%2B%201%29%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle c(E&#039;) = \sum_{j=1}^k c(C_j) \leq \sum_{j=1}^k \frac{OPT}{n_j} (n_j - n_{j+1} + 1)&amp;fg=000000' title='\displaystyle c(E&#039;) = \sum_{j=1}^k c(C_j) \leq \sum_{j=1}^k \frac{OPT}{n_j} (n_j - n_{j+1} + 1)&amp;fg=000000' class='latex' /></p>
<p> since:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cfrac%7Bn_j%20-%20n_%7Bj%2B1%7D%20%2B%201%7D%7Bn_j%7D%20%5Cleq%20%5Cfrac%7B1%7D%7Bn_j%7D%20%2B%20%5Cfrac%7B1%7D%7Bn_j%20-%201%7D%20%2B%20%5Chdots%20%2B%20%5Cfrac%7B1%7D%7Bn_%7Bj%2B1%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \frac{n_j - n_{j+1} + 1}{n_j} \leq \frac{1}{n_j} + \frac{1}{n_j - 1} + \hdots + \frac{1}{n_{j+1}}&amp;fg=000000' title='\displaystyle \frac{n_j - n_{j+1} + 1}{n_j} \leq \frac{1}{n_j} + \frac{1}{n_j - 1} + \hdots + \frac{1}{n_{j+1}}&amp;fg=000000' class='latex' /></p>
<p> we plug those two expressions together and we get the claim.</p>
<p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/148/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entropy</title>
		<link>http://www.bigredbits.com/archives/145</link>
		<comments>http://www.bigredbits.com/archives/145#comments</comments>
		<pubDate>Fri, 28 Aug 2009 01:28:54 +0000</pubDate>
		<dc:creator>renatoppl</dc:creator>
				<category><![CDATA[theory]]></category>
		<category><![CDATA[entropy]]></category>
		<category><![CDATA[information theory]]></category>
		<category><![CDATA[mathematics]]></category>
		<category><![CDATA[probability]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=145</guid>
		<description><![CDATA[Today was the first day of classes here at Cornell and as usual, I attend to a lot of different classes to try to decide which ones to take. I usually feel like I wanted to take them all, but there is this constant struggle: if I take too many classes I have no time [...]]]></description>
			<content:encoded><![CDATA[<p>
Today was the first day of classes here at Cornell and as usual, I attend to a lot of different classes to try to decide which ones to take. I usually feel like I wanted to take them all, but there is this constant struggle: if I take too many classes I have no time to do research and to read random things that happen to catch my attention at that moment, and if I don&#8217;t take many classes I feel like not learning a lot of interesting stuff I wanted to be learning. The solution in the middle of the way is to audit a lot of classes and start dropping them as a start needing more time: what happens usually quickly. This particular fall I decided that I need to build a stronger background in probability &#8211; since I am finding a lot of probabilistic stuff in my way and I have nothing more than my undergrad course and things I learned on demand. I attended at least three probability classes with different flavours today and I decided to blog about a simple, yet very impressive result I saw in one of them.</p>
<p>
Since I took a class on &#8220;Principles of Telecommunications&#8221; in my undergrad, I became impressed by Shannon&#8217;s <a class="snap_noshots" href="http://en.wikipedia.org/wiki/Information_Theory">Information Theory</a> and the concept of entropy. There was one theorem that I always heard about but never saw the proof. I thought it was a somewhat complicated proof, but it turned out not to be that much.</p>
<p>
Consder an alphabet <img src='http://s.wordpress.com/latex.php?latex=%7B%5COmega%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Omega}&amp;fg=000000' title='{\Omega}&amp;fg=000000' class='latex' /> and a probability distribution over it. I want to associate to each <img src='http://s.wordpress.com/latex.php?latex=%7B%5Comega%20%5Cin%20%5COmega%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\omega \in \Omega}&amp;fg=000000' title='{\omega \in \Omega}&amp;fg=000000' class='latex' /> a string <img src='http://s.wordpress.com/latex.php?latex=%7Bc%28%5Comega%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c(\omega)}&amp;fg=000000' title='{c(\omega)}&amp;fg=000000' class='latex' /> of <img src='http://s.wordpress.com/latex.php?latex=%7Bk%28%5Comega%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k(\omega)}&amp;fg=000000' title='{k(\omega)}&amp;fg=000000' class='latex' /> <img src='http://s.wordpress.com/latex.php?latex=%7B%5C%7B0%2C1%5C%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\{0,1\}}&amp;fg=000000' title='{\{0,1\}}&amp;fg=000000' class='latex' />-digits to represent each simbol of the alphabet. One way of allowing the code to be decodable is to make them a proper code. A proper code is a code such that given any <img src='http://s.wordpress.com/latex.php?latex=%7B%5Comega_1%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\omega_1}&amp;fg=000000' title='{\omega_1}&amp;fg=000000' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7B%5Comega_2%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\omega_2}&amp;fg=000000' title='{\omega_2}&amp;fg=000000' class='latex' />, <img src='http://s.wordpress.com/latex.php?latex=%7Bc%28%5Comega_1%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c(\omega_1)}&amp;fg=000000' title='{c(\omega_1)}&amp;fg=000000' class='latex' /> is not a prefix of <img src='http://s.wordpress.com/latex.php?latex=%7Bc%28%5Comega_2%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c(\omega_2)}&amp;fg=000000' title='{c(\omega_2)}&amp;fg=000000' class='latex' />. There are several codes like this, but some are more efficient then others. Since the letters have different frequencies, it makes sense to code a frequent letter (say &#8216;e&#8217; in English) with few bits and a letter that doesn&#8217;t appear much, say &#8216;q&#8217; with more bits. We want to find a proper code to minimize:</p>
<p><p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cmathop%7B%5Cmathbb%20E%7D%5Bk%28%5Comega%29%5D%20%3D%20%5Csum_%7B%5Comega%20%5Cin%20%5COmega%7D%20k%28%5Comega%29%20p%28%5Comega%29%20%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \mathop{\mathbb E}[k(\omega)] = \sum_{\omega \in \Omega} k(\omega) p(\omega) &amp;fg=000000' title='\displaystyle \mathop{\mathbb E}[k(\omega)] = \sum_{\omega \in \Omega} k(\omega) p(\omega) &amp;fg=000000' class='latex' /></p>
<p>
The celebrated theorem by Shannon shows that for any proper code (actually it holds more generally for any decodable code), we have <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathop%7B%5Cmathbb%20E%7D%5Bk%28%5Comega%29%5D%20%5Cgeq%20H%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathop{\mathbb E}[k(\omega)] \geq H}&amp;fg=000000' title='{\mathop{\mathbb E}[k(\omega)] \geq H}&amp;fg=000000' class='latex' /> where <img src='http://s.wordpress.com/latex.php?latex=%7BH%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{H}&amp;fg=000000' title='{H}&amp;fg=000000' class='latex' /> is the entropy of the alphabet, defined as:</p>
<p><p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20H%20%3D%20-%20%5Csum_%7B%5Comega%7D%20p%28%5Comega%29%20%5Clog_2%20p%28%5Comega%29%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle H = - \sum_{\omega} p(\omega) \log_2 p(\omega)&amp;fg=000000' title='\displaystyle H = - \sum_{\omega} p(\omega) \log_2 p(\omega)&amp;fg=000000' class='latex' /></p>
<p> even more impressive is that we can achieve something very close to it:</p>
<blockquote><p><b>Theorem 1</b> <em> There is a code such that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathop%7B%5Cmathbb%20E%7D%5Bk%28%5Comega%29%5D%20%5Cleq%20H%20%2B%201%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathop{\mathbb E}[k(\omega)] \leq H + 1}&amp;fg=000000' title='{\mathop{\mathbb E}[k(\omega)] \leq H + 1}&amp;fg=000000' class='latex' />. </em></p></blockquote>
<p><p>
With an additional trick we can get <img src='http://s.wordpress.com/latex.php?latex=%7BH%20%2B%20%5Cepsilon%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{H + \epsilon}&amp;fg=000000' title='{H + \epsilon}&amp;fg=000000' class='latex' /> for any <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cepsilon%20%3E%200%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\epsilon &gt; 0}&amp;fg=000000' title='{\epsilon &gt; 0}&amp;fg=000000' class='latex' />. The first part is trickier and I won&#8217;t do here (but again, it is not as hard as I thought it would be). For proving that there is a code with average length <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleq%20H%20%2B%201%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\leq H + 1}&amp;fg=000000' title='{\leq H + 1}&amp;fg=000000' class='latex' /> we use the following lemma:</p>
<blockquote><p><b>Lemma 2</b> <em> There is a proper code for <img src='http://s.wordpress.com/latex.php?latex=%7B%5COmega%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Omega}&amp;fg=000000' title='{\Omega}&amp;fg=000000' class='latex' /> with code-lengths <img src='http://s.wordpress.com/latex.php?latex=%7Bk%28%5Comega%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k(\omega)}&amp;fg=000000' title='{k(\omega)}&amp;fg=000000' class='latex' /> if and only if <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_%5Comega%202%5E%7B-k%28%5Comega%29%7D%20%5Cleq%201%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_\omega 2^{-k(\omega)} \leq 1}&amp;fg=000000' title='{\sum_\omega 2^{-k(\omega)} \leq 1}&amp;fg=000000' class='latex' /> </em></p></blockquote>
<p><p>
<em>Proof:</em>  Let <img src='http://s.wordpress.com/latex.php?latex=%7BN%20%3D%20%5Cmax_%5Comega%20k%28%5Comega%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{N = \max_\omega k(\omega)}&amp;fg=000000' title='{N = \max_\omega k(\omega)}&amp;fg=000000' class='latex' /> and imagine all the possible codewords of length <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cleq%20N%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\leq N}&amp;fg=000000' title='{\leq N}&amp;fg=000000' class='latex' /> as a complete binary tree. Since it is a proper code, no two codes <img src='http://s.wordpress.com/latex.php?latex=%7Bc%28%5Comega_1%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c(\omega_1)}&amp;fg=000000' title='{c(\omega_1)}&amp;fg=000000' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Bc%28%5Comega_2%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{c(\omega_2)}&amp;fg=000000' title='{c(\omega_2)}&amp;fg=000000' class='latex' /> are in the same path to the root. So, picking one node as a codeword means that we can&#8217;t pick any node in the subtree from it. Also, for each leave, the is at most one codeword in its path to the root. Therefore we can assign each leaf of the tree to a single codeword or to no codeword at all. It is easy to see that a codeword with size <img src='http://s.wordpress.com/latex.php?latex=%7Bk%28%5Comega%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k(\omega)}&amp;fg=000000' title='{k(\omega)}&amp;fg=000000' class='latex' /> has associated with it <img src='http://s.wordpress.com/latex.php?latex=%7B2%5E%7BN%20-%20k%28%5Comega%29%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{2^{N - k(\omega)}}&amp;fg=000000' title='{2^{N - k(\omega)}}&amp;fg=000000' class='latex' /> leaves. Since there are <img src='http://s.wordpress.com/latex.php?latex=%7B2%5EN%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{2^N}&amp;fg=000000' title='{2^N}&amp;fg=000000' class='latex' /> leaves in total, we have that:</p>
<p><p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Csum_%5Comega%202%5E%7BN-k%28%5Comega%29%7D%20%5Cleq%202%5EN%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \sum_\omega 2^{N-k(\omega)} \leq 2^N&amp;fg=000000' title='\displaystyle \sum_\omega 2^{N-k(\omega)} \leq 2^N&amp;fg=000000' class='latex' /></p>
<p> what proves one direction of the result. Now, to prove the converse direction, we can propose a greedy algorithm: given <img src='http://s.wordpress.com/latex.php?latex=%7B%5COmega%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Omega}&amp;fg=000000' title='{\Omega}&amp;fg=000000' class='latex' /> and <img src='http://s.wordpress.com/latex.php?latex=%7Bk%28%5Comega%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k(\omega)}&amp;fg=000000' title='{k(\omega)}&amp;fg=000000' class='latex' /> such that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Csum_%5Comega%202%5E%7B-k%28%5Comega%29%7D%20%5Cleq%201%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\sum_\omega 2^{-k(\omega)} \leq 1}&amp;fg=000000' title='{\sum_\omega 2^{-k(\omega)} \leq 1}&amp;fg=000000' class='latex' />, let <img src='http://s.wordpress.com/latex.php?latex=%7BN%20%3D%20%5Cmax_%5Comega%20k%28%5Comega%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{N = \max_\omega k(\omega)}&amp;fg=000000' title='{N = \max_\omega k(\omega)}&amp;fg=000000' class='latex' />. Now, suppose <img src='http://s.wordpress.com/latex.php?latex=%7Bk%28%5Comega_1%29%20%5Cleq%20k%28%5Comega_2%29%20%5Cleq%20k%28%5Comega_3%29%20%5Cleq%20%5Chdots%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k(\omega_1) \leq k(\omega_2) \leq k(\omega_3) \leq \hdots}&amp;fg=000000' title='{k(\omega_1) \leq k(\omega_2) \leq k(\omega_3) \leq \hdots}&amp;fg=000000' class='latex' />. Start with <img src='http://s.wordpress.com/latex.php?latex=%7B2%5EN%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{2^N}&amp;fg=000000' title='{2^N}&amp;fg=000000' class='latex' /> leaves in a whole block. Start dividing them in <img src='http://s.wordpress.com/latex.php?latex=%7B2%5E%7Bk%28%5Comega_1%29%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{2^{k(\omega_1)}}&amp;fg=000000' title='{2^{k(\omega_1)}}&amp;fg=000000' class='latex' /> blocks and assign one to <img src='http://s.wordpress.com/latex.php?latex=%7B%5Comega_1%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\omega_1}&amp;fg=000000' title='{\omega_1}&amp;fg=000000' class='latex' />. Now we define the recursive step: when we analyze <img src='http://s.wordpress.com/latex.php?latex=%7B%5Comega_j%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\omega_j}&amp;fg=000000' title='{\omega_j}&amp;fg=000000' class='latex' />, the leaves are divided in <img src='http://s.wordpress.com/latex.php?latex=%7B2%5E%7Bk%28%5Comega_j-1%29%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{2^{k(\omega_j-1)}}&amp;fg=000000' title='{2^{k(\omega_j-1)}}&amp;fg=000000' class='latex' /> blocks, some occupied, some not. Divide each free block in <img src='http://s.wordpress.com/latex.php?latex=%7B2%5E%7Bk%28%5Comega_j%29%20-%20k%28%5Comega_j-1%29%7D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{2^{k(\omega_j) - k(\omega_j-1)}}&amp;fg=000000' title='{2^{k(\omega_j) - k(\omega_j-1)}}&amp;fg=000000' class='latex' /> blocks and assign one of them to <img src='http://s.wordpress.com/latex.php?latex=%7B%5Comega_j%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\omega_j}&amp;fg=000000' title='{\omega_j}&amp;fg=000000' class='latex' />. It is not hard to see that each block corresponds to one node in the tree (the common ancestor of all the leaves in that block) and that it corresponds to a proper code. <img src='http://s.wordpress.com/latex.php?latex=%5CBox%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\Box&amp;fg=000000' title='\Box&amp;fg=000000' class='latex' /></p>
<p>
Now, using this we show how to find a code with with <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathop%7B%5Cmathbb%20E%7D%5Bk%28%5Comega%29%5D%20%5Cleq%20H%20%2B%201%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathop{\mathbb E}[k(\omega)] \leq H + 1}&amp;fg=000000' title='{\mathop{\mathbb E}[k(\omega)] \leq H + 1}&amp;fg=000000' class='latex' />. For each <img src='http://s.wordpress.com/latex.php?latex=%7B%5Comega%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\omega}&amp;fg=000000' title='{\omega}&amp;fg=000000' class='latex' />, since <img src='http://s.wordpress.com/latex.php?latex=%7Bp%28%5Comega%29%20%5Cin%20%280%2C1%5D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p(\omega) \in (0,1]}&amp;fg=000000' title='{p(\omega) \in (0,1]}&amp;fg=000000' class='latex' /> we can always find <img src='http://s.wordpress.com/latex.php?latex=%7Bk%28%5Comega%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k(\omega)}&amp;fg=000000' title='{k(\omega)}&amp;fg=000000' class='latex' /> such that <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cfrac%7B1%7D%7B2%7D%20p%28%5Comega%29%20%5Cleq%202%5E%7B-k%28%5Comega%29%7D%20%5Cleq%20p%28%5Comega%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\frac{1}{2} p(\omega) \leq 2^{-k(\omega)} \leq p(\omega)}&amp;fg=000000' title='{\frac{1}{2} p(\omega) \leq 2^{-k(\omega)} \leq p(\omega)}&amp;fg=000000' class='latex' />. Now, clearly:</p>
<p><p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Csum_%5Comega%202%5E%7B-k%28%5Comega%29%7D%20%5Cleq%20%5Csum_%5Comega%20p%28%5Comega%29%20%3D%201%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \sum_\omega 2^{-k(\omega)} \leq \sum_\omega p(\omega) = 1&amp;fg=000000' title='\displaystyle \sum_\omega 2^{-k(\omega)} \leq \sum_\omega p(\omega) = 1&amp;fg=000000' class='latex' /></p>
<p> and:
<p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cmathop%7B%5Cmathbb%20E%7D%5Bk%28%5Comega%29%5D%20%3D%20%5Csum_%5Comega%20k%28%5Comega%29%20p%28%5Comega%29%20%5Cleq%20%5Csum_%5Comega%20%5B1%20-%20%5Clog_2%20p%28%5Comega%29%5D%20p%28%5Comega%29%20%3D%20H%20%2B%201%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \mathop{\mathbb E}[k(\omega)] = \sum_\omega k(\omega) p(\omega) \leq \sum_\omega [1 - \log_2 p(\omega)] p(\omega) = H + 1&amp;fg=000000' title='\displaystyle \mathop{\mathbb E}[k(\omega)] = \sum_\omega k(\omega) p(\omega) \leq \sum_\omega [1 - \log_2 p(\omega)] p(\omega) = H + 1&amp;fg=000000' class='latex' /></p>
<p>
Cool, but now how to bring it to <img src='http://s.wordpress.com/latex.php?latex=%7BH%20%2B%20%5Cepsilon%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{H + \epsilon}&amp;fg=000000' title='{H + \epsilon}&amp;fg=000000' class='latex' /> ? The idea is to code multiple blocks at the same time (even if they are independent, we are not taking advantage of correlation between the blocks). Consider <img src='http://s.wordpress.com/latex.php?latex=%7B%5COmega%5Ek%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Omega^k}&amp;fg=000000' title='{\Omega^k}&amp;fg=000000' class='latex' /> and the probability function induced on it, i.e.:</p>
<p><p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20p_k%20%28%5Comega_1%2C%20%5Chdots%2C%20%5Comega_k%29%20%3D%20%5Cprod_%7Bi%3D1%7D%5Ek%20p%28%5Comega_i%29%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle p_k (\omega_1, \hdots, \omega_k) = \prod_{i=1}^k p(\omega_i)&amp;fg=000000' title='\displaystyle p_k (\omega_1, \hdots, \omega_k) = \prod_{i=1}^k p(\omega_i)&amp;fg=000000' class='latex' /></p>
<p>
It is not hard ot see that <img src='http://s.wordpress.com/latex.php?latex=%7B%5COmega%5Ek%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\Omega^k}&amp;fg=000000' title='{\Omega^k}&amp;fg=000000' class='latex' /> with <img src='http://s.wordpress.com/latex.php?latex=%7Bp_k%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{p_k}&amp;fg=000000' title='{p_k}&amp;fg=000000' class='latex' /> has entropy <img src='http://s.wordpress.com/latex.php?latex=%7BkH%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{kH}&amp;fg=000000' title='{kH}&amp;fg=000000' class='latex' /> because:</p>
<p><p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20%5Cbegin%7Baligned%7D%20%5Csum_%7B%5Comega_1%2C%20%5Chdots%2C%20%5Comega_k%7D%20p_k%28%5Comega_1%2C%20%5Chdots%2C%20%5Comega_k%29%20%5Clog_2%20p_k%28%5Comega_1%2C%20%5Chdots%2C%20%5Comega_k%29%20%3D%5C%5C%20%3D%20%5Csum_%7B%5Comega_1%2C%20%5Chdots%2C%20%5Comega_k%7D%20%5Cprod_i%20p%28%5Comega_i%29%20%5Csum_i%20%5Clog_2%20p%28%5Comega_i%29%20%3D%5C%5C%20%3D%20%5Csum_i%20%5Csum_%5Comega%20p%28%5Comega%29%20%5Clog_2%20p%28%5Comega%29%20%3D%20kH%20%5Cend%7Baligned%7D%20%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle \begin{aligned} \sum_{\omega_1, \hdots, \omega_k} p_k(\omega_1, \hdots, \omega_k) \log_2 p_k(\omega_1, \hdots, \omega_k) =\\ = \sum_{\omega_1, \hdots, \omega_k} \prod_i p(\omega_i) \sum_i \log_2 p(\omega_i) =\\ = \sum_i \sum_\omega p(\omega) \log_2 p(\omega) = kH \end{aligned} &amp;fg=000000' title='\displaystyle \begin{aligned} \sum_{\omega_1, \hdots, \omega_k} p_k(\omega_1, \hdots, \omega_k) \log_2 p_k(\omega_1, \hdots, \omega_k) =\\ = \sum_{\omega_1, \hdots, \omega_k} \prod_i p(\omega_i) \sum_i \log_2 p(\omega_i) =\\ = \sum_i \sum_\omega p(\omega) \log_2 p(\omega) = kH \end{aligned} &amp;fg=000000' class='latex' /></p>
<p> and then we can just apply the last theorem to that: we can find a function that codifies <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}&amp;fg=000000' title='{k}&amp;fg=000000' class='latex' /> symbols <img src='http://s.wordpress.com/latex.php?latex=%7B%5Comega%20%3D%20%28%5Comega_1%2C%20%5Chdots%2C%20%5Comega_k%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\omega = (\omega_1, \hdots, \omega_k)}&amp;fg=000000' title='{\omega = (\omega_1, \hdots, \omega_k)}&amp;fg=000000' class='latex' /> with <img src='http://s.wordpress.com/latex.php?latex=%7Bl%28%5Comega%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{l(\omega)}&amp;fg=000000' title='{l(\omega)}&amp;fg=000000' class='latex' /> symbols such that:</p>
<img src='http://s.wordpress.com/latex.php?latex=%7BkH%20%5Cleq%20%5Cmathop%7B%5Cmathbb%20E%7D%5Bl%28%5Comega%29%5D%20%5Cleq%20kH%20%2B%201%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{kH \leq \mathop{\mathbb E}[l(\omega)] \leq kH + 1}&amp;fg=000000' title='{kH \leq \mathop{\mathbb E}[l(\omega)] \leq kH + 1}&amp;fg=000000' class='latex' /> since <img src='http://s.wordpress.com/latex.php?latex=%7Bl%28%5Comega%29%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{l(\omega)}&amp;fg=000000' title='{l(\omega)}&amp;fg=000000' class='latex' /> codifies <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{k}&amp;fg=000000' title='{k}&amp;fg=000000' class='latex' /> symbols, we are actually interested in <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cmathop%7B%5Cmathbb%20E%7D%5Bl%28%5Comega%29%2Fk%5D%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='{\mathop{\mathbb E}[l(\omega)/k]}&amp;fg=000000' title='{\mathop{\mathbb E}[l(\omega)/k]}&amp;fg=000000' class='latex' /> and therefore we get:</p>
<p><p align=center><img src='http://s.wordpress.com/latex.php?latex=%5Cdisplaystyle%20H%20%5Cleq%20%5Cmathop%7B%5Cmathbb%20E%7D%5Cleft%5B%5Cfrac%7Bl%28%5Comega%29%7D%7Bk%7D%5Cright%5D%20%5Cleq%20H%20%2B%20%5Cfrac%7B1%7D%7Bk%7D%26fg%3D000000&#038;bg=T&#038;fg=000000&#038;s=0' alt='\displaystyle H \leq \mathop{\mathbb E}\left[\frac{l(\omega)}{k}\right] \leq H + \frac{1}{k}&amp;fg=000000' title='\displaystyle H \leq \mathop{\mathbb E}\left[\frac{l(\omega)}{k}\right] \leq H + \frac{1}{k}&amp;fg=000000' class='latex' />
<p>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/145/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming and Storytelling</title>
		<link>http://www.bigredbits.com/archives/139</link>
		<comments>http://www.bigredbits.com/archives/139#comments</comments>
		<pubDate>Sat, 22 Aug 2009 00:35:25 +0000</pubDate>
		<dc:creator>renatoppl</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[mathematics]]></category>
		<category><![CDATA[stotytelling]]></category>

		<guid isPermaLink="false">http://www.bigredbits.com/?p=139</guid>
		<description><![CDATA[Recently I looked in Papadimitriou&#8217;s website looking for something else and found this great article called: &#8220;MythematiCS: In Praise of Storytelling in the Teaching of Computer Science and Math&#8221;. He begins by pointing out the in early times knowledge was transferred mostly by storytelling &#8211; and there is much more place in contemporary technical teaching [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I looked in <a href="http://www.cs.berkeley.edu/~christos/">Papadimitriou&#8217;s website</a> looking for something else and found <a href="http://www.cs.berkeley.edu/~christos/papers/MYTHEMATICS.doc">this great article</a> called: &#8220;MythematiCS: In Praise of Storytelling in the Teaching of Computer Science and Math&#8221;. He begins by pointing out the in early times knowledge was transferred mostly by storytelling &#8211; and there is much more place in contemporary technical teaching to storytelling than most of people realize. He has several interesting points: one of them is that we can think of <a href="http://www.cs.berkeley.edu/~christos/narrative.ppt">writting a computer program as telling a story</a>. For example, the variables are the characters: they have characteristics (data types) and the whole story (program) is about playing around with them. Sometimes they have multiple faces and behaviors depending on the circumstance (<a href="http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming">polymorphism</a>). Iteration and recursion are common literary tools, used for example in fairy tales &#8220;in the first day, this happens, in the second day, that happens, then&#8230;&#8221; or &#8220;he might be able to do that just if he does that&#8230;&#8221;. He mentions one of my favourite books: <a href="http://en.wikipedia.org/wiki/If_on_a_Winter%27s_Night_a_Traveler">&#8220;If on a Winter&#8217;s Night a Traveler&#8221;</a> as a great example of recursion. This made me think that maybe Italo Calvino is my favourite author because his stories are so beautifully constructed in an almost mathematical fashion &#8211; like an <a href="http://en.wikipedia.org/wiki/M._C._Escher">Escher paiting</a> or  <a href="http://en.wikipedia.org/wiki/Bach">Bach music</a>. They went very far in showing the beauty of math and showing it is really one art. For example, this beautiful representation of the hyperbolic plane:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-140" style="border: 2px solid black;" title="Escher_Circle_Limit_III" src="http://www.bigredbits.com/wp-content/uploads/2009/08/Escher_Circle_Limit_III.jpg" alt="Escher_Circle_Limit_III" width="383" height="383" /></p>
<p style="text-align: left;">Back to programming there are still a lot of interesting relations: several novels are multi-threaded. We look at the novels from perspectives of multiple characters. Stories also need to &#8220;compile and run&#8221;, which in this case mean, make sense and be accepted by people. I was thinking that there are a lot of books which everyone knows about but very few people have ever read (Ulisses, for example). Are those NP-complete problems?</p>
<p style="text-align: left;">Back to Papadimitriou&#8217;s article, he talks about a few interesting books that do a good job in mixing together math and stories. One that he mentions I read a long time ago, still when I was in high-school and it did a great job in further stimulating me on math. The book was <a href="http://www.amazon.com/Parrots-Theorem-Novel-Denis-Guedj/dp/0312303025/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1250900284&amp;sr=1-1">The Parrot&#8217;s Theorem</a>. Recently I also read one other book that he mentioned: <a href="http://www.amazon.com/Surreal-Numbers-Donald-E-Knuth/dp/0201038129/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1250900330&amp;sr=1-1">Surreal Numbers</a>, by Don Knuth. Although I am a great fan of almost everything Knuth writes, this book didn&#8217;t caught me much. I think it may be because I am not the right audience. If I read it a couple of years back I might have enjoyed it much more.</p>
<p style="text-align: left;">When I was in Greece last year, I came across this very interesting comic book: <a href="http://www.amazon.com/Logicomix-Search-Truth-Apostolos-Doxiadis/dp/0747597200/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1250900446&amp;sr=1-1">Logicomix</a>. It was in Greek but just by looking into it I figured out it was something about math and it seemed pretty cool. Later I found out this was written by Papadimitriou and Doxiadis, which made me even more curious to read it. Now I am waiting the English translation of it. One last pointer: Doxiadis has a webpage with some <a href="http://www.apostolosdoxiadis.com/en/index.php?option=com_content&amp;view=article&amp;id=189&amp;Itemid=70">interesting essays</a> about the relations of mathematical proofs, computer programming and storytelling.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;"><!-- 		@page { margin: 0.79in } 		P { margin-bottom: 0.08in } -->as t</p>
<p style="margin-bottom: 0in; font-style: normal; text-decoration: none;" align="left"><strong><span style="text-decoration: none;"><span style="font-size: medium;"><em>Myth</em></span></span><span style="text-decoration: none;"><span style="font-size: medium;"><span style="font-style: normal;">ematiCS</span></span></span></strong><span style="text-decoration: none;"><span style="font-size: medium;"><span style="font-style: normal;"><span style="font-weight: normal;">: </span></span></span></span><span style="text-decoration: none;"><sup><span style="font-size: xx-small;"><span style="font-style: normal;"><span style="font-weight: normal;">(1)</span></span></span></sup></span></p>
<p style="margin-bottom: 0in; font-style: normal; text-decoration: none;" align="center"><span style="font-size: medium;"><strong>In Praise of Storytelling in the Teaching of<br />
Computer Science and Math</strong></span></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bigredbits.com/archives/139/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
