input: def solve_linear_programming_problem(objective_function: List[float], constraints: List[List[float]]) -> Tuple[float, List[float]]:
      """Solve a linear programming problem using the Simplex Method. This method finds 
      the maximum or minimum value of a linear function subject to a set of constraints. 
      The approach involves setting up a tableau and iteratively moving from one vertex 
      of the polytope defined by the constraints to another until an optimal solution 
      is found.
      >>> solve_linear_programming_problem([3, 2], [[1, 0, 4], [0, 1, 3]])
      (12, [4, 3])
      >>> solve_linear_programming_problem([2, 3], [[1, 2, 8], [2, 1, 10]])
      (16, [4, 2])
      """
output:     from scipy.optimize import linprog
  
      # Convert the objective function to a minimization problem
      c = [-x for x in objective_function]
  
      # Extract the coefficients and constants from the constraints
      A = [constraint[:-1] for constraint in constraints]
      b = [constraint[-1] for constraint in constraints]
  
      # Solve the linear programming problem
      result = linprog(c, A_ub=A, b_ub=b, method='simplex')
  
      # Return the optimal value and the optimal solution
      return -result.fun, result.x.tolist()