source view: research.php


<?php



  class Coauthor
  {
    private $name;
    private $url;



    function __construct ( $name, $url )
    {
      $this->name = $name;
      $this->url  = $url;
    }



    public function getName ()
    {
      return $this->name;
    }



    public function getURL ()
    {
      return $this->url;
    }



    public function toHTML ()
    {
      return strlen( $this->url ) ?
        sprintf( '<a href="%s" target="_blank">%s</a>', htmlspecialchars( $this->url ), htmlspecialchars( $this->name ) ) :
        sprintf( '<span>%s</span>', htmlspecialchars( $this->name ) );
    }
  }



  class Research
  {
    private $title;
    private $url;
    private $description;
    
    
    
    function __construct ( $title, $url, $description, $coauthors = array() )
    {
      $this->coauthors   = $coauthors;
      $this->description = $description;
      $this->title       = $title;
      $this->url         = $url;
    }
    
    
    
    function toHTML ( $i, $abstract_link_text = 'abstract' )
    {
      $coauthor_string = '';
      if ( count( $this->coauthors ) > 0 )
      {
        $coauthor_string = '<span class="coauthors">With';
        for( $j = 0; $j < count( $this->coauthors ); ++$j )
        {
          if ( $j > 0 )
          {
            if ( count( $this->coauthors ) > 2 )
            {
              $coauthor_string .= ',';
            }

            if ( $j == count( $this->coauthors ) - 1 )
            {
              $coauthor_string .= ' and';
            }
          }

          $coauthor_string .= ' ' . $this->coauthors[$j]->toHTML();
        }

        $coauthor_string .= '</span> ';
      }

      $abstract_link  = '';
      $abstract_style = '';
      if ( strlen( $this->description ) > 0 && strlen( $abstract_link_text ) > 0 )
      {
        $abstract_link  = sprintf( '<span id="abstract-link-%d" class="abstract-link">[<a href="#" onclick="showAbstract(%d);return false;">%s</a>]</span>', $i, $i, htmlspecialchars( $abstract_link_text ) );
        $abstract_style = ' style="display:none;"';
      }
      else if ( strlen( $abstract_link_text ) > 0 )
      {
        $abstract_style = ' style="display:none;"';
      }

      if ( $this->url != null )
      {
        $track_label = str_replace( array( '\\', '\'' ), array( '\\\\', '\\\'' ), $this->title );
        return <<<EOH
<li>{$abstract_link}<a class="paper-title" href="{$this->url}" onclick="pageTracker._trackEvent('Research','Downloads','{$track_label}');">{$this->title}</a><div class="abstract-text">{$coauthor_string}<span id="abstract-text-{$i}"{$abstract_style}>{$this->description}</span></div>
EOH;
      }
      else
      {
        return <<<EOH
<li>{$abstract_link}<strong class="paper-title">{$this->title}</strong><div class="abstract-text">{$coauthor_string}<span id="abstract-text-{$i}"{$abstract_style}>{$this->description}</span></div>
EOH;
      }
    }
  }
  
  
  
  if ( $_SERVER['SERVER_NAME'] != 'localhost' )
  {
    require( 'db.connect.php' );
    $formula_query = mysql_query( 'SELECT COUNT(*) FROM tblBlogFormulas WHERE isLoaded = 1' );
    $formula_row   = mysql_fetch_row( $formula_query );
  }
  else
  {
    $formula_row = array( -1 );
  }
  
  
  
  $economics   = array(
    //    new Research( 'Strategic Ironing in Pay-as-Bid Auctions: Equilibrium Existence with Private Information', '/research/woodward-strategic-ironing.pdf', 'I establish the existence of pure-strategy Bayesian-Nash equilibria in divisible-good pay-as-bid auctions with private information, and show that such equilibria can approximate equilibria in nearby multi-unit auctions. I show that equilibrium strategies exhibit <em>strategic ironing</em>, a reduction of bids below what might be expected. Strategic ironing has implications for the tractability of equilibrium strategies.' ),
    new Research( 'Auctions and Other Games with Max-Min Players', '', '', array( new Coauthor( 'Marek Pycia', 'http://pycia.bol.ucla.edu' ) ) ),
    new Research( 'Last Accepted Bid Pricing in Multi-Unit Auctions', '', 'We model multi-unit auctions in which bidders\' valuations are multi-dimensional private information. We show that the <em>last accepted bid</em> pricing rule admits a unique well-behaved equilibrium which is efficient, tractable, and fully reveals agents\' information. In contrast, all equilibria of the <em>first rejected bid</em> and <em>pay-as-bid</em> auctions are inefficient and information-confounding, independent of well-behavedness and tractability. Furthermore, the first rejected bid auction admits multiple equilibria, many of which yield zero seller revenue. Our tractability result implies that last accepted bid auctions are a natural generalization of first-price auctions to multi-unit contexts. Taken together, our results suggest that a small modification in uniform-pricing rules from first rejected bid to last accepted bid may yield substantial improvements in revenue, efficiency, and simplicity.', array( new Coauthor( 'Justin Burkett', 'http://justin.burkett.cc' ) ) ),
    new Research( 'Equilibrium and Approximation in Auction-Like Models', '/pdfs/woodward-equilibrium-and-approximation.pdf', '
  I define auction-like models with continuum actions to satisfy a number of conditions which are met in common auction contexts, when action spaces are appropriately constrained. In these models, I prove that there exists a monotone pure-strategy Bayesian-Nash euqilibrium. The proof of equilibrium existence constructs equilibrium as a limit of equilibria of nearby discretized models, which implies that utility-relevant observable functions of actions are converging in probability to the continuum-action limit. The conditions defining auction-like models are intuitive: first, bidder utility cannot be adversely affected by small upward deviations; second, with small deviations bidders can guarantee themselves nearly the utility at a limit of strategies in the limit of the deviated strategies; third, if one bidder is discontinuously worse off in a limit of strategies, some other bidder is occasionally better off. Under mild additional conditions, the action space constraints are irrelevant, and the limiting strategies are an equilibrium in the unconstrained continuum-action model. I use these results to prove the existence of pure-strategy equilibria in divisible-good pay-as-bid auctions with private information, heterogeneous agents, and generic decreasing value functions. Equilibrium approximation implies that the distribution of observed allocations and seller revenue in discrete auctions may be close to the distribution of these outcomes predicted by the divisible-good model.' ),
    new Research( 'Pay-as-Bid: Selling Divisible Goods', '/pdfs/pycia+woodward-paba.pdf', 'Pay-as-bid is the most popular auction format for selling treasury securities. We prove the uniqueness of pure-strategy Bayesian-Nash equilibria in pay-as-bid auctions where symmetrically-informed bidders face uncertain supply, and we establish a tight sufficient condition for the existence of this equilibrium. Equilibrium bids have a convenient separable representation: the bid for any unit is a weighted average of marginal values for larger quantities. With optimal supply and reserve price, the pay-as-bid auction is revenue-equivalent to the uniform-price auction.', array( new Coauthor( 'Marek Pycia', 'http://pycia.bol.ucla.edu' ) ) ),
    new Research( 'Sharpness of Approximation Boundary in the Bipartite Pricing Problem', '/pdfs/woodward-bipartite-pricing-201312.pdf', 'The bipartite demand problem is known to have an easy approximation which generates at least half the maximum profits for the selling side of the market. We demonstrate via an example that this approximation is tight, and that the results of the approximation algorithm cannot necessarily be improved upon any subsequent algorithm which takes the approximation as given.' ),
    new Research( 'Herding as a Robust Phenomenon', '', 'We address the generality of herding outcomes when agents are not necessarily Bayesian-rational. Herding is shown to arise from optimal responses to observed choice sequences under the relatively weak constraint that preferences must "point in the same direction." This generalizes to suboptimal reasoning processes which obey certain properties.' ),
    new Research( 'White Elephant is not Strategy-Proof', '/current/on-white-elephant/', 'In an extended blog post, I show that the traditional American holiday game White Elephant &mdash; alternatively, Yankee Swap &mdash; is not strategy-proof.' )
//    new Research( 'A Purification Theorem for Timing Games', '', '<em>With Greg Kubitz.</em> We provide a purification result for games where bidders select from an uncountable action space. This result has implications for models in which agents randomize over the time at which they take a defined action.' ),
//    new Research( 'Karma and Belief Manipulation', '', '' ),
//    new Research( 'Information Provision in Auctions with Resale', '', '' ),
//    new Research( 'Optimization through Obfuscation: Mechanism Randomization in Multi-Unit Auctions', '', '' )
  );
  $programming = array(
    new Research( 'Fractal generator', '/v2/fractal/?canvas', 'HTML5 implementation of the <a href="/">splash page</a> fractals, built to test real-time image generation prior to site upgrade. 2D rendering in WebGL is still an emerging feature, with especial pitfalls if the underlying optimization problems are not known in advance; there\'s a <tt>&lt;canvas&gt;</tt> backup for browsers that don\'t make the grade.' ),
    new Research( 'Javascript Logo', '/v2/logo/', 'A partial (yet fairly robust) implementation of the Microworlds dialect of Logo through Javascript and canvas. Documentation is as-yet nonexistent, but there are several examples to demonstrate basic features; the header graphics on this website are generated through the interpreter, so viewing source is another excellent tool. Currently there is no turtle icon moving around, since <a href="http://inkscape.org/" target="_blank">Inkscape</a> runs like molasses on my machine.' ),
    new Research( 'LaTeX to png', '/latex.php', 'Generates png graphics from LaTeX math markup; although there are many similar services out there at present, back in 2008 this was pretty much the option. As of <em>right now</em>, I am hosting ' . $formula_row[0] . ' mathematical formulas available to the world, which proves that someone out there finds this useful.' ),
    new Research( 'ROFLBOT', '/roshambo-markov-chains-and-a-teaspoon-of-lulz/', 'A locally-successful rock-paper-scissors runner-up, coming in second place in the first-and-last annual Homestead Rock-Paper-Scissors championship (where the only rule was to not implement <a href="http://ofb.net/~egnor/iocaine.html" target="_blank">Iocaine Powder</a>). The primary challenge of this was not so much implementing a complex decision rule as it was implementing it in LOLCODE; I am proud of its performance given the constraints.' ),
    new Research( 'YALI', '/yali-yet-another-lolcode-interpreter/', 'A Perl interpreter for <a href="http://lolcode.com/" target="_blank">LOLCODE</a>; now <a href="http://portsmon.freebsd.org/portoverview.py?category=textproc&portname=yali" target="_blank">ships with FreeBSD</a>. While cat macros have come and gone &mdash; and good riddance &mdash; this experiment in language design and implementation has proved fairly instructive downstream.' )
  );



  $script = <<<EOJS
<script language="javascript">
  function showAbstract ( i )
  {
    document.getElementById( 'abstract-link-' + i ).style.visibility = 'hidden';
    document.getElementById( 'abstract-text-' + i ).style.display    = '';
  }
</script>
EOJS;
  $style = <<<EOS
<style type="text/css">
  ul.static-list li
  {
    margin-bottom: 2ex;
    text-align:    left;
  }

  ul.static-list > li > span.abstract-link
  {
    float:       right;
    line-break:  pre;
    position:    relative;
    right:       0px;
    margin-left: 3ex;
  }

  ul.static-list > li > div.abstract-text
  {
    text-align: justify;
  }

  .coauthors
  {
    display:    block;
    font-style: italic;
  }

  .paper-title
  {
    text-align: left;
  }

  @media screen and (max-width: 600px)
  {
    ul.static-list
    {
      margin-right: 3ex;
    }
  }
</style>
EOS;



  require '_pagewrapper.php';
  wrapPageTop( 'research.php', 'research', array( $style, $script ) );
  
  
  
?>
<h1 style="display:none;margin-top:0px;">research</h1>
<h3>economics</h3>
<p>
  My economic research focuses on microeconomic theory, and in particular on the study of auctions. I am currently pursuing a thread of topics which relate to the provisioning of multiple homogeneous goods in the same auction, a method which is commonly used to allocate government securities, power generation, and other commodities routed through a central agency. I aim to lend theoretical support to arguments in favor of mechanism selection by the auctioneer, with an eye toward practical implementability.
</p>
<?php if ( 0 ) { ?><h3 style="margin-left:2ex;font-size:1.1em;"><span style="color:#999;">::</span>&nbsp;&nbsp;job market</h3><?php } ?>
<ul class="static-list">
<?php

  for ( $i = 0; $i < 2; ++$i )
  {
    print $economics[$i]->toHTML( $i );
  }

?>
</ul>
<?php if ( 0 ) { ?><h3 style="margin-left:2ex;font-size:1.1em;"><span style="color:#999;">::</span>&nbsp;&nbsp;other working papers</h3>
<p>
  
</p><?php } ?>
<ul class="static-list">
<?php

  for ( $i = 2; $i < count( $economics ); ++$i )
  {
    print $economics[$i]->toHTML( $i );
  }

?>
</ul>
<p style="margin-top:3ex;">
  You might see me present any of the above projects (or others) if you check my <a href="/calendar">calendar</a>.
</p>
<p>
  I am in the process of building and maintaining a <a href="/references.php">list of references</a> contained in my papers. Having been stymied by <a href="http://scholar.google.com/">Google Scholar</a> more than a few times, even with VPN, I think it's only fair to make accessible the papers that I have found in the public domain.
</p>
<h3>programming</h3>
<p>
  Coding helps me explore unusual, aesthetic questions. While it might be a stretch to classify the following as research proper, each represents something deeper than just-a-website. All can be played with to satisfy your own curiosity, although some need to be downloaded first.
</p>
<ul class="static-list">
<?php

  for ( $i = 0; $i < count( $programming ); ++$i )
  {
    print $programming[$i]->toHTML( $i + count( $economics ), '' );
  }
  
?>
</ul>
<?php
  
  
  
  wrapPageBottom();
  
  
  
?>