A Julialang package for adaptive resonance theory (ART) algorithms.
Author AP6YC
1 Star
Updated Last
1 Year Ago
Started In
June 2020


A Julia package for Adaptive Resonance Theory (ART) algorithms.

Documentation Build Status Coverage
Stable Build Status Codecov
Dev Build Status Coveralls
Dependents Date Status
deps version pkgeval

This package is developed and maintained by Sasha Petrenko with sponsorship by the Applied Computational Intelligence Laboratory (ACIL). This project is supported by grants from the Night Vision Electronic Sensors Directorate, the DARPA Lifelong Learning Machines (L2M) program, Teledyne Technologies, and the National Science Foundation. The material, findings, and conclusions here do not necessarily reflect the views of these entities.

Please read the documentation for detailed usage and tutorials.



Adaptive Resonance Theory (ART) is a neurocognitive theory of how recurrent cellular networks can learn distributed patterns without supervision. As a theory, it provides coherent and consistent explanations of how real neural networks learn patterns through competition, and it predicts the phenomena of attention and expectation as central to learning. In engineering, the theory has been applied to a myriad of algorithmic models for unsupervised machine learning, though it has been extended to supervised and reinforcement learning frameworks. This package provides implementations of many of these algorithms in Julia for both scientific research and engineering applications. A quickstart is provided in Installation, while detailed usage and examples are provided in the documentation.


This project is distributed as a Julia package, available on JuliaHub. Its usage follows the usual Julia package installation procedure, interactively:

] add AdaptiveResonance

or programmatically:

using Pkg

You may also add the package directly from GitHub to get the latest changes:

] add


The following file tree summarizes the project structure:

├── .github/workflows       // GitHub: workflows for testing and documentation.
├── data                    // Data: CI data location.
├── docs                    // Docs: documentation for the module.
│   └───src                 //      Documentation source files.
├── examples                // Source: example usage scripts.
├── src                     // Source: majority of source code.
│   ├───ART                 //      ART-based unsupervised modules.
│   ├───ARTMAP              //      ARTMAP-based supervised modules.
│   └───CVI                 //      Cluster validity indices.
├── test                    // Test: Unit, integration, and environment tests.
├── .appveyor               // Appveyor: Windows-specific coverage.
├── .gitignore              // Git: .gitignore for the whole project.
├── LICENSE                 // Doc: the license to the project.
├── Project.toml            // Julia: the Pkg.jl dependencies of the project.
└──               // Doc: this document.


Please raise an issue.


  • 7/10/2020 - Begin project.
  • 11/3/2020 - Complete baseline modules and tests.
  • 2/8/2021 - Formalize usage documentation.




Adaptive Resonance Theory has been developed in theory and in application by many research groups since the theory's conception, and so this project was not developed in a vacuum. This project itself is built upon the wisdom and precedent of decades of previous work in ART in a variety of programming languages. The code in this repository is inspired the following repositories:


Boilerplate clustering datasets are periodically used to test, verify, and provide example of the functionality of the package.

  1. UCI machine learning repository:

  2. Fundamental Clustering Problems Suite (FCPS):

  3. Datasets package:

  4. Clustering basic benchmark:


This software is openly maintained by the ACIL of the Missouri University of Science and Technology under the MIT License.

Used By Packages

No packages found.