1
$\begingroup$

$A, B$ are non-symmetric matrices of dimension $m \times n$ where $m=n$ or $m \neq n$.

Example: An example of $6 \times 3$ non-symmetric matrix is

$$ \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{pmatrix}. $$

$A \simeq B$ and $g(h(A))=B$ where

$g$ is a permutation that acts on $n$ columns and $h$ is a permutation that acts on $m$ rows.

Problem: How to construct a non exponential algorithm to test such isomorphism?

Note: I have an idea to construct such algorithm which is based on less rigorous argument. Therefore, I would like to have a formal (i.e. mathematically rigorous) solution .

$\endgroup$
11
  • 3
    $\begingroup$ What does it mean for two matrices to be isomorphic? $\endgroup$
    – user258700
    Commented Dec 29, 2015 at 16:06
  • 1
    $\begingroup$ I believe that the word "and" should be "if"; what he meant was that $A$ is isomorphic to $B$ (by definition) if there exist $g$ and $h$ such that $g(h(A))=B$. $\endgroup$ Commented Dec 29, 2015 at 16:08
  • 2
    $\begingroup$ What does it mean for a non-square matrix to be symmetric? $\endgroup$ Commented Dec 29, 2015 at 16:08
  • $\begingroup$ @AhmedHussein , if you rearrange rows and columns of a matrix $A$ as defined above, then the rearranged matrix, say $B$, will not look same as $A$, so,$A \neq B$ but $B$ is actually a rearranged $A$ , in that sense $A$ is isomorphic to $B$. $\endgroup$
    – Michael
    Commented Dec 29, 2015 at 16:16
  • 1
    $\begingroup$ @Jim the other answer looks right to me. I guess it doesn't take much to beat exponential time. $\endgroup$ Commented Jan 4, 2016 at 10:13

3 Answers 3

1
$\begingroup$

This is the bipartite graph isomorphism problem. This problem is known to be GI complete, so

to construct a non exponential algorithm to test such isomorphism

is exactly as difficult as to construct a non exponential algorithm for graph isomorphism. László Babai recently constructed such an algorithm for the first time...

$\endgroup$
0
$\begingroup$

Some quick (definitely true) observations:

  • $A \cong B$ if and only if there are permutation matrices $P,Q$ such that $A = PBQ$.
  • $A \cong B$ implies that $A$ and $B$ have the same total number of $1$s
  • $A \cong B$ implies that $A$ and $B$ have the same rank.

Here's my first thought at an algorithm; I'm not sure whether it works. The fundamental idea I'm operating on is that given a matrix $A$, we should find an algorithm that selects a member of the equivalence class of $A$ (that is, a second matrix $M \cong A$) such that if $A \cong B$, the algorithm will produce the same matrix $M$ if either $A$ or $B$ are given as an input to the algorithm.

Start with your $A$, and sort the rows from top to bottom in numerical order, reading each row as a binary number. So, $$ A =\pmatrix{ 1&&\\ &1\\ &1&1\\ 1\\ &&1\\ &1} \to \pmatrix{ &&1\\ &1\\ &1\\ &1&1\\ 1\\ 1 } $$ Then, sort the columns in decreasing order from left to right (in this case, this means nothing happens).

The algorithm repeats this sort of row and column if the matrix is still not sorted by row and by column in this fashion. The algorithm terminates either when the matrix is sorted or when the same matrix is attained twice.

The output of the algorithm is the last matrix obtained.

There are probably several things wrong with this algorithm, but I thought it might be a useful staring point nevertheless.

$\endgroup$
3
  • $\begingroup$ Thanks for quick response. Your approach seems to be heuristic and I have not been able to compute the complexity yet, it appears to me, the complexity would be exponential(worse case), right? $\endgroup$
    – Michael
    Commented Dec 29, 2015 at 17:00
  • $\begingroup$ Possibly; this was really just a shot in the dark more than anything. It'll be hard to compute what the worst case outcome for this is, anyway. If you can make this into something like row-reduction, then that would certainly be polynomial. $\endgroup$ Commented Dec 29, 2015 at 17:11
  • $\begingroup$ @Omnomnomnom Keep in mind that that would make this a polynomial complexity algorithm for isomorphism testing of bipartite graphs. (I know that's not what you're claiming, I just wanted to point out what such a result would entail). $\endgroup$
    – xxxxxxxxx
    Commented Jan 9, 2016 at 14:56
0
$\begingroup$

Claim: $E, F$(using instead of $A, B$) are non-symmetric 0-1 matrices of

dimension $m \times n$ where $m>n$. Given $F \neq E$, it takes maximum maximum $O( \frac {m^{log_2(m)}} { 2^{\sum log_2(m)} })$ times to check whether $F \simeq E$ or not.

Proof:

For $1^{st}$ iteration, $E_1=E;m_1=m$.

Based on each row $e_i \in E_1$ ($1 \leq i \leq m_1$), $E_1$ can be divided into 4

sub matrices. It can be denoted as- $E_{(1,i)}= \left( \begin{array}{cc}I_i & J_i \\K_i & L_i \\k_i & l_i\end{array}\right) $, where $e_i=\left( \begin{array}{c}k_i & l_i \\ \end{array}\right) $; $l_i$ is a tuple of all 1's and $k_i$ is a tuple of all 0's .there are $m_1$ possible matrices like $E_{(1,i)}$. $E_{(1,i)}$ is a matrix of all possible $m_1$ matrix(for each row of $E_1$) at $1^{st}$ iteration.Here, $L_i$ is a zero matrix. Each row of $K_i$, does not have any 1 in the position of 1 of $e_i$ , $K_i$ is made of all such rows . Either $J_i$ has rows less than $m_1/2 $(when $L_i $ has rows more than $m_1/2 $) or $K_i$ has rows less than $m_1/2$ (when $L_i$ has rows less than $ m_1/2 $) . For $2^{nd}$ iteration, as $E_2$, choose one of $K_i,J_i$ that has minimum number of rows; $m_2$= tolal row of $E_2$ ,less than $ m_1/2 $. Repeat the process until $m_j <6$( or less than a number where $m_j!$ is sufficiently small to ignore) .

This recursive process can be run maximum $log_2{(m_1)}$ times. So, there could be $ \frac {m^{log_2(m)}} { 2^{\sum log_2(m)} }$ matrices using above “Divide and Conquer” method. $\sum log_2(m)= \frac{ log_2(m)(log_2(m)+1)}{2}$.

For simplicity , it is assumed that $E_j$ has following properties-

(i) Each row, column has constant number of 1.

(ii) Each row is unique (No row is repeated in a set of rows /matrix),

assuming no partition obtained from column.

If $E_j$ does not have any of the above properties, the matrix can be

partitioned again until these 2 properties are attained.

Consider the case ,$E_1 \simeq F_1$ and $g(h(E_1))=F_1$, so $E_1 \neq F_1$ where $g$ is a permutation that acts on $n$ columns and $h$ is a permutation that acts on $m$ rows, but $g, h$ do not act on $L_i$.

Since the rows of $K_i$ and columns of $J_i$ have not been permuted(when transforming $E_1$ to $F_1$), reordering columns of $K_i$ and rows of $J_i$ would make $E_1 = F_1$. These reordering can be done in polynomial time following the order of $K_i$ , $J_i$ of $E_{(1,i)}$.

If $g,h$ act on $L_i$, then find all permutations of all columns (or rows) of $L_i$. For each of the column permutation, reorder rows(or columns if permutation of rows are used) exactly like $L_i$. This "row- reordering" is polynomial time. There are maximum $|l_i|!$ of column-permutation($|l_i|$=length of $l_i$ tuple), one of them must reorder the transformed matrix into $L_i$. Similarly, if permutations of rows are used then there are $m_j !$ permutations to check and reorder $L_i$.

Now, consider the set of all $ \frac {m^{log_2(m)}} { 2^{\sum log_2(m)} }$ matrices of the form $E_{(j,i)}$ ($m_j <6$ or less than a number where $m_j!$ is sufficiently small to ignore). For each $E_{(j,i)}$ (where $m_j=2$ , use this technique to reorder other matrices. Each $E_{(j,i)}$ can have maximum $2!$ permutation of column/rows. For each permutation, use the above technique. Thus, it will take $O( \frac {m^{log_2(m)}} { 2^{\sum log_2(m)} })$ times to check whether $F \simeq E$ or not. $\blacksquare$

$\endgroup$
2
  • 2
    $\begingroup$ Your algorithm doesn't work as claimed. You basically only describe the divide phase of the algorithm, but use handwaving instead of a description for how to combine the results from the subproblems to form a global solution. You also rely on handwaving for your mathematical notation: $2^{\sum log_2(m)}$ is unclear (sum over what?), $E_2= \min(K_i,J_i)$ is unclear (minimum of two matrices?), $J_i < m_1/2$ is unclear (a matrix is smaller than some number?), ... I admit that I can guess what you want to say, but how can I help you understand where your algorithm fails, with such handwaving? $\endgroup$ Commented Jan 4, 2016 at 23:40
  • $\begingroup$ @ThomasKlimpel Sorry for the inconvenience. 1." how to combine the results from the subproblems to form a global solution."- see bold-letters area 2. I corrected other 3 notations according to your comment. Thanks. $\endgroup$
    – Michael
    Commented Jan 5, 2016 at 9:27

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .