基于分治法的简单多边形路由预处理

IF 1.1 4区 数学 Q4 COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS
Siddharth Gaur, R. Inkulu
{"title":"基于分治法的简单多边形路由预处理","authors":"Siddharth Gaur, R. Inkulu","doi":"10.1007/s10878-025-01345-9","DOIUrl":null,"url":null,"abstract":"<p>Given a simple polygon <i>P</i> defined with <i>n</i> vertices in the plane, we preprocess <i>P</i> and compute routing tables at every vertex of <i>P</i>. In the routing phase, a packet originating at any source vertex of <i>P</i> is routed to its destination vertex belonging to <i>P</i>. At every vertex <i>v</i> of <i>P</i> along the routing path, until the packet reaches its destination, the next hop is determined using the routing tables at <i>v</i> and the additional information (including the packet’s destination vertex label) in the packet. We show our routing scheme constructs routing tables in <span><span style=\"\"></span><span data-mathml='&lt;math xmlns=\"http://www.w3.org/1998/Math/MathML\"&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mstyle scriptlevel=\"0\"&gt;&lt;mrow&gt;&lt;mo maxsize=\"1.2em\" minsize=\"1.2em\"&gt;(&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mstyle scriptlevel=\"0\"&gt;&lt;mrow&gt;&lt;mo maxsize=\"1.2em\" minsize=\"1.2em\"&gt;(&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mfrac&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mi&gt;&amp;#x03F5;&lt;/mi&gt;&lt;/mfrac&gt;&lt;mstyle scriptlevel=\"0\"&gt;&lt;mrow&gt;&lt;mo maxsize=\"1.2em\" minsize=\"1.2em\"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mstyle scriptlevel=\"0\"&gt;&lt;mrow&gt;&lt;mo maxsize=\"1.2em\" minsize=\"1.2em\"&gt;(&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mi&gt;lg&lt;/mi&gt;&lt;mo&gt;&amp;#x2061;&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/mrow&gt;&lt;msup&gt;&lt;mstyle scriptlevel=\"0\"&gt;&lt;mrow&gt;&lt;mo maxsize=\"1.2em\" minsize=\"1.2em\"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;/msup&gt;&lt;mstyle scriptlevel=\"0\"&gt;&lt;mrow&gt;&lt;mo maxsize=\"1.2em\" minsize=\"1.2em\"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;/math&gt;' role=\"presentation\" style=\"font-size: 100%; display: inline-block; position: relative;\" tabindex=\"0\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"3.615ex\" role=\"img\" style=\"vertical-align: -1.006ex;\" viewbox=\"0 -1123.3 8719.1 1556.6\" width=\"20.251ex\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"0\" transform=\"matrix(1 0 0 -1 0 0)\"><use x=\"0\" xlink:href=\"#MJMATHI-4F\" y=\"0\"></use><use x=\"763\" xlink:href=\"#MJSZ1-28\" y=\"-1\"></use><use x=\"1222\" xlink:href=\"#MJMATHI-6E\" y=\"0\"></use><use x=\"1822\" xlink:href=\"#MJSZ1-28\" y=\"-1\"></use><use x=\"2281\" xlink:href=\"#MJMAIN-31\" y=\"0\"></use><use x=\"3003\" xlink:href=\"#MJMAIN-2B\" y=\"0\"></use><g transform=\"translate(3782,0)\"><g transform=\"translate(342,0)\"><rect height=\"60\" stroke=\"none\" width=\"473\" x=\"0\" y=\"220\"></rect><use transform=\"scale(0.707)\" x=\"84\" xlink:href=\"#MJMAIN-31\" y=\"556\"></use><use transform=\"scale(0.707)\" x=\"131\" xlink:href=\"#MJMATHI-3F5\" y=\"-488\"></use></g></g><use x=\"4718\" xlink:href=\"#MJSZ1-29\" y=\"-1\"></use><use x=\"5176\" xlink:href=\"#MJSZ1-28\" y=\"-1\"></use><g transform=\"translate(5802,0)\"><use xlink:href=\"#MJMAIN-6C\"></use><use x=\"278\" xlink:href=\"#MJMAIN-67\" y=\"0\"></use></g><use x=\"6747\" xlink:href=\"#MJMATHI-6E\" y=\"0\"></use><g transform=\"translate(7348,0)\"><use x=\"0\" xlink:href=\"#MJSZ1-29\" y=\"-1\"></use><use transform=\"scale(0.707)\" x=\"648\" xlink:href=\"#MJMAIN-33\" y=\"816\"></use></g><use x=\"8260\" xlink:href=\"#MJSZ1-29\" y=\"-1\"></use></g></svg><span role=\"presentation\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mi>O</mi><mstyle scriptlevel=\"0\"><mrow><mo maxsize=\"1.2em\" minsize=\"1.2em\">(</mo></mrow></mstyle><mi>n</mi><mstyle scriptlevel=\"0\"><mrow><mo maxsize=\"1.2em\" minsize=\"1.2em\">(</mo></mrow></mstyle><mn>1</mn><mo>+</mo><mfrac><mn>1</mn><mi>ϵ</mi></mfrac><mstyle scriptlevel=\"0\"><mrow><mo maxsize=\"1.2em\" minsize=\"1.2em\">)</mo></mrow></mstyle><mstyle scriptlevel=\"0\"><mrow><mo maxsize=\"1.2em\" minsize=\"1.2em\">(</mo></mrow></mstyle><mi>lg</mi><mo>⁡</mo><mrow><mi>n</mi></mrow><msup><mstyle scriptlevel=\"0\"><mrow><mo maxsize=\"1.2em\" minsize=\"1.2em\">)</mo></mrow></mstyle><mn>3</mn></msup><mstyle scriptlevel=\"0\"><mrow><mo maxsize=\"1.2em\" minsize=\"1.2em\">)</mo></mrow></mstyle></math></span></span><script type=\"math/tex\">O\\big (n \\big (1+\\frac{1}{\\epsilon }\\big ) \\big (\\lg {n}\\big )^3\\big )</script></span> time and the routing tables at all the vertices of <i>P</i> together use <span><span style=\"\"></span><span data-mathml='&lt;math xmlns=\"http://www.w3.org/1998/Math/MathML\"&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mstyle scriptlevel=\"0\"&gt;&lt;mrow&gt;&lt;mo maxsize=\"1.2em\" minsize=\"1.2em\"&gt;(&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mfrac&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;&amp;#x03F5;&lt;/mi&gt;&lt;/mfrac&gt;&lt;mstyle scriptlevel=\"0\"&gt;&lt;mrow&gt;&lt;mo maxsize=\"1.2em\" minsize=\"1.2em\"&gt;(&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mi&gt;lg&lt;/mi&gt;&lt;mo&gt;&amp;#x2061;&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/mrow&gt;&lt;msup&gt;&lt;mstyle scriptlevel=\"0\"&gt;&lt;mrow&gt;&lt;mo maxsize=\"1.2em\" minsize=\"1.2em\"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;/msup&gt;&lt;mstyle scriptlevel=\"0\"&gt;&lt;mrow&gt;&lt;mo maxsize=\"1.2em\" minsize=\"1.2em\"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;/math&gt;' role=\"presentation\" style=\"font-size: 100%; display: inline-block; position: relative;\" tabindex=\"0\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"3.615ex\" role=\"img\" style=\"vertical-align: -1.006ex;\" viewbox=\"0 -1123.3 7372.3 1556.6\" width=\"17.123ex\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"0\" transform=\"matrix(1 0 0 -1 0 0)\"><use x=\"0\" xlink:href=\"#MJMATHI-4F\" y=\"0\"></use><use x=\"763\" xlink:href=\"#MJSZ1-28\" y=\"-1\"></use><use x=\"1222\" xlink:href=\"#MJMATHI-6E\" y=\"0\"></use><use x=\"2044\" xlink:href=\"#MJMAIN-2B\" y=\"0\"></use><g transform=\"translate(2823,0)\"><g transform=\"translate(342,0)\"><rect height=\"60\" stroke=\"none\" width=\"544\" x=\"0\" y=\"220\"></rect><use transform=\"scale(0.707)\" x=\"84\" xlink:href=\"#MJMATHI-6E\" y=\"564\"></use><use transform=\"scale(0.707)\" x=\"181\" xlink:href=\"#MJMATHI-3F5\" y=\"-488\"></use></g></g><use x=\"3830\" xlink:href=\"#MJSZ1-28\" y=\"-1\"></use><g transform=\"translate(4455,0)\"><use xlink:href=\"#MJMAIN-6C\"></use><use x=\"278\" xlink:href=\"#MJMAIN-67\" y=\"0\"></use></g><use x=\"5400\" xlink:href=\"#MJMATHI-6E\" y=\"0\"></use><g transform=\"translate(6001,0)\"><use x=\"0\" xlink:href=\"#MJSZ1-29\" y=\"-1\"></use><use transform=\"scale(0.707)\" x=\"648\" xlink:href=\"#MJMAIN-33\" y=\"816\"></use></g><use x=\"6913\" xlink:href=\"#MJSZ1-29\" y=\"-1\"></use></g></svg><span role=\"presentation\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mi>O</mi><mstyle scriptlevel=\"0\"><mrow><mo maxsize=\"1.2em\" minsize=\"1.2em\">(</mo></mrow></mstyle><mi>n</mi><mo>+</mo><mfrac><mi>n</mi><mi>ϵ</mi></mfrac><mstyle scriptlevel=\"0\"><mrow><mo maxsize=\"1.2em\" minsize=\"1.2em\">(</mo></mrow></mstyle><mi>lg</mi><mo>⁡</mo><mrow><mi>n</mi></mrow><msup><mstyle scriptlevel=\"0\"><mrow><mo maxsize=\"1.2em\" minsize=\"1.2em\">)</mo></mrow></mstyle><mn>3</mn></msup><mstyle scriptlevel=\"0\"><mrow><mo maxsize=\"1.2em\" minsize=\"1.2em\">)</mo></mrow></mstyle></math></span></span><script type=\"math/tex\">O\\big (n+\\frac{n}{\\epsilon }\\big (\\lg {n}\\big )^3\\big )</script></span> space. The multiplicative stretch factor of the routing path computed by our algorithm is upper bounded by <span><span style=\"\"></span><span data-mathml='&lt;math xmlns=\"http://www.w3.org/1998/Math/MathML\"&gt;&lt;mo stretchy=\"false\"&gt;(&lt;/mo&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mi&gt;&amp;#x03F5;&lt;/mi&gt;&lt;mo stretchy=\"false\"&gt;)&lt;/mo&gt;&lt;mi&gt;lg&lt;/mi&gt;&lt;mo&gt;&amp;#x2061;&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/mrow&gt;&lt;/math&gt;' role=\"presentation\" style=\"font-size: 100%; display: inline-block; position: relative;\" tabindex=\"0\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"2.614ex\" role=\"img\" style=\"vertical-align: -0.706ex;\" viewbox=\"0 -821.4 4621.8 1125.3\" width=\"10.734ex\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"0\" transform=\"matrix(1 0 0 -1 0 0)\"><use x=\"0\" xlink:href=\"#MJMAIN-28\" y=\"0\"></use><use x=\"389\" xlink:href=\"#MJMAIN-32\" y=\"0\"></use><use x=\"1112\" xlink:href=\"#MJMAIN-2B\" y=\"0\"></use><use x=\"2112\" xlink:href=\"#MJMATHI-3F5\" y=\"0\"></use><use x=\"2519\" xlink:href=\"#MJMAIN-29\" y=\"0\"></use><g transform=\"translate(3075,0)\"><use xlink:href=\"#MJMAIN-6C\"></use><use x=\"278\" xlink:href=\"#MJMAIN-67\" y=\"0\"></use></g><use x=\"4021\" xlink:href=\"#MJMATHI-6E\" y=\"0\"></use></g></svg><span role=\"presentation\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mo stretchy=\"false\">(</mo><mn>2</mn><mo>+</mo><mi>ϵ</mi><mo stretchy=\"false\">)</mo><mi>lg</mi><mo>⁡</mo><mrow><mi>n</mi></mrow></math></span></span><script type=\"math/tex\">(2+\\epsilon )\\lg {n}</script></span>. Here, <span><span style=\"\"></span><span data-mathml='&lt;math xmlns=\"http://www.w3.org/1998/Math/MathML\"&gt;&lt;mi&gt;&amp;#x03F5;&lt;/mi&gt;&lt;mo&gt;&amp;gt;&lt;/mo&gt;&lt;mn&gt;0&lt;/mn&gt;&lt;/math&gt;' role=\"presentation\" style=\"font-size: 100%; display: inline-block; position: relative;\" tabindex=\"0\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"1.912ex\" role=\"img\" style=\"vertical-align: -0.205ex;\" viewbox=\"0 -735.2 2241.1 823.4\" width=\"5.205ex\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"0\" transform=\"matrix(1 0 0 -1 0 0)\"><use x=\"0\" xlink:href=\"#MJMATHI-3F5\" y=\"0\"></use><use x=\"684\" xlink:href=\"#MJMAIN-3E\" y=\"0\"></use><use x=\"1740\" xlink:href=\"#MJMAIN-30\" y=\"0\"></use></g></svg><span role=\"presentation\"><math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mi>ϵ</mi><mo>&gt;</mo><mn>0</mn></math></span></span><script type=\"math/tex\">\\epsilon > 0</script></span> is an input parameter.</p>","PeriodicalId":50231,"journal":{"name":"Journal of Combinatorial Optimization","volume":"128 1","pages":""},"PeriodicalIF":1.1000,"publicationDate":"2025-09-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"A divide-and-conquer based preprocessing for routing in a simple polygon\",\"authors\":\"Siddharth Gaur, R. Inkulu\",\"doi\":\"10.1007/s10878-025-01345-9\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<p>Given a simple polygon <i>P</i> defined with <i>n</i> vertices in the plane, we preprocess <i>P</i> and compute routing tables at every vertex of <i>P</i>. In the routing phase, a packet originating at any source vertex of <i>P</i> is routed to its destination vertex belonging to <i>P</i>. At every vertex <i>v</i> of <i>P</i> along the routing path, until the packet reaches its destination, the next hop is determined using the routing tables at <i>v</i> and the additional information (including the packet’s destination vertex label) in the packet. We show our routing scheme constructs routing tables in <span><span style=\\\"\\\"></span><span data-mathml='&lt;math xmlns=\\\"http://www.w3.org/1998/Math/MathML\\\"&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mstyle scriptlevel=\\\"0\\\"&gt;&lt;mrow&gt;&lt;mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\"&gt;(&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mstyle scriptlevel=\\\"0\\\"&gt;&lt;mrow&gt;&lt;mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\"&gt;(&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mfrac&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mi&gt;&amp;#x03F5;&lt;/mi&gt;&lt;/mfrac&gt;&lt;mstyle scriptlevel=\\\"0\\\"&gt;&lt;mrow&gt;&lt;mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mstyle scriptlevel=\\\"0\\\"&gt;&lt;mrow&gt;&lt;mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\"&gt;(&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mi&gt;lg&lt;/mi&gt;&lt;mo&gt;&amp;#x2061;&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/mrow&gt;&lt;msup&gt;&lt;mstyle scriptlevel=\\\"0\\\"&gt;&lt;mrow&gt;&lt;mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;/msup&gt;&lt;mstyle scriptlevel=\\\"0\\\"&gt;&lt;mrow&gt;&lt;mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;/math&gt;' role=\\\"presentation\\\" style=\\\"font-size: 100%; display: inline-block; position: relative;\\\" tabindex=\\\"0\\\"><svg aria-hidden=\\\"true\\\" focusable=\\\"false\\\" height=\\\"3.615ex\\\" role=\\\"img\\\" style=\\\"vertical-align: -1.006ex;\\\" viewbox=\\\"0 -1123.3 8719.1 1556.6\\\" width=\\\"20.251ex\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"><g fill=\\\"currentColor\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\"><use x=\\\"0\\\" xlink:href=\\\"#MJMATHI-4F\\\" y=\\\"0\\\"></use><use x=\\\"763\\\" xlink:href=\\\"#MJSZ1-28\\\" y=\\\"-1\\\"></use><use x=\\\"1222\\\" xlink:href=\\\"#MJMATHI-6E\\\" y=\\\"0\\\"></use><use x=\\\"1822\\\" xlink:href=\\\"#MJSZ1-28\\\" y=\\\"-1\\\"></use><use x=\\\"2281\\\" xlink:href=\\\"#MJMAIN-31\\\" y=\\\"0\\\"></use><use x=\\\"3003\\\" xlink:href=\\\"#MJMAIN-2B\\\" y=\\\"0\\\"></use><g transform=\\\"translate(3782,0)\\\"><g transform=\\\"translate(342,0)\\\"><rect height=\\\"60\\\" stroke=\\\"none\\\" width=\\\"473\\\" x=\\\"0\\\" y=\\\"220\\\"></rect><use transform=\\\"scale(0.707)\\\" x=\\\"84\\\" xlink:href=\\\"#MJMAIN-31\\\" y=\\\"556\\\"></use><use transform=\\\"scale(0.707)\\\" x=\\\"131\\\" xlink:href=\\\"#MJMATHI-3F5\\\" y=\\\"-488\\\"></use></g></g><use x=\\\"4718\\\" xlink:href=\\\"#MJSZ1-29\\\" y=\\\"-1\\\"></use><use x=\\\"5176\\\" xlink:href=\\\"#MJSZ1-28\\\" y=\\\"-1\\\"></use><g transform=\\\"translate(5802,0)\\\"><use xlink:href=\\\"#MJMAIN-6C\\\"></use><use x=\\\"278\\\" xlink:href=\\\"#MJMAIN-67\\\" y=\\\"0\\\"></use></g><use x=\\\"6747\\\" xlink:href=\\\"#MJMATHI-6E\\\" y=\\\"0\\\"></use><g transform=\\\"translate(7348,0)\\\"><use x=\\\"0\\\" xlink:href=\\\"#MJSZ1-29\\\" y=\\\"-1\\\"></use><use transform=\\\"scale(0.707)\\\" x=\\\"648\\\" xlink:href=\\\"#MJMAIN-33\\\" y=\\\"816\\\"></use></g><use x=\\\"8260\\\" xlink:href=\\\"#MJSZ1-29\\\" y=\\\"-1\\\"></use></g></svg><span role=\\\"presentation\\\"><math xmlns=\\\"http://www.w3.org/1998/Math/MathML\\\"><mi>O</mi><mstyle scriptlevel=\\\"0\\\"><mrow><mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\">(</mo></mrow></mstyle><mi>n</mi><mstyle scriptlevel=\\\"0\\\"><mrow><mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\">(</mo></mrow></mstyle><mn>1</mn><mo>+</mo><mfrac><mn>1</mn><mi>ϵ</mi></mfrac><mstyle scriptlevel=\\\"0\\\"><mrow><mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\">)</mo></mrow></mstyle><mstyle scriptlevel=\\\"0\\\"><mrow><mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\">(</mo></mrow></mstyle><mi>lg</mi><mo>⁡</mo><mrow><mi>n</mi></mrow><msup><mstyle scriptlevel=\\\"0\\\"><mrow><mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\">)</mo></mrow></mstyle><mn>3</mn></msup><mstyle scriptlevel=\\\"0\\\"><mrow><mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\">)</mo></mrow></mstyle></math></span></span><script type=\\\"math/tex\\\">O\\\\big (n \\\\big (1+\\\\frac{1}{\\\\epsilon }\\\\big ) \\\\big (\\\\lg {n}\\\\big )^3\\\\big )</script></span> time and the routing tables at all the vertices of <i>P</i> together use <span><span style=\\\"\\\"></span><span data-mathml='&lt;math xmlns=\\\"http://www.w3.org/1998/Math/MathML\\\"&gt;&lt;mi&gt;O&lt;/mi&gt;&lt;mstyle scriptlevel=\\\"0\\\"&gt;&lt;mrow&gt;&lt;mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\"&gt;(&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mfrac&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;mi&gt;&amp;#x03F5;&lt;/mi&gt;&lt;/mfrac&gt;&lt;mstyle scriptlevel=\\\"0\\\"&gt;&lt;mrow&gt;&lt;mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\"&gt;(&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mi&gt;lg&lt;/mi&gt;&lt;mo&gt;&amp;#x2061;&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/mrow&gt;&lt;msup&gt;&lt;mstyle scriptlevel=\\\"0\\\"&gt;&lt;mrow&gt;&lt;mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;/msup&gt;&lt;mstyle scriptlevel=\\\"0\\\"&gt;&lt;mrow&gt;&lt;mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\"&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;/mstyle&gt;&lt;/math&gt;' role=\\\"presentation\\\" style=\\\"font-size: 100%; display: inline-block; position: relative;\\\" tabindex=\\\"0\\\"><svg aria-hidden=\\\"true\\\" focusable=\\\"false\\\" height=\\\"3.615ex\\\" role=\\\"img\\\" style=\\\"vertical-align: -1.006ex;\\\" viewbox=\\\"0 -1123.3 7372.3 1556.6\\\" width=\\\"17.123ex\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"><g fill=\\\"currentColor\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\"><use x=\\\"0\\\" xlink:href=\\\"#MJMATHI-4F\\\" y=\\\"0\\\"></use><use x=\\\"763\\\" xlink:href=\\\"#MJSZ1-28\\\" y=\\\"-1\\\"></use><use x=\\\"1222\\\" xlink:href=\\\"#MJMATHI-6E\\\" y=\\\"0\\\"></use><use x=\\\"2044\\\" xlink:href=\\\"#MJMAIN-2B\\\" y=\\\"0\\\"></use><g transform=\\\"translate(2823,0)\\\"><g transform=\\\"translate(342,0)\\\"><rect height=\\\"60\\\" stroke=\\\"none\\\" width=\\\"544\\\" x=\\\"0\\\" y=\\\"220\\\"></rect><use transform=\\\"scale(0.707)\\\" x=\\\"84\\\" xlink:href=\\\"#MJMATHI-6E\\\" y=\\\"564\\\"></use><use transform=\\\"scale(0.707)\\\" x=\\\"181\\\" xlink:href=\\\"#MJMATHI-3F5\\\" y=\\\"-488\\\"></use></g></g><use x=\\\"3830\\\" xlink:href=\\\"#MJSZ1-28\\\" y=\\\"-1\\\"></use><g transform=\\\"translate(4455,0)\\\"><use xlink:href=\\\"#MJMAIN-6C\\\"></use><use x=\\\"278\\\" xlink:href=\\\"#MJMAIN-67\\\" y=\\\"0\\\"></use></g><use x=\\\"5400\\\" xlink:href=\\\"#MJMATHI-6E\\\" y=\\\"0\\\"></use><g transform=\\\"translate(6001,0)\\\"><use x=\\\"0\\\" xlink:href=\\\"#MJSZ1-29\\\" y=\\\"-1\\\"></use><use transform=\\\"scale(0.707)\\\" x=\\\"648\\\" xlink:href=\\\"#MJMAIN-33\\\" y=\\\"816\\\"></use></g><use x=\\\"6913\\\" xlink:href=\\\"#MJSZ1-29\\\" y=\\\"-1\\\"></use></g></svg><span role=\\\"presentation\\\"><math xmlns=\\\"http://www.w3.org/1998/Math/MathML\\\"><mi>O</mi><mstyle scriptlevel=\\\"0\\\"><mrow><mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\">(</mo></mrow></mstyle><mi>n</mi><mo>+</mo><mfrac><mi>n</mi><mi>ϵ</mi></mfrac><mstyle scriptlevel=\\\"0\\\"><mrow><mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\">(</mo></mrow></mstyle><mi>lg</mi><mo>⁡</mo><mrow><mi>n</mi></mrow><msup><mstyle scriptlevel=\\\"0\\\"><mrow><mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\">)</mo></mrow></mstyle><mn>3</mn></msup><mstyle scriptlevel=\\\"0\\\"><mrow><mo maxsize=\\\"1.2em\\\" minsize=\\\"1.2em\\\">)</mo></mrow></mstyle></math></span></span><script type=\\\"math/tex\\\">O\\\\big (n+\\\\frac{n}{\\\\epsilon }\\\\big (\\\\lg {n}\\\\big )^3\\\\big )</script></span> space. The multiplicative stretch factor of the routing path computed by our algorithm is upper bounded by <span><span style=\\\"\\\"></span><span data-mathml='&lt;math xmlns=\\\"http://www.w3.org/1998/Math/MathML\\\"&gt;&lt;mo stretchy=\\\"false\\\"&gt;(&lt;/mo&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mi&gt;&amp;#x03F5;&lt;/mi&gt;&lt;mo stretchy=\\\"false\\\"&gt;)&lt;/mo&gt;&lt;mi&gt;lg&lt;/mi&gt;&lt;mo&gt;&amp;#x2061;&lt;/mo&gt;&lt;mrow&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/mrow&gt;&lt;/math&gt;' role=\\\"presentation\\\" style=\\\"font-size: 100%; display: inline-block; position: relative;\\\" tabindex=\\\"0\\\"><svg aria-hidden=\\\"true\\\" focusable=\\\"false\\\" height=\\\"2.614ex\\\" role=\\\"img\\\" style=\\\"vertical-align: -0.706ex;\\\" viewbox=\\\"0 -821.4 4621.8 1125.3\\\" width=\\\"10.734ex\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"><g fill=\\\"currentColor\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\"><use x=\\\"0\\\" xlink:href=\\\"#MJMAIN-28\\\" y=\\\"0\\\"></use><use x=\\\"389\\\" xlink:href=\\\"#MJMAIN-32\\\" y=\\\"0\\\"></use><use x=\\\"1112\\\" xlink:href=\\\"#MJMAIN-2B\\\" y=\\\"0\\\"></use><use x=\\\"2112\\\" xlink:href=\\\"#MJMATHI-3F5\\\" y=\\\"0\\\"></use><use x=\\\"2519\\\" xlink:href=\\\"#MJMAIN-29\\\" y=\\\"0\\\"></use><g transform=\\\"translate(3075,0)\\\"><use xlink:href=\\\"#MJMAIN-6C\\\"></use><use x=\\\"278\\\" xlink:href=\\\"#MJMAIN-67\\\" y=\\\"0\\\"></use></g><use x=\\\"4021\\\" xlink:href=\\\"#MJMATHI-6E\\\" y=\\\"0\\\"></use></g></svg><span role=\\\"presentation\\\"><math xmlns=\\\"http://www.w3.org/1998/Math/MathML\\\"><mo stretchy=\\\"false\\\">(</mo><mn>2</mn><mo>+</mo><mi>ϵ</mi><mo stretchy=\\\"false\\\">)</mo><mi>lg</mi><mo>⁡</mo><mrow><mi>n</mi></mrow></math></span></span><script type=\\\"math/tex\\\">(2+\\\\epsilon )\\\\lg {n}</script></span>. Here, <span><span style=\\\"\\\"></span><span data-mathml='&lt;math xmlns=\\\"http://www.w3.org/1998/Math/MathML\\\"&gt;&lt;mi&gt;&amp;#x03F5;&lt;/mi&gt;&lt;mo&gt;&amp;gt;&lt;/mo&gt;&lt;mn&gt;0&lt;/mn&gt;&lt;/math&gt;' role=\\\"presentation\\\" style=\\\"font-size: 100%; display: inline-block; position: relative;\\\" tabindex=\\\"0\\\"><svg aria-hidden=\\\"true\\\" focusable=\\\"false\\\" height=\\\"1.912ex\\\" role=\\\"img\\\" style=\\\"vertical-align: -0.205ex;\\\" viewbox=\\\"0 -735.2 2241.1 823.4\\\" width=\\\"5.205ex\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"><g fill=\\\"currentColor\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"0\\\" transform=\\\"matrix(1 0 0 -1 0 0)\\\"><use x=\\\"0\\\" xlink:href=\\\"#MJMATHI-3F5\\\" y=\\\"0\\\"></use><use x=\\\"684\\\" xlink:href=\\\"#MJMAIN-3E\\\" y=\\\"0\\\"></use><use x=\\\"1740\\\" xlink:href=\\\"#MJMAIN-30\\\" y=\\\"0\\\"></use></g></svg><span role=\\\"presentation\\\"><math xmlns=\\\"http://www.w3.org/1998/Math/MathML\\\"><mi>ϵ</mi><mo>&gt;</mo><mn>0</mn></math></span></span><script type=\\\"math/tex\\\">\\\\epsilon > 0</script></span> is an input parameter.</p>\",\"PeriodicalId\":50231,\"journal\":{\"name\":\"Journal of Combinatorial Optimization\",\"volume\":\"128 1\",\"pages\":\"\"},\"PeriodicalIF\":1.1000,\"publicationDate\":\"2025-09-04\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Journal of Combinatorial Optimization\",\"FirstCategoryId\":\"100\",\"ListUrlMain\":\"https://doi.org/10.1007/s10878-025-01345-9\",\"RegionNum\":4,\"RegionCategory\":\"数学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q4\",\"JCRName\":\"COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Combinatorial Optimization","FirstCategoryId":"100","ListUrlMain":"https://doi.org/10.1007/s10878-025-01345-9","RegionNum":4,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q4","JCRName":"COMPUTER SCIENCE, INTERDISCIPLINARY APPLICATIONS","Score":null,"Total":0}
引用次数: 0

摘要

给定一个平面上定义有n个顶点的简单多边形P,我们对P进行预处理,并在P的每个顶点计算路由表。在路由阶段,从P的任何源顶点发出的数据包沿着路由路径被路由到属于P的目标顶点。在P的每个顶点v,直到数据包到达目的地,使用路由表和数据包中的附加信息(包括数据包的目的地顶点标签)来确定下一跳。我们证明了我们的路由方案在O(n(1+ 1λ)(lg∑n)3)O \big (n \big (1+ \frac{1}{\epsilon }\big) \big (\lg n{}\big)^3 \big)时间内构建路由表,并且P所有顶点的路由表一起使用O(n+ nλ (lg∑n)3)O \big (n+ \frac{n}{\epsilon }\big (\lg n{}\big)^3 \big)空间。我们的算法计算的路由路径的乘法拉伸因子的上限是(2+ λ)lg (2+ \epsilon) \lg n。这里,ϵ&gt;0 {}\epsilon >是一个输入参数。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
A divide-and-conquer based preprocessing for routing in a simple polygon

Given a simple polygon P defined with n vertices in the plane, we preprocess P and compute routing tables at every vertex of P. In the routing phase, a packet originating at any source vertex of P is routed to its destination vertex belonging to P. At every vertex v of P along the routing path, until the packet reaches its destination, the next hop is determined using the routing tables at v and the additional information (including the packet’s destination vertex label) in the packet. We show our routing scheme constructs routing tables in O(n(1+1ϵ)(lgn)3) time and the routing tables at all the vertices of P together use O(n+nϵ(lgn)3) space. The multiplicative stretch factor of the routing path computed by our algorithm is upper bounded by (2+ϵ)lgn. Here, ϵ>0 is an input parameter.

求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
Journal of Combinatorial Optimization
Journal of Combinatorial Optimization 数学-计算机:跨学科应用
CiteScore
2.00
自引率
10.00%
发文量
83
审稿时长
6 months
期刊介绍: The objective of Journal of Combinatorial Optimization is to advance and promote the theory and applications of combinatorial optimization, which is an area of research at the intersection of applied mathematics, computer science, and operations research and which overlaps with many other areas such as computation complexity, computational biology, VLSI design, communication networks, and management science. It includes complexity analysis and algorithm design for combinatorial optimization problems, numerical experiments and problem discovery with applications in science and engineering. The Journal of Combinatorial Optimization publishes refereed papers dealing with all theoretical, computational and applied aspects of combinatorial optimization. It also publishes reviews of appropriate books and special issues of journals.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信