3. Изменится ли алгоритм с голосованием, если мы вздумаем учесть ширину улиц?
4. Изменится ли алгоритм, если точка x и отмеченные точки могут не располагаться на перекрестках?
5. Применим ли алгоритм с голосованием в том случае, если сеть улиц образована прямыми, идущими в самых разных, а не только в двух взаимно перпендикулярных направлениях?
6. Останется ли алгоритм в силе, если улицы будут кривыми или зигзагообразными?
Хотя алгоритм с голосованием применим к любым сетям, на «чистой» плоскости без выделенной сети он сразу утрачивает силу, и это понятно: по чистой плоскости мы можем перемещаться в любом направлении, не придерживаясь заданных маршрутов. Общая задача ставится так. На плоскости заданы n точек. Требуется найти такую точку x , чтобы сумма кратчайших расстояний от нее до заданных точек была минимальной. Рассмотрим, например, три города A , B и C . Где следовало бы построить аэропорт, чтобы суммарная протяженность воздушных маршрутов из него в эти города была минимальной? Ясно, что если бы речь шла о длине автомобильных маршрутов, связывающих некоторую точку на карте с городами A , B и C , то ответ был бы другой. Иначе говоря, идеальное место для аэропорта может не совпадать с идеальным местом для автобусной станции.
Ответ, основанный на довольно сложных геометрических соображениях, гласит: идеальным местом для строительства аэропорта была бы такая точка на карте, в которой лучи, проведенные к трем городам, образовывали бы между собой углы в 120°. Если бы число городов возросло до четырех, причем города располагались в вершинах выпуклого четырехугольника, то аэропорт выгоднее всего было бы построить в точке пересечения диагоналей. Доказать это утверждение совсем не трудно. Общая задача (найти точку x , сумма кратчайших расстояний от которой до n заданных точек плоскости минимальна) более трудная.
Может быть, вам удастся придумать простое механическое устройство (аналоговую вычислительную машину), позволяющее быстро находить положение точки x для трех заданных точек на плоскости? Пусть плоскость изображает плоскость стола. В каждой из заданных точек просверлим в крышке стола отверстие. Затем пропустим через эти отверстия по веревочке, верхние концы веревочек свяжем в один узел, а к нижним подвесим одинаковые грузики. Равные силы, действуя на веревочки, заставят их «проголосовать» за жителей трех населенных пунктов, и узел расположится в точке x . Наша аналоговая машина основана на использовании изоморфизма между математической структурой задачи и структурой физической модели.
Усложним теперь исходную задачу. Предположим теперь, что в точках A , B и C находятся не населенные пункты с одинаковым количеством жителей, а три дома, причем в доме A живут 20 школьников, в доме B — 30 школьников и в доме C — 40 школьников. Все дети ходят в одну школу. Где следует выстроить школу, чтобы свести до минимума сумму расстояний, проходимых всеми детьми?
Если дети идут в школу по улицам города, то можно воспользоваться алгоритмом с голосованием, считая, что каждый ребенок обладает одним голосом. Он позволяет довольно быстро указать, где именно следует построить школу. Но если три дома возведены в чистом поле и школьники могут идти в школу по прямой, то как следует усовершенствовать нашу аналоговую вычислительную машину, чтобы и эта задача была ей под силу?
Нужно взять грузики с массами, пропорциональными числу детей в каждом доме. Положение узла покажет, где именно следует построить школу.
Сработает ли наше аналоговое устройство, если в одном доме учеников окажется больше, чем в двух других домах, вместе взятых, например, если 20 школьников живут в доме A , 30 школьников — в доме B и 100 школьников — в доме C ? Да, сработает: грузик весом в 100 единиц будет тянуть свою веревочку до тех пор, пока узел не совместится с отверстием C . Это означает, что школу следует построить в точке C !
Будет ли наше аналоговое вычислительное устройство работать также безотказно при числе точек больше трех? Попробуйте придумать такое расположение четырех точек, при котором наше устройство даст заведомо неверный результат. Указание: что произойдет, если четыре точки расположены в вершинах невыпуклого четырехугольника?
Изучением систем точек (вершин), соединенных линиями (ребрами), занимается теория графов — обширный и быстро развивающийся раздел современной математики. Существуют десятки теорем теории графов, позволяющие находить минимальные пути. Одни задачи, связанные с отысканием минимальных путей, давно решены, другие ожидают своего решения. Примером знаменитой решенной задачи может служить следующая.
Читать дальше