Costruzione di matrici binarie non equivalenti


15

Sto cercando di costruire tutte le matrici inequivocabili (o se lo desideri) con gli elementi 0 o 1. L'operazione che fornisce matrici equivalenti è lo scambio simultaneo della riga i e j E della colonna i e j . per esempio. per8×8n×n12

(000011100)(101000010)

Alla fine, dovrò anche contare quante matrici equivalenti ci sono all'interno di ogni classe, ma penso che il teorema di conteggio di Polya possa farlo. Per ora ho solo bisogno di un modo algoritmico di costruire una matrice in ogni classe di disuguaglianza. Qualche idea?


2
Ce ne sono almeno di questi. È un numero davvero grande. 264/8!248
Yuval Filmus,

@Yuval: Questi sono numeri davvero grandi e per il mio calcolo fa davvero la differenza se è o . Potrebbero essere necessarie settimane in più per l'esecuzione! Questa è la ragione per cui sto cercando di usare tutte le simmetrie del problema in questione. A parte questo, questo problema ha origine dalla costruzione di modelli nella teoria delle stringhe! :)248252
Eterotico il

Cosa intendi fare con tutte queste matrici? Dove li conserverai? Qual è l'applicazione?
Yuval Filmus,

1
idea: non è molto simile al problema dell'isomorfismo grafico? dove le matrici sono matrici ai bordi del grafico? tranne che quelli sono simmetrici ... forse possono essere sfruttati in qualche modo, ci sono tonnellate di teoria su questo ...
vzn

Risposte:


1

Ho compiuto alcuni progressi nel rispondere a questa domanda. Sto pubblicando qui nel caso in cui qualcun altro sia interessato e anche perché questa costruzione potrebbe avere qualche utilità per i grafici (diretti).

Contare il numero di 1 in ogni riga. Sia il numero di righe con zero 1, un 1 il numero di righe con uno 1 e così via fino a un 8 che è il numero di righe con otto 1. Ovviamente a i = 8 . La parametrizzazione proposta a cui sono giunto dopo la prova e l'errore è: ( un 1 , , un 8 ; T , S ) dove T è la traccia della matrice e S è 1 se la matrice è simmetrica e 0 altrimenti. T va da 0 aa0a1a8ai=8

(a1,,a8;T,S)
100 .i=18ai=8a0

Dalle mie prove ed errori sembra che se due matrici sono diverse in questa parametrizzazione, allora appartengono a diverse classi di equivalenza, quindi per costruire un rappresentante in ogni classe scansioniamo semplicemente lo spazio dei parametri come descritto sopra.

(Aggiornamento) Si scopre che questa parametrizzazione funziona bene per n = 2 ma non per n = 3 come può essere visto da un calcolo della forza bruta. Penso ancora che fornisca alcune informazioni sulla struttura della risposta e invito le persone a provare a modificarlo / estenderlo per coprire il caso più generale.


2
1×12×27×7

@DW: In effetti è la prova che questa condizione è sufficiente a turbare me e quella con cui vorrei un aiuto. Proverò a verificarlo esaurientemente per i casi più piccoli e vedrò cosa succede. Grazie per il consiglio! Sfortunatamente, non ho idea di come usare un solutore SAT per cercare controesempi. Se la congettura, vale per le matrici più piccole, potrei iniziare a conoscerlo ...
Heterotic

Ha senso, eterotico! In realtà, riprendo la mia dichiarazione sull'utilizzo di un solutore SAT. Non so nemmeno come usare un solutore SAT per cercare controesempi (è più difficile di quanto pensassi all'inizio), quindi per favore ignora quella parte del mio commento. Mi dispiace per quello!
DW

2
ai(1,4)(2,3)(1,4)(2,4)(tutte le voci rimanenti 0 per entrambi) non sono equivalenti ma hanno la stessa parametrizzazione. (Naturalmente questo porta immediatamente a una parametrizzazione migliorata che tiene conto anche delle colonne.)
FrankW,

1
Eterotico, ora che sai che la tua risposta non funziona, suggerirei di eliminare la tua risposta in modo da non confondere gli altri ...
DW
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.