Update (December 2020)

I am trying to solve a two-body problem in the American West. Here's my CV. Also check out:

source view: research.php


<?php



  require './classes/DB.php';
  require './classes/Research.php';






  CoauthorPopulation::setDatabase( DB::getDB() );
  ResearchPortfolio::setDatabase( DB::getDB() );
  $economics = ResearchPortfolio::getResearch();
  $old_stuff = array(
    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.', '', '2013' ),
    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.', '', '2013' )
  );
  


  /*
  $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( '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', '', '' )
  );
  */



  require './classes/Page.php';
  $page = new Page();



  $page->addHeader( <<<EOJS
<script language="javascript">
  function showAbstract ( i )
  {
    var abstract_link = document.getElementById( 'abstract-link-' + i );
    abstract_link.style.display = 'none';
    abstract_link.parentNode.classList.add( 'no-divider' );
    document.getElementById( 'abstract-text-' + i ).style.display = '';

    return false;
  }

  function showBibTeX ( i )
  {
    var bibtex_link = document.getElementById( 'bibtex-link-' + i );
    bibtex_link.style.display = 'none';
    bibtex_link.parentNode.classList.add( 'no-divider' );

    var bibtex = document.getElementById( 'bibtex-text-' + i )

    bibtex.style.display = 'block';
    var height           = 1;
    bibtex.style.height  = height + 'ex';
    while ( parseInt( bibtex.clientHeight ) < parseInt( bibtex.scrollHeight ) ) { bibtex.style.height = ++height + 'ex'; }
    bibtex.onclick = function () { this.select(); };

    bibtex.focus();
    bibtex.select();

    return false;
  }
</script>
EOJS
);
  $page->addHeader( <<<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 > span.abstract-link > span::after
  {
    content: " | ";
  }

  ul.static-list > li > span.abstract-link > span:last-child::after
  {
    content: "";
  }

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

  ul.static-list > li > span.no-divider > span::after
  {
    content: "";
  }

  ul.static-list > li textarea.bibtex
  {
    background-color: #f2f2f2;
    border:           1px solid #999;
    box-shadow:       none;
    color:            #666;
    display:          none;
    font-family:      monospace;
    font-size:        8pt;
    margin:           1ex 0ex;
    outline:          none;
    resize:           none;
    width:            100%;
  }

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

  .journal
  {
    display: block;
  }

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

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



  $page->printPageHeader();
  
  
  
?>
<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>
<ul class="static-list">
<?php

  for ( $i = 0; $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>old stuff</h3>
<ul class="static-list">
<?php

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

?>
</ul>
<?php
  
  
  
  $page->printPageFooter();
  
  
  
?>