Я пытаюсь построить все неэквивалентные матрицы (или если хотите) с элементами 0 или 1. Операция, которая дает эквивалентные матрицы, - это одновременный обмен строк i и j И столбцов i и j , например. для
В конце концов, мне также нужно будет подсчитать, сколько эквивалентных матриц существует в каждом классе, но я думаю, что теорема Поли о подсчете может это сделать. Сейчас мне просто нужен алгоритм построения одной матрицы в каждом классе неэквивалентности. Есть идеи?
algorithms
combinatorics
Гетеротическая
источник
источник
Ответы:
Я добился определенного прогресса в ответе на этот вопрос. Я публикую здесь, если кому-то еще это интересно, а также потому, что эта конструкция может быть полезна для (направленных) графов.
Подсчитайте количество единиц в каждом ряду. Пусть 0 будет число строк с нулевыми 1s, 1 число строк с одним 1 и так далее до более 8 , который является количество строк , которые имеют восемь 1s. Очевидно Σ я = 8 . Предлагаемая параметризация, к которой я пришел после проб и ошибок: ( a 1 , ⋯ , a 8 ; T , S ), где T - это след матрицы, и S равно 1, если матрица симметрична, и 0 в противном случае. Т работает от 0 доa0 a1 a8 ∑ ая= 8
Из моих проб и ошибок похоже, что если две матрицы отличаются в этой параметризации, то они принадлежат разным классам эквивалентности, поэтому для создания представителя в каждом классе мы просто сканируем пространство параметров, как описано выше.
(Обновление) Оказывается, что эта параметризация работает нормально для n = 2, но не для n = 3, как это видно из расчета методом грубой силы. Я все еще думаю, что это дает некоторое представление о структуре ответа, и я приглашаю людей попытаться изменить / расширить его, чтобы охватить наиболее общий случай.
источник