Algorithme développé et décrit par Kuznetsov dans "Comparing performance of algorithms for generating concept lattices"(2002) par Sergei O. Kuznetsov et Sergei A. Obiedkov:
| Close by One | Commentaires | 
|---|---|
| L := \emptyset | Initialement, on n'a aucun concept. | 
| For each g \in G | L'algorithme va utiliser successivement chaque objet comme “graine” puis explorer les possibilités d'agrandir l'extension qu'il engendre par le rajout d'un objet lexicographiquement supérieur. | 
| Process ( \left\{ g \right\},g ,\left( \left\{ g \right\}^{' '} ,g \right) ) | \left( \left\{  g \right\}^{' '} ,g \right)  est le concept dont l'intention correspond aux attributs de g, et \left\{  g \right\}^{' '}  est l'extension fermée correspondante. | 
| L is the concept set. | On a élaboré toutes les extensions. | 
| Maintenant, voyons comment l'exploration et le développement incrémental sont réalisés | |
| Process (A, g, (C, D)) | |
| \left\{ C = A \prime\prime ; D = A \prime \right\} | En fait, ceci est pour rappel, il ne s'agit pas d'un nouveau calcul à l'entrée de la fonction. | 
| If \left\{h| h \in C\setminus A \quad\& \quad h \prec g\right\} = \emptyset | Vérification qu'il s'agit d'un nouveau concept et non d'un concept déjà élaboré, ce qui se repèrerait par la présence dans l'extension C d'objet(s) de valeur lexicographique inférieur à l'objet courant, et qui n'étai(en)t pas déjà dans l'extension A (de l'intention précédente). Si c'est un concept déjà vu, on ne fait rien, on ne l'ajoute pas à L et on ne poursuit pas le développement de la branche. | 
| L := L \cup \left\{\left(C,D\right)\right\} | On ajoute le nouveau concept. | 
| For each f \in\left\{h | h \in G \quad \& \quad g \prec h \right\} | On cherche à agrandir l'extension(C) en rajoutant un objet du complémentaire de valeur lexicographique supérieur. | 
| Z := C \cup \left\{f\right\} | On ajoute l'objet candidat à l'extension. | 
| Y := D \cap \left\{f\right\}\prime | On calcule la nouvelle intention. | 
| X := Y\prime\left(=Z\cup \left\{h | h\in G\setminus Z\quad\&\quad Y \subseteq \left\{h\right\}\prime\right\}\right) | On ferme l'extension par rapport à l'intention nouvelle. | 
| Process \left(Z; f; \left(X; Y\right)\right) | On l'envoye au traitement : tester s'il s'agit d'un nouveau concept 1), puis si oui, - l'ajouter au treillis et -poursuivre les tentatives d'agrandissement, toujours par un objet de valeur lexicographique plus grande. | 
 2): il est égale à l'extension d'un concept engendré augmenté d'un objet.
 2): il est égale à l'extension d'un concept engendré augmenté d'un objet. [faut trouver mieux] le chemin suivant dans l'arbre : le dernier noeud du chemin est le concept désiré; chaque noeud du chemin est soit le premier fils du noeud précédent (si le noeud précédent est un concept moins général que le concept désiré), soit son premier frère droit (sinon).
 [faut trouver mieux] le chemin suivant dans l'arbre : le dernier noeud du chemin est le concept désiré; chaque noeud du chemin est soit le premier fils du noeud précédent (si le noeud précédent est un concept moins général que le concept désiré), soit son premier frère droit (sinon).