estimation of distribution algorithm
t := 0
initialize model M(0) to represent uniform distribution over admissible solutions
while (termination criteria not met) do
P := generate N>0 candidate solutions by sampling M(t)
F := evaluate all candidate solutions in P
M(t + 1) := adjust_model(P, F, M(t))
t := t + 1