input: from typing import List
  
  
  def solve_linear_programming_with_simplex(decision_vars: List[float], objective_func: List[float], constraints: List[List[float]], constraint_rhs: List[float]) -> List[float]:
      """ Solve a linear programming problem using the Simplex Method.
      The function takes the decision variables, objective function coefficients, 
      constraints (as a list of lists of coefficients), and the right-hand side 
      values of the constraints. It returns the optimal values of the decision variables.
      
      Example:
      For the problem:
      Maximize:   z = 3x1 + 2x2
      Subject to: 2x1 + x2 <= 18
                  2x1 + 3x2 <= 42
                  3x1 + x2 <= 24
                  x1, x2 >= 0
      
      Decision variables: [x1, x2]
      Objective function coefficients: [3, 2]
      Constraints: [[2, 1], [2, 3], [3, 1]]
      Constraint right-hand side: [18, 42, 24]
      
      The function will return: [3.0, 12.0]
      """
output:     from scipy.optimize import linprog
  
      # Convert maximization problem to minimization
      objective_func = [-x for x in objective_func]
  
      # Solve the linear programming problem using the Simplex Method
      result = linprog(objective_func, A_ub=constraints, b_ub=constraint_rhs, bounds=(0, None))
  
      # Extract the optimal values of the decision variables
      optimal_values = result.x
  
      return optimal_values