def METHOD_NAME(self):
    """
    Creates the terms and weights for the Minimum Vertex Cover problem
    Returns
    -------
    terms_weights: tuple(list[list],list[float])
        Tuple containing list of terms and list of weights.
    """
    # Number of nodes
    n_nodes = self.G.number_of_nodes()
    # Number of edges
    edges = list(self.G.edges())
    # Connectivity of each node
    node_repetition = [e for edge in edges for e in edge]
    connectivity = dict(Counter(node_repetition))
    # Quadratic interation from penalty term
    quadratic_interaction = [(list(e), self.penalty / 4) for e in edges]
    # Linear terms from the artificial field
    linear_interaction = [
        ([i], -self.field / 2 + connectivity[i] * self.penalty / 4)
        if connectivity.get(i) is not None
        else ([i], -self.field / 2)
        for i in range(n_nodes)
    ]
    # Constant term
    constant_term = [([], n_nodes * self.field / 2 + len(edges) * self.penalty / 4)]
    # Generate tuple containing a list with the terms and a list with the weights
    terms_weights = tuple(
        zip(*(quadratic_interaction + linear_interaction + constant_term))
    )
    # Unzip to retrieve terms and weights in separate sequences
    return terms_weights