def METHOD_NAME(self):
    """
    A method that converts the matrix notation of LP model to format used by PULP
    library and solves it.
    returns:
    object representation of resulting composition
    """
    if sum(self.b) == 0:
        return CorpusComposition(None, [], 0, [], [], 0)
    x_min = 0
    x_max = 1
    num_conditions = len(self.b)
    x = pulp.LpVariable.dicts('x', list(range(self.num_texts)), x_min, x_max)
    lp_prob = pulp.LpProblem('Minmax Problem', pulp.LpMaximize)
    lp_prob += pulp.lpSum(x), 'Minimize_the_maximum'
    for i in range(num_conditions):
        label = 'Max_constraint_%d' % i
        condition = pulp.lpSum([self.A[i][j] * x[j]
                                for j in range(self.num_texts)]) <= self.b[i]
        lp_prob += condition, label
    stat = lp_prob.METHOD_NAME()
    variables = [0] * self.num_texts
    # transform Pulp's variables (x_[number]) back to
    # the indices we need
    for v in lp_prob.variables():
        if v.name == '__dummy':
            continue
        i = int(v.name[2:len(v.name)])
        variables[i] = np.round(v.varValue, decimals=0)
    category_sizes = []
    for c in range(0, self.c_tree.num_categories - 1):
        cat_size = self._get_category_size(variables, c)
        category_sizes.append(cat_size)
    size_assembled = self._get_assembled_size(variables)
    return CorpusComposition(
        status=pulp.LpStatus[stat], variables=variables, size_assembled=size_assembled,
        category_sizes=category_sizes, used_bounds=self.b, num_texts=sum(variables))