# Number of variables
n_vars = len(f_obj)
# Define variables, all binary
model.x = pyo.Var(range(n_vars), domain=pyo.Binary)
# Objective function
model.objective = pyo.Objective(expr=sum(f_obj[i] * model.x[i] for i in range(n_vars)), sense=pyo.minimize)
# Adding inequality constraints
model.ineq_constraints = pyo.ConstraintList()
for i in range(len(Aineq)):
model.ineq_constraints.add(sum(Aineq[i][j] * model.x[j] for j in range(n_vars)) <= bineq[i])
# Adding equality constraints
model.eq_constraints = pyo.ConstraintList()
for i in range(len(Aeq)):
model.eq_constraints.add(sum(Aeq[i][j] * model.x[j] for j in range(n_vars)) == beq[i])