# A Neural Algorithm for the Maximum Clique Problem: Analysis, Experiments, and Circuit Implementation

DOI: 10.1007/s00453-001-0105-8

- Cite this article as:
- Bertoni, A., Campadelli, P. & Grossi, G. Algorithmica (2002) 33: 71. doi:10.1007/s00453-001-0105-8

- 10 Citations
- 100 Downloads

## Abstract

{In this paper we design and analyze a neural approximation algorithm for the Maximum Clique problem. This algorithm, having as input an arbitrary undirected graph *G = \langle V, E\rangle* , constructs a finite sequence of Hopfield networks such that the attractor of the last network in the sequence represents a maximal clique of *G* .

We prove that *D(G) ⋅ |E*^{\rm c}*|* , where *D(G) = *max _{{i,j}\notin E}*\min{d*_{i}*, d*_{j}*}* , *d*_{i} is the degree of the vertex *i* of *G* , and *|E*^{\rm c}*|* denotes the cardinality of the set of edges in the complement graph, is an upper bound to the number of the networks in the sequence.

Some experiments made on the second DIMACS benchmark and on random graphs show that:

1. The quality of the solutions found by the algorithm is satisfactory.

2. The theoretical upper bound *D(G) ⋅ |E*^{\rm c}*|* is quite pessimistic.

For random graphs we propose an empirical formula that gives a better estimate of the number of networks in the sequence.

Moreover, thanks to the simplicity of the algorithm, we are able to design a uniform family of circuits of small size (*\approx 10n*^{2}log _{2}* n* ) that implements it. The circuit, which solves the problems for graphs of at most 32 vertices, has then been programmed on FPGAs (Field Programmable Gate Arrays). An analysis in terms of size and time complexity is given.