В математике массив Костаса можно рассматривать геометрически как набор из n точек, каждая из которых находится в центре квадрата в квадратной мозаике n × n, так что каждая строка или столбец содержит только одну точку, и все n ( n − 1)/2 векторов смещения между каждой парой точек различны. Это приводит к идеальной функции автонеопределенности «кнопки» , что делает массивы полезными в таких приложениях, как сонар и радар . Массивы Костаса можно рассматривать как двумерных кузенов одномерной конструкции линейки Голомба , и, помимо того, что они представляют математический интерес, имеют схожие приложения в экспериментальном проектировании и проектировании радаров с фазированной решеткой .
Массивы Костаса названы в честь Джона П. Костаса , который впервые написал о них в техническом отчете 1965 года. Независимо от него Эдгар Гилберт также написал о них в том же году, опубликовав то, что сейчас известно как логарифмический метод Уэлча построения массивов Костаса. [1] Общее перечисление массивов Костаса является открытой проблемой в информатике, а поиск алгоритма, который может решить ее за полиномиальное время, является открытым исследовательским вопросом.
Массив Костаса может быть представлен численно как массив n × n чисел, где каждый элемент равен либо 1, для точки, либо 0, для отсутствия точки. При интерпретации как бинарных матриц эти массивы чисел обладают тем свойством, что, поскольку каждая строка и столбец имеют ограничение, что они имеют только одну точку, они, следовательно, также являются матрицами перестановок . Таким образом, массивы Костаса для любого заданного n являются подмножеством матриц перестановок порядка n .
Массивы обычно описываются как ряд индексов, определяющих столбец для любой строки. Поскольку дано, что любой столбец имеет только одну точку, возможно представить массив одномерно. Например, ниже приведен допустимый массив Костаса порядка N = 4:
Точки находятся в координатах: (1,2), (2,1), (3,3), (4,4)
Поскольку x -координата увеличивается линейно, мы можем записать это в сокращении как набор всех y -координат. Позиция в наборе тогда будет x -координатой. Обратите внимание: {2,1,3,4} будет описывать вышеупомянутый массив. Это определяет перестановку. Это упрощает передачу массивов для заданного порядка N.
Известны числа массива Костаса для порядков с 1 по 29 [2] (последовательность A008404 в OEIS ):
Заказ | Число |
---|---|
1 | 1 |
2 | 2 |
3 | 4 |
4 | 12 |
5 | 40 |
6 | 116 |
7 | 200 |
8 | 444 |
9 | 760 |
10 | 2160 |
11 | 4368 |
12 | 7852 |
13 | 12828 |
14 | 17252 |
15 | 19612 |
16 | 21104 |
17 | 18276 |
18 | 15096 |
19 | 10240 |
20 | 6464 |
21 | 3536 |
22 | 2052 |
23 | 872 |
24 | 200 |
25 | 88 |
26 | 56 |
27 | 204 |
28 | 712 |
29 | 164 |
Вот некоторые известные массивы: N = 1 {1}
N = 2 {1,2} {2,1}
N = 3 {1,3,2} {2,1,3} {2,3,1} {3,1,2}
N = 4 {1,2,4,3} {1,3,4,2} {1,4,2,3} {2,1,3,4} {2,3,1,4} {2,4,3,1} {3,1,2,4} {3,2,4,1} {3,4,2,1} {4,1,3,2} {4,2,1,3} {4,3,1,2}
N = 5 {1,3,4,2,5} {1,4,2,3,5} {1,4,3,5,2} {1,4,5,3,2} {1,5,3,2,4} {1,5,4,2,3} {2,1,4,5,3} {2,1,5,3,4} {2,3,1,5,4} {2,3,5,1,4} {2,3,5,4,1} {2,4,1,5,3} {2,4,3,1,5} {2,5,1,3,4} {2,5,3,4,1} {2,5,4,1,3} {3,1,2,5,4} {3,1,4,5,2} {3,1,5,2,4} {3,2,4,5,1} {3,4,2,1,5} {3,5,1,4,2} {3,5,2,1,4} {3,5,4,1,2} {4,1,2,5,3} {4,1,3,2,5} {4,1,5,3,2} {4,2,3,5,1} {4,2,5,1,3} {4,3,1,2,5} {4,3,1,5,2} {4,3,5,1,2} ,5,1,3,2} {4,5,2,1,3} {5,1,2,4,3} {5,1,3,4,2} {5,2,1,3,4} {5,2,3,1,4} {5,2,4,3,1} {5,3,2,4,1}
N = 6 {1,2,5,4,6,3} {1,2,6,4,3,5} {1,3,2,5,6,4} {1,3,2,6,4,5} {1,3,6,4,5,2} {1,4,3,5,6,2} {1,4,5,3,2,6} {1,4,6,5,2,3} {1,5,3,4,6,2} {1,5,3,6,2,4} {1,5,4,2,3,6} {1,5,4,6,2,3} {1,5,6,2,4,3} {1,5,6,3,2,4} {1,6,2,4,5,3} {1,6,3,2,4,5} {1,6,3,4,2,5} {1,6,3,5,4,2} {1,6,4,3,5,2} {2,3,1,5,4,6} {2,3,5,4,1,6} {2,3,6,1,5,4} {2,4,1,6,5,3} {2,4,3,1,5,6} {2,4,3,6,1,5} {2,4,5,1,6,3} {2,4,5,3,6,1} ,6,3,4} {2,5,1,6,4,3} {2,5,3,4,1,6} {2,5,3,4,6,1} {2,5,4,6,3,1} {2,6,1,4,3,5} {2,6,4,3,5,1} {2,6,4,5,1,3} {2,6,5,3,4,1} {3,1,2,5,4,6} {3,1,5,4,6,2} {3,1,5,6,2,4} {3,1,6,2,5,4} {3,1,6,5,2,4} {3,2,5,1,6,4} {3,2,5,6,4,1} {3,2,6,1,4,5} {3,2,6,4,5,1} ,6,2,5} {3,4,2,6,5,1} {3,4,6,1,5,2} {3,5,1,2,6,4} {3,5,1,4,2,6} {3,5,2,1,6,4} {3,5,4,1,2,6} {3,5,4,2,6,1} {3,5,6,1,4,2} {3,5,6,2,1,4} {3,6,1,5,4,2} {3,6,4,5,2,1} {3,6,5,1,2,4} {4,1,2,6,5,3} {4,1,3,2,5,6} {4,1,6,2,3,5} {4,2,1,5,6,3} {4,2,1,6,3,5} ,5,1,6} {4,2,3,6,5,1} {4,2,5,6,1,3} {4,2,6,3,5,1} {4,2,6,5,1,3} {4,3,1,6,2,5} {4,3,5,1,2,6} {4,3,6,1,5,2} {4,5,1,3,2,6} {4,5,1,6,3,2} {4,5,2,1,3,6} {4,5,2,6,1,3} {4,6,1,2,5,3} {4,6,1,5,2,3} {4,6,2,1,5,3} {4,6,2,3,1,5} {4,6,5,2,3,1} {5,1,2,4,3,6} ,2,6,4} {5,1,3,4,2,6} {5,1,6,3,4,2} {5,2,3,1,4,6} {5,2,4,3,1,6} {5,2,4,3,6,1} {5,2,6,1,3,4} {5,2,6,1,4,3} {5,3,2,4,1,6} {5,3,2,6,1,4} {5,3,4,1,6,2} {5,3,4,6,2,1} {5,3,6,1,2,4} {5,4,1,6,2,3} {5,4,2,3,6,1} {5,4,6,2,3,1} {6,1,3,4,2,5} {6,1,4,2,3,5} ,3,5,2} {6,1,4,5,3,2} {6,1,5,3,2,4} {6,2,1,4,5,3} {6,2,1,5,3,4} {6,2,3,1,5,4} {6,2,3,5,4,1} {6,2,4,1,5,3} {6,2,4,3,1,5} {6,3,1,2,5,4} {6,3,2,4,5,1} {6,3,4,2,1,5} {6,4,1,3,2,5} {6,4,5,1,3,2} {6,4,5,2,1,3} {6,5,1,3,4,2} {6,5,2,3,1,4}
Перечисление известных массивов Костаса до порядка 200, [3] порядка 500 [4] и порядка 1030 [5] доступно. Хотя эти списки и базы данных этих массивов Костаса, вероятно, близки к полным, могут существовать другие массивы Костаса с порядками выше 29, которые не входят в эти списки. В общем, в настоящее время наиболее известная верхняя граница числа массивов Костаса порядка имеет асимптотическую форму . [6]
Массив Уэлча–Костаса , или просто массив Уэлча, — это массив Костаса, сгенерированный с использованием следующего метода, впервые открытого Эдгаром Гилбертом в 1965 году и переоткрытого в 1982 году Ллойдом Р. Уэлчем . Массив Уэлча–Костаса строится путем взятия примитивного корня g простого числа p и определения массива A с помощью if , в противном случае 0. Результатом является массив Костаса размера p − 1.
Пример:
3 — примитивный элемент по модулю 5.
Следовательно, [3 4 2 1] — это перестановка Костаса. Точнее, это экспоненциальный массив Уэлча. Транспонирование массива — логарифмический массив Уэлча.
Число массивов Уэлча–Костаса, которые существуют для заданного размера, зависит от функции тотиента .
Конструкция Лемпеля–Голомба берет α и β в качестве примитивных элементов конечного поля GF( q ) и аналогично определяет , если , в противном случае 0. Результатом является массив Костаса размером q − 2. Если α + β = 1, то первую строку и столбец можно удалить, чтобы сформировать другой массив Костаса размером q − 3: такая пара примитивных элементов существует для каждой степени простого числа q>2 .
Генерация новых массивов Костаса путем добавления или вычитания одной или двух строк/столбцов с 1 или парой единиц в углу была опубликована в статье, посвященной методам генерации [7] , и в знаковой статье Голомба и Тейлора 1984 года [8] .
Более сложные методы генерации новых массивов Костаса путем удаления строк и столбцов существующих массивов Костаса, которые были сгенерированы генераторами Уэлча, Лемпеля или Голомба, были опубликованы в 1992 году. [9] Не существует верхнего предела для порядка, для которого эти генераторы будут создавать массивы Костаса.
Два метода, которые находили массивы Костаса до 52-го порядка, используя более сложные методы добавления или удаления строк и столбцов, были опубликованы в 2004 [10] и 2007 годах. [11]
Массивы Костаса на гексагональной решетке известны как сотовые массивы . Было показано, что существует лишь конечное число таких массивов, которые должны иметь нечетное число элементов, расположенных в форме шестиугольника. В настоящее время известно 12 таких массивов (с точностью до симметрии), что, как предполагается, является общим числом. [12]