fun: function handle (y = fun(x), x is column vector)
np: number of particles
lb, ub: lb<x<ub
xMin: yMin = fun(xMin)
yMin: minimum value of the cost function fun
pso finds the global minimum for a constraint function (convex or non-con) with multiple variables.
The pso algorithm I posted does not deal with the integer programming issue as you mention.
But there should be two way to solve your problem.
1, Your problem have 5 variable restrict in integer domain. You can try all the combination of the 5 variable and use pso to solve the continuous optimization problem for the rest 9 variables. Then choose the smallest one from the 5 variables.
2, Try to relax your integer programming issue to a continuous programming issue.