fiduccia mattheyses

22
FIDUCCIA MATTHEYSES

Upload: tanvi-prabhu-dessai

Post on 13-Apr-2017

98 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Fiduccia mattheyses

FIDUCCIA MATTHEYSES

Page 2: Fiduccia mattheyses

FIDUCCIA MATTHEYSES

• Starts with possibly some random solution and changes the solution by sequence of moves. At the beginning of pass all vertices are free to move (unlocked) and each possible move is labeled with immediate changes in total cost called gain. Iteratively a move with highest gain is selected and locked.

• Selection of best gain and update are repeated until all nodes are locked.

•This method had three operations, first computation of initial gain value, second retrieval of best gain, and third update of all affected gain values.

Page 3: Fiduccia mattheyses

FEATURES

• Aims at reducing the net-cut cost.

• Works well with weighted graphs.

• Only a single vertex is moved across the cut each time.

• Can handle unbalanced partitions .

• A special data structure is used to select vertices to be moved across.

Page 4: Fiduccia mattheyses

STEPS…

• Compute gains of all cells, Gi = FS(i) – TE(i).

• Select base cell.

• Lock base cell.

• Check for more free cells.

• Choose for best sequence of moves for k-base cells.

• Make k-moves permanent and free all cells.

Page 5: Fiduccia mattheyses

SOLVED EXAMPLE Random initial partition

Page 6: Fiduccia mattheyses

Gain(c)=FS(c)-TS(C)=1

Page 7: Fiduccia mattheyses

c is contained in net n1, n2 and n3. n3 contains cell c as its only cell from left partition, so FS(c)=1. Non of the nets are entirely located in left partition, so TE(c)=0.

Gain(c)=FS(c)-TS(C)=1

F(c) = 1 T(c) = 0; G(c) = 1

F(d) = 1 T(d) = 0; G(d) = 1

F(g) = 2 T(c) = 0; G(g) = 2

F(a) = 0 T(a) = 0; G(a) = 0

F(b) = 1 T(b) = 0; G(b) = 1

F(e) = 2 T(e) = 0; G(e) = 2

F(f) = 1 T(f) = 0; G(f) = 1

F(h) = 0 T(h) = 0; G(h) = 0

Page 8: Fiduccia mattheyses

Move 1: e

Page 9: Fiduccia mattheyses

F(a) = 0 T(a) = 1; G(a) = -1

F(c) = 0 T(c) = 1; G(c) = -1

F(g) = 1 T(g) = 1; G(g) = 0

F(d) = 1 T(d) = 0; G(d) = 1

F(b) = 1 T(b) = 0; G(b) = 1

F(f) = 2 T(f) = 0; G(f) = 2

F(h) = 0 T(h) = 0; G(h) = 0

Page 10: Fiduccia mattheyses

MOVE 2: f has the max gain, but moving f will violate the area constraint. So we move d.

Page 11: Fiduccia mattheyses

F(a) = 0 T(a) = 1; G(a) = -1 F(c) = 1 T(c) = 1; G(c) = 0 F(g) = 1 T(g) = 1; G(g) = 0 F(b) = 0 T(b) = 0; G(b) = 0 F(f) = 1 T(f) = 1; G(f) = 0 F(h) = 0 T(h) = 0; G(h) = 0

Page 12: Fiduccia mattheyses

MOVE 3: consider b.

Page 13: Fiduccia mattheyses

F(a) = 0 T(a) = 1; G(a) = -1

F(c) = 0 T(c) = 1; G(c) = -1

F(g) = 1 T(g) = 1; G(h) = 0

F(f) = 1 T(f) = 1; G(f) = 0

F(h) = 0 T(h) = 0; G(h) = 0

Page 14: Fiduccia mattheyses

MOVE 4: choose g.

Page 15: Fiduccia mattheyses

F(a) = 0 T(a) = 1; G(a) = -1

F(c) = 0 T(c) = 1; G(c) = -1

F(f) = 1 T(f) = 2; G(f) = -1

F(h) = 0 T(h) = 1; G(h) = -1

Page 16: Fiduccia mattheyses

MOVE 5: We choose a.

Page 17: Fiduccia mattheyses

F(c) = 0 T(c) = 0; G(c) = 0

F(f) = 1 T(f) = 2; G(f) = -1

F(h) = 0 T(h) = 1; G(h) = -1

Page 18: Fiduccia mattheyses

MOVE 6: We consider f.

Page 19: Fiduccia mattheyses

F(c) = 0 T(c) = 1; G(c) = -1

F(h) = 0 T(h) = 0; G(h) = 0

Page 20: Fiduccia mattheyses

MOVE 7:

Page 21: Fiduccia mattheyses

F(c) = 0 T(c) = 1; G(c) = -1

Page 22: Fiduccia mattheyses

MOVE 8 (LAST MOVE):