{"id":388169,"date":"2024-06-29T07:46:43","date_gmt":"2024-06-29T07:46:43","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=388169"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=388169","title":{"rendered":"<span>Affordable as a Bus, Comfortable as a Taxi: A Promising Type of Public Transport for Large and Medium-Sized Cities.Part2<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/n3\/nv\/yz\/n3nvyzgeibh2vjavva_rvia1nl0.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/n3\/nv\/yz\/n3nvyzgeibh2vjavva_rvia1nl0.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Jean-Claude M\u00e9zi\u00e8res)<\/i><\/p>\n<p>  Translation provided by ChatGPT, <a href=\"https:\/\/habr.com\/ru\/articles\/727118\/\">link to the original article in Russian<\/a><\/p>\n<p>  Link to Part 1: \u00abPreliminary Analysis\u00bb (<a href=\"https:\/\/habr.com\/ru\/articles\/713792\/\">\u0440\u0443 <\/a>\/ <a href=\"https:\/\/habr.com\/en\/articles\/739286\/\">eng <\/a>)<br \/>  Link to Part 2: \u00abExperiments on a Torus\u00bb (<a href=\"https:\/\/habr.com\/ru\/articles\/727118\/\">\u0440\u0443 <\/a>\/ <a href=\"https:\/\/habr.com\/en\/articles\/739990\/\">eng<\/a> )<br \/>  Link to Part 3: \u00abPractically Significant Solutions\u00bb (<a href=\"https:\/\/habr.com\/ru\/articles\/734022\/\">\u0440\u0443 <\/a>\/ <a href=\"https:\/\/habr.com\/en\/articles\/740162\/\">eng <\/a>)<br \/>  Link to \u00abSummary\u00bb (<a href=\"https:\/\/habr.com\/ru\/articles\/738388\/\">\u0440\u0443<\/a> \/ <a href=\"https:\/\/habr.com\/en\/articles\/738864\/\">eng <\/a>)<\/p>\n<h2><font color=\"#0099cc\">Experiments on the Torus<\/font> <br \/>  <\/h2>\n<p>  This is the second part of a study dedicated to exploring new public transportation movement schemes. <a href=\"https:\/\/habr.com\/ru\/articles\/713792\/\">In the first part<\/a>, we examined the simplest non-stop scheme and a single-transfer scheme based on it, which can be implemented in a grid city on a plane. In this part, our city model will be a grid city on a \u00abflat\u00bb torus. Unlike a rectangle, a torus has no edge, and the positions of all points on it are absolutely equivalent. Due to the absence of an edge and (transitive) symmetry, calculations for a toroidal city are simpler, and numerical results are nearly identical to those for a rectangular city on a plane. These two conditions make a toroidal grid city an ideal testing ground for new passenger transportation movement schemes. In this article, we will explore two such schemes on the torus, and in the next one, we will return to the plane and adapt the results obtained here for use under the realistic conditions of a rectangular city.<\/p>\n<p>  The content of this study is not standalone and presupposes familiarity with the first part of the article. To understand Chapter 2, you will need a level of mathematics that corresponds roughly to the first two years of university; for everything else, high school level should suffice. It can be helpful to have a pencil and a piece of paper at hand while reading. If your browser displays formulas incorrectly, try refreshing the page a few times. <a name=\"habracut\"><\/a><\/p>\n<h3><font color=\"#0099cc\">1. Euclidean Torus<\/font> <br \/>  <\/h3>\n<p>  <\/p>\n<h4>1.1 Rectangle with Mirror Teleportation<\/h4>\n<p>  Let&#8217;s take a rectangular sheet of paper <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/> and place it in front of us so that we can refer to its top, bottom, right, and left edges. Then, imagine that little drawn figures can move across the surface of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/>. For these figures, we will establish the following teleportation rules:<\/p>\n<p>  1) every time a figure crosses the top boundary of the sheet at some point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/>, it is immediately teleported to the mirror-symmetric point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8b7\/946\/a77\/8b7946a772441fa96f741336ca29ecf2.svg\" alt=\"$A'$\" data-tex=\"inline\"\/> on the bottom boundary of the sheet, and vice versa;<\/p>\n<p>  2) every time a figure crosses the right boundary of the sheet at some point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/>, it is immediately teleported to the mirror-symmetric point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1ff\/cdf\/ab3\/1ffcdfab3c05a858415fc80dbf608f7b.svg\" alt=\"$B'$\" data-tex=\"inline\"\/> on the left boundary of the sheet, and vice versa;<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/ev\/pf\/x8\/evpfx8thbwmquokbosvho20axvu.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/ev\/pf\/x8\/evpfx8thbwmquokbosvho20axvu.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(figure 1) <\/i><\/p>\n<p>  What will happen if a figure tries to exit the boundary of the sheet through its corner, for example, through the top left? In this case, we will assume that the figure is crossing two sides of the sheet at once: the top and the left, hence both rules 1) and 2) apply. It&#8217;s easy to check that no matter the order of applying these rules, the result will be the same: the figure from the top left corner will be transferred to the bottom right corner.<\/p>\n<h4>1.2 Geometric Interpretation. <\/h4>\n<p>  The teleportation between the opposite edges of the rectangle <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/> can be visually implemented. To do this, first align the bottom edge of the sheet <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/> with the top and glue them together, resulting in a hollow cylinder. Next, this cylinder needs to be significantly flattened, bent into a bagel shape, and its ends glued together. If everything is done correctly, the result will be a torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>. The line where the top edge of the sheet was glued with the bottom will be one of the parallels on this torus, and the line where the right edge was glued with the left \u2014 one of its meridians. The movement of any figure on the original sheet of paper <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/> can now be viewed as its movement on the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> glued from this sheet, and vice versa. With this mapping, the teleportation of a figure between two opposite sides of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/> occurs exactly when its movement on the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> crosses the line where these sides were glued. Due to this duality, we will say that the rectangular sheet with mirror teleportation <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/> is a representation of the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>. Moreover, since every small patch cut from the surface <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> can be laid out on a plane, we will call the torus itself <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> flat.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/qb\/oq\/sy\/qboqsya-ttil8kbcyfx_jp6y7p8.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/qb\/oq\/sy\/qboqsya-ttil8kbcyfx_jp6y7p8.jpeg\" data-blurred=\"true\"\/> <br \/>  (figure 2) <\/p>\n<p>  We have already talked about the meridians and parallels of the torus, let&#8217;s give at least a semi-formal definition to these concepts. Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/> be a rectangle with mirror teleportation, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> \u2014 the torus glued from it. We will call any segment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0c9\/5e7\/5d4\/0c95e75d45410762667f689b0da05c52.svg\" alt=\"$I$\" data-tex=\"inline\"\/> on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/>, the ends of which lie on the sides of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/>, a through segment. Among all through segments, only strictly vertical and strictly horizontal ones have ends connected by the teleportation rule. Such segments will turn into circles when gluing the sheet into a torus. We will call horizontal through segments on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/> and the resulting circles on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> the parallels of the torus, and the vertical through segments on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/> and the circles formed by them on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> \u2014 its meridians.<\/p>\n<h4>1.3 Main Maps. <\/h4>\n<p>  Let&#8217;s glue a flat torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> from a rectangular sheet <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/> and apply some drawing on its surface. If we then carefully cut the adhesive seams, we get the original sheet of paper, which now carries a \u00abcut\u00bb drawing from the torus. In this sense, the original sheet of paper <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/> can be considered as a map of the surface of the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>, similar to those used by humanity to depict, for example, the surface of the Earth. The torus can be cut not only along its adhesive seams. As a result of various cuts, different surfaces and a different number of whole components can be obtained.<\/p>\n<p>  <b>Exercise.<\/b> Try to cut the torus in such a way that you get a doubly twisted paper ring. Try to find such a cut that gives two paper rings, connected in a two-link chain (a fragment of a Christmas garland). A paper ring that is twisted only once is a M\u00f6bius strip. Think about whether a M\u00f6bius strip can be cut out of a torus.<\/p>\n<p>  In cases where a single flat sheet is obtained as a result of cutting a torus, we will call this sheet its map. Of course, not all maps of the torus will have a rectangular shape. Maps that are obtained by cutting the torus along some of its meridian and some of its parallel (i.e., parallel to the adhesive seams), we will call main. It should be obvious that every main map is rectangular.<\/p>\n<p>  Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/> be one of the main maps of the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>. Each point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"\/> on the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/> represents a single point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"\/> on the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>. For internal points on the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/>, this correspondence is one-to-one. At the same time, if point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"\/> lies on any of the sides of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/>, then <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"\/> itself and the point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ee6\/592\/33a\/ee659233abdb83b26456e7c98112635e.svg\" alt=\"$P\u2019$\" data-tex=\"inline\"\/> symmetrically opposite to it on the opposite side of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/> (we will call such pairs of points <i>conjugate<\/i>) represent the same point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"\/> on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>. In particular, all four corner points of the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/> are different representations of the point of intersection of that parallel and that meridian of the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>, along which the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/> was obtained.<\/p>\n<p>  From the very definition of the main maps, it follows that each meridian and parallel on them will look like a through-segment with conjugate ends. We will assume that all main maps are oriented in space in such a way that the parallels on them are horizontal, meridians \u2014 vertical, and the directions up-down, right-left on all of them coincide.<\/p>\n<p>  It is easy to check that for any point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/987\/667\/569\/98766756966b4a9ffdcf8a56ed9a339e.svg\" alt=\"$O$\" data-tex=\"inline\"\/> on the torus, there is exactly one main map in which <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/987\/667\/569\/98766756966b4a9ffdcf8a56ed9a339e.svg\" alt=\"$O$\" data-tex=\"inline\"\/> is strictly in the center. We will denote this map as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ae3\/371\/630\/ae3371630c194d51f737fdab66e35637.svg\" alt=\"$M_O$\" data-tex=\"inline\"\/> and talk about it as the main map, <i>centered<\/i> at the point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/987\/667\/569\/98766756966b4a9ffdcf8a56ed9a339e.svg\" alt=\"$O$\" data-tex=\"inline\"\/>.<\/p>\n<h4>1.4 Transformations of one main map of a torus into another<\/h4>\n<p>  The fact that all main maps are the result of cutting a torus along its parallels and meridians gives us a key to understanding how to obtain one main map from another. Imagine that we have two main maps <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0a0\/c0e\/bf2\/0a0c0ebf25e68a6557d093aa3670b7d9.svg\" alt=\"$M'$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d48\/de8\/d0a\/d48de8d0a32bc5e9652588479e059fd1.svg\" alt=\"$M''$\" data-tex=\"inline\"\/> of the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>. Suppose the first is obtained by cutting the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> along its parallel <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bd0\/d8b\/43b\/bd0d8b43b0861e04e3d4f8543ffeae2b.svg\" alt=\"$p'$\" data-tex=\"inline\"\/> and meridian <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a8b\/a7a\/a5a\/a8ba7aa5a90aedccf9647cfe6aa0e53c.svg\" alt=\"$m'$\" data-tex=\"inline\"\/>, and the second \u2014 by cutting along the parallel <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ff0\/f13\/eec\/ff0f13eec4acff87ad93f8e28210e224.svg\" alt=\"$p''$\" data-tex=\"inline\"\/> and meridian <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/26f\/251\/52d\/26f25152d60cf5491f8a17fb90d274a1.svg\" alt=\"$m''$\" data-tex=\"inline\"\/>. On the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d48\/de8\/d0a\/d48de8d0a32bc5e9652588479e059fd1.svg\" alt=\"$M''$\" data-tex=\"inline\"\/>, the image of the parallel <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ff0\/f13\/eec\/ff0f13eec4acff87ad93f8e28210e224.svg\" alt=\"$p''$\" data-tex=\"inline\"\/> will be the set of all points of the lower and upper edge of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d48\/de8\/d0a\/d48de8d0a32bc5e9652588479e059fd1.svg\" alt=\"$M''$\" data-tex=\"inline\"\/>, the image of the meridian <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/26f\/251\/52d\/26f25152d60cf5491f8a17fb90d274a1.svg\" alt=\"$m''$\" data-tex=\"inline\"\/> \u2014 the set of all points of its left and right edge. As for the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0a0\/c0e\/bf2\/0a0c0ebf25e68a6557d093aa3670b7d9.svg\" alt=\"$M'$\" data-tex=\"inline\"\/>, in the general case, the parallel <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ff0\/f13\/eec\/ff0f13eec4acff87ad93f8e28210e224.svg\" alt=\"$p''$\" data-tex=\"inline\"\/> and the meridian <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/26f\/251\/52d\/26f25152d60cf5491f8a17fb90d274a1.svg\" alt=\"$m''$\" data-tex=\"inline\"\/> will be depicted on it as \u00abordinary\u00bb horizontal and vertical through segments.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/n8\/2k\/t8\/n82kt87jifk4dpkqr8uh6jxrxf0.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/n8\/2k\/t8\/n82kt87jifk4dpkqr8uh6jxrxf0.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Figure 3) <\/i><\/p>\n<p>  To turn the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0a0\/c0e\/bf2\/0a0c0ebf25e68a6557d093aa3670b7d9.svg\" alt=\"$M'$\" data-tex=\"inline\"\/> into the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d48\/de8\/d0a\/d48de8d0a32bc5e9652588479e059fd1.svg\" alt=\"$M''$\" data-tex=\"inline\"\/> it is enough to perform the following actions:<\/p>\n<p>  1) Cut <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0a0\/c0e\/bf2\/0a0c0ebf25e68a6557d093aa3670b7d9.svg\" alt=\"$M'$\" data-tex=\"inline\"\/> along the parallel <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ff0\/f13\/eec\/ff0f13eec4acff87ad93f8e28210e224.svg\" alt=\"$p''$\" data-tex=\"inline\"\/>, swap the lower and upper segments, and then glue them together. The resulting sheet will also be a main map, let&#8217;s denote it as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/de8\/2a7\/914\/de82a791457fed61192dd84c426a9d2c.svg\" alt=\"$M*$\" data-tex=\"inline\"\/>. The lower and upper boundary of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/de8\/2a7\/914\/de82a791457fed61192dd84c426a9d2c.svg\" alt=\"$M*$\" data-tex=\"inline\"\/> will serve as the parallel <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ff0\/f13\/eec\/ff0f13eec4acff87ad93f8e28210e224.svg\" alt=\"$p''$\" data-tex=\"inline\"\/>, as in the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d48\/de8\/d0a\/d48de8d0a32bc5e9652588479e059fd1.svg\" alt=\"$M''$\" data-tex=\"inline\"\/>, and the meridian <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/26f\/251\/52d\/26f25152d60cf5491f8a17fb90d274a1.svg\" alt=\"$m''$\" data-tex=\"inline\"\/>, as in the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0a0\/c0e\/bf2\/0a0c0ebf25e68a6557d093aa3670b7d9.svg\" alt=\"$M'$\" data-tex=\"inline\"\/>, will be its internal through segment. It remains to<br \/>  2) Cut <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/de8\/2a7\/914\/de82a791457fed61192dd84c426a9d2c.svg\" alt=\"$M*$\" data-tex=\"inline\"\/> along the meridian <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/26f\/251\/52d\/26f25152d60cf5491f8a17fb90d274a1.svg\" alt=\"$m''$\" data-tex=\"inline\"\/>, swap the right and left segments, after which glue them back together. The result of these actions will exactly be the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d48\/de8\/d0a\/d48de8d0a32bc5e9652588479e059fd1.svg\" alt=\"$M''$\" data-tex=\"inline\"\/>.<\/p>\n<h4>1.5 Curves on the torus<\/h4>\n<p>  Let&#8217;s discuss how the main maps depict curves (continuous lines) on the surface of the torus.<br \/>  Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/> be the main map of the flat torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>, and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/460\/323\/26a\/46032326a8087c7468a655545c6ff937.svg\" alt=\"$\\gamma^M$\" data-tex=\"inline\"\/> be an arbitrary curve on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/>. If we glue the opposite edges of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/>, we will turn it back into <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>, while the curve <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/460\/323\/26a\/46032326a8087c7468a655545c6ff937.svg\" alt=\"$\\gamma^M$\" data-tex=\"inline\"\/> will become a curve on the torus. Thus, each curve on the main map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/> can be thought of as a curve on the surface of the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>. In the opposite direction, the latter statement is not true, as not every curve on the surface of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> will become a curve on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/> after transforming it into the main map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/>.<\/p>\n<p>  Suppose <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/> is to be obtained by cutting <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> along its parallel <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"\/> and meridian <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/>. Consider an arbitrary curve <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/92f\/ffd\/3ed\/92fffd3ede1f81a476dc69a3d1ae0b6c.svg\" alt=\"$\\gamma^T$\" data-tex=\"inline\"\/> on the surface of the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>. The points of intersection of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/92f\/ffd\/3ed\/92fffd3ede1f81a476dc69a3d1ae0b6c.svg\" alt=\"$\\gamma^T$\" data-tex=\"inline\"\/> with the lines of future cuts <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/> divide it into a sequence of segments <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/61c\/c36\/46b\/61cc3646b82441cb57aa88fbd4dc1ab7.svg\" alt=\"${\\gamma}_1, \u2026 {\\gamma}_N$\" data-tex=\"inline\"\/>. Each of these segments will become an independent curve on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/> after cutting <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>, and their sequence will have the property that the starting point of each next curve will be conjugate to the end point of the previous one. This time, the opposite statement is also true: any sequence <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bcd\/284\/9a9\/bcd2849a938a7b7a15833f23696d255f.svg\" alt=\"${\\gamma^M}_1, \u2026 {\\gamma^M}_N$\" data-tex=\"inline\"\/> of curves on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/>, in which the starting point of each next curve is conjugate to the end point of the previous one, will turn into some single curve <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/92f\/ffd\/3ed\/92fffd3ede1f81a476dc69a3d1ae0b6c.svg\" alt=\"$\\gamma^T$\" data-tex=\"inline\"\/> on the surface of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> after gluing the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"\/> into the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>. In this sense, we will say that the sequence of curves <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/61c\/c36\/46b\/61cc3646b82441cb57aa88fbd4dc1ab7.svg\" alt=\"${\\gamma}_1, \u2026 {\\gamma}_N$\" data-tex=\"inline\"\/> defines a curve <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/92f\/ffd\/3ed\/92fffd3ede1f81a476dc69a3d1ae0b6c.svg\" alt=\"$\\gamma^T$\" data-tex=\"inline\"\/> on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/t2\/2-\/bc\/t22-bcnjoo6w6qdzlza3t10z2fm.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/t2\/2-\/bc\/t22-bcnjoo6w6qdzlza3t10z2fm.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Figure 4) <\/i><\/p>\n<p>  For an arbitrary curve <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/> on the surface of a flat torus of an arbitrary meridian <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/> and parallel <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"\/>, we can construct the projection of the set of points <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/> onto <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"\/> along <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/>, denote it as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ef1\/2d1\/435\/ef12d143514de00fc92c1d78654e0c41.svg\" alt=\"$\\gamma^p$\" data-tex=\"inline\"\/> and the projection of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/> onto m along <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"\/>, which we will denote as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6a2\/fc7\/a0e\/6a2fc7a0ed2d305704d0bacc8178d71f.svg\" alt=\"$\\gamma^m$\" data-tex=\"inline\"\/>. The sets <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ef1\/2d1\/435\/ef12d143514de00fc92c1d78654e0c41.svg\" alt=\"$\\gamma^p$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6a2\/fc7\/a0e\/6a2fc7a0ed2d305704d0bacc8178d71f.svg\" alt=\"$\\gamma^m$\" data-tex=\"inline\"\/> will either be segments on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/>, or completely coincide with <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"\/> or <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/>. We will call the length of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ef1\/2d1\/435\/ef12d143514de00fc92c1d78654e0c41.svg\" alt=\"$\\gamma^p$\" data-tex=\"inline\"\/> the <i>width<\/i> or <i>horizontal span<\/i> of the curve <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/>, and the length of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6a2\/fc7\/a0e\/6a2fc7a0ed2d305704d0bacc8178d71f.svg\" alt=\"$\\gamma^m$\" data-tex=\"inline\"\/> \u2014 its <i>height<\/i> or its <i>vertical span<\/i>. From the properties of parallels, it follows that the definition of horizontal and vertical span does not depend on the choice of a specific <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/>.<\/p>\n<p>  When projecting passenger transport schemes, we will always strive to ensure that each trip on this transport takes as little time as possible. This goal cannot be achieved if one does not make sure that the routes of travel on such transport are in some sense the shortest curves between the points of their beginning and end, or curves close to the shortest ones. Let&#8217;s try to understand what the shortest curves of the flat torus look like, in particular, how they are depicted on its main maps.<\/p>\n<h4>1.6 Shortest paths on the torus.<\/h4>\n<p>  In the survey of shortest routes, we will be interested in two cases: the shortest routes among all the curves on the torus and the shortest routes among so-called \u00abstepped\u00bb curves. We will call such polygons \u00abstepped\u00bb, where each segment is either a horizontal or vertical segment (a piece of parallel or meridian of the torus).<\/p>\n<p>  The shortest route from point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> to point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> in the class of all curves on the plane, or within a rectangle is, as is known, (directed) segment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/87c\/ea9\/78587cea9d68e93678392d15a4b1ee9b.svg\" alt=\"$AB$\" data-tex=\"inline\"\/> (recall why). To formulate which routes on the plane are the shortest in the class of stepped curves, let&#8217;s note that each stepped route defines a certain direction on each of its straight segments. It is not difficult to check that on a plane or inside a rectangle, the stepped route <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/> is the shortest if and only if all its horizontal segments, as well as all its vertical segments, are directed in one direction (see paragraph 4.4 part 1). For example, if point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> is above and to the right of point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/>, then the shortest stepped routes from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> will be exactly those where each horizontal segment \u00ablooks\u00bb to the right and vertical ones \u2014 upwards (all steps \u00ablead\u00bb to the right up).<\/p>\n<p>  If the plane is equipped with Cartesian coordinates with a horizontal axis <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/82c\/b9a\/e36\/82cb9ae36348c7c1ee2572ceefe2a3ba.svg\" alt=\"$Ox$\" data-tex=\"inline\"\/> and a vertical axis <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/037\/08a\/9e1\/03708a9e122f1b29cfe7ad022055f3ea.svg\" alt=\"$Oy$\" data-tex=\"inline\"\/>, then the above-written criterion of shortestness can be reformulated in another interesting way. We will call an arbitrary route <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/> monotonic if the movement of a point along $\\gamma$ is accompanied by a (non-strictly) monotonic change in its coordinates <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4cc\/fd4\/32e\/4ccfd432ea4f2a64f3a5c8c7378517af.svg\" alt=\"$x$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8f8\/c2f\/a70\/8f8c2fa70a7019d42baacce3ac56acd3.svg\" alt=\"$y$\" data-tex=\"inline\"\/>. Try to convince yourself that on a coordinate plane, the stepped route <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/> will be the shortest if and only if it is monotonic. The length of any monotonic stepped curve with ends <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> equals the sum of the lengths of the vertical and horizontal components (projections) of the vector <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b08\/c0e\/d10\/b08c0ed107c580ca66bdae4bf7f3e9c3.svg\" alt=\"$\\vec {AB}$\" data-tex=\"inline\"\/>.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/v-\/rp\/nt\/v-rpntz0tg24iypfvqoxehqxste.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\" data-src=\"https:\/\/habrastorage.org\/webt\/v-\/rp\/nt\/v-rpntz0tg24iypfvqoxehqxste.jpeg\" data-blurred=\"true\"\/><\/div>\n<p>  <i>(Figure 5)<\/i><\/p>\n<p>  On the flat torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>, things are a bit more complicated with the shortest paths. For instance, if you take a rectangular sheet <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"\/> with mirror teleportation between the edges as a representation of the torus, you can indicate such pairs of points <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> on it that the path from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> consisting of two or even three segments and teleportations between their ends will be shorter than the segment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/344\/1f1\/6f8\/3441f16f85d09048a5d86df4ced352bf.svg\" alt=\"$AB^{\\Pi}$\" data-tex=\"inline\"\/>.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/vd\/xb\/oq\/vdxboqal45gxvb7wyy7hvusjpr8.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/vd\/xb\/oq\/vdxboqal45gxvb7wyy7hvusjpr8.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Figure 6)<\/i><\/p>\n<p>  Fortunately, by using a special choice of the main map, the issue of constructing the shortest paths on the torus can be greatly simplified. It turns out that if <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57b\/745\/26e\/57b74526e2ee6c676e98dff4f1f81e07.svg\" alt=\"$M_A$\" data-tex=\"inline\"\/> is the main map of the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>, centered at its point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/>, then for any point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/>, the shortest route that connects <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57b\/745\/26e\/57b74526e2ee6c676e98dff4f1f81e07.svg\" alt=\"$M_A$\" data-tex=\"inline\"\/> will also be the shortest route that connects <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>. Conversely, every shortest route between <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> will be depicted on the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57b\/745\/26e\/57b74526e2ee6c676e98dff4f1f81e07.svg\" alt=\"$M_A$\" data-tex=\"inline\"\/> as its shortest between <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/>. This is equally true for routes shortest in the class of all curves, and for routes shortest in the class of stepped curves. In particular, the shortest line on the torus between <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> will be depicted on the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57b\/745\/26e\/57b74526e2ee6c676e98dff4f1f81e07.svg\" alt=\"$M_A$\" data-tex=\"inline\"\/> in the form of a segment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/559\/8f3\/360\/5598f33601a9e24d52e5c22bdf7eda27.svg\" alt=\"$AB^{M_A}$\" data-tex=\"inline\"\/>, or rather, in the form of a segment connecting point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> with one of those points <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/42f\/cf7\/07c\/42fcf707c9d1adbbbab59646bb069c11.svg\" alt=\"$B^{M_A}$\" data-tex=\"inline\"\/> that represent <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> on the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57b\/745\/26e\/57b74526e2ee6c676e98dff4f1f81e07.svg\" alt=\"$M_A$\" data-tex=\"inline\"\/>. The shortest stepped curve on the torus with ends <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> will be depicted on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57b\/745\/26e\/57b74526e2ee6c676e98dff4f1f81e07.svg\" alt=\"$M_A$\" data-tex=\"inline\"\/> as one of the monotonic stepped curves between <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and (one of the images of) <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/>. The reasoning behind these assertions is as follows:<\/p>\n<p>  The shortest path on the torus from point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> to point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> on the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57b\/745\/26e\/57b74526e2ee6c676e98dff4f1f81e07.svg\" alt=\"$M_A$\" data-tex=\"inline\"\/> appears either as a regular curve <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/>, or as a curve with teleportations <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/efd\/7de\/9e8\/efd7de9e87bd68d8fd94fa44d0e390d5.svg\" alt=\"$\\gamma_1 *... * \\gamma_k$\" data-tex=\"inline\"\/>. The fact that the second case is essentially impossible (only if all <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f98\/f02\/14e\/f98f0214efba2eac1ae55f6d2c88d599.svg\" alt=\"$\\gamma_i$\" data-tex=\"inline\"\/> except for <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8ad\/bde\/2be\/8adbde2befdeb40fb2c96c62d245ba9d.svg\" alt=\"$\\gamma_1$\" data-tex=\"inline\"\/> consist of a single point) is easily proven by induction on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"\/>.<\/p>\n<p>  If <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/738\/f4e\/57e\/738f4e57e0acafbb8c08262daa540b90.svg\" alt=\"$k = 1$\" data-tex=\"inline\"\/>, then there is nothing to prove.<br \/>  At <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/371\/e5f\/40c\/371e5f40c3c624dc8d237a291060c142.svg\" alt=\"$k = 2$\" data-tex=\"inline\"\/> on the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57b\/745\/26e\/57b74526e2ee6c676e98dff4f1f81e07.svg\" alt=\"$M_A$\" data-tex=\"inline\"\/> we have two curves: <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8ad\/bde\/2be\/8adbde2befdeb40fb2c96c62d245ba9d.svg\" alt=\"$\\gamma_1$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/75f\/76b\/195\/75f76b195172a081c6ffe59d95298d45.svg\" alt=\"$\\gamma_2$\" data-tex=\"inline\"\/>, glued together with a single teleportation. Using your knowledge of school geometry, show that, both in the class of all curves and in the class of stepped curves, replacing <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8ad\/bde\/2be\/8adbde2befdeb40fb2c96c62d245ba9d.svg\" alt=\"$\\gamma_1$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/75f\/76b\/195\/75f76b195172a081c6ffe59d95298d45.svg\" alt=\"$\\gamma_2$\" data-tex=\"inline\"\/> with a single shortest curve for <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57b\/745\/26e\/57b74526e2ee6c676e98dff4f1f81e07.svg\" alt=\"$M_A$\" data-tex=\"inline\"\/> from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/>, certainly won&#8217;t make the path between points <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> longer.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/he\/i8\/ub\/hei8ubsxbbxd05mixaybfhgqvgo.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\" data-src=\"https:\/\/habrastorage.org\/webt\/he\/i8\/ub\/hei8ubsxbbxd05mixaybfhgqvgo.jpeg\" data-blurred=\"true\"\/><\/div>\n<p>  <i>(Figure 7) <\/i><\/p>\n<p>  Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1ba\/815\/9a5\/1ba8159a5f01bd5355766affffcd9ff3.svg\" alt=\"$k = N > 2$&#187; data-tex=&#187;inline&#187;\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/30e\/e3b\/bd4\/30ee3bbd41dc61066164a3b67dccede0.svg\" alt=\"$\\gamma_1 *... * \\gamma_N$\" data-tex=\"inline\"\/> is the representation by the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57b\/745\/26e\/57b74526e2ee6c676e98dff4f1f81e07.svg\" alt=\"$M_A$\" data-tex=\"inline\"\/> of the shortest path from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/>. We denote the end of the segment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8ad\/bde\/2be\/8adbde2befdeb40fb2c96c62d245ba9d.svg\" alt=\"$\\gamma_1$\" data-tex=\"inline\"\/> as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/de4\/c77\/250\/de4c77250f5d05965bd5e686329d3d4e.svg\" alt=\"$O_1$\" data-tex=\"inline\"\/>, the beginning of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/75f\/76b\/195\/75f76b195172a081c6ffe59d95298d45.svg\" alt=\"$\\gamma_2$\" data-tex=\"inline\"\/> as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d57\/91b\/f8d\/d5791bf8d859bdcbb6eaaab6fe6cb80a.svg\" alt=\"$O_2$\" data-tex=\"inline\"\/>, and the end of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/75f\/76b\/195\/75f76b195172a081c6ffe59d95298d45.svg\" alt=\"$\\gamma_2$\" data-tex=\"inline\"\/> as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3db\/dae\/fa6\/3dbdaefa6c99d4449c6d8c27da95d5c6.svg\" alt=\"$O_3$\" data-tex=\"inline\"\/>. Since any segment of the shortest path is obviously the shortest path itself, a splice of segments <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8ad\/bde\/2be\/8adbde2befdeb40fb2c96c62d245ba9d.svg\" alt=\"$\\gamma_1$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/75f\/76b\/195\/75f76b195172a081c6ffe59d95298d45.svg\" alt=\"$\\gamma_2$\" data-tex=\"inline\"\/> will be a two-segment shortest between point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3db\/dae\/fa6\/3dbdaefa6c99d4449c6d8c27da95d5c6.svg\" alt=\"$O_3$\" data-tex=\"inline\"\/>. But if so, then we can use the statement proven for <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/371\/e5f\/40c\/371e5f40c3c624dc8d237a291060c142.svg\" alt=\"$k=2$\" data-tex=\"inline\"\/> and replace the path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/93e\/46a\/f34\/93e46af342a97146c52a2ec2f9f0ed02.svg\" alt=\"$\\gamma_1 * \\gamma_2$\" data-tex=\"inline\"\/> with a single-segment path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/353\/503\/935\/353503935df388bcec1b9f5dfdd2bd5a.svg\" alt=\"$\\gamma_2'$\" data-tex=\"inline\"\/> of the same or shorter length. By doing this, we get the path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fba\/1b6\/877\/fba1b6877fa39bc9e5d13346dd201113.svg\" alt=\"$\\gamma_2\u2019 *... * \\gamma_N$\" data-tex=\"inline\"\/>, which connects <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/>, consists only of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/82f\/d29\/8de\/82fd298de2070d8826b16b30f4a5b164.svg\" alt=\"$(N-1)$\" data-tex=\"inline\"\/> segments and is no longer than the path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/30e\/e3b\/bd4\/30ee3bbd41dc61066164a3b67dccede0.svg\" alt=\"$\\gamma_1 *... * \\gamma_N$\" data-tex=\"inline\"\/>, i.e., it is the shortest.<\/p>\n<h4>1.7 Small Rectangles<\/h4>\n<p>  Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> be two arbitrary points on the surface of the torus, which do not lie on the same meridian or parallel, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/789\/9a3\/c82\/7899a3c82c504ce77a10a78a05347ef7.svg\" alt=\"$m_A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c4b\/0f8\/993\/c4b0f8993e7571d2c2190ed6824b90b5.svg\" alt=\"$p_A$\" data-tex=\"inline\"\/> are the only meridian and parallel passing through the point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c98\/b1e\/9d2\/c98b1e9d2bcaa334c75348f2d266c31b.svg\" alt=\"$m_B$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7b9\/b73\/9b7\/7b9b739b75bd6b0350c1a0bb45da739d.svg\" alt=\"$p_B$\" data-tex=\"inline\"\/> are the only meridian and parallel passing through the point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/>. Together, the curves <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/789\/9a3\/c82\/7899a3c82c504ce77a10a78a05347ef7.svg\" alt=\"$m_A$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c4b\/0f8\/993\/c4b0f8993e7571d2c2190ed6824b90b5.svg\" alt=\"$p_A$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c98\/b1e\/9d2\/c98b1e9d2bcaa334c75348f2d266c31b.svg\" alt=\"$m_B$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7b9\/b73\/9b7\/7b9b739b75bd6b0350c1a0bb45da739d.svg\" alt=\"$p_B$\" data-tex=\"inline\"\/> divide the surface of the torus into 4 (connected) areas, each of which, with an appropriate choice of the main map, will be depicted on it as a rectangle. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/u2\/yu\/au\/u2yuau3ipflb0uypwjsq9ryrocu.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/u2\/yu\/au\/u2yuau3ipflb0uypwjsq9ryrocu.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Figure 8) <\/i><\/p>\n<p>  In general, only one of these four rectangles will have each of the horizontal sides less than half a parallel, and the length of each vertical side will be less than half a meridian. This (generally) single rectangle we will call a small rectangle, stretched over the points <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/>, and denote as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2d7\/bc0\/33a\/2d7bc033ab2554521f82e17181a801cb.svg\" alt=\"$\\Pi (AB)$\" data-tex=\"inline\"\/>.<\/p>\n<p>  The utility of the concept of a small rectangle lies in the following. No matter what point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> is on the surface of the torus, the rectangle <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2d7\/bc0\/33a\/2d7bc033ab2554521f82e17181a801cb.svg\" alt=\"$\\Pi (AB)$\" data-tex=\"inline\"\/> will be depicted as a single figure on the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57b\/745\/26e\/57b74526e2ee6c676e98dff4f1f81e07.svg\" alt=\"$M_A$\" data-tex=\"inline\"\/>. Consider the case when there is only one small rectangle stretched over <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/>. It is evident that any shortest curve between <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> within <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2d7\/bc0\/33a\/2d7bc033ab2554521f82e17181a801cb.svg\" alt=\"$\\Pi (AB)$\" data-tex=\"inline\"\/>, whether in the class of stepwise curves or all curves, is also the shortest in the same class on the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57b\/745\/26e\/57b74526e2ee6c676e98dff4f1f81e07.svg\" alt=\"$M_A$\" data-tex=\"inline\"\/> and vice versa. Since the set of shortest curves between <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/> on the torus coincides with the set of shortest curves built between these points on the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57b\/745\/26e\/57b74526e2ee6c676e98dff4f1f81e07.svg\" alt=\"$M_A$\" data-tex=\"inline\"\/>, all these curves are the shortest within <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2d7\/bc0\/33a\/2d7bc033ab2554521f82e17181a801cb.svg\" alt=\"$\\Pi (AB)$\" data-tex=\"inline\"\/>. Thus, small rectangles allow us to reason about the shortest paths on the torus without referring to its maps.<\/p>\n<h3><font color=\"#0099cc\">2*. Unmatched Taxi with Geodesic Route<\/font> <br \/>  <\/h3>\n<p>  <\/p>\n<h4>2.1 The Basic Dilemma of Mass Transport with a Variable Route <\/h4>\n<p>  A trip in a personal vehicle can always be accomplished along the shortest route (among the possible ones). If we want to create mass transport that could compete in speed with a personal car, we should strive for the route of each of its passengers not to be too much longer than the shortest. At the same time, it is intuitively clear that massiveness, i.e., the average number of passengers in the cabin, and how close the routes of these passengers are to the shortest, are opposing qualities (look at how <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"\/> depends on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/91b\/9ea\/0de\/91b9ea0dea5c5e29ac154df74d97d53d.svg\" alt=\"$\\lambda$\" data-tex=\"inline\"\/> in the schemes discussed in part 1). The aim of this chapter is, albeit indirectly and very roughly, to estimate to what extent these two opposing qualities can be combined. In fact, in this chapter, we will try to answer the following two questions:<\/p>\n<p>  1) How should the shared taxi, the pick-up points of its future passengers, and the drop-off points of those passengers who have already boarded it be arranged relative to each other so that it could transport each of its clients along his shortest route?<\/p>\n<p>  2) Suppose there is only one car operating in the city and the requirement remains that each passenger&#8217;s trip should follow his shortest route. How large can we make the average number of passengers transported by this car at the same time if we choose the right route for it?<\/p>\n<h4> 2.2 Relative Position of Passenger Boarding and Drop-off Points in a Geodesic Taxi. <\/h4>\n<p>  Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c7\/19a\/52a\/5c719a52ad07cb22f17cce6138ad1c65.svg\" alt=\"$X(t)$\" data-tex=\"inline\"\/> be the point in the grid city where the shared taxi is located at time <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/915\/acb\/b16\/915acbb16ed63f15541d3e0bda30d453.svg\" alt=\"$t$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/57a\/74e\/ff3\/57a74eff3cd4d692ae9a4b48dfac1689.svg\" alt=\"$Q_1, \u2026, Q_n$\" data-tex=\"inline\"\/> are the drop-off points of its current passengers, numbered in order of increasing the length of the shortest path to them from point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c7\/19a\/52a\/5c719a52ad07cb22f17cce6138ad1c65.svg\" alt=\"$X(t)$\" data-tex=\"inline\"\/>. At any time, we will consider the positions of points <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c7\/19a\/52a\/5c719a52ad07cb22f17cce6138ad1c65.svg\" alt=\"$X(t)$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/206\/63c\/ba2\/20663cba2667867cc6b3cdcbbb72b69a.svg\" alt=\"$Q_1 \u2026, Q_n$\" data-tex=\"inline\"\/> relative to the main map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/487\/59d\/def\/48759ddef7ede1c8b45de19d5a4cf63b.svg\" alt=\"$M_{X(t)}$\" data-tex=\"inline\"\/> (following the car with a movie camera so that the car remains in the center of its field of view at all times). For convenience, we will even assume that as if the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/487\/59d\/def\/48759ddef7ede1c8b45de19d5a4cf63b.svg\" alt=\"$M_{X(t)}$\" data-tex=\"inline\"\/> is always the same for us, and the image on it gradually changes over time (what was said could be given a precise mathematical meaning, but I consider it superfluous to do so here).<\/p>\n<p>  Consider some moment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/915\/acb\/b16\/915acbb16ed63f15541d3e0bda30d453.svg\" alt=\"$t$\" data-tex=\"inline\"\/> when the car has not yet reached <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/20f\/0d9\/6f5\/20f0d96f574328af30517742ebda8a33.svg\" alt=\"$Q_1$\" data-tex=\"inline\"\/>. In general, points <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c78\/c82\/ee6\/c78c82ee600fe0cc15446d5f65597e4b.svg\" alt=\"$Q_n$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c7\/19a\/52a\/5c719a52ad07cb22f17cce6138ad1c65.svg\" alt=\"$X(t)$\" data-tex=\"inline\"\/> do not lie on the same meridian or parallel, so by rotating the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/487\/59d\/def\/48759ddef7ede1c8b45de19d5a4cf63b.svg\" alt=\"$M_{X(t)}$\" data-tex=\"inline\"\/> by <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/31c\/95b\/e54\/31c95be540a3716fb3afc460b6002e95.svg\" alt=\"$90$\" data-tex=\"inline\"\/> degrees, we can always ensure that <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c78\/c82\/ee6\/c78c82ee600fe0cc15446d5f65597e4b.svg\" alt=\"$Q_n$\" data-tex=\"inline\"\/> is strictly above and strictly to the right of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c7\/19a\/52a\/5c719a52ad07cb22f17cce6138ad1c65.svg\" alt=\"$X(t)$\" data-tex=\"inline\"\/>. Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/> be the stepwise route by which our car should get from point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c7\/19a\/52a\/5c719a52ad07cb22f17cce6138ad1c65.svg\" alt=\"$X(t)$\" data-tex=\"inline\"\/> to point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c78\/c82\/ee6\/c78c82ee600fe0cc15446d5f65597e4b.svg\" alt=\"$Q_n$\" data-tex=\"inline\"\/>. By condition, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/> must be one of the shortest stepwise curves between <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c7\/19a\/52a\/5c719a52ad07cb22f17cce6138ad1c65.svg\" alt=\"$X(t)$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c78\/c82\/ee6\/c78c82ee600fe0cc15446d5f65597e4b.svg\" alt=\"$Q_n$\" data-tex=\"inline\"\/>, from which it follows that:<\/p>\n<p>  1) the curve <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$ \\gamma$\" data-tex=\"inline\"\/> is monotone in the rectangle <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/487\/59d\/def\/48759ddef7ede1c8b45de19d5a4cf63b.svg\" alt=\"$M_{X(t)}$\" data-tex=\"inline\"\/>, the path along it on each linear section is directed either to the right or upwards (paragraph 4.4 part 1);<\/p>\n<p>  2) since the path of the car from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c7\/19a\/52a\/5c719a52ad07cb22f17cce6138ad1c65.svg\" alt=\"$X(t)$\" data-tex=\"inline\"\/> to all other drop-off points <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/caa\/fe9\/368\/caafe93683cd87fa894fec6b8b90f07d.svg\" alt=\"$Q_2, \u2026, Q_{n-1}$\" data-tex=\"inline\"\/> is also the shortest by condition, then all these points belong to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/> (can you explain why?).<\/p>\n<p>  To describe which routes between <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c7\/19a\/52a\/5c719a52ad07cb22f17cce6138ad1c65.svg\" alt=\"$X(t)$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c78\/c82\/ee6\/c78c82ee600fe0cc15446d5f65597e4b.svg\" alt=\"$Q_n$\" data-tex=\"inline\"\/> are permissible for the geodesic taxi and which additional passengers it can pick up along the way, consider small rectangles <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/43b\/1aa\/e64\/43b1aae641ab02b57f21a80d71748e9d.svg\" alt=\"$\\Pi_1 = \\Pi (Q_1,Q_2), \u2026, Pi_{n-1} = \\Pi (Q_{n-1},Q_n)$\" data-tex=\"inline\"\/>, as well as a small rectangle <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/00b\/aca\/654\/00baca65400f7d17e936b4a728b77d89.svg\" alt=\"$\\Pi_0 = \\Pi (X(t),Q_1)$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/517\/eac\/afa\/517eacafacf4a1ca568e8cafc7adf156.svg\" alt=\"$\\Pi_n = \\Pi (Q_n, C^{u,r}(t))$\" data-tex=\"inline\"\/>, where <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/526\/084\/d82\/526084d824e52b5c1b50a33633d6784b.svg\" alt=\"$C^{u,r}(t)$\" data-tex=\"inline\"\/> is the point in the upper right corner of the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/487\/59d\/def\/48759ddef7ede1c8b45de19d5a4cf63b.svg\" alt=\"$M_{X(t)}$\" data-tex=\"inline\"\/> at time <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/915\/acb\/b16\/915acbb16ed63f15541d3e0bda30d453.svg\" alt=\"$t$\" data-tex=\"inline\"\/>. We will call all these rectangles travel rectangles.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/yb\/ce\/jy\/ybcejyqbh34a5wvrmnshmzobypu.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/yb\/ce\/jy\/ybcejyqbh34a5wvrmnshmzobypu.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Fig 9) <\/i><\/p>\n<p>  From 1), 2), and the results of paragraph 1.7 we can assert the following:<br \/>  a) any permissible route of a geodesic taxi between <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c7\/19a\/52a\/5c719a52ad07cb22f17cce6138ad1c65.svg\" alt=\"$X(t)$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c78\/c82\/ee6\/c78c82ee600fe0cc15446d5f65597e4b.svg\" alt=\"$Q_n$\" data-tex=\"inline\"\/> lies entirely inside the rectangles <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/743\/72c\/8aa\/74372c8aa4b3b0be72787c76bd1a5800.svg\" alt=\"$\\Pi_0, \\Pi_1, \u2026, \\Pi_{n-1}$\" data-tex=\"inline\"\/> and within each of these rectangles it is the shortest stepwise curve between its lower left and upper right corner;<br \/>  b) conversely, let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/28d\/dc5\/e71\/28ddc5e71dbb5d5e13219895cc163122.svg\" alt=\"$\\gamma_0$\" data-tex=\"inline\"\/> be a monotonous stepwise route from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c7\/19a\/52a\/5c719a52ad07cb22f17cce6138ad1c65.svg\" alt=\"$X(t)$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/20f\/0d9\/6f5\/20f0d96f574328af30517742ebda8a33.svg\" alt=\"$Q_1$\" data-tex=\"inline\"\/> within <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/007\/1ed\/1ee\/0071ed1ee567f1b240b17b5a6dbc95bc.svg\" alt=\"$\\Pi_0$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8ad\/bde\/2be\/8adbde2befdeb40fb2c96c62d245ba9d.svg\" alt=\"$\\gamma_1$\" data-tex=\"inline\"\/> be a monotonous stepwise route from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/20f\/0d9\/6f5\/20f0d96f574328af30517742ebda8a33.svg\" alt=\"$Q_1$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/12c\/c2b\/625\/12cc2b6251fb97db3857fc12811284b0.svg\" alt=\"$Q_2$\" data-tex=\"inline\"\/> within <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f57\/21a\/d39\/f5721ad39daa67ad0c653ce23ec331c8.svg\" alt=\"$\\Pi_1, \u2026, \\gamma_{n \u2013 1}$\" data-tex=\"inline\"\/> be a monotonous stepwise route from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a90\/f54\/b78\/a90f54b7819224e4716078b198c2c0ae.svg\" alt=\"$Q_{n-1}$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c78\/c82\/ee6\/c78c82ee600fe0cc15446d5f65597e4b.svg\" alt=\"$Q_n$\" data-tex=\"inline\"\/> within <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3cf\/b5e\/708\/3cfb5e7082d01c541c5e5f2aed8b33d4.svg\" alt=\"$\\Pi_{n -1}$\" data-tex=\"inline\"\/>, then their \u00abglueing\u00bb <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f3f\/9ee\/118\/f3f9ee118d03117bed154a92d139b224.svg\" alt=\"$\\gamma = \\gamma_0 * \\gamma_1 * \u2026 * \\gamma_{n \u2013 1}$\" data-tex=\"inline\"\/> is a permissible route for the geodesic taxi from point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c7\/19a\/52a\/5c719a52ad07cb22f17cce6138ad1c65.svg\" alt=\"$X(t)$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c78\/c82\/ee6\/c78c82ee600fe0cc15446d5f65597e4b.svg\" alt=\"$Q_n$\" data-tex=\"inline\"\/>;<br \/>  c) until the taxi reaches <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/20f\/0d9\/6f5\/20f0d96f574328af30517742ebda8a33.svg\" alt=\"$Q_1$\" data-tex=\"inline\"\/>, it can only pick up travelers whose boarding points are in <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/007\/1ed\/1ee\/0071ed1ee567f1b240b17b5a6dbc95bc.svg\" alt=\"$\\Pi_0$\" data-tex=\"inline\"\/>. A traveler who is at point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c7\/19a\/52a\/5c719a52ad07cb22f17cce6138ad1c65.svg\" alt=\"$X(t)$\" data-tex=\"inline\"\/> at time <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/915\/acb\/b16\/915acbb16ed63f15541d3e0bda30d453.svg\" alt=\"$t$\" data-tex=\"inline\"\/> can be delivered by this car to his destination point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/52e\/8ba\/552\/52e8ba552c53ad7407ed63469f37065a.svg\" alt=\"$Q_{new}$\" data-tex=\"inline\"\/> if and only if point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/52e\/8ba\/552\/52e8ba552c53ad7407ed63469f37065a.svg\" alt=\"$Q_{new}$\" data-tex=\"inline\"\/> is within one of the travel rectangles <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/086\/c25\/9a9\/086c259a99ab68c398f5f307ec2c6028.svg\" alt=\"$\\Pi_0, \\Pi_1, \u2026, \\Pi_{n-1}, \\Pi_n$\" data-tex=\"inline\"\/> when considering them as they are at this moment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/915\/acb\/b16\/915acbb16ed63f15541d3e0bda30d453.svg\" alt=\"$t$\" data-tex=\"inline\"\/>.<\/p>\n<p>  To answer what the average value of n is, we need to know the characteristic size of the travel rectangles. The area, length, and height of the travel rectangle are random variables, and the distribution law of each changes as the taxi approaches this rectangle. Let&#8217;s see how this happens.<\/p>\n<h4>2.3 Movement along the route. <\/h4>\n<p>  Consider two consecutive moments when the car drops off its clients. Let the last time the car dropped off its client was at time <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a92\/789\/b4e\/a92789b4eafb7478d750779992755ab3.svg\" alt=\"$t_0$\" data-tex=\"inline\"\/> and at point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e75\/d67\/996\/e75d679962fd049b7b19f6595c6a8677.svg\" alt=\"$X(t_0) = Q_0$\" data-tex=\"inline\"\/>, and the next one it should drop off at time <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f2d\/5af\/75b\/f2d5af75b05f7007d2539f98ea0b1362.svg\" alt=\"$t_1$\" data-tex=\"inline\"\/> and at point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/518\/bd0\/e8c\/518bd0e8c5d2e7c7817e6a82c1837cf8.svg\" alt=\"$X(t_1) = Q_1$\" data-tex=\"inline\"\/>. In order to maintain balance, on the way from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/05f\/6b7\/83d\/05f6b783de1cc412e7a620b555d9ed09.svg\" alt=\"$Q_0$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/20f\/0d9\/6f5\/20f0d96f574328af30517742ebda8a33.svg\" alt=\"$Q_1$\" data-tex=\"inline\"\/> the car must pick up on average one passenger, i.e., on average within the rectangle <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8a5\/bdd\/248\/8a5bdd2483d68291e2ad93fc1f639a10.svg\" alt=\"$\\Pi(Q_0,Q_1)$\" data-tex=\"inline\"\/> it will find one suitable traveler for itself, denote his boarding place as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/198\/a3e\/099\/198a3e0996c6ae92523329fa5c925468.svg\" alt=\"$P_{new}$\" data-tex=\"inline\"\/>, and the drop-off place as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/52e\/8ba\/552\/52e8ba552c53ad7407ed63469f37065a.svg\" alt=\"$Q_{new}$\" data-tex=\"inline\"\/>.<\/p>\n<p>  Compared to the disposition of travel rectangles on the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/487\/59d\/def\/48759ddef7ede1c8b45de19d5a4cf63b.svg\" alt=\"$M_{X(t)}$\" data-tex=\"inline\"\/> at the moment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ebe\/8f6\/a3c\/ebe8f6a3cf77bf251ab45360aefd4e0a.svg\" alt=\"$t=t_0$\" data-tex=\"inline\"\/>, at the moment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/543\/f04\/8d3\/543f048d39c3fbf8b737bc60696ff6b7.svg\" alt=\"$t=t_1$\" data-tex=\"inline\"\/>, i.e., when the car reaches <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/20f\/0d9\/6f5\/20f0d96f574328af30517742ebda8a33.svg\" alt=\"$Q_1$\" data-tex=\"inline\"\/>, it will change. Firstly, the travel rectangle <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/007\/1ed\/1ee\/0071ed1ee567f1b240b17b5a6dbc95bc.svg\" alt=\"$\\Pi_0$\" data-tex=\"inline\"\/> will cease to be travel. Then, if we forget for a moment about the appearance of the new drop-off point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/52e\/8ba\/552\/52e8ba552c53ad7407ed63469f37065a.svg\" alt=\"$Q_{new}$\" data-tex=\"inline\"\/>, we can say that all the rectangles <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2ac\/b32\/604\/2acb3260440fdb90c564d6aff23449c0.svg\" alt=\"$\\Pi_1, \u2026, \\Pi_{n-1}$\" data-tex=\"inline\"\/> will shift towards the center of the map by the vector <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fe1\/91e\/973\/fe191e973b617becea968e2b81d5b4e2.svg\" alt=\"$\\vec(Q_1,Q_0)$\" data-tex=\"inline\"\/>, and the rectangle <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/54b\/d3d\/ef1\/54bd3def141365b1058a91f92178b087.svg\" alt=\"$\\Pi_n$\" data-tex=\"inline\"\/> will not only shift by <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fe1\/91e\/973\/fe191e973b617becea968e2b81d5b4e2.svg\" alt=\"$\\vec(Q_1,Q_0)$\" data-tex=\"inline\"\/>, but will also grow new territory from the top and to the right. Finally, adding the point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/52e\/8ba\/552\/52e8ba552c53ad7407ed63469f37065a.svg\" alt=\"$Q_{new}$\" data-tex=\"inline\"\/>, unless it remained inside <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/007\/1ed\/1ee\/0071ed1ee567f1b240b17b5a6dbc95bc.svg\" alt=\"$\\Pi_0$\" data-tex=\"inline\"\/>, will turn one of the travel rectangles <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/209\/3a4\/30b\/2093a430b7865563bb82e17188e5023e.svg\" alt=\"$\\Pi_1, \u2026, \\Pi_{n-1}, \\Pi_n$\" data-tex=\"inline\"\/> into two new travel rectangles and two more which we are not interested in.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/tj\/yx\/7p\/tjyx7pctr5xayrwgpzjr2losj54.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/tj\/yx\/7p\/tjyx7pctr5xayrwgpzjr2losj54.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Fig 10)<\/i><\/p>\n<p>  Simply put, during the movement of our car, the chain of travel rectangles moves towards the center of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/487\/59d\/def\/48759ddef7ede1c8b45de19d5a4cf63b.svg\" alt=\"$M_{X(t)}$\" data-tex=\"inline\"\/>, the one on the top right grows, the one at the very center drops out, plus with some probability each element of the chain, with loss of area, divides in two.<\/p>\n<p>  Before we assess the size of the travel rectangles, let&#8217;s consider a very similar simpler problem.<\/p>\n<h4>2.4 Auxiliary problem. <\/h4>\n<p>  Imagine a conveyor belt operating outdoors, and snowflakes are falling onto it from above. Let&#8217;s assume the upper part of the conveyor belt has a length of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ffe\/7fb\/ad9\/ffe7fbad9e8131a5d99bf8feffe52f62.svg\" alt=\"$L$\" data-tex=\"inline\"\/> and moves from right to left at a speed of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2ac\/211\/43d\/2ac21143d39638d2322c66f487d3efb6.svg\" alt=\"$v$\" data-tex=\"inline\"\/>. Assume that the snow falls absolutely randomly with equal intensity in time and space and this intensity is such that while the conveyor makes a half turn, on average n snowflakes manage to fall on it. It is necessary to find how the average distance between neighboring snowflakes on the belt depends on how far these snowflakes are from the left edge of the conveyor.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/pk\/tr\/0t\/pktr0tmqduiozxqgf8ezld3qgm4.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/pk\/tr\/0t\/pktr0tmqduiozxqgf8ezld3qgm4.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Fig 11)<\/i><\/p>\n<p>  Here we need to clarify what we actually mean by the term \u00abaverage distance\u00bb. We will assume that <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/35b\/a56\/5f3\/35ba565f36734f3a55aa01ac67868762.svg\" alt=\"$n$\" data-tex=\"inline\"\/> is large. In our minds, we will divide the conveyor belt into segments of length <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"\/>, and we will choose <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"\/> to be much less than <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ffe\/7fb\/ad9\/ffe7fbad9e8131a5d99bf8feffe52f62.svg\" alt=\"$L$\" data-tex=\"inline\"\/> on the one hand, and on the other hand, the number <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/09a\/7a5\/d97\/09a7a5d979c6b5922d3a88b87aad7099.svg\" alt=\"$n \\cdot \\Delta l\/L$\" data-tex=\"inline\"\/> should be much greater than one. Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/87c\/ea9\/78587cea9d68e93678392d15a4b1ee9b.svg\" alt=\"$AB$\" data-tex=\"inline\"\/> be one of such segments and at the considered moment in time its left edge is at a distance of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/065\/1ef\/425\/0651ef425abaf011341cf5edbedef155.svg\" alt=\"$x \\sim L$\" data-tex=\"inline\"\/> from the left edge of the conveyor. If <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b86\/cec\/aea\/b86cecaea68ba9b1ccd6e5a67938fd92.svg\" alt=\"$(L - x)$\" data-tex=\"inline\"\/> is of the same order as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ffe\/7fb\/ad9\/ffe7fbad9e8131a5d99bf8feffe52f62.svg\" alt=\"$L$\" data-tex=\"inline\"\/>, then at this moment there are about <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e4d\/2b7\/35a\/e4d2b735af6000a0e180a110d7bfd62b.svg\" alt=\"$\\Delta (L-x)\/l \\gg 1 $\" data-tex=\"inline\"\/> snowflakes on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/87c\/ea9\/78587cea9d68e93678392d15a4b1ee9b.svg\" alt=\"$AB$\" data-tex=\"inline\"\/>. Let&#8217;s stop time and randomly select a point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b23\/a99\/a6f\/b23a99a6f174ca2c08127e778e52a990.svg\" alt=\"$S$\" data-tex=\"inline\"\/> from segment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/87c\/ea9\/78587cea9d68e93678392d15a4b1ee9b.svg\" alt=\"$AB$\" data-tex=\"inline\"\/> with a uniform distribution. Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/373\/042\/3d6\/3730423d693b81de08e7414e4fda5b8c.svg\" alt=\"$Y^L$\" data-tex=\"inline\"\/> be the position of the nearest snowflake to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b23\/a99\/a6f\/b23a99a6f174ca2c08127e778e52a990.svg\" alt=\"$S$\" data-tex=\"inline\"\/> on the left, and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bff\/af7\/5f2\/bffaf75f27d204ae6ce9fbb884618b0e.svg\" alt=\"$Y^R$\" data-tex=\"inline\"\/> be the position of the nearest snowflake to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b23\/a99\/a6f\/b23a99a6f174ca2c08127e778e52a990.svg\" alt=\"$S$\" data-tex=\"inline\"\/> on the right. Actually, by the average distance between snowflakes in that area of the belt, which is at a distance <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4cc\/fd4\/32e\/4ccfd432ea4f2a64f3a5c8c7378517af.svg\" alt=\"$x$\" data-tex=\"inline\"\/> from the left edge of the conveyor, we will mean the expected value of the length of the segment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/158\/388\/83e\/15838883e787fe0e8b32f5b25064f5b0.svg\" alt=\"$Y^LY^R$\" data-tex=\"inline\"\/>. Let&#8217;s consider two ways to calculate what it equals to: one \u2014 simple and accurate, and the other \u2014 a bit more complicated and approximate, but allowing itself to be generalized to the problem with travel rectangles.<\/p>\n<p>  <i>Simple Solution.<\/i><br \/>  Let&#8217;s set up an imaginary plane <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> across the conveyor at a distance x from its left edge. The average number of snowflakes that the conveyor belt carries across <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> per unit of time equals the average number of snowflakes that manage to fall on the conveyor to the right of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> per unit of time. The average number of the latter is <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/032\/abc\/0f0\/032abc0f021185cad22b5016f3df8970.svg\" alt=\"$n(L \u2013 x)\/L \\cdot v\/L = nv(L \u2013 x)\/L^2$\" data-tex=\"inline\"\/>. Moreover, the randomness and independence of snowflakes falling on the belt lead to their positions on the belt being random and independent of each other. In particular, if you see a snowflake that just lay on the conveyor crossing <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>, or on the contrary, for a long time <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"\/> no snowflake crossed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>, these observations alone do not give you any information about how soon the next snowflake will cross <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>. Such observations also do not provide information about how much time has passed since the snowflake last crossed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>. The homogeneity in time and the independence of snowflake crossing events through the plane <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> suggest that we have a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Poisson_point_process\" rel=\"nofollow noopener noreferrer\">Poisson process<\/a> in front of us. The average waiting time for this process <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9a1\/d50\/bdf\/9a1d50bdf8ecefaf533badbafa444e44.svg\" alt=\"$\\bar {T}$\" data-tex=\"inline\"\/> is equal to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1eb\/98f\/930\/1eb98f930d246c8f0485547fe8e6cb5d.svg\" alt=\"$[nv(L \u2013 x)\/L^2]^{-1}$\" data-tex=\"inline\"\/><\/p>\n<p>  Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fd7\/ba0\/ebc\/fd7ba0ebcc5671df20e5d97cc30c41cf.svg\" alt=\"$t_A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/774\/337\/dca\/774337dca7502435101471e48e997d4b.svg\" alt=\"$t_B$\" data-tex=\"inline\"\/> be the moments in time when the points we marked on the belt, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"\/>, will cross <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> once again. Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/915\/acb\/b16\/915acbb16ed63f15541d3e0bda30d453.svg\" alt=\"$t$\" data-tex=\"inline\"\/> be a randomly chosen moment from the time interval <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/017\/530\/ef2\/017530ef2b109c0e57b62061e03738cd.svg\" alt=\"$t_At_B$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bab\/bbf\/e1c\/babbbfe1c7ab7179721d0ca053a67414.svg\" alt=\"$P(t)$\" data-tex=\"inline\"\/> is a point on the belt, which at the time <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/915\/acb\/b16\/915acbb16ed63f15541d3e0bda30d453.svg\" alt=\"$t$\" data-tex=\"inline\"\/> is at the cut <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>. Since the process of snowflakes passing through the cut <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> is Poissonian, the nearest moment of a snowflake passing through <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> after <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/915\/acb\/b16\/915acbb16ed63f15541d3e0bda30d453.svg\" alt=\"$t$\" data-tex=\"inline\"\/> and the last one before <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/915\/acb\/b16\/915acbb16ed63f15541d3e0bda30d453.svg\" alt=\"$t$\" data-tex=\"inline\"\/> are both on average away from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/915\/acb\/b16\/915acbb16ed63f15541d3e0bda30d453.svg\" alt=\"$t$\" data-tex=\"inline\"\/> by <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/866\/81b\/100\/86681b10021d083e80f64f795b07dc6b.svg\" alt=\"$\\bar {T} = [nv(L \u2013 x)\/L^2]^{-1}$\" data-tex=\"inline\"\/>. Thus, the average distance between the nearest snowflakes to the right and left of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"\/> is <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9c3\/165\/e56\/9c3165e562265a1367b49802678dfa22.svg\" alt=\"$\\bar {s} = 2v \\bar {T} = 2 (n(L \u2013 x)\/L^2)^{-1}$\" data-tex=\"inline\"\/>. This number is the solution to our problem, because randomly choosing from the interval <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/87c\/ea9\/78587cea9d68e93678392d15a4b1ee9b.svg\" alt=\"$AB$\" data-tex=\"inline\"\/> the point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"\/> with uniform probability is the same as randomly choosing from the time interval <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/017\/530\/ef2\/017530ef2b109c0e57b62061e03738cd.svg\" alt=\"$t_At_B$\" data-tex=\"inline\"\/> the moment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/861\/f1c\/999\/861f1c99977fd4dfb4052a7214fe0c3d.svg\" alt=\"$t_P$\" data-tex=\"inline\"\/>, at which the point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"\/> will pass through <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>.<\/p>\n<p>  <i>Almost legal solution that can be generalized.<\/i><br \/>  Let&#8217;s choose <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"\/> equal to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d5f\/a15\/7a7\/d5fa157a737da1351ddedad78feee8d6.svg\" alt=\"$L\/\\sqrt {n}$\" data-tex=\"inline\"\/>. As before, let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/87c\/ea9\/78587cea9d68e93678392d15a4b1ee9b.svg\" alt=\"$AB$\" data-tex=\"inline\"\/> be one of the conveyor belt segments of length <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"\/>. Let&#8217;s consider a sequence of time moments <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f3b\/abc\/5e7\/f3babc5e74a30b1990c89a5eb6b2d4ef.svg\" alt=\"${t_k}$\" data-tex=\"inline\"\/>, when the left edge of the segment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/87c\/ea9\/78587cea9d68e93678392d15a4b1ee9b.svg\" alt=\"$AB$\" data-tex=\"inline\"\/> was at a distance of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/84f\/f1c\/d38\/84ff1cd383acbdd86a17bcda553e8494.svg\" alt=\"$k\\Delta l$\" data-tex=\"inline\"\/> from the right edge of the conveyor, and track how the average distance <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2be\/ea4\/e0b\/2beea4e0b576ca8c5b4373c0080ac234.svg\" alt=\"$\\bar {s}(k)$\" data-tex=\"inline\"\/> between snowflakes on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/87c\/ea9\/78587cea9d68e93678392d15a4b1ee9b.svg\" alt=\"$AB$\" data-tex=\"inline\"\/> at the moment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f3b\/abc\/5e7\/f3babc5e74a30b1990c89a5eb6b2d4ef.svg\" alt=\"$t_k$\" data-tex=\"inline\"\/> changes with <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"\/>.<\/p>\n<p>  By condition, while the belt moves a distance of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ffe\/7fb\/ad9\/ffe7fbad9e8131a5d99bf8feffe52f62.svg\" alt=\"$L$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/35b\/a56\/5f3\/35ba565f36734f3a55aa01ac67868762.svg\" alt=\"$n$\" data-tex=\"inline\"\/> snowflakes manage to fall on the conveyor. Between <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f3b\/abc\/5e7\/f3babc5e74a30b1990c89a5eb6b2d4ef.svg\" alt=\"$t_k$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fd1\/9d0\/d09\/fd19d0d09914a7db592470128515876a.svg\" alt=\"$t_{k+1}$\" data-tex=\"inline\"\/> time, the belt will shift by <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d5f\/a15\/7a7\/d5fa157a737da1351ddedad78feee8d6.svg\" alt=\"$L\/\\sqrt {n}$\" data-tex=\"inline\"\/>, therefore only <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f30\/6ee\/438\/f306ee43825872ce0e34e250b0e09511.svg\" alt=\"$\\sqrt {n}$\" data-tex=\"inline\"\/> snowflakes will fall on the conveyor on average during this period. Since <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/87c\/ea9\/78587cea9d68e93678392d15a4b1ee9b.svg\" alt=\"$AB$\" data-tex=\"inline\"\/> makes up only <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/262\/354\/749\/262354749008b131bbfc565aa7bf3a43.svg\" alt=\"$1\/\\sqrt {n}$\" data-tex=\"inline\"\/> part of the conveyor length, of these <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f30\/6ee\/438\/f306ee43825872ce0e34e250b0e09511.svg\" alt=\"$\\sqrt {n}$\" data-tex=\"inline\"\/> snowflakes on average only one will fall on it. Its place of fall will be between some two snowflakes, which were already present on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/87c\/ea9\/78587cea9d68e93678392d15a4b1ee9b.svg\" alt=\"$AB$\" data-tex=\"inline\"\/> at the moment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f3b\/abc\/5e7\/f3babc5e74a30b1990c89a5eb6b2d4ef.svg\" alt=\"$t_k$\" data-tex=\"inline\"\/>. Since the fall location of this new snowflake is randomly chosen with uniformly distributed probability along <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/87c\/ea9\/78587cea9d68e93678392d15a4b1ee9b.svg\" alt=\"$AB$\" data-tex=\"inline\"\/>, the average distance between its right and left neighbors will be <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2be\/ea4\/e0b\/2beea4e0b576ca8c5b4373c0080ac234.svg\" alt=\"$\\bar {s}(k)$\" data-tex=\"inline\"\/>.<\/p>\n<p>  Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0f7\/15d\/907\/0f715d907f7777ad768f15faeb093d19.svg\" alt=\"$I_k$\" data-tex=\"inline\"\/> be the interval between the right and left neighbor of the new snowflake. As we have just established, the mathematical expectation of the length of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0f7\/15d\/907\/0f715d907f7777ad768f15faeb093d19.svg\" alt=\"$I_k$\" data-tex=\"inline\"\/> is equal to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2be\/ea4\/e0b\/2beea4e0b576ca8c5b4373c0080ac234.svg\" alt=\"$\\bar {s}(k)$\" data-tex=\"inline\"\/>. The new snowflake divides <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0f7\/15d\/907\/0f715d907f7777ad768f15faeb093d19.svg\" alt=\"$I_k$\" data-tex=\"inline\"\/> into two segments, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3e0\/3b4\/039\/3e03b40392980e18187622ddd97c31fd.svg\" alt=\"$I_k^L$\" data-tex=\"inline\"\/> \u2014 the left one and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ab3\/f5c\/f2f\/ab3f5cf2fafc9f4882e5d16b79938253.svg\" alt=\"$I_k^R$\" data-tex=\"inline\"\/> \u2013 the right one. If at time <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fd1\/9d0\/d09\/fd19d0d09914a7db592470128515876a.svg\" alt=\"$t_{k+1}$\" data-tex=\"inline\"\/> a random point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"\/> is chosen from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a66\/f70\/adf\/a66f70adf3eeabc02675497de9ea0504.svg\" alt=\"$\u0410B$\" data-tex=\"inline\"\/>, then with a probability of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/586\/f86\/c31\/586f86c3146a7565cecd1e4e722d7520.svg\" alt=\"$|I_k|\/|AB|$\" data-tex=\"inline\"\/> it will fall into <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0f7\/15d\/907\/0f715d907f7777ad768f15faeb093d19.svg\" alt=\"$I_k$\" data-tex=\"inline\"\/>, and with a probability of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/852\/5e9\/ad5\/8525e9ad5749be51bf570c9e9632f1ab.svg\" alt=\"$ (1 - |I_k|\/|AB|)$\" data-tex=\"inline\"\/> it will end up outside <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0f7\/15d\/907\/0f715d907f7777ad768f15faeb093d19.svg\" alt=\"$I_k$\" data-tex=\"inline\"\/>.<\/p>\n<p>  In cases when <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"\/> falls inside <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0f7\/15d\/907\/0f715d907f7777ad768f15faeb093d19.svg\" alt=\"$I_k$\" data-tex=\"inline\"\/> the average distance <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/39e\/1ab\/199\/39e1ab1990a8fff39d5ec19996d19f5c.svg\" alt=\"$s(I_k)$\" data-tex=\"inline\"\/> between the nearest to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"\/> snowflakes on the right and left will be given by the expression<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/34c\/b1d\/518\/34cb1d5181ca7f2bbebcc96ba7f8ed53.svg\" alt=\"$s(I_k) = |I_k^R| \\cdot |I_k^R|\/|I_k| + |I_k^L| \\cdot |I_k^L|\/|I_k| = (|I_k^R|^2 + |I_k^R|^2)\/|I_k|\\ \\ \\ \\ \\ (1) $\" data-tex=\"inline\"\/><\/p>\n<p>  The average (according to the position of the new snowflake inside <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0f7\/15d\/907\/0f715d907f7777ad768f15faeb093d19.svg\" alt=\"$I_k$\" data-tex=\"inline\"\/>) value <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/698\/f80\/495\/698f80495b6d28dc6a9a7cc90ae23332.svg\" alt=\"$|I_k^R|^2 = |I_k^R|^2 = 1\/3 |I_k|^2$\" data-tex=\"inline\"\/>, therefore the average value of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/39e\/1ab\/199\/39e1ab1990a8fff39d5ec19996d19f5c.svg\" alt=\"$s(I_k)$\" data-tex=\"inline\"\/> is <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/97d\/2ba\/243\/97d2ba243ce0a0cefae3cb6fd997657a.svg\" alt=\"$2\/3 |I_k|$\" data-tex=\"inline\"\/>.<\/p>\n<p>  What will be the average distance <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/928\/86b\/d96\/92886bd96c2a696e359068e7731e3139.svg\" alt=\"$s(AB \u2216 I_k)$\" data-tex=\"inline\"\/> between the closest snowflakes to the right and left of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"\/> when <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"\/> does not fall into <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0c9\/5e7\/5d4\/0c95e75d45410762667f689b0da05c52.svg\" alt=\"$I$\" data-tex=\"inline\"\/>? Here we will make a very slippery assumption. We will assume that <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/21f\/2e9\/ce7\/21f2e9ce7d0ec20cbcefb6f9a798970c.svg\" alt=\"$\\bar {s}(AB \u2216 I_k)$\" data-tex=\"inline\"\/> differs from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2be\/ea4\/e0b\/2beea4e0b576ca8c5b4373c0080ac234.svg\" alt=\"$\\bar {s}(k)$\" data-tex=\"inline\"\/> by an amount significantly less than <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3e4\/127\/c87\/3e4127c872913ad720f9f8f8f6a9e631.svg\" alt=\"$\\bar {s}^2(k)\/|AB|$\" data-tex=\"inline\"\/>. Then:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7b\/6e2\/572\/a7b6e25725211530ad61507b95530666.svg\" alt=\"$\\bar {s}(k + 1) = (1 - \\bar {|I_k|}\/|AB|) \\bar {s}(AB \u2216 I_k) + 2\/3\\ \\bar {|I_k|^2}\/|AB| \\approx \\bar {s}(k) - \\bar {s}^2(k) \/|AB| + 2\/3\\ \\bar {|I_k|^2}\/|AB|\\ \\ \\ \\ \\ (2)$\" data-tex=\"inline\"\/> <\/p>\n<p>  Again, we make a not quite legal assumption that <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/aeb\/ddc\/785aebddc704a64f6cd5d734721cd2cd.svg\" alt=\"$\\bar {|I_k|^2} \\approx (\\bar {|I_k|})^2 = \\bar {s}^2(k)$\" data-tex=\"inline\"\/> (we equate the square of the average with the average of the squares), then expression <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dd5\/d5c\/c1a\/dd5d5cc1a67575a4fd4e91c18d274d1a.svg\" alt=\"$(2)$\" data-tex=\"inline\"\/> can be rewritten as:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b4a\/d44\/abb\/b4ad44abbaafa302b4037eea37e4159b.svg\" alt=\"$\\bar {s}(k + 1) - \\bar {s}(k) \\approx - 1\/3\\ \\bar {s}^2(k)\/|AB| \\ \\ \\ \\ \\ (3) $\" data-tex=\"inline\"\/><\/p>\n<p>  or so<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/63e\/a40\/9c7\/63ea409c746dd2c10ccac29b5b67b5e6.svg\" alt=\"$\\bar {s}(k + 1) - \\bar {s}(k) \\approx (- 1\/3\\ \\bar {s}^2(k)\/|AB|)\\cdot [(k + 1) - k] \\ \\ \\ \\ \\ (4) $\" data-tex=\"inline\"\/><\/p>\n<p>  We replace the above difference equation with a differential one:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5c0\/b6c\/97c\/5c0b6c97ca6506826c609093881a6d69.svg\" alt=\"$d \\bar {s} \\approx - (1\/3 \\bar {s}^2(k)\/|AB|) dk \\ \\ \\ \\ \\ (5) $\" data-tex=\"inline\"\/><\/p>\n<p>  or the same<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/868\/b61\/d40\/868b61d40f28991263447eaae11ae5bd.svg\" alt=\"$\\frac {d \\bar {s}} {\\bar {s}^2} \\approx - 1\/3\\ \\frac {dk} {|AB|} \\ \\ \\ \\ \\ (6)$\" data-tex=\"inline\"\/><\/p>\n<p>  from which<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/304\/711\/234\/304711234362aee8241cef81ae594d12.svg\" alt=\"$\\frac {1} {\\bar {s}} \\approx 1\/3\\ \\frac {k + Const}{|AB|} \\ \\ \\ \\ \\ (7)$\" data-tex=\"inline\"\/><\/p>\n<p>  or with <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/038\/d6d\/33a\/038d6d33a3a01021a03982e887c1b5eb.svg\" alt=\"$Const = 0$\" data-tex=\"inline\"\/> (the most plausible value for Const at <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/738\/f4e\/57e\/738f4e57e0acafbb8c08262daa540b90.svg\" alt=\"$k=1$\" data-tex=\"inline\"\/>)<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f8e\/d33\/e9e\/f8ed33e9e06446cff8d3732c0b51da70.svg\" alt=\"$\\bar {s} \\approx \\frac {3|AB|}{k} \\ \\ \\ \\ \\ (8) $\" data-tex=\"inline\"\/><\/p>\n<p>  If we take the exact expression for <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/260\/6f8\/609\/2606f8609f658268c9a15c8632680ab8.svg\" alt=\"$\\bar {s}$\" data-tex=\"inline\"\/> that we found earlier:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ff7\/369\/77a\/ff736977a2fef221d284efd5de35deb8.svg\" alt=\"$\\bar {s} = 2 \\frac {L^2}{n(L \u2013 x)} \\ \\ \\ \\ \\ (9)$\" data-tex=\"inline\"\/><\/p>\n<p>  and substitute into it <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bd4\/753\/13f\/bd475313f84ffbaf34ebecb1c59ca784.svg\" alt=\"$(L \u2013 x) = kL\/\\sqrt {n}$\" data-tex=\"inline\"\/>, then we get<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7bf\/8ea\/226\/7bf8ea22603d022e65927cb1a96ea84a.svg\" alt=\"$\\bar {s} = 2v \\bar {T} = 2 \\frac {L}{k \\sqrt {n}} = \\frac {2|AB|}{k} \\ \\ \\ \\ \\ (10) $\" data-tex=\"inline\"\/><\/p>\n<p>  As you can see, our nearly legal estimate accurately reflected the law of dependence and only made a mistake in the coefficient by a factor of one and a half. We will use the same technique to estimate the area of \u200b\u200bpath rectangles.<\/p>\n<h4>2.5 Estimation of the characteristic size of path rectangles<\/h4>\n<p>  For the sake of simplicity, let&#8217;s assume that the parallels and meridians of the torus, on which our imaginary city is located, have the same length <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ffe\/7fb\/ad9\/ffe7fbad9e8131a5d99bf8feffe52f62.svg\" alt=\"$L$\" data-tex=\"inline\"\/>. In this assumption, the taxi&#8217;s \u00abattached\u00bb map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/487\/59d\/def\/48759ddef7ede1c8b45de19d5a4cf63b.svg\" alt=\"$M_{X(t)}$\" data-tex=\"inline\"\/> takes the form of a square with side <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ffe\/7fb\/ad9\/ffe7fbad9e8131a5d99bf8feffe52f62.svg\" alt=\"$L$\" data-tex=\"inline\"\/>. Since the up-down and right-left directions in such a city are equivalent, it is natural to expect that the chain of path rectangles will stretch along the diagonal of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/487\/59d\/def\/48759ddef7ede1c8b45de19d5a4cf63b.svg\" alt=\"$M_{X(t)}$\" data-tex=\"inline\"\/>.<br \/>   <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/cd\/7y\/zo\/cd7yzojevzaldrtai0dwezs4jpk.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/cd\/7y\/zo\/cd7yzojevzaldrtai0dwezs4jpk.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Figure 12 \u2014 the red squares are path containers)<\/i><\/p>\n<p>  Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/987\/667\/569\/98766756966b4a9ffdcf8a56ed9a339e.svg\" alt=\"$O$\" data-tex=\"inline\"\/> be the current location of our car, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a0d\/d16\/4e4\/a0dd164e481befe52ca1b226f287b94e.svg\" alt=\"$F$\" data-tex=\"inline\"\/> be the point where the top right corner of the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/487\/59d\/def\/48759ddef7ede1c8b45de19d5a4cf63b.svg\" alt=\"$M_{X(t)}$\" data-tex=\"inline\"\/> is currently located, and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/> be the average number of passengers who will exit (enter) the taxi during the time it will take to get from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/987\/667\/569\/98766756966b4a9ffdcf8a56ed9a339e.svg\" alt=\"$O$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a0d\/d16\/4e4\/a0dd164e481befe52ca1b226f287b94e.svg\" alt=\"$F$\" data-tex=\"inline\"\/>. Let&#8217;s cover the segment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e13\/f00\/e38\/e13f00e38d6136a1f1d56a09e4c47b03.svg\" alt=\"$OF$\" data-tex=\"inline\"\/> with a chain of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/28e\/e1f\/83f\/28ee1f83f1eb29a0779ddee9fc113cb7.svg\" alt=\"$\\sqrt {m}$\" data-tex=\"inline\"\/> identical squares with a side <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1ac\/652\/62f\/1ac65262f8bd9893c6b77b6694c41869.svg\" alt=\"$1\/2 L\/\\sqrt {m}$\" data-tex=\"inline\"\/>, which we will call path containers. Given that the path squares are stretched along the segment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e13\/f00\/e38\/e13f00e38d6136a1f1d56a09e4c47b03.svg\" alt=\"$OF$\" data-tex=\"inline\"\/>, we can expect, especially with large values of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/>, that most of them will be located inside the path containers we have constructed. We will number the containers with the index <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e6f\/dad\/1ba\/e6fdad1ba3deeb6a5c73268b80879d41.svg\" alt=\"$k = 1, \u2026, \\sqrt {m}$\" data-tex=\"inline\"\/> starting from the top right and try to estimate how they change with the number <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"\/>:<br \/>  a) the average area <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/09f\/e91\/13f\/09fe9113fa036505128eb540d208807f.svg\" alt=\"$s(k)$\" data-tex=\"inline\"\/> of the path rectangle inside the container with number <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"\/>;<br \/>  b) the total area <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4fa\/522\/b85\/4fa522b8527729d5073228409280f57b.svg\" alt=\"$S(k)$\" data-tex=\"inline\"\/> of all path rectangles inside the container with number <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"\/>.<\/p>\n<p>  Of course, we need to make a clarification regarding the concept of the \u00abaverage area of a path rectangle\u00bb in the <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"\/>-th container. As in the conveyor task, by average we will understand the expected area of a path rectangle, which will be hit by a point randomly thrown, if the probability is uniformly distributed over the area of all path rectangles lying inside the container numbered <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"\/>.<\/p>\n<p>  Let&#8217;s denote the top right corner of the container closest to the center as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/200\/e1b\/017\/200e1b017cfb0904aaface165917d59e.svg\" alt=\"$O\u2019$\" data-tex=\"inline\"\/>. When the taxi moves from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/987\/667\/569\/98766756966b4a9ffdcf8a56ed9a339e.svg\" alt=\"$O$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/200\/e1b\/017\/200e1b017cfb0904aaface165917d59e.svg\" alt=\"$O\u2019$\" data-tex=\"inline\"\/> (more precisely, to the point closest to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/200\/e1b\/017\/200e1b017cfb0904aaface165917d59e.svg\" alt=\"$O\u2019$\" data-tex=\"inline\"\/>), the path container numbered <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"\/> will move to the place of the path container numbered <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/91d\/a00\/3e6\/91da003e6f953e62f101d9dba42db361.svg\" alt=\"$k-1$\" data-tex=\"inline\"\/>. We&#8217;ll use this observation for our calculations (akin to the movement of a conveyor belt).<\/p>\n<p>  On the way from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/987\/667\/569\/98766756966b4a9ffdcf8a56ed9a339e.svg\" alt=\"$O$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/200\/e1b\/017\/200e1b017cfb0904aaface165917d59e.svg\" alt=\"$O\u2019$\" data-tex=\"inline\"\/>, about <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/28e\/e1f\/83f\/28ee1f83f1eb29a0779ddee9fc113cb7.svg\" alt=\"$\\sqrt {m}$\" data-tex=\"inline\"\/> passengers will manage to exit the taxi, which means that about the same number, i.e., <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/28e\/e1f\/83f\/28ee1f83f1eb29a0779ddee9fc113cb7.svg\" alt=\"$\\sqrt {m}$\" data-tex=\"inline\"\/> new passengers will enter it. If we take the figure <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/40a\/60d\/383\/40a60d383a6a2593cb3be4676771e412.svg\" alt=\"$\\Phi$\" data-tex=\"inline\"\/>, consisting of the union of all path rectangles, then per unit of its area, there will be:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c0e\/2c3\/d55\/c0e2c3d55b4e7b8b4820bfae1f708779.svg\" alt=\"$a \\approx \\frac {\\sqrt {m}}{S(1) + \u2026 + S(\\sqrt {m})} \\ \\ \\ \\ \\ (11) $\" data-tex=\"inline\"\/><\/p>\n<p>  drop-off points for new passengers. In the container numbered <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"\/>, about <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/73a\/1f9\/636\/73a1f9636cc1a4ec535c8f3448fdf640.svg\" alt=\"$aS(k)$\" data-tex=\"inline\"\/> such points will fall. Falling into a certain path rectangle, the new drop-off point will break it into two smaller ones with a total area, which on average is twice smaller than the area of the original one (Figure 10).<\/p>\n<p>  From this, the total area of the path rectangles inside the k-th container will become equal to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/87a\/47d\/51a\/87a47d51a992f3dae23869e1e44bbceb.svg\" alt=\"$S(k+1)$\" data-tex=\"inline\"\/>, i.e.,<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f3f\/382\/5cc\/f3f3825ccddda3e4af22e62922b42e36.svg\" alt=\"$S(k+1) \\approx S(k) - aS(k) \\cdot 1\/2\\ s(k) \\ \\ \\ \\ \\ (12) $\" data-tex=\"inline\"\/><\/p>\n<p>  At the same time, the total area of those of its path rectangles into which new drop-off points did not fall will be approximately<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f8c\/9f1\/424\/f8c9f142452d8bc10664d314b04b8ad5.svg\" alt=\"$S(k) - aS(k) \\cdot s(k) \\ \\ \\ \\ \\ (13) $\" data-tex=\"inline\"\/><\/p>\n<p>  Now, regarding the \u00abaverage\u00bb area of those two new rectangles into which the old path rectangle breaks down when a drop-off point of another taxi passenger falls into it. According to my very rough calculations, it is approximately <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/de8\/cea\/796\/de8cea796e44a3c4d912cad101bfe491.svg\" alt=\"$4\/9$\" data-tex=\"inline\"\/> of the area of the old one (try to find the exact value). Of course, here the average means the outcome of throwing a random point into two new rectangles. If so, then for reasons similar to those we used in the conveyor task:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d08\/9dc\/ca8\/d089dcca8830bcc46fcde7213b45215b.svg\" alt=\"$s(k+1) \\approx \\frac {S(k) - aS(k)s(k)}{S(k) - 1\/2\\ aS(k)s(k)} \\cdot s(k) + \\frac {1\/2\\ aS(k)s(k)}{S(k) - 1\/2\\ aS(k)s(k)} \\cdot 4\/9 s(k) \\ \\ \\ \\ \\ (14) $\" data-tex=\"inline\"\/><\/p>\n<p>  from which<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bd9\/575\/f51\/bd9575f51abb221efa383ad45c0e8914.svg\" alt=\"$s(k + 1) \\approx (1 \u2013 1\/2\\ as(k))s(k) + 4\/9\\ \\cdot 1\/2\\ as(k)^2 = s(k) - 5\/18\\ as(k)^2\\ \\ \\ \\ \\ (15) $\" data-tex=\"inline\"\/><\/p>\n<p>  or<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/54f\/e89\/c72\/54fe89c72182453ecc4092a04e3dab02.svg\" alt=\"$s(k + 1) - s(k) \\approx - 5\/18\\ as(k)^2 [(k+1) - k] \\ \\ \\ \\ \\ (16) $\" data-tex=\"inline\"\/><\/p>\n<p>  We replace the difference equation with a differential one:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/696\/3fa\/f19\/6963faf1998459206b4d37318a5a1445.svg\" alt=\"$\\frac {ds}{s^2} \\approx - 5\/18\\ a\\ dk \\ \\ \\ \\ \\ (17) $\" data-tex=\"inline\"\/><\/p>\n<p>  from which<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9ab\/541\/37b\/9ab54137b97c19696bbc2c4186783418.svg\" alt=\"$s(k) \\approx 18\/5\\ \\frac {1}{a(k + c_1)} \\ \\ \\ \\ \\ (18) $\" data-tex=\"inline\"\/><\/p>\n<p>  for reasons of similarity, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5df\/fd0\/5ac\/5dffd05ac19a5b8796a02630688d390e.svg\" alt=\"$c_1 = 0$\" data-tex=\"inline\"\/>, and finally<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/158\/7bf\/475\/1587bf475fb88eec72fce4a66be35f43.svg\" alt=\"$s(k) \\approx 18\/5\\ \\frac {1}{ak} \\ \\ \\ \\ \\ (19) $\" data-tex=\"inline\"\/><\/p>\n<p>  Substituting the found expression for <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/09f\/e91\/13f\/09fe9113fa036505128eb540d208807f.svg\" alt=\"$s(k)$\" data-tex=\"inline\"\/> into <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/033\/c93\/503\/033c93503bbce43a1b9a1d46e4e9aa01.svg\" alt=\"$(12)$\" data-tex=\"inline\"\/>, we get:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fff\/277\/f54\/fff277f54d31b3aa8db021fc50f926db.svg\" alt=\"$S(k+1) \\approx S(k) - 9\/5\\ S(k)\/k \\ \\ \\ \\ \\ (20) $\" data-tex=\"inline\"\/><\/p>\n<p>  or<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d7d\/09d\/803\/d7d09d803aa593dae71fb73e7ccddefb.svg\" alt=\"$S(k+1) - S(k) \\approx - 9\/5\\ S(k)\/k \\cdot [(k+1) - k] \\ \\ \\ \\ \\ (21) $\" data-tex=\"inline\"\/><\/p>\n<p>  Again, we replace the difference equation with a differential one<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cad\/a4c\/d6a\/cada4cd6ac3d9976df3ce7df8f6a2512.svg\" alt=\"$\\frac {dS}{S} \\approx - 9\/5\\ \\frac {dk}{k} \\ \\ \\ \\ \\ (22) $\" data-tex=\"inline\"\/><\/p>\n<p>  from which<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/48f\/722\/5ec\/48f7225ec2647d34eea65b174789608f.svg\" alt=\"$ln\\ S(k) \\approx c_2 - 9\/5 ln\\ k \\ \\ \\ \\ \\ (23) $\" data-tex=\"inline\"\/><\/p>\n<p>  or<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/959\/2f4\/d13\/9592f4d137eb4822db42fb297c2fff8f.svg\" alt=\"$S(k) \\approx \\frac {c_2}{k^{9\/5}} \\ \\ \\ \\ \\ (24) $\" data-tex=\"inline\"\/><\/p>\n<p>  All that remains is to estimate the constant <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/192\/91b\/6fc\/19291b6fc3cf13c1df84660024d68611.svg\" alt=\"$c_2$\" data-tex=\"inline\"\/>. Let&#8217;s resort to the following considerations:<\/p>\n<p>  If at the moment when the car was in point <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/987\/667\/569\/98766756966b4a9ffdcf8a56ed9a339e.svg\" alt=\"$O$\" data-tex=\"inline\"\/>, the first container contained <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9aa\/e08\/704\/9aae087046a60218262bab4a00522adc.svg\" alt=\"$N$\" data-tex=\"inline\"\/> drop-off points of its customers, then there were <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/814\/7ec\/9ca\/8147ec9cab379fe19edfd94b7799b84c.svg\" alt=\"$\\approx N$\" data-tex=\"inline\"\/> path rectangles in it and it is plausible to assume that the characteristic size of the sides of these rectangles was <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/096\/ed7\/65c\/096ed765c8bbbc1f1e34d3b19d3550ed.svg\" alt=\"$X$\" data-tex=\"inline\"\/> times smaller than the size of the side of the container. It turns out that we just need to estimate <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/096\/ed7\/65c\/096ed765c8bbbc1f1e34d3b19d3550ed.svg\" alt=\"$X$\" data-tex=\"inline\"\/>.<\/p>\n<p>  Let&#8217;s go even further into the past. Before becoming the extreme right upper path container, container number 1 kind of surfaced from the edge of the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/487\/59d\/def\/48759ddef7ede1c8b45de19d5a4cf63b.svg\" alt=\"$M_{X(t)}$\" data-tex=\"inline\"\/>. While the area of the city inside container number 1 \u00abwas beyond the edge of the map\u00bb, new passenger drop-off points could not fall into it. It seems plausible that at that stage the chance for new drop-off points to hit a unit of area of a path rectangle inside container number 1, was on average half as much as the chance to hit a unit of area of a path rectangle in containers of higher numbers. The segment of time when container 1 emerged from the edge of the map is adjacent to the segment of time when it moved to the position of container 2. Let&#8217;s assume that during these two periods of time the distribution of the area of path rectangles inside 1 did not change much. If such an assumption is justified, then for an estimate of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/096\/ed7\/65c\/096ed765c8bbbc1f1e34d3b19d3550ed.svg\" alt=\"$X$\" data-tex=\"inline\"\/> you can take half of the number of new drop-off points that fell into the first container during the period while it was moving from its place to the place of container number 2. Let&#8217;s find out what it equals to.<\/p>\n<p>  The area of the path rectangles inside container number 1, according to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/108\/e28\/ac8\/108e28ac86c72411a3b658e4543b4905.svg\" alt=\"$(24)$\" data-tex=\"inline\"\/>, equals <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/192\/91b\/6fc\/19291b6fc3cf13c1df84660024d68611.svg\" alt=\"$c_2$\" data-tex=\"inline\"\/>. The area of the path rectangles inside all containers, again according to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/108\/e28\/ac8\/108e28ac86c72411a3b658e4543b4905.svg\" alt=\"$(24)$\" data-tex=\"inline\"\/>, is given by the expression<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/726\/11f\/c6f\/72611fc6fb0560f5cfb5d9f35f6d2df4.svg\" alt=\"$\\Sigma S = c_2 (\\frac {1}{1^{9\/5}} + \\frac {1}{2^{9\/5}} + \u2026 + \\frac {1}{{\\sqrt {m}}^{9\/5}}) \\approx c_2 \\int_{1\/2}^{\\sqrt {m} + 1\/2} \\frac {dt}{t^{9\/5}} \\approx 5\/4\\ c_2 \\cdot (1\/2)^{- 4\/5} \\approx 2.17\\ c_2\\ \\ \\ \\ \\ (25) $\" data-tex=\"inline\"\/><\/p>\n<p>  From this it follows that out of approximately <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/28e\/e1f\/83f\/28ee1f83f1eb29a0779ddee9fc113cb7.svg\" alt=\"$\\sqrt {m}$\" data-tex=\"inline\"\/> new drop-off points, which are added to the taxi&#8217;s route during the time it crosses the <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/18a\/001\/d5f\/18a001d5f714d91176f01dee5d1a863b.svg\" alt=\"$(\\sqrt {m})$\" data-tex=\"inline\"\/> \u2014 th container, approximately <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/27b\/ac2\/5c0\/27bac25c01649452644312b6236cf085.svg\" alt=\"$(1 \/ 2.17) \\sqrt {m} \\approx 0.46 \\sqrt {m}$\" data-tex=\"inline\"\/> will fall into container number 1. Therefore,<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f26\/e16\/54a\/f26e1654a2f8d4cb7c93fb512a89e82a.svg\" alt=\"$ X \\approx 0.23\\ \\sqrt {m} \\ \\ \\ \\ \\ (26) $\" data-tex=\"inline\"\/><\/p>\n<p>  and<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ae0\/3b8\/e64\/ae03b8e6484fc4719ed8a58ce64a90fe.svg\" alt=\"$ c_2 \\approx (\\frac {L}{2\\sqrt {m}})^2 \\cdot \\frac {1}{0.23\\ \\sqrt {m}} \\approx 1.1\\ \\frac {L^2}{m\\sqrt {m}} \\ \\ \\ \\ \\ (27) $\" data-tex=\"inline\"\/><\/p>\n<h4>2.6 Average number of passengers in the cabin<\/h4>\n<p>  First, we show that for large values of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/>, the value of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"\/>, i.e., the average number of passengers simultaneously transported by the taxi, is approximately equal to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/>.<\/p>\n<p>  Indeed, if <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/> is large, then from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/108\/e28\/ac8\/108e28ac86c72411a3b658e4543b4905.svg\" alt=\"$(24)$\" data-tex=\"inline\"\/> it follows that almost the entire area of the path rectangles falls on the containers in the upper right corner, so almost all of our taxi&#8217;s passengers travel a distance approximately equal to half the diagonal of the map <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/487\/59d\/def\/48759ddef7ede1c8b45de19d5a4cf63b.svg\" alt=\"$M_{X(t)}$\" data-tex=\"inline\"\/>. According to the conditions, moving the diagonal distance, the taxi picks up on average <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/> passengers. It remains to refer to the children&#8217;s problem: if a bus picks up <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9aa\/e08\/704\/9aae087046a60218262bab4a00522adc.svg\" alt=\"$N$\" data-tex=\"inline\"\/> passengers for every mile, and each of the passengers travels on it just about one mile, then the average number of passengers in the bus is approximately <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9aa\/e08\/704\/9aae087046a60218262bab4a00522adc.svg\" alt=\"$N$\" data-tex=\"inline\"\/> (find the simplest way to solve it). It remains to express <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/>.<\/p>\n<p>  In order for the taxi to pick up <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/64f\/8d1\/6f6\/64f8d16f691a37cf3a16c6259fe57eac.svg\" alt=\"$sqrt {m}$\" data-tex=\"inline\"\/> new passengers when shifting by one container, the balance equation must hold:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cfc\/9ca\/069\/cfc9ca06901db3587c9dbc75a76fa628.svg\" alt=\"$\\Delta T \\sigma \\cdot 1.1\\ \\frac {L^2}{m\\sqrt {m}} \\cdot \\frac {1}{m^{9\/10}} \\cdot 1.1\\ \\frac {L^2}{m\\sqrt {m}} \\cdot \\frac {1}{L^2} \\approx \\sqrt {m} \\ \\ \\ \\ \\ (28) $\" data-tex=\"inline\"\/><\/p>\n<p>  The value of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"\/> in this equation should be understood as the maximum time a traveler is willing to lose waiting for our taxi. Let&#8217;s assume that if his wait is longer, he prefers another mode of transport. We will set the maximum value for <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"\/> from the principle we already used in the first part of the article. Basically, we require that the difference in travel time on our taxi and in a personal car on average does not exceed the average duration of a trip around the city in a personal car, multiplied by a small number <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/91b\/9ea\/0de\/91b9ea0dea5c5e29ac154df74d97d53d.svg\" alt=\"$\\lambda$\" data-tex=\"inline\"\/>.<\/p>\n<p>  The average length of travel in a toroidal city with uniform access (for the migration model, see paragraph 2.3 part 1) is <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/890\/74f\/9a2\/89074f9a261012528b95371de23f5c86.svg\" alt=\"$L\/2$\" data-tex=\"inline\"\/>, accordingly the average duration of a trip in a personal car is <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/62d\/fa7\/df3\/62dfa7df39995302b9f02478f3693aa5.svg\" alt=\"$L\/2v$\" data-tex=\"inline\"\/>. Further, with a maximum waiting time of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"\/>, the average time will be <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/067\/f6d\/52f\/067f6d52f3fca4370b7675d3e9050fe7.svg\" alt=\"$\\approx \\Delta T\/2$\" data-tex=\"inline\"\/>, from where:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c26\/873\/4e8\/c268734e88979945cba7672b6f2aeae0.svg\" alt=\"$\\Delta T\/2 = 1\/2\\ \\lambda L\/v \\ \\ \\ \\ \\ (29) $\" data-tex=\"inline\"\/><\/p>\n<p>  or<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/647\/5d4\/fee\/6475d4fee722d816994d5acd5abc022e.svg\" alt=\"$\\Delta T= \\lambda L\/v. \\ \\ \\ \\ \\ (30) $\" data-tex=\"inline\"\/><\/p>\n<p>  Substituting the expression for <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"\/> into <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/de4\/81b\/f1a\/de481bf1ab05b1e85dfb04f1f2ce4d9a.svg\" alt=\"$(28)$\" data-tex=\"inline\"\/>, we get<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/87f\/d02\/e80\/87fd02e8089e6a31540a8b21f8f49b9a.svg\" alt=\"$1.2\\ \\lambda \\sigma L^3\/v \\approx m^{3.9} \\ \\ \\ \\ \\ (31) $\" data-tex=\"inline\"\/><\/p>\n<p>  or finally:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/14f\/5ba\/577\/14f5ba57710150361e519a058e4acae9.svg\" alt=\"$m \\approx (1.2\\ \\lambda \\sigma L^3\/v)^{0.26} \\ \\ \\ \\ \\ (32) $\" data-tex=\"inline\"\/><\/p>\n<p>  Below are the values of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cb\/e1e\/2f4\/0cbe1e2f42f5e6bea0caffa1997a24d8.svg\" alt=\"$m$\" data-tex=\"inline\"\/> for a number of model cities with <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/46c\/87f\/f03\/46c87ff03fe3bcccfa69f344fefe8a41.svg\" alt=\"$\\lambda =1\/2$\" data-tex=\"inline\"\/><\/p>\n<p>  Hypothetical toroidal New York (London, Moscow):<br \/>  effective diameter <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/af1\/c01\/ad2\/af1c01ad25f4a6a14cb21074d57a721a.svg\" alt=\"$L \\approx 28$\" data-tex=\"inline\"\/> km,<br \/>  permissible speed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bbe\/1b7\/25a\/bbe1b725a6869e95cea3f212735906f9.svg\" alt=\"$v = 0.8$\" data-tex=\"inline\"\/> km\/min<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/403\/e94\/150\/403e941509230649624b0cc3d79e2c96.svg\" alt=\"$\\sigma \\approx 33$\" data-tex=\"inline\"\/> people\/min sq km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/88e\/94f\/4be\/88e94f4beb1fd832bcddfdfdec933f42.svg\" alt=\"$m (\\lambda = 1\/2) \\approx (1.2 \\cdot 1\/2 \\cdot 33 \\cdot 28^3\/0.8)^{0.26} \\approx 31.1$\" data-tex=\"inline\"\/> people.<\/p>\n<p>  Hypothetical toroidal Berlin:<br \/>  effective diameter <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f55\/7ae\/603\/f557ae6032c7021871b02ce1fed9d131.svg\" alt=\"$L \\approx 30$\" data-tex=\"inline\"\/> km,<br \/>  permissible speed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bbe\/1b7\/25a\/bbe1b725a6869e95cea3f212735906f9.svg\" alt=\"$v = 0.8$\" data-tex=\"inline\"\/> km\/min<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0e0\/123\/a43\/0e0123a43d56d8d05c389f5fd18b4d19.svg\" alt=\"$\\sigma \\approx 13$\" data-tex=\"inline\"\/> people\/min sq km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/91c\/83b\/565\/91c83b56505a44c7dc75ef4d70446018.svg\" alt=\"$m (\\lambda = 1\/2) \\approx (0.36 \\cdot 1\/2 \\cdot 13 \\cdot 30^3\/0.8)^{0.26} \\approx 25.8$\" data-tex=\"inline\"\/> people.<\/p>\n<p>  Hypothetical toroidal Paris:<br \/>  effective diameter <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fed\/be0\/2ab\/fedbe02abd062cb5921afa40f6649730.svg\" alt=\"$L \\approx 10$\" data-tex=\"inline\"\/> km,<br \/>  permissible speed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/60b\/248\/0e9\/60b2480e9734b8b1fdddc82660e27859.svg\" alt=\"$v = 0.5$\" data-tex=\"inline\"\/> km\/min<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/557\/490\/01f\/55749001f0a914f0efeb16d1bbe06027.svg\" alt=\"$ \\sigma \\approx 70 $\" data-tex=\"inline\"\/>people\/min sq km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/09c\/37f\/fb4\/09c37ffb4cc921e2c5c3cbcdfd491e24.svg\" alt=\"$m (\\lambda = 1\/2) \\approx (0.36 \\cdot 1\/2 \\cdot 70 \\cdot 10^3\/0.5)^{0.26} \\approx 19.1$\" data-tex=\"inline\"\/> people.<\/p>\n<p>  Hypothetical toroidal Prague:<br \/>  effective diameter <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4b6\/e16\/9fd\/4b6e169fddb2e3d1e1dd70eb677dd635.svg\" alt=\"$L \\approx 23$\" data-tex=\"inline\"\/> km,<br \/>  permissible speed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bbe\/1b7\/25a\/bbe1b725a6869e95cea3f212735906f9.svg\" alt=\"$v = 0.8$\" data-tex=\"inline\"\/> km\/min<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/eb8\/e5a\/d4b\/eb8e5ad4b9e7a21d6f1527216019e614.svg\" alt=\"$\\sigma \\approx 8.3$\" data-tex=\"inline\"\/> people\/min sq km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf0\/0f7\/c76\/cf00f7c76f0f13aae6e9abfe234184d3.svg\" alt=\"$m (\\lambda = 1\/2) \\approx (0.36 \\cdot 1\/2 \\cdot 8.3 \\cdot 23^3\/0.8)^{0.26} \\approx 18.6$\" data-tex=\"inline\"\/> people.<\/p>\n<p>  Hypothetical standard toroidal half-million city.<br \/>  population <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/88a\/d99\/114\/88ad99114b568a4bce8c0758a8f73737.svg\" alt=\"$P = 500K$\" data-tex=\"inline\"\/> people,<br \/>  density <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a40\/b4d\/f48\/a40b4df4849de370486978eb1fe906a2.svg\" alt=\"$\\rho = 5000$\" data-tex=\"inline\"\/> people\/sq km,<br \/>  effective diameter <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e16\/0ab\/cac\/e160abcac154dd5194b3bc16d9f99924.svg\" alt=\"$L = 10$\" data-tex=\"inline\"\/> km,<br \/>  permissible speed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d10\/c23\/f89\/d10c23f89dacb28fc2635078d6b651f2.svg\" alt=\"$v = 1$\" data-tex=\"inline\"\/> km\/min<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/54b\/ebd\/603\/54bebd603a23569b4f07252c2e8b329b.svg\" alt=\"$\\sigma \\approx 17$\" data-tex=\"inline\"\/> people\/min sq km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0b6\/ba1\/975\/0b6ba1975c90976fe7a42b2b9736b218.svg\" alt=\"$m (\\lambda = 1\/2) \\approx (0.36 \\cdot 1\/2 \\cdot 17 \\cdot 10^3\/0.8)^{0.26} \\approx 11.6$\" data-tex=\"inline\"\/> people.<\/p>\n<h3><font color=\"#0099cc\">3. Shared Route-Corridor Taxi<\/font><\/h3>\n<p>  <\/p>\n<h4>3.1 General Concept<\/h4>\n<p>  Although they are rough estimates, the previous paragraph shows that with fairly realistic assumptions, the average number of passengers simultaneously transported by a shared taxi could be quite large: potentially 20-30 for megacities and 5-12 for cities with a population of several hundred thousand people. However, we should remember that these estimates were built for a single vehicle operating in non-competitive conditions, not for an entire taxi service fleet. Another note is that the route of this single geodesic taxi was prone to gravitate towards a diagonal direction, so even if there were many such vehicles in the city, it would still be difficult to meet the demand for rides with elongated directions, say, along meridians or along parallels.<\/p>\n<p>  What if we forcefully make different shared taxis move in different directions, albeit not exactly geodetically, but not on a very winding route either? One way to do this is to assign each vehicle a fixed route corridor within which it must then operate. Let&#8217;s arrange everything so that the taxis assigned to one corridor move along it in a chain with a small temporal distance from each other. We will assume that a taxi assigned to a corridor must pick up and drop off all the travelers it encounters, if their starting and ending points are within this corridor. The work of such a taxi service will resemble the work of regular city buses, with the only difference that the routes of regular buses are strictly fixed, while the choice of route for shared taxis, although limited by the boundaries of their assigned corridor, is otherwise free. To make all city trips possible with such a taxi, at least one route corridor must pass through any two points in the city.<\/p>\n<p>  Our task is to find \u00abgood\u00bb networks of route corridors. Instead of dealing with an infinite set of route corridors of arbitrary shape, we use a popular method in mathematics called \u00abdiscretization\u00bb and move to a sufficiently rich but (almost) finite subclass. Suppose we want to build a network of route corridors in a certain cellular city <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>, and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"\/> is their expected characteristic width. Using parallels and meridians, we divide our toroidal cellular city into equal squares <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"$S_{h,w}$\" data-tex=\"inline\"\/> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/43b\/a31\/dda\/43ba31dda07ca4562a6d11468cecf70b.svg\" alt=\"$1 \\leq h \\leq H$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/514\/229\/198\/514229198339e29185673400329327b0.svg\" alt=\"$1 \\leq w \\leq W$\" data-tex=\"inline\"\/> (where <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf6\/9d2\/66a\/bf69d266a1318ddc952968d940b60edc.svg\" alt=\"$h$\" data-tex=\"inline\"\/> is the \u00abrow\u00bb number, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/499\/78e\/f12\/49978ef12ee6820ac7fc4607771a3586.svg\" alt=\"$w$\" data-tex=\"inline\"\/> is the column number) of size <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"\/>. As before, we will call the collection of these squares a cellular grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h,w}}$\" data-tex=\"inline\"\/>, and the squares themselves <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"$S_{h,w}$\" data-tex=\"inline\"\/> are cells or units of this grid. In this work, the route corridors are made up exclusively of cells of the grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h,w}}$\" data-tex=\"inline\"\/>. Let&#8217;s formalize this idea a bit more precisely.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/lv\/ua\/sz\/lvuaszxje55n5onu0ukwn7tboao.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/lv\/ua\/sz\/lvuaszxje55n5onu0ukwn7tboao.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Fig. 13)<\/i><\/p>\n<h4>3.2 Cellular Paths: Definitions. <\/h4>\n<p>  Some of the squares of the grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a6a\/379\/3d3\/a6a3793d3128fe670d6f4371ecccab3d.svg\" alt=\"$\\{S_{h,w}\\}$\" data-tex=\"inline\"\/> are adjacent by side. If the city <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> has the shape of a torus and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ac9\/d37\/8b9\/ac9d378b9f89deeb299e9f64b270b46e.svg\" alt=\"$H>2$&#187; data-tex=&#187;inline&#187;\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/717\/416\/5b9\/7174165b9d979390b4ac52f2fb109caa.svg\" alt=\"$W>2$&#187; data-tex=&#187;inline&#187;\/>, then each square of the grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a6a\/379\/3d3\/a6a3793d3128fe670d6f4371ecccab3d.svg\" alt=\"$\\{S_{h,w}\\}$\" data-tex=\"inline\"\/> is exactly adjacent to four other cells. Using the concept of adjacency, one can construct the exact concept of a cellular path:<\/p>\n<p>  A <i>cellular path<\/i> on the grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h,w}}$\" data-tex=\"inline\"\/> is called any finite sequence of its cells <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3cb\/a99\/4d2\/3cba994d28545fe6b1646092e4c939ee.svg\" alt=\"$\\pi = S_{h_1,w_1}, \u2026 S_{h_N,w_N}$\" data-tex=\"inline\"\/> in which each next cell <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1fa\/751\/e74\/1fa751e745d9f122ce9bff202442c075.svg\" alt=\"$S_{h_{n+1},w_{n+1}}$\" data-tex=\"inline\"\/> is side-adjacent to the previous <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/602\/b8c\/af2\/602b8caf22ad1776ab3dccd0ba6814f7.svg\" alt=\"$S_{h_n,w_n}$\" data-tex=\"inline\"\/>. The number <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9aa\/e08\/704\/9aae087046a60218262bab4a00522adc.svg\" alt=\"$N$\" data-tex=\"inline\"\/> is called the (discrete) length of the path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>.<\/p>\n<p>  Those cellular paths whose last cell is adjacent to the first, we will call <i>cyclic<\/i>. By calling the path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3cb\/a99\/4d2\/3cba994d28545fe6b1646092e4c939ee.svg\" alt=\"$\\pi = S_{h_1,w_1}, \u2026 S_{h_N,w_N}$\" data-tex=\"inline\"\/> cyclic, we thereby imply that we consider the order of its elements not linear, but cyclic. From the point of view of the cyclic order, the element <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/db2\/1f3\/229\/db21f32297e956ca9e760ee8c24d3e69.svg\" alt=\"$\\pi_1 = S_{h_1,w_1}$\" data-tex=\"inline\"\/> \u00abfollows\u00bb the element <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/28c\/9bb\/d00\/28c9bbd00f3f5c462a1e697c42c02990.svg\" alt=\"$\\pi_N = S_{h_N,w_N}$\" data-tex=\"inline\"\/> and, accordingly, the element <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/28c\/9bb\/d00\/28c9bbd00f3f5c462a1e697c42c02990.svg\" alt=\"$\\pi_N = S_{h_N,w_N}$\" data-tex=\"inline\"\/> \u00abstands before\u00bb the element <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/db2\/1f3\/229\/db21f32297e956ca9e760ee8c24d3e69.svg\" alt=\"$\\pi_1 = S_{h_1,w_1}$\" data-tex=\"inline\"\/>.<\/p>\n<p>  Any two cyclic cellular paths, which consist of the same cells in the same cyclic sequence, even if their linear sequences are different, we will consider <i>equivalent<\/i> and identify with each other. For example, we will consider as identical the cyclic paths <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4ec\/9d8\/390\/4ec9d83903323f9eeadc261155396f74.svg\" alt=\"$\\pi = S_{1,1}, S_{1,2}, S_{1,3}, S_{2,3}, S_{3,3}, S_{3,2}, S_{3,1}, S_{2,1}$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7be\/298\/433\/7be298433d000eaae9b2ec722d9965b6.svg\" alt=\"$\\xi = S_{2,3}, S_{3,3}, S_{3,2}, S_{3,1}, S_{2,1}, S_{1,1}, S_{1,2}, S_{1,3}$\" data-tex=\"inline\"\/>. If the reader is familiar with the concept of cyclic permutations, it should be obvious to them that two cyclic cellular paths are identical if and only if the linear recordings of their elements are translated into each other by a cyclic permutation.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/4l\/vc\/ax\/4lvcax0dnifiuqnei3pffp5adro.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\" data-src=\"https:\/\/habrastorage.org\/webt\/4l\/vc\/ax\/4lvcax0dnifiuqnei3pffp5adro.jpeg\" data-blurred=\"true\"\/><\/div>\n<p>  <i>(Figure 14)<\/i><\/p>\n<p>  Actually, the subjects of our further research will be such networks of route corridors, all corridors within which are (cyclic) cellular paths, built on the same square grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h,w}}$\" data-tex=\"inline\"\/>. Let&#8217;s give a few more useful definitions.<\/p>\n<p>  A <i>segment of the cellular path<\/i> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fc3\/0b4\/6e6\/fc30b46e6aa3f35b05e63e1aba1a9e5a.svg\" alt=\"$\\pi = {\\pi_1 = S_{h_1,w_1}, \u2026 \\pi_N = S_{h_N,w_N}}$\" data-tex=\"inline\"\/> is called any cellular path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a07\/3bc\/ac5\/a073bcac59fc0a97cb15675a254944dc.svg\" alt=\"$\\eta$\" data-tex=\"inline\"\/>, all elements of which are composed of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/11d\/d3e\/8b5\/11dd3e8b5e1dc0fde9ad1316a2a5bb7e.svg\" alt=\"$K>0$&#187; data-tex=&#187;inline&#187;\/> consecutive elements of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/94c\/404\/222\/94c404222672a9c1092096a8ad8484ef.svg\" alt=\"$\\pi: \\eta = \\pi_M, \\pi_{M + 1}, \u2026 \\pi_{M+K-1}$\" data-tex=\"inline\"\/>.<\/p>\n<p>  A <i>segment of a cyclic cellular path<\/i> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> we will call any cellular path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a07\/3bc\/ac5\/a073bcac59fc0a97cb15675a254944dc.svg\" alt=\"$\\eta$\" data-tex=\"inline\"\/>, if it consists of the same elements as the path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>, and they are arranged in it in the same order in which they follow each other in <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> (For example, for the cyclic <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f11\/4bb\/686\/f114bb686b245bdb1c63e2163fb2a50e.svg\" alt=\"$\\pi = \\pi_1, \\pi_2, \u2026, \\pi_N$\" data-tex=\"inline\"\/> the path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0b7\/54b\/f99\/0b754bf998852e1544a6c6d8507782f2.svg\" alt=\"$\\eta = \\pi_N, \\pi_1, \\pi_2$\" data-tex=\"inline\"\/> will be its segment).<\/p>\n<p>  Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8ac\/a00\/fb4\/8aca00fb49c8320bee003d360a1e641f.svg\" alt=\"$O_{h,w}$\" data-tex=\"inline\"\/> be the center of the square <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"$S_ {h,w}$\" data-tex=\"inline\"\/>, and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3cb\/a99\/4d2\/3cba994d28545fe6b1646092e4c939ee.svg\" alt=\"$\\pi = S_{h_1,w_1}, \u2026 S_{h_N,w_N}$\" data-tex=\"inline\"\/> \u2014 any cellular path. Let&#8217;s connect the center of each square in the sequence <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> (with the shortest) segment to the center of the next square in <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>. The resulting sequence of segments <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/855\/4f0\/481\/8554f04816e0a5182c168124c89a9972.svg\" alt=\"$O_{h_1,w_1} O_{h_2,w_2}, \u2026, S_{h_{N-1},w_{N-1}} S_{h_N,w_N}$\" data-tex=\"inline\"\/> we will \u00abglue\u00bb into a single stepped curve. This curve we will denote as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6ee\/7f7\/1de\/6ee7f71de27863c554526696f284a821.svg\" alt=\"$mid({\\pi})$\" data-tex=\"inline\"\/> and call the <i>median line of the cellular path<\/i> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>. The length of the median line of the cellular path is expressed by the formula <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f46\/250\/273\/f462502730f53e1f3eb3243b30ec79fa.svg\" alt=\"$len(mid({\\pi})) = (N \u2013 1) \\times \\Delta l$\" data-tex=\"inline\"\/>, where <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9aa\/e08\/704\/9aae087046a60218262bab4a00522adc.svg\" alt=\"$N$\" data-tex=\"inline\"\/> is the length of the sequence <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>, and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"\/> is the length of the sides of the squares of the grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h,w}}$\" data-tex=\"inline\"\/>.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/i1\/3d\/bt\/i13dbtohsg1949_p_7uyito7d9w.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\" data-src=\"https:\/\/habrastorage.org\/webt\/i1\/3d\/bt\/i13dbtohsg1949_p_7uyito7d9w.jpeg\" data-blurred=\"true\"\/><\/div>\n<p>  <i>(Figure 15)<\/i><\/p>\n<p>  No matter what the cellular path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3cb\/a99\/4d2\/3cba994d28545fe6b1646092e4c939ee.svg\" alt=\"$\\pi = S_{h_1,w_1}, \u2026 S_{h_N,w_N}$\" data-tex=\"inline\"\/> is, in the sequences <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f08\/cf2\/fe8\/f08cf2fe8c4fb270c4aeb7ef3b8f70af.svg\" alt=\"$h_n = h_1, \u2026, h_N and w_n = w_1, \u2026 w_N$\" data-tex=\"inline\"\/>, formed by the first and second indices of its cells, each subsequent index is either equal to the previous one or is an adjacent integer (if <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> is a torus, then the index <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/db9\/dab\/383\/db9dab38380707541b2e886eed22c691.svg\" alt=\"$h=1$\" data-tex=\"inline\"\/> is considered adjacent to the index <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f96\/9bd\/b14\/f969bdb14e1ab476840ce028213aefb4.svg\" alt=\"$h=H$\" data-tex=\"inline\"\/>, and the index <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7e7\/0e7\/8ff\/7e70e78ff57a807fdf1967bdf660eb56.svg\" alt=\"$w=1$\" data-tex=\"inline\"\/> \u2013 adjacent to the index <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a87\/398\/5f9\/a873985f95ec02b7a568dc3ba1b0421b.svg\" alt=\"$w=W$\" data-tex=\"inline\"\/>). The latter, in particular, means that the cells of the path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> are located on the grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h,w}}$\" data-tex=\"inline\"\/> in some <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/342\/ac6\/f13\/342ac6f13230a0d19d3942336a552d7d.svg\" alt=\"$\\Delta h(\\pi )$\" data-tex=\"inline\"\/> sequentially lying rows and some <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/437\/660\/232\/437660232d28127db2f26e60be65eef1.svg\" alt=\"$\\Delta w(\\pi )$\" data-tex=\"inline\"\/> sequentially standing columns. The number <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/342\/ac6\/f13\/342ac6f13230a0d19d3942336a552d7d.svg\" alt=\"$\\Delta h(\\pi )$\" data-tex=\"inline\"\/> we will agree to call the <i>height<\/i> or <i>vertical span<\/i> of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>, and the number <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/437\/660\/232\/437660232d28127db2f26e60be65eef1.svg\" alt=\"$\\Delta w(\\pi )$\" data-tex=\"inline\"\/> \u2014 its <i>width<\/i> or <i>horizontal span<\/i>.<\/p>\n<h4>3.3 Cellular Paths of Minimal Length<\/h4>\n<p>  Let&#8217;s agree to call any cellular path, which contains the minimum number of cells among other cellular paths with the same start and end as it, minimal or geodesic. If the cellular path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a07\/3bc\/ac5\/a073bcac59fc0a97cb15675a254944dc.svg\" alt=\"$\\eta$\" data-tex=\"inline\"\/> is minimal and serves as a segment for the cellular path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>, then in relation to \\eta we will say that it is a minimal (geodesic) segment of the path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>.<\/p>\n<p>  <b>Exercise:<\/b> Verify that every one-cell path, just like any path composed of two different cells, will always be minimal. Prove that every segment \\eta of any minimal cellular path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> will be its minimal segment.<\/p>\n<p>  There is a fairly simple criterion for minimality, almost obvious for those who have dealt with chess. If you move a rook several times, the sequence of cells it passes through will be a cellular path. Suppose you need to move a rook from cell <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/096\/ed7\/65c\/096ed765c8bbbc1f1e34d3b19d3550ed.svg\" alt=\"$X$\" data-tex=\"inline\"\/> to cell <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/53a\/ea9\/f07\/53aea9f07ccaf30ffac7cd8719e70972.svg\" alt=\"$Y$\" data-tex=\"inline\"\/> so that the number of intermediate cells on its path is minimal. It is easy to figure out that in the case when <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/096\/ed7\/65c\/096ed765c8bbbc1f1e34d3b19d3550ed.svg\" alt=\"$X$\" data-tex=\"inline\"\/> is located lower and to the left of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/53a\/ea9\/f07\/53aea9f07ccaf30ffac7cd8719e70972.svg\" alt=\"$Y$\" data-tex=\"inline\"\/>, the solution to your problem will be any sequence of moves (starting at <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/096\/ed7\/65c\/096ed765c8bbbc1f1e34d3b19d3550ed.svg\" alt=\"$X$\" data-tex=\"inline\"\/> and ending at <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/53a\/ea9\/f07\/53aea9f07ccaf30ffac7cd8719e70972.svg\" alt=\"$Y$\" data-tex=\"inline\"\/>), in each of which the rook moves either up or to the right. Let&#8217;s give these considerations a rigorous form and generalize them to the case of a torus.<\/p>\n<p>  Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> be an arbitrary cellular path, and the square <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/602\/b8c\/af2\/602b8caf22ad1776ab3dccd0ba6814f7.svg\" alt=\"$S_{h_n,w_n}$\" data-tex=\"inline\"\/> is not the last element of it. The next square in the sequence <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1fa\/751\/e74\/1fa751e745d9f122ce9bff202442c075.svg\" alt=\"$S_{h_{n+1},w_{n +1}}$\" data-tex=\"inline\"\/>, either lies on the same horizontal with <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/602\/b8c\/af2\/602b8caf22ad1776ab3dccd0ba6814f7.svg\" alt=\"$S_{h_n,w_n}$\" data-tex=\"inline\"\/> and adjoins it from the right or left, or these squares stand on the same vertical and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1fa\/751\/e74\/1fa751e745d9f122ce9bff202442c075.svg\" alt=\"$S_{h_{n+1},w_{n +1}}$\" data-tex=\"inline\"\/> adjoins <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/602\/b8c\/af2\/602b8caf22ad1776ab3dccd0ba6814f7.svg\" alt=\"$S_{h_n,w_n}$\" data-tex=\"inline\"\/> from above or below. We will call the cellular path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> monotonic if and only if in the sequence <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> each subsequent square, when it is on the same horizontal as the previous one, always adjoins it either only from the left or always only from the right, and when it stands on the same vertical as the previous one, it always adjoins it either only from the top or always only from the bottom. The figure below shows examples of monotonic and non-monotonic paths.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/pz\/ie\/hv\/pziehvpxiskx-eiwnnrt6bkf4tq.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/pz\/ie\/hv\/pziehvpxiskx-eiwnnrt6bkf4tq.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(fig 16) <\/i><\/p>\n<p>  <b>Exercise: <\/b>The numeric sequence <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/924\/d1a\/1f6\/924d1a1f65ccdba0f8f7d2593ed04dbc.svg\" alt=\"$x_n = x_1, \u2026, x_N$\" data-tex=\"inline\"\/> is considered monotonic if as the number increases, the values of its elements change monotonically: they either do not decrease or do not increase. Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> be a rectangle (without teleportation between edges), check that the cellular path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3cb\/a99\/4d2\/3cba994d28545fe6b1646092e4c939ee.svg\" alt=\"$\\pi = S_{h_1,w_1}, \u2026 S_{h_N,w_N}$\" data-tex=\"inline\"\/> on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> is monotonic if and only if both numeric sequences of indices <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/132\/33e\/35c\/13233e35cf1b7229dab594cdc08dea1f.svg\" alt=\"$h_n = h_1, \u2026 h_N$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/68f\/934\/f4d\/68f934f4d2496c0613d0736c337a32a5.svg\" alt=\"$w_n = w_1, \u2026, w_N$\" data-tex=\"inline\"\/> are monotonic. Try to generalize the last statement to the case when <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> is a flat torus.<\/p>\n<p>  The concept of a monotonic cellular path is closely related to the concept of a monotonic step curve, which was introduced in paragraph 4.4 of Part 1 for the case of a plane and naturally extends to a flat torus (construct the generalization explicitly). It should be obvious to the reader that a path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> that includes more than one cell is monotonic if and only if its median line <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6ee\/7f7\/1de\/6ee7f71de27863c554526696f284a821.svg\" alt=\"$mid({\\pi})$\" data-tex=\"inline\"\/> is monotonic (check!). In addition, as with curves, the monotonicity of cellular paths says something about their property to have a minimal length. The connections between these concepts are expressed in the following<\/p>\n<p>  <i>Lemma about the minimum path (criteria for minimality). <\/i><br \/>  Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> be a rectangle or a flat torus, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h,w}}$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/43b\/a31\/dda\/43ba31dda07ca4562a6d11468cecf70b.svg\" alt=\"$1 \\leq h \\leq H$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/514\/229\/198\/514229198339e29185673400329327b0.svg\" alt=\"$1 \\leq w \\leq W$\" data-tex=\"inline\"\/> \u2014 square grid on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> \u2014 cellular path over <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h,w}}$\" data-tex=\"inline\"\/>, in this case:<\/p>\n<p>  1) <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> is minimal if and only if its median <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6ee\/7f7\/1de\/6ee7f71de27863c554526696f284a821.svg\" alt=\"$mid({\\pi})$\" data-tex=\"inline\"\/> is the shortest in the class of step curves on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>;<br \/>  2) if <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> is a rectangle, then the path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> will be minimal if and only if it is monotonic;<br \/>  3) if <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/> is a torus, then the path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> will be minimal if and only if it possesses the following two properties:<br \/>   a) <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> is monotonic,<br \/>   b) the median line of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> is such that its horizontal span is no more than half the length of the parallel, and vertically \u2014 no more than half the length of the meridian of the torus <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>.<\/p>\n<p>  <i>Proof. <\/i><br \/>  As an example, I&#8217;ll prove 1), and leave 2) and 3), which follow easily from 1), to the reader.<\/p>\n<p>  Sufficiency of 1). The length of the median line of a cellular path is expressed through the number of squares that this path is composed of. Therefore, if the median line is the shortest (in the class of step curves), then no other cellular path with the same start and end can consist of a smaller number of squares. So, if the median line of the path is the shortest, then the path itself is necessarily minimal.<\/p>\n<p>  Necessity of 1). All minimal cellular paths with the same start <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w\u2019}$\" data-tex=\"inline\"\/> and end <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h\u2019',w\u2019\u2019}$\" data-tex=\"inline\"\/> consist of the same number of squares, hence their median lines have the same length. It turns out, to complete the proof of 1) it is enough to construct at least one cellular path starting in the cell <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w\u2019}$\" data-tex=\"inline\"\/> and ending in <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h\u2019',w\u2019\u2019}$\" data-tex=\"inline\"\/>, where the median line would be the shortest step curve between the centers of these cells.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/x6\/hd\/yz\/x6hdyzgujogi7vac0ejbanm6nfw.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/x6\/hd\/yz\/x6hdyzgujogi7vac0ejbanm6nfw.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(fig 17) <\/i><\/p>\n<p>  Doing this is not difficult. According to 1.6, no matter what two points of the torus are, among the shortest step curves connecting the first with the second, there is at least one <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"\/>-shaped one (consisting of no more than one horizontal and no more than one vertical segment). Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/> be this <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"\/>-shaped shortest step curve from the center of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w\u2019}$\" data-tex=\"inline\"\/> to the center of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h\u2019',w\u2019\u2019}$\" data-tex=\"inline\"\/>. It is easy to see that the sequence of cells that the path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/> passes through is a cellular path starting in <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w\u2019}$\" data-tex=\"inline\"\/> and ending in <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h\u2019',w\u2019\u2019}$\" data-tex=\"inline\"\/>. All that remains is to note that for this cellular path, the curve <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"\/> is its median line.<\/p>\n<p>  <b>Exercise:<\/b> Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h,w}}$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/43b\/a31\/dda\/43ba31dda07ca4562a6d11468cecf70b.svg\" alt=\"$1 \\leq h \\leq H$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/514\/229\/198\/514229198339e29185673400329327b0.svg\" alt=\"$1 \\leq w \\leq W$\" data-tex=\"inline\"\/> be a square grid on a torus. Show that a monotone cellular path is minimal when its range horizontally does not exceed the integer part of the number <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/149\/ce5\/835\/149ce58356a04d11aa92ef4c586e0151.svg\" alt=\"$(W+1)\/2$\" data-tex=\"inline\"\/>, and its range vertically \u2014 does not exceed the integer part of the number <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bea\/2c3\/a73\/bea2c3a73abcc6602b5c32d2b55365ca.svg\" alt=\"$(H+1)\/2$\" data-tex=\"inline\"\/>.<\/p>\n<h4>3.4 Requirements for \u00abGood\u00bb Routing Corridor Networks<\/h4>\n<p>  <i>Geodesic Connectivity.<\/i><br \/>  Suppose the city is already divided into squares <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a48\/2c5\/f70\/a482c5f70f38cdd24eff89bdd804216c.svg\" alt=\"$\\{S_{i,j}\\}$\" data-tex=\"inline\"\/> and some set of cellular paths <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/74e\/ae7\/0f4\/74eae70f4b6a30bfdc2e668e243beedb.svg\" alt=\"$\\Omega$\" data-tex=\"inline\"\/> claims to serve as a network of route corridors for a shared taxi. If we want this taxi to allow any city journey, then we must require that any two cells <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/db6\/fa9\/e31\/db6fa9e3160b3aac342ef8fd26df87b5.svg\" alt=\"$S_{I',j\u2019}$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/83b\/619\/2a6\/83b6192a65cc1819834342de9f52927d.svg\" alt=\"$S_{I'\u2019,j\u2019\u2019}$\" data-tex=\"inline\"\/> were connected by at least one segment of at least one cellular path from \\Omega. We will call corridor networks that meet this requirement <i>route-connected<\/i>. <\/p>\n<p>  In fact, the requirement of simple route connectivity is still too weak and cannot guarantee the practical suitability of networks that meet it. The <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ef6\/4b5\/6d1\/ef64b56d13c5e0ad457100f407e224de.svg\" alt=\"$&quot;Snake&quot;$\" data-tex=\"inline\"\/> network, which consists of a single route corridor snaking around all the city&#8217;s cells, is obviously route-connected, but it&#8217;s hard to call it \u00abgood\u00bb in practical terms. A journey along the snake-like corridor from one random point to another will, on average, be much longer than if it were to follow the optimal route.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/tq\/tv\/ib\/tqtviboldma-q9rqougzkg7jviy.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/tq\/tv\/ib\/tqtviboldma-q9rqougzkg7jviy.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(fig 18) <\/i><\/p>\n<p>  The \u00absnake\u00bb example suggests how we should modify the requirement of route connectivity to make it practically meaningful.<\/p>\n<p>  We will call a network of cellular routes <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/74e\/ae7\/0f4\/74eae70f4b6a30bfdc2e668e243beedb.svg\" alt=\"$\\Omega$\" data-tex=\"inline\"\/> <i>geodesically connected<\/i> if, for any pair of squares <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/db6\/fa9\/e31\/db6fa9e3160b3aac342ef8fd26df87b5.svg\" alt=\"$S_{I',j\u2019}$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/83b\/619\/2a6\/83b6192a65cc1819834342de9f52927d.svg\" alt=\"$S_{I'\u2019,j\u2019\u2019}$\" data-tex=\"inline\"\/> in the grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3b0\/d45\/27d\/3b0d4527d5b631fee3b08f1212206af2.svg\" alt=\"${S_{i,j}}$\" data-tex=\"inline\"\/>, there exists at least one route in <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/74e\/ae7\/0f4\/74eae70f4b6a30bfdc2e668e243beedb.svg\" alt=\"$\\Omega$\" data-tex=\"inline\"\/> that connects these cells by one of its minimal (geodesic) segments. In other words, there should exist a cellular path <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> and a segment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a07\/3bc\/ac5\/a073bcac59fc0a97cb15675a254944dc.svg\" alt=\"$\\eta$\" data-tex=\"inline\"\/> of it among the elements of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/74e\/ae7\/0f4\/74eae70f4b6a30bfdc2e668e243beedb.svg\" alt=\"$\\Omega$\" data-tex=\"inline\"\/> such that the squares <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/db6\/fa9\/e31\/db6fa9e3160b3aac342ef8fd26df87b5.svg\" alt=\"$S_{I',j\u2019}$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/83b\/619\/2a6\/83b6192a65cc1819834342de9f52927d.svg\" alt=\"$S_{I'\u2019,j\u2019\u2019}$\" data-tex=\"inline\"\/> serve as the beginning and end for <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a07\/3bc\/ac5\/a073bcac59fc0a97cb15675a254944dc.svg\" alt=\"$\\eta$\" data-tex=\"inline\"\/>, and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a07\/3bc\/ac5\/a073bcac59fc0a97cb15675a254944dc.svg\" alt=\"$\\eta$\" data-tex=\"inline\"\/> itself is minimal. If a network of route corridors is geodesically connected, then from the center of each square in the grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3b0\/d45\/27d\/3b0d4527d5b631fee3b08f1212206af2.svg\" alt=\"${S_{i,j}}$\" data-tex=\"inline\"\/>, in theory at least, a passenger can reach the center of any other by the shortest (stepped) route.<\/p>\n<p>  <i>Competitive Minimalism. <\/i><br \/>  Constructing any kind of geodesically connected network of route corridors is not difficult. For example, we get such a network if, for each pair of cells <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d7a\/7ea\/6b1\/d7a7ea6b1b145b3388b5987ab4971291.svg\" alt=\"$(S_{I',j\u2019}, S_{I'\u2019,j\u2019\u2019})$\" data-tex=\"inline\"\/>, we add some minimal cellular path from the first cell to the second to the initially empty set of corridors. As a result, the collected set of corridors <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e18\/0a8\/628\/e180a86287cecfed7f6c0bfe6bdbfd6a.svg\" alt=\"$\\Omega_{full}$\" data-tex=\"inline\"\/> will obviously be geodesically connected, but can it be considered \u00abgood\u00bb for practical implementation? To answer this question, let&#8217;s estimate the average number of different route corridors in <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e18\/0a8\/628\/e180a86287cecfed7f6c0bfe6bdbfd6a.svg\" alt=\"$\\Omega_{full}$\" data-tex=\"inline\"\/> whose minimal segments allow you to get from a random cell <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/db6\/fa9\/e31\/db6fa9e3160b3aac342ef8fd26df87b5.svg\" alt=\"$S_{I',j\u2019}$\" data-tex=\"inline\"\/> to a random cell <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/83b\/619\/2a6\/83b6192a65cc1819834342de9f52927d.svg\" alt=\"$S_{I'\u2019,j\u2019\u2019}$\" data-tex=\"inline\"\/>.<\/p>\n<p>  For simplicity, let&#8217;s assume that the city&#8217;s length and width are equal. In this case, the grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3b0\/d45\/27d\/3b0d4527d5b631fee3b08f1212206af2.svg\" alt=\"${S_{i,j}}$\" data-tex=\"inline\"\/> has as many columns as rows, let&#8217;s denote their number as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9aa\/e08\/704\/9aae087046a60218262bab4a00522adc.svg\" alt=\"$N$\" data-tex=\"inline\"\/>. Then:<\/p>\n<p>  1) the number of different pairs of squares in the grid will be of order <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/7bd\/24e\/3da7bd24e4723e0a7052c66c1d9f47b0.svg\" alt=\"$N^4$\" data-tex=\"inline\"\/>;<br \/>  2) the number of different route corridors in <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e18\/0a8\/628\/e180a86287cecfed7f6c0bfe6bdbfd6a.svg\" alt=\"${\\Omega}_{full}$\" data-tex=\"inline\"\/> will also be of order <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/7bd\/24e\/3da7bd24e4723e0a7052c66c1d9f47b0.svg\" alt=\"$N^4$\" data-tex=\"inline\"\/>;<br \/>  3) on average, each corridor in <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/afe\/b79\/a38\/afeb79a3841e1b75854fc74f22ef58cd.svg\" alt=\"${\\Omega}{full}$\" data-tex=\"inline\"\/> will have about <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9aa\/e08\/704\/9aae087046a60218262bab4a00522adc.svg\" alt=\"$N$\" data-tex=\"inline\"\/> cells, so each such corridor will connect about <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/de1\/312\/4b3\/de13124b384e212ed1dea77f83615b84.svg\" alt=\"$N^2$\" data-tex=\"inline\"\/> pairs of cells in the grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d29\/270\/cee\/d29270cee7a82a6ea8c4df8782a24232.svg\" alt=\"${S{i,j}}$\" data-tex=\"inline\"\/>;<br \/>  4) from 1)-3), it follows that typically a pair of cells will be connected by a number of corridors of the order of <i>\u00abtotal number of corridors\u00bb<\/i> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2e5\/d99\/c39\/2e5d99c396893d20556c59cd92761d95.svg\" alt=\"$\u00d7$\" data-tex=\"inline\"\/> <i>\u00abaverage number of pairs of cells connected by one corridor\u00bb<\/i> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/77b\/b72\/6e0\/77bb726e06069a8c8d83fde26a46e00f.svg\" alt=\"$\/$\" data-tex=\"inline\"\/> <i>\u00abtotal number of pairs of cells\u00bb<\/i> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b92\/287\/f6e\/b92287f6e8c82916f98eda863b81dee5.svg\" alt=\"$\\sim N^2$\" data-tex=\"inline\"\/>.<\/p>\n<p>  It turns out that if we put into operation a shared taxi with a network of route corridors <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e18\/0a8\/628\/e180a86287cecfed7f6c0bfe6bdbfd6a.svg\" alt=\"${\\Omega}_{full}$\" data-tex=\"inline\"\/>, then on average, cars from about <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/de1\/312\/4b3\/de13124b384e212ed1dea77f83615b84.svg\" alt=\"$N^2$\" data-tex=\"inline\"\/> different route corridors will compete for each passenger. The number <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9aa\/e08\/704\/9aae087046a60218262bab4a00522adc.svg\" alt=\"$N$\" data-tex=\"inline\"\/> is essentially how many times the city&#8217;s width is larger than the width of a route corridor. Obviously, in practice, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9aa\/e08\/704\/9aae087046a60218262bab4a00522adc.svg\" alt=\"$N$\" data-tex=\"inline\"\/> will not be less than <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5ff\/655\/976\/5ff6559764b30733712b6cf642149196.svg\" alt=\"$5-10$\" data-tex=\"inline\"\/>. Now let&#8217;s recall that our estimates of the average number of passengers a taxi will transport at once with a geodesic route were calculated under the assumption that there is no competition for passengers. If we divide the optimistic <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7d5\/df9\/beb\/7d5df9beb2fcb84d4b769d2a27a5adf0.svg\" alt=\"$10-30$\" data-tex=\"inline\"\/> people we got then by <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/501\/958\/c35\/501958c356023b4338a47ea44b2c6929.svg\" alt=\"$5^2-10^2$\" data-tex=\"inline\"\/>, the result will no longer look so attractive and promising.<\/p>\n<p>  Imagine any route-corridor taxi. It is plausible to think that the price (cost) a passenger must pay for his ride, all other things being equal, will be inversely proportional to the number of his fellow passengers. The number of fellow passengers is inversely proportional to the number of cars competing for the passenger or the same \u2014 the number of route corridors competing for his journey. From the last two statements, we conclude that the average fare for a shared taxi is proportional to the average number of route corridors competing for this ride. If we want to make rides cheaper, we should use networks of route corridors in which competition between corridors is low. In other words, we can consider a network of route corridors \\Omega to be \u00abgood\u00bb only when the average number of its corridors, whose minimal segments connect the squares <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/db6\/fa9\/e31\/db6fa9e3160b3aac342ef8fd26df87b5.svg\" alt=\"$S_{I',j\u2019}$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/83b\/619\/2a6\/83b6192a65cc1819834342de9f52927d.svg\" alt=\"$S_{I'\u2019,j\u2019\u2019}$\" data-tex=\"inline\"\/>, is small and ideally close to one \u2014 this is the requirement of <i>competitive minimalism<\/i>.<\/p>\n<p>  Let&#8217;s now move on to an example of a network that is both geodesically connected and sufficiently competitively minimalist.<\/p>\n<h3><font color=\"#0099cc\">4. Shared Taxi with Rectangular Routes<\/font><\/h3>\n<p>  <\/p>\n<h4>4.1 Network of Large Rectangles<\/h4>\n<p>  Suppose we are dealing with a flat torus that is divided into squares of the grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a6a\/379\/3d3\/a6a3793d3128fe670d6f4371ecccab3d.svg\" alt=\"$\\{S_{h,w}\\}$\" data-tex=\"inline\"\/>. It will be convenient for us to assume that the number of rows <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/26d\/143\/6f5\/26d1436f51b75e0df6df1d8f1eb322ec.svg\" alt=\"$H$\" data-tex=\"inline\"\/> and columns <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9d6\/2a0\/23c\/9d62a023cc815cf2ba689c84661d7660.svg\" alt=\"$W$\" data-tex=\"inline\"\/> is odd: <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/604\/f79\/1d4\/604f791d43ee927f8eae8506650554a1.svg\" alt=\"$H = 2M + 1$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d45\/df9\/f5f\/d45df9f5f86d1e5d6152eb1883c3b2e0.svg\" alt=\"$W = 2N +1$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/aae\/614\/459\/aae61445919a62c65c6d9ea56d73d5c8.svg\" alt=\"$- M \\leq h \\leq M$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c9a\/b1b\/bca\/c9ab1bbcaec27e5840b1f283837e1595.svg\" alt=\"$- N \\leq w \\leq N$\" data-tex=\"inline\"\/>. Consider two arbitrary cells <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h\u2019\u2019,w\u2019\u2019}$\" data-tex=\"inline\"\/>. If these cells belong to different rows and columns, then from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/> exactly two <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"\/>-shaped shortest cellular paths can be drawn, and otherwise \u2014 exactly one shortest \u00abstraight\u00bb path (think about whether this statement will be correct if one of the numbers <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/26d\/143\/6f5\/26d1436f51b75e0df6df1d8f1eb322ec.svg\" alt=\"$H$\" data-tex=\"inline\"\/> or <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9d6\/2a0\/23c\/9d62a023cc815cf2ba689c84661d7660.svg\" alt=\"$W$\" data-tex=\"inline\"\/> is even?). In both cases, these shortest paths can be, and not in a unique way, completed to closed rectangles. The latter means that any two cells of the grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a6a\/379\/3d3\/a6a3793d3128fe670d6f4371ecccab3d.svg\" alt=\"$\\{S_{h,w}\\}$\" data-tex=\"inline\"\/> can be connected to each other by a geodesic segment of some rectangular cellular path.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/uh\/cd\/zs\/uhcdzsgieluj9856leyqkqeqkv0.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/uh\/cd\/zs\/uhcdzsgieluj9856leyqkqeqkv0.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Fig 19)<\/i><\/p>\n<p>  In order to connect all pairs of cells with geodesic segments, it is not necessary to take all rectangles on <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h,w}}$\" data-tex=\"inline\"\/>. The shortest \\Gamma \u2014 shaped cellular path from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h\u2019\u2019,w\u2019\u2019}$\" data-tex=\"inline\"\/> is no more than <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ff8\/fb3\/17e\/ff8fb317eae6c072bb8ba921b86aaeb2.svg\" alt=\"$N+1$\" data-tex=\"inline\"\/> cells wide and no more than <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ea8\/476\/acc\/ea8476acc1a486af699bc71872f757fc.svg\" alt=\"$M + 1$\" data-tex=\"inline\"\/> cell high (otherwise its median line will be too large, see paragraph 3.3), which means it can always be completed to a rectangle of size <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/da5\/5c5\/e68\/da55c5e687cb198a3d76a8b690680d60.svg\" alt=\"$N+1 \\times M+1$\" data-tex=\"inline\"\/> cells. Thus, for the network of route corridors to be geodesically connected, it is enough to include all rectangles of size <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/da5\/5c5\/e68\/da55c5e687cb198a3d76a8b690680d60.svg\" alt=\"$N+1 \\times M+1$\" data-tex=\"inline\"\/> cells.<\/p>\n<p>  We will call rectangular cyclic cellular paths with a width of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ff8\/fb3\/17e\/ff8fb317eae6c072bb8ba921b86aaeb2.svg\" alt=\"$N+1$\" data-tex=\"inline\"\/> cells and a height of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ea8\/476\/acc\/ea8476acc1a486af699bc71872f757fc.svg\" alt=\"$M+1$\" data-tex=\"inline\"\/> cell \u00ablarge rectangles\u00bb and divide them into clockwise-oriented (negatively oriented) and counterclockwise-oriented (positively oriented). It is easy to see that if cells <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/> are in a general position relative to each other (that is, they lie in different rows and columns), then exactly one large rectangle passes through them (up to equivalence, see paragraph 3.2) oriented clockwise (negative orientation), and exactly one oriented counterclockwise (positive orientation). From this it follows that the set <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b26\/7df\/f4f\/b267dff4f9f0d59694451fe51f3211bb.svg\" alt=\"$Rotor^+$\" data-tex=\"inline\"\/> of all large rectangles with positive orientation and the set <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bea\/1d5\/bff\/bea1d5bffc8d4af0ee2344c9b06b5f1d.svg\" alt=\"$Rotor^-$\" data-tex=\"inline\"\/> of all large rectangles with negative orientation are both geodesically connected networks of route corridors with a competition index close to 1.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/dl\/gt\/t8\/dlgtt8g46ezeoxlpephzj48cmoc.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/dl\/gt\/t8\/dlgtt8g46ezeoxlpephzj48cmoc.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Fig 20)<\/i><\/p>\n<p>  Below is a detailed analysis of a taxi with the <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b26\/7df\/f4f\/b267dff4f9f0d59694451fe51f3211bb.svg\" alt=\"$Rotor^+$\" data-tex=\"inline\"\/> network of route corridors. Note that along each route corridor in <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b26\/7df\/f4f\/b267dff4f9f0d59694451fe51f3211bb.svg\" alt=\"$Rotor^+$\" data-tex=\"inline\"\/> a chain of cars moves only in one direction: counterclockwise.<\/p>\n<h4>4.2 Transport load and passenger flow. <\/h4>\n<p>  To calculate the average number <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"\/> of passengers that a single taxi car carries at the same time, we introduce the concept of transport load. In a city covered by a grid <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a6a\/379\/3d3\/a6a3793d3128fe670d6f4371ecccab3d.svg\" alt=\"$\\{ S_{h,w}\\}$\" data-tex=\"inline\"\/> of size <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/26d\/143\/6f5\/26d1436f51b75e0df6df1d8f1eb322ec.svg\" alt=\"$H$\" data-tex=\"inline\"\/> rows <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9d6\/2a0\/23c\/9d62a023cc815cf2ba689c84661d7660.svg\" alt=\"$W$\" data-tex=\"inline\"\/> columns, a random traveler moves on average <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1ef\/284\/acb\/1ef284acbad2f99a285a95923505ee0a.svg\" alt=\"$W\/4 \\approx N\/2$\" data-tex=\"inline\"\/> cells horizontally <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/90a\/a25\/89e\/90aa2589e26387a0669cefc2b51a06b0.svg\" alt=\"$+ H\/4 \\approx M\/2$\" data-tex=\"inline\"\/> cells vertically (from the center of the main map to its random point, see paragraph 4.4 of the first part). We can say that by appearing on the city map, a traveler creates a need for moving <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d4a\/c7f\/4b6\/d4ac7f4b6821aecb794f61695d169e22.svg\" alt=\"$1$\" data-tex=\"inline\"\/> person on average <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/090\/4cf\/8d2\/0904cf8d283294a2fae3f9d41aafe5c8.svg\" alt=\"$(M + N)\/2$\" data-tex=\"inline\"\/> person-cells \u2014 this is the <i>transport load<\/i> he brings. In one unit of time, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/354\/c72\/a4e\/354c72a4ee5bcfd935efda6a451fe682.svg\" alt=\"${\\sigma} \\Delta l^2$\" data-tex=\"inline\"\/> travelers appear inside one cell, so each cell generates a transport load of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0a2\/bd2\/add\/0a2bd2add5bce4dff12d74f76f9d83c6.svg\" alt=\"$\\approx1\/2 (M + N) \\times {\\sigma}d^2$\" data-tex=\"inline\"\/> per unit of time, and all cells together generate <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/055\/bef\/aeb\/055befaebb80d0b13a898f0a03571469.svg\" alt=\"$ \\approx 2MN(M + N) \\times {\\sigma} \\Delta l^2$\" data-tex=\"inline\"\/> person-cells.<\/p>\n<p>  Taxi cars transport travelers and thus satisfy (neutralize) the transport load. Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e6d\/c2a\/dbe\/e6dc2adbe17146ec3dc97c1e6cde3cfa.svg\" alt=\"$\\bar {v}$\" data-tex=\"inline\"\/> be the average speed at which a taxi car integrally passes the cells of its route corridor, that is, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e6d\/c2a\/dbe\/e6dc2adbe17146ec3dc97c1e6cde3cfa.svg\" alt=\"$\\bar {v}$\" data-tex=\"inline\"\/> is such a value that on average per unit of time the car moves forward by <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2fc\/950\/2a7\/2fc9502a70022a49840887eae557b325.svg\" alt=\"$\\bar {v}\/\\Delta l$\" data-tex=\"inline\"\/> cells. Since any traveler&#8217;s trip always goes along the minimum segment of the route corridor, from the passengers&#8217; point of view, the taxi does not pass \u00abextra\u00bb cells. The latter means that in one unit of time one taxi car eliminates <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/df0\/91a\/f64\/df091af648ec2606ffa3a39dbb758a40.svg\" alt=\"$n_{pass} \\bar {v}\/\\Delta l$\" data-tex=\"inline\"\/> units of the transport load generated by the city. Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/575\/a8d\/cbe\/575a8dcbe04a2baaa6e8aad84a70550e.svg\" alt=\"$N_bus$\" data-tex=\"inline\"\/> be the number of all cars in the taxi service. The requirement for balance between generation and elimination of transport load leads us to the equation:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7d1\/db6\/a1b\/7d1db6a1be3ecfc66b7fde269d5c74ac.svg\" alt=\"$N_{bus} \\times n_{pass} \\bar {v}\/\\Delta l = 2MN(M + N) \\times {\\sigma}(\\Delta l)^2 \\ \\ \\ \\ \\ \\ (1)$\" data-tex=\"inline\"\/><\/p>\n<p>  To express <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a1c\/8ea\/e54\/a1c8eae54dfecaf810b61c1c69cda21c.svg\" alt=\"$\\bar {n_{pass}}$\" data-tex=\"inline\"\/> from it, we need to find what <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/575\/a8d\/cbe\/575a8dcbe04a2baaa6e8aad84a70550e.svg\" alt=\"$N_bus$\" data-tex=\"inline\"\/> is. Let&#8217;s first say that <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"\/> is such that the average distance between neighboring buses of the same route is equal to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"\/>, that is, there is exactly <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d4a\/c7f\/4b6\/d4ac7f4b6821aecb794f61695d169e22.svg\" alt=\"$1$\" data-tex=\"inline\"\/> bus for each cell of the corridor. In this case, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/575\/a8d\/cbe\/575a8dcbe04a2baaa6e8aad84a70550e.svg\" alt=\"$N_bus$\" data-tex=\"inline\"\/> is exactly equal to the number of cells in all the route corridors <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b26\/7df\/f4f\/b267dff4f9f0d59694451fe51f3211bb.svg\" alt=\"$Rotor^+$\" data-tex=\"inline\"\/>, let&#8217;s count them.<\/p>\n<p>  Each large rectangle contains <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/27d\/93d\/c87\/27d93dc878302969b3bc1d0b9f0aa86e.svg\" alt=\"$M + N + M + N = 2(M + N)$\" data-tex=\"inline\"\/> cells. Each of the <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a5b\/e8e\/d0b\/a5be8ed0baf544260552182f2078318b.svg\" alt=\"$(2M + 1)(2N + 1) \\approx 4MN$\" data-tex=\"inline\"\/> grid cells <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h,w}}$\" data-tex=\"inline\"\/> serves as the bottom left corner for exactly one large rectangle. From the last two statements, it follows that all the corridors <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b26\/7df\/f4f\/b267dff4f9f0d59694451fe51f3211bb.svg\" alt=\"$Rotor^+$\" data-tex=\"inline\"\/> contain (taking into account repetitions) <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e5b\/1a8\/e78\/e5b1a8e788da6d0cca487cb3f5b9a5cd.svg\" alt=\"$\\approx 8MN(M + N)$\" data-tex=\"inline\"\/> grid cells <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h,w}}$\" data-tex=\"inline\"\/>. Substituting the found <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/242\/1f7\/744\/2421f7744924af7e911a851e7a02174f.svg\" alt=\"$N_{bus}$\" data-tex=\"inline\"\/> into equation <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/452\/8ed\/91b\/4528ed91b509473bf12512f61f9cdce5.svg\" alt=\"$(1)$\" data-tex=\"inline\"\/>, we get:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8ac\/c99\/7cb\/8acc997cb528f140e05cba8174042c1b.svg\" alt=\"$8MN(M + N) n_{pass} \\bar {v}\/\\Delta l = 2MN(M + N){\\sigma}(\\Delta l)^2\\ \\ \\ \\ \\ \\ (2)$\" data-tex=\"inline\"\/><\/p>\n<p>  from where<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80d\/ccc\/748\/80dccc74804d607bbc8060d27cbd9c3b.svg\" alt=\"$n_{pass} = 1\/4\\ {\\sigma} (\\Delta l)^3\/ \\bar {v}\\ \\ \\ \\ \\ \\ (3) $\" data-tex=\"inline\"\/><\/p>\n<p>  Let&#8217;s now assume that the bus interval <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"\/> is chosen arbitrarily. In this case, the distance between neighboring vehicles of one route will be <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/076\/96e\/70a\/07696e70abf5c075897ad2fcfd63be48.svg\" alt=\"$\\Delta T \\bar {v}$\" data-tex=\"inline\"\/>, and their number in the city will change by <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/555\/936\/114\/5559361142d8dba93cc158e8d0c5b253.svg\" alt=\"$\\Delta l\/ \\Delta T \\bar {v}$\" data-tex=\"inline\"\/> times compared to what we had above. The more taxi cars there are, the less transportation load falls on each of them, and therefore the less the average number of passengers simultaneously transported by one car should be. Thus, for an arbitrary <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"\/>:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/93c\/3dc\/c4a\/93c3dcc4aeb3bb41e4c23b367cd02518.svg\" alt=\"$n_{pass} = 1\/4\\ \\sigma (\\Delta l)^3\/ \\bar {v} \\times \\Delta T \\bar {v}\/\\Delta l = 1\/4\\ \\Delta T \\sigma (\\Delta l)^2 \\ \\ \\ \\ \\ \\ (4)$\" data-tex=\"inline\"\/><\/p>\n<p>  It is remarkable that <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"\/> ultimately does not directly depend on the average speed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e6d\/c2a\/dbe\/e6dc2adbe17146ec3dc97c1e6cde3cfa.svg\" alt=\"$\\bar {v}$\" data-tex=\"inline\"\/>.<\/p>\n<p>  And so, we expressed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"\/>, that is, the average number of passengers who are simultaneously in the salon of one car, averaged over all taxi cars and all their working time. However, it is interesting to know not only this super-averaged value, but also how the expected number of passengers in the salon changes over time for a specific car, and how its time-averaged value differs for different cars?<\/p>\n<p>  The answer to the second question should be obvious: since all route corridors of the <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b26\/7df\/f4f\/b267dff4f9f0d59694451fe51f3211bb.svg\" alt=\"$Rotor^+$\" data-tex=\"inline\"\/> network are equivalent (any large rectangle can be translated into any other by torus movement), then the average conditions over time of all cars circulating along these corridors will be absolutely identical. Let&#8217;s now answer the question of how the expected number of passengers in a taxi cabin changes as it moves forward along its corridor.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/in\/nh\/bx\/innhbx_rjhh3mc4uk7rj45gv478.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/in\/nh\/bx\/innhbx_rjhh3mc4uk7rj45gv478.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Fig 21)<\/i><\/p>\n<p>  Cars from many large rectangles compete for the transportation of passengers between squares located within one row or one column. In the same case, when squares <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h\u2019\u2019,w\u2019\u2019}$\" data-tex=\"inline\"\/> belong to different rows and different columns, you can get from one to another via a single large rectangle from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b26\/7df\/f4f\/b267dff4f9f0d59694451fe51f3211bb.svg\" alt=\"$Rotor^+$\" data-tex=\"inline\"\/>. From all this, we can conclude that while a taxi is driving, say, along the left side of its assigned large rectangle <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>, the vast majority of passengers it picks up there are heading to the cells of the lower side of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>, and most of the passengers it drops off came from the cells of the upper side of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>. It is clear that similar statements will be true in cases where the taxi is on any other side of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>.<\/p>\n<p>  Considering the remark above, we can count how many passengers, on average, a taxi picks up and drops off inside each non-corner cell of the rectangle <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>. For definiteness, let&#8217;s consider the cell <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/> on the left side of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> again. The expected number of passengers that the car will bring to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/> from the cells of the upper side of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> can be expressed by the formula:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/204\/b44\/f0a\/204b44f0ac250dc3f038c3d746b2d592.svg\" alt=\"$K_{out} \\approx \\Delta T\\sigma \\times$\" data-tex=\"inline\"\/> <i>\u00abarea of cell <\/i><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/><i>\u00bb<\/i> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2e5\/d99\/c39\/2e5d99c396893d20556c59cd92761d95.svg\" alt=\"$\\times$\" data-tex=\"inline\"\/> <i>\u00abarea of cells on the upper side of <\/i> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/><i>\u00bb<\/i><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/77b\/b72\/6e0\/77bb726e06069a8c8d83fde26a46e00f.svg\" alt=\"$\/$\" data-tex=\"inline\"\/> <i>\u00abarea of the city\u00bb<\/i><\/p>\n<p>  In turn, the expected number of passengers who will go by this car from the cell <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/> to the cells of the lower side of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/> can be approximately expressed by the formula:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a53\/e42\/3f6\/a53e423f632e5e816483cb3a66257bb8.svg\" alt=\"$K_{in} \\approx \\Delta T\\sigma \\times$\" data-tex=\"inline\"\/> <i>\u00abarea of cell\u00bb<\/i> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/><i>&#171;<\/i> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2e5\/d99\/c39\/2e5d99c396893d20556c59cd92761d95.svg\" alt=\"$\\times$\" data-tex=\"inline\"\/> <i>\u00abarea of cells on the lower side of\u00bb<\/i> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/><i>&#171;<\/i><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/77b\/b72\/6e0\/77bb726e06069a8c8d83fde26a46e00f.svg\" alt=\"$\/$\" data-tex=\"inline\"\/> <i>\u00abarea of the city\u00bb<\/i><\/p>\n<p>  Since <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ec6\/3ca\/c75\/ec63cac75df782b1ab2982b8b9e29ba0.svg\" alt=\"$K_{out} = K_{in}$\" data-tex=\"inline\"\/>, the expected number of passengers in the cabin of this car almost does not change with the passing of cell <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/>, which means that due to the randomness of the choice of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"\/>, it should remain almost unchanged throughout the entire route <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4a2\/2d7\/df5\/4a22d7df5480ab752635de38c7fd774e.svg\" alt=\"$\\pi$\" data-tex=\"inline\"\/>.<\/p>\n<h4>4.3 Route traversal algorithm and travel time<\/h4>\n<p>  In the chapter dedicated to intercellular taxi, we have already considered the traversal algorithm, which allows a taxi car to pick up passengers inside the route corridor assigned to it (paragraph 4.3 part 1). Let&#8217;s slightly improve it.<\/p>\n<p>  Most cells of a large rectangle are \u00ablaid out in a straight line\u00bb, while the corners make up its insignificant part. Consider the moment when the taxi car has just dropped off or picked up its next passenger and has a long straight stretch of the assigned route corridor ahead. We will not force this car to return to the middle line of its corridor, as was the case in the algorithm for intercellular taxi, but will allow it to move forward parallel to this middle line directly from the point where it is currently located.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/vl\/ek\/nj\/vleknjq6dtbgteudg4blpyazgti.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/vl\/ek\/nj\/vleknjq6dtbgteudg4blpyazgti.jpeg\" data-blurred=\"true\"\/><br \/>  <i> (fig 22)<\/i><\/p>\n<p>  The car should move parallel to the middle line until it is directly to the right or directly to the left of the point where it should drop off or pick up its next client. When this happens, it should turn 90 degrees and drive the remaining distance to the pick-up\/drop-off point in a straight line. Upon reaching it, the taxi car finds itself in conditions for which the algorithm of its actions is already defined. Let&#8217;s now estimate how much our shared taxi will lose in speed to a personal car with this traversal algorithm.<\/p>\n<p>  For the previous traversal algorithm, in which the taxi car always returned to the middle line of the assigned corridor, each pick-up\/drop-off point cost the passengers on board an average of an additional <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/15d\/41c\/8ac\/15d41c8ac810e07a27bd900cd220da3f.svg\" alt=\"$\\Delta l\/2$\" data-tex=\"inline\"\/> units of travel distance. Since the average distance between two randomly chosen points of the segment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0c9\/5e7\/5d4\/0c95e75d45410762667f689b0da05c52.svg\" alt=\"$I$\" data-tex=\"inline\"\/> with length <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"\/> is <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6a5\/b7c\/4ba\/6a5b7c4ba73f4e7898c56a4165434d12.svg\" alt=\"$\\Delta l\/3$\" data-tex=\"inline\"\/> (see paragraph 4.4 part 1), then in the new traversal algorithm, the average additional path from one stop is only <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6a5\/b7c\/4ba\/6a5b7c4ba73f4e7898c56a4165434d12.svg\" alt=\"$\\Delta l\/3$\" data-tex=\"inline\"\/> \u2014 a small but valuable improvement. Let&#8217;s now turn to the issue of travel time.<\/p>\n<p>  The journey length between random points in a toroidal cell city of size <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/516\/69d\/f50\/51669df50cbe61e63bac47bfbaf32399.svg\" alt=\"$L_w \\times L_h$\" data-tex=\"inline\"\/>, if it is performed along the shortest route, is on average equal to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/376\/513\/954\/37651395438393dc6a02610b06bb886a.svg\" alt=\"$(L_w + L_h)\/4$\" data-tex=\"inline\"\/> (why?). In a personal car, such a distance can be overcome in<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ee0\/27a\/169\/ee027a169c7d8950632d089c6c6e37f1.svg\" alt=\"$\\bar {t_{pers}} \\approx 1\/4\\ (L_w + L_h)\/v \\ \\ \\ \\ \\ \\ (5)$\" data-tex=\"inline\"\/><\/p>\n<p>  units of time.<\/p>\n<p>  In the case when city travels are carried out in a shared taxi, the waiting time for the car and the penalty associated with the fact that the passenger&#8217;s journey route is no longer the shortest (we will neglect the pick-up\/drop-off time and acceleration\/braking penalty for now) are added to their duration. If the interval between cars operating within one route corridor is <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"\/>, then the waiting time for a suitable car for travel can be estimated as <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2ae\/04a\/e50\/2ae04ae507a9a30ce056ca4abb371bca.svg\" alt=\"$\\Delta T\/2$\" data-tex=\"inline\"\/>. Now, let&#8217;s talk about the non-ideal nature of the route.<\/p>\n<p>  Above, we found that each stop of a taxi car that a passenger passes in transit costs him an average of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6a5\/b7c\/4ba\/6a5b7c4ba73f4e7898c56a4165434d12.svg\" alt=\"$\\Delta l\/3$\" data-tex=\"inline\"\/> additional travel units or the same \u2014 <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/82f\/a69\/9a4\/82fa699a426c9673157c998842ce0b10.svg\" alt=\"$1\/3\\ \\Delta l\/v$\" data-tex=\"inline\"\/> additional time. To understand how much these delays slow down the journey, we need to calculate the average number of taxi stops a passenger will endure during his trip. We will prove that if the expected number of passengers in the cabin <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dba\/8a9\/ae5\/dba8a9ae5c253b72d78d767acc9d52c5.svg\" alt=\"$n_{pass}(t)$\" data-tex=\"inline\"\/> remains almost constant over time, then the average number of stops endured by a passenger is about twice <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"\/>.<\/p>\n<p>  Indeed, let&#8217;s imagine that every time a taxi passenger sees himself or any of his fellow travelers enter or leave the salon of this car, he makes a paper airplane and throws it out the window. If over a certain large period of time <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/aa8\/06f\/99e\/aa806f99eebe96699e78a927f877c2a3.svg\" alt=\"$X \\ll n_{pass}$\" data-tex=\"inline\"\/> passengers entered the car, then approximately the same number, i.e. <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/096\/ed7\/65c\/096ed765c8bbbc1f1e34d3b19d3550ed.svg\" alt=\"$X$\" data-tex=\"inline\"\/>, should have left the car over this period <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>. Each time a new traveler boarded or left the car, this event was observed by approximately <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"\/> passengers (since <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/096\/ed7\/65c\/096ed765c8bbbc1f1e34d3b19d3550ed.svg\" alt=\"$X$\" data-tex=\"inline\"\/> is large and therefore the law of large numbers works). It turns out that over the time period <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c6b\/38e\/9e5\/c6b38e9e57593c513299660fe8151d5f.svg\" alt=\"$T$\" data-tex=\"inline\"\/>, approximately <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/96d\/634\/db0\/96d634db0eacc81f75a2c1e3e55a63d3.svg\" alt=\"$2X \\times n_{pass}$\" data-tex=\"inline\"\/> paper airplanes were launched, i.e., on average, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2ca\/430\/941\/2ca4309416f3712cdbcdbc7ab9b1c2f9.svg\" alt=\"$2n_{pass}$\" data-tex=\"inline\"\/> airplanes per passenger.<\/p>\n<p>  Adding up the waiting time and the penalty for the non-ideal nature of the route, we get a formula for the average travel time of a shared taxi passenger:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a15\/fd1\/100\/a15fd1100d7c4907296af3afe0238c88.svg\" alt=\"$\\bar {t_{cop}} \\approx \\bar {t_{pers}} + \\Delta T\/2 + 1\/6\\ \\Delta T \\sigma (\\Delta l)^3\/v \\ \\ \\ \\ \\ \\ (6)$\" data-tex=\"inline\"\/><\/p>\n<p>  <b>Exercise:<\/b> try to come up with conditions under which the average number of times a passenger observes himself or other passengers getting on the bus (himself or other passengers getting off the bus) is only half the average number of passengers in this bus over time. Can these quantities be even smaller?<\/p>\n<h4>4.4 Optimization<\/h4>\n<p>  Let&#8217;s select such values of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"\/> that, on the one hand, the average number of passengers in the taxi becomes maximal, and on the other hand, the average duration of their journey does not exceed more than <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/07a\/900\/10d\/07a90010dac56068f7c1bb92f11e73ce.svg\" alt=\"$(1 + \\lambda)$\" data-tex=\"inline\"\/> times the average duration of a journey by private car (for comparison, see paragraphs 4.6 and 5.3 of Part 1). For simplicity, let&#8217;s solve the problem for a torus with parallels and meridians of equal length: <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a51\/ccd\/3b3\/a51ccd3b3a1fa4d8de7c2c0c48dfdd01.svg\" alt=\"$L_w = L_h = L$\" data-tex=\"inline\"\/>. Formally, we need to maximize <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4b5\/c54\/394\/4b5c54394da8b26ee1139b122d6272da.svg\" alt=\"$n_{pass} = 1\/4\\ \\Delta T \\sigma (\\Delta l)^2 \\ \\ \\ \\ \\ \\ (7)$\" data-tex=\"inline\"\/><\/p>\n<p>  subject to the \u00abconstraint\u00bb<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/160\/c91\/ee6\/160c91ee6dcb66d53dada9db4d74a2ba.svg\" alt=\"$\\Delta T\/2 + 1\/6\\ \\Delta T \\sigma (\\Delta l)^3\/v \\leq \\lambda [1\/4 (L + L)\/v] = 1\/2\\ \\lambda L\/v \\ \\ \\ \\ \\ \\ (8)$\" data-tex=\"inline\"\/><\/p>\n<p>  Let <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"\/> be an arbitrary number from the segment <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a96\/cc8\/995\/a96cc8995440b8e1f648b49218b8aaf9.svg\" alt=\"$[0,1], q = 1 \u2013 p$\" data-tex=\"inline\"\/>. Let&#8217;s use the method from the first part and set:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2b1\/c65\/137\/2b1c65137de87d36f9c1f75266e7c2cb.svg\" alt=\"$ \\Delta T\/2 =1\/2\\ p\\lambda L\/v \\ \\ \\ \\ \\ \\ (9)$\" data-tex=\"inline\"\/><\/p>\n<p>  and<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/54b\/2eb\/253\/54b2eb253ce60435405007aa7d7a70a1.svg\" alt=\"$1\/6\\ \\Delta T \\sigma (\\Delta l)^3\/v = 1\/2\\ q \\lambda L\/v \\ \\ \\ \\ \\ \\ (10)$\" data-tex=\"inline\"\/><\/p>\n<p>  From this, we get:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/996\/5d2\/8e2\/9965d28e2d69464aee2014c24d4bd1e7.svg\" alt=\"$\\Delta T = p\\lambda L\/v \\ \\ \\ \\ \\ \\ (11) $\" data-tex=\"inline\"\/>,<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7d8\/775\/602\/7d87756027acfc07b4f858659fbc8eca.svg\" alt=\"$1\/3\\ p\\lambda L \\sigma (\\Delta l)^3\/v = q \\lambda L \\ \\ \\ \\ \\ \\ (12)$\" data-tex=\"inline\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b77\/0df\/ea0\/b770dfea0e26508026b765d13629daaa.svg\" alt=\"$\\Delta l = 3^{1\/3} (q\/p)^{1\/3} (v\/\\sigma)^{1\/3} \\ \\ \\ \\ \\ \\ (13)$\" data-tex=\"inline\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0f5\/264\/a3c\/0f5264a3c83cde5e8f87813d9f3da1cf.svg\" alt=\"$n_{pass} = 1\/4\\ p\\lambda \\sigma L\/v \\cdot 3^{2\/3} (q\/p)^{2\/3}(v\/\\sigma)^{2\/3} = (3^{2\/3}\/4)\\ p^{1\/3}q^{2\/3} \\lambda L (\\sigma\/v)^{1\/3} \\ \\ \\ \\ \\ \\ (14)$\" data-tex=\"inline\"\/><\/p>\n<p>  The expression<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e21\/252\/66f\/e2125266f251dbc492e9ac78a912415a.svg\" alt=\"$p^{1\/3}q^{2\/3} \\ \\ \\ \\ \\ \\ (15)$\" data-tex=\"inline\"\/><\/p>\n<p>  under the condition<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/622\/fad\/f7a\/622fadf7a2f928867afbc28e8047e342.svg\" alt=\"$p + q = 1 \\ \\ \\ \\ \\ \\ (16)$\" data-tex=\"inline\"\/><\/p>\n<p>  reaches a maximum when <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fca\/29e\/6f0\/fca29e6f0af12381709d112fd9b50bad.svg\" alt=\"$p = 1\/3$\" data-tex=\"inline\"\/>, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/706\/957\/b00\/706957b001f1130ea84dc4706ff64935.svg\" alt=\"$q = 2\/3$\" data-tex=\"inline\"\/> (check by calculating the derivatives), therefore finally:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8fc\/f04\/a78\/8fcf04a78f01af382f95929f4624e3e8.svg\" alt=\"$\\Delta T = 1\/3\\ \\lambda L\/v \\ \\ \\ \\ \\ \\ (17)$\" data-tex=\"inline\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2a2\/85b\/a74\/2a285ba746179e76a1d100977823fde3.svg\" alt=\"$\\Delta l = 1.82\\ (v\/\\sigma)^{1\/3} \\ \\ \\ \\ \\ \\ (18)$\" data-tex=\"inline\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a79\/cc2\/046\/a79cc2046b6e47c7b3f9bb136bff3de3.svg\" alt=\"$n_{pass} = 0.28\\ \\lambda L (\\sigma\/v)^{1\/3} \\ \\ \\ \\ \\ \\ (19)$\" data-tex=\"inline\"\/><\/p>\n<h4>4.5 Estimates for (almost) real cities<\/h4>\n<p>  Let&#8217;s calculate what <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"\/> equals at optimal <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"\/> and <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"\/> in our already familiar typical cities when the value of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/91b\/9ea\/0de\/91b9ea0dea5c5e29ac154df74d97d53d.svg\" alt=\"$\\lambda$\" data-tex=\"inline\"\/> equals <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/037\/e60\/b7e\/037e60b7e8b5d165259848f91f9d36a5.svg\" alt=\"$1\/2$\" data-tex=\"inline\"\/>.<\/p>\n<p>  Hypothetical toroidal New York (London, Moscow):<br \/>  effective diameter <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/af1\/c01\/ad2\/af1c01ad25f4a6a14cb21074d57a721a.svg\" alt=\"$L \\approx 28$\" data-tex=\"inline\"\/> km,<br \/>  permitted speed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bbe\/1b7\/25a\/bbe1b725a6869e95cea3f212735906f9.svg\" alt=\"$v = 0.8$\" data-tex=\"inline\"\/> km\/min<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/403\/e94\/150\/403e941509230649624b0cc3d79e2c96.svg\" alt=\"$\\sigma \\approx 33$\" data-tex=\"inline\"\/> people\/min per sq km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/85e\/76c\/481\/85e76c481ab8fc4d9cf6e9cc8badf413.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.28 \\cdot 1\/2 \\cdot 28 (33\/0.8)^{1\/3} \\approx 13.5$\" data-tex=\"inline\"\/> people.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/800\/4c3\/fa1\/8004c3fa171d3e9184d661ac95a463eb.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 1.82 (0.8\/33)^{1\/3} \\approx 0.53$\" data-tex=\"inline\"\/> km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f3e\/634\/419\/f3e634419a38210eb1524e4f73add0f4.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 1\/6 \\cdot 28\/0.8 \\approx 5.8$\" data-tex=\"inline\"\/> min<\/p>\n<p>  Hypothetical toroidal Berlin:<br \/>  effective diameter <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f55\/7ae\/603\/f557ae6032c7021871b02ce1fed9d131.svg\" alt=\"$L \\approx 30$\" data-tex=\"inline\"\/> km,<br \/>  permitted speed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bbe\/1b7\/25a\/bbe1b725a6869e95cea3f212735906f9.svg\" alt=\"$v = 0.8$\" data-tex=\"inline\"\/> km\/min<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0e0\/123\/a43\/0e0123a43d56d8d05c389f5fd18b4d19.svg\" alt=\"$\\sigma \\approx 13$\" data-tex=\"inline\"\/> people\/min per sq km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ef9\/9e2\/d25\/ef99e2d252af5f45159c9302b42a9458.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.28 \\cdot 1\/2 \\cdot 30 (13\/0.8)^{1\/3} \\approx 10.6$\" data-tex=\"inline\"\/> people.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf6\/bac\/916\/cf6bac916b3f26fcfe3873ea03968bbf.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 1.82 (0.8\/13)^{1\/3} \\approx 0.71$\" data-tex=\"inline\"\/> km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5a2\/ce6\/0d0\/5a2ce60d045a5928572549872930fdd9.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 1\/6 \\cdot 30\/0.8 \\approx 6.1$\" data-tex=\"inline\"\/> min<\/p>\n<p>  Hypothetical toroidal Paris:<br \/>  effective diameter <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fed\/be0\/2ab\/fedbe02abd062cb5921afa40f6649730.svg\" alt=\"$L \\approx 10$\" data-tex=\"inline\"\/> km,<br \/>  permitted speed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/60b\/248\/0e9\/60b2480e9734b8b1fdddc82660e27859.svg\" alt=\"$v = 0.5$\" data-tex=\"inline\"\/> km\/min<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/557\/490\/01f\/55749001f0a914f0efeb16d1bbe06027.svg\" alt=\"$\\sigma \\approx 70$\" data-tex=\"inline\"\/> people\/min per sq km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/045\/a09\/934\/045a0993498c1509de7628e12c008c81.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.28 \\cdot 1\/2 \\cdot 10 (70\/0.5)^{1\/3} \\approx 7.3$\" data-tex=\"inline\"\/> people.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0a6\/d49\/708\/0a6d49708d28a9d4a82f445289ec9d12.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 1.82 (0.5\/70)^{1\/3} \\approx 0.35$\" data-tex=\"inline\"\/> km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2e6\/2f8\/73d\/2e62f873dcb63bb28c084c70033c3c5f.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 1\/6 \\cdot 10\/0.5 \\approx 3.4$\" data-tex=\"inline\"\/> min<\/p>\n<p>  Hypothetical toroidal Prague:<br \/>  effective diameter <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4b6\/e16\/9fd\/4b6e169fddb2e3d1e1dd70eb677dd635.svg\" alt=\"$L \\approx 23$\" data-tex=\"inline\"\/> km,<br \/>  permitted speed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bbe\/1b7\/25a\/bbe1b725a6869e95cea3f212735906f9.svg\" alt=\"$v = 0.8$\" data-tex=\"inline\"\/> km\/min<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/eb8\/e5a\/d4b\/eb8e5ad4b9e7a21d6f1527216019e614.svg\" alt=\"$\\sigma \\approx 8.3$\" data-tex=\"inline\"\/> people\/min per sq km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e34\/49d\/b40\/e3449db40cbef86cd4d33de6368738ab.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.28 \\cdot 1\/2 \\cdot 23 (8.3\/0.8)^{1\/3} \\approx 7$\" data-tex=\"inline\"\/> people.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ce1\/3ad\/9ce\/ce13ad9ce6aeb5f6b0f9cadfeb7c99ef.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 1.82 (0.8\/8.3)^{1\/3} \\approx 0.83$\" data-tex=\"inline\"\/> km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d88\/7b4\/2f8\/d887b42f8c250e306275a48c8d2178ed.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 1\/6 \\cdot 23\/0.8 \\approx 4.8$\" data-tex=\"inline\"\/> min<\/p>\n<p>  Hypothetical standard toroidal half-million city.<br \/>  population <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/88a\/d99\/114\/88ad99114b568a4bce8c0758a8f73737.svg\" alt=\"$P = 500K$\" data-tex=\"inline\"\/> people,<br \/>  density <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a40\/b4d\/f48\/a40b4df4849de370486978eb1fe906a2.svg\" alt=\"$\\rho = 5000$\" data-tex=\"inline\"\/> people\/sq km,<br \/>  effective diameter <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e16\/0ab\/cac\/e160abcac154dd5194b3bc16d9f99924.svg\" alt=\"$L = 10$\" data-tex=\"inline\"\/> km,<br \/>  permitted speed <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d10\/c23\/f89\/d10c23f89dacb28fc2635078d6b651f2.svg\" alt=\"$v = 1$\" data-tex=\"inline\"\/> km\/min<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/54b\/ebd\/603\/54bebd603a23569b4f07252c2e8b329b.svg\" alt=\"$\\sigma \\approx 17$\" data-tex=\"inline\"\/> people\/min per sq km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/af4\/cb4\/41f\/af4cb441f48c9c9050e5d23aff320966.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.28 \\cdot 1\/2 \\cdot 10 (17\/1)^{1\/3} \\approx 3.6$\" data-tex=\"inline\"\/> people.<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/04d\/eca\/7eb\/04deca7eb3327939f85f4e87763897fc.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 1.82 (1\/17)^{1\/3} \\approx 0.7$\" data-tex=\"inline\"\/> km<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/077\/7da\/c13\/0777dac13ed3ff4b977bee669da3caa6.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 1\/6 \\cdot 10\/1 \\approx 1.7$\" data-tex=\"inline\"\/> min<\/p>\n<h4>4.6 Criticism<\/h4>\n<p>  Of course, humanity has not yet learned how to fold real cities into a torus. <br \/>  Naturally, we&#8217;ve overlooked acceleration\/braking time as well as boarding\/alighting time, and as a result we&#8217;ve overestimated the number of passengers for such oversights to be justified (demonstrate that the taxi car stops approximately <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/341\/a09\/972\/341a09972a864ea7312ac1c3362c1286.svg\" alt=\"$ \\frac {2n_{pass}}{L\/2} $\" data-tex=\"inline\"\/> times per unit length of the route corridor, calculate the average distance between its stops in each of the cities mentioned above). <br \/>  Finally, we&#8217;ve once again exceeded the limits of our model&#8217;s applicability since the grid cell sizes <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"$ S_{h,w} $\" data-tex=\"inline\"\/> derived from it \u2014 <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/863\/aa9\/8a2\/863aa98a24c36ac95d178d7643ba4355.svg\" alt=\"$ 0.53 $\" data-tex=\"inline\"\/> km for New York, <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ec3\/d3d\/f79\/ec3d3df792003085072f6651851be788.svg\" alt=\"$ 0.71 $\" data-tex=\"inline\"\/> km for Berlin, and especially <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/50e\/671\/8d0\/50e6718d038ab953e678285248499700.svg\" alt=\"$ 0.35 $\" data-tex=\"inline\"\/> km for Paris \u2014 turned out to be definitely not \u00abmuch larger than a half-kilometer block\u00bb (an implicit assumption for the routing algorithm, see paragraph 4.3 of part 1 for details). Nonetheless, this chapter still holds value because:<\/p>\n<p>  First, all the problems listed in this model can be rectified and we will do so in the third part of the paper.<br \/>  Second, it applies the principle of decomposition: \u00abbreak down the problem into its main parts and study each separately\u00bb. Decomposition is a powerful research technique, popularized in ancient Greece. One of the main problems with shared taxis is the increase in the route length for its passengers \u2014 and this is the issue we&#8217;ve studied separately here.<br \/>  Third, it&#8217;s always important to compare like with like. If we look at the figures obtained under the same assumptions for intercellular taxis, we&#8217;ll see that the average load of shared taxis with rectangular routes <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$ n_{pass} $\" data-tex=\"inline\"\/> has almost tripled with the same value of <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/91b\/9ea\/0de\/91b9ea0dea5c5e29ac154df74d97d53d.svg\" alt=\"$ \\lambda $\" data-tex=\"inline\"\/>. Such an increase in efficiency should hint to the reader that we are on the right track.<\/p>\n<h3><font color=\"#0099cc\">5. Research tasks for independent resolution<\/font> <br \/>  <\/h3>\n<p>  <\/p>\n<h4>5.1 Parting Advice<\/h4>\n<p>  I wanted to include a description of an improved taxi scheme with one transfer in this article, but then I realized I didn&#8217;t want to take away the reader&#8217;s pleasure of making a discovery themselves. You will need a lot of imagination, some mental experiments, and simple calculations. Each time you find another solution, try to criticize it and think about whether it could be improved a little. Experiment, analyze, and experiment again. I will give you a few leading ideas, but otherwise, let this be entirely your own research project for a month or half a year.<\/p>\n<h4>5.2 Improved Scheme with One Transfer<\/h4>\n<p>  Assume you are dealing with a cellular city on a torus. Consider such a modification of the simple bus scheme (paragraph 3.1 in part 1) that allows an individual bus not to stop at the next stop if there&#8217;s nobody there and not a single passenger on that bus wants to get off there. Suppose you have a requirement that the duration of the \u00abaverage\u00bb journey on such buses should not exceed the \u00abaverage\u00bb journey by private car by more than <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/07a\/900\/10d\/07a90010dac56068f7c1bb92f11e73ce.svg\" alt=\"$ (1+\\lambda) $\" data-tex=\"inline\"\/> times. By varying the bus headway <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$ \\Delta T $\" data-tex=\"inline\"\/>, optimize the expected number of passengers <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$ n_{pass} $\" data-tex=\"inline\"\/> in each of them. What expression did you get for <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$ n_{pass} $\" data-tex=\"inline\"\/>? Try to think of a trick that, all other things being equal, would allow you to increase <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$ n_{pass} $\" data-tex=\"inline\"\/> almost twice as much. Estimate the minimum size of cities for which the solutions you have found are suitable.<\/p>\n<h4>5.3 The Best Passenger Transport Scheme on a Straight Line (for those confident in their math skills)<\/h4>\n<p>  Suppose you have an infinite road extending in both directions and that on every kilometer of its length, on average, $\\sigma$ new travelers appear every minute. These travelers choose their destinations randomly. By definition, the probability that a journey will be of length from <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/deb\/3c5\/425\/deb3c542546db1eeff29c9a342de0b0a.svg\" alt=\"$ l $\" data-tex=\"inline\"\/> to <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c8d\/fa2\/8a6\/c8dfa28a6eed075ef24da059644b0f3f.svg\" alt=\"$ l +\\delta l $\" data-tex=\"inline\"\/> equals <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0cf\/297\/c3c\/0cf297c3cd4a3abbfb486b0b41e68b98.svg\" alt=\"$ f(l)\\delta l $\" data-tex=\"inline\"\/>. For simplicity, let&#8217;s assume that journeys are made from left to right. Think about how to organize passenger transportation in the \u00abbest possible way\u00bb. The definition of \u00abthe best way\u00bb you can give at your discretion but in a way that it has practical value.<\/p>\n<h3><font color=\"#0099cc\">Acknowledgements<\/font> <br \/>  <\/h3>\n<p>  One would think, what&#8217;s so difficult, I&#8217;ll get everything done by the beginning of winter. Working on the text, unexpected discoveries, errors, and dead-end paths stretched the research over six months. A usual story, if I had known in advance \u2014 I would never have taken it \ud83d\ude42<\/p>\n<p>  I could not have walked this path without my friends, for which I am very grateful.<\/p>\n<p>  Also, I am grateful to a small winged muse, who always answered my smile with a smile \ud83d\ude42<\/p>\n<p>  Days of work almost in complete solitude merged into one, I lost count of them. Music helped me not to lose heart and reach the end. I don&#8217;t have the means to adequately pay for the artists&#8217; work, so let me thank them with a little advertising.<\/p>\n<p>  In case you need a little inspiration and beauty:<\/p>\n<p>  1) <a href=\"https:\/\/www.youtube.com\/watch?v=UBxxEyVIdO4&amp;list=RDcwd2XoIS-Cs&amp;index=2\" rel=\"nofollow noopener noreferrer\">London Grammar<\/a> \u2013 an amazing band, their songs are the most \u00abcatchy\u00bb I&#8217;ve ever heard. They&#8217;ve rightfully received recognition and probably don&#8217;t need my promotion, but still.<\/p>\n<p>  2) <a href=\"https:\/\/www.youtube.com\/watch?v=zMdY4X7f8kY&amp;list=PLFxxhcEeloYYEkSYeF2CDzypMsKylk5EF&amp;index=32\" rel=\"nofollow noopener noreferrer\">Rachel Hardy<\/a> \u2014 this lady knows how to get to your heart. Warning, at first, her voice will sound in your dreams. Belongs to a new generation of artists who are betting on YouTube. In my opinion, her creativity is greatly underrated.<\/p>\n<p>  3) <a href=\"https:\/\/www.youtube.com\/watch?v=DZ3zlpGVKC0&amp;list=OLAK5uy_nDHWN-STDFrAYdgwYmW1-Cthw7Kk6SLx0&amp;index=12\" rel=\"nofollow noopener noreferrer\">Alexian<\/a> \u2014 if you are a fan of Luc Besson&#8217;s movies, you&#8217;ve definitely heard her. Her singing style is like no other.<\/p>\n<p>  4) <a href=\"https:\/\/www.youtube.com\/watch?v=aaxWvZnZEFc\" rel=\"nofollow noopener noreferrer\">Emily Linge<\/a> \u2014 a very young singer, but damn, she managed to perform Bohemian Rhapsody in a way that in some places she outdid the queen herself!<\/p>\n<p>  Music without words for those moments when you are writing text:<\/p>\n<p>  5) <a href=\"https:\/\/www.youtube.com\/watch?v=mw9HcNuYrW4\" rel=\"nofollow noopener noreferrer\">Kelsey Lee Cate<\/a> \u2014 an optimistic pianist and composer, I love listening to her in the mornings.<\/p>\n<p>  6) <a href=\"https:\/\/www.youtube.com\/watch?v=4Vcs3eZgKwM\" rel=\"nofollow noopener noreferrer\">Karolina Es <\/a> \u2014 beautiful string music and bright shows for cat-music lovers)<\/p>\n<p>  7) <a href=\"https:\/\/www.youtube.com\/watch?v=6zPnzasUq0g\" rel=\"nofollow noopener noreferrer\">Rhapsodie<\/a> \u2014 her interaction with the keys is like witchcraft, gives piano lessons.<\/p>\n<p>  Listen to a bedtime story<\/p>\n<p>  8) <a href=\"https:\/\/www.youtube.com\/watch?v=Bzpm_GXIAmI\" rel=\"nofollow noopener noreferrer\">Puffin Cafe<\/a> \u2013 the golden age of world fiction and attention to talented budding authors. Pleasant voice, good taste.<\/p>\n<p>  That&#8217;s probably it for today. Thanks to those who read to the end, or at least tried to do so. If you want to write me a letter, send it to my email magnolia@bk.ru<\/p>\n<p>  Sergey Kovalenko<br \/>  Spring 2023<\/p>\n<p>  Link to Part 1: \u00abPreliminary Analysis\u00bb (<a href=\"https:\/\/habr.com\/ru\/articles\/713792\/\">\u0440\u0443 <\/a>\/ <a href=\"https:\/\/habr.com\/en\/articles\/739286\/\">eng <\/a>)<br \/>  Link to Part 2: \u00abExperiments on a Torus\u00bb (<a href=\"https:\/\/habr.com\/ru\/articles\/727118\/\">\u0440\u0443 <\/a>\/ <a href=\"https:\/\/habr.com\/en\/articles\/739990\/\">eng<\/a> )<br \/>  Link to Part 3: \u00abPractically Significant Solutions\u00bb (<a href=\"https:\/\/habr.com\/ru\/articles\/734022\/\">\u0440\u0443 <\/a>\/ <a href=\"https:\/\/habr.com\/en\/articles\/740162\/\">eng <\/a>)<br \/>  Link to \u00abSummary\u00bb (<a href=\"https:\/\/habr.com\/ru\/articles\/738388\/\">\u0440\u0443<\/a> \/ <a href=\"https:\/\/habr.com\/en\/articles\/738864\/\">eng <\/a>)<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/739990\/\"> https:\/\/habr.com\/ru\/articles\/739990\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/webt\/n3\/nv\/yz\/n3nvyzgeibh2vjavva_rvia1nl0.jpeg\" data-src=\"https:\/\/habrastorage.org\/webt\/n3\/nv\/yz\/n3nvyzgeibh2vjavva_rvia1nl0.jpeg\" data-blurred=\"true\"\/><br \/>  <i>(Jean-Claude M\u00e9zi\u00e8res)<\/i><\/p>\n<p>  Translation provided by ChatGPT, <a href=\"https:\/\/habr.com\/ru\/articles\/727118\/\">link to the original article in Russian<\/a><\/p>\n<p>  Link to Part 1: \u00abPreliminary Analysis\u00bb (<a href=\"https:\/\/habr.com\/ru\/articles\/713792\/\">\u0440\u0443 <\/a>\/ <a href=\"https:\/\/habr.com\/en\/articles\/739286\/\">eng <\/a>)<br \/>  Link to Part 2: \u00abExperiments on a Torus\u00bb (<a href=\"https:\/\/habr.com\/ru\/articles\/727118\/\">\u0440\u0443 <\/a>\/ <a href=\"https:\/\/habr.com\/en\/articles\/739990\/\">eng<\/a> )<br \/>  Link to Part 3: \u00abPractically Significant Solutions\u00bb (<a href=\"https:\/\/habr.com\/ru\/articles\/734022\/\">\u0440\u0443 <\/a>\/ <a href=\"https:\/\/habr.com\/en\/articles\/740162\/\">eng <\/a>)<br \/>  Link to \u00abSummary\u00bb (<a href=\"https:\/\/habr.com\/ru\/articles\/738388\/\">\u0440\u0443<\/a> \/ <a href=\"https:\/\/habr.com\/en\/articles\/738864\/\">eng <\/a>)<\/p>\n<h2><font color=\"#0099cc\">Experiments on the Torus<\/font> <br \/>  <\/h2>\n<p>  This is the second part of a study dedicated to exploring new public transportation movement schemes. <a href=\"https:\/\/habr.com\/ru\/articles\/713792\/\">In the first part<\/a>, we examined the simplest non-stop scheme and a single-transfer scheme based on it, which can be implemented in a grid city on a plane. In this part, our city model will be a grid city on a \u00abflat\u00bb torus. Unlike a rectangle, a torus has no edge, and the positions of all points on it are absolutely equivalent. Due to the absence of an edge and (transitive) symmetry, calculations for a toroidal city are simpler, and numerical results are nearly identical to those for a rectangular city on a plane. These two conditions make a toroidal grid city an ideal testing ground for new passenger transportation movement schemes. In this article, we will explore two such schemes on the torus, and in the next one, we will return to the plane and adapt the results obtained here for use under the realistic conditions of a rectangular city.<\/p>\n<p>  The content of this study is not standalone and presupposes familiarity with the first part of the article. To understand Chapter 2, you will need a level of mathematics that corresponds roughly to the first two years of university; for everything else, high school level should suffice. It can be helpful to have a pencil and a piece of paper at hand while reading. If your browser displays formulas incorrectly, try refreshing the page a few times. <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-388169","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/388169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=388169"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/388169\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=388169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=388169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=388169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}