<｜begin▁of▁sentence｜>### Instruction:
Imagine you're working on creating a visual aid for a group therapy session at a substance abuse rehabilitation center. The goal is to demonstrate how different elements within a recovery support network can influence one another in a linear fashion, similar to a chain reaction, where one positive action leads to another. For this purpose, you're designing a graph with 4 key stages represented as nodes. 

Could you envision how we might lay out the sequential interactions of these stages in a way that could minimize backtracking for someone following the path of the graph? This would involve rearranging the stages into a sequence that's more streamlined. 

Additionally, to aid in visualizing these connections and better plan out the session, could you construct a matrix that shows us which stages directly interact with others? We're looking for an arrangement where the adjacency matrix has a specific bandwidth, with non-zero elements clustered around the diagonal, making it easier for the participants to grasp the connections among the stages. 

This exercise parallels the Cuthill-McKee algorithm's reordering in network analysis, and the concept might lend itself well to materializing a more efficient path to recovery on our visual aid.
### Response:
import networkx as nx
from networkx.utils import cuthill_mckee_ordering

# Create a graph
G = nx.path_graph(4)

# Apply the Cuthill-McKee ordering
rcm = list(cuthill_mckee_ordering(G))

# Create the adjacency matrix using the RCM ordering
A = nx.adjacency_matrix(G, nodelist=rcm)

print('Cuthill-McKee ordering:', rcm)
print('Adjacency matrix:\n', A.todense())
<|EOT|>
