C = {c0, c1, …, cn‾1}, F ={f0, f1, …, fn‾1}

// ci = (price vector of nodes v Î V)

// fj = (profit vector of nodes v Î V), |ci| = |fi| = |V| = N

1) create initial population with |C| = n;

2) for (i = 0; i < n; i++) begin// initial phase

3) calculate profit vector fi Î F of ci Î C;

4) end for

5) while (# of generation < G) begin// main phase

6) non-dominated sorting in C;

7) select ci and cj using tournament selection;

8) arithmetic (average) crossover from ci, cj to p;

9) mutate p to pt;

10) find the lowest non-dominated rank solution ck from C;

11) C = C∪{pt} ‾{ck};

12) end while