Задача «никакие три на прямой»

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Множество из 20 точек в решётке 10 × 10, никакие три из которых не находятся на одной прямой.

Задача «никакие три точки не лежат на одной прямой» — одна из задач комбинаторной геометрии, состоящая в нахождении количества точек, которые можно расположить на решётке так, чтобы никакие три точки не находились на одной прямой.

Брасс, Мозер и Пах назвали задачу «одним из самых старых и интенсивно изучаемых геометрических вопросов, касающихся точек решётки»[1].

Проблему можно решить с точками для любого до , однако существует гипотеза, что на решётках большего размера можно разместить менее точек. Известные методы могут разместить линейное количество точек на решётке произвольного размера, но лучшие методы размещают меньше, чем точек, а совсем не . Изучались также проблемы поиска точек, среди которых никакие три не находятся на одной прямой, включая множества точек, отличные от решёток.

Хотя первоначально проблема появилась как задача занимательной математики, она имеет приложение в визуализации графов и в проблеме треугольников Хайльбронна[англ.].

Малые размеры[править | править код]

Задачу впервые опубликовал Генри Эрнест Дьюдени[англ.] в 1900 году как головоломку занимательной математики в терминах размещения 16 пешек на шахматной доске так, что никакие три пешки не находятся на одной прямой[2]. Это в точности проблема «никакие три на прямой» для [3]. В более поздних версиях головоломки Генри изменил задачу, делающее решение единственным, требуя найти решение, когда две пешки уже на доске поставлены в клетки d4 и e5 в центре доски[4].

Много авторов публиковали решения задачи для малых значений [5][6][7][8][9][10][11] и к 1998 году было известно, что точек может быть размещено на решётке без трёх точек на прямой для всех до 46 и некоторых бо́льших значений[11]. Число решений (не включая отражения и вращения) для малых значений , начиная с , равно[3]

1, 1, 4, 5, 11, 22, 57, 51, 156, 158, 566, 499, 1366, … (последовательность A000769 в OEIS).

Верхняя и нижняя границы[править | править код]

Функция от , которая бы выражала точное число точек, неизвестна, однако, как доказанные, так и гипотетические пределы этого числа линейно пропорциональны .

Общие методы размещения[править | править код]

Близкое к оптимальному размещение точек на решётке при использовании метода Эрдёша. Наибольшее простое число , меньшее размера решётки равно . Решение размешает точки на координатах по подулю для . Например, точка включена, поскольку по модулю .

Решение Пала Эрдёша, опубликованное Ротом[12], основано на факте, что, когда является простым числом, множество из точек решётки по модулю для не содержит трёх коллинеарных точек. Если является простым числом, можно осуществить такое построение для решётки , содержащейся в решётке , где является наибольшим простым числом, меньшим . Поскольку интервалы между простыми числами много меньше самих простых чисел, будет всегда близко к , так что этот метод может быть использован, чтобы поместить точек на решётке при условии, что никакие три точки не коллинеарны[13].

Граница впоследствии была улучшена — Холл, Джексон, Садбери и Уилд[14] показали, что в случае простого можно получить решение с точками, размещая точки в копиях гиперболы (по модулю ), где можно задать произвольным образом с ограничением, что оно не должно равняться нулю по модулю . Снова, для произвольного можно осуществить это построение для простого числа, близкого к , чтобы получить решение с точками[14].

Верхняя граница[править | править код]

На решётке любого размера может быть размещено не более точек, так как при размещении большего количества по принципу Дирихле какие-то три из них окажутся на какой-то горизонтальной линии решётки. Для , известно, что эта тривиальная граница точна[3].

Гипотетические границы[править | править код]

Хотя в точности точек можно разместить в небольших решётках[15], есть гипотеза, что для больших решёток существует существенно меньшая верхняя граница на число точек, которые можно разместить в решётке. Точнее, есть предположение, что максимальное число точек, которые могут быть размещены на решётке, не более чем сублинейно больше значения при[15]

После обнаружения ошибки в эвристических рассуждениях, приведших к данной гипотезе, Гай исправил ошибку и высказал предположение, что граница не может быть сублинейно лучше значения для[16]

Приложения[править | править код]

Приложения проблемы «никакие три на прямой» могут быть использованы для избежания некоторого рода вырождений в визуализации графов. Так, она используется для размещения вершин заданного графа на плоскости в точках с целочисленными координатами, рёбра между которыми при этом изображаются отрезками. Для некоторых графов, таких как коммунальный граф, пересечение пар рёбер избежать нельзя, но можно избежать размещения вершины на ребре между двумя другими вершинами. Если расположить вершины со свойством «никакие три на прямой», такого рода проблемное расположение не сможет возникнуть, поскольку любая прямая будет содержать только две вершины[17]. Факт, что задача «никакие три точки на прямой» имеет решение с линейным числом точек, можно перевести в термины визуализации графов, что означает, что любой граф, даже полный, можно нарисовать без нежелательных попаданий вершин на рёбра с использованием решётки, площадь которой зависит квадратично от числа вершин, а для полных графов нет никакого такого рисования графов с менее чем квадратичной площадью. Для полных графов требуется линейное число цветов в любой раскраске графа, но другие графы, которые можно раскрасить с меньшим числом цветов можно нарисовать на меньших решётках — если граф имеет вершин и раскрашен в цветов, он может быть нарисован на решётке с площадью, пропорциональной . Рисование полных графов с условием «никакие три на прямой» является специальным случаем этого результата с [18].

Проблема «никакие три на прямой» имеет также приложение к другой задаче дискретной геометрии, проблеме треугольников Хайльбронна[англ.]. В этой задаче нужно расположить точек в единичном квадрате, не ограничивая расположения решёткой. Целью является такое расположение, чтобы избежать треугольников малой площади, а точнее, максимизировать площадь наименьшего треугольника, образованного тремя точками. Например, размещение трёх точек на прямой было бы крайне неудачным с точки зрения этого критерия, поскольку эти три точки образуют треугольник нулевой площади. С другой стороны, если точки расположить на решётке со стороной внутри единичного квадрата так, что никакие три точки не располагаются на прямой, то по формуле Пика любой треугольник будет иметь площадь не менее , половину площади квадрата решётки. Таким образом, решив задачу «никакие три на прямой» и уменьшения размеров целочисленной решётки, чтобы вместить решение в единичных квадрат, получаем решения проблемы треугольников Хайльбронна, где наименьший треугольник имеет площадь . Это приложение побудило Пала Эрдёша найти решение для задачи «никакие три на прямой»[12] Такое решение оставалось лучшей нижней границей площади, известной для проблемы треугольников Хайльбронна с 1951 до 1982, когда было улучшено на логарифмический множитель с помощью построения, которое не использует решение задачи «никакие три на прямой»[19].

Обобщения и варианты[править | править код]

Подмножества общего вида[править | править код]

В вычислительной геометрии конечные множества точек со свойством, что никакие три точки не лежат на прямой, называются множествами в общем положении. В этой терминологии задача «никакие три на прямой» ищет наибольшее подмножество решётки в общем положении, но исследователи также рассматривают задачи нахождения наибольшего подмножества в общей позиции других множеств точек, не являющихся решётками. Поиск такого подмножества является NP-трудной задачей для определённых входных множеств и трудно аппроксимировать их размер с постоянным коэффициентом. Эта сложность аппроксимации суммируется высказыванием, что задача APX-трудна. Если наибольшее подмножество имеет размер , решение с непостоянным аппроксимационным коэффициентом может быть получено с помощью жадного алгоритма, который просто выбирает точки по одной пока не окажется, что все оставшиеся точки лежат на прямой, проходящей через какую-либо пару выбранных точек[20].

Можно получить более точные алгоритмы для нахождения точного оптимального решения путём использования параметризованной сложности[англ.]. В этих алгоритмах анализ производится не только в терминах входного размера, но и в терминах других параметров входа. В этом случае для входных данных, наибольшее подмножество которого в общей позиции имеет размер , решение может быть найдено за время, зависящее экспоненциально от , умноженное на многочлен размера со степенью многочлена, не зависящей от . Задачи с такого рода границами по времени называются фиксированно-параметрически разрешимыми[англ.][21][20].

Для множеств точек , имеющих не более точек на любой прямой, с , существуют подмножества в общей позиции размера, почти пропорционального . Пример решётки показывает, что граница не может быть существенно улучшена[22]. Доказательство существования этих больших подмножеств в общем положении может быть преобразовано в алгоритм полиномиального времени нахождения подмножества общего положения размера, равного границе существования, с помощью алгоритмической техники, известной как энтропийное сжатие[20].

Жадный алгоритм размещения[править | править код]

Повторяя предложение Адена, Холтона и Келли[23], Гарднер, Мартин задаёт вопрос наименьшего подмножества решётки , которое не может быть расширено — оно не имеет трёх точек на прямой, но любое собственное надмножество имеет три на линии. Эквивалентно, это наименьшее множество, которое получает жадный алгоритм, который пытается решить задачу «никакие три на прямой» путём размещения точек по одной, пока не застопорится[3]. Если рассматриваются только прямые, параллельные осям, то любое такое множество имеет по крайней мере точек[24]. Однако меньше известно о версии проблемы, в которой рассматриваются все прямые: любой жадный алгоритм размещения включает по меньшей мере точек перед остановом, но ничего не известно лучше, чем тривиальная верхняя граница [25].

Более высокие размерности[править | править код]

Неколлинеарные множества точек на трёхмерной решётке рассматривали Пор и Вуд[26]. Они доказали, что максимальное число точек на решётке со свойством, что никакие три точки не коллинеарны, равно . Аналогично двумерному построению Эрдёша можно осуществить размещение точек по модулю , где является простым числом, сравнимым с 3 по модулю 4[26]. Так же как оригинальная задача «никакие три на прямой» может быть использована для двумерной визуализации графов, можно использовать трёхмерное решение для отрисовки графов на трёхмерной решётке. Здесь неколлинеарность означает, что вершины не лежат на несмежных рёбрах (то есть, если вершина лежит на ребре, она должна быть его концом), но является также нормальным более строгое требование, чтобы рёбра не пересекались[27][28][29].

В более высоких размерностях множества точек решётки, в которых нет трёх точек на прямой, получаемые путём выбора точек близ гиперсферы, используются для нахождения больших множеств Салема — Спенсера[англ.], множеств целых чисел, не образующих арифметических прогрессий[30]. Однако это не работает, если использовать ту же идею выбора точек, близких к окружности в двухмерном пространстве — этот метод находит точки, образующие выпуклый многоугольник, который удовлетворяет требованиям отсутствия трёх точек на одной прямой, но он слишком мал. Максимальный выпуклый многоугольник с вершинами на решётке имеет только вершин[31]. Задача множества колпаков[англ.] рассматривает аналогичную проблему к проблеме «никакие три на прямой» в пространствах более высокой размерности, базирующихся на векторных пространствах над конечными полями[32].

Тор[править | править код]

Другой вариант проблемы использует преобразование решётки в дискретный тор с помощью периодических граничных условий[англ.], в которых левая сторона тора соединена с правой частью, а верхняя сторона соединена с нижней стороной. Это приводит к тому, что на косых линиях на решётке находится больше точек, а потому труднее выбрать точки с условием не более двух точек на прямой Эти расширенные прямые можно также интерпретировать как нормальные прямые через бесконечную решётку на евклидовой плоскости, взятые по модулю размерностей тора. Для тора на основе решётки максимальное число точек, которые можно выбрать, чтобы никакие три точки не лежали на прямой, не превосходит [33]. Если обе размерности одинаковы и являются простыми числами, невозможно разместить ровно по одной точке в каждой строке и столбце без формирования линейного числа коллинеарных троек[34]. Изучалась также версия для тора высокой размерности[35].

Примечания[править | править код]

Литература[править | править код]

  • Michael A. Adena, Derek A. Holton, Patrick A. Kelly. Some thoughts on the no-three-in-line problem // Combinatorial Mathematics: Proceedings of the Second Australian Conference (University of Melbourne, 1973) / Derek A. Holton. — 1974. — Т. 403. — С. 6–17. — (Lecture Notes in Mathematics). — doi:10.1007/BFb0057371.
  • Oswin Aichholzer, David Eppstein, Eva-Maria Hainzl. Geometric dominating sets – a minimum version of the No-Three-In-Line Problem // Computational Geometry. — Elsevier, 2023. — Январь (т. 108). — doi:10.1016/j.comgeo.2022.101913.
  • David Brent Anderson. Update on the no-three-in-line problem // Journal of Combinatorial Theory. — 1979. — Т. 27, вып. 3. — С. 365–366. — doi:10.1016/0097-3165(79)90025-6.
  • Peter Brass, Eowyn Cenek, Christian A. Duncan, Alon Efrat, Cesim Erten, Dan P. Ismailescu, Stephen G. Kobourov, Anna Lubiw, Joseph S. B. Mitchell. On simultaneous planar graph embeddings // Computational Geometry. — 2007. — Т. 36, вып. 2. — С. 117–130. — doi:10.1016/j.comgeo.2006.05.006.
  • Peter Brass, William Moser, János Pach. Section 10.1: Packing lattice points in subspaces // Research Problems in Discrete Geometry. — Springer, New York, 2005. — С. 417–421. — ISBN 978-0-387-29929-7.
  • Alec S. Cooper, Oleg Pikhurko, John R. Schmitt, Gregory S. Warrington. Martin Gardner's minimum no-3-in-a-line problem // American Mathematical Monthly. — 2014. — Т. 121, вып. 3. — С. 213–221. — doi:10.4169/amer.math.monthly.121.03.213. — arXiv:1206.5350. — JSTOR 10.4169/amer.math.monthly.121.03.213.
  • Joshua N. Cooper, József Solymosi. Collinear points in permutations // Annals of Combinatorics. — 2005. — Т. 9, вып. 2. — С. 169–175. — doi:10.1007/s00026-005-0248-4. — arXiv:math/0408396.
  • Craggs D., Hughes-Jones R. On the no-three-in-line problem // Journal of Combinatorial Theory. — 1976. — Т. 20, вып. 3. — С. 363–364. — doi:10.1016/0097-3165(76)90030-3.
  • Henry Dudeney[англ.]. 317. A puzzle with pawns // Amusements in Mathematics. — Edinburgh: Nelson, 1917. — С. 94. Решение p. 222. Первоначально изложено в лондонской газете Tribune 7 ноября 1906.
    • Задачу можно найти под номером 144 в книге Генри Э. Дьюдени. 200 знаменитых головоломок мира. — М.: ООО «Фирма «Издательство АСТ», 1999. — ISBN 5-237-02035-6.
  • Emilio Di Giacomo, Giuseppe Liotta, Henk Meijer. Computing straight-line 3d grid drawings of graphs in linear volume // Computational Geometry: Theory and Applications. — 2005. — Т. 32, вып. 1. — С. 26–58. — doi:10.1016/j.comgeo.2004.11.003.
  • Vida Dujmović, Pat Morin, David Wood. Layout of graphs with bounded tree-width // SIAM Journal on Computing. — 2005. — Т. 34, вып. 3. — С. 553–579. — doi:10.1137/S0097539702416141. — arXiv:cs/0406024.
  • Michael Elkin. An improved construction of progression-free sets // Israel Journal of Mathematics. — 2011. — Т. 184. — С. 93–128. — doi:10.1007/s11856-011-0061-1. — arXiv:0801.4310.
  • David Eppstein. Chapter 9: General position // Forbidden Configurations in Discrete Geometry. — Cambridge University Press, 2018. — С. 72–86.
  • Achim Flammenkamp. Progress in the no-three-in-line problem // Journal of Combinatorial Theory. — 1992. — Т. 60, вып. 2. — С. 305–311. — doi:10.1016/0097-3165(92)90012-J.
  • Achim Flammenkamp. Progress in the no-three-in-line problem, II // Journal of Combinatorial Theory. — 1998. — Т. 81, вып. 1. — С. 108–113. — doi:10.1006/jcta.1997.2829.
  • Vincent Froese, Iyad Kanj, André Nichterlein, Rolf Niedermeier. Finding points in general position // International Journal of Computational Geometry & Applications. — 2017. — Т. 27, вып. 4. — С. 277–296. — doi:10.1142/S021819591750008X. — arXiv:1508.01097.
  • Martin Gardner. Combinatorial problems, some old, some new and all newly attacked by computer // Scientific American. — 1976. — Октябрь (т. 235, вып. 4). — С. 131–137. — JSTOR 24950467.
  • Guy R. K., Kelly P. A. The no-three-in-line problem // Canadian Mathematical Bulletin. — 1968. — Т. 11, вып. 4. — С. 527–531. — doi:10.4153/CMB-1968-062-3.
  • Hall R. R., Jackson T. H., Sudbery A., Wild K. Some advances in the no-three-in-line problem // Journal of Combinatorial Theory. — 1975. — Т. 18, вып. 3. — С. 336–341. — doi:10.1016/0097-3165(75)90043-6.
  • Heiko Harborth, Philipp Oertel, Thomas Prellberg. No-three-in-line for seventeen and nineteen // Discrete Mathematics. — 1989. — Т. 73, вып. 1–2. — С. 89–90. — doi:10.1016/0012-365X(88)90135-5.
  • Vojtěch Jarník. Über die Gitterpunkte auf konvexen Kurven // Mathematische Zeitschrift. — 1926. — Т. 24, вып. 1. — С. 500–518. — doi:10.1007/BF01216795.
  • Erica Klarreich. Simple Set Game Proof Stuns Mathematicians. — 2016. — May 31.
  • Torleiv Kløve. On the no-three-in-line problem. II // Journal of Combinatorial Theory. — 1978. — Т. 24, вып. 1. — С. 126–127. — doi:10.1016/0097-3165(78)90053-5.
  • Torleiv Kløve. On the no-three-in-line problem. III // Journal of Combinatorial Theory. — 1979. — Т. 26, вып. 1. — С. 82–83. — doi:10.1016/0097-3165(79)90055-4.
  • Komlós J., Pintz J., Szemerédi E. A lower bound for Heilbronn's problem // Journal of the London Mathematical Society. — 1982. — Т. 25, вып. 1. — С. 13–24. — doi:10.1112/jlms/s2-25.1.13.
  • Donald E. Knuth. Answer to exercise 242 // The Art of Computer Programming, Fascicle 1b: A Draft of Section 7.1.4: Binary Decision Diagrams. — 2008. — С. 130.
    • Дональд Э. Кнут. Искусство программирования. — Москва, Санкт-Петербург, Киев: ООО «И. Д. Вильямс», 2013. — Т. 4, А – Комбинаторные алгоритмы Часть 1. — С. 479 (упражнение 242). — ISBN 978-5-8459-1744-7 Б Б К 3 2 . 9 7 3 . 2 6 - 0 1 8 . 2 . 75.
  • The Weekly Dispatch. — 1900. — Вып. April 29, May 13. как процитировано у Кнута
  • Cheng Yeaw Ku, Kok Bin Wong. On no-three-in-line problem on m-dimensional torus // Graphs and Combinatorics. — 2018. — Т. 34, вып. 2. — С. 355–364. — doi:10.1007/s00373-018-1878-8.
  • Aleksander Misiak, Zofia Stępień. A note on the no-three-in-line problem on a torus // Discrete Mathematics. — 2016. — Т. 339, вып. 1. — С. 217–221. — doi:10.1016/j.disc.2015.08.006. — arXiv:1406.6713.
  • János Pach, Torsten Thiele, Géza Tóth. Three-dimensional grid drawings of graphs // Graph Drawing, 5th Int. Symp., GD '97. — Springer-Verlag, 1998. — Т. 1353. — С. 47–51. — (Lecture Notes in Computer Science). — doi:10.1007/3-540-63938-1_49.
  • Michael S. Payne, David R. Wood. On the general position subset selection problem // SIAM Journal on Discrete Mathematics. — 2013. — Т. 27, вып. 4. — С. 1727–1733. — doi:10.1137/120897493. — arXiv:1208.5289.
  • Ed Pegg Jr. Chessboard Tasks. — Mathematical Association of America, 2005. — Апрель.
  • Attila Pór, David R. Wood. No-three-in-line-in-3D // Algorithmica. — 2007. — Т. 47, вып. 4. — С. 481. — doi:10.1007/s00453-006-0158-9.
  • Roth K. F. On a problem of Heilbronn // Journal of the London Mathematical Society. — 1951. — Т. 26, вып. 3. — С. 198–204. — doi:10.1112/jlms/s1-26.3.198.
  • David R. Wood. Grid drawings of k-colourable graphs // Computational Geometry: Theory and Applications. — 2005. — Т. 30, вып. 1. — С. 25–28. — doi:10.1016/j.comgeo.2004.06.001.

Ссылки[править | править код]