“…Many other authors, therefore, settle for a dynamic programming solution instead of generalizing the Clumping Algorithm, guaranteeing a reasonable runtime by artificially bounding the maximum displacement allowed for each cell by a small number of placement sites. In exchange, they show how to make their dynamic program aware of several other desirable objective traits or incorporate a larger degree of freedom by allowing for a local reordering of cells, even between multiple rows [6], [11], [12], [19]. Other approaches comprise solving a linear complementarity problem to approximately minimize the squared cell movement and then resolving the remaining overlaps [5], [18], [25], applying integer linear programming to legalize sufficiently small regions of the chip separately [14], or making use of a cell insertion scheme [7], combined with bipartite matching and min-cost-flow-algorithms [17].…”