@techreport{oai:ipsj.ixsq.nii.ac.jp:00032671,
 author = {Etsuji, Tomita and Akira, Tanaka and Haruhisa, Takahashi and Etsuji, Tomita and Akira, Tanaka and Haruhisa, Takahashi},
 issue = {98(1989-AL-012)},
 month = {Nov},
 note = {We present an algorithm for finding all the cliques of an undirected graph. It is a very simple backtracking searching algorithm  whose basic techniques are based upon Bron and Kerbosch's  and it outputs the cliques found in a tree-like form. Then we prove that its worst-case time complexity is O(3^<n/3>)=O(2^<n/1.89...>)=O(1.44^<...n>) for an n-vertex graph. This is optimal with respect to n since there exist up to 3 ^<n/3> cliques in an n-vertex graph. It is noted that a slight modification of this algorithm gives an O(2^<n/2.98>)-time simple algorithm for finding only one maximum clique., We present an algorithm for finding all the cliques of an undirected graph. It is a very simple backtracking searching algorithm, whose basic techniques are based upon Bron and Kerbosch's, and it outputs the cliques found in a tree-like form. Then we prove that its worst-case time complexity is O(3^<n/3>)=O(2^<n/1.89...>)=O(1.44^<...n>) for an n-vertex graph. This is optimal with respect to n since there exist up to 3 ^<n/3> cliques in an n-vertex graph. It is noted that a slight modification of this algorithm gives an O(2^<n/2.98>)-time simple algorithm for finding only one maximum clique.},
 title = {An Optimal Algorithm for Finding All the Cliques},
 year = {1989}
}