Two-Way Partitioning(Fiduccia & Mattheyses)
Compute the initial gains of all unlocked cells:
foreach(free cell i) {
g(i) = 0;
F = the “from” partition of cell i;
T = the “to” partition of cell i;
foreach(net n on cell i) {
if(F(n) = 1) g(i)++;
if(T(n) = 1) g(i)++;
}
}
Requires O(P) work to intialize
- net is critical before the move iff F(n)=1 or T(n)=0 or T(n) =1
- net is critical after the move if T(n)=1 or F(n)=0 or F(n)=1