3
$\begingroup$

Let $A$ be a $3 \times 3$ matrix whose elements are only $0$ and $1$. Let $|\lambda_A^{\max}|$ be the spectral radius, i.e., the maximum absolute value of eigenvalues of $A$.

How can I choose the matrix $A$ such that $\log |\lambda_A^{\max}|$ has the minimal positive value?

Can someone give me a hint? Thank you!

  • 1
    There are only $2^9 = 512$ binary $3 \times 3$ matrices. Why not use brute force?2017-02-23
  • 0
    Are you serious? :D2017-02-23
  • 0
    @g.pomegranate sure, just use a computer2017-02-23
  • 0
    Any other limitations? That seems awfully vague. The unit matrix gives you an easy upper bound on eigenvalue. Is 1 also a LOWER bound? That needs to be proved.2017-02-23
  • 0
    @Omnomnomnom: Is there a program that does it? or do I have to do one program? Thank you!2017-02-23

3 Answers 3

3

I ran the following script on Matlab. Some strange workarounds were necessary because my version is out of date.

Lmin = 3;
imin = 0;
Amin = zeros(3);

for i = 0:511
    b = dec2bin(i,9) == '1';
    A = reshape(b, [3,3]) + zeros(3);
    L = eigs(A,1);
    if L > 1.01 && L < Lmin
        Amin = A;
        Lmin = L;
        imin = i;
    end
end

The minimum is attained with $$ A = \pmatrix{0&0&1\\1&0&1\\0&1&0}, \qquad \lambda_{max} \approx 1.3247 $$ I'm exploiting the fact that non-negative matrices always have a non-negative eigenvalue which coincides with the spectral radius. We get the same even if we have L = max(abs(eig(A))).

  • 0
    How about the unit matrix?2017-02-23
  • 2
    @DacianBonta the log of its spectral radius is not *positive*.2017-02-23
  • 0
    @Omnomnomnom so the solution is the unique real root of $f(\lambda) = \lambda^3 - \lambda - 1$, is there an algebraic argument as to why this should be so? (before we found the correct matrix)2017-02-23
  • 0
    I guess you have a pretty limited set of possible characteristic polynomials2017-02-23
3

(The other answer here has already addressed the OP's problem. We consider the general case below only for future reference.)

For every $n\ge2$, denote by $\mathcal B_n$ the set of all nonzero $n\times n$ binary matrices. It is an easy consequence of Perron-Frobenius theorem that $\rho(A)\ge1$ if $A\in\mathcal B_n$ is irreducible. Let \begin{align*} r_n &= \min_{A\in\mathcal B_n,\ \rho(A)>1}\log\rho(A),\tag{1}\\ A_n &= \arg\min_{A\in\mathcal B_n,\ \rho(A)>1}\log\rho(A).\tag{2} \end{align*} Note that if $A$ is an irreducible nonnegative matrix and we increase the values of some of its entries, the spectral radius of the resulting matrix must strictly increase (see Theorem about positive matrices for proofs). Furthermore, if $A$ is also binary, it must contain a full-cycle graph, i.e. $A\ge P$ for some irreducible permutation matrix $P$. It follows that if $A_n$ is the minimiser in $(2)$, there are only two possibilities:

  1. $A_n$ is reducible and hence $r_n=r_m$ for some $m
  2. $A_n$ is obtained by flipping a zero entry of an irreducible permutation matrix to $1$.

Consequently, if we define

$\rho_n:=$ the minimum possible spectral radius of an $n\times n$ matrix $A$ obtained by flipping a zero entry of an irreducible permutation matrix to $1$,

then $r_n=\min(\rho_2,\rho_3,\ldots,\rho_n)$. We now prove that $\{\rho_n\}$ is actually a decreasing sequence and hence $r_n=\rho_n$.

Proof.

Let $A$ be a matrix obtained by flipping a zero entry of an irreducible permutation matrix $P$ to $1$, i.e. $A=P+E_{i_0j_0}$ for some $E_{i_0j_0}$ such that $j_0\ne\sigma(i_0)$, where $P$ corresponds to the full cycle $\sigma$. Recall that $\rho(A)>\rho(P)=1$.

Let $v$ be a Perron vector for $A$. By relabelling the rows and columns of $A$, we may assume without loss of generality that $01$. Thus we may rewrite $(3)$ and $(4)$ as \begin{align*} \rho(A)v_i &= v_{\sigma(i)}&\text{ if } i1$. So, inductively, we have $\sigma(i)=i+1$ for $i=n-1,\,n-2,\ldots$ down to $1$ and in turn, $\sigma(n)$ must be equal to $1$. In other words, \begin{align*} \rho(A)v_i &= v_{i+1}&\text{ if } i1$. Since $f_{j_0}(x)$ is increasing in $x$ but decreasing in $j_0$, the root of $f_{j_0}$ is unique and it is minimised when $j_0$ is minimised, i.e. when $j_0=2$.

So, we conclude that $\rho_n$ is the positive root of $g_n(x):=x^n-x-1=0$ on $x>1$. As $g_n(x)$ is increasing in both $x$ and $n$, we see that $\{\rho_n\}$ is a decreasing sequence. Hence $r_n=\rho_n$.

In short, for every $n\ge2$, the minimiser is permutationally similar to $$ A_n=\pmatrix{0&1\\ \vdots&&\ddots\\ \vdots&&&\ddots\\ 0&&&&1\\ 1&\color{red}{1}&0&\cdots&0}, $$ where $\rho(A_n)$ is the unique positive root of $x^n-x-1=0$ on $x>1$.

  • 0
    Really a fantastic answer.2017-02-23
3
import numpy as np
import itertools as it

# generate all binary words of length 9
allwords = list(it.product(*([(0,1)] * 9)))

# convert binary words to NumPy arrays
allarrays = map(np.asarray, allwords)

# convert 1D arrays to 2D arrays
allmatrices = []
for a in allarrays:
    allmatrices.append(a.reshape(3,3))

# compute spectral radii
results = []
for m in allmatrices:
    spectrum = np.linalg.eigvals(m)     # spectrum of matrix
    spectrad = max(abs(spectrum))       # spectral radius
    results.append((m, spectrad))

# filter pairs with spectral radius greater than 1
adresults = filter(lambda (m,s) : s>1.000001, results)

# print admissible results
print sorted(adresults, key=lambda t: t[1])

produces the following list:

[(array([[0, 1, 1],
   [0, 0, 1],
   [1, 0, 0]]), 1.3247179572447454), (array([[0, 1, 1],
   [1, 0, 0],
   [0, 1, 0]]), 1.3247179572447454), (array([[0, 0, 1],
   [1, 0, 1],
   [0, 1, 0]]), 1.3247179572447461), (array([[0, 1, 0],
   [0, 0, 1],
   [1, 1, 0]]), 1.3247179572447461), (array([[0, 0, 1],
   [1, 0, 0],
   [1, 1, 0]]), 1.3247179572447463), (array([[0, 1, 0],
   [1, 0, 1],
   [1, 0, 0]]), 1.3247179572447469), (array([[0, 0, 1],
   [0, 0, 1],
   [1, 1, 0]]), 1.4142135623730951), (array([[0, 1, 0],
   [1, 0, 1],
   [0, 1, 0]]), 1.4142135623730951), (array([[0, 1, 1],
   [1, 0, 0],
   [1, 0, 0]]), 1.4142135623730951), (array([[1, 0, 1],
   [1, 0, 0],
   [0, 1, 0]]), 1.4655712318767682), (array([[1, 1, 0],
   [0, 0, 1],
   [1, 0, 0]]), 1.4655712318767682), (array([[0, 0, 1],
   [1, 0, 0],
   [0, 1, 1]]), 1.4655712318767684), (array([[0, 0, 1],
   [1, 1, 0],
   [0, 1, 0]]), 1.4655712318767684), (array([[0, 1, 0],
   [0, 0, 1],
   [1, 0, 1]]), 1.4655712318767684), (array([[0, 1, 0],
   [0, 1, 1],
   [1, 0, 0]]), 1.4655712318767684), (array([[0, 1, 0],
   [1, 0, 1],
   [1, 1, 0]]), 1.6180339887498942), (array([[1, 0, 1],
   [1, 0, 1],
   [0, 1, 0]]), 1.6180339887498942), (array([[1, 1, 0],
   [0, 0, 1],
   [1, 1, 0]]), 1.6180339887498942), (array([[0, 0, 1],
   [1, 0, 1],
   [1, 1, 0]]), 1.6180339887498945), (array([[0, 0, 1],
   [1, 1, 0],
   [1, 1, 0]]), 1.6180339887498945), (array([[0, 1, 0],
   [1, 0, 1],
   [1, 0, 1]]), 1.6180339887498945), (array([[0, 1, 1],
   [0, 0, 1],
   [1, 1, 0]]), 1.6180339887498947), (array([[0, 1, 1],
   [1, 0, 1],
   [0, 1, 0]]), 1.6180339887498947), (array([[0, 0, 0],
   [0, 0, 1],
   [0, 1, 1]]), 1.6180339887498949), (array([[0, 0, 0],
   [0, 0, 1],
   [1, 1, 1]]), 1.6180339887498949), (array([[0, 0, 0],
   [0, 1, 1],
   [0, 1, 0]]), 1.6180339887498949), (array([[0, 0, 0],
   [0, 1, 1],
   [1, 1, 0]]), 1.6180339887498949), (array([[0, 0, 0],
   [1, 0, 1],
   [0, 1, 1]]), 1.6180339887498949), (array([[0, 0, 0],
   [1, 0, 1],
   [1, 1, 1]]), 1.6180339887498949), (array([[0, 0, 0],
   [1, 1, 1],
   [0, 1, 0]]), 1.6180339887498949), (array([[0, 0, 0],
   [1, 1, 1],
   [1, 1, 0]]), 1.6180339887498949), (array([[0, 0, 1],
   [0, 0, 0],
   [1, 0, 1]]), 1.6180339887498949), (array([[0, 0, 1],
   [0, 0, 0],
   [1, 1, 1]]), 1.6180339887498949), (array([[0, 0, 1],
   [0, 0, 1],
   [0, 1, 1]]), 1.6180339887498949), (array([[0, 0, 1],
   [0, 0, 1],
   [1, 0, 1]]), 1.6180339887498949), (array([[0, 0, 1],
   [0, 1, 0],
   [1, 0, 1]]), 1.6180339887498949), (array([[0, 0, 1],
   [0, 1, 0],
   [1, 1, 1]]), 1.6180339887498949), (array([[0, 0, 1],
   [0, 1, 1],
   [0, 1, 0]]), 1.6180339887498949), (array([[0, 0, 1],
   [0, 1, 1],
   [1, 0, 1]]), 1.6180339887498949), (array([[0, 0, 1],
   [1, 0, 0],
   [1, 0, 1]]), 1.6180339887498949), (array([[0, 0, 1],
   [1, 0, 1],
   [1, 0, 1]]), 1.6180339887498949), (array([[0, 0, 1],
   [1, 1, 0],
   [1, 0, 1]]), 1.6180339887498949), (array([[0, 0, 1],
   [1, 1, 1],
   [1, 0, 1]]), 1.6180339887498949), (array([[0, 1, 0],
   [0, 0, 1],
   [0, 1, 1]]), 1.6180339887498949), (array([[0, 1, 0],
   [0, 1, 1],
   [0, 1, 0]]), 1.6180339887498949), (array([[0, 1, 0],
   [1, 1, 0],
   [0, 0, 0]]), 1.6180339887498949), (array([[0, 1, 0],
   [1, 1, 0],
   [0, 0, 1]]), 1.6180339887498949), (array([[0, 1, 0],
   [1, 1, 0],
   [0, 1, 0]]), 1.6180339887498949), (array([[0, 1, 0],
   [1, 1, 0],
   [0, 1, 1]]), 1.6180339887498949), (array([[0, 1, 0],
   [1, 1, 0],
   [1, 0, 0]]), 1.6180339887498949), (array([[0, 1, 0],
   [1, 1, 0],
   [1, 0, 1]]), 1.6180339887498949), (array([[0, 1, 0],
   [1, 1, 0],
   [1, 1, 0]]), 1.6180339887498949), (array([[0, 1, 0],
   [1, 1, 0],
   [1, 1, 1]]), 1.6180339887498949), (array([[0, 1, 0],
   [1, 1, 1],
   [0, 0, 0]]), 1.6180339887498949), (array([[0, 1, 0],
   [1, 1, 1],
   [0, 0, 1]]), 1.6180339887498949), (array([[0, 1, 1],
   [0, 0, 0],
   [1, 0, 1]]), 1.6180339887498949), (array([[0, 1, 1],
   [0, 0, 0],
   [1, 1, 1]]), 1.6180339887498949), (array([[0, 1, 1],
   [0, 0, 1],
   [0, 1, 1]]), 1.6180339887498949), (array([[0, 1, 1],
   [0, 1, 0],
   [1, 0, 1]]), 1.6180339887498949), (array([[0, 1, 1],
   [0, 1, 0],
   [1, 1, 1]]), 1.6180339887498949), (array([[0, 1, 1],
   [0, 1, 1],
   [0, 1, 0]]), 1.6180339887498949), (array([[0, 1, 1],
   [1, 1, 0],
   [0, 0, 0]]), 1.6180339887498949), (array([[0, 1, 1],
   [1, 1, 0],
   [0, 0, 1]]), 1.6180339887498949), (array([[0, 1, 1],
   [1, 1, 1],
   [0, 0, 0]]), 1.6180339887498949), (array([[0, 1, 1],
   [1, 1, 1],
   [0, 0, 1]]), 1.6180339887498949), (array([[1, 0, 0],
   [0, 0, 1],
   [0, 1, 1]]), 1.6180339887498949), (array([[1, 0, 0],
   [0, 0, 1],
   [1, 1, 1]]), 1.6180339887498949), (array([[1, 0, 0],
   [0, 1, 1],
   [0, 1, 0]]), 1.6180339887498949), (array([[1, 0, 0],
   [0, 1, 1],
   [1, 1, 0]]), 1.6180339887498949), (array([[1, 0, 0],
   [1, 0, 1],
   [0, 1, 1]]), 1.6180339887498949), (array([[1, 0, 0],
   [1, 0, 1],
   [1, 1, 1]]), 1.6180339887498949), (array([[1, 0, 0],
   [1, 1, 1],
   [0, 1, 0]]), 1.6180339887498949), (array([[1, 0, 0],
   [1, 1, 1],
   [1, 1, 0]]), 1.6180339887498949), (array([[1, 0, 1],
   [0, 0, 0],
   [1, 0, 0]]), 1.6180339887498949), (array([[1, 0, 1],
   [0, 0, 0],
   [1, 1, 0]]), 1.6180339887498949), (array([[1, 0, 1],
   [0, 0, 1],
   [0, 1, 1]]), 1.6180339887498949), (array([[1, 0, 1],
   [0, 0, 1],
   [1, 0, 0]]), 1.6180339887498949), (array([[1, 0, 1],
   [0, 1, 0],
   [1, 0, 0]]), 1.6180339887498949), (array([[1, 0, 1],
   [0, 1, 0],
   [1, 1, 0]]), 1.6180339887498949), (array([[1, 0, 1],
   [0, 1, 1],
   [0, 1, 0]]), 1.6180339887498949), (array([[1, 0, 1],
   [0, 1, 1],
   [1, 0, 0]]), 1.6180339887498949), (array([[1, 0, 1],
   [1, 0, 0],
   [1, 0, 0]]), 1.6180339887498949), (array([[1, 0, 1],
   [1, 0, 1],
   [1, 0, 0]]), 1.6180339887498949), (array([[1, 0, 1],
   [1, 1, 0],
   [1, 0, 0]]), 1.6180339887498949), (array([[1, 0, 1],
   [1, 1, 1],
   [1, 0, 0]]), 1.6180339887498949), (array([[1, 1, 0],
   [0, 0, 1],
   [0, 1, 1]]), 1.6180339887498949), (array([[1, 1, 0],
   [0, 1, 1],
   [0, 1, 0]]), 1.6180339887498949), (array([[1, 1, 0],
   [1, 0, 0],
   [0, 0, 0]]), 1.6180339887498949), (array([[1, 1, 0],
   [1, 0, 0],
   [0, 0, 1]]), 1.6180339887498949), (array([[1, 1, 0],
   [1, 0, 0],
   [0, 1, 0]]), 1.6180339887498949), (array([[1, 1, 0],
   [1, 0, 0],
   [0, 1, 1]]), 1.6180339887498949), (array([[1, 1, 0],
   [1, 0, 0],
   [1, 0, 0]]), 1.6180339887498949), (array([[1, 1, 0],
   [1, 0, 0],
   [1, 0, 1]]), 1.6180339887498949), (array([[1, 1, 0],
   [1, 0, 0],
   [1, 1, 0]]), 1.6180339887498949), (array([[1, 1, 0],
   [1, 0, 0],
   [1, 1, 1]]), 1.6180339887498949), (array([[1, 1, 0],
   [1, 0, 1],
   [0, 0, 0]]), 1.6180339887498949), (array([[1, 1, 0],
   [1, 0, 1],
   [0, 0, 1]]), 1.6180339887498949), (array([[1, 1, 1],
   [0, 0, 0],
   [1, 0, 0]]), 1.6180339887498949), (array([[1, 1, 1],
   [0, 0, 0],
   [1, 1, 0]]), 1.6180339887498949), (array([[1, 1, 1],
   [0, 0, 1],
   [0, 1, 1]]), 1.6180339887498949), (array([[1, 1, 1],
   [0, 1, 0],
   [1, 0, 0]]), 1.6180339887498949), (array([[1, 1, 1],
   [0, 1, 0],
   [1, 1, 0]]), 1.6180339887498949), (array([[1, 1, 1],
   [0, 1, 1],
   [0, 1, 0]]), 1.6180339887498949), (array([[1, 1, 1],
   [1, 0, 0],
   [0, 0, 0]]), 1.6180339887498949), (array([[1, 1, 1],
   [1, 0, 0],
   [0, 0, 1]]), 1.6180339887498949), (array([[1, 1, 1],
   [1, 0, 1],
   [0, 0, 0]]), 1.6180339887498949), (array([[1, 1, 1],
   [1, 0, 1],
   [0, 0, 1]]), 1.6180339887498949), (array([[0, 1, 1],
   [0, 1, 1],
   [1, 0, 0]]), 1.6180339887498951), (array([[0, 1, 1],
   [1, 0, 0],
   [0, 1, 1]]), 1.6180339887498951), (array([[0, 1, 1],
   [1, 0, 0],
   [1, 1, 0]]), 1.6180339887498951), (array([[0, 1, 1],
   [1, 0, 1],
   [1, 0, 0]]), 1.6180339887498951), (array([[1, 0, 1],
   [1, 0, 0],
   [0, 1, 1]]), 1.7548776662466905), (array([[1, 1, 0],
   [0, 1, 1],
   [1, 0, 0]]), 1.7548776662466905), (array([[0, 0, 1],
   [1, 1, 0],
   [0, 1, 1]]), 1.7548776662466923), (array([[0, 1, 0],
   [0, 1, 1],
   [1, 0, 1]]), 1.7548776662466923), (array([[1, 0, 1],
   [1, 1, 0],
   [0, 1, 0]]), 1.7548776662466952), (array([[1, 1, 0],
   [0, 0, 1],
   [1, 0, 1]]), 1.7548776662466952), (array([[0, 0, 1],
   [0, 1, 1],
   [1, 1, 0]]), 1.8019377358048385), (array([[0, 1, 0],
   [1, 0, 1],
   [0, 1, 1]]), 1.8019377358048385), (array([[0, 1, 1],
   [1, 0, 0],
   [1, 0, 1]]), 1.8019377358048387), (array([[1, 0, 1],
   [0, 0, 1],
   [1, 1, 0]]), 1.8019377358048387), (array([[1, 1, 0],
   [1, 0, 1],
   [0, 1, 0]]), 1.8019377358048387), (array([[0, 1, 1],
   [1, 1, 0],
   [1, 0, 0]]), 1.8019377358048401), (array([[1, 0, 1],
   [1, 0, 0],
   [1, 1, 0]]), 1.8392867552141596), (array([[0, 1, 1],
   [0, 0, 1],
   [1, 0, 1]]), 1.8392867552141601), (array([[0, 1, 1],
   [1, 1, 0],
   [0, 1, 0]]), 1.8392867552141601), (array([[0, 0, 1],
   [1, 1, 1],
   [0, 1, 0]]), 1.839286755214161), (array([[0, 1, 0],
   [0, 0, 1],
   [1, 1, 1]]), 1.839286755214161), (array([[1, 1, 0],
   [1, 0, 1],
   [1, 0, 0]]), 1.839286755214161), (array([[1, 1, 1],
   [0, 0, 1],
   [1, 0, 0]]), 1.839286755214161), (array([[1, 1, 1],
   [1, 0, 0],
   [0, 1, 0]]), 1.839286755214161), (array([[0, 0, 1],
   [1, 0, 1],
   [0, 1, 1]]), 1.8392867552141612), (array([[0, 1, 0],
   [0, 1, 1],
   [1, 1, 0]]), 1.8392867552141612), (array([[0, 0, 1],
   [1, 0, 0],
   [1, 1, 1]]), 1.8392867552141614), (array([[0, 1, 0],
   [1, 1, 1],
   [1, 0, 0]]), 1.8392867552141614), (array([[0, 1, 1],
   [1, 1, 1],
   [1, 0, 0]]), 1.9999999999999982), (array([[0, 0, 1],
   [1, 1, 0],
   [1, 1, 1]]), 1.9999999999999987), (array([[0, 1, 1],
   [0, 1, 1],
   [1, 0, 1]]), 1.9999999999999993), (array([[0, 1, 1],
   [1, 1, 0],
   [0, 1, 1]]), 1.9999999999999993), (array([[1, 1, 0],
   [1, 0, 1],
   [1, 1, 0]]), 1.9999999999999993), (array([[1, 1, 1],
   [0, 0, 1],
   [1, 1, 0]]), 1.9999999999999993), (array([[1, 1, 1],
   [1, 0, 1],
   [0, 1, 0]]), 1.9999999999999993), (array([[0, 1, 0],
   [1, 1, 1],
   [1, 0, 1]]), 1.9999999999999996), (array([[0, 1, 1],
   [1, 0, 1],
   [1, 1, 0]]), 1.9999999999999996), (array([[0, 1, 1],
   [1, 1, 0],
   [1, 1, 0]]), 1.9999999999999996), (array([[1, 0, 1],
   [1, 0, 1],
   [1, 1, 0]]), 1.9999999999999996), (array([[1, 0, 1],
   [1, 1, 0],
   [1, 1, 0]]), 1.9999999999999996), (array([[1, 0, 1],
   [1, 1, 1],
   [0, 1, 0]]), 1.9999999999999996), (array([[1, 1, 0],
   [0, 0, 1],
   [1, 1, 1]]), 1.9999999999999996), (array([[1, 1, 0],
   [1, 0, 1],
   [1, 0, 1]]), 1.9999999999999996), (array([[0, 0, 1],
   [0, 0, 1],
   [1, 1, 1]]), 1.9999999999999998), (array([[0, 1, 0],
   [1, 1, 1],
   [0, 1, 0]]), 1.9999999999999998), (array([[0, 1, 1],
   [1, 0, 1],
   [1, 0, 1]]), 1.9999999999999998), (array([[0, 1, 1],
   [1, 1, 0],
   [1, 0, 1]]), 1.9999999999999998), (array([[0, 0, 0],
   [0, 1, 1],
   [0, 1, 1]]), 2.0), (array([[0, 0, 0],
   [0, 1, 1],
   [1, 1, 1]]), 2.0), (array([[0, 0, 0],
   [1, 1, 1],
   [0, 1, 1]]), 2.0), (array([[0, 0, 0],
   [1, 1, 1],
   [1, 1, 1]]), 2.0), (array([[0, 0, 1],
   [0, 1, 1],
   [0, 1, 1]]), 2.0), (array([[0, 1, 0],
   [0, 1, 1],
   [0, 1, 1]]), 2.0), (array([[0, 1, 1],
   [0, 1, 1],
   [0, 1, 1]]), 2.0), (array([[0, 1, 1],
   [0, 1, 1],
   [1, 1, 0]]), 2.0), (array([[0, 1, 1],
   [1, 0, 0],
   [1, 1, 1]]), 2.0), (array([[0, 1, 1],
   [1, 0, 1],
   [0, 1, 1]]), 2.0), (array([[1, 0, 0],
   [0, 1, 1],
   [0, 1, 1]]), 2.0), (array([[1, 0, 0],
   [0, 1, 1],
   [1, 1, 1]]), 2.0), (array([[1, 0, 0],
   [1, 1, 1],
   [0, 1, 1]]), 2.0), (array([[1, 0, 0],
   [1, 1, 1],
   [1, 1, 1]]), 2.0), (array([[1, 0, 1],
   [0, 0, 0],
   [1, 0, 1]]), 2.0), (array([[1, 0, 1],
   [0, 0, 0],
   [1, 1, 1]]), 2.0), (array([[1, 0, 1],
   [0, 0, 1],
   [1, 0, 1]]), 2.0), (array([[1, 0, 1],
   [0, 1, 0],
   [1, 0, 1]]), 2.0), (array([[1, 0, 1],
   [0, 1, 0],
   [1, 1, 1]]), 2.0), (array([[1, 0, 1],
   [0, 1, 1],
   [0, 1, 1]]), 2.0), (array([[1, 0, 1],
   [0, 1, 1],
   [1, 0, 1]]), 2.0), (array([[1, 0, 1],
   [0, 1, 1],
   [1, 1, 0]]), 2.0), (array([[1, 0, 1],
   [1, 0, 0],
   [1, 0, 1]]), 2.0), (array([[1, 0, 1],
   [1, 0, 1],
   [0, 1, 1]]), 2.0), (array([[1, 0, 1],
   [1, 0, 1],
   [1, 0, 1]]), 2.0), (array([[1, 0, 1],
   [1, 1, 0],
   [1, 0, 1]]), 2.0), (array([[1, 0, 1],
   [1, 1, 1],
   [1, 0, 1]]), 2.0), (array([[1, 1, 0],
   [0, 1, 1],
   [0, 1, 1]]), 2.0), (array([[1, 1, 0],
   [0, 1, 1],
   [1, 1, 0]]), 2.0), (array([[1, 1, 0],
   [1, 0, 1],
   [0, 1, 1]]), 2.0), (array([[1, 1, 0],
   [1, 1, 0],
   [0, 0, 0]]), 2.0), (array([[1, 1, 0],
   [1, 1, 0],
   [0, 0, 1]]), 2.0), (array([[1, 1, 0],
   [1, 1, 0],
   [0, 1, 0]]), 2.0), (array([[1, 1, 0],
   [1, 1, 0],
   [0, 1, 1]]), 2.0), (array([[1, 1, 0],
   [1, 1, 0],
   [1, 0, 0]]), 2.0), (array([[1, 1, 0],
   [1, 1, 0],
   [1, 0, 1]]), 2.0), (array([[1, 1, 0],
   [1, 1, 0],
   [1, 1, 0]]), 2.0), (array([[1, 1, 0],
   [1, 1, 0],
   [1, 1, 1]]), 2.0), (array([[1, 1, 0],
   [1, 1, 1],
   [0, 0, 0]]), 2.0), (array([[1, 1, 0],
   [1, 1, 1],
   [0, 0, 1]]), 2.0), (array([[1, 1, 1],
   [0, 0, 0],
   [1, 0, 1]]), 2.0), (array([[1, 1, 1],
   [0, 0, 0],
   [1, 1, 1]]), 2.0), (array([[1, 1, 1],
   [0, 1, 0],
   [1, 0, 1]]), 2.0), (array([[1, 1, 1],
   [0, 1, 0],
   [1, 1, 1]]), 2.0), (array([[1, 1, 1],
   [0, 1, 1],
   [0, 1, 1]]), 2.0), (array([[1, 1, 1],
   [1, 0, 0],
   [1, 0, 0]]), 2.0), (array([[1, 1, 1],
   [1, 1, 0],
   [0, 0, 0]]), 2.0), (array([[1, 1, 1],
   [1, 1, 0],
   [0, 0, 1]]), 2.0), (array([[1, 1, 1],
   [1, 1, 1],
   [0, 0, 0]]), 2.0), (array([[1, 1, 1],
   [1, 1, 1],
   [0, 0, 1]]), 2.0), (array([[0, 0, 1],
   [1, 1, 1],
   [1, 1, 0]]), 2.0000000000000004), (array([[1, 0, 1],
   [1, 1, 0],
   [0, 1, 1]]), 2.0000000000000004), (array([[1, 1, 0],
   [0, 1, 1],
   [1, 0, 1]]), 2.0000000000000004), (array([[1, 1, 1],
   [0, 1, 1],
   [1, 0, 0]]), 2.0000000000000009), (array([[1, 1, 1],
   [1, 0, 0],
   [0, 1, 1]]), 2.0000000000000009), (array([[0, 1, 0],
   [1, 0, 1],
   [1, 1, 1]]), 2.0000000000000013), (array([[0, 1, 1],
   [0, 0, 1],
   [1, 1, 1]]), 2.1478990357047865), (array([[0, 1, 1],
   [1, 1, 1],
   [0, 1, 0]]), 2.1478990357047865), (array([[1, 1, 1],
   [1, 0, 1],
   [1, 0, 0]]), 2.1478990357047869), (array([[1, 1, 1],
   [1, 0, 0],
   [1, 1, 0]]), 2.1478990357047874), (array([[0, 1, 0],
   [1, 1, 1],
   [1, 1, 0]]), 2.1478990357047882), (array([[0, 0, 1],
   [1, 0, 1],
   [1, 1, 1]]), 2.1478990357047891), (array([[1, 0, 1],
   [1, 0, 0],
   [1, 1, 1]]), 2.2055694304005882), (array([[1, 1, 0],
   [1, 1, 1],
   [1, 0, 0]]), 2.2055694304005882), (array([[1, 1, 1],
   [0, 0, 1],
   [1, 0, 1]]), 2.2055694304005886), (array([[1, 1, 1],
   [1, 1, 0],
   [0, 1, 0]]), 2.2055694304005886), (array([[0, 0, 1],
   [1, 1, 1],
   [0, 1, 1]]), 2.2055694304005904), (array([[0, 1, 0],
   [0, 1, 1],
   [1, 1, 1]]), 2.2055694304005904), (array([[1, 1, 1],
   [0, 1, 1],
   [1, 1, 0]]), 2.2469796037174663), (array([[1, 1, 1],
   [1, 0, 0],
   [1, 0, 1]]), 2.2469796037174663), (array([[1, 1, 1],
   [1, 0, 1],
   [0, 1, 1]]), 2.2469796037174663), (array([[0, 0, 1],
   [0, 1, 1],
   [1, 1, 1]]), 2.2469796037174667), (array([[0, 1, 0],
   [1, 1, 1],
   [0, 1, 1]]), 2.2469796037174667), (array([[1, 0, 1],
   [0, 0, 1],
   [1, 1, 1]]), 2.2469796037174667), (array([[1, 0, 1],
   [1, 1, 1],
   [1, 1, 0]]), 2.2469796037174667), (array([[1, 1, 0],
   [1, 0, 1],
   [1, 1, 1]]), 2.2469796037174667), (array([[1, 1, 0],
   [1, 1, 1],
   [0, 1, 0]]), 2.2469796037174667), (array([[0, 1, 1],
   [1, 1, 0],
   [1, 1, 1]]), 2.2469796037174672), (array([[0, 1, 1],
   [1, 1, 1],
   [1, 0, 1]]), 2.2469796037174676), (array([[1, 1, 1],
   [1, 1, 0],
   [1, 0, 0]]), 2.2469796037174676), (array([[1, 0, 1],
   [1, 1, 0],
   [1, 1, 1]]), 2.3247179572447445), (array([[1, 1, 0],
   [1, 1, 1],
   [1, 0, 1]]), 2.3247179572447445), (array([[1, 1, 1],
   [0, 1, 1],
   [1, 0, 1]]), 2.3247179572447454), (array([[1, 1, 1],
   [1, 1, 0],
   [0, 1, 1]]), 2.3247179572447454), (array([[1, 0, 1],
   [1, 1, 1],
   [0, 1, 1]]), 2.3247179572447458), (array([[1, 1, 0],
   [0, 1, 1],
   [1, 1, 1]]), 2.3247179572447458), (array([[0, 1, 1],
   [1, 1, 1],
   [1, 1, 0]]), 2.4142135623730931), (array([[1, 1, 0],
   [1, 1, 1],
   [1, 1, 0]]), 2.4142135623730931), (array([[0, 1, 1],
   [1, 0, 1],
   [1, 1, 1]]), 2.4142135623730936), (array([[0, 1, 1],
   [0, 1, 1],
   [1, 1, 1]]), 2.414213562373094), (array([[0, 1, 1],
   [1, 1, 1],
   [0, 1, 1]]), 2.414213562373094), (array([[0, 0, 1],
   [1, 1, 1],
   [1, 1, 1]]), 2.4142135623730945), (array([[0, 1, 0],
   [1, 1, 1],
   [1, 1, 1]]), 2.4142135623730945), (array([[1, 0, 1],
   [0, 1, 1],
   [1, 1, 1]]), 2.4142135623730945), (array([[1, 1, 0],
   [1, 1, 1],
   [0, 1, 1]]), 2.4142135623730945), (array([[1, 1, 1],
   [1, 0, 1],
   [1, 0, 1]]), 2.4142135623730949), (array([[1, 1, 1],
   [1, 0, 1],
   [1, 1, 0]]), 2.4142135623730949), (array([[1, 1, 1],
   [1, 1, 0],
   [1, 0, 1]]), 2.4142135623730949), (array([[1, 1, 1],
   [1, 1, 0],
   [1, 1, 0]]), 2.4142135623730949), (array([[1, 1, 1],
   [1, 1, 1],
   [1, 0, 0]]), 2.4142135623730949), (array([[1, 1, 1],
   [0, 0, 1],
   [1, 1, 1]]), 2.4142135623730954), (array([[1, 1, 1],
   [1, 0, 0],
   [1, 1, 1]]), 2.4142135623730954), (array([[1, 1, 1],
   [1, 1, 1],
   [0, 1, 0]]), 2.4142135623730954), (array([[1, 0, 1],
   [1, 0, 1],
   [1, 1, 1]]), 2.4142135623730958), (array([[1, 0, 1],
   [1, 1, 1],
   [1, 1, 1]]), 2.6180339887498945), (array([[1, 1, 0],
   [1, 1, 1],
   [1, 1, 1]]), 2.6180339887498945), (array([[1, 1, 1],
   [0, 1, 1],
   [1, 1, 1]]), 2.6180339887498953), (array([[1, 1, 1],
   [1, 1, 1],
   [0, 1, 1]]), 2.6180339887498953), (array([[1, 1, 1],
   [1, 1, 0],
   [1, 1, 1]]), 2.6180339887498962), (array([[1, 1, 1],
   [1, 1, 1],
   [1, 0, 1]]), 2.6180339887498962), (array([[0, 1, 1],
   [1, 1, 1],
   [1, 1, 1]]), 2.7320508075688772), (array([[1, 1, 1],
   [1, 1, 1],
   [1, 1, 0]]), 2.7320508075688772), (array([[1, 1, 1],
   [1, 0, 1],
   [1, 1, 1]]), 2.7320508075688776), (array([[1, 1, 1],
   [1, 1, 1],
   [1, 1, 1]]), 3.0)] 

Thus, the minimal admissible spectral radius is

$$\bar{\rho} \approx \color{blue}{1.324718}$$

and $3! = 6$ matrices have this spectral radius, namely,

$$\begin{bmatrix} 0 & 1 & 1\\ 0 & 0 & 1\\ 1 & 0 & 0\end{bmatrix} \qquad\qquad\qquad \begin{bmatrix} 0 & 1 & 1\\ 1 & 0 & 0\\ 0 & 1 & 0\end{bmatrix}$$

$$\begin{bmatrix} 0 & 0 & 1\\ 1 & 0 & 1\\ 0 & 1 & 0\end{bmatrix} \qquad\qquad\qquad \begin{bmatrix} 0 & 0 & 1\\ 1 & 0 & 0\\ 1 & 1 & 0\end{bmatrix}$$

$$\begin{bmatrix} 0 & 1 & 0\\ 0 & 0 & 1\\ 1 & 1 & 0\end{bmatrix} \qquad\qquad\qquad \begin{bmatrix} 0 & 1 & 0\\ 1 & 0 & 1\\ 1 & 0 & 0\end{bmatrix}$$