def __multiply_final_factors(self):

        if len(self.relevant_factors) > 1:
            elimination_variable = self.relevant_factors[0].query_variable()
            sumout.sum_out(elimination_variable, self.relevant_factors, self.mode, self.eliminated_factors, self.query.query_variable)

        elif self.mode == "verbose":
            print('No es necesario multiplicar.\n')
    def __sum_out_hidden_variables(self):

        # Obtener las variables ocultas.
        hidden_vars = sumout.get_hidden_variables(self.relevant_factors, self.query.query_variable)

        if hidden_vars:

            # Repetir el proceso mientras queden variables por eliminar.
            while(hidden_vars):

                # Obtener la siguiente variable a eliminar segun la heuristica.
                elimination_variable = heuristics.get_elimination_variable(hidden_vars, self.relevant_factors, self.heuristic)

                # Eliminar la variable.
                sumout.sum_out(elimination_variable, self.relevant_factors, self.mode, self.eliminated_factors, self.query.query_variable)

                # Quitar la variable de las variables ocultas una vez eliminada.
                hidden_vars.remove(elimination_variable)

        elif self.mode == "verbose":
            print('No hay variables ocultas.\n')