Fiduccia-Mattheyses bipartitioning heuristic for edge-weighted hypergraphs

            For a hypergraph with m hyperedges and n vertices, there should be 1+m lines in the input file. The first line has two integers. The first integer is the number of hyperedges and the second is the number of vertices. After the first line, the next m lines store the vertices contained in each hyperedge one line per hyperedge. The first integer in each of the m lines specifies the weight of the respective hyperedge. For example, the content of the sample input file is as follows:
    4 7
    2 1 2
    3 1 7 5 6
    8 5 6 4
    7 2 3 4
            The corresponding hypergraph has 4 hyperedges and 7 vertices. The first hyperedge has a weight of 2 connecting vertices 1 and 2. The second has a weight 3 connecting vertices 1, 7, 5, 6.
            There are four arguments accepted at the command line. The first one is the number of different initial random bipartitions, the second is the input file, the third is the output file and the last argument is the balance factor.  A balance factor of b means that the size of each component should be (50.0-b)% to (50.0+b)% of the total circuit size.
E.g. 10 input-file-name output-file-name 5.0

           FM-Algo.h
           FM-Algo.cc
 

Computation of Minimum Area Packing represented by an arbitrary sequence-pair by applying the Simulated Annealing Technique

            partition-final.h
            partition-final.cc