Could we add fictitious games by adding a matrix with 1’s in all entries aside from the diagonal? We can show that the associated graph for the first matrix is reducible.
import numpy as np
from scipy.linalg import eig
from sympy import *
A=np.array([[0,2,2,2],[0,0,1,1],[0,1,0,0],[0,1,2,0]])
a=Matrix(A)
print(a.rref())
vals, vec = eig(A)
vec = abs(vec[:,0])
ranking = np.argsort(vec).tolist()
ranking.reverse()
ranking
This prints the upper triangular matrix for the first graph. As you can see it is reducible.
(Matrix([
[0, 1.0, 0, 0],
[0, 0, 1.0, 0],
[0, 0, 0, 1.0],
[0, 0, 0, 0]]), [1, 2, 3])
[0, 3, 2, 1]
Here is the eigen-ranking for the first graph. The records for each team are 0(6-0),1(2-4),2(1-5),3(3-3) so we would expect the teams to be ranked 0,3,1,2. So from the first matrix we don’t get the desired ranking.
C=np.array([[0,3,3,3],[1,0,2,2],[1,3,0,1],[1,2,3,0]])
c=Matrix(C)
print(c.rref())
vals, vec = eig(C)
vec = abs(vec[:,0])
ranking = np.argsort(vec).tolist()
ranking.reverse()
ranking
(Matrix([
[1.0, 0, 0, 0],
[ 0, 1.0, 0, 0],
[ 0, 0, 1.0, 0],
[ 0, 0, 0, 1.0]]), [0, 1, 2, 3])
[0, 3, 1, 2]
If we add 1 to each non-diagonal entry and compute the ranking we get the desired ranking and the matrix is shown to be irreducible so that it is strongly connected.