<｜begin▁of▁sentence｜>### Instruction:
As a Project Manager overseeing a data analytics project for a retail company, you've been tasked with optimizing product recommendations to increase sales. You've gathered data on customer purchases and product categories. Your team has constructed a bipartite graph representing customer-product interactions, with customers represented by vertices labeled "0" and products by vertices labeled "1". The edge set [(0, 1), (0, 2), (1, 3), (2, 3)] denotes connections between customers and products based on their previous purchases.

To enhance recommendation accuracy, you consider using the `maximum_bipartite_matching` function from the networkx library. This function can identify the maximum matching in the bipartite graph, helping you pinpoint the most relevant products for each customer. By leveraging this tool, you aim to optimize product suggestions and ultimately boost sales performance.
### Response:
from igraph import Graph

# Define bipartite graph with edge list and type list
edges = [(0, 1), (0, 2), (1, 3), (2, 3)]
types = [0, 0, 1, 1]  # 0s are one set, 1s are the other set
g = Graph(edges)

# Run maximum_bipartite_matching
matching = g.maximum_bipartite_matching(types=types)
print(f'Matching: {matching}')
print(f'Matched edges: {matching.edges()}')
<|EOT|>
