SLIDE 1 One-Dimensional Computational Topology
- III. Shortest nontrivial cycles
Jeff Erickson
University of Illinois, Urbana-Champaign
SLIDE 2
Today’s Question
Given a surface Σ, find the shortest topologically nontrivial cycle in Σ.
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
Surface reconstruction
SLIDE 5 Surface reconstruction
point cloud
scan
SLIDE 6 reconstruct surface
Surface reconstruction
point cloud
scan
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 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 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 “Given”?
▹ 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 “Given”?
▹ 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 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
Tree-cotree structures
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 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 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 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 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 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 Tree-cotree structures
- System of cycles {cycle(T, e) | e ∈ L}
▹ 2g simple cycles ▹ Basis for the first homology group H1(Σ)
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 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 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
Shortest nontrivial cycles, take 1
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 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 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 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 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
- 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 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 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 One-cross lemmas
- The shortest nontrivial cycle crosses any shortest path at
most once
- Otherwise, we could find a shorter nontrivial cycle!
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
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 Algorithm
- To find the shortest cycle that crosses γi once:
▹ Cut the surface open along γi. Resulting surface Σ✂γi has two copies
▹ Find the shortest path in Σ✂γi between the clones of each vertex of γi
[Cabello Chambers 2007]
SLIDE 37
Multiple-Source Shortest Paths
[Free Gruchy (“Slow-Mo Guys”) 2018]
SLIDE 38
Multiple-Source Shortest Paths
[Free Gruchy (“Slow-Mo Guys”) 2018]
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 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 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 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 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 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 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 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 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 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 Planar MSSP
- Intuitively, we want the shortest-path tree rooted at every
boundary vertex.
[Klein 2005]
SLIDE 50 Planar MSSP
- Intuitively, we want the shortest-path tree rooted at every
boundary vertex.
[Klein 2005]
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 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 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 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 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 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 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 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 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 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 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 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 How shortest paths work
▹ 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
- 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
- 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 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 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 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
- 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 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 u v s
Distance and slack changes
- Red: dist growing
- Blue: dist shrinking
[Doppler 1842] [Fizeau 1848]
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 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 Tree-cotree decomposition
spanning tree C* = (G\T)*
- Red and blue subtrees are
separated by a path in C*
edges in this path.
[von Staudt 1847] [Dehn 1936] [Whitney 1932]
s u v
SLIDE 75 Tree-cotree decomposition
spanning tree C* = (G\T)*
- Red and blue subtrees are
separated by a path in C*
edges in this path.
[von Staudt 1847] [Dehn 1936] [Whitney 1932]
s u v
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 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 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 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 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 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
- Vertices can only change from red to blue.
- So any edge that pivots into T stays in T.
s u v
Pivots
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 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:
▹ 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 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 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 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 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 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 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 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 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 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 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 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 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 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
Shortest nontrivial cycles, take 2
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 Algorithm
- To find the shortest cycle that crosses γi once:
▹ Cut the surface open along γi. Resulting surface Σ✂γi has two copies
▹ 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 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 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 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 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
Thank you!
[Free Gruchy (“Slow-Mo Guys”) 2018]
SLIDE 106
Thank you!
[Free Gruchy (“Slow-Mo Guys”) 2018]
SLIDE 107 Continuous surfaces
- r “Why not solve the real problem?”
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 ...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 Piecewise-linear surfaces
- Complex of Euclidean polygons with pairs of equal-length
edges identified (glued)
SLIDE 111 Piecewise-linear surfaces
- Metric is Euclidean everywhere except at vertices
- Paths and cycles can be anywhere on the surface
SLIDE 112 PL shortest paths
▹ 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 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
Toilet paper tube
[Alexandrov 1942] [Zalgaller 1997]
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 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!
▹ 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 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 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 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 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 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
Thank you!
[Segerman 2015]