1:

Input: G = (V, E), N (number of controllers), Constraints (e.g., capacity of links)

2:

M i n C o s t

3:

For each solution k in the set of possible solutions Do

4:

Assign the set of controllers in k to network devices

5:

C o s t k = C o s t F u n c ( G , k )

6:

If ( C o s t k < M i n C o s t ) and (Constraint Check) Then

7:

M i n C o s t = C o s t k

8:

End If

9:

End For

10:

Return N Controller Placements, Controller Assignments, MinCost