input: Write a function to solve a linear programming problem using the Simplex method in Python. The function should take the decision variables, objective function, and constraints as inputs, and return the optimal solution.
  
  assert solve_linear_programming({"x1": 3, "x2": 4}, {"x1": 2, "x2": 1, "const": 10}, [{"x1": 1, "x2": 2, "const": 10}, {"x1": 1, "x2": -1, "const": 0}])=={'x1': 2.0, 'x2': 4.0}
  assert solve_linear_programming({"x1": 1, "x2": 1}, {"x1": 3, "x2": 2, "const": 12}, [{"x1": 1, "x2": 1, "const": 5}, {"x1": 2, "x2": 1, "const": 10}])=={'x1': 2.0, 'x2': 3.0}
  assert solve_linear_programming({"x1": 2, "x2": 3}, {"x1": 1, "x2": 1, "const": 10}, [{"x1": 1, "x2": 2, "const": 8}, {"x1": 2, "x2": 1, "const": 10}])=={'x1': 0.0, 'x2': 4.0}
output: def solve_linear_programming(decision_vars, objective, constraints):
      from scipy.optimize import linprog
      c = [-objective[var] for var in decision_vars]
      A = [[constraint[var] for var in decision_vars] for constraint in constraints]
      b = [constraint["const"] for constraint in constraints]
      res = linprog(c, A_ub=A, b_ub=b, bounds=[(0, None) for _ in decision_vars])
      return {var: res.x[i] for i, var in enumerate(decision_vars)}