Computing maximal subsemigroups of a finite semigroup
  A proper subsemigroup of a semigroup is maximal if it is not contained in any other proper subsemigroup. A maximal subsemigroup of a finite semigroup has one of a small number of forms, as described in a paper of Graham, Graham, and Rhodes. Determining which of these forms arise in a given finite semigroup is difficult, and no practical mechanism for doing so appears in the literature. We present an algorithm for computing the maximal subsemigroups of a finite semigroup given knowledge of its Green's structure, and the ability to determine maximal subgroups of certain subgroups.   For a finite semigroup $S$ represented by a generating set $X$, in many examples, if it is practical to compute the Green's structure of $S$ from $X$, then it is also practical to find the maximal subsemigroups of $S$ using the algorithm we present. The generating set $X$ for $S$ may consist, for example, of transformations, or partial permutations, of a finite set, or of matrices over a semiring. In such examples, the time taken to determine the Green's structure of $S$ is comparable to that taken to find the maximal subsemigroups.   Certain aspects of the problem of finding maximal subsemigroups reduce to other well-known computational problems, such as finding all maximal cliques in a graph and computing the maximal subgroups in a group. The algorithm presented comprises two parts. One part relates to computing the maximal subsemigroups of a special class of semigroups, known as Rees 0-matrix semigroups. The other part involves a careful analysis of certain graphs associated to the semigroup $S$, which, roughly speaking, capture the essential information about the action of $S$ on its $\mathscr{J}$-classes. 
C. R. Donoven, J. D. Mitchell, and W. A. Wilson
math.CO