{"id":348376,"date":"2023-06-04T21:01:27","date_gmt":"2023-06-04T21:01:27","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=348376"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=348376","title":{"rendered":"<span>Affordable as a Bus, Comfortable as a Taxi: A Promising Type of Public Transport for Large and Medium-Sized Cities.Part1<\/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\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/bg\/dx\/dk\/bgdxdkwvaek7yq-7a4femo75zc8.jpeg\"><br \/>  (<i>Jean-Claude M\u00e9zi\u00e8res<\/i>)<\/p>\n<p>  Translation provided by ChatGPT, <a href=\"https:\/\/habr.com\/ru\/articles\/713792\/\">link to the original article<\/a><\/p>\n<p>  <a href=\"https:\/\/habr.com\/ru\/articles\/727118\/\">Link to Part 2: \u00abExperiments on a Torus\u00bb<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/articles\/734022\/\">Link to Part 3: \u00abPractically Significant Solutions\u00bb<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/articles\/738388\/\">Link to \u00abSummary\u00bb<\/a><\/p>\n<h3><font color=\"#0099cc\">1. About this series of articles<\/font> <br \/>  <\/h3>\n<p>  <\/p>\n<h4>1.1 Central result<\/h4>\n<p>  If I haven&#8217;t made a critical mistake, I have discovered an astonishing passenger transportation scheme with unique characteristics. Imagine this scenario: you are in a big city and need to get from point A to point B. All you need to do is walk to the nearest intersection and indicate the destination on your smartphone or a special terminal installed there. In a few minutes, a small but spacious bus will arrive for you. The bus is designed for easy entry without bending, and you can bring a stroller, bicycle, or even a cello inside. It provides comfortable seating where you can stretch your legs. This bus will take you to the nearest intersection to point B, and you will reach your destination without any transfers. The entire journey, including waiting at the stop, will take only 25-50% more time than if you were traveling by private car. Based on my estimation, in modern metropolises, this type of transportation will be widely adopted, and the cost of a trip on such buses will be similar to the fare of a regular city bus.<\/p>\n<p>  Surprisingly, the reasoning behind these findings is based on relatively simple mathematics, and perhaps even a talented high school student, under fortunate circumstances, could have guessed them on their own. The practical significance of the topic and the modest level of mathematical requirements prompted me to make an effort to write the article in such a way that the reader could follow the path of discoveries, learn some research techniques, and gain a successful example to explain to their children the purpose of mathematics and how it can be applied in everyday life.<a name=\"habracut\"><\/a><\/p>\n<h4>1.2 Initial Problem<\/h4>\n<p>  The story of how I embarked on this research and discovered its most valuable result is quite amusing. Allow me to briefly tell you about it. This article is not my first work in the field of urban transportation issues; I have already published two or three articles (<a href=\"https:\/\/habr.com\/ru\/articles\/453360\/\">\u21161<\/a>, <a href=\"https:\/\/habr.com\/ru\/articles\/473528\/\">\u21162<\/a>), depending on how you count them. Sometimes, students and various entrepreneurs reach out to me regarding their topics. About six months ago, I received a call from a very ambitious young man. He asked if I could help him come up with a way to make it easier and more convenient for ordinary (and not so ordinary) people to commute to and from work. His initial idea was to transport workers using something like a school bus and create a new, more convenient form of public transportation based on that concept. As you can imagine, the idea was quite grandiose and enticing. However, at that time, I was working on my book and wanted to avoid getting too involved in another task. Nevertheless, I couldn&#8217;t completely refuse, so I offered to help this young man formalize his problem and find those who would be capable of solving it. However, as is often the case with entrepreneurs (and I don&#8217;t blame them at all\u2014I&#8217;ve been there myself), the author of this wonderful idea disappeared from our communication. Yes\u2026 perhaps the author vanished, but at that point, his idea had already captured my thoughts, and I set aside all other matters to study it.<\/p>\n<p>  Quite quickly, I found a decent solution \u2014 shared taxis with one transfer, which is the subject of one of the chapters of this work. At that time, I was almost certain that there was no better solution to the problem and tried to prove it rigorously. However, I couldn&#8217;t seem to come up with a proof. In the end, I had to question the hypothesis of \u00abimpossibility\u00bb and attempted to construct a hypothetical \u00abcounterexample\u00bb for it. To my surprise, such a counterexample actually emerged.<\/p>\n<p>  In this series, I plan to publish 3 articles: the current one \u2014 \u00abPreliminary Analysis,\u00bb the next one \u2014 \u00abExperiments on the Torus,\u00bb and the final one \u2014 \u00abPractically Significant Solutions.\u00bb Their content is more of a journal documenting the steps of its directed search rather than describing a specific result. By choosing this narrative approach, I wanted each subsequent step to be almost evident to the reader, while the final result wouldn&#8217;t seem astonishing.<\/p>\n<p>  Reading the article will take some time. If the formulas are not displayed correctly, try reloading the page several times.<\/p>\n<h3><font color=\"#0099cc\">2. City Model and Model of Intraurban Daily Migration<\/font> <br \/>  <\/h3>\n<p>  <\/p>\n<h4>2.1 Idealization as a Research Method<\/h4>\n<p>  In this article, we will focus only on the problems of various types of public transport that arise due to physical or mathematical constraints and therefore cannot be eliminated in principle. Problems that can be overcome due to engineering errors, imperfections in public infrastructure, lack of knowledge, or oversight will be left to specialists in other fields. The best way to see which problems are insurmountable for a particular scheme of passenger transportation is to observe its operation in the conditions of an ideal imaginary city. If a certain type of public transport exhibits drawbacks in idealized conditions, it is evident that they will persist in real-world conditions.<\/p>\n<h4>2.2 Ideal Grid City<\/h4>\n<p>  Let&#8217;s suppose you are tasked with designing a new city with a convenient transportation system. You wouldn&#8217;t go wrong if you choose a grid layout for it, commonly known as the Manhattan grid. In an ideal Manhattan grid layout, the streets form a regular orthogonal network, dividing the city into uniformly shaped and sized blocks. In one of my previous works, I demonstrated that in cities with a Manhattan grid layout, all street traffic can be coordinated into green waves (<a href=\"https:\/\/habr.com\/ru\/articles\/453360\/\">link<\/a>). When a city operates under this regime, any driver who maintains the recommended speed and moves only forward can reach the end of a street, stopping at traffic lights at most once. In another one of my works, you will find arguments that among all encountered layouts, the grid layout contributes the least to traffic congestion. These observations should explain to the reader why I consider grid cities as the idealized model in this context.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dg\/ax\/bc\/dgaxbc64drzoiaur3pwazghgc3g.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  Our main model will be a rectangular grid city with square half-kilometer blocks and two-way traffic. The choice of half-kilometer block length is not arbitrary \u2014 smaller lengths make it difficult to organize green waves, while larger lengths result in excessively long distances that need to be covered on foot. An alternative model is a grid city with alternating one-way traffic and square blocks measuring 250 meters. This model will mainly be used in exercises. In terms of optimality, both models are essentially equivalent to each other. In the final chapters, the size and aspect ratio of the blocks are insignificant, as long as the blocks are not excessively large.<\/p>\n<p>  Another simplification I will soon employ is folding the flat rectangular city into a torus. The thing is, a rectangle has edges, which makes the positions of points on it non-equivalent: some points are closer to the center, while others are closer to the periphery. This non-uniformity introduces qualifications into the reasoning and makes the calculations unnecessarily technically complex. A torus, on the other hand, has no edges, and all its points are in completely equal conditions. Just like on a sphere, by using a suitable \u00abrotation,\u00bb any point on the torus can be mapped (translated) to any other point. Public transportation in a toroidal grid city encounters the same problems as public transportation in a regular \u00abflat\u00bb city, except for the special behavior at the edges. What&#8217;s more important, these problems have similar solutions in both cases. For readers unfamiliar with the concept of a (flat) torus, I have included two introductory chapters in the article.<\/p>\n<h4>2.3 Migration Model. City with Random Access<\/h4>\n<p>  A detailed analysis of urban passenger transportation is hardly possible without knowing how, where, and how often the residents of the city make their trips. In this article, we will adhere to the following simplest assumptions:<br \/>  1) Within the same time frame, approximately the same number of people in any given block have the desire to travel to another point in the city.<br \/>  2) For a randomly selected trip, regardless of its starting point, any other point in the city is equally likely to be the destination (the probability of a point being the end of the trip is uniformly distributed throughout the city).<\/p>\n<p>  We will refer to this migration model as the \u00abcity with random access.\u00bb<\/p>\n<p>  Undoubtedly, our migration model is purely academic, and the results obtained based on it are estimations. In a real city, human migration may be subject to entirely different laws. Therefore, the implementation of any of the described transportation schemes should be preceded by careful field measurements, and the scheme itself should be appropriately adapted to the results of these measurements.<\/p>\n<h3><font color=\"#0099cc\">3. Inherent Limitations of Some Traditional Forms of Public Transportation<\/font><\/h3>\n<p>  Before attempting to create new forms of public transportation, let&#8217;s try to understand the advantages and disadvantages of existing ones.<\/p>\n<h4>3.1 Basic City Bus<\/h4>\n<p>  By a basic bus, we mean not only regular city buses but also other forms of transportation such as trolleybuses or trams. These are the most conservative types of mass transportation, and their operation follows the same principle: a certain number of vehicles with sufficiently spacious interiors move along predetermined routes, picking up or dropping off passengers at each stop.<\/p>\n<p>  Let&#8217;s consider a city with rectangular blocks of half a kilometer and two-way traffic. The obvious way to create a network of routes for a basic bus in such a city is to assign a separate route for each street, so that buses travel in both directions from one end to the other at intervals of a few minutes. As for the stops, it is most reasonable to locate them at intersections: one for each of the four directions. This arrangement of stops facilitates quick transfers from one direction to another. The described transportation network, in the narrow sense, is what we will refer to as a basic bus system.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/jc\/ce\/bx\/jccebxpby0henp7wqr54sau9ciu.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 2<\/i><\/p>\n<p>  The basic bus as a mode of transportation has several pleasant characteristics:<\/p>\n<p>  1) Simple route planning logic.<br \/>  2) It is possible to reach any other stop from any given stop with just one transfer.<br \/>  3) If you are already on a street, the stop in any direction is located no farther than half the length of a block.<br \/>  4) Observations in small-sized cities with low population density show that the average number of passengers on basic buses is sufficient to make the trip relatively inexpensive.<\/p>\n<p>  However, despite these advantages, the basic bus has one significant drawback: it is, in theory, very slow and seemingly impossible to improve. The following reasoning explains why.<\/p>\n<p>  Let&#8217;s assume that the maximum allowed speed in the city is 60 kilometers per hour (or 17 meters per second, or 1 kilometer per minute). When departing from the previous stop, the bus cannot instantly reach its maximum speed, and similarly, it cannot instantly come to a stop before the next stop. In both cases, it will take some time for the bus to accelerate or decelerate. Thus, the bus&#8217;s journey between adjacent stops can be divided into three segments: the acceleration segment, the deceleration segment, and the middle segment, which the bus travels at a constant maximum allowed speed.<\/p>\n<p>  According to Google, a comfortable acceleration for passengers is when the bus increases or decreases its speed by 0.7 to 1 meter per second in one second. For calculations, let&#8217;s assume that the bus&#8217;s acceleration on the acceleration and deceleration segments is constant and equal to 1 meter per second per second. With these parameters, the bus will require 17 seconds to reach its full speed and another 17 seconds to come to a complete stop. The constant acceleration during acceleration and deceleration means that the speed-time graphs during these periods will be inclined straight lines. By calculating the area under these graphs, we find that the acceleration segment and deceleration segment have a length of 144.5 meters, occurring at the 289-meter mark. We assumed that the distance between adjacent stops is equal to the length of a block, which is 500 meters. Therefore, the middle segment, where the bus travels at its maximum speed, has a length of 211 meters and will be covered in approximately 12 seconds. As a result, the entire half-kilometer journey from stop to stop will be completed by the bus in the best case scenario in 17 + 17 + 12 = 46 seconds. Even if the simple bus does not have any delays at the stops themselves, its average speed would not exceed 500\/46 \u2248 11 meters per second.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/-k\/ip\/dr\/-kipdrbxwul4eofix5mhhtm-4le.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 3<\/i><\/p>\n<p>  Now let&#8217;s estimate the average speed of a bus taking into account the duration of its stops. Various sources state that the average time for boarding or alighting a passenger is within the range of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0b5\/ee9\/153\/0b5ee9153f01d4ce7343f0819f82d5d5.svg\" alt=\"$3-5$\" data-tex=\"inline\"><\/math> seconds. Let&#8217;s take an estimate of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fdf\/c7e\/70a\/fdfc7e70a9b5c10b0346a160163699c8.svg\" alt=\"$4$\" data-tex=\"inline\"><\/math>. Suppose that on each stop, an average of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c37\/24c\/45a\/c3724c45ab9dcf8945e6bcece2165788.svg\" alt=\"$2$\" data-tex=\"inline\"><\/math> people get on or off the bus. In that case, the boarding-alighting process will require approximately <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a71\/240\/732\/a71240732b83bb7b4aba3e033a36dafb.svg\" alt=\"$16$\" data-tex=\"inline\"><\/math> seconds of stoppage on average, and the average speed will not exceed <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/689\/8b4\/138\/6898b4138b986dd8a25371d9f33e97ea.svg\" alt=\"$500\/(46 + 16) \\approx 8$\" data-tex=\"inline\"><\/math> m\/s. Therefore, being inside a regular bus, you will be moving through the city at an average speed more than two times slower compared to a private car or personal taxi.<\/p>\n<p>  <b>Exercise:<\/b> If you have read <a href=\"https:\/\/habr.com\/ru\/articles\/453360\/\">the article about green waves<\/a>, show that the operation of buses can be integrated into the green wave schedule, allowing them to pass through all intersections without any waiting. However, this is only possible if the average speed of the buses is evenly divisible by the speed of propagation of the green waves.<\/p>\n<h4>3.2 Bus Network Including Local and Transit Routes<\/h4>\n<p>  Can city buses be made faster? To answer this question, let&#8217;s break down the travel time of a bus between two sufficiently distant points, denoted as <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math>, along its route.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dh\/t9\/kr\/dht9krhbrlncrj1drkwkqd4m4wu.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 4<\/i><\/p>\n<p>  As seen in the above Figure 4, this travel time can be represented as the sum of three components:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f71\/2d9\/b34\/f712d9b3427197fc468f43d475c98a37.svg\" alt=\"$T_{tr} = |AB|\/v$\" data-tex=\"inline\"><\/math> \u2014 This component represents the time it would take to travel the distance between <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> at the maximum allowed speed <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2ac\/211\/43d\/2ac21143d39638d2322c66f487d3efb6.svg\" alt=\"$v$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/300\/771\/181\/30077118184d33e73be781fce7e65111.svg\" alt=\"$T_a =$\" data-tex=\"inline\"><\/math> \u00abnumber of stops between <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math>\u00bb<math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2e5\/d99\/c39\/2e5d99c396893d20556c59cd92761d95.svg\" alt=\"$ \\times$\" data-tex=\"inline\"><\/math> \u00abtime for a single acceleration\/deceleration\u00bb. Each bus stop requires the bus to first decelerate and then accelerate again. In total, they result in an approximate loss of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2f8\/3ab\/712\/2f83ab712a745a11a85393ea2ec4ed44.svg\" alt=\"$17$\" data-tex=\"inline\"><\/math> seconds.<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/541\/f4f\/72e\/541f4f72e912120042375a225520ee1c.svg\" alt=\"$T_w =$\" data-tex=\"inline\"><\/math> \u00abnumber of passengers boarding or alighting between <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math>\u00bb<math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2e5\/d99\/c39\/2e5d99c396893d20556c59cd92761d95.svg\" alt=\"$ \\times$\" data-tex=\"inline\"><\/math> \u00abpenalty per passenger boarding\/alighting\u00bb.<\/p>\n<p>  In these notations, the average speed of the bus on the segment <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math>&#8212;<math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> is given by the expression:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c9d\/63f\/232\/c9d63f232432d31c846273a1a25ff286.svg\" alt=\"$\\bar {v_{AB}} = |AB|\/(T_{tr} + T_a + T_w) \\ \\ \\ \\ \\ (1) $\" data-tex=\"inline\"><\/math><\/p>\n<p>  If we want <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c63\/0fb\/75a\/c630fb75a3b01e6c4ca9ad3400801a99.svg\" alt=\"$\\bar {v_{AB}}$\" data-tex=\"inline\"><\/math> to be as high as possible, we need to minimize the values of the components <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7b5\/bac\/78f\/7b5bac78fab6311a3db051adeda511bb.svg\" alt=\"$T_{tr}$\" data-tex=\"inline\"><\/math>, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/690\/3e2\/ed2\/6903e2ed2d5d97ddaffcd2fc6b2e24f2.svg\" alt=\"$T_a$\" data-tex=\"inline\"><\/math>, and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fcd\/d4a\/118\/fcdd4a1186f76935b9a0e15d910eedb3.svg\" alt=\"$T_w$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  We have no control over the component <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7b5\/bac\/78f\/7b5bac78fab6311a3db051adeda511bb.svg\" alt=\"$T_{tr}$\" data-tex=\"inline\"><\/math>, as it depends on the distance <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/87c\/ea9\/78587cea9d68e93678392d15a4b1ee9b.svg\" alt=\"$AB$\" data-tex=\"inline\"><\/math> and the maximum allowed speed <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2ac\/211\/43d\/2ac21143d39638d2322c66f487d3efb6.svg\" alt=\"$v$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  The second component <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/690\/3e2\/ed2\/6903e2ed2d5d97ddaffcd2fc6b2e24f2.svg\" alt=\"$T_a$\" data-tex=\"inline\"><\/math> is obtained by multiplying the penalty for acceleration\/deceleration by the number of stops the bus makes between points <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math>. Since the maximum allowed acceleration is a given value, we cannot change the penalty for acceleration\/deceleration. However, we can reduce the number of stops between points <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> by spacing them out more.<\/p>\n<p>  The third term, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fcd\/d4a\/118\/fcdd4a1186f76935b9a0e15d910eedb3.svg\" alt=\"$T_w$\" data-tex=\"inline\"><\/math>, is obtained by multiplying the passenger boarding\/alighting time, which is a constant value, by the total number of people who boarded or exited the bus on the segment <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/98e\/eb8\/8a4\/98eeb88a4ffc67f475f5cbe461a5ca13.svg\" alt=\"$A-B$\" data-tex=\"inline\"><\/math>. The average number of people who board or exit the buses on route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"><\/math> per unit of time at stops between <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> is almost independent of the distance between these stops. Indeed, if there is no alternative transportation, then everyone who needs to travel from <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> by route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"><\/math> will eventually get on their bus, whether there are <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/435\/dd1\/651\/435dd16515fe50f8523aaef0c201d22f.svg\" alt=\"$10$\" data-tex=\"inline\"><\/math> stops or <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e71\/a89\/060\/e71a89060c35a97b14b522a0663b64fb.svg\" alt=\"$30$\" data-tex=\"inline\"><\/math> stops. The same applies to those who intend to travel from <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> using this route.<\/p>\n<p>  Let&#8217;s assume that on the segment <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/98e\/eb8\/8a4\/98eeb88a4ffc67f475f5cbe461a5ca13.svg\" alt=\"$A-B$\" data-tex=\"inline\"><\/math> of route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"><\/math>, an average of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4cc\/fd4\/32e\/4ccfd432ea4f2a64f3a5c8c7378517af.svg\" alt=\"$x$\" data-tex=\"inline\"><\/math> people leave per minute, while <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8f8\/c2f\/a70\/8f8c2fa70a7019d42baacce3ac56acd3.svg\" alt=\"$y$\" data-tex=\"inline\"><\/math> people arrive per minute. If the interval between the movements of buses on route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"><\/math> is <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"><\/math> minutes, then on the segment <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/98e\/eb8\/8a4\/98eeb88a4ffc67f475f5cbe461a5ca13.svg\" alt=\"$A-B$\" data-tex=\"inline\"><\/math>, in each interval, an average of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/275\/b8e\/038\/275b8e038d0490e529e9d7b12b1036c7.svg\" alt=\"$(x+y) \\times \\Delta T$\" data-tex=\"inline\"><\/math> passengers will board and alight (prove it!). By reducing the interval <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"><\/math>, we can also reduce the time that the bus has to spend on passenger boarding\/alighting between points <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  And so, if we want to increase the average speed of buses on route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/235\/dbb\/d23\/235dbbd235292bd972735b4fd4224b7f.svg\" alt=\"$M$\" data-tex=\"inline\"><\/math>, we need to minimize the interval between them and maximize the distance between stops. However, there are logical limitations here. Reducing the time interval between buses by a certain factor also reduces the average number of passengers on board, thereby increasing the cost per trip for each individual passenger. On the other hand, increasing the distance between neighboring stops by a certain factor also increases the average walking distance that passengers have to cover to board the bus they need or to reach their final destination from where they will alight the bus. The average walking distance in a single journey is approximately equal to the distance between stops, so making it excessively large is not advisable.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/__\/lg\/it\/__lgitj0yptihzyhfy9g8-yktry.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 5<\/i><\/p>\n<p>  The problem of increasing fares with decreasing bus intervals seems to be unsolvable, but there is a rather obvious and simple solution for the problem of sparsely spaced stops. The solution is to have two duplicate bus routes on each street: one with closely spaced stops, resulting in a \u00abslower\u00bb route, and another with stops located at greater distances from each other, making it potentially \u00abfaster.\u00bb We will refer to the slow routes and the buses operating on them as local, and the fast ones as transit. Naturally, it is necessary to ensure that the stops for local buses are placed at every intersection along their route, while the transit buses only stop at every <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"><\/math>-th intersection along their path (see Figure 6).  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/6i\/mp\/h4\/6imph4h_9uongpcmlz2dma2lyis.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 6<\/i><\/p>\n<p>  The problem of increasing fares with decreasing bus intervals seems to be unsolvable, but there is a rather obvious and simple solution for the problem of sparsely spaced stops. The solution is to have two duplicate bus routes on each street: one with closely spaced stops, resulting in a \u00abslower\u00bb route, and another with stops located at greater distances from each other, making it potentially \u00abfaster.\u00bb We will refer to the slow routes and the buses operating on them as local, and the fast ones as transit. Naturally, it is necessary to ensure that the stops for local buses are placed at every intersection along their route, while the transit buses only stop at every <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"><\/math>-th intersection along their path (see Figure 6).  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/6i\/mp\/h4\/6imph4h_9uongpcmlz2dma2lyis.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 6<\/i><\/p>\n<p>  Let&#8217;s consider the scenario where the city has both local and transit bus routes, as shown in the above diagram. Now let&#8217;s think about the actions a traveler should take to reach a destination point <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> to a sufficiently distant point <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  If both points are located on the same street and do not occupy any particular position, a relatively fast way to travel from <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> would be as follows:<br \/>  First, you need to walk from point <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> to the nearest intersection <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/195\/a53\/799\/195a5379914fc395e9e04214b48e547e.svg\" alt=\"$P_1$\" data-tex=\"inline\"><\/math> and catch a local bus there that goes towards the nearest stop <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fc5\/6af\/bbf\/fc56afbbfe2f6fa1c56f714380d18f55.svg\" alt=\"$P_2$\" data-tex=\"inline\"><\/math> where transit buses stop. Upon reaching <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fc5\/6af\/bbf\/fc56afbbfe2f6fa1c56f714380d18f55.svg\" alt=\"$P_2$\" data-tex=\"inline\"><\/math>, get off the bus and transfer to a transit bus that is heading towards point <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math>. On this second bus, ride until you reach <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b64\/942\/718\/b649427181461df36a1d9b8ffad13a45.svg\" alt=\"$P_3$\" data-tex=\"inline\"><\/math>, which is the closest stop to point <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> among the rest. In general, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b64\/942\/718\/b649427181461df36a1d9b8ffad13a45.svg\" alt=\"$P_3$\" data-tex=\"inline\"><\/math> is not the closest intersection to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math>, so you will need to catch another local bus towards point <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> and get off at the intersection closest to it, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ff7\/98b\/3cf\/ff798b3cff60a2f69f817568facf9538.svg\" alt=\"$P_4$\" data-tex=\"inline\"><\/math>. The remaining distance should be covered on foot.<\/p>\n<p>  This travel algorithm can be summarized as \u00abL -&gt; T -&gt; L,\u00bb where \u00abL\u00bb represents the local bus and \u00abT\u00bb represents the transit bus.<\/p>\n<p>  <b>Exercise:<\/b> Is the algorithm described above the fastest in terms of average travel time between random points A and B? If not, how should it be modified to become the fastest? What information about the traveler and buses does your solution use?  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/7h\/bx\/jc\/7hbxjczx85s90c-mpdwzj8y84nm.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 7<\/i><\/p>\n<p>  In the general case, when points <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> do not lie on the same street and do not have any specific positioning, the journey from <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> can be performed according to the following sequence: \u00abl-&gt;t-&gt;l-&gt;l-&gt;t-&gt;l\u00bb (Figure 7). As you can see, the travel scenario is not the simplest and involves a total of 5 transfers. However, with a little bit of thought and by arranging the stops of transit buses slightly differently (as shown in the figure below), the maximum number of transfers required for the passenger can be reduced to 4.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vu\/xw\/a-\/vuxwa-vsgpev4mnysd8tq1is2ne.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 8<\/i><\/p>\n<p>  Any bus route network constructed according to the pattern shown in Figure 8 will be referred to as a &quot;<i>local-transit bus network.<\/i>&quot;<\/p>\n<p>  <b>Exercise:<\/b> Find all possible travel scenarios on a local-transit bus network between points of general (non-specific) positioning. Try to describe and classify all special cases, such as travel along a single street or from a point near a transit bus stop.<\/p>\n<p>  Let&#8217;s make a rough estimate of what value <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"><\/math> should be in order for the average speed of transit buses to approach the standard <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/744\/287\/09f\/74428709f3ebe73b62c194fd8ac54251.svg\" alt=\"$60$\" data-tex=\"inline\"><\/math> kilometers per hour (<math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d4a\/c7f\/4b6\/d4ac7f4b6821aecb794f61695d169e22.svg\" alt=\"$1$\" data-tex=\"inline\"><\/math> km\/minute).<\/p>\n<p>  On the stretch between adjacent transit bus stops, the bus undergoes one acceleration and one deceleration. As calculated earlier, the total time lost during these stretches is approximately <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/407\/c0a\/193\/407c0a193bf15933c81e3e25ff624f7d.svg\" alt=\"$T_a = 17$\" data-tex=\"inline\"><\/math> seconds. Let&#8217;s assume that the transit bus picks up and drops off <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4cc\/fd4\/32e\/4ccfd432ea4f2a64f3a5c8c7378517af.svg\" alt=\"$x$\" data-tex=\"inline\"><\/math> passengers at each stop, resulting in a dwell time of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c2c\/784\/ed2\/c2c784ed23e1dd41501955053be0429b.svg\" alt=\"$T_w \u2248 2x \\cdot 4$\" data-tex=\"inline\"><\/math> seconds. If the bus stops are located at every k-th intersection, and the block length is half a kilometer, then <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b7d\/5c3\/f8c\/b7d5c3f8ce4482f038acedc1933fa58c.svg\" alt=\"$T_{tr} = 500k\/v$\" data-tex=\"inline\"><\/math>. From everything said, it follows that the formula for the average bus speed can be written as:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ce0\/306\/82b\/ce030682bcaf5bdbe12277995334d78e.svg\" alt=\"$\\bar {v} = 500 k\/ (T_{tr} + T_a + T_w) = v \\frac {1}{1 + (T_a + T_w)\/T_{tr}} \\ \\ \\ \\ \\ \\ (2)$\" data-tex=\"inline\"><\/math><\/p>\n<p>  The average speed of the transit bus will be close to its maximum only if:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/753\/000\/001\/7530000011d2662e73ba7e7e98b9e92a.svg\" alt=\"$\\frac {T_a + T_w}{T_{tr}} \\ll 1 \\ \\ \\ \\ \\ \\ (3)$\" data-tex=\"inline\"><\/math><\/p>\n<p>  Therefore, we can use the approximation:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/897\/4ee\/6bd\/8974ee6bde80bd01ed33d8a6324b39a0.svg\" alt=\"$\\frac {1}{1+\\varepsilon} \\approx 1 - \\varepsilon \\ \\ \\ \\ \\ \\ (4)$\" data-tex=\"inline\"><\/math><\/p>\n<p>  and rewrite <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dd5\/d5c\/c1a\/dd5d5cc1a67575a4fd4e91c18d274d1a.svg\" alt=\"$(2)$\" data-tex=\"inline\"><\/math> as:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/946\/d7f\/098\/946d7f098a7fd1d04290bd4e228cda99.svg\" alt=\"$\\bar {v} = v (1 - (T_a + T_w)\/T_{tr}) \\ \\ \\ \\ \\ \\ (5)$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  The last formula shows that there is no point in trying to make the passenger boarding\/alighting time <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/690\/3e2\/ed2\/6903e2ed2d5d97ddaffcd2fc6b2e24f2.svg\" alt=\"$T_a$\" data-tex=\"inline\"><\/math> much smaller than the acceleration\/deceleration penalty <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fcd\/d4a\/118\/fcdd4a1186f76935b9a0e15d910eedb3.svg\" alt=\"$T_w$\" data-tex=\"inline\"><\/math> \u2014 it will not significantly increase the average bus speed. For simplicity, let&#8217;s assume that the interval between transit buses is chosen in such a way that <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6ab\/425\/bb5\/6ab425bb5a9bd94a941d9aaf2bfc74b5.svg\" alt=\"$T_w = T_a = 17$\" data-tex=\"inline\"><\/math> seconds. This value of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fcd\/d4a\/118\/fcdd4a1186f76935b9a0e15d910eedb3.svg\" alt=\"$T_w$\" data-tex=\"inline\"><\/math> corresponds to approximately <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c37\/24c\/45a\/c3724c45ab9dcf8945e6bcece2165788.svg\" alt=\"$2$\" data-tex=\"inline\"><\/math> passengers boarding and alighting at each stop. Substituting <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6ab\/425\/bb5\/6ab425bb5a9bd94a941d9aaf2bfc74b5.svg\" alt=\"$T_w = T_a = 17$\" data-tex=\"inline\"><\/math> sec, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/01d\/5ab\/cf4\/01d5abcf4e62ee37cf408d323384effb.svg\" alt=\"$T_{tr} = 500k\/17 \\approx 30 k$\" data-tex=\"inline\"><\/math> sec into <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/26e\/228\/cb5\/26e228cb5f088594478624d5f5641be3.svg\" alt=\"$(5)$\" data-tex=\"inline\"><\/math>, we obtain the inequality for <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"><\/math>:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/05e\/c33\/6be\/05ec336be67fee6bca80f1d6ecf93f59.svg\" alt=\"$1 - \\frac {17 + 17}{30k} \\geq \\bar {v}\/v \\ \\ \\ \\ \\ \\ (6)$\" data-tex=\"inline\"><\/math> or<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fd8\/6ea\/a11\/fd86eaa118976149d93cb1232aee07df.svg\" alt=\"$k \\geq 1.13 \\frac {1}{1 - \\bar {v}\/v} \\ \\ \\ \\ \\ (7)$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  If, for example, we want transit buses to travel at an average speed of at least <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/805\/a84\/969\/805a84969f693dfb0208e45927ed3f7c.svg\" alt=\"$45$\" data-tex=\"inline\"><\/math> km\/h (<math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/74f\/405\/d08\/74f405d08a5a5a0d6875b55a6ec6fb57.svg\" alt=\"$3\/4$\" data-tex=\"inline\"><\/math> of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2ac\/211\/43d\/2ac21143d39638d2322c66f487d3efb6.svg\" alt=\"$v$\" data-tex=\"inline\"><\/math>), then <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"><\/math> must be at least <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/578\/541\/d2f\/578541d2f1057964f112fdaf0ffed14e.svg\" alt=\"$5$\" data-tex=\"inline\"><\/math>, which means there should be approximately <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/97e\/f63\/caa\/97ef63caa7d0defa12c8814dbe4e69b6.svg\" alt=\"$2.5$\" data-tex=\"inline\"><\/math> kilometers between neighboring stops of the transit bus. This estimation allows us to determine the minimum size of a city where transit buses with transit routes make sense: something around <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c5c\/7df\/b89\/c5c7dfb89bad04b7780b3c5f42c8b20c.svg\" alt=\"$3$\" data-tex=\"inline\"><\/math> transit segments or <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5ad\/d02\/d52\/5add02d5212a0beb4a4aa8493a9a5d05.svg\" alt=\"$7.5 - 10$\" data-tex=\"inline\"><\/math> kilometers in length. A city of such size, with a standard density of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/16f\/e31\/821\/16fe31821e82e4638a34f9341ec83fa7.svg\" alt=\"$5000$\" data-tex=\"inline\"><\/math> inhabitants per square kilometer, would have a population of approximately <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3ca\/099\/c78\/3ca099c78e05a135f73694b4b01925c0.svg\" alt=\"$300,000$\" data-tex=\"inline\"><\/math> people.<\/p>\n<p>  According to my rough estimates, in cities larger than <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d12\/a40\/802\/d12a4080210deead51bd76f695d1bbda.svg\" alt=\"$20$\" data-tex=\"inline\"><\/math> km (with a population of over <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c37\/24c\/45a\/c3724c45ab9dcf8945e6bcece2165788.svg\" alt=\"$2$\" data-tex=\"inline\"><\/math> million people), a significant portion of typical travel routes would be covered by transit buses, and the average speed of such trips could realistically approach <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/288\/7aa\/1b2\/2887aa1b2dc634e1f3bbdf083937bf7d.svg\" alt=\"$0.6v$\" data-tex=\"inline\"><\/math> (<math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/63f\/322\/36a\/63f32236a60e3bb2c94811747d124cf4.svg\" alt=\"$13$\" data-tex=\"inline\"><\/math> m\/s or <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b70\/381\/876\/b70381876bc500abd42cfc0f30ade9e7.svg\" alt=\"$36$\" data-tex=\"inline\"><\/math> km\/h). It seems like the perfect transportation for megacities, but having 4 transfers is not exactly how I would dream of starting my day!<\/p>\n<p>  <b>Exercise:<\/b> Consider the possibility of using underground metro systems instead of transit buses for the same purpose. What advantages and disadvantages are associated with the solutions you have discovered? Try to make numerical evaluations.<\/p>\n<h4>3.3 Personal Taxis<\/h4>\n<p>  Fast, often very convenient, but also very expensive. Takes up a lot of space on the road and emits a significant amount of exhaust gases per passenger-kilometer.<\/p>\n<h3><font color=\"#0099cc\">4. Taxis for Shared Trips between City Districts<\/font> <br \/>  <\/h3>\n<p>  <\/p>\n<h4>4.1 Shared Trip Concept<\/h4>\n<p>  Personal taxis are perhaps the fastest mode of urban transportation, but undoubtedly the most expensive. In many cases, there is only one passenger being transported in a whole car with a hired driver. Hence, the idea of making taxi trips cheaper becomes evident: it is enough to come up with a method that allows a taxi to carry multiple passengers at once. If such a method is found and implemented, the cost of each kilometer traveled by a taxi can be divided among all the passengers who were in the vehicle at that time. The more passengers on average in the vehicle, the cheaper the trip should be for each of them.<\/p>\n<p>  However, the concept of shared trips faces an obvious obstacle: if a shared taxi picks up every person who signals it on the road, there may be passengers in the vehicle who are not heading in the same direction. To transport such passengers to their respective destinations, the taxi would have to travel from one end of the city to the other, wasting its working time and the time of its clients.  <\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tj\/b1\/ei\/tjb1eicc9e3jbmvdzskorr-pp2g.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 9<\/i><\/p>\n<p>  One obvious way to address the issue of mismatched fellow travelers is to always try to fill the taxi with passengers whose pickup and drop-off points are close to each other. Below, one of the shared taxi schemes that implements this idea is discussed in detail.<\/p>\n<h4>4.2 Operational Guidelines<\/h4>\n<p>  Let&#8217;s consider a grid-based city of size <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/45e\/ad1\/471\/45ead1471d7a5b9c8975d1fbf015f9ee.svg\" alt=\"$L_H \\times L_W$\" data-tex=\"inline\"><\/math>. We divide it into a grid of equally sized square cells <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h,w}}$\" data-tex=\"inline\"><\/math>. The idea behind this cell division is to allow only those individuals from the same cell who are heading towards the same destination to become fellow travelers. For simplicity, we can assume that a separate small fleet of vehicles is responsible for transporting passengers between each specific pair of cells, and passenger boarding and alighting only occur at intersections.<\/p>\n<p>  When dealing with personal taxis or private transportation, each trip from one intersection to another can be made along the shortest zigzag route at an average speed close to the maximum allowed in the city. However, enabling a shared taxi to transport multiple passengers simultaneously generally requires lengthening and complicating the route within the starting and ending squares. Of course, there are situations where a shared trip is nearly as fast as a personal taxi ride. For example, if the pickup points for a group of fellow travelers are all located along one street, and the drop-off points are also along another street (possibly a different one), the shared trip route can be planned so that each passenger is delivered to their destination via the shortest route for themselves.<\/p>\n<p>  However, the situation just described is more of an exception than the rule. In general, the pickup and drop-off locations of passengers traveling together will be randomly scattered within the starting and ending squares. To gather them first and then disperse them, the taxi vehicle will have to follow a winding route, reduce speed at turns, and cover extra miles. Due to all these factors, the journey in a shared taxi will obviously take, on average, longer than the same trip in a personal taxi. Figure 10 illustrates a fairly typical situation where even two passengers cannot be jointly transported without increasing the travel distance, at least for one of them. Let&#8217;s try to estimate how much slower, on average, the inter-cell shared taxi is compared to a personal or private car.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9h\/uf\/iq\/9hufiqs0ackg_rqp5p6mixbfolq.jpeg\" alt=\"image\" width=\"60%\" height=\"60%\"><\/div>\n<p>  <i>Figure 10<\/i><\/p>\n<p>  <b>Lemma on routes of intercellular taxi:<\/b><br \/>  Let&#8217;s assume that there are n travelers who need to be picked up at the \u00abstart\u00bb square <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> and dropped off at their respective destinations in the \u00abfinish\u00bb square <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>, with the taxi already located at <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math>. For any route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/234\/756\/ba0\/234756ba02fcf44c798e4e66aedb3efd.svg\" alt=\"$\\alpha$\" data-tex=\"inline\"><\/math> that solves the problem of shared transportation for the travelers, there exists a route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dde\/35b\/631\/dde35b63133e1e49275c05ed00f4cd5d.svg\" alt=\"$\\beta$\" data-tex=\"inline\"><\/math> such that:<\/p>\n<p>  1) Route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dde\/35b\/631\/dde35b63133e1e49275c05ed00f4cd5d.svg\" alt=\"$\\beta$\" data-tex=\"inline\"><\/math> also solves the transportation problem for these travelers.<br \/>  2) Route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dde\/35b\/631\/dde35b63133e1e49275c05ed00f4cd5d.svg\" alt=\"$\\beta$\" data-tex=\"inline\"><\/math> has the same boarding and alighting order for the travelers as <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/234\/756\/ba0\/234756ba02fcf44c798e4e66aedb3efd.svg\" alt=\"$\\alpha$\" data-tex=\"inline\"><\/math>, but is one of the shortest routes with this order.<br \/>  3) When using route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dde\/35b\/631\/dde35b63133e1e49275c05ed00f4cd5d.svg\" alt=\"$\\beta$\" data-tex=\"inline\"><\/math> by the taxi, the trip length for each passenger is the same or shorter compared to using route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/234\/756\/ba0\/234756ba02fcf44c798e4e66aedb3efd.svg\" alt=\"$\\alpha$\" data-tex=\"inline\"><\/math>.<br \/>  4) The entire route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dde\/35b\/631\/dde35b63133e1e49275c05ed00f4cd5d.svg\" alt=\"$\\beta$\" data-tex=\"inline\"><\/math> can be divided into three continuous segments: initial, middle, and final. The initial segment lies entirely within <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math>, the final segment lies entirely within <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>, and the middle segment represents the shortest step-like curve between the end of the initial segment and the start of the final segment.<br \/>  5) If squares <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math> are not horizontally or vertically aligned, route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dde\/35b\/631\/dde35b63133e1e49275c05ed00f4cd5d.svg\" alt=\"$\\beta$\" data-tex=\"inline\"><\/math> can be selected in such a way that its middle segment represents a shortest <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"><\/math>-shaped curve drawn between the nearest (corner) intersections of squares <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/sp\/om\/wc\/spomwc6kxrawmdgq1llua7-uhoa.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 11<\/i><\/p>\n<p>  Proof.<br \/>  The idea of proving 1)-4) is to replace each segment <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/234\/756\/ba0\/234756ba02fcf44c798e4e66aedb3efd.svg\" alt=\"$\\alpha$\" data-tex=\"inline\"><\/math> between two taxi stops (boarding or alighting points) with a <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"><\/math>-shaped shortest path. Now, let&#8217;s consider 5). By sequentially rotating the map by <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/31c\/95b\/e54\/31c95be540a3716fb3afc460b6002e95.svg\" alt=\"$90$\" data-tex=\"inline\"><\/math> degrees, we can ensure that square <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math> is strictly above and to the right of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math>. Let <math>$inline$\\beta^$inline$<\/math> be the route constructed from <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/234\/756\/ba0\/234756ba02fcf44c798e4e66aedb3efd.svg\" alt=\"$\\alpha$\" data-tex=\"inline\"><\/math> using the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"><\/math>-shaped shortest paths as described earlier. One of the links in route <math>$inline$\\beta^$inline$<\/math> is a <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"><\/math>-shaped shortest path <math>$inline$\\gamma^$inline$<\/math> between the last passenger pickup point <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"><\/math> in square <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> and the first passenger drop-off point <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3a5\/e67\/187\/3a5e67187c94ffba1bacdbc00b809d08.svg\" alt=\"$Q$\" data-tex=\"inline\"><\/math> in square <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>. We replace segment <math>$inline$\\gamma^$inline$<\/math> in <math>$inline$\\beta^$inline$<\/math> with a broken line <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"><\/math> drawn according to the following rule: first, along the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"><\/math>-shaped shortest path (possibly degenerate into a line segment or even a point) from <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"><\/math> to the top-rightmost intersection in <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math>, then along the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"><\/math>-shaped shortest path (possibly degenerate) to the bottom-leftmost intersection in <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>, and finally, from there, along the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"><\/math>-shaped shortest path (possibly degenerate) to point <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3a5\/e67\/187\/3a5e67187c94ffba1bacdbc00b809d08.svg\" alt=\"$Q$\" data-tex=\"inline\"><\/math>. It is easy to see that <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"><\/math> is also a shortest path between <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3a5\/e67\/187\/3a5e67187c94ffba1bacdbc00b809d08.svg\" alt=\"$Q$\" data-tex=\"inline\"><\/math>, and the resulting route <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dde\/35b\/631\/dde35b63133e1e49275c05ed00f4cd5d.svg\" alt=\"$\\beta$\" data-tex=\"inline\"><\/math> after replacing <math>$inline$\\gamma^$inline$<\/math> with <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"><\/math> satisfies each of the conditions 1)-5).<\/p>\n<h4>4.3 Traversal Algorithm<\/h4>\n<p>  Let <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math> be two arbitrary cells selected from different rows and columns of the grid <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a6a\/379\/3d3\/a6a3793d3128fe670d6f4371ecccab3d.svg\" alt=\"$\\{S_{h,w}\\}$\" data-tex=\"inline\"><\/math>. By sequentially rotating the map by <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/31c\/95b\/e54\/31c95be540a3716fb3afc460b6002e95.svg\" alt=\"$90$\" data-tex=\"inline\"><\/math> degrees, we can ensure that cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math> is strictly above and to the right of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math>. Let the top-rightmost intersection in <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> be denoted as <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math>, and the bottom-leftmost intersection in <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math> be denoted as <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math>. The lemma about routes allows us to assume that all taxi vehicles traveling between <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>, upon leaving <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math>, pass through intersection <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math>, and upon arriving at <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>, pass through intersection <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  Now, let&#8217;s imagine that at the specified point <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b23\/a99\/a6f\/b23a99a6f174ca2c08127e778e52a990.svg\" alt=\"$S$\" data-tex=\"inline\"><\/math> in cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math>, an empty taxi appears, which must make a trip between <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>, and then arrive at the specified point <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a0d\/d16\/4e4\/a0dd164e481befe52ca1b226f287b94e.svg\" alt=\"$F$\" data-tex=\"inline\"><\/math> in cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>. The future passengers of this taxi, let&#8217;s say there are n of them, are randomly scattered across all intersections within <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math>. What traversal algorithm should the taxi follow to pick them all up? Similarly, what algorithm should it follow to drop off all these passengers at their destinations after reaching cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>? Clearly, both of these algorithms should minimize the taxi&#8217;s route within the cells <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>. I haven&#8217;t been able to find the optimal traversal algorithm (perhaps you can come up with a solution), but constructing an acceptable solution is not that difficult.<\/p>\n<p>  To simplify calculations and reasoning, let&#8217;s assume that the length <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"><\/math> of the cells <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"$S_{h,w}$\" data-tex=\"inline\"><\/math> into which the city is divided is much larger than the size of the blocks. If this assumption holds, then multiple horizontal and vertical streets will pass through each cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"$S_{h,w}$\" data-tex=\"inline\"><\/math>, and the distance between adjacent streets compared to the size of the cell will be small. This allows us to approximately consider that both horizontal and vertical roads pass through each point of the cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"$S_{h,w}$\" data-tex=\"inline\"><\/math>, and each of these points can serve as a pickup or drop-off location for taxi passengers. Another consequence of this simplification is that intersection <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> will be located in the top-right corner of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math>, and intersection <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> will be in the bottom-left corner of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  Let&#8217;s start with an estimation of the asymptotics. Suppose the number of passengers $n$ is a perfect square. We arrange these individuals in the positions of nodes of a regular square grid with a cell size of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/24a\/644\/e73\/24a644e73ffa00c015000405d615192b.svg\" alt=\"$\\Delta l\/ (\\sqrt{n} - 1)$\" data-tex=\"inline\"><\/math>. The \u00absnake\u00bb shown in the figure traverses all the grid points and ends up in the upper-right corner at point <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math>, with a length of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bcd\/8f9\/753\/bcd8f9753441143080647cb825322f96.svg\" alt=\"$(\\sqrt{n} + 1) \\Delta l$\" data-tex=\"inline\"><\/math>. It is not difficult to realize that this snake represents one of the shortest routes for visiting the positions of our imaginary travelers. Indeed, no matter what route the taxi vehicle chooses, the minimum distance it will have to travel between the pickup point of each previous and each subsequent passenger is <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/24a\/644\/e73\/24a644e73ffa00c015000405d615192b.svg\" alt=\"$\\Delta l\/ (\\sqrt{n} - 1)$\" data-tex=\"inline\"><\/math>, and there will be a total of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e39\/782\/7c7\/e397827c70bdd03413d8123a84e16e46.svg\" alt=\"$n - 1$\" data-tex=\"inline\"><\/math> such \u00abtransfers\u00bb. Hence, the total traversal length will be at least <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e28\/e76\/77f\/e28e7677f1f2c06ced9acca9f53b0caf.svg\" alt=\"$(n - 1) \\cdot \\Delta l\/ (\\sqrt{n} - 1) = (\\sqrt{n} + 1) \\Delta l$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  Now let&#8217;s construct a solution for the general case where the initial positions of the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/35b\/a56\/5f3\/35ba565f36734f3a55aa01ac67868762.svg\" alt=\"$n$\" data-tex=\"inline\"><\/math> travelers are randomly scattered within <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math>. To achieve this, we divide the cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> into <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7c1\/590\/f17\/7c1590f177fffcff4759857a34008cd9.svg\" alt=\"$sqrt{n} - 1$\" data-tex=\"inline\"><\/math> identical strips. The essence of the traversal algorithm is to go around all these strips in a snake-like manner, starting from the leftmost one, and only pick up passengers within the current strip. We establish the rule that while inside a strip, the vehicle should strictly move along its central line until the next traveler it needs to pick up is precisely to its right or left. Each time this happens, the taxi driver should make a sidetrack to pick up the passenger and return to the central line of the current strip using the same path. If the taxi follows this procedure, the length of the part of its route that travels along the central lines of the strips will be approximately <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bcd\/8f9\/753\/bcd8f9753441143080647cb825322f96.svg\" alt=\"$(\\sqrt{n} + 1) \\Delta l$\" data-tex=\"inline\"><\/math>. Each deviation maneuver to pick up a passenger will, on average, add <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b68\/316\/aee\/b68316aee383c9ad09486301259505f5.svg\" alt=\"$1\/2 \\Delta l\/(\\sqrt{n} - 1)$\" data-tex=\"inline\"><\/math> units of additional distance, which sums up to an extension of the route by approximately <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b3f\/572\/ced\/b3f572ced3954e0476b14ed54b38eb1d.svg\" alt=\"$\\sqrt{n} \\Delta l\/2$\" data-tex=\"inline\"><\/math>. Therefore, the average length of traversing the starting cell will be approximately <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/196\/1bf\/92e\/1961bf92e5d42dcda13d23959ed5fc3a.svg\" alt=\"$\\approx 3\/2 \\sqrt{n} \\Delta l$\" data-tex=\"inline\"><\/math>.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/gi\/n6\/_1\/gin6_1ybndhn3uvkfhsb381x8w0.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 13<\/i><\/p>\n<p>  Let&#8217;s consider that the cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math> is divided into the same vertical strips as the cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math>. It should be obvious that when the intercell taxi reaches <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>, it will be able to deliver its passengers to their desired destinations, following the exact same algorithm as during their pickup. After this vehicle drops off all its passengers and reaches the point <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a0d\/d16\/4e4\/a0dd164e481befe52ca1b226f287b94e.svg\" alt=\"$F$\" data-tex=\"inline\"><\/math> at the end of the last strip, it can be assigned to a return trip from <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math> to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math>.<\/p>\n<h4>4.4 Average Length of the Shortest Staircase Path between Two Random Points in a Rectangle<\/h4>\n<p>  Let&#8217;s consider a rectangle <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"><\/math> with a horizontal side of length <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/89f\/1fa\/313\/89f1fa313c2af74704bab6786c0dc285.svg\" alt=\"$L_W$\" data-tex=\"inline\"><\/math> and a vertical side of length <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a1d\/e0d\/019\/a1de0d0194de03427cc75cc19d37a9fe.svg\" alt=\"$L_H$\" data-tex=\"inline\"><\/math>. By staircase curves inside <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"><\/math>, we mean piecewise linear curves composed of horizontal and vertical segments. Now, let&#8217;s take two arbitrary points <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> inside <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"><\/math>. To further explore this, we need to address two questions.<\/p>\n<p>  The first question is to determine which staircase curves from <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> will have the shortest length. The second question is about the average length of such curves when points <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> are chosen randomly and independently within <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"><\/math>, with the probability distribution describing this selection being uniformly distributed across <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  To answer the first question, we will consider every staircase path from <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> as a chain of vectors, where the start of each subsequent vector coincides with the end of the previous one. Let <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8b7\/946\/a77\/8b7946a772441fa96f741336ca29ecf2.svg\" alt=\"$A'$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1ff\/cdf\/ab3\/1ffcdfab3c05a858415fc80dbf608f7b.svg\" alt=\"$B'$\" data-tex=\"inline\"><\/math> be the projections of points <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> onto the bottom side of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"><\/math>, and let <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7a9\/c58\/8ec\/7a9c588ec654794e2453277f16280cd6.svg\" alt=\"$A''$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ced\/433\/40a\/ced43340a976dec8c306cfb6f2085d9f.svg\" alt=\"$B''$\" data-tex=\"inline\"><\/math> be their projections onto the left side of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"><\/math>. It can be observed that if <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"><\/math> is an arbitrary staircase path from <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math>, then the projections of all its horizontal segments will sum up to the vector <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b1f\/0cb\/b5c\/b1f0cbb5c4f60c48cd29ec9982edc2a4.svg\" alt=\"$\\vec{A'B'}$\" data-tex=\"inline\"><\/math>, while the projections of all its vertical segments will sum up to the vector <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dae\/20e\/361\/dae20e3614a8de21ea711c33f991e4ab.svg\" alt=\"$\\vec{A''B''}$\" data-tex=\"inline\"><\/math>.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/v-\/rp\/nt\/v-rpntz0tg24iypfvqoxehqxste.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 14<\/i><\/p>\n<p>  In that case, and only in that case, when all the horizontal segments of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"><\/math> have the same direction, the sum of their lengths will be equal to the length of the vector <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b1f\/0cb\/b5c\/b1f0cbb5c4f60c48cd29ec9982edc2a4.svg\" alt=\"$\\vec{A'B'}$\" data-tex=\"inline\"><\/math>. Similarly, when all the vertical segments of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e70\/a4d\/c8c\/e70a4dc8cfb514fee86d8651daf8c7eb.svg\" alt=\"$\\gamma$\" data-tex=\"inline\"><\/math> have the same direction, the sum of their lengths will be equal to the length of the vector <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dae\/20e\/361\/dae20e3614a8de21ea711c33f991e4ab.svg\" alt=\"$\\vec{A''B''}$\" data-tex=\"inline\"><\/math>. Staircase paths where both the horizontal and vertical segments are oriented in the same direction are referred to as monotonic paths. Thus, a staircase path will be the shortest path if and only if it is monotonic.<\/p>\n<p>  Now let&#8217;s address the second question. Suppose points <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> are randomly and independently chosen within the rectangle <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"><\/math>. We know that the length of any shortest staircase curve from <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> is equal to the sum of the projections of segment <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/785\/87c\/ea9\/78587cea9d68e93678392d15a4b1ee9b.svg\" alt=\"$AB$\" data-tex=\"inline\"><\/math> onto the bottom and left sides of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"><\/math>. Therefore, to calculate the average length of such curves, we only need to compute the average length of segments <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2c1\/d67\/8b0\/2c1d678b0b9058281d8c8f7aee2ad163.svg\" alt=\"$A'B'$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/997\/3e0\/faf\/9973e0fafb6a96fa5a2299fcdd1bce98.svg\" alt=\"$A''B''$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  It can be shown, and it is nearly obvious, that the uniform distribution and independence of the selection of points <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6b\/9aa\/2bb\/f6b9aa2bb612b936cf731b846ed495d6.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/707\/00e\/3da70700ecb803cfa36f4c3fca1c0b6f.svg\" alt=\"$B$\" data-tex=\"inline\"><\/math> within <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"><\/math> imply the uniform distribution and independence of the random positions of their projections onto each side of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/e64\/573\/69ae645736f434bf2fc596744ea1e774.svg\" alt=\"$\\Pi$\" data-tex=\"inline\"><\/math>. Let&#8217;s then calculate the average distance between two randomly chosen points <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3a5\/e67\/187\/3a5e67187c94ffba1bacdbc00b809d08.svg\" alt=\"$Q$\" data-tex=\"inline\"><\/math> on a segment <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0c9\/5e7\/5d4\/0c95e75d45410762667f689b0da05c52.svg\" alt=\"$I$\" data-tex=\"inline\"><\/math> of length <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ffe\/7fb\/ad9\/ffe7fbad9e8131a5d99bf8feffe52f62.svg\" alt=\"$L$\" data-tex=\"inline\"><\/math>. Since the result is clearly proportional to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ffe\/7fb\/ad9\/ffe7fbad9e8131a5d99bf8feffe52f62.svg\" alt=\"$L$\" data-tex=\"inline\"><\/math>, it suffices to consider the case when <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/080\/039\/11b\/08003911bac8f3fe059360f25087471e.svg\" alt=\"$L = 1$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  Let <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4cc\/fd4\/32e\/4ccfd432ea4f2a64f3a5c8c7378517af.svg\" alt=\"$x$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8f8\/c2f\/a70\/8f8c2fa70a7019d42baacce3ac56acd3.svg\" alt=\"$y$\" data-tex=\"inline\"><\/math> represent the distances of points <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3a5\/e67\/187\/3a5e67187c94ffba1bacdbc00b809d08.svg\" alt=\"$Q$\" data-tex=\"inline\"><\/math> from the left end of segment <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0c9\/5e7\/5d4\/0c95e75d45410762667f689b0da05c52.svg\" alt=\"$I$\" data-tex=\"inline\"><\/math>. In this case, the pair <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/eb0\/905\/758\/eb09057584f23ae96bc226ac3b8c1add.svg\" alt=\"$(x, y)$\" data-tex=\"inline\"><\/math> fully encodes the choice of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3a5\/e67\/187\/3a5e67187c94ffba1bacdbc00b809d08.svg\" alt=\"$Q$\" data-tex=\"inline\"><\/math>, and the probability of having a particular pair <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/eb0\/905\/758\/eb09057584f23ae96bc226ac3b8c1add.svg\" alt=\"$(x, y)$\" data-tex=\"inline\"><\/math> is uniformly distributed within the unit square of the Cartesian plane.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zr\/mb\/al\/zrmbaleckg6xz_wq1pqe-cd7v-e.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 15<\/i><\/p>\n<p>  The distance between <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3a5\/e67\/187\/3a5e67187c94ffba1bacdbc00b809d08.svg\" alt=\"$Q$\" data-tex=\"inline\"><\/math> is described by the function <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5ca\/fd5\/0fb\/5cafd50fb3a301320c7458126ee99578.svg\" alt=\"$F(x, y) = |x - y|$\" data-tex=\"inline\"><\/math>, and its graph consists of two identical pyramids with a height of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d4a\/c7f\/4b6\/d4ac7f4b6821aecb794f61695d169e22.svg\" alt=\"$1$\" data-tex=\"inline\"><\/math> and a base area of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/037\/e60\/b7e\/037e60b7e8b5d165259848f91f9d36a5.svg\" alt=\"$1\/2$\" data-tex=\"inline\"><\/math> each. The average distance between <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3a5\/e67\/187\/3a5e67187c94ffba1bacdbc00b809d08.svg\" alt=\"$Q$\" data-tex=\"inline\"><\/math> is equal to the average value of the height of the graph <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b5a\/14e\/878\/b5a14e878a217efc4d50ac8bf533ab7a.svg\" alt=\"$F(x, y)$\" data-tex=\"inline\"><\/math>, which is the total volume of the pyramids divided by the total area of their bases. The volume of a pyramid is equal to one-third of the product of the base area and the height. Therefore, the average distance between two random points on a segment of length <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ffe\/7fb\/ad9\/ffe7fbad9e8131a5d99bf8feffe52f62.svg\" alt=\"$L$\" data-tex=\"inline\"><\/math> is <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7b0\/ddc\/274\/7b0ddc2746385227f2457eafddd86585.svg\" alt=\"$L\/3$\" data-tex=\"inline\"><\/math>, and the average distance between two random points in a rectangle of size <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/45e\/ad1\/471\/45ead1471d7a5b9c8975d1fbf015f9ee.svg\" alt=\"$L_H \\times L_W$\" data-tex=\"inline\"><\/math> is <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c59\/6d4\/683\/c596d4683e80f51a9ec1618a0cf61299.svg\" alt=\"$1\/3(L_H + L_W)$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  <b>Exercise:<\/b> Show that in a rectangle of size <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/45e\/ad1\/471\/45ead1471d7a5b9c8975d1fbf015f9ee.svg\" alt=\"$L_H \\times L_W$\" data-tex=\"inline\"><\/math>, the average length of the shortest staircase curve constructed between a randomly chosen point and the center of the rectangle is <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cba\/dfd\/58b\/cbadfd58bffc76d88112f126f5e93188.svg\" alt=\"$(L_H + L_W)\/4$\" data-tex=\"inline\"><\/math>, and between a randomly chosen point and its corner is <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5ef\/c0c\/be7\/5efc0cbe7fd768654f12abc64bc5da9f.svg\" alt=\"$(L_H + L_W)\/2$\" data-tex=\"inline\"><\/math>.<\/p>\n<h4>4.5 Average Duration of Inter-Cell Taxi Journeys<\/h4>\n<p>  If all journeys in the city are made by private cars, the routes of most of them can be planned along the shortest staircase curve. In this case, the average trip length would be close to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d87\/78a\/30a\/d8778a30a20c66720314e0ac21546c13.svg\" alt=\"$1\/3\\ (L_H + L_W)$\" data-tex=\"inline\"><\/math>, and the duration would be <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/620\/4d5\/1bc\/6204d51bc0b9233f2485fe4880aec63d.svg\" alt=\"$1\/3\\ (L_H + L_W)\/v$\" data-tex=\"inline\"><\/math>. What will be the average length and duration of journeys if all city residents make them using inter-cell taxis?<\/p>\n<p>  Let&#8217;s consider a traveler who needs to travel from an intersection <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"><\/math> in the square <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> to an intersection <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3a5\/e67\/187\/3a5e67187c94ffba1bacdbc00b809d08.svg\" alt=\"$Q$\" data-tex=\"inline\"><\/math> in the square <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>. We divide their future route into three segments: the initial segment within <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math>, the middle segment between the closest corners of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>, and the final segment within <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>. The initial and final segments are part of the zigzag path that the taxi takes around the cells <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>. With randomly located intersections <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3a5\/e67\/187\/3a5e67187c94ffba1bacdbc00b809d08.svg\" alt=\"$Q$\" data-tex=\"inline\"><\/math>, the traveler will traverse approximately half of each zigzag on average. Therefore, the average length of the initial and final segments of their journey will be approximately <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5ff\/892\/3c6\/5ff8923c67c6cfdf3b360a0f942e332c.svg\" alt=\"$\\approx 3\/4\\ \\sqrt{n} \\Delta l$\" data-tex=\"inline\"><\/math> each. This approximation holds when the number of passengers <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/35b\/a56\/5f3\/35ba565f36734f3a55aa01ac67868762.svg\" alt=\"$n$\" data-tex=\"inline\"><\/math> carried by the vehicle at once is sufficiently large.<\/p>\n<p>  To estimate the average length of the middle segment, let&#8217;s assume that the size of the cells into which the city is divided is much smaller than the size of the city itself, i.e., <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/25a\/921\/c30\/25a921c30174f87e5fb98a3710328148.svg\" alt=\"$\\Delta l \\ll (L_H + L_W)\/2$\" data-tex=\"inline\"><\/math>. If this is the case, the cells <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"$S_{h,w}$\" data-tex=\"inline\"><\/math> appear as points on the city scale, and the average distance between them, up to an order of magnitude of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"><\/math>, is <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d87\/78a\/30a\/d8778a30a20c66720314e0ac21546c13.svg\" alt=\"$1\/3\\ (L_H + L_W)$\" data-tex=\"inline\"><\/math>. Consequently, with relatively large <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/35b\/a56\/5f3\/35ba565f36734f3a55aa01ac67868762.svg\" alt=\"$n$\" data-tex=\"inline\"><\/math> and relatively small <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"><\/math>, inter-cell taxi journeys in the city will be on average approximately <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/994\/926\/ac8\/994926ac8b53e8ed0e2828e9057b73f9.svg\" alt=\"$3\/2\\ \\sqrt{n} \\Delta l$\" data-tex=\"inline\"><\/math> longer than private car trips.<\/p>\n<p>  The average time required for a journey in the city using inter-cell taxis can be found as the \u00abaverage trip length divided by the average speed, plus the average waiting time for transportation.\u00bb We estimated the average trip length as <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/eb9\/c8a\/4ae\/eb9c8a4aeb977164b8d3c273be474e27.svg\" alt=\"$1\/3\\ (L_H + L_W) + 3\/2\\ \\sqrt{n} \\Delta L$\" data-tex=\"inline\"><\/math>. Let&#8217;s neglect the time for acceleration, braking, boarding, alighting, and other minor delays encountered by passengers, and assume that the average speed of the taxi is close to the speed limit v in the city. Furthermore, we assume that taxis traveling between a pair of cells follow each other with a time interval of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"><\/math>. If that&#8217;s the case, a person who has just decided to travel from cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> to cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math> will have to wait, on average, approximately <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2ae\/04a\/e50\/2ae04ae507a9a30ce056ca4abb371bca.svg\" alt=\"$\\Delta T\/2$\" data-tex=\"inline\"><\/math> units of time for an available taxi. Putting it all together, the average travel time on an inter-cell taxi is approximately<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9cf\/235\/771\/9cf2357714a71c4cc6a0fa3dcb26aec2.svg\" alt=\"$1\/3\\ (L_H + L_W)\/v + 3\/2\\ \\sqrt{n} \\Delta l\/v + \\Delta T\/2 \\ \\ \\ \\ \\ (1)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  which is<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/277\/5ef\/d35\/2775efd354f5a6da7eaf0da26315ae14.svg\" alt=\"$3\/2\\ \\sqrt{n} \\Delta l\/v + \\Delta T\/2 \\ \\ \\ \\ \\ (2)$\" data-tex=\"inline\"><\/math><\/p>\n<p>  longer than the average travel time by a private car.<\/p>\n<h4>4.6 Average Number of Passengers in the Cabin<\/h4>\n<p>  How many passengers does an inter-cell taxi carry at once? Let&#8217;s assume that, on average, there are <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f2d\/db7\/2d8\/f2ddb72d8056981528ead2fc4ad89cac.svg\" alt=\"$\\sigma$\" data-tex=\"inline\"><\/math> individuals per unit area with the intention to travel within the city. During the time interval <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"><\/math>, which is the time between taxis traveling between <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>, the number of individuals with such an intention within cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> will be, on average, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/857\/f81\/90b\/857f8190bafc3a3685359bff6aab4856.svg\" alt=\"$\\Delta T \\sigma (\\Delta l)^2$\" data-tex=\"inline\"><\/math>. However, not all of them will have their destination within cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math>. The probability that a randomly chosen trip ends in cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math> is <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/06f\/290\/e26\/06f290e2659469f07a698edc114a4bf7.svg\" alt=\"$(\\Delta l)^2\/(L_HL_W)$\" data-tex=\"inline\"><\/math>, which is the ratio of the area of that cell to the total area of the city. As a result, on average, each taxi traveling between <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h',w'}$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c20\/63b\/971\/c2063b97165ce5f5a41a94650ede7810.svg\" alt=\"$S_{h'',w''}$\" data-tex=\"inline\"><\/math> will have:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6ba\/650\/319\/6ba6503197c278d9186e0252c2210582.svg\" alt=\"$n_{pass} = \\Delta T \\sigma (\\Delta l)^4\/(L_HL_W) \\ \\ \\ \\ \\ (3)$\" data-tex=\"inline\"><\/math><\/p>\n<p>  passengers striving to travel.<\/p>\n<p>  The formula written above predictably shows that the larger the size of the cells we divide the city into and the larger the movement interval we set for the taxis circulating between these cells, the greater the number of passengers each of them will transport at once. However, we cannot make the cell size <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"><\/math> and the movement interval <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"><\/math> too large, otherwise the trip on the intercellular taxi will become excessively long. We require that the average travel time on the intercellular taxi differs from the average travel time in a private car by no more than a factor of $(1 + \\lambda)$. This requirement leads us to the inequality:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/612\/f5d\/9c8\/612f5d9c8cdc8fcee6e77812646e6a3f.svg\" alt=\"$1\/3\\ (H + W)\/v + 3\/2\\ \\sqrt{n_{pass}} \\Delta l\/v + \\Delta T\/2 \\leq (1 + \\lambda) [1\/3\\ (L_H + L_W)\/v]\\ \\ \\ \\ \\ (4)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  from which:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b3a\/49c\/5b8\/b3a49c5b8f70a4ccccc0c8e0d4feb1f0.svg\" alt=\"$3\/2\\ \\sqrt{n_{pass}} \\Delta l\/v + \\Delta T\/2 \\leq 1\/3 \\lambda (L_H + L_W)\/v\\ \\ \\ \\ \\ \\ (5)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  or in the limit:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e5c\/72c\/aa2\/e5c72caa2df5473991a098b95ab2ba6a.svg\" alt=\"$3\/2\\ \\sqrt{n_{pass}} \\Delta l\/v + \\Delta T\/2 = 1\/3\\ \\lambda (L_H + L_W)\/v \\ \\ \\ \\ \\ (6)$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  Substituting the expression for <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"><\/math> into <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/79e\/405\/545\/79e405545f0743f9acffa691629a8fde.svg\" alt=\"$(6)$\" data-tex=\"inline\"><\/math>, we obtain the equation relating the parameters <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"><\/math>, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"><\/math>, and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/91b\/9ea\/0de\/91b9ea0dea5c5e29ac154df74d97d53d.svg\" alt=\"$\\lambda$\" data-tex=\"inline\"><\/math>:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/072\/e2e\/c21\/072e2ec213bad6770ee101b65d450d02.svg\" alt=\"$3\/2\\ \\sqrt{\\Delta T \\sigma\/(L_HL_W)} \\cdot (\\Delta l)^3\/v + \\Delta T\/2 = 1\/3\\ \\lambda (L_H + L_W)\/v\\ \\ \\ \\ \\ (7)$\" data-tex=\"inline\"><\/math><\/p>\n<p>  Let&#8217;s find the values of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"><\/math> that maximize the quantity <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"><\/math> given a specific <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/91b\/9ea\/0de\/91b9ea0dea5c5e29ac154df74d97d53d.svg\" alt=\"$\\lambda$\" data-tex=\"inline\"><\/math>. For simplicity, let&#8217;s consider the case when the city has a square shape and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6db\/242\/46f\/6db24246fadea653972827a9c6994301.svg\" alt=\"$L_H = L_W = L$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  Taking derivatives directly here would be too cumbersome, so we will use a little trick. Notice that the constraint equation consists of two terms. Let&#8217;s take an arbitrary <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/69a\/de6\/5c1\/69ade65c1057b7e429cc6589394b1c9d.svg\" alt=\"$q = 1 - p$\" data-tex=\"inline\"><\/math> ranging from zero to one, and distribute their sum between the terms of equation <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bba\/a8c\/430\/bbaa8c4303b399f858aa48236f952013.svg\" alt=\"$(7)$\" data-tex=\"inline\"><\/math> in the ratio of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ee5\/523\/4a2\/ee55234a255efd087d88919baaf344ef.svg\" alt=\"$p \\div q$\" data-tex=\"inline\"><\/math>:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/44d\/0be\/ba6\/44d0beba68d5fa792a89d9e37e4a7a00.svg\" alt=\"$3\/2\\ \\sqrt{\\Delta T \\sigma\/L^2} \\cdot (\\Delta l)^3\/v = q [1\/3\\ \\lambda (L + L)\/v]\\ \\ \\ \\ \\ (8)$\" data-tex=\"inline\"><\/math><\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/980\/b75\/1e2\/980b751e218a69526705ff02a29ebd6d.svg\" alt=\"$\\Delta T\/2 = p [1\/3\\ \\lambda (L + L)\/v]\\ \\ \\ \\ \\ \\ (9)$\" data-tex=\"inline\"><\/math><\/p>\n<p>  From which we have:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a27\/d13\/c1b\/a27d13c1b1dc9cb1648722ca3f9339c6.svg\" alt=\"$\\Delta T = 4\/3\\ p \\lambda L\/v\\ \\ \\ \\ \\ (10)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ddd\/dfe\/7f0\/ddddfe7f0f8cd09354433d39491d1564.svg\" alt=\"$3\/2\\ \\sqrt{4\/3\\ p \\lambda \\sigma L\/v} \\cdot (\\Delta l)^3\/(Lv) = 2\/3\\ q \\lambda L\/v\\ \\ \\ \\ \\ \\ (11)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2c3\/63e\/47c\/2c363e47caca9fbdb45c747b2cf5e5b8.svg\" alt=\"$\\Delta l = 2^{1\/3} 3^{-1\/2} q^{1\/3} p^{-1\/6} \\lambda^{1\/6} \\sigma^{-1\/6} L^{1\/2} v^{1\/6}\\ \\ \\ \\ \\ \\ (12)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9c7\/b18\/bc4\/9c7b18bc4bab0ead750424b30ec4646c.svg\" alt=\"$n_{pass} = \\Delta T \\sigma (\\Delta l)^4\/L^2 = 4\/3\\ p \\lambda \\sigma\/(Lv) \\cdot 2^{4\/3} 3^{-2} q^{4\/3} p^{-2\/3} \\lambda^{2\/3} \\sigma^{-2\/3} L^{2} v^{2\/3} =$\" data-tex=\"inline\"><\/math><\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8c8\/bf3\/34d\/8c8bf334d88305f4722cc28d636203cd.svg\" alt=\"$= 8 \\sqrt [3]{2}\/27 \\cdot p^{1\/3}q^{4\/3} \\lambda^{5\/3} L (\\frac {\\sigma}{v})^{1\/3}\\ \\ \\ \\ \\ \\ (13)$\" data-tex=\"inline\"><\/math><\/p>\n<p>  Now we can optimize <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"><\/math> with respect to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8f3\/06f\/830\/8f306f830651d08b378d79f1e4432853.svg\" alt=\"$q$\" data-tex=\"inline\"><\/math>. These parameters will be optimal when<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/96b\/390\/e3d\/96b390e3d9e7b981f35d95af54674d4e.svg\" alt=\"$d(p^{1\/3}q^{4\/3}) = (1\/3\\ dp\/p + 4\/3\\ dq\/q) p^{1\/3}q^{4\/3} = 0\\ \\ \\ \\ \\ \\ \\ (14)$\" data-tex=\"inline\"><\/math><\/p>\n<p>  subject to the condition<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/560\/15b\/450\/56015b450cf6bdef3d3b947c0377af69.svg\" alt=\"$dp + dq = 0 \\ \\ \\ \\ (15)$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  From the two equations above, we immediately have:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/86c\/63c\/626\/86c63c626cb49326cda3162c89270d27.svg\" alt=\"$\\frac {1}{p} - \\frac {4}{q} = 0\\ \\ \\ \\ \\ \\ (16)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  which implies <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f43\/56b\/3dd\/f4356b3ddf67907dad93b1346c0593ad.svg\" alt=\"$p = 0.2$\" data-tex=\"inline\"><\/math>, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a50\/177\/ff9\/a50177ff9515eb75f3132663a38126ce.svg\" alt=\"$q = 0.8$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  Substituting the optimal values of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/f0b\/0cf\/a7df0b0cf52583a7326d63832fe3d4ed.svg\" alt=\"$p$\" data-tex=\"inline\"><\/math> and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8f3\/06f\/830\/8f306f830651d08b378d79f1e4432853.svg\" alt=\"$q$\" data-tex=\"inline\"><\/math> into the formulas for <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"><\/math>, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"><\/math>, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"><\/math>:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/370\/3f8\/13c\/3703f813c23042797882f4951971db7d.svg\" alt=\"$n_{pass} = 0.16 \\lambda^{5\/3} L (\\frac {\\sigma}{v})^{1\/3}\\ \\ \\ \\ \\ \\ (17)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/70f\/f48\/fcd\/70ff48fcd7b36abe2abbb2302d2794e4.svg\" alt=\"$\\Delta l = 0.88 \\lambda^{1\/6} L^{1\/2} (\\frac {v}{\\sigma})^{1\/6}\\ \\ \\ \\ \\ (18)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/33c\/f08\/738\/33cf087386210f02ebf241e925f8a50a.svg\" alt=\"$\\Delta T = 0.27 \\lambda L\/v\\ \\ \\ \\ \\ (19)$\" data-tex=\"inline\"><\/math>.<\/p>\n<h4>4.7 Estimation for Real Cities<\/h4>\n<p>  Let&#8217;s see how <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"><\/math>, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"><\/math>, and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"><\/math> would look like if we take <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f2d\/db7\/2d8\/f2ddb72d8056981528ead2fc4ad89cac.svg\" alt=\"$\\sigma$\" data-tex=\"inline\"><\/math>, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ffe\/7fb\/ad9\/ffe7fbad9e8131a5d99bf8feffe52f62.svg\" alt=\"$L$\" data-tex=\"inline\"><\/math>, and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2ac\/211\/43d\/2ac21143d39638d2322c66f487d3efb6.svg\" alt=\"$v$\" data-tex=\"inline\"><\/math> corresponding to real cities, and set <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/91b\/9ea\/0de\/91b9ea0dea5c5e29ac154df74d97d53d.svg\" alt=\"$\\lambda$\" data-tex=\"inline\"><\/math> to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/037\/e60\/b7e\/037e60b7e8b5d165259848f91f9d36a5.svg\" alt=\"$1\/2$\" data-tex=\"inline\"><\/math>. We will obtain the population size <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"><\/math>, population density <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1aa\/898\/515\/1aa898515c79e9416a3d8de0bb9e815d.svg\" alt=\"$\\rho$\" data-tex=\"inline\"><\/math>, and the allowed speed <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2ac\/211\/43d\/2ac21143d39638d2322c66f487d3efb6.svg\" alt=\"$v$\" data-tex=\"inline\"><\/math> from encyclopedic sources. With a population of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cf7\/59a\/0df\/cf759a0dfface7fb52b8231eb4fa9e47.svg\" alt=\"$P$\" data-tex=\"inline\"><\/math> and density <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1aa\/898\/515\/1aa898515c79e9416a3d8de0bb9e815d.svg\" alt=\"$\\rho$\" data-tex=\"inline\"><\/math>, the square city will have a size <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/538\/e6a\/05d\/538e6a05d4ba1a8e93d799003e07a2ad.svg\" alt=\"$L = \\sqrt {P\/\\rho}$\" data-tex=\"inline\"><\/math>. We will estimate <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f2d\/db7\/2d8\/f2ddb72d8056981528ead2fc4ad89cac.svg\" alt=\"$\\sigma$\" data-tex=\"inline\"><\/math>, which represents the average number of trips starting from a unit area in one unit of time, based on the following assumptions:<\/p>\n<p>  Let&#8217;s assume that each city resident makes an average of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c37\/24c\/45a\/c3724c45ab9dcf8945e6bcece2165788.svg\" alt=\"$2$\" data-tex=\"inline\"><\/math> trips per day, and the migration activity is evenly distributed over <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fdf\/c7e\/70a\/fdfc7e70a9b5c10b0346a160163699c8.svg\" alt=\"$4$\" data-tex=\"inline\"><\/math> morning hours and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/56b\/d97\/a01\/56bd97a01f6a9470ac8699fdffb2edfe.svg\" alt=\"$6$\" data-tex=\"inline\"><\/math> evening hours. In a city of size <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/305\/981\/10e\/30598110e9520da1dceb4958d7b532c3.svg\" alt=\"$L \\times L$\" data-tex=\"inline\"><\/math>, there are <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/909\/4f0\/97e\/9094f097e46e0faa8bafd0cbcfc52dbe.svg\" alt=\"$\\rho L^2$\" data-tex=\"inline\"><\/math> people, and in <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b02\/5d6\/0c7\/b025d60c7b88ce3a79f7e64cfd6d49a9.svg\" alt=\"$600$\" data-tex=\"inline\"><\/math> minutes they will make <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/af9\/299\/465\/af929946511d10d0300a9b47f8465644.svg\" alt=\"$2\\rho L^2$\" data-tex=\"inline\"><\/math> trips. Therefore, during the periods of migration activity, an average of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ab3\/ad8\/387\/ab3ad8387d027ed44d1288a24ca3853c.svg\" alt=\"$\\sigma = 2\\rho L^2 \/ (600 L^2) = 2\\rho\/600$\" data-tex=\"inline\"><\/math> people should start their journey per minute from a 1-square-kilometer area. Let&#8217;s move on to specific examples.<\/p>\n<p>  For a hypothetical New York (London, Moscow):<br \/>  Population <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dfd\/560\/c5a\/dfd560c5ad7f769eb5c28f15ff6cbbdb.svg\" alt=\"$P = 8$\" data-tex=\"inline\"><\/math> million people,<br \/>  Density <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f5c\/afb\/538\/f5cafb5388e2758bdaf1f08e5f6442ad.svg\" alt=\"$\\rho = 10,000$\" data-tex=\"inline\"><\/math> people\/sq km,<br \/>  Effective diameter <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/684\/bfc\/1a1\/684bfc1a158b0e15668c23260b872ffe.svg\" alt=\"$L = \\sqrt {8M\/10K} \\approx 28$\" data-tex=\"inline\"><\/math> km,<br \/>  Allowed speed <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bbe\/1b7\/25a\/bbe1b725a6869e95cea3f212735906f9.svg\" alt=\"$v = 0.8$\" data-tex=\"inline\"><\/math> km\/min,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/645\/b76\/11f\/645b7611fe580e185d59ceef5adab0fe.svg\" alt=\"$\\sigma \\approx 2\\cdot 10K\/600 = 33$\" data-tex=\"inline\"><\/math> people\/min sq km,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ed6\/be7\/437\/ed6be74378329ec1a634567a44465b9b.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.16 (1\/2)^{5\/3} 28 (33\/0.8)^{1\/3} \\approx 4.9$\" data-tex=\"inline\"><\/math> people,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/263\/f38\/2e5\/263f382e598af08b98bcf4c0345d4495.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 0.88 (1\/2)^{1\/6} 33^{-1\/6} 28^{1\/2} 0.8^{1\/6} \\approx 2.2$\" data-tex=\"inline\"><\/math> km,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0a0\/2a9\/0f0\/0a02a90f0356e0b442fb61e28985e9c4.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 0.27\\cdot 1\/2 \\cdot 28\/0.8\\approx 4.7$\" data-tex=\"inline\"><\/math> min<\/p>\n<p>  For a hypothetical Berlin:<br \/>  Population <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a60\/ae1\/320\/a60ae13203dcc5da94476d352830132e.svg\" alt=\"$P = 3.7$\" data-tex=\"inline\"><\/math> million people,<br \/>  Density <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/665\/811\/2ed\/6658112ed897234fff66b1e37ba38787.svg\" alt=\"$\\rho = 4000$\" data-tex=\"inline\"><\/math> people\/sq km,<br \/>  Effective diameter <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b94\/70b\/d22\/b9470bd2282a331550173293bb9b98c8.svg\" alt=\"$L = \\sqrt {3.7M\/4K} \\approx 30$\" data-tex=\"inline\"><\/math> km,<br \/>  Allowed speed <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bbe\/1b7\/25a\/bbe1b725a6869e95cea3f212735906f9.svg\" alt=\"$v = 0.8$\" data-tex=\"inline\"><\/math> km\/min,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4dd\/9c0\/48d\/4dd9c048db5fbe5747874a9774a19e4c.svg\" alt=\"$\\sigma \\approx 2 \\cdot 4K\/600 = 13$\" data-tex=\"inline\"><\/math> people\/min sq km,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5a5\/2fa\/e25\/5a52fae25594729d20f0728ceb7398b2.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.16 (1\/2)^{5\/3} 30 (13\/0.8)^{1\/3} \\approx 3.8$\" data-tex=\"inline\"><\/math> people,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8ae\/ce5\/28f\/8aece528fcc316f3363f57982a6f9c6e.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 0.88 (1\/2)^{1\/6} 13^{-1\/6} 30^{1\/2} 0.8^{1\/6} \\approx 2.7$\" data-tex=\"inline\"><\/math> km,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/de1\/9bf\/764\/de19bf764bce8ca628eeb8f3f68bc94b.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 0.27\\cdot 1\/2 \\cdot 30\/0.8\\approx 5$\" data-tex=\"inline\"><\/math> min<\/p>\n<p>  For a hypothetical Paris:<br \/>  Population <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/499\/9f5\/5b0\/4999f55b0a7803729c7bcbbcc3f1a43c.svg\" alt=\"$P = 2.1$\" data-tex=\"inline\"><\/math> million people,<br \/>  Density <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/32e\/fc8\/aef\/32efc8aef9b704ce7a5888f3bc63e04c.svg\" alt=\"$\\rho = 21,000$\" data-tex=\"inline\"><\/math> people\/sq km,<br \/>  Effective diameter <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/780\/43a\/e85\/78043ae8538d845edc90d93d0dede3d4.svg\" alt=\"$L = \\sqrt {2.1M\/21K} = 10$\" data-tex=\"inline\"><\/math> km,<br \/>  Allowed speed <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/60b\/248\/0e9\/60b2480e9734b8b1fdddc82660e27859.svg\" alt=\"$v = 0.5$\" data-tex=\"inline\"><\/math> km\/min,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/728\/8f0\/b5b\/7288f0b5b15d738b59aceb4c858143d3.svg\" alt=\"$ \\sigma \\approx 2\\cdot 21K\/600 = 70$\" data-tex=\"inline\"><\/math> people\/min sq km,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ed4\/2be\/c49\/ed42bec49c2603069590a620f6892d0f.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.16 (1\/2)^{5\/3} 10 (70\/0.5) \\approx 2.6$\" data-tex=\"inline\"><\/math> people,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/1b6\/8c8\/bc01b68c82e9ffae91db28922793a383.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 0.88 (1\/2)^{1\/6} 70^{-1\/6} 10^{1\/2} 0.5^{1\/6} \\approx 1.1$\" data-tex=\"inline\"><\/math> km,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4b2\/18d\/801\/4b218d80160e3d0dcdd338db568443ee.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 0.27\\cdot 1\/2 \\cdot 10\/0.5 \\approx 2.7$\" data-tex=\"inline\"><\/math> min<\/p>\n<p>  For a hypothetical Prague:<br \/>  Population <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/449\/d0b\/16d\/449d0b16dedb4326963327986e1d9b3a.svg\" alt=\"$P = 1.3$\" data-tex=\"inline\"><\/math> million people,<br \/>  Density <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d6d\/456\/a6c\/d6d456a6c36e75345bc910d6fe493757.svg\" alt=\"$\\rho = 2500$\" data-tex=\"inline\"><\/math> people\/sq km,<br \/>  Effective diameter <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ba9\/39f\/aef\/ba939faef3e6423b165d17fb4633a859.svg\" alt=\"$L = \\sqrt {1.3M\/2.5K} \\approx 23$\" data-tex=\"inline\"><\/math> km,<br \/>  Allowed speed <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bbe\/1b7\/25a\/bbe1b725a6869e95cea3f212735906f9.svg\" alt=\"$v = 0.8$\" data-tex=\"inline\"><\/math> km\/min,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b94\/efb\/dec\/b94efbdec7c62433ab73114fb04a8cc4.svg\" alt=\"$\\sigma \\approx 2\\cdot 2.5K\/600 = 8.3$\" data-tex=\"inline\"><\/math> people\/min sq km,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/df6\/e27\/846\/df6e27846efb1b9c8f811366ef2729a4.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.16 (1\/2)^{5\/3} 23 (8.3\/0.8)^{1\/3} \\approx 2.5$\" data-tex=\"inline\"><\/math> people,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bb2\/101\/7e1\/bb21017e1d47f3dfa823943074ed01e0.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 0.88 (1\/2)^{1\/6} 8.3^{-1\/6} 23^{1\/2} 0.8^{1\/6} \\approx 2.5$\" data-tex=\"inline\"><\/math> km,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/610\/c5c\/9bd\/610c5c9bd4dd46c7f89d16ad255ace78.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 0.27\\cdot 1\/2 \\cdot 23\/0.8 \\approx 3.9$\" data-tex=\"inline\"><\/math> min<\/p>\n<h4>4.8 Critique<\/h4>\n<p>  The estimates we obtained above show that the idea of shared trips has theoretical validity (Uber can make it happen) and should be further explored. As for the intercellular taxi scheme, while it serves as a good starting point for research, it is not well-suited for practical implementation. The main reasons for its limited applicability can be summarized as follows:<br \/>  1) Only in very large cities will there be enough fellow passengers to fill a very small bus, so intercellular taxi cannot be considered as mass transport.<br \/>  2) The claim that traveling by intercellular taxi in the city takes, on average, no more than <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/07a\/900\/10d\/07a90010dac56068f7c1bb92f11e73ce.svg\" alt=\"$(1 + \\lambda)$\" data-tex=\"inline\"><\/math> times longer than using a private car is only valid if the destination is chosen randomly each time. If you plan to travel between neighboring squares using intercellular taxis every day, it would be faster to walk.<\/p>\n<p>  In the following sections, we will develop non-stop public transport schemes that completely overcome problem 2) and, to a large extent, problem 1), but they will only be suitable for cities with a population above one million. Therefore, let us consider an interesting solution that can effectively operate in smaller cities.<\/p>\n<h3><font color=\"#0099cc\">5. Shared Taxi with One Transfer<\/font> <br \/>  <\/h3>\n<p>  <\/p>\n<h4>5.1 Guiding Considerations<\/h4>\n<p>  Let&#8217;s consider a city with a square shape and a side length of approximately 10 km, populated with a density of around 5000 people per square kilometer. With these assumptions, the city would be home to approximately 500,000 people, so it cannot be considered small. The average travel distance within the city would be <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d36\/e06\/e88\/d36e06e88d539812db18722e28711efb.svg\" alt=\"$2\/3 \\cdot 10$\" data-tex=\"inline\"><\/math> km = <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/aa4\/139\/9f3\/aa41399f3d28cac30a89c4967007af68.svg\" alt=\"$6.6$\" data-tex=\"inline\"><\/math> km, and the maximum distance would be <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d12\/a40\/802\/d12a4080210deead51bd76f695d1bbda.svg\" alt=\"$20$\" data-tex=\"inline\"><\/math> km.<\/p>\n<p>  If we set the permissible driving speed in this city to be <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/744\/287\/09f\/74428709f3ebe73b62c194fd8ac54251.svg\" alt=\"$60$\" data-tex=\"inline\"><\/math> km\/h (<math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d4a\/c7f\/4b6\/d4ac7f4b6821aecb794f61695d169e22.svg\" alt=\"$1$\" data-tex=\"inline\"><\/math> km\/min), the formula for the optimized number of fellow passengers in intercellular taxis would give us:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/81f\/e3d\/ae9\/81fe3dae9fe3f7338337f8ea8a6e19fd.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.16 (1\/2)^{5\/3} 10 (2 \\cdot 5K\/600)^{1\/3} \\approx 1.3$\" data-tex=\"inline\"><\/math> passengers.<\/p>\n<p>  Can we somehow increase this number?<\/p>\n<p>  To make it easier to understand how this can be done, let&#8217;s make some changes to the taxi movement regulations. Firstly, we will assume that vertical and horizontal roads pass through the center of each cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"$S_{h,w}$\" data-tex=\"inline\"><\/math>, and taxis only move between cells along these roads. Secondly, we will require that the taxi moves from the starting cell to the destination cell along a <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"><\/math>-shaped path <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"><\/math>, and out of the two possible paths, it chooses the one that starts with a horizontal segment.<\/p>\n<p>  If we observe the taxis carrying passengers from cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"><\/math> to cells in the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/da9\/639\/ed8\/da9639ed80e139611d7a5199b20a35ac.svg\" alt=\"$w\u2019\u2019$\" data-tex=\"inline\"><\/math>-th column, we will notice that they all share a common segment of the path: from the center of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"><\/math> to the center of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/448\/d6d\/c68\/448d6dc688378b6676b49a482ac8f502.svg\" alt=\"$S_{h\u2019,w\u2019\u2019}$\" data-tex=\"inline\"><\/math>. So why not transport the passengers traveling from <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"><\/math> to the cells in the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/da9\/639\/ed8\/da9639ed80e139611d7a5199b20a35ac.svg\" alt=\"$w\u2019\u2019$\" data-tex=\"inline\"><\/math>-th column with a common bus up to the center of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/448\/d6d\/c68\/448d6dc688378b6676b49a482ac8f502.svg\" alt=\"$S_{h\u2019,w\u2019\u2019}$\" data-tex=\"inline\"><\/math>, and then come up with something there. Let&#8217;s do just that.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vz\/nf\/1p\/vznf1pkhv_xsdxwmtvy_vxvlhy0.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 16<\/i><\/p>\n<p>  To make it easier to understand how this can be done, let&#8217;s make some changes to the taxi movement regulations. Firstly, we will assume that vertical and horizontal roads pass through the center of each cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"$S_{h,w}$\" data-tex=\"inline\"><\/math>, and taxis only move between cells along these roads. Secondly, we will require that the taxi moves from the starting cell to the destination cell along a <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"><\/math>-shaped path <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f6d\/78b\/474\/f6d78b474e41983d1997ec8111b70a2e.svg\" alt=\"$\\Gamma$\" data-tex=\"inline\"><\/math>, and out of the two possible paths, it chooses the one that starts with a horizontal segment.<\/p>\n<p>  If we observe the taxis carrying passengers from cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"><\/math> to cells in the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/da9\/639\/ed8\/da9639ed80e139611d7a5199b20a35ac.svg\" alt=\"$w\u2019\u2019$\" data-tex=\"inline\"><\/math>-th column, we will notice that they all share a common segment of the path: from the center of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"><\/math> to the center of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/448\/d6d\/c68\/448d6dc688378b6676b49a482ac8f502.svg\" alt=\"$S_{h\u2019,w\u2019\u2019}$\" data-tex=\"inline\"><\/math>. So why not transport the passengers traveling from <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h\u2019,w\u2019}$\" data-tex=\"inline\"><\/math> to the cells in the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/da9\/639\/ed8\/da9639ed80e139611d7a5199b20a35ac.svg\" alt=\"$w\u2019\u2019$\" data-tex=\"inline\"><\/math>-th column with a common bus up to the center of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/448\/d6d\/c68\/448d6dc688378b6676b49a482ac8f502.svg\" alt=\"$S_{h\u2019,w\u2019\u2019}$\" data-tex=\"inline\"><\/math>, and then come up with something there. Let&#8217;s do just that.<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vz\/nf\/1p\/vznf1pkhv_xsdxwmtvy_vxvlhy0.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 16<\/i><\/p>\n<h4>5.2 Vehicle Movement Regulations<\/h4>\n<p>  Alright, for each cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c71\/ebb\/67b\/c71ebb67bd9a701ee626398cb8c6a934.svg\" alt=\"$S_{h\u2019, w}$\" data-tex=\"inline\"><\/math> in the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c12\/52a\/974\/c1252a97433467a40322eae0cec1e847.svg\" alt=\"$h\u2019$\" data-tex=\"inline\"><\/math>-th row, we have a separate fleet of taxis whose sole purpose is to pick up all the travelers within that cell whose destinations are in the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/da9\/639\/ed8\/da9639ed80e139611d7a5199b20a35ac.svg\" alt=\"$w\u2019\u2019$\" data-tex=\"inline\"><\/math>-th column and transport them to the center of the cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/448\/d6d\/c68\/448d6dc688378b6676b49a482ac8f502.svg\" alt=\"$S_{h\u2019, w\u2019\u2019}$\" data-tex=\"inline\"><\/math>. Thus, the entire flow of travelers from the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c12\/52a\/974\/c1252a97433467a40322eae0cec1e847.svg\" alt=\"$h\u2019$\" data-tex=\"inline\"><\/math>-th row to the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/da9\/639\/ed8\/da9639ed80e139611d7a5199b20a35ac.svg\" alt=\"$w\u2019\u2019$\" data-tex=\"inline\"><\/math>-th column is now accumulated at the center of the cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/448\/d6d\/c68\/448d6dc688378b6676b49a482ac8f502.svg\" alt=\"$S_{h\u2019, w\u2019\u2019}$\" data-tex=\"inline\"><\/math>. The next step is evident: in each cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b84\/5fd\/44b\/b845fd44bd5ff577175f81d803a3b2a9.svg\" alt=\"$S_{h, w\u2019\u2019}$\" data-tex=\"inline\"><\/math> of the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/da9\/639\/ed8\/da9639ed80e139611d7a5199b20a35ac.svg\" alt=\"$w\u2019\u2019$\" data-tex=\"inline\"><\/math>-th column, we need to establish a separate fleet of taxis whose sole task is to pick up travelers from the center of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/448\/d6d\/c68\/448d6dc688378b6676b49a482ac8f502.svg\" alt=\"$S_{h\u2019, w\u2019\u2019}$\" data-tex=\"inline\"><\/math> and shuttle them in a zigzag pattern within the cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b84\/5fd\/44b\/b845fd44bd5ff577175f81d803a3b2a9.svg\" alt=\"$S_{h, w\u2019\u2019}$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  If we extend the described rules to all rows and columns of the grid <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/394\/2ab\/5b8\/3942ab5b8765d43ed49fe40299d4809a.svg\" alt=\"${S_{h , w}}$\" data-tex=\"inline\"><\/math>, we will obtain a shared taxi movement scheme that allows travelers to reach any intersection from any other intersection with just one intermediate transfer. However, this movement scheme is not yet fully efficient.<\/p>\n<p>  Indeed, within such a scheme, all the shared taxi cars are distributed into two roles: some solely collect passengers from their starting positions \u2014 let&#8217;s call such cars \u00abcollecting\u00bb cars, while others only deliver them to their destinations \u2014 let&#8217;s call them \u00abdelivering\u00bb cars. When a collecting car reaches the transfer point, it drops off all its passengers and returns empty to its home cell. Similarly, after a delivering car has once again transported all its passengers within its home cell, it travels to the transfer point empty, ready to pick up the next passengers there.<\/p>\n<p>  Can we optimize the scheme so that all cars operate at full capacity? It turns out we can. To achieve this, we establish a one-to-one correspondence between the sets of cells <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c12\/52a\/974\/c1252a97433467a40322eae0cec1e847.svg\" alt=\"$h'$\" data-tex=\"inline\"><\/math>-th row and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/da9\/639\/ed8\/da9639ed80e139611d7a5199b20a35ac.svg\" alt=\"$w''$\" data-tex=\"inline\"><\/math>-th column by defining that cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6db\/d48\/4e9\/6dbd484e90e719316165e6ab5354d454.svg\" alt=\"$S_{h', k}$\" data-tex=\"inline\"><\/math> corresponds to cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9be\/014\/49a\/9be01449a195f991775b628eb28bf19c.svg\" alt=\"$S_{k, w''}$\" data-tex=\"inline\"><\/math>. Next, we establish the rule that whenever a collecting car from cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6db\/d48\/4e9\/6dbd484e90e719316165e6ab5354d454.svg\" alt=\"$S_{h', k}$\" data-tex=\"inline\"><\/math> and column <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/da9\/639\/ed8\/da9639ed80e139611d7a5199b20a35ac.svg\" alt=\"$w''$\" data-tex=\"inline\"><\/math> reaches the center of cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/448\/d6d\/c68\/448d6dc688378b6676b49a482ac8f502.svg\" alt=\"$S_{h', w''}$\" data-tex=\"inline\"><\/math>, it drops off its passengers and transforms into a delivering car for the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf6\/9d2\/66a\/bf69d266a1318ddc952968d940b60edc.svg\" alt=\"$h$\" data-tex=\"inline\"><\/math>-th row and cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9be\/014\/49a\/9be01449a195f991775b628eb28bf19c.svg\" alt=\"$S_{k, w''}$\" data-tex=\"inline\"><\/math>. In its new role, this car can immediately pick up waiting passengers there and transport them to cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9be\/014\/49a\/9be01449a195f991775b628eb28bf19c.svg\" alt=\"$S_{k, w''}$\" data-tex=\"inline\"><\/math>. Similarly, we establish the rule that whenever a delivering car from the <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c12\/52a\/974\/c1252a97433467a40322eae0cec1e847.svg\" alt=\"$h'$\" data-tex=\"inline\"><\/math>-th row and cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9be\/014\/49a\/9be01449a195f991775b628eb28bf19c.svg\" alt=\"$S_{k, w''}$\" data-tex=\"inline\"><\/math> drops off its last passenger, it becomes a collecting car between that cell and column <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fce\/525\/2bd\/fce5252bde946816c2cf744d932890f7.svg\" alt=\"$k$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  Thanks to the implementation of the two new rules, the shared taxi cars will always operate at full capacity. The route of each car will follow a circular pattern: from its \u00abhome\u00bb cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6db\/d48\/4e9\/6dbd484e90e719316165e6ab5354d454.svg\" alt=\"$S_{h', k}$\" data-tex=\"inline\"><\/math> to the transfer stop at the center of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/448\/d6d\/c68\/448d6dc688378b6676b49a482ac8f502.svg\" alt=\"$S_{h', w''}$\" data-tex=\"inline\"><\/math>, then to the second \u00abhome\u00bb cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9be\/014\/49a\/9be01449a195f991775b628eb28bf19c.svg\" alt=\"$S_{k, w''}$\" data-tex=\"inline\"><\/math>, further to the transfer stop at the center of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c4f\/50c\/774\/c4f50c77443373298dc59a141a4db9ee.svg\" alt=\"$S_{k,k}$\" data-tex=\"inline\"><\/math>, and finally back to <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6db\/d48\/4e9\/6dbd484e90e719316165e6ab5354d454.svg\" alt=\"$S_{h', k}$\" data-tex=\"inline\"><\/math> (Figure 17).<\/p>\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tr\/2t\/de\/tr2tdeswbnum2gov8x4lnubwvec.jpeg\" alt=\"image\" width=\"75%\" height=\"75%\"><\/div>\n<p>  <i>Figure 17<\/i><\/p>\n<h4>5.3 Travel Delay and Passenger Count<\/h4>\n<p>  The travel routes for taxis with one transfer, excluding any additional transfers, remain almost the same as those for intercellular taxis. The average delay in traversing the snake-like sections within the starting and finishing cells remains unchanged and is given by:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5d8\/ab2\/7ec\/5d8ab27ecd4726065583bec5b2f8c9f2.svg\" alt=\"$\\approx 3\/2\\ \\sqrt{n_{pass}} \\Delta l\/v\\ \\ \\ \\ \\ (1)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  However, the average time spent waiting at the stop for a suitable car has doubled (one needs to wait twice), and it is now approximately:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/969\/562\/72e\/96956272e2e96ec42a4ac5669b7e5df2.svg\" alt=\"$\\approx \\Delta T\\ \\ \\ \\ \\ (2)$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  Now let&#8217;s calculate the expected number of passengers in the car. When the car serves as a delivery vehicle between cell <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h', w'}$\" data-tex=\"inline\"><\/math> and column <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/da9\/639\/ed8\/da9639ed80e139611d7a5199b20a35ac.svg\" alt=\"$w''$\" data-tex=\"inline\"><\/math>, during the traversal of <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/676\/ae8\/d3f\/676ae8d3f98871a8d7d1cbe3be8d06c9.svg\" alt=\"$S_{h', w'}$\" data-tex=\"inline\"><\/math>, on average, it should pick up<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/020\/645\/d96\/020645d96003a01bb72ec47b908673fa.svg\" alt=\"$n_{pass} = \\Delta T\\sigma (\\Delta l)^2 \\cdot L\\Delta l\/L^2 = \\Delta T\\sigma (\\Delta l)^3\/L\\ \\ \\ \\ \\ (3)$\" data-tex=\"inline\"><\/math><\/p>\n<p>  If we want the travel time for taxis with one transfer to be, on average, no more than <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/07a\/900\/10d\/07a90010dac56068f7c1bb92f11e73ce.svg\" alt=\"$(1 + \\lambda)$\" data-tex=\"inline\"><\/math> times longer than travel by personal car, we should write the inequality:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/63f\/b07\/712\/63fb077125552251346b0eeeff572be7.svg\" alt=\"$3\/2\\ \\sqrt{n_{pass}} \\Delta l\/v + \\Delta T \\leq 2\/3\\ \\lambda L\/v\\ \\ \\ \\ \\ \\ (4)$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  To optimize <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"><\/math>, we set<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/17c\/e28\/5a9\/17ce285a9fd9f580ed3467facfa6260c.svg\" alt=\"$\\Delta T = p [2\/3 \\lambda L\/v]\\ \\ \\ \\ \\ (5)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/00f\/abd\/518\/00fabd518afbcee1ece9c2ea22340d2c.svg\" alt=\"$3\/2\\ \\sqrt{n_{pass}} \\Delta l\/v = q [2\/3 \\lambda L\/v]\\ \\ \\ \\ \\ (6)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  where<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/760\/f5a\/fab\/760f5afabc546bca340dee8fe47dc35a.svg\" alt=\"$n_{pass} = \\Delta T\\sigma (\\Delta l)^3\/L\\ \\ \\ \\ \\ (7)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/007\/9dd\/5fb\/0079dd5fb11b728173cddbec8ff64998.svg\" alt=\"$p + q = 1\\ \\ \\ \\ \\ (8)$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  After the transformations, we have:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d3b\/53a\/8a6\/d3b53a8a6ab2c26fc93e8cfbad663191.svg\" alt=\"$(3\/2)^{1\/2} p^{1\/2} \\lambda^{1\/2} \\sigma^{1\/2} (\\Delta l)^{5\/2} v^{-1\/2} = 2\/3\\ q\\lambda L\\ \\ \\ \\ \\ (9)$\" data-tex=\"inline\"><\/math>,<\/p>\n<p>  which implies:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/fac\/1ed\/3dafac1ed5a6934789be170e85100a0f.svg\" alt=\"$\\Delta l = (2\/3)^{3\/5} p^{-1\/5}q^{2\/5}\\lambda^{1\/5}\\sigma^{-1\/5}L^{2\/5}v^{1\/5}\\ \\ \\ \\ \\ (10)$\" data-tex=\"inline\"><\/math><\/p>\n<p>  and consequently:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ad5\/3ba\/abd\/ad53baabd9d78db68c8d943068e5f60e.svg\" alt=\"$n_{pass} = 2\/3\\ p\\lambda\\sigma\/v \\cdot (2\/3)^{9\/5} p^{-3\/5}q^{6\/5}\\lambda^{3\/5}\\sigma^{-3\/5}L^{6\/5}v^{3\/5} = (2\/3)^{14\/5} p^{2\/5}q^{6\/5} \\lambda^{8\/5} L^{6\/5} (\\sigma\/v)^{2\/5}\\ \\ \\ \\ \\ \\ (11) $\" data-tex=\"inline\"><\/math><\/p>\n<p>  As an approximation, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f8b\/e64\/570\/f8be64570469a013311f4b2d618052e4.svg\" alt=\"$p = 1\/4$\" data-tex=\"inline\"><\/math>, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4e3\/7fb\/ecd\/4e37fbecd42aca93bcd7eaa3cabf5e46.svg\" alt=\"$q=3\/4$\" data-tex=\"inline\"><\/math> would maximize <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"><\/math>, if so, then the final forms of the formulas will be:<\/p>\n<p>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/eb8\/c23\/a6b\/eb8c23a6b07788fe7ade6a099d1fddef.svg\" alt=\"$\\Delta T = 1\/6\\ \\lambda L\/v\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ (12)$\" data-tex=\"inline\"><\/math>,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/299\/f03\/b86\/299f03b86a59cfc730a2702fc52cbed7.svg\" alt=\"$\\Delta l = 0.92 \\lambda^{1\/5}L^{2\/5}(v\/\\sigma)^{1\/5}\\ \\ \\ \\ \\ \\ (13)$\" data-tex=\"inline\"><\/math>,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/755\/3ca\/05d\/7553ca05d51bf1f994155117530b377e.svg\" alt=\"$n_{pass} = 0.13 \\lambda^{8\/5} L^{6\/5} (\\sigma\/v)^{2\/5}\\ \\ \\ \\ (14)$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  Let&#8217;s see what values <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bc0\/4e4\/3cc\/bc04e43cc42b24bc329213b1f4a825fb.svg\" alt=\"$n_{pass}$\" data-tex=\"inline\"><\/math>, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/80f\/441\/4ff\/80f4414ffd5f62b24c6dc0c9c152d303.svg\" alt=\"$\\Delta l$\" data-tex=\"inline\"><\/math>, and <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a19\/30b\/9e7\/a1930b9e797005353168f019e65b12b1.svg\" alt=\"$\\Delta T$\" data-tex=\"inline\"><\/math> will have for taxis with one transfer in the familiar cities with <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/46c\/87f\/f03\/46c87ff03fe3bcccfa69f344fefe8a41.svg\" alt=\"$\\lambda = 1\/2$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  For a hypothetical New York (London, Moscow):<br \/>  Effective diameter <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/af1\/c01\/ad2\/af1c01ad25f4a6a14cb21074d57a721a.svg\" alt=\"$L \\approx 28$\" data-tex=\"inline\"><\/math> km,<br \/>  Permitted speed <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bbe\/1b7\/25a\/bbe1b725a6869e95cea3f212735906f9.svg\" alt=\"$v = 0.8$\" data-tex=\"inline\"><\/math> km\/min,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/403\/e94\/150\/403e941509230649624b0cc3d79e2c96.svg\" alt=\"$\\sigma \\approx 33$\" data-tex=\"inline\"><\/math> people\/min km^2,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/abf\/93c\/091\/abf93c091d57ac28201ad9c64160a31d.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.13 (1\/2)^{8\/5} 28^{6\/5} (33\/0.8)^{2\/5} \\approx 10.4$\" data-tex=\"inline\"><\/math> people,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4b2\/912\/9e0\/4b29129e0ed73e79cd06dd58ebbaa074.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 0.92 (1\/2)^{1\/5} 28^{2\/5}(0.8\/33)^{1\/5} \\approx 1.44$\" data-tex=\"inline\"><\/math> km,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6ad\/0a2\/906\/6ad0a2906e44cee6559c2d3772441201.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 1\/6 \\cdot 1\/2 \\cdot 28\/0.8 \\approx 2.9$\" data-tex=\"inline\"><\/math> min.<\/p>\n<p>  For a hypothetical Berlin:<br \/>  Effective diameter <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f55\/7ae\/603\/f557ae6032c7021871b02ce1fed9d131.svg\" alt=\"$L \\approx 30$\" data-tex=\"inline\"><\/math> km,<br \/>  Permitted speed <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bbe\/1b7\/25a\/bbe1b725a6869e95cea3f212735906f9.svg\" alt=\"$v = 0.8$\" data-tex=\"inline\"><\/math> km\/min,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0e0\/123\/a43\/0e0123a43d56d8d05c389f5fd18b4d19.svg\" alt=\"$\\sigma \\approx 13$\" data-tex=\"inline\"><\/math> people\/min km^2,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/906\/ef0\/f79\/906ef0f79bd93bcaad412bd7811edcd7.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.13 (1\/2)^{8\/5} 30^{6\/5} (13\/0.8)^{2\/5} \\approx 7.7$\" data-tex=\"inline\"><\/math> people,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/845\/028\/fac\/845028fac5b36565658c18bbeb96e59d.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 0.92 (1\/2)^{1\/5} 30^{2\/5}(0.8\/13)^{1\/5} \\approx 1.9$\" data-tex=\"inline\"><\/math> km,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/97c\/e53\/c54\/97ce53c54ce1302626e1db9bef631366.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 1\/6 \\cdot 1\/2 \\cdot 30\/0.8 \\approx 3.1$\" data-tex=\"inline\"><\/math> min.<\/p>\n<p>  For a hypothetical Paris:<br \/>  Effective diameter <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fed\/be0\/2ab\/fedbe02abd062cb5921afa40f6649730.svg\" alt=\"$L \\approx 10$\" data-tex=\"inline\"><\/math> km,<br \/>  Permitted speed <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/60b\/248\/0e9\/60b2480e9734b8b1fdddc82660e27859.svg\" alt=\"$v = 0.5$\" data-tex=\"inline\"><\/math> km\/min,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/557\/490\/01f\/55749001f0a914f0efeb16d1bbe06027.svg\" alt=\"$\\sigma \\approx 70$\" data-tex=\"inline\"><\/math> people\/min km^2,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/16c\/7f0\/6b0\/16c7f06b09ad2fb7ae2d8ce469d98d38.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.13 (1\/2)^{8\/5} 10^{6\/5} (70\/0.5)^{2\/5} \\approx 4.9$\" data-tex=\"inline\"><\/math> people,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2d9\/4c4\/42f\/2d94c442f50e4d8dc38f3b8205b5496f.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 0.92 (1\/2)^{1\/5} 10^{2\/5}(0.5\/70)^{1\/5} \\approx 0.74$\" data-tex=\"inline\"><\/math> km,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f18\/dc7\/aa7\/f18dc7aa797cdca0689b56ede0e3ed3b.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 1\/6 \\cdot 1\/2 \\cdot 10\/0.5 \\approx 1.7$\" data-tex=\"inline\"><\/math> min.<\/p>\n<p>  For a hypothetical Prague:<br \/>  Effective diameter <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4b6\/e16\/9fd\/4b6e169fddb2e3d1e1dd70eb677dd635.svg\" alt=\"$L\\approx 23$\" data-tex=\"inline\"><\/math> km,<br \/>  Permitted speed <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bbe\/1b7\/25a\/bbe1b725a6869e95cea3f212735906f9.svg\" alt=\"$v = 0.8$\" data-tex=\"inline\"><\/math> km\/min,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/eb8\/e5a\/d4b\/eb8e5ad4b9e7a21d6f1527216019e614.svg\" alt=\"$\\sigma \\approx 8.3$\" data-tex=\"inline\"><\/math> people\/min km^2,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/115\/422\/cd7\/115422cd7ef248cf02cd97d716bafd4a.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.13 (1\/2)^{8\/5} 23^{6\/5} (8.3\/0.8)^{2\/5} \\approx 4.7$\" data-tex=\"inline\"><\/math> people,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/438\/999\/b78\/438999b782ac6ab80f764f963eb2c47a.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 0.92 (1\/2)^{1\/5} 23^{2\/5}(0.8\/8.3)^{1\/5} \\approx 1.75$\" data-tex=\"inline\"><\/math> km,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/175\/449\/366\/175449366c852e97f9db6bdf54d780cb.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 1\/6 \\cdot 1\/2 \\cdot 23\/0.8 \\approx 2.4$\" data-tex=\"inline\"><\/math> min.<\/p>\n<p>  For a hypothetical standard half-million city:<br \/>  Population <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/88a\/d99\/114\/88ad99114b568a4bce8c0758a8f73737.svg\" alt=\"$P = 500K$\" data-tex=\"inline\"><\/math> people,<br \/>  Density <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a40\/b4d\/f48\/a40b4df4849de370486978eb1fe906a2.svg\" alt=\"$\\rho = 5000$\" data-tex=\"inline\"><\/math> people\/km^2,<br \/>  Effective diameter <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e16\/0ab\/cac\/e160abcac154dd5194b3bc16d9f99924.svg\" alt=\"$L = 10$\" data-tex=\"inline\"><\/math> km,<br \/>  Permitted speed <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d10\/c23\/f89\/d10c23f89dacb28fc2635078d6b651f2.svg\" alt=\"$v = 1$\" data-tex=\"inline\"><\/math> km\/min,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/54b\/ebd\/603\/54bebd603a23569b4f07252c2e8b329b.svg\" alt=\"$\\sigma \\approx 17$\" data-tex=\"inline\"><\/math> people\/min km^2,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7f7\/043\/f97\/7f7043f977ca6b8725e55b801fa53fd5.svg\" alt=\"$n_{pass} (\\lambda = 1\/2) \\approx 0.13 (1\/2)^{8\/5} 10^{6\/5} (17\/1)^{2\/5} \\approx 2.1$\" data-tex=\"inline\"><\/math> people,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/83f\/449\/f33\/83f449f33ab6f4e0fad15551706a50a0.svg\" alt=\"$\\Delta l (\\lambda = 1\/2) \\approx 0.92 (1\/2)^{1\/5} 10^{2\/5}(1\/17)^{1\/5} \\approx 1.1$\" data-tex=\"inline\"><\/math> km,<br \/>  <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b98\/025\/291\/b98025291609e3106b59b794a7bf8207.svg\" alt=\"$\\Delta T (\\lambda = 1\/2) \\approx 1\/6 \\cdot 1\/2 \\cdot 10\/1 \\approx 0.83$\" data-tex=\"inline\"><\/math> min.<\/p>\n<h4>5.5 Critique<\/h4>\n<p>  From the above estimates, it can be seen that the average occupancy of taxis with one transfer is approximately twice as high as the average occupancy of intercellular taxis, all else being equal. But!<\/p>\n<p>  Like intercellular taxis, taxis with one transfer prove to be too slow for transportation if all your trips are made between closely located cells. Like intercellular taxis, the scheme of taxis with one transfer, as presented here, is not designed for practical implementation: in the following parts, we will explore more advanced implementations of this scheme.  <\/p>\n<hr>\n<p>  Let&#8217;s start the discussion, and in two to three weeks, I will finish editing and publish the second part, followed by the third part in another two to three weeks. If you would like to discuss anything in detail, you can email me at magnolia@bk.ru.<\/p>\n<p>  Sergey Kovalenko,<br \/>  April 2023.<\/p>\n<p>  <a href=\"https:\/\/habr.com\/ru\/articles\/727118\/\">Link to Part 2: \u00abExperiments on a Torus\u00bb<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/articles\/734022\/\">Link to Part 3: \u00abPractically Significant Solutions\u00bb<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/articles\/738388\/\">Link to \u00abSummary\u00bb<\/a><\/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\/739286\/\"> https:\/\/habr.com\/ru\/articles\/739286\/<\/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\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/bg\/dx\/dk\/bgdxdkwvaek7yq-7a4femo75zc8.jpeg\"><br \/>  (<i>Jean-Claude M\u00e9zi\u00e8res<\/i>)<\/p>\n<p>  Translation provided by ChatGPT, <a href=\"https:\/\/habr.com\/ru\/articles\/713792\/\">link to the original article<\/a><\/p>\n<p>  <a href=\"https:\/\/habr.com\/ru\/articles\/727118\/\">Link to Part 2: \u00abExperiments on a Torus\u00bb<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/articles\/734022\/\">Link to Part 3: \u00abPractically Significant Solutions\u00bb<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/articles\/738388\/\">Link to \u00abSummary\u00bb<\/a><\/p>\n<h3><font color=\"#0099cc\">1. About this series of articles<\/font> <br \/>  <\/h3>\n<p>  <\/p>\n<h4>1.1 Central result<\/h4>\n<p>  If I haven&#8217;t made a critical mistake, I have discovered an astonishing passenger transportation scheme with unique characteristics. Imagine this scenario: you are in a big city and need to get from point A to point B. All you need to do is walk to the nearest intersection and indicate the destination on your smartphone or a special terminal installed there. In a few minutes, a small but spacious bus will arrive for you. The bus is designed for easy entry without bending, and you can bring a stroller, bicycle, or even a cello inside. It provides comfortable seating where you can stretch your legs. This bus will take you to the nearest intersection to point B, and you will reach your destination without any transfers. The entire journey, including waiting at the stop, will take only 25-50% more time than if you were traveling by private car. Based on my estimation, in modern metropolises, this type of transportation will be widely adopted, and the cost of a trip on such buses will be similar to the fare of a regular city bus.<\/p>\n<p>  Surprisingly, the reasoning behind these findings is based on relatively simple mathematics, and perhaps even a talented high school student, under fortunate circumstances, could have guessed them on their own. The practical significance of the topic and the modest level of mathematical requirements prompted me to make an effort to write the article in such a way that the reader could follow the path of discoveries, learn some research techniques, and gain a successful example to explain to their children the purpose of mathematics and how it can be applied in everyday life.<\/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-348376","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/348376","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=348376"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/348376\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=348376"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=348376"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=348376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}