Тест ассоциативности огней - Lights associativity test - Wikipedia

В математика, Тест ассоциативности света - это процедура, изобретенная Ф. У. Лайтом для проверки того, бинарная операция определено в конечный набор по Таблица умножения Кэли является ассоциативный. Наивная процедура проверки ассоциативности бинарной операции, заданной таблицей Кэли, которая сравнивает два продукта, которые могут быть сформированы из каждой тройки элементов, является громоздкой. Тест ассоциативности Light упрощает задачу в некоторых случаях (хотя он не улучшает время выполнения наивного алгоритма в худшем случае, а именно для наборов размеров ).

Описание процедуры

Пусть бинарная операция '·' определена в конечном множестве А за столом Кэли. Выбираем какой-нибудь элемент а в А, две новые бинарные операции определены в А следующее:

Икс у = Икс · ( а · у )
Икс у = ( Икс · а ) · у

Составляются и сравниваются таблицы Кэли этих операций. Если таблицы совпадают, то Икс · ( а · у ) = ( Икс · а ) · у для всех Икс и у. Это повторяется для каждого элемента набора А.

Пример ниже иллюстрирует дальнейшее упрощение процедуры построения и сравнения таблиц Кэли операций ' ' и ' '.

Нет необходимости даже строить таблицы Кэли ' ' и ' ' за все элементы А. Достаточно сравнить таблицы Кэли ' ' и ' 'соответствующий элементам в собственном порождающем подмножестве А.

Когда операция ». ' является коммутативный, то x у = у Икс. В результате должна быть вычислена только часть каждой таблицы Кэли, потому что x х = х x всегда выполняется, а x у = х y влечет y х = у Икс.

Когда есть элемент идентичности e, его не нужно включать в таблицы Кэли, потому что x у = х y всегда выполняется, если хотя бы одно из x и y равно e.

Пример

Рассмотрим бинарную операцию '·' в множестве А = { а, б, c, d, е } определяется следующей таблицей Кэли (Таблица 1):

Таблица 1
·абcdе
  а  а  а  а  d  d
  б  а  б  c  d  d
  c  а  c  б  d  d
  d  d  d  d  а  а
  е  d  е  е  а  а

Набор { c, е } - генераторная установка для множества А при бинарной операции, определенной в приведенной выше таблице, для а = е · е, б = c · c, d = c · е. Таким образом, достаточно убедиться, что бинарные операции ' ' и ' 'соответствующий c совпадают, а также что бинарные операции ' ' и ' 'соответствующий е совпадают.

Чтобы проверить, что бинарные операции ' ' и ' 'соответствующий c совпадают, выберите в таблице 1 строку, соответствующую элементу c:

Таблица 2
·абcdе
  а  а  а  а  d  d
  б  а  б  c  d  d
  c  а  c  б  d  d
  d  d  d  d  а  а
  е  d  е  е  а  а

Эта строка копируется как строка заголовка новой таблицы (Таблица 3):

Таблица 3
     а  c  б  d  d
   
   
   
   
   

Под заголовком а скопируйте соответствующий столбец в таблице 1 под заголовком б скопируйте соответствующий столбец в таблице 1 и т. д. и создайте таблицу 4.

Таблица 4
     а  c  б  d  d
  а  а  а  d  d
  а  c  б  d  d
  а  б  c  d  d
  d  d  d  а  а
  d  е  е  а  а

Заголовки столбцов таблицы 4 теперь удалены, чтобы получить таблицу 5:

Таблица 5
                  
  а  а  а  d  d
  а  c  б  d  d
  а  б  c  d  d
  d  d  d  а  а
  d  е  е  а  а

Таблица Кэли бинарной операции ' 'соответствующий элементу c приведено в таблице 6.

Таблица 6
  (c)  а  б  c  d  е
  а  а  а  а  d  d
  б  а  c  б  d  d
  c  а  б  c  d  d
  d  d  d  d  а  а
  е  d  е  е  а  а

Затем выберите c столбец таблицы 1:

Таблица 7
·абcdе
  а  а  а  а  d  d
  б  а  б  c  d  d
  c  а  c  б  d  d
  d  d  d  d  а  а
  е  d  е  е  а  а

Скопируйте этот столбец в столбец индекса, чтобы получить Таблицу 8:

Таблица 8
                  
  а
  c
  б
  d
  е

Против индексной записи а в Таблице 8 скопируйте соответствующую строку Таблицы 1 напротив записи индекса б скопируйте соответствующую строку в таблице 1 и т. д. и создайте таблицу 9.

Таблица 9
                  
  а  а  а  а  d  d
  c  а  c  б  d  d
  б  а  б  c  d  d
  d  d  d  d  а  а
  е  d  е  е  а  а

Записи индекса в первом столбце таблицы 9 теперь удалены, чтобы получить таблицу 10:

Таблица 10
                  
     а  а  а  d  d
     а  c  б  d  d
     а  б  c  d  d
     d  d  d  а  а
     d  е  е  а  а

Таблица Кэли бинарной операции ' 'соответствующий элементу c приведено в таблице 11.

Таблица 11
(c)  а  б  c  d  е
  а  а  а  а  d  d
  б  а  c  б  d  d
  c  а  б  c  d  d
  d  d  d  d  а  а
  е  d  е  е  а  а

Можно убедиться, что записи в различных ячейках в таблице 6 соответствуют записям в соответствующих ячейках таблицы 11. Это показывает, что Икс · ( c · у ) = ( Икс · c ) · у для всех Икс и у в А. Если бы было какое-то несоответствие, было бы неверно, что Икс · ( c · у ) = ( Икс · c ) · у для всех Икс и у в А.

Который Икс · ( е · у ) = ( Икс · е ) · у для всех Икс и у в А можно проверить аналогичным образом, построив следующие таблицы (Таблица 12 и Таблица 13):

Таблица 12
 (е)  а  б  c  d  е
  а  d  d  d  а  а
  б  d  d  d  а  а
  c  d  d  d  а  а
  d  а  а  а  d  d
  е  а  а  а  d  d
Таблица 13
 (е)  а  б  c  d  е
  а  d  d  d  а  а
  б  d  d  d  а  а
  c  d  d  d  а  а
  d  а  а  а  d  d
  е  а  а  а  d  d

Дальнейшее упрощение

Нет необходимости создавать таблицы Кэли (таблица 6 и таблица 11) бинарных операций ' ' и ' '. Достаточно скопировать столбец, соответствующий заголовку c в таблице 1 к столбцу указателя в таблице 5 и сформируйте следующую таблицу (таблица 14) и убедитесь, что а-строка Таблицы 14 идентична а-строке таблицы 1 б-строка Таблицы 14 идентична б-строка таблицы 1 и т. д. Это необходимо повторить mutatis mutandis для всех элементов генераторной установки А.

Таблица 14
     а  c  б  d  d
  а  а  а  а  d  d
  c  а  c  б  d  d
  б  а  б  c  d  d
  d  d  d  d  а  а
  е  d  е  е  а  а

Программа

Компьютерное программное обеспечение можно написать, чтобы провести тест ассоциативности Лайта. Кехайопулу и Аргирис разработали такую ​​программу для Mathematica.[1]

Расширение

Тест ассоциативности Света может быть расширен для проверки ассоциативности в более общем контексте.[2][3]

Позволять Т = { т1, т2, , тм } быть магма в котором операция обозначается сопоставление. Позволять Икс = { Икс1, Икс2, , Иксп } быть набором. Пусть есть отображение из Декартово произведение Т × Икс к Икс обозначается (т, Икс) ↦ tx и пусть потребуется проверить, есть ли у этой карты свойство

(ул)Икс = s(tx) для всех s, т в Т и все Икс в Икс.

Обобщение теста ассоциативности Лайта может быть применено, чтобы проверить, выполняется ли указанное выше свойство или нет. В математических обозначениях обобщение выглядит следующим образом: для каждого т в Т, позволять L(т) быть м × п матрица элементов Икс чей я - я строка

( (тят)Икс1, (тят)Икс2, , (тят)Иксп ) за я = 1, , м

и разреши р(т) быть м × п матрица элементов Икс, элементы которого j -й столбец

( т1(txj), т2(txj), , тм(txj) ) за j = 1, , п.

Согласно обобщенному тесту (из-за Беднарека) проверяемое свойство выполняется тогда и только тогда, когда L(т) = р(т) для всех т в Т. Когда Икс = Т, Проба Беднарека сводится к пробе Лайта.

Более продвинутые алгоритмы

Существует рандомизированный алгоритм Раджагопалана и Шульман для проверки ассоциативности во времени, пропорциональном размеру ввода. (Этот метод также работает для проверки некоторых других идентификаторов.) В частности, среда выполнения для таблица и вероятность ошибки . Алгоритм можно изменить для получения тройного для которого , если есть, вовремя .[4]

Примечания

  1. ^ Кехайопулу, Ниови; Филип Аргирис (1993). «Алгоритм проверки ассоциативности Лайта с использованием Mathematica». J. Comput. Сообщить. 3 (1): 87–98. ISSN  1180-3886.
  2. ^ Беднарек, А. Р. (1968). «Расширение теста ассоциативности Лайта». Американский математический ежемесячный журнал. 75 (5): 531–532. Дои:10.2307/2314731. JSTOR  2314731.
  3. ^ Кальман, Дж. А (1971). «Расширение Беднарека теста ассоциативности Лайта». Полугруппа Форум. 3 (1): 275–276. Дои:10.1007 / BF02572966.
  4. ^ Раджагопалан, Шридхар; Шульман, Леонард Дж. (2000). «Проверка личности». SIAM Журнал по вычислениям. 29 (4): 1155–1163. CiteSeerX  10.1.1.4.6898. Дои:10.1137 / S0097539797325387.

Рекомендации