﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<?xml-stylesheet href="xbl-shape-bindings.css" type="text/css"?>

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:mml="http://www.w3.org/1998/Math/MathML"
	xmlns:svg="http://www.w3.org/2000/svg" 
	xmlns:xlink="http://www.w3.org/1999/xlink">

<head>
  <title>Geometry is Everywhere, Part XLVII: Metrics, Nets, Dimensions, Measures</title>
<!-- metadata -->
  <meta name="generator" content="S5" />
  <meta name="version" content="S5 1.1" />
  <meta name="presdate" content="20080611" />
  <meta name="author" content="Ken Clarkson &bull;" />
  <meta name="company" content="IBM Almaden Research" />
<!-- configuration parameters -->
  <meta name="defaultView" content="slideshow" />
  <meta name="controlVis" content="hidden" />
<!-- style sheet links -->
  <link rel="stylesheet" href="ui/default/slides.css" type="text/css"
 media="projection" id="slideProj" />
  <link rel="stylesheet" href="ui/default/outline.css" type="text/css"
 media="screen" id="outlineStyle" />
  <link rel="stylesheet" href="ui/default/print.css" type="text/css"
 media="print" id="slidePrint" />
  <link rel="stylesheet" href="ui/default/opera.css" type="text/css"
 media="projection" id="operaFix" />
<!-- embedded styles -->
  <style type="text/css" media="all">
.imgcon {width: 525px; margin: 0 auto; padding: 0; text-align: center;}
#anim {width: 270px; height: 320px; position: relative; margin-top: 0.5em;}
#anim img {position: absolute; top: 42px; left: 24px;}
img#me01 {top: 0; left: 0;}
img#me02 {left: 23px;}
img#me04 {top: 44px;}
img#me05 {top: 43px;left: 36px;}
  </style>
  <style type="text/css" media="all">
    .floatright {float : right;}
    .lighttitle {color: white}
    .do_strike {text-decoration:line-through}
    td:hover {color:blue;}
  </style>
  <script src="ASCIIMathML.js" type="text/javascript" />
  <!-- S5 JS -->
  <script src="ui/default/slides.js" type="text/javascript" />
  <script type="text/javascript">
	AMsymbols = AMsymbols.concat([
	{input:">>", tag:"mo", output:"\u226B", tex:"gg"},
	{input:"ll", tag:"mo", output:"\u226A", tex:"ll"},
	{input:"sgn",  tag:"mo", output:"sgn", tex:null, ttype:CONST},
	{input:"exp",  tag:"mo", output:"exp", tex:null, ttype:CONST},
	{input:"Prob",  tag:"mo", output:"Prob", tex:null, ttype:CONST},
	{input:"argmax",  tag:"mo", output:"argmax", tex:null, ttype:UNDEROVER},
	]);
        

  </script>

</head>
<body>
<div class="layout">
   <div id="controls">
    <form action="#" id="controlForm" onmouseover="showHide('s');" onmouseout="showHide('h');">
      <div id="navLinks" class="hideme">
        <a accesskey="t" id="toggle" href="javascript:toggle();">&#216;</a>
        <a accesskey="z" id="prev" href="javascript:go(-1);">&laquo;</a>
        <a accesskey="x" id="next" href="javascript:go(1);">&raquo;</a>
      <div id="navList" ><select id="jumplist" onchange="go('j');"> </select></div>
      </div>
    </form>
  </div>
<div id="currentSlide"><!-- DO NOT EDIT --></div>
<div id="footer">
   <h1></h1>
   <h2></h2>
</div>

</div>

<ol class="xoxo presentation">
  <li class="slide">
    <h1>Geometry is Everywhere, Part XLVII: Metrics, Nets, Dimensions, Measures</h1>
	<br/>
   <h3>Ken Clarkson</h3>
   <h4>IBM Almaden Research</h4>
  </li>

  <li class="slide">
    <h1>Geometers are Everywhere</h1>

<table style="font-size:small">
  <tr>
    <td title="ACM Symp. Advances in GIS">ACM Symp. Advances in GIS</td>
    <td>ACM Symp. on Parallelism in Algorithms and Architectures (SPAA)</td>
    <td>ACM Symp. on Principles of Distributed Computing (PODC),</td>
    <td>ACM Transactions on Algorithms</td>
    <td>ALENEX</td>
  </tr><tr>
    <td>ALGOSENSORS</td>
    <td>Advances in Mathematics</td>
    <td>Air Traffic Control Quarterly</td>
    <td>Algorithmic Aspects of Large and Complex Networks</td>
    <td>Algorithms in Bioinformatics</td>
  </tr><tr>
    <td>Annual IEEE Intl. Conf. Very Large Databases</td>
    <td>Applied Cryptography and Network Security Conference</td>
    <td>BioInformatics</td>
    <td>Biochemistry</td>
    <td>Bioinformatics</td>
  </tr><tr>
    <td>Biological Crystallography</td>
    <td>Broadnets</td>
    <td>Canadian Conference on Computational Geometry</td>
    <td>Canadian Conference on Computer Science and Software Engineering</td>
    <td>Combinatorial and Computational Geometry</td>
  </tr><tr>

    <td>Combinatorica</td>
    <td>Combinatorics, Probability and Computing</td>
    <td>Computational Geometry: Theory and Applications</td>
    <td>Computational Statistics and Data Analysis</td>
    <td>Computer Aided Geometric Design</td>
      </tr><tr>

    <td>Computer Graphics Forum</td>
    <td>Computer Graphics, and Massive Data Exploration</td>
    <td>Computers and Games</td>
    <td>Conference on Mobile Data Management</td>
    <td>DCOSS</td>
      </tr><tr>

    <td>Discrete Applied Mathematics</td>
    <td>Discrete and Computational Geometry</td>
    <td>Ecology Letters</td>
    <td>Eurographics Symposium on Point-Based Graphics</td>
    <td>Eurographics/ACM SIGGRAPH symposium</td>
      </tr><tr>

    <td>European Journal of Combinatorics</td>
    <td>European Symposium on Algorithms</td>
    <td>FSTTCS</td>
    <td>Form and Content in Sensor Networks</td>
    <td>Foundations of Computational Mathematics</td>
      </tr><tr>

    <td>Geombinatorics</td>
    <td>Graphs and Combinatorics</td>
    <td>ICCAD</td>
    <td>IEEE Conference on Computer Vision and Pattern Recognition</td>
    <td>IEEE Conference on Pervasive Computing and Communications Workshops</td>
      </tr><tr>

    <td>IEEE PERVASIVE COMPUTING</td>
    <td>IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS</td>
    <td>IEEE Trans. Computer-Aided Design</td>
    <td>IEEE Trans. on Knowledge and Data Engineering</td>
    <td>IEEE Transactions on Wireless Communications</td>
      </tr><tr>

    <td>IEEE Vehicular Technology Conference</td>
    <td>IEEE Visualization</td>
    <td>IEEE Wireless Communications and Networking Conferences</td>
    <td>IFIP WG Working Conference on Data and Application Secuirity (DBSec)</td>
    <td>IJCAC</td>
      </tr>
      </table>
</li>
  
  <li class="slide">
    <h1>Geometers are Even More Everywhere</h1>
    
    <table style="font-size:small;">
      
      <tr>
      

    <td>INFOCOM</td>
    <td>IPSN</td>
    <td>Indian Statistical Institute Platinum Jubilee Commemorative Volume--Architecture and Algorithms</td>
    <td>Information Processing in Medical Imaging</td>
    <td>International Conference on Computational Science</td>
      </tr><tr>

    <td>International Conference on Computer Graphics and Interactive Techniques</td>
    <td>International Conference on Sensor Technologies and Applications</td>
    <td>International Symposium on Graph Drawing</td>
    <td>International Workshop on the Algorithmic Foundations of Robotics</td>
    <td>International symposium on Information processing in sensor networks</td>
      </tr><tr>

    <td>Intl. Conf. on Database Theory</td>
    <td>Intl. Symp. Spatial Data Handling</td>
    <td>Israel J. Math</td>
    <td>J. Comput. Biology (JCB)</td>
    <td>J. Intell. Inf. Syst. (JIIS)</td>
      </tr><tr>

    <td>J. London Math. Soc</td>
    <td>J. Proteome Res</td>
    <td>J. of Graph Algorithms and Applications</td>
    <td>Journal of Algorithms</td>
    <td>Journal of Combinatorial Theory</td>
      </tr><tr>

    <td>Journal of Computational Biology</td>
    <td>Journal of Differential Geometry</td>
    <td>Journal of Graph Theory </td>
    <td>Journal of Intelligent Information Systems</td>
    <td>Journal of Symbolic Computation,</td>
      </tr><tr>

    <td>Journal of the ACM</td>
    <td>Középiskolai Matematikai Lapok</td>
    <td>Mobile Networks and Applications</td>
    <td>Multimedia Information Retrieval</td>
    <td>PROTEINS: Structure, Function, and Bioinformatics</td>
      </tr><tr>

    <td>PSB</td>
    <td>Pacific Symposium on Biocomputing</td>
    <td>Proc. IEEE Int. Conf. on Acoustics, Speech and Signal Processing</td>
    <td>Proc. International Symposium on Spatial Data Handling</td>
    <td>Proc. Intl. Conf. Computational Systems Bioinformatic</td>
      </tr><tr>

    <td>Proc. Latin American Symposium on Theoretical Informatics (LATIN)</td>
    <td>Proc. Symbolic-Numeric Workshop</td>
    <td>Proc. of International Workshop on Ubiquitous Access Control</td>
    <td>Proc.~Intl. Symp. Symbolic and Algebraic Comp. (ISSAC'06)</td>
    <td>Proceedings of Information Processing in Medical Imaging</td>
      </tr><tr>

    <td>Proceedings of Robotics: Science and Systems</td>
    <td>Revue Roumaine de Mathématiques Pures et Appliquées</td>
    <td>SIAM Data Mining</td>
    <td>SIAM J. Discrete Math,</td>
    <td>Symposium on Geometry Processing</td>
      </tr><tr>

    <td>The Computer Journal</td>
    <td>The International Journal of Robotics Research</td>
    <td>Theory of Computing Systems</td>
    <td>Trans. Comput. Biology Bioinform. (TCBB)</td>
    <td>Workshop on Internet and Network Economics</td>
      </tr><tr>

    <td>Electronic Journal of Combinatorics</td>
      <td></td><td></td><td></td><td></td>
      </tr>
	</table>

    </li>
  
  <li class="slide">
    <h1>Overview</h1>
    <ul>
      <li class="incremental"><span onclick="hide_text();">Let `U` be a set of <span id="foo3">`n`</span> points</span> <span id="foo1" onclick="hide_text();"> in the plane</span><span id="foo2" onclick="hide_text();"> in general position</span></li>
      <li class="incremental">`U` + distance measure `D` == metric space `(U,D)`</li>
       <li class="incremental">"Real" title:
          <em>A Light Survey of Some Basic Constructions Related To Metric Spaces</em></li>
      
      <ul class="incremental">
	<li>Metric transformations</li>
	<li>`epsilon`-nets, the greedy algorithm, and applications</li>
	<li>A non-greedy algorithm and a few non-`epsilon`-nets</li>
	<li>Box dimension and coping with finiteness</li>
        <ul>
          <li>Definitions of dimension that make sense for finite sets</li>
          <li>Estimation of dimension using finite samples</li>
        </ul>
	<li>Neighbors</li>
	<li>Interpolation</li>
      </ul>
      <li class="incremental"><em>Point clouds</em> == point sets in high-d Euclidean space, often
        samples of a manifold</li>
      </ul>
    </li>
          
  
   <li class="slide">
    <h1>Metric Transformations</h1>
    
    Sometimes metrics appear unexpectedly
    
    <ul>
      <li>For integers `a` and `b`, `D(a,b) := |~ log_2 quad  1 + |a-b| ~|` is a metric</li>
      <ul>
	<li>That is, the number of bits needed to delta-encode `b`, given that you know `a`</li>
	<li>In general `log(1+D(x,y))` is a metric if `D(x,y)` is</li>
      </ul>
      <span class="incremental">
      <li>If `f` and `g` are functions on a random variable `x`, then `D(f,g) := Prob{f(x) != g(x)}` is a metric</li>
      <li>If `x_1, x_2,...` are `n` independent instances of `x`, then
	  <blockquote>`hat D(f,g) := Prob{exists x_i, f(x_i) != g(x_i)} = 1 - (1 - D(f,g))^n`</blockquote>
      is a metric</li>
      <ul><li>For any metric `D`, `1 - exp(-nD(x,y)) approx 1 - (1 - D(f,g))^n` is a metric</li></ul>
      </span>
    </ul>
  </li>


  <li class="slide">
    <h1>Metric Transformations: Scaling by Distance</h1>
    
    <ul><div style="display:block; float:right; width:2.5in"><img src="f/steinhaus.png"/></div>
      <li>If `A subset U`, then the distance `D` scaled by distance to `A`<br/>
      `hat D(x,y) := {:2 D(x,y):} / {: D(x,y) + min_{a in A} D(x,a) + D(a,y) :}`<br/>
      is a metric (Steinhaus/biotope) <a href="http://www.almaden.ibm.com/u/kclarkson/pubs.html#enet_tris">[C06]</a></li>
      <li class="incremental">Similarly: given a nonnegative `1`-Lipschitz function `F`, `{:D(x,y):} / {: D(x,y) + F(x) + F(y) :}` is a metric</li>
     </ul>
  </li>
  
  <li class="slide">
    <h1>`epsilon`-nets and the Greedy Algorithm</h1>
    
     <div style="display:block; float:right; height:5.5in; width:4.0in;" >
	<iframe src="greedy_demo/demo.svg" name="greedy_demo_ifrm" id="greedy_demo_ifrm"
         scrolling="no" frameborder="0" style="height:100%;width:100%" />
    </div>
    
    <ul>
      <li>`N subset U` is an `epsilon`-net if it is both an:</li>
      <ul>
	      <li>`epsilon`-packing: points in `N` are at least `epsilon` from each other</li>
	      <li>`epsilon`-covering: every point in `U` is within `epsilon` of some point of `N`</li>
      </ul>
      <li class="incremental"><em>Not</em> range-space `epsilon`-nets</li>
      
      <span class="incremental">
	<li>Nets exist, and can be found via a greedy algorithm:</li>
      <ul>
		<li>`N :={p}` for arbitrary `p in U`</li>
		<li>Repeat until done:</li>
      <ul>
        <li>Pick `p in U` with max `D(p,N)`, add to `N`</li>
	<ul><li>`D(p,N) := min_{p' in N} D(p,p')`</li></ul>
      </ul>
      </ul>
      </span>
    </ul>
  </li>
  
  

  <li class="slide">
    <h1>Examples</h1>
    
  <ul> 
    <li>Beacons for network routing<img src="f/nets_as_beacons2.png" align="center"/></li>
    <li>Low dispersion sets for non-probabilistic road maps <a href="opubs.html#LBL">[LBL03]</a> <img src="f/nonprob2.png" align="right"/></li>
    <li>Approximate and exact nearest-neighbor searching <a href="opubs.html#KL">[KL04]</a><a href="opubs.html#HM">[H-PM05]</a>
        <a href="http://www.almaden.ibm.com/u/kclarkson/pubs.html#nnms">[C99]</a>
    </li>
    <li>Constructions of metric embeddings</li>
  </ul>
  </li>
  
  
  <li class="slide">
    <h1>Examples, II</h1>
    <div style="float:right; width:200; height:250;">
       <!--<applet code="jvLite.class" archive="javaView/jvLite.jar" name="JavaView"
				width="200" height="250" style="float:right;" hspace="10" vspace="10" codebase="./">
		<param name="Model" value="javaView/paraboloid_tri.jvx"/>
		<param name="displayFile" value="javaView/paraboloid_tri.jvd"/>
		<param name="autoRotate" value="Hide"/>
		<param name="background" value="255;255;255"/>
		<param name="Border" value="Hide"/>
		<param name="Antialias" value="Show"/>
		<param name="Depthcue" value="Hide"/>
	</applet>-->
    </div>
 <ul>
    <li>Vertices of meshes that approximate smooth surfaces <a href="opubs.html#HG">[HG99]</a>
        <a href="http://www.almaden.ibm.com/u/kclarkson/pubs.html#enet_tris">[C06]</a>
    </li>
    <ul>
      <li>Under a metric based on geodesic distance and curvature</li>
      <li>`approx` Dudley's approximation of convex bodies</li>
    </ul>
    <li>`epsilon`-sparse `epsilon`-samples, for surface reconstruction <a href="opubs.html#AB">[AB98]</a>
    </li>
    <ul><li>Under the metric scaled by distance to the medial axis</li></ul>
     <div style="display:block; float:right; height:3.5in; width:4.5in;">
	<iframe src="graded_demo/demo.xml" name="ifrm" id="ifrm" scrolling="no" frameborder="0" style="height:100%;width:100%"/>
    </div>
    <li>Classical versions of Delaunay refinement for graded triangulations
    </li>
    <ul><li>Using the Euclidean distance, scaled by local feature size</li></ul>
    <li>Landmarks for witness complexes <a href="opubs.html#dSC">[dSC04]</a> </li>
  </ul>
  </li>

  
  <li class="slide">
    <h1>So What?</h1>
    <ul>
      <li>These observations are just a matter of terminology</li>
      <li>But: `epsilon`-nets are basic, and basic understanding of them and their relatives may be useful</li>
      <ul>
	<li>May yield cross-fertilizations</li>
    </ul>
    </ul>
  </li>  
  
  <li class="slide">
    <h1>Non-Greedy Construction</h1>

    <div style="display:block; float:right; height:5.5in; width:4.5in;">
      <iframe src="nongreedy/demo.svg" name="ifrm" id="ifrm" scrolling="no" frameborder="0" style="height:100%;width:100%"/>
    </div>
    
  <ul>
    <li>Greed is good, but not always best</li>
    <li>For `p in U`, in arbitrary order:</li>
    <ul>
      <li>If `D(p, N) > epsilon`, add `p` to `N`</li>
    </ul>
    <li>Avoids global accurate computation of distances</li>
    <li>Since the choice of `p` is arbitrary, can pick `p` based on additional conditions</li>
    <ul>
      <li>For example: pick uncovered `p` so that `B(p,epsilon)` contains the most points of `U`</li>
    </ul>
  </ul>
  </li>
  
  
  

  <li class = "slide">
    <h1>Non-`epsilon`-Nets</h1>
    
    There are many other `N subset U` that are well-distributed
    <ul>
      <li>Random subsets</li>
      <li>`k`-medians, minimizing `sum_{p in U} D(p,N)`</li>
      <li>`k`-means, minimizing `sum_{p in U} D(p,N)^2`</li>
    </ul>
  </li>
  
       <li class="slide">
    <h1>Non-`epsilon`-Nets: Density Nets</h1>
    
    <div style="display:block; float:right; height:5.5in; width:4in;">
	<iframe src="density_net/demo.svg" name="ifrm" id="ifrm" scrolling="no" frameborder="0" style="height:100%;width:100%"/>
    </div>
    
    <ul>
      <li> `D_k(p, U) :=` distance to `k`-NN of `p` in (finite) `U` </li>
      <li class="incremental">Density net `N`: for all `p in U`, `D(p, N) le 2 D_k(p, U)`</li>
      <li class="incremental">Follows density of `U`, like a random subset, but more evenly distributed</li>
      <li class="incremental">Density nets of size `|U|//k` exist <a href="opubs.html#CDG">[CDG06]</a><a href="opubs.html#LZ">[LZ08]</a></li>
      <span class="incremental">
      <li>For `p in U`, in increasing order of `D_k(p,U)`:</li>
      <ul>
	<li>If `D(p, N) > 2D_k(p,U)`, add `p` to `N`</li>
      </ul>
	</span>
    </ul>
  </li>

  

  <li class="slide">
    <h1>Non-`epsilon`-Nets: Low-energy sets</h1>
    <div style="display:block; float:right; height:5.5in; width:4.5in;">
      <iframe src="energy_demo/demo.svg" name="ifrm" id="ifrm" scrolling="no" frameborder="0" style="height:100%;width:100%"/>
    </div>

    <ul>
      <li>Minimize `sum_{p,p' in N, p!=p'} D(p,p')^{-s}`<br/> for some `s>0`</li>
      <li>Natural model for repelling particles, distribution of competing plants</li>
      <li>Smoothness allows differentiation w.r.t. `p`</li>
      <li>Aids proof of <a href="opubs.html#Falconer">[M75]</a>:
	<blockquote>Random projection almost always preserves Hausdorff dimension</blockquote>
      </li>
      <ul>
	<li>For a dimension `d` set, to a dimension `d' ge d` set</li>
      </ul>
    </ul>
  </li>

   
   <li class="slide">
    <h1>Other Energies</h1>
    <ul>
      <li>Instead of a sum of `D(p,p')^{:-s:}`, other functions of `D(p,p')` have been proposed</li>
      <li>Most generally: minimize an "energy" `sum_{p,p' \in N, p != p'} g(D(p,p'))`,<br/>
	  for some `g : RR -> RR`</li>
      <li>For example, the <em>frame potential</em>`g(x) = -x^2(1-x^2//4)` <a href="opubs.html#BF">[BF01]</a></li>
    </ul>
  </li>
   
   



  <li class="slide">
    <h1>Dimension and Approximate Measure</h1>
  <ul>
    <li>The size `|N(\epsilon)|` as `epsilon -> 0` appears in many analyses</li>
    <li>The <em>box dimension</em> is the `d` so that `|N(\epsilon)| = 1//epsilon^{d+o(1)}` as `epsilon -> 0`</li>
    <ul>
      <li>Or equivalently, `d = \log{:|N(\epsilon)|:} // log(1//epsilon) + o(1)`</li>
      <li>If `d` is not an integer, the set is a fractal</li>
      <li>There are sets for which the `1//\epsilon^{o(1)}` is not a constant factor</li>
    </ul>
    <li>For point clouds, `|N(\epsilon)| epsilon^d -> ` the measure `mu` (surface area) of the underlying `d`-manifold</li>
    <li>Definition as a limit is problematic for point clouds and other finite spaces</li>
    <ul>
      <li>If `U` is finite, `d=0`</li>
    </ul>
  </ul>
  </li>
  

  <li class="slide">
    <h1>Box Dimension: Problems with Finiteness</h1>
     
    <ul>
      <li>Even for infinite `U`, `|N(\epsilon)|` may take awhile to be in asymptopia</li>
      <ul>
	<li>From a distance, set seems to be a line</li>
	<li class="incremental show_parallel">...so initially, `N(epsilon)` grows as `1//epsilon`</li>
	<li class="incremental show_parallel_next">Closer inspection...</li>
	<li class="incremental show_parallel_next">...reveals a more two-dimensional structure</li>
	<li class="incremental show_parallel_next">But even closer, back to 1d</li>
      </ul>
     <div id="anim" style="position:relative; top:-0.5in; height:1.5in">
	<img src="f/dim1.png" style="position:absolute" />
	<img src="f/dim2.png" class="incremental show_parallel" style="position:absolute"/>
	<img src="f/dim3.png" class="incremental show_parallel_next" style="position:absolute"/>
	<img src="f/dim4.png" class="incremental show_parallel_next" style="position:absolute"/>
	<img src="f/dim5.png" class="incremental show_parallel_next" style="position:absolute"/>
      </div>
      <li>Consider also: a ball of yarn (Mandelbrot)</li>
      <li>Estimation of `d` from a point cloud depends on the scale of measurement `epsilon`</li>
    </ul>
  </li>

  <li class="slide">
    <h1>Coping with Finiteness: Persistence</h1>
     
    <ul>
      <li>Rather than choose a scale of measurement, regard the function<br/>
      `\log{:|N(epsilon)|:} // log (1//epsilon) approx d + mu // log(1//epsilon)` <br/>
      as a characterization of `U`</li>
      <ul><li>It's hard to tell large `mu` from large `d`</li></ul>
      <li class="incremental show_parallel">Alternatively,
	  could consider how long a particular dimensional estimate <em>persists</em></li>
      <li class="incremental">A simple version of the persistence of a topology-related property</li>
     <div id="anim" align="center" style="width: 100%; margin-left:auto; margin-right:auto; position:relative; top:-1.5em;">
	<img src="f/Nepsilon1.png" style="position:absolute" />
	<img src="f/Nepsilon2.png" class="incremental show_parallel" style="position:absolute"/>
      </div>
    </ul>
  </li>
  
  <li class="slide">
    <h1>Coping with Finiteness: Extremal Graphs</h1>
     
    <ul>
      <li>When a point cloud is uniformly distributed on its `d`-manifold,
	  average NN distance `delta` is `Theta(n^{-1//d})`</li>
      <ul><li>Where `Theta` constant depends on surface area `mu`</li></ul>
      <li>So `d approx -log n // log delta`</li>
      <li>Similarly for other extremal graphs, like TSP <a href="opubs.html#BHH">[BHH59]</a><a href="opubs.html#CH">[CH04]</a></li>
      <li>Accuracy still a problem, but the scale of measurement is chosen by the data</li>
    </ul>
  </li>
  
  

  
  <li class="slide">
    <h1>Coping with Finiteness: Doubling Dimension</h1>
  <ul>
    <li>Instead of limit: use worst-case bound at all scales of measurement</li>
    <li>If `|N(epsilon)| = 1//epsilon^{d+o(1)}`, then `{:|N(epsilon)|:} // {:|N(epsilon//2):}| approx 2^{:d + o(1):}`</li>
    <ul><li>Could define a dimension `M(U) := "sup"_epsilon quad log_2 (|N(epsilon)| // |N(epsilon//2)|)`</li>
    <li> Meaningful for finite `U`</li></ul>
    <li>The <em>doubling dimension</em> `d_A` is basically `"sup"_B M(B)`, over all balls in `U`
        <a href="opubs.html#Larman">[L67]</a>
        <a href="opubs.html#Assouad">[A83]</a>
    </li>
    <li>If `(U,d)` has bounded doubling dimension:</li>
    <ul>
      <li>Data structures for NN searching
          <a href="http://www.almaden.ibm.com/u/kclarkson/pubs.html#nnms">[C99]</a>
          <a href="opubs.html#KL">[KL04]</a>
          <a href="opubs.html#HM">[H-PM05]</a>
          <a href="opubs.html#DF">[DF08]</a>
      </li>
      <li>For point clouds:</li>
      <ul>
	<li>Have bounded `d_A` if <em>reach</em> (distance to medial axis) of manifold is positive
            <a href="opubs.html#DF">[DF08]</a>
        </li>
	<li>If `d_A` bounded, can embed in `RR^{:O(d_A):}` <a href="opubs.html#IN">[IN07]</a></li>
      </ul>
    </ul>
  </ul>
  </li>
  

  
  <li class = "slide">
    <h1>Data-Driven Resolution: Filtrations</h1>
    
    <ul>
      <li>A useful property of the greedy algorithm is that it gives a <em>filtration</em> of `epsilon`-nets</li>
      <li>A <em>filtration</em> is a sequence of nested subsets
	<blockquote>`{p_1} subset {p_1, p_2} subset {p_1,p_2,p_3} subset...U`</blockquote>
      </li>
      <ul>
	<li>Implies a natural "scaling" of a dataset `S`</li>
	<li>Here a "fine" filtration: each subset has one more element</li>
    </ul>
      <li>Other examples:</li>
      <ul>
	<li>Random permutations give a filtration of random subsets</li>
	<li>Filtration of approximate `k`-medians is the <em>oblivious</em> `k`-median <a href="opubs.html#MP">[MP99]</a></li>
	<ul><li>So that filtration set of size `k` is `approx` optimal `k`-median</li></ul>
      </ul>
      <li>Also: "coarse" filtrations, where each subset has a constant factor more elements than the next</li>
    </ul>
  </li>  
  

  
  <li class="slide">
    <h1>Neighbors</h1>
    
    <ul>
      <li>For `p,q in U`, when is `p` a neighbor of `q`?<br/>
	If `D(q,p)` is bounded by:</li>
      <ul>
	<li>`epsilon` for a parameter `epsilon`  ` => epsilon`-Rips neighbor</li>
	<li>`D_k(q, U)` ` => k`-nearest neighbor</li>
	<li>`gamma D(q,U)` for a parameter `gamma ge 1` ` => (gamma)`-near neighbor</li>
      </ul>
	<li>A bound by `2 D_k(q,U) ` was used in density nets</li>
      <li>Many surface reconstruction and topological data analysis algorithms use all-`k`-NN</li>
      <li>But also: all-`(gamma)`-near <a href="opubs.html#GW">[GW03]</a></li>
      <li>All-`(gamma)`-near neighbors in spaces of bounded doubling dimension
	      can be found in `O^**(n)` time
              <a href="http://www.almaden.ibm.com/u/kclarkson/pubs.html#nnms">[C99]</a>
              <a href="opubs.html#HM">[H-PM05]</a>
              <a href="opubs.html#IN">[IN07]</a></li>
    </ul>
  </li>

  
  <li class="slide">
    <h1>Weak Neighbors</h1>
    
    <ul>
      <li>Distinguish a set `L subset U` of <em>landmarks</em>, and `W subset U` of <em>witnesses</em></li>
      <div id="anim" style="float:right; width:4in">
	<img src="f/near_and_nearest1.png"/>
	<img src="f/near_and_nearest2.png" class="incremental show_parallel"/>
	<img src="f/near_and_nearest3.png" class="incremental show_parallel_next"/>
	<img src="f/near_and_nearest4.png" class="incremental show_parallel_next"/>
      </div>
      <li>For `p,p' in L`, if there is some `w in W` such that `D(w,p)` and `D(w,p')` are bounded by:</li>
      <ul >
	<li>`D(w,L)`, then `p` and `p'` are Delaunay neighbors</li>
	<li class="incremental show_parallel">`D_2(w,L)` ,
	      then <em>weak</em> Delaunay neighbors<a href="opubs.html#MS">[MS93]</a> <a href="opubs.html#dSC">[dSC04]</a></li>
	<li class="incremental show_parallel_next">`D_k(w,L)` ,
	      then <em>`k`-weak</em> Delaunay neighbors<a href="opubs.html#GO">[GO08]</a></li>
      </ul>
      <li class="incremental show_parallel_next">If `D(w,p) = D(w,L)` and `D(w, p')  le gamma D(w, L)`
	      then `p` and `p'` are <em>`(gamma)`-weak</em> Delaunay neighbors
              <a href="http://www.almaden.ibm.com/u/kclarkson/pubs.html#nnms">[C99]</a>
      </li>
    </ul>
  </li>

  
  
  <li class="slide">
    <h1>Neighborhoods: Analysis</h1>
    
    How many pairs `m` of neighbors can there be?
    <ul>
      <li>For `epsilon`-Rips,  `m//|L|^2 approx epsilon^{d_C}`,
	where `d_C` is the <em>correlation dimension</em></li>
    <ul><li>As studied in dynamical systems</li></ul>
      <li>For weak neighbors:</li>
      <ul>
	<li> Each `w in W` results in one pair, so `O(|W|)`</li>
      </ul>
      <li>For `(gamma)`-weak neighbors, when `U` has bounded doubling dimension:</li>
      <ul>
	<li>For `L` an `epsilon`-net, at most `O^**(1)` `p in L` can be `(gamma)`-near to a given `w in W`, so `O^**(|W|)`</li>
	<li>For `L` and `W` random subsets of `U`, expected `O^**(|L|)`
            <a href="http://www.almaden.ibm.com/u/kclarkson/pubs.html#nnms">[C99]</a>
        </li>
      </ul>
    </ul>
  </li>

  
  
  <li class="slide">
    <h1><span class="lighttitle">Natural Neighbor</span> Interpolation <span class="lighttitle"> in Metric Spaces</span></h1>
    
    <ul>
      <li>Interpolation: given `S subset U`, and function values `f(x), x in S`, estimate `hat(f)(y)` for some `y in U`</li>
      <li>Often `hat(f)(y) := sum_{x in S} alpha_x(y) f(x)` , a weighted linear combination of the data values.  Often:</li>
      <ul>
	<li>`alpha_x(y) ge 0`</li>
	<li> `sum_{x in S} alpha_x(y) = 1` for all `y in U`</li>
	<ul><li>Possibly after normalizing by `sum_{x in S} alpha_x(y)`</li></ul>
      </ul>
      <li>If `y = sum_{x in S} alpha_y(x) x`,
	    then this scheme preserves linear functions</li>
      <li>What weights make sense in a metric space?</li>
    </ul>
  </li>
  
  <li class="slide">
    <h1>(The Laplacian as Interpolation)</h1>
    
    <ul>
        <li>For `x in S`, apply a scheme to `S setminus {x}`, and compute `hat(f)(x)`; then<br/>
	  `Delta f(x) := f(x) - hat(f)(x)<br/>
	  is a discrete Laplacian</li>
    </ul>
  </li>

  
  
  <li class="slide">
    <h1><span class="lighttitle">Natural Neighbor</span> Interpolation in Metric Spaces</h1>
    
    <ul>
      <span class="incremental show_parallel">
      <li>One approach: `alpha_x(y) = exp(-D(x,y)^2)`</li>
      <ul><li>For point clouds, resulting Laplacian converges to Laplace-Beltrami operator <a href="opubs.html#BN">[BN05]</a></li></ul>
      </span>
      <span class="incremental show_parallel_next">
      <li>Radial functions</li>
      <ul>
	<li>`S` an `epsilon`-net, `alpha_x(y)` is based on `D(y, S setminus B(x,epsilon))` </li>
	<li>`alpha_x(y) := 1` close to `x`, tapers to zero away from `x` </li>
      </ul>
      </span>
      <li class="incremental">Both approaches involve a somewhat arbitrary choice of scale</li>
      <div id="anim" align="center" style="width: 100%; margin-left:auto; margin-right:auto; position:relative; top:-1.5em;">
	<img src="f/bumps1.png" class="incremental show_parallel" style="position:absolute" />
	<img src="f/bumps2.png" class="incremental show_parallel_next" style="position:absolute"/>
      </div>

    </ul>
    
  </li>
  
  
  <li class="slide">
    <h1>Natural Neighbor Interpolation<span class="lighttitle"> in Metric Spaces</span></h1>
    
    <ul><div style="display:block; float:right; width:3in"><img src="f/nni.png"/></div>
      <li>Natural neighbor interpolation, in Euclidean spaces, has
	  `alpha_x(y) :=` area of Voronoi region of `x in S ` that is closer to `y`</li>
      <ul>
	<li>NNI is smooth except at the sites</li>
	<li>The data chooses the scale</li>
	<li>NNI preserves linear functions, even sometimes even some harmonic functions</li>
	<ul><li>That is, continuous Laplacian =0 `=>` discrete Laplacian = 0</li></ul>
      </ul>
      <li>Something analogous is possible in metric spaces</li>
      <ul><li>(A semi-serious observation, that this is possible)</li></ul>
    </ul>
  </li>
  
  
  
  <li class="slide">
    <h1>Natural Neighbor Interpolation in Metric Spaces</h1>
    
      <div style="display:block; float:right; height:3.5in; width:4.25in;">
	<iframe src="natural_demo/demo.svg" name="ifrm" id="ifrm" scrolling="no" frameborder="0" style="height:100%;width:100%"/>
    </div>

    <ul>
      <li>In a metric space, what to use instead of area?</li>
      <li>One possibility:</li>
	<ul>
	  <li>Subdivide into `W` and `L`</li>
	  <li>Use function values at `L` points only</li>
	  <li>`alpha_x(y) :=` number of `w in W` with `D(w,y) le D(w,x) = D(w, L)`</li>
          <ul><li>or, size of `epsilon`-net of such `w`</li></ul>
	</ul>
      <li>To use all function values, apply with multiple `L` and take the average</li>
      <ul><li>Varying size of `L` gives a different scheme for multi-resolution analysis</li></ul>
    </ul>
  </li>
  
  <li class="slide">
    <h1>Conclusions</h1>
    
    <ul>
      <li>Nets are common to:</li>
      <ul>
	<li>Geometric measure theory / fractal geometry / potential theory</li>
	<li>Dynamical systems</li>
	<li>Metric embeddings</li>
	<li>Topological data analysis</li>
	<li>Surface reconstruction</li>
	<li>Nearest neighbor searching</li>
	<li>Meshing</li>
      </ul>
      <li>Common theme: discrete vs. continuous</li>
	<ul>
          <li>Data-driven resolution</li>
          <li>As in discrete Morse theory, discrete exterior calculus, mimetic discretizations, curvature for polyhedral meshes,...</li>
        </ul>
     </ul>
  </li>
  

  
  
  

  

 
</ol>
</body>
</html>
