<｜begin▁of▁sentence｜>### Instruction:
As a network analyst, I will analyze a graph that represents a social network, where each node corresponds to a person and each edge represents a relationship between individuals. In this scenario, a self-loop represents a person's relationship with themselves.

The graph has the following relationships: person 0 is connected to person 1, person 1 is connected to person 2, person 2 is connected to person 3, person 3 is connected to person 0, and person 1 has a self-loop.

Using the NetworkX Python library, I will generate the adjacency matrix of the graph, accounting for both the upper and lower parts of the matrix, and counting each loop edge once.
### Response:
import igraph as ig

# Create a graph
g = ig.Graph(edges=[(0, 1), (1, 2), (2, 3), (3, 0), (1, 1)])

# Get the adjacency matrix of the graph
type = 'both'  # You can also use 'lower', 'upper'
loops = 'once'  # You can also use False, 'ignore', 'twice'
adjacency_matrix = g.get_adjacency(type=type, loops=loops)

# Print the adjacency matrix
print(adjacency_matrix)
<|EOT|>
