JUCS - Journal of Universal Computer Science 27(6): 544-563, doi: 10.3897/jucs.69617
A reversible circuit synthesis algorithm with progressive increase of controls in generalized Toffoli gates
expand article infoEdinelço Dalcumune, Luis Antonio Brasil Kowada§, André da Cunha Ribeiro|, Celina Miraglia Herrera de Figueiredo, Franklin de Lima Marquezino
‡ Universidade Federal dos Vales do Jequitinhonha e Mucuri, Teófilo Otoni, Brazil§ Universidade Federal Fluminense, Niteroi, Brazil| Instituto Federal Goiano, Goiás, Brazil¶ Universidade Federal do Rio de Janeiro, Rio de Janeiro, Brazil
Open Access

We present a new algorithm for synthesis of reversible circuits for arbitrary n-bit bijective functions. This algorithm uses generalized Toffoli gates, which include positive and negative controls. Our algorithm is divided into two parts. First, we use partially controlled gen- eralized Toffoli gates, progressively increasing the number of controls. Second, exploring the properties of the representation of permutations in disjoint cycles, we apply generalized Toffoli gates with controls on all lines except for the target line. Therefore, new in the method is the fact that the obtained circuits use first low cost gates and consider increasing costs towards the end of the synthesis. In addition, we employ two bidirectional synthesis strategies to improve the gate count, which is the metric used to compare the results obtained by our algorithm with the results presented in the literature. Accordingly, our experimental results consider all 3-bit bijective functions and twenty widely used benchmark functions. The results obtained by our synthesis algorithm are competitive when compared with the best results known in the literature, considering as a complexity metric just the number of gates, as done by alternative best heuristics found in the literature. For example, for all 3-bit bijective functions using generalized Toffoli gates library, we obtained the best so far average count of 5.23.

design of algorithms, reversible computing, circuit synthesis, cycle representations of permutations