Construindo matrizes binárias inequívocas


15

Eu estou tentando construir todas as matrizes (ou se desejar) com elementos 0 ou 1. A operação que fornece matrizes equivalentes é a troca simultânea da linha iej e da coluna iej . por exemplo. paran × n 1 2 ( 0 0 0 0 1 1 1 0 0 )( 1 0 1 0 0 0 0 0 1 0 )8×8n×n12

(000011100)(101000010)

Eventualmente, também precisarei contar quantas matrizes equivalentes existem em cada classe, mas acho que o teorema da contagem de Polya pode fazer isso. Por enquanto, só preciso de uma maneira algorítmica de construir uma matriz em cada classe de desigualdade. Alguma ideia?


2
Existem pelo menos destes. É um número realmente grande. 264/8!248
Yuval Filmus

@Yuval: Esses números são realmente grandes e, para meu cálculo, realmente faz diferença se são ou 2 52 . Pode levar semanas mais para ser executado! É por isso que estou tentando usar todas as simetrias do problema em questão. Como um aparte, esse problema se origina da construção de modelos na Teoria das Cordas! :)248252
Heterotic

O que você pretende fazer com todas essas matrizes? Onde você vai guardá-los? Qual é a aplicação?
Yuval Filmus

11
idéia: isso não é muito semelhante ao problema de isomorfismo gráfico? onde matrizes são matrizes de arestas gráficas? exceto aqueles são simétricas ... talvez pode ser aproveitado de alguma forma, há toneladas de teoria sobre isso ...
vzn

Respostas:


1

Fiz alguns progressos no sentido de responder a esta pergunta. Estou postando aqui caso alguém esteja interessado e também porque essa construção pode ter alguma utilidade para gráficos (direcionados).

Conte o número de 1s em cada linha. Deixe é o número de linhas com zero 1s, um 1 o número de linhas com um 1 e assim por diante até a 8 que é o número de linhas que têm oito 1s. Obviamente Σ um i = 8 . A parametrização proposta a que cheguei após tentativa e erro é: ( a 1 , , a 8 ; T , S ) em que T é o traço da matriz e S é 1 se a matriz é simétrica e 0 em caso contrário. T vai de 0 auma0 0uma1 1uma8umaEu=8

(uma1 1,,uma8;T,S)
1 10 00 0 .Eu=1 18umaEu=8-uma0 0

Pelas minhas tentativas e erros, parece que, se duas matrizes são diferentes nessa parametrização, elas pertencem a diferentes classes de equivalência; portanto, para construir um representante em cada classe, apenas examinamos o espaço de parâmetros conforme descrito acima.

(Atualização) Acontece que essa parametrização funciona bem para n = 2, mas não para n = 3, como pode ser visto por um cálculo de força bruta. Ainda acho que ele fornece algumas dicas sobre a estrutura da resposta e convido as pessoas a tentar modificá-las / estendê-las para cobrir o caso mais geral.


2
1 1×1 12×27×7

@ DW: Na verdade, é a prova de que essa condição é suficiente que me incomoda e que eu gostaria de alguma ajuda. Vou tentar verificar exaustivamente os casos menores e ver o que acontece. Obrigado pelo conselho! Infelizmente, não tenho idéia de como usar um solucionador SAT para procurar contra-exemplos. Se a conjectura, vale para as matrizes menores, eu poderia começar a aprender sobre isso ...
Heterótica

Faz sentido, heterótico! Na verdade, retiro minha declaração sobre o uso de um solucionador SAT. Também não sei como usar um solucionador SAT para procurar contra-exemplos (é mais difícil do que eu pensava a princípio) - então, por favor, ignore essa parte do meu comentário. Me desculpe por isso!
DW

2
umaEu(1 1,4)(2,3)(1 1,4)(2,4)(todas as entradas restantes 0 para ambos) não são equivalentes, mas têm a mesma parametrização. (Claro que isso imediatamente leva a uma parametrização melhorada que também leva as colunas em conta.)
FrankW

11
Heterótico, agora que você sabe que sua resposta não funciona, sugiro que a exclua para que não confunda os outros ...
DW
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.