III. Shortest nontrivial cycles Jeff Erickson University of - - PowerPoint PPT Presentation

iii shortest nontrivial cycles
SMART_READER_LITE
LIVE PREVIEW

III. Shortest nontrivial cycles Jeff Erickson University of - - PowerPoint PPT Presentation

One-Dimensional Computational Topology III. Shortest nontrivial cycles Jeff Erickson University of Illinois, Urbana-Champaign Todays Question Given a surface , find the shortest topologically nontrivial cycle in . Trivial cycles


slide-1
SLIDE 1

One-Dimensional Computational Topology

  • III. Shortest nontrivial cycles

Jeff Erickson

University of Illinois, Urbana-Champaign

slide-2
SLIDE 2

Today’s Question

Given a surface Σ, find the shortest topologically nontrivial cycle in Σ.

slide-3
SLIDE 3

Trivial cycles

  • contractible = null-homotopic = boundary of a disk
  • separating = null-homologous = boundary of a subsurface

separating noncontractible separating contractible nonseparating noncontractible

slide-4
SLIDE 4

Surface reconstruction

slide-5
SLIDE 5

Surface reconstruction

point cloud

scan

  • bject
slide-6
SLIDE 6

reconstruct surface

Surface reconstruction

point cloud

scan

  • bject
slide-7
SLIDE 7

Topological noise

  • Measurement errors from the scanning device add extra

handles/tunnels to the reconstructed surface.

[Wood, Hoppe, Desbrun, Schröder ’04]

slide-8
SLIDE 8

Topological noise

  • These extra tunnels make compression difficult.

[Wood, Hoppe, Desbrun, Schröder ’04] genus 104 genus 104 50K vertices genus 6 50K vertices

slide-9
SLIDE 9

Connections

  • Length of shortest noncontractible cycle

▹ systole [Loewner ’49] [Pu ’52] ... [Gromov 83] ... ▹ representativity [Robertson, Seymour 87] ▹ edge-width [Thomassen 90; Mohar, Thomassen 99]

  • First step of many other topological graph algorithms
  • Related to broader problems in topological data analysis

▹ Coverage analysis of ad-hoc/sensor networks ▹ Identifying (un)important topological features in high-dimensional data sets

slide-10
SLIDE 10

“Given”?

  • Input:

▹ Orientable surface map Σ with complexity n and genus g. ▹ Length ℓ(e)≥0 for every edge of Σ

  • No other assumptions. Not even the triangle inequality.
slide-11
SLIDE 11

“Given”?

  • Input:

▹ Orientable surface map Σ with complexity n and genus g. ▹ Length ℓ(e)≥0 for every edge of Σ

  • No other assumptions. Not even the triangle inequality.
  • Output:

▹ Minimum-length cycle in the graph of Σ that is noncontractible or nonseparating in Σ.

slide-12
SLIDE 12

Systolic inequalities

  • Any Riemannian surface can be approximated (up to constant

factors) by a combinatorial triangulation, and vice versa.

▹ discrete→continuous: glue equilateral triangles, smooth vertices ▹ continuous→discrete: intrinsic Voronoi diagram of ε-net

  • Every Riemannian surface has systole ≤


[Gromov 1983, 1992]

⇒ Every triangulated surface map has edgewidth ≤


Improves [Hutchinson 1988]

  • There are Riemannian surfaces with systole ≥


[Buser Sarnak 1994]

⇒ There are triangulated surface maps with edgewidth ≥


Conjectured by [Przytycka Przytycki 1993]

[Colin de Verdière, Hubard, de Mesmay 2013]

1 3

p A/g log g

<latexit sha1_base64="AbPyZtYZ6MPtmpJwlvfdAcVjA=">ACL3icbVC7SgNBFL3r2/iKWoqwGEQLibtaBmxsVQwJpAsYXZysw7uzKwzs4IMW/k1luoPWPsDYiO2foONuzGFMR4YOJwH3DlhEjNtPO/NGRufmJyanpktzc0vLC6Vl1cutEwVxTqVsVTNkGiMmcC6YSbGZqKQ8DGRnh1XPiNG1SaSXFubhMOIkE6zFKTC51yuvtniLU+pndz9y2vlbGHu1GOY1l5EadcsWren24o8QfkEpt62X8GQBO+WvdlfSlKMwNCZat3wvMYElyjAaY1ZqpxoTQq9IhK2cCsJRB7b/jczdzJWu25Mqf8K4fV3wxKu9S0P8yQn5lL/9QrxP6+Vmt5hYJlIUoOCDl9BL/PjUAW2qHVRs0gMBWyIimgi9E5BuBRy2OaMKlksm5Xytfy/24ySi72q71X9M79SO4IfzMAabMA2+HANTiBU6gDhTu4h0d4ch6cV+fd+fiJjmDzioMwfn8Bo1erOM=</latexit><latexit sha1_base64="OeE7kcGI4zqtuDZypWMQGRnqbB0=">ACL3icbVC7SgNBFJ1NfMbXqUIi0G0kLirhZYRG8sIJhGSJcxObtbBnZl1ZlYIw1Z+hY29nY9fsPIHxEZs/QYbdxMLox4YOJwH3DlBHFGlXfVKhTHxicmp6ZLM7Nz8wv24lJDiUQSqBMRCXkaYAUR5VDXVEdwGkvALIigGZwf5n7zEqSigp/ofgw+wyGnPUqwzqSOvdruSUyMl5rd1GmrC6nNwXaY0UiETtixy27FHcD5S7xvUq5uPBef7m6uax37s90VJGHANYmwUi3PjbVvsNSURJCW2omCGJNzHEIroxwzUL4ZfCN1jOl6/SEzB7XzkD92TCYKdVnQZkWJ+p314u/ue1Et3b9w3lcaKBk9EryFl2HEjf5LUuKBrykYAJQGKFudrKCRNcjNqMEinyZdNStpb3e5u/pLFT8dyKd+yVqwdoiCm0gtbQJvLQHqiI1RDdUTQFbpFD+jRurderDfrfRgtWN+dZTQC6+MLbD+uzg=</latexit><latexit sha1_base64="OeE7kcGI4zqtuDZypWMQGRnqbB0=">ACL3icbVC7SgNBFJ1NfMbXqUIi0G0kLirhZYRG8sIJhGSJcxObtbBnZl1ZlYIw1Z+hY29nY9fsPIHxEZs/QYbdxMLox4YOJwH3DlBHFGlXfVKhTHxicmp6ZLM7Nz8wv24lJDiUQSqBMRCXkaYAUR5VDXVEdwGkvALIigGZwf5n7zEqSigp/ofgw+wyGnPUqwzqSOvdruSUyMl5rd1GmrC6nNwXaY0UiETtixy27FHcD5S7xvUq5uPBef7m6uax37s90VJGHANYmwUi3PjbVvsNSURJCW2omCGJNzHEIroxwzUL4ZfCN1jOl6/SEzB7XzkD92TCYKdVnQZkWJ+p314u/ue1Et3b9w3lcaKBk9EryFl2HEjf5LUuKBrykYAJQGKFudrKCRNcjNqMEinyZdNStpb3e5u/pLFT8dyKd+yVqwdoiCm0gtbQJvLQHqiI1RDdUTQFbpFD+jRurderDfrfRgtWN+dZTQC6+MLbD+uzg=</latexit><latexit sha1_base64="SNF1nzulHz+AjFsEbKJw1tI5u/o=">ACL3icbVDLSsNAFJ3UV62vqEsRgkVwITXRhS5b3LisYB/QhjKZ3qZDMzNxZiKUISu/xqX6MeJG3PoNbkxqF7b1wMDhPODOCeKIKu2671ZhaXlda24XtrY3NresXf3mkokCDiEjIdoAVRJRDQ1MdQTuWgFkQSsYXed+6wGkoLf6XEMPsMhpwNKsM6kn3YHUhMjJeai9TpqnupTe0szGgkQifs2W34k7gLBJvSspoinrP/u72BUkYcE0irFTHc2PtGyw1JRGkpW6iIMZkhEPoZJRjBso3k2+kznGm9J2BkNnj2pmofxsGM6XGLMiSDOuhmvdy8T+vk+jBlW8ojxMNnMxeQYbZcSB9k9f6oGjIZwImAIkV5uo0J0xwMWszSqTIl01L2Vre/DaLpHle8dyKd+uVq7XpbkV0gI7QCfLQJaqiG1RHDUTQI3pCL+jVerberA/r8zdasKadfTQD6+sHmjGq7w=</latexit>

2 3

p A/g log g

<latexit sha1_base64="cdwEMKOdRwA6XQvkPIt0ztq/5w4=">ACL3icbVC7SgNBFL3r2/iKWoqwGEQLibux0DJiY6lgVEiWMDu52QzZmVlnZoUwbOXWKo/YO0PiI3Y+g027kYLox4YOJwH3DlhEjNtPO/FGRufmJyanpktzc0vLC6Vl1fOtUwVxQaVsVSXIdEYM4ENw0yMl4lCwsMYL8L+UeFfXKPSTIozM0gw4CQSrMsoMbnULq+3uopQW8vsXua29JUy9nA3ymksIzdqlyte1RvC/Uv8b1Kpbz2NPwLASbv80epImnIUhsZE6bvJSawRBlGY8xKrVRjQmifRNjMqSAcdWCH38jczVzpuF2p8ieMO1R/NizhWg94mCc5MT392yvE/7xmaroHgWUiSQ0KOnoF7eXHoQpsUeugZpEYCdgQFdFE6J2CcCnkqM0ZVbJYNivla/m/t/lLzmtV36v6p36lfghfmIE12IBt8GEf6nAMJ9ACjdwC/fw4Nw5z86r8/YVHXO+O6swAuf9E48hrOQ=</latexit><latexit sha1_base64="Mr4xuOkv9kUACyjWjG0bc/R8jKc=">ACL3icbVC7SgNBFJ31GeNr1VKExSBaSNyNhZYRG8sIJgrJEmYnN+vgzsw6MyuEYSu/wsbezscvWPkDYiO2foONuzGFiR4YOJwH3DlBHFGlXfNGhufmJyaLswUZ+fmFxbtpeWGEokUCciEvIswAoiyqGuqY7gLJaAWRDBaXBxmPunVyAVFfxE92LwGQ457VKCdSa17bVWV2JiKqnZTZ2WupTaHOyEGY1E6IRtu+SW3T6cv8QbkFJ182X8+f72pta2v1odQRIGXJMIK9X03Fj7BktNSQRpsZUoiDG5wCE0M8oxA+Wb/jdSZyNTOk5XyOx7fTV3w2DmVI9FmRJhvW5GvVy8T+vmejuvm8ojxMNnAxfQc6z40D6Jq91QNGQDwVMABIrzNV2TpjgYthmlEiRL5sWs7W80W3+kal7Ll79grVQ/QDwpoFa2jLeShPVRFR6iG6oiga3SHtGT9WC9Wu/Wx090zBp0VtAQrM9vbgKuzw=</latexit><latexit sha1_base64="Mr4xuOkv9kUACyjWjG0bc/R8jKc=">ACL3icbVC7SgNBFJ31GeNr1VKExSBaSNyNhZYRG8sIJgrJEmYnN+vgzsw6MyuEYSu/wsbezscvWPkDYiO2foONuzGFiR4YOJwH3DlBHFGlXfNGhufmJyaLswUZ+fmFxbtpeWGEokUCciEvIswAoiyqGuqY7gLJaAWRDBaXBxmPunVyAVFfxE92LwGQ457VKCdSa17bVWV2JiKqnZTZ2WupTaHOyEGY1E6IRtu+SW3T6cv8QbkFJ182X8+f72pta2v1odQRIGXJMIK9X03Fj7BktNSQRpsZUoiDG5wCE0M8oxA+Wb/jdSZyNTOk5XyOx7fTV3w2DmVI9FmRJhvW5GvVy8T+vmejuvm8ojxMNnAxfQc6z40D6Jq91QNGQDwVMABIrzNV2TpjgYthmlEiRL5sWs7W80W3+kal7Ll79grVQ/QDwpoFa2jLeShPVRFR6iG6oiga3SHtGT9WC9Wu/Wx090zBp0VtAQrM9vbgKuzw=</latexit><latexit sha1_base64="rHgx1a6y2GeNKcNam8NsY+Qpzdg=">ACL3icbVDLSsNAFJ3UV62vqEsRgkVwITWpC12uHFZwT6gDWUyvU2HZmbizEQoQ1Z+jUv1Y8SNuPUb3JjULmz1wMDhPODOCeKIKu26b1ZhaXlda24XtrY3NresXf3WkokCTiEjIToAVRJRDU1MdQSeWgFkQTsYX+V+x6koLf6kMPsMhp0NKsM6kvn3YG0pMTDU156nTU3dSm/pZmNFIhE7Yt8tuxZ3C+Uu8GSmjGRp9+6s3ECRhwDWJsFJdz421b7DUlESQlnqJghiTMQ6hm1GOGSjfTL+ROseZMnCGQmaPa2eq/m4YzJSasCBLMqxHatHLxf+8bqKHl76hPE40cDJ/BRlx4H0TV4bgKIhnwuYACRWmKvTnDBxbzNKJEiXzYtZWt5i9v8Ja1qxXMr3o1XrtVnuxXRATpCJ8hDF6iGrlEDNRFBD+gRPaMX68l6td6tj59owZp19tEcrM9vm/Sq8A=</latexit>

2 p n/g log g

<latexit sha1_base64="BT8G3eDcaFLm8SkxGcsa7Zckc0=">ACJXicbVBNS8NAFHypX7V+RT16iRbBg9SkFz14KIjgUcGq0ISy2b7GpdnduLsRSuhv8aj+G8ieNL/4cWk9mCsAw+GmXkwTJjETBvXfbcqM7Nz8wvVxdrS8srqmr2+caVlqi2qYylugmJxpgJbBtmYrxJFBIexngdDk4K/oelWZSXJphgEnkWB9RonJpa692XR8fadMJg6ikePHMnKirl13G+4YzjTxJqTe2vZPwHgvGt/+T1JU47C0Jho3fHcxAQZUYbRGEc1P9WYEDogEXZyKghHWTj8iNnN1d6Tl+q/IRxurvj4xwrYc8zJOcmFv91yvE/7xOavpHQcZEkhoUtNyC3ublUAVZ8dZDzSJRCmQhKqKJ0PsF4VLIs0ZVbLYc1TL1/L+bjNrpoNz214F169dQw/qMIW7MAeHAILTiDc2gDhSE8wBM8W4/Wi/Vqvf1EK9bkZxNKsD6+AQhwqHs=</latexit><latexit sha1_base64="MgxXgBSQUWJvFvPt8TX5aC34Bsc=">ACJXicbVDNSsNAGNz4W+tftDe9RIvgQWrSix48FEQTxXsDzShbLZf06XZ3bi7EUros3hUH8abFDz5BD6BF5O2B9s68MEwMx8M40chVdq2P42l5ZXVtfXcRn5za3tn19zbrysRSwI1IkIhmz5WEFIONU1CM1IAmZ+CA2/f535jSeQigr+oAcReAwHnHYpwTqV2mahbLnqUeqEnwdDyw1FYAVts2iX7DGsReJMSbFy5N583x2Mqm3zx+0IEjPgmoRYqZjR9pLsNSUhDMu7GCJM+DqCVUo4ZKC8Zlx9aJ6nSsbpCpse1NVb/fiSYKTVgfpkWPfUvJeJ/3mtWHcvYTyKNbAyWwL0kvLgfS7K0DigZ8JpD4ILHCXJ1lhAkuZm1GiRTZnsN8upYzv80iqZdLjl1y7p1i5QpNkEOH6BidIgdoAq6RVUQwQN0DN6RW/Gi/FufBijSXTJmP4U0AyMr1/xRqnC</latexit><latexit sha1_base64="MgxXgBSQUWJvFvPt8TX5aC34Bsc=">ACJXicbVDNSsNAGNz4W+tftDe9RIvgQWrSix48FEQTxXsDzShbLZf06XZ3bi7EUros3hUH8abFDz5BD6BF5O2B9s68MEwMx8M40chVdq2P42l5ZXVtfXcRn5za3tn19zbrysRSwI1IkIhmz5WEFIONU1CM1IAmZ+CA2/f535jSeQigr+oAcReAwHnHYpwTqV2mahbLnqUeqEnwdDyw1FYAVts2iX7DGsReJMSbFy5N583x2Mqm3zx+0IEjPgmoRYqZjR9pLsNSUhDMu7GCJM+DqCVUo4ZKC8Zlx9aJ6nSsbpCpse1NVb/fiSYKTVgfpkWPfUvJeJ/3mtWHcvYTyKNbAyWwL0kvLgfS7K0DigZ8JpD4ILHCXJ1lhAkuZm1GiRTZnsN8upYzv80iqZdLjl1y7p1i5QpNkEOH6BidIgdoAq6RVUQwQN0DN6RW/Gi/FufBijSXTJmP4U0AyMr1/xRqnC</latexit><latexit sha1_base64="CKXJjy1jCMFW2XkaJCjNmkoMZRI=">ACJXicbVBLS8NAGNzUV62vaI9egkXwIDXpRQ8eCl48VrAPaELZbL+mS7O7cXcjlJDf4lH9Md5E8OQP8WJSczCtAx8M/PBMH4UqVt+9OorK1vbG5Vt2s7u3v7B+bhU+JWBLoEhEKOfCxgpBy6GqQxhEjDzQ+j7s5vc7z+CVFTwez2PwGM4HRCdaZNDLrLctVD1In/CJILTcUgRWMzIbdtBewVolTkAYq0BmZ3+5YkJgB1yTESg0dO9JegqWmJIS05sYKIkxmOIBhRjlmoLxkUT61TjNlbE2EzI5ra6H+/UgwU2rO/CzJsJ6qZS8X/OGsZ5ceQnlUayBk3ILMs3KgfS/G0Miga8FEh8kFhrs5zwgQXZtRIkW+Z1rL1nKWt1klvVbTsZvOndNoXxe7VdExOkFnyEGXqI1uUQd1EUFz9IRe0KvxbLwZ78bHb7RiFD91VILx9QMxAaZ</latexit>

1 7

p n/g log g

<latexit sha1_base64="CSU17sK5hVKBtUG+72EapBR4Q/E=">ACL3icbVC7SgNBFL3rM8ZX1FKExSBYSNy1iYVFwMZSxWgWeLs5GYd3JlZ2aFMGzlR/gNlurHiI3Y+g027sYURj0wcDgPuHPCJGbaeN6rMzE5NT0zW5orzy8sLi1XVlbPtUwVxSaVsVStkGiMmcCmYSbGVqKQ8DGi/D6sPAvblFpJsWZGSQYcBIJ1meUmFzqVjY6fUWo9TNbz9yOvlHGit0op7GM3KhbqXo1bwj3L/FHpNqo3p9eAsBxt/LZ6UmachSGxkTrtu8lJrBEGUZjzMqdVGNC6DWJsJ1TQTjqwA6/kblbudJz+1LlTxh3qP5sWMK1HvAwT3JirvRvrxD/89qp6e8HlokNSjo+BX0Kj8OVWCLWg81i8RYwIaoiCZC7xSESyHbc6oksWyWTlfy/+9zV9yvlfzvZp/4lcbB/CNEqzDJmyD3VowBEcQxMo3MEDPMGz8+i8OG/O+3d0whl1mAMzscXc52sxw=</latexit><latexit sha1_base64="jFB82KNZDA29C2tDnajWv3WMZH0=">ACL3icbVDLSsNAFJ3UV62vqksRgkFwITVxowsXBTcuq1gtKFOprfp0MxMnJkIMmTlR/gNulM/RtyIW7/BjUl1YVoPDBzOA+6cI6o0q7ZpWmpmdm58rzlYXFpeWV6urahRKJNAkIhKyFWAFEeXQ1FRH0IolYBZEcBkMj3P/8gakoKf69sYfIZDTvuUYJ1J3epmpy8xMV5qDlK7o6lNnwvzGgkQjvsVh235o5gTxLvlzh15/7s/OoRGt3qV6cnSMKAaxJhpdqeG2vfYKkpiSCtdBIFMSZDHEI7oxwzUL4ZfSO1tzOlZ/eFzB7X9kj92zCYKXLgizJsB6ocS8X/Paie4f+obyONHASfEKMsiOA+mbvNYDRUNeCJgAJFaYq92cMF0WaUSJEvm1aytbzxbSbJxX7Nc2veqefUj9APymgDbaEd5KEDVEcnqIGaiKA79ICe0Yv1ZL1a79bHT7Rk/XbWUQHW5zeGu64q</latexit><latexit sha1_base64="jFB82KNZDA29C2tDnajWv3WMZH0=">ACL3icbVDLSsNAFJ3UV62vqksRgkFwITVxowsXBTcuq1gtKFOprfp0MxMnJkIMmTlR/gNulM/RtyIW7/BjUl1YVoPDBzOA+6cI6o0q7ZpWmpmdm58rzlYXFpeWV6urahRKJNAkIhKyFWAFEeXQ1FRH0IolYBZEcBkMj3P/8gakoKf69sYfIZDTvuUYJ1J3epmpy8xMV5qDlK7o6lNnwvzGgkQjvsVh235o5gTxLvlzh15/7s/OoRGt3qV6cnSMKAaxJhpdqeG2vfYKkpiSCtdBIFMSZDHEI7oxwzUL4ZfSO1tzOlZ/eFzB7X9kj92zCYKXLgizJsB6ocS8X/Paie4f+obyONHASfEKMsiOA+mbvNYDRUNeCJgAJFaYq92cMF0WaUSJEvm1aytbzxbSbJxX7Nc2veqefUj9APymgDbaEd5KEDVEcnqIGaiKA79ICe0Yv1ZL1a79bHT7Rk/XbWUQHW5zeGu64q</latexit><latexit sha1_base64="LCGnCy6h6BPEOgfmh7c4Zvdsyzc=">ACL3icbVDLSsNAFJ34rPVdSlCsAgupCZu6sJFwY3LCvYBTSiT6U06NDMTZyZCGbLya1yqHyNuxK3f4MakdmFbDwczgPunCJqdKO824tLa+srq2XNsqbW9s7u5W9/bYSqSTQIiIWshtgBTHl0NJUx9BNJGAWxNAJRteF3kAqajgd3qcgM9wxGlICda51K8ceaHExLiZqWe2p+6lNvw8ymksIjvqV6pOzZnAXiTulFTRFM1+5dsbCJIy4JrEWKme6yTaN1hqSmLIyl6qIMFkhCPo5ZRjBso3k29k9kmuDOxQyPxbU/Uvw2DmVJjFuRJhvVQzXuF+J/XS3V46RvKk1QDJ7NXkGF+HEjfFLUBKBrxmYAJQGKFuTorCBNczNqMEimKZbNyvpY7v80iaV/UXKfm3rVxtV0txI6RMfoFLmojhroBjVRCxH0iJ7QC3q1nq0368P6/I0uWdPOAZqB9fUD7NurGw=</latexit>
slide-13
SLIDE 13

Tree-cotree structures

slide-14
SLIDE 14

Tree-cotree decomposition

A partition of the edges into three disjoint subsets:

  • A spanning tree T
  • A spanning cotree C — C* is a spanning tree of G*
  • Leftover edges L := E \ (C∪T) — Euler’s formula implies |L| = 2g

[von Staudt 1847; Dehn 1936; Biggs 1971; Eppstein 2003]

slide-15
SLIDE 15

Tree-cotree decomposition

A partition of the edges into three disjoint subsets:

  • A spanning tree T
  • A spanning cotree C — C* is a spanning tree of G*
  • Leftover edges L := E \ (C∪T) — Euler’s formula implies |L| = 2g

[von Staudt 1847; Dehn 1936; Biggs 1971; Eppstein 2003]

slide-16
SLIDE 16

Tree-cotree decomposition

A partition of the edges into three disjoint subsets:

  • A spanning tree T
  • A spanning cotree C — C* is a spanning tree of G*
  • Leftover edges L := E \ (C∪T) — Euler’s formula implies |L| = 2g

[von Staudt 1847; Dehn 1936; Biggs 1971; Eppstein 2003]

slide-17
SLIDE 17

Tree-cotree decomposition

A partition of the edges into three disjoint subsets:

  • A spanning tree T
  • A spanning cotree C — C* is a spanning tree of G*
  • Leftover edges L := E \ (C∪T) — Euler’s formula implies |L| = 2g

[von Staudt 1847; Dehn 1936; Biggs 1971; Eppstein 2003]

slide-18
SLIDE 18

Fundamental loops and cycles

  • Fix a tree-cotree decomposition (T, L, C) and a basepoint x.
  • Nontree edge uv defines a fundamental loop loop(T,uv):

▹ path from x to u + uv + path from v to x

  • Nontree edge uv defines a fundamental cycle cycle(T,uv):

▹ unique cycle in T∪{uv} ▹ path from lca(u,v) to u + uv + path from v to lca(u,v)

slide-19
SLIDE 19

Tree-cotree structures

  • System of loops {loop(T, e) | e ∈ L}

▹ Cutting Σ along these loops leaves a disk ▹ Basis for the fundamental group π1(Σ, x)

slide-20
SLIDE 20

Tree-cotree structures

  • System of cycles {cycle(T, e) | e ∈ L}

▹ 2g simple cycles ▹ Basis for the first homology group H1(Σ)

slide-21
SLIDE 21

Tree-cotree structures

  • Cut graph T∪L = Σ\C
  • Remove degree-1 vertices ⇒ reduced cut graph

▹ Minimal subgraph with one face ▹ Composed of at most 3g cut paths meeting at most 2g branch points

slide-22
SLIDE 22

Tree-cotree structures

  • Often useful to build these structures in the dual map Σ*.

▹ dual system of loops ▹ dual cut graph ▹ dual system of cocycles = basis for first cohomology group H1(Σ)

slide-23
SLIDE 23

Tree-cotree structures

  • Every noncontractible cycle in Σ crosses every (dual)

reduced cut graph.

  • Every nonseparating cycle in Σ crosses at least one

(co)cycle in every system of (co)cycles.

slide-24
SLIDE 24

Shortest nontrivial cycles, take 1

slide-25
SLIDE 25

Three-path condition

  • Any three paths with the same endpoints define three

cycles.

  • If any two of these cycles are trivial, so is the third.

[Thomassen 1990]

slide-26
SLIDE 26

Three-path condition

  • The shortest nontrivial cycle consists of two shortest paths

between any pair of antipodal points.

  • Otherwise, the actual shortest path would create a shorter

nontrivial cycle.

[Thomassen 1990]

slide-27
SLIDE 27

Greedy tree-cotree decomposition

  • Assume edges have lengths ℓ(e) ≥ 0
  • T = shortest-path tree in Σ with arbitrary source vertex x

▹ = BFS tree if all lengths = 1

  • C* = maximum spanning tree of Σ* where w(e*) = ℓ(loop(T,e))
  • Computable in O(n log n) time using textbook algorithms.

▹ O(n) time if all lengths = 1 ▹ O(n) time if g=O(n1–ε) [Henzinger et al. ’97]

[Eppstein 2003, Erickson Whittlesey 2005]

slide-28
SLIDE 28

Shortest nontrivial loops

  • Build greedy tree-cotree decomposition (T, L, C) based at x.
  • Build dual cut graph X* = L*∪C*
  • Reduce X* to get R*

[Erickson Har-Peled 2005]

slide-29
SLIDE 29

Shortest nontrivial loops

  • 3-path condition ⇒ We want loop(T, e) for some e∉T
  • loop(T, e) is noncontractible iff e*∈R*
  • loop(T, e) is nonseparating iff e*∈R* and R*\e* is connected

[Erickson Har-Peled 2005] [Cabello, Colin de Verdière, Lazarus 2010]

slide-30
SLIDE 30
  • 3-path condition ⇒ We want loop(T, e) for some e∉T
  • loop(T, e) is noncontractible iff e*∈R*
  • loop(T, e) is nonseparating iff R*\e* is connected

Shortest nontrivial loops

[Erickson Har-Peled 2005] [Cabello, Colin de Verdière, Lazarus 2010]

slide-31
SLIDE 31

Shortest non-trivial cycle

  • For each basepoint: O(n log n) time.
  • Try all possible basepoints: O(n2 log n) time.

[Erickson Har-Peled 2005]

slide-32
SLIDE 32

Shortest non-trivial cycle

  • For each basepoint: O(n log n) time.
  • Try all possible basepoints: O(n2 log n) time.
  • This is the fastest algorithm known.

▹ Significant improvement would also improve the best time to compute the girth of a sparse graph: O(n2) = BFS at each vertex


[Itai Rodeh 1978]

▹ Computing the girth of a dense graph is at least as hard as all-pairs shortest paths and boolean matrix multiplication.


[Vassilevska Williams, Williams 2010] [Erickson Har-Peled 2005]

slide-33
SLIDE 33

One-cross lemmas

  • The shortest nontrivial cycle crosses any shortest path at

most once

  • Otherwise, we could find a shorter nontrivial cycle!
slide-34
SLIDE 34

One-cross lemmas

  • Let γ* be the shortest nonseparating cycle, and let γ be any

cycle in a greedy system of cycles.

  • Then γ* and γ cross at most once.

[Cabello Mojar 2005]

slide-35
SLIDE 35

Faster algorithm

To compute the shortest nonseparating cycle:

▹ Compute a greedy system of cycles γ1, γ2, ..., γ2g ▹ Find the shortest cycle that crosses each greedy cycle γi once

[Cabello Chambers 2007]

slide-36
SLIDE 36

Algorithm

  • To find the shortest cycle that crosses γi once:

▹ Cut the surface open along γi. Resulting surface Σ✂γi has two copies

  • f γ on its boundary.

▹ Find the shortest path in Σ✂γi between the clones of each vertex of γi

[Cabello Chambers 2007]

slide-37
SLIDE 37

Multiple-Source Shortest Paths

[Free Gruchy (“Slow-Mo Guys”) 2018]

slide-38
SLIDE 38

Multiple-Source Shortest Paths

[Free Gruchy (“Slow-Mo Guys”) 2018]

slide-39
SLIDE 39

Multiple-Source Shortest Paths

  • Compute shortest paths between many pairs of vertices,

with one vertex of each pair on a fixed “outer” face.

[Klein 2005]

slide-40
SLIDE 40

Multiple-Source Shortest Paths

  • Compute shortest paths between many pairs of vertices,

with one vertex of each pair on a fixed “outer” face.

[Klein 2005]

slide-41
SLIDE 41

Multiple-Source Shortest Paths

  • Compute shortest paths between many pairs of vertices,

with one vertex of each pair on a fixed “outer” face.

[Klein 2005]

slide-42
SLIDE 42

Multiple-Source Shortest Paths

  • Compute shortest paths between many pairs of vertices,

with one vertex of each pair on a fixed “outer” face.

[Klein 2005]

slide-43
SLIDE 43

Multiple-Source Shortest Paths

  • Compute shortest paths between many pairs of vertices,

with one vertex of each pair on a fixed “outer” face.

[Klein 2005]

slide-44
SLIDE 44

Naïve algorithm

  • For each boundary vertex s, compute the shortest-path tree

rooted at s in O(n log n) time. [Dijkstra 1956]

  • The overall algorithm runs in O(n2 log n) time.
  • But in fact, we can (implicitly) compute all such distances in

just O(g2n log n) time.

slide-45
SLIDE 45

Planar MSSP

  • Let’s start with the simplest possible setting.
  • Implicitly compute shortest paths in a plane graph G from

every boundary vertex to every other vertex.

[Klein 2005]

slide-46
SLIDE 46

Planar MSSP

  • Let’s start with the simplest possible setting.
  • Implicitly compute shortest paths in a plane graph G from

every boundary vertex to every other vertex.

[Klein 2005]

slide-47
SLIDE 47

Planar MSSP

  • Let’s start with the simplest possible setting.
  • Implicitly compute shortest paths in a plane graph G from

every boundary vertex to every other vertex.

[Klein 2005]

slide-48
SLIDE 48

Planar MSSP

  • Let’s start with the simplest possible setting.
  • Implicitly compute shortest paths in a plane graph G from

every boundary vertex to every other vertex.

[Klein 2005]

slide-49
SLIDE 49

Planar MSSP

  • Intuitively, we want the shortest-path tree rooted at every

boundary vertex.

[Klein 2005]

slide-50
SLIDE 50

Planar MSSP

  • Intuitively, we want the shortest-path tree rooted at every

boundary vertex.

[Klein 2005]

slide-51
SLIDE 51

Planar MSSP

  • In fact, we only need to compute the first shortest-path tree,

followed by changes from each tree to the next.

[Klein 2005]

slide-52
SLIDE 52

Planar MSSP

  • In fact, we only need to compute the first shortest-path tree,

followed by changes from each tree to the next.

[Klein 2005]

slide-53
SLIDE 53

Planar MSSP

  • In fact, we only need to compute the first shortest-path tree,

followed by changes from each tree to the next.

[Klein 2005]

slide-54
SLIDE 54

Planar MSSP

  • In fact, we only need to compute the first shortest-path tree,

followed by changes from each tree to the next.

[Klein 2005]

slide-55
SLIDE 55

The disk-tree lemma

  • Let T be any tree embedded on a closed disk. Vertices of T

subdivide the boundary of the disk into intervals.

  • Deleting any edge splits T into two subtrees R and B.
  • At most two intervals have one end in R and the other in B.
slide-56
SLIDE 56

The disk-tree lemma

  • Let T be any tree embedded on a closed disk. Vertices of T

subdivide the boundary of the disk into intervals.

  • Deleting any edge splits T into two subtrees R and B.
  • At most two intervals have one end in R and the other in B.
slide-57
SLIDE 57

The disk-tree lemma

  • Let T be any tree embedded on a closed disk. Vertices of T

subdivide the boundary of the disk into intervals.

  • Deleting any edge splits T into two subtrees R and B.
  • At most two intervals have one end in R and the other in B.
slide-58
SLIDE 58

Number of pivots

  • Each directed edge x→y pivots in at most once.

▹ Consider the tree of shortest paths ending at y. x y

slide-59
SLIDE 59

Number of pivots

  • Each directed edge x→y pivots in at most once.

▹ Consider the tree of shortest paths ending at y. x y

slide-60
SLIDE 60

Number of pivots

  • Each directed edge x→y pivots in at most once.

▹ Consider the tree of shortest paths ending at y.

x→y pivots in x→y pivots out

x y

slide-61
SLIDE 61

Number of pivots

  • So the overall number of pivots is only O(n)!

x→y pivots in x→y pivots out

x y

slide-62
SLIDE 62

Number of pivots

  • So the overall number of pivots is only O(n)!
  • But how do we find these pivots quickly?

x→y pivots in x→y pivots out

x y

slide-63
SLIDE 63

How shortest paths work

  • Input:

▹ Directed graph G = (V, E) ▹ length ℓ(u→v) for each edge u→v ▹ A source vertex s.

  • Each vertex v maintains two values:

▹ dist(v) is the length of some path from s to v ▹ pred(v) is the next-to-last vertex of that path from s to v.

[Ford 1956]

3 2 1 5 10 8 4 4 7 12 3

10 7 17 12 3 7

slide-64
SLIDE 64
  • Edge u→v is tense iff dist(v) ≥ dist(u) + ℓ(u→v).

3 2 1 5 10 8 4 4 7 12 3 10 7 17 12 3 7

How shortest paths work

[Ford 1956]

slide-65
SLIDE 65
  • Edge u→v is tense iff dist(v) ≥ dist(u) + ℓ(u→v).

How shortest paths work

[Ford 1956]

3 2 1 5 10 8 4 4 7 12 3 10 7 17 12 3 7

slide-66
SLIDE 66

3 2 1 5 10 8 4 4 7 12 3 10 7 17 12 3 7

  • Edge u→v is tense iff dist(v) ≥ dist(u) + ℓ(u→v).
  • To relax u→v, set dist(v) = dist(u) + ℓ(u→v) and pred(v) = u

How shortest paths work

[Ford 1956]

slide-67
SLIDE 67

3 2 1 5 10 8 4 4 7 12 3 10 7 17 12 3 4

  • Edge u→v is tense iff dist(v) ≥ dist(u) + ℓ(u→v).
  • To relax u→v, set dist(v) = dist(u) + ℓ(u→v) and pred(v) = u

How shortest paths work

[Ford 1956]

slide-68
SLIDE 68

3 2 1 5 10 8 4 4 7 12 3 10 7 17 12 3 4

  • Edge u→v is tense iff dist(v) ≥ dist(u) + ℓ(u→v).
  • To relax u→v, set dist(v) = dist(u) + ℓ(u→v) and pred(v) = u

How shortest paths work

[Ford 1956]

slide-69
SLIDE 69
  • Edge u→v is tense iff dist(v) ≥ dist(u) + ℓ(u→v).
  • If no edges are tense, then dist(v) is the length of the

shortest path from s to v, for every vertex v.

How shortest paths work

[Ford 1956]

3 2 1 5 10 8 4 4 7 12 3 7 4 14 9 3 4

slide-70
SLIDE 70

Back to MSSP

  • Maintain the shortest path tree rooted at a point s that is

moving continuously around the outer face.

  • Also maintain the slack of each edge u→v:

slack(u→v) := dist(u) + ℓ(u→v) – dist(v)

  • Distances and slacks change continuously with s, but in a

controlled manner.

  • The shortest path tree is correct as long as slack(u→v)>0

for every edge u→v.

[Cabello Chambers Erickson 2013]

slide-71
SLIDE 71

u v s

Distance and slack changes

  • Red: dist growing
  • Blue: dist shrinking

[Doppler 1842] [Fizeau 1848]

slide-72
SLIDE 72

u v s

Distance and slack changes

  • Red: dist growing
  • Blue: dist shrinking
  • Red→red: slack constant
  • Blue→blue: slack constant
  • Red→blue: slack growing
  • Blue→red: slack shrinking

[Doppler 1842] [Fizeau 1848]

slide-73
SLIDE 73

u v s

Distance and slack changes

  • Red: dist growing
  • Blue: dist shrinking
  • Red→red: slack constant
  • Blue→blue: slack constant
  • Red→blue: slack growing
  • Blue→red: slack shrinking

▹ active edges

[Doppler 1842] [Fizeau 1848]

u v s

slide-74
SLIDE 74

Tree-cotree decomposition

  • Complementary dual

spanning tree C* = (G\T)*

  • Red and blue subtrees are

separated by a path in C*

  • Active edges are dual to

edges in this path.

[von Staudt 1847] [Dehn 1936] [Whitney 1932]

s u v

slide-75
SLIDE 75

Tree-cotree decomposition

  • Complementary dual

spanning tree C* = (G\T)*

  • Red and blue subtrees are

separated by a path in C*

  • Active edges are dual to

edges in this path.

[von Staudt 1847] [Dehn 1936] [Whitney 1932]

s u v

slide-76
SLIDE 76

Pivot

  • When slack(u→v) becomes 0, relax u→v

▹ Delete pred(v)→v from T ▹ Insert u→v into T. ▹ Delete (u→v)* from C*. ▹ Insert (pred(v)→v)* into C* ▹ Set pred(u) := v

[Ford 1956] s u v

slide-77
SLIDE 77

Pivot

  • When slack(u→v) becomes 0, relax u→v

▹ Delete pred(v)→v from T ▹ Insert u→v into T. ▹ Delete (u→v)* from C*. ▹ Insert (pred(v)→v)* into C* ▹ Set pred(u) := v

[Ford 1956] s u v

slide-78
SLIDE 78

Pivot

  • When slack(u→v) becomes 0, relax u→v

▹ Delete pred(v)→v from T ▹ Insert u→v into T. ▹ Delete (u→v)* from C*. ▹ Insert (pred(v)→v)* into C* ▹ Set pred(u) := v

[Ford 1956] s u v

slide-79
SLIDE 79

Pivot

  • When slack(u→v) becomes 0, relax u→v

▹ Delete pred(v)→v from T ▹ Insert u→v into T. ▹ Delete (u→v)* from C*. ▹ Insert (pred(v)→v)* into C* ▹ Set pred(u) := v

[Ford 1956] s u v

slide-80
SLIDE 80

Pivot

  • When slack(u→v) becomes 0, relax u→v

▹ Delete pred(v)→v from T ▹ Insert u→v into T. ▹ Delete (u→v)* from C*. ▹ Insert (pred(v)→v)* into C* ▹ Set pred(u) := v

[Ford 1956] s u v

slide-81
SLIDE 81

Pivot

  • When slack(u→v) becomes 0, relax u→v

▹ Delete pred(v)→v from T ▹ Insert u→v into T. ▹ Delete (u→v)* from C*. ▹ Insert (pred(v)→v)* into C* ▹ Set pred(u) := v

[Ford 1956] s u v

slide-82
SLIDE 82
  • Vertices can only change from red to blue.
  • So any edge that pivots into T stays in T.

s u v

Pivots

slide-83
SLIDE 83
  • Vertices can only change from red to blue.
  • So any edge that pivots into T stays in T.

Pivots

s u v

slide-84
SLIDE 84

Fast implementation

  • We maintain T and C* in dynamic forest data structures that

support the following operations in O(log n) amortized time:

▹ Remove and insert edges:

  • CUT(uv), LINK(u,v)

▹ Maintain distances at vertices of T:

  • GETNODEVALUE(v), ADDSUBTREE(Δ, v)

▹ Maintain slacks at edges of C*:

  • GETDARTVALUE(u︎→v), ADDPATH(Δ, u, v), MINPATH(u, v)
  • So we can identify and execute each pivot in O(log n)

amortized time.

[Tarjan Werneck 2005] [Sleator Tarjan 1983] ···

slide-85
SLIDE 85

Planar MSSP summary

  • We can (implicitly) compute distances from every boundary

vertex to every vertex in any planar map in O(n log n) time!

  • More accurately: Given k vertex pairs, where one vertex of

each pair is on the boundary, we can compute those k shortest-path distances in O(n log n + k log n) time.

[Klein 2005]

slide-86
SLIDE 86

Higher-genus MSSP

  • Let Σ be any surface map with genus g. Fix a face f of Σ.
  • We want to compute the shortest path trees rooted at every

vertex of some “outer” face f.

slide-87
SLIDE 87

Higher-genus MSSP

  • Let Σ be any surface map with genus g. Fix a face f of Σ.
  • We want to compute the shortest path trees rooted at every

vertex of some “outer” face f.

slide-88
SLIDE 88

Higher-genus MSSP

  • Let Σ be any surface map with genus g. Fix a face f of Σ.
  • We want to compute the shortest path trees rooted at every

vertex of some “outer” face f.

slide-89
SLIDE 89

Higher-genus MSSP

  • Let Σ be any surface map with genus g. Fix a face f of Σ.
  • We want to compute the shortest path trees rooted at every

vertex of some “outer” face f.

slide-90
SLIDE 90

Higher-genus MSSP

  • Let Σ be any surface map with genus g. Fix a face f of Σ.
  • We want to compute the shortest path trees rooted at every

vertex of some “outer” face f.

slide-91
SLIDE 91

Same strategy!

  • Move a point s continously around f, maintaining both the

shortest-path tree rooted at s and the complementary

  • slacks. Whenever a non-tree edge becomes tense, relax it.
slide-92
SLIDE 92

Same strategy!

  • Move a point s continously around f, maintaining both the

shortest-path tree rooted at s and the complementary

  • slacks. Whenever a non-tree edge becomes tense, relax it.
slide-93
SLIDE 93

Complementary grove

  • The dual cut graph X* = (G\T)* is no longer a spanning tree!
  • Grove decomposition: partition X* into 6g subtrees of G*.

▹ Each subtree contains one dual cut path and all attached “hair” ▹ Maintain each subtree in its own dynamic forest data structure

slide-94
SLIDE 94

Where are the pivots?

  • All active edges are dual to edges in some dual cut path.
  • We can find and execute each pivot using O(g) dynamic

forest operations = O(g log n) amortized time.

slide-95
SLIDE 95

How many pivots?

  • Each directed edge pivots into T at most 4g times.

▹ 4g = max # disjoint non-homotopic paths between two points in Σ ▹ = # edges in a system of quads!

  • So the total number of pivots is O(gn)
slide-96
SLIDE 96

Summary

  • Given any surface map Σ with complexity n and genus g,

with non-negatively weighted edges, and a face f.

  • We can (implicitly) compute shortest-path distances from

every vertex of f to every vertex of Σ...

▹ in O(gn log n) time with high probability ▹ or in O(min{g, log n} · gn log n) worst-case deterministic time

[Cabello Chambers Erickson 2013] [Fox Erickson Lkhamsuren 2018]

slide-97
SLIDE 97

Picky details

  • Everything so far assumes that shortest paths are unique,

and that at most one edge becomes tense at a time.

  • We can enforce this assumption by perturbing the edge

weights.

▹ Randomized perturbation: O(1) time penalty, but succeeds only with high probability


[Mulmuley Vazirani Vazirani 1987]

▹ Lexicographic perturbation: O(log n) time penalty


[Charnes 1952] [Dantzig Orden Wolfe 1955]

▹ Homologically-least leftmost (“holiest”) perturbation: O(g) time penalty


[Fox Erickson Lkhamsuren 2018] [Cabello Chambers Erickson 2013]

slide-98
SLIDE 98

Shortest nontrivial cycles, take 2

slide-99
SLIDE 99

Faster algorithm

To compute the shortest nonseparating cycle:

▹ Compute a greedy system of cycles γ1, γ2, ..., γ2g ▹ Find the shortest cycle that crosses each greedy cycle γi once

[Cabello Chambers 2007]

slide-100
SLIDE 100

Algorithm

  • To find the shortest cycle that crosses γi once:

▹ Cut the surface open along γi. Resulting surface Σ✂γi has two copies

  • f γ on its boundary.

▹ Find shortest path in Σ✂γi between two copies of each vertex of γi ▹ MSSP: O(gn log n) time with high probability

[Cabello Chambers 2007]

slide-101
SLIDE 101

Algorithm 1

To compute the shortest nonseparating cycle:

▹ Compute a greedy tree-cotree decomposition ▹ Compute a greedy system of cycles γ1, γ2, ..., γ2g ▹ Find the shortest cycle that crosses each greedy cycle γi once

  • O(g2 n log n) time with high probability
  • This is the fastest algorithm known in terms of both n and g.

[Cabello Chambers Erickson 2013]

slide-102
SLIDE 102

One-cross lemmas

  • Let γ* be the shortest noncontractible cycle, and let ℓ be the

shortest noncontractible loop at an arbitrary basepoint.

  • Then γ* and ℓ cross at most once.

[Cabello Chambers 2007]

slide-103
SLIDE 103

One-cross lemmas

  • Let γ* be the shortest noncontractible cycle, and let π be a

shortest nonseparating path between two boundary points.

  • Then γ* and π cross at most once.

[Cabello Chambers 2007]

slide-104
SLIDE 104

Algorithm 2

To compute the shortest noncontractible cycle:

▹ Find shortest non-contractible loop ℓ at some basepoint ▹ Find shortest cycle crossing ℓ once ▹ Cut the surface along ℓ ▹ While the surface is not a disk:

  • Find shortest non-separating boundary to boundary path π
  • Find shortest cycle crossing π once
  • Cut the surface along π
  • O(g2 n log n) time with high probability
  • This is the fastest algorithm known in terms of both n and g.

[Cabello Chambers Erickson 2013]

slide-105
SLIDE 105

Thank you!

[Free Gruchy (“Slow-Mo Guys”) 2018]

slide-106
SLIDE 106

Thank you!

[Free Gruchy (“Slow-Mo Guys”) 2018]

slide-107
SLIDE 107

Continuous surfaces

  • r “Why not solve the real problem?”
slide-108
SLIDE 108

Structural results generalize...

  • The 3-path and 1-crossing conditions still hold
  • The shortest non-trivial cycle still contains shortest paths

between any pair of antipodal points

  • The greedy system of loops is still optimal
  • Every cycle in a greedy system of cycles contains shortest

paths between any two antipodal points

  • The continuous analogue of the 


greedy cut graph is a cut locus

slide-109
SLIDE 109

...but what about algorithms?

  • All algorithms ultimately rely on computing shortest paths.
  • So we must be given a surface representation that supports

computing shortest paths!

[Borelli Jabrane Lazarus Rohmer Thibert 2012]

slide-110
SLIDE 110

Piecewise-linear surfaces

  • Complex of Euclidean polygons with pairs of equal-length

edges identified (glued)

slide-111
SLIDE 111

Piecewise-linear surfaces

  • Metric is Euclidean everywhere except at vertices
  • Paths and cycles can be anywhere on the surface
slide-112
SLIDE 112

PL shortest paths

  • “Continuous Dijkstra”

▹ O(n2 log n) time [Mitchell Mount Papadimitriou 1987] ▹ O(n2) [Chen Han 1990]

  • This lets us compute shortest nontrivial

cycles in O(n3) time.

  • Lots of approximation algorithms, faster special

cases, practical heuristics, and false starts ▹ Practical implementation [Surazhsky Surazhsky

Kirsanov Gortler Hoppe 2005]

▹ Heat equation [Crane Weischedel Wardetzky 2013]

Dragon

slide-113
SLIDE 113

Hidden assumptions

  • Exact algorithms require exact real arithmetic

▹ Ugly theoretical quagmire, but not a significant issue “in practice”

  • Analysis assumes that every shortest path crosses each

edge of the given PL structure at most once.

▹ True for piecewise-flat maps into any Rd. ▹ True (or close enough) for PL triangulations with fat triangles ▹ True for some PL structure of every PL surface.


[Zalgaller 1958] [Burago Zalgaller 1995] [Bern Hayes 2011]

▹ But not true for arbitrary PL structures!

slide-114
SLIDE 114

Toilet paper tube

[Alexandrov 1942] [Zalgaller 1997]

slide-115
SLIDE 115

Square (sic) flat torus

(0,0) (F

n , F n–1)

(F

n+1 , F n)

(F

n+2 , F n+1)

[Borelli Jabrane Lazarus Rohmer Thibert 2012]

slide-116
SLIDE 116

Unbounded time

  • Let α = maximum aspect ratio of any triangular facet.
  • Good news:

▹ Any shortest path crosses each edge O(α) times (and this is tight). ▹ So we can find the shortest nontrivial cycles in O(poly(n, α)) time!

  • Bad news:

▹ If edge lengths or local coordinates are integers, then α can be exponential in the input size (# vertices + # edges + # bits). ▹ If edge lengths or local coordinates are real numbers, then α is
 not bounded by any function of the input size (# vertices + # edges).

slide-117
SLIDE 117

Normal coordinates to the rescue?

  • We can implicitly represent any simple cycle or arc using


O(n log X) bits, where X = # crossings.


[Kneser 1930]

  • Several algorithms for normal curves:

▹ Counting and isolating components ▹ Counting isotopy classes ▹ Intersection numbers ▹ Image of one curve under a mapping class ▹ Distance between two curves in the curve complex ▹ Classifying mapping classes

3 5 4 [Schaefer, Sedgwick, Štefankovic 2003] [Agol Hass Thurston 2006]
 [Erickson Nayyeri 2013] [Bell Webb 2016]

slide-118
SLIDE 118

Normal coordinates to the rescue?

  • We can “trace” any simple geodesic through a PL

triangulation in O(n2 log X) time.


[Erickson Nayyeri 2013]

1 1 3 3 3 1 2 1 3 1 3 2 5 5 5 2 2 1 1 1 2 3 5 5 5 3 5 2 2 3 3 3

slide-119
SLIDE 119

Normal coordinates to the rescue?

  • We can compute a minimal (abstract) triangulation for a

given normal curve in O(poly(n log X)) time.


[Bell 2016] [Bell Webb 2016] k

si si c sj sj Twist

e f a b c d Flip

slide-120
SLIDE 120

Open problems

  • Can we compute (the normal coordinates of) the shortest

nontrivial cycle in an arbitrary triangulated PL surface in O(poly(n log α)) time?

slide-121
SLIDE 121

Open problems

  • Can we compute (the normal coordinates of) the shortest

nontrivial cycle in an arbitrary triangulated PL surface in O(poly(n log α)) time?

  • More generally, can we compute a useful PL triangulation

(for example, the intrinsic Delaunay triangulation) of an arbitrary triangulated PL surface in O(poly(n log α)) time?

slide-122
SLIDE 122

Thank you!

[Segerman 2015]