{"id":28736,"date":"2016-04-22T11:55:34","date_gmt":"2016-04-22T16:55:34","guid":{"rendered":"http:\/\/blogs.ams.org\/mathgradblog\/?p=28736"},"modified":"2016-04-22T11:55:34","modified_gmt":"2016-04-22T16:55:34","slug":"traversing-mountain-passes","status":"publish","type":"post","link":"https:\/\/blogs.ams.org\/mathgradblog\/2016\/04\/22\/traversing-mountain-passes\/","title":{"rendered":"Traversing Mountain Passes"},"content":{"rendered":"<div id=\"attachment_28788\" style=\"width: 310px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-28788\" class=\"wp-image-28788 size-medium\" src=\"http:\/\/blogs.ams.org\/mathgradblog\/files\/2016\/04\/Puddle-300x225.jpg\" alt=\"Puddles\" width=\"300\" height=\"225\" srcset=\"https:\/\/blogs.ams.org\/mathgradblog\/files\/2016\/04\/Puddle-300x225.jpg 300w, https:\/\/blogs.ams.org\/mathgradblog\/files\/2016\/04\/Puddle-768x577.jpg 768w, https:\/\/blogs.ams.org\/mathgradblog\/files\/2016\/04\/Puddle-1024x769.jpg 1024w, https:\/\/blogs.ams.org\/mathgradblog\/files\/2016\/04\/Puddle.jpg 1608w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><p id=\"caption-attachment-28788\" class=\"wp-caption-text\">How can you (mathematically) avoid walking in deep puddles? Photo by Alexi Hoeft, used with permission.<\/p><\/div>\n<p>Suppose you need to walk through a wet parking lot. The lot is covered with puddles and you would like to keep your shoes as dry as possible.\u00a0If you know the depth of the puddles at every point, how do you choose the path that minimizes the maximum depth of the puddles you cross?\u00a0A hiker might want to solve a similar problem if they want to avoid fatigue by seeking low elevations. How do you traverse a mountainous area while remaining as low as possible?<\/p>\n<p>To make the problem more formal, say the area of interest is <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=X%3D%5B0%2C1%5D%5Ctimes%5B0%2C1%5D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"X=[0,1]&#92;times[0,1]\" class=\"latex\" \/> and the elevation of the ground (or puddle depth) at each point <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%28x%2Cy%29+%5Cin+X&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"(x,y) &#92;in X\" class=\"latex\" \/> is <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f%28x%2Cy%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f(x,y)\" class=\"latex\" \/>, with <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f%3AX%5Cto%5Cmathbb%7BR%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f:X&#92;to&#92;mathbb{R}\" class=\"latex\" \/> continuous. Choose areas that are acceptable start and finish points and call them <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=X_0&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"X_0\" class=\"latex\" \/> and <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=X_1&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"X_1\" class=\"latex\" \/>. If you want to walk from the north end of the square to the south, then you could choose <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=X_0%3D%5B0%2C1%5D%5Ctimes%5C%7B1%5C%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"X_0=[0,1]&#92;times&#92;{1&#92;}\" class=\"latex\" \/> and <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=X_1%3D%5B0%2C1%5D%5Ctimes%5C%7B0%5C%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"X_1=[0,1]&#92;times&#92;{0&#92;}\" class=\"latex\" \/>. The problem can be stated as <!--more-->the minimax<\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cdisplaystyle%7B%5Cmin_P+%5Cmax_t+f%28P%28t%29%29%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;displaystyle{&#92;min_P &#92;max_t f(P(t))}\" class=\"latex\" \/><\/p>\n<p>over continuous paths <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=P%3A%5B0%2C1%5D%5Cto+X&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"P:[0,1]&#92;to X\" class=\"latex\" \/> such that <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=P%280%29%5Cin+X_0&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"P(0)&#92;in X_0\" class=\"latex\" \/> and <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=P%281%29%5Cin+X_1&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"P(1)&#92;in X_1\" class=\"latex\" \/>.<\/p>\n<p>Initially, you might suppose that this is a fundamentally continuous problem since there is a continuum of possible routes <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=P&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"P\" class=\"latex\" \/>. However, we can make the problem discrete by considering sublevel sets of <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f\" class=\"latex\" \/>.<\/p>\n<p>The <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=c&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"c\" class=\"latex\" \/>-sublevel set of <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f\" class=\"latex\" \/> is the set of points where <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f\" class=\"latex\" \/> is below elevation <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=c&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"c\" class=\"latex\" \/>, that is<\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=S_c%3D%5C%7B%28x%2Cy%29%5Cin+X+%7C+f%28x%2Cy%29%5Cleq+c%5C%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"S_c=&#92;{(x,y)&#92;in X | f(x,y)&#92;leq c&#92;}\" class=\"latex\" \/>.<\/p>\n<p>The minimax problem is solved by finding a <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=P&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"P\" class=\"latex\" \/> that lies in the lowest sublevel set connecting <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=X_0&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"X_0\" class=\"latex\" \/> and <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=X_1&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"X_1\" class=\"latex\" \/>. That lowest elevation is<\/p>\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cmin%5C%7Bc+%7C+%5Cexists+P%3A+P%280%29%5Cin+X_0%2C%5C%2C+P%281%29%5Cin+X_1+%5Ctext%7B+and+%7D+%5Cforall+t%5Cin%5B0%2C1%5D%3A+P%28t%29%5Cin+S_c%5C%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;min&#92;{c | &#92;exists P: P(0)&#92;in X_0,&#92;, P(1)&#92;in X_1 &#92;text{ and } &#92;forall t&#92;in[0,1]: P(t)&#92;in S_c&#92;}\" class=\"latex\" \/>.<\/p>\n<p>Watch the animated figure below and notice the first time that the white sublevel set connects the top and bottom. A path between top and bottom must first appear when the boundaries pass through a saddle point of <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f\" class=\"latex\" \/> because saddle points are where connected components of sublevel sets join each other. This is a consequence of the &#8220;mountain pass theorem&#8221;: if <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=P%5E%2A&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"P^*\" class=\"latex\" \/> is optimal and <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f%28P%5E%2A%28t%29%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f(P^*(t))\" class=\"latex\" \/> is maximized by <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=t%5E%2A&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"t^*\" class=\"latex\" \/>, then <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=P%5E%2A%28t%5E%2A%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"P^*(t^*)\" class=\"latex\" \/> is a stationary point of <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f\" class=\"latex\" \/>. That stationary point is a normally a saddle point (though it could be part of a flat-topped area).<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/dl.dropboxusercontent.com\/u\/19782069\/amsblog\/level.gif\" alt=\"\" \/><\/p>\n<p>Now we can write a discrete process for finding an optimal path:<\/p>\n<ol>\n<li>Locate all saddle points of <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f\" class=\"latex\" \/>.<\/li>\n<li>Order the saddle points <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5C%7B%28x_1%2Cy_1%29%2C%5Cdots%2C%28x_n%2Cy_n%29%5C%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;{(x_1,y_1),&#92;dots,(x_n,y_n)&#92;}\" class=\"latex\" \/> by elevation so that <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f%28x_1%2Cy_1%29+%5Cleq+%5Ccdots+%5Cleq+f%28x_n%2Cy_n%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f(x_1,y_1) &#92;leq &#92;cdots &#92;leq f(x_n,y_n)\" class=\"latex\" \/>.<\/li>\n<li>For each saddle point <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%28x_i%2Cy_i%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"(x_i,y_i)\" class=\"latex\" \/>, determine whether its sublevel set <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=S_%7Bf%28x_i%2Cy_i%29%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"S_{f(x_i,y_i)}\" class=\"latex\" \/> has a connected component intersecting <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=X_0&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"X_0\" class=\"latex\" \/> and <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=X_1&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"X_1\" class=\"latex\" \/>.<\/li>\n<li>If the lowest such saddle point is <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%28x_%7B%5Chat+i%7D%2Cy_%7B%5Chat+i%7D%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"(x_{&#92;hat i},y_{&#92;hat i})\" class=\"latex\" \/>, then <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f%28x_%7B%5Chat+i%7D%2Cy_%7B%5Chat+i%7D%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f(x_{&#92;hat i},y_{&#92;hat i})\" class=\"latex\" \/> is the minimum value for the minimax problem, and the optimal path is any <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=P&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"P\" class=\"latex\" \/> contained in <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=S_%7Bf%28x_%7B%5Chat+i%7D%2Cy_%7B%5Chat+i%7D%29%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"S_{f(x_{&#92;hat i},y_{&#92;hat i})}\" class=\"latex\" \/> that connects <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=X_0&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"X_0\" class=\"latex\" \/> and <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=X_1&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"X_1\" class=\"latex\" \/>.<\/li>\n<\/ol>\n<p>For something else to think about, let&#8217;s consider\u00a0a connection to graph theory. If you watch the above animation a few times, you&#8217;ll notice that connected components of the white sublevel sets are created at local minima. They spread out and meet other components at saddle points. You might imagine a graph (or network) being created between the local minima: when two components touch, an edge is created between two minima (one in each component).<\/p>\n<p>Is there a natural way to choose a representative from each component to connect? If a hole forms so that the component is no longer simply connected, should an edge be added to make a cycle? Also, a graph on the maxima could be created in the same way. Should the graph on the maxima be the dual of the graph on the minima?<\/p>\n<p>Post any thoughts or questions in the comments below!<\/p>\n<div style=\"margin-top: 0px; margin-bottom: 0px;\" class=\"sharethis-inline-share-buttons\" ><\/div>","protected":false},"excerpt":{"rendered":"<p>Suppose you need to walk through a wet parking lot. The lot is covered with puddles and you would like to keep your shoes as dry as possible.\u00a0If you know the depth of the puddles at every point, how do &hellip; <a href=\"https:\/\/blogs.ams.org\/mathgradblog\/2016\/04\/22\/traversing-mountain-passes\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div style=\"margin-top: 0px; margin-bottom: 0px;\" class=\"sharethis-inline-share-buttons\" data-url=https:\/\/blogs.ams.org\/mathgradblog\/2016\/04\/22\/traversing-mountain-passes\/><\/div>\n","protected":false},"author":108,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[12],"tags":[219,217,218],"class_list":["post-28736","post","type-post","status-publish","format-standard","hentry","category-math","tag-graph-theory","tag-optimization","tag-saddle-points"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p3gbww-7tu","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blogs.ams.org\/mathgradblog\/wp-json\/wp\/v2\/posts\/28736","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ams.org\/mathgradblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ams.org\/mathgradblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ams.org\/mathgradblog\/wp-json\/wp\/v2\/users\/108"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ams.org\/mathgradblog\/wp-json\/wp\/v2\/comments?post=28736"}],"version-history":[{"count":47,"href":"https:\/\/blogs.ams.org\/mathgradblog\/wp-json\/wp\/v2\/posts\/28736\/revisions"}],"predecessor-version":[{"id":28787,"href":"https:\/\/blogs.ams.org\/mathgradblog\/wp-json\/wp\/v2\/posts\/28736\/revisions\/28787"}],"wp:attachment":[{"href":"https:\/\/blogs.ams.org\/mathgradblog\/wp-json\/wp\/v2\/media?parent=28736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ams.org\/mathgradblog\/wp-json\/wp\/v2\/categories?post=28736"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ams.org\/mathgradblog\/wp-json\/wp\/v2\/tags?post=28736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}