input: 
  def solve_linear_programming_with_simplex(decision_vars, obj_function, constraints):
      """
      Solve a linear programming problem using the Simplex Method in Python. This function
      takes the decision variables, objective function, and constraints as inputs, and
      converts the problem into standard form by introducing slack variables if needed.
      It then creates a tableau containing the coefficients of the decision variables and
      the right-hand sides of the constraints, and iteratively applies the Simplex algorithm
      to move from a vertex to the next until an optimum solution is reached.
  
      Example:
      decision_vars = ['x1', 'x2']
      obj_function = {'x1': 3, 'x2': 4}
      constraints = [{'x1': 1, 'x2': 2, 'rhs': 10}, {'x1': 3, 'x2': 1, 'rhs': 15}]
      solve_linear_programming_with_simplex(decision_vars, obj_function, constraints) == 20.0
      """
  
output:     import numpy as np
      from scipy.optimize import linprog
  
      # Convert objective function to a list of coefficients
      c = [-obj_function[var] for var in decision_vars]
  
      # Convert constraints to A_ub and b_ub
      A_ub = []
      b_ub = []
      for constraint in constraints:
          row = [constraint.get(var, 0) for var in decision_vars]
          A_ub.append(row)
          b_ub.append(constraint['rhs'])
  
      # Solve the linear programming problem using the Simplex method
      result = linprog(c, A_ub=A_ub, b_ub=b_ub, method='simplex')
  
      # Return the optimal value (negate it since we used maximization form)
      return -result.fun