Abstract:In the nonlinear timeseries analysis literature, countless quantities have been presented as new "entropy" or "complexity" measures, often with similar roles. The ever-increasing pool of such measures makes creating a sustainable and all-encompassing software for them difficult both conceptually and pragmatically. Such a software however would be an important tool that can aid researchers make an informed decision of which measure to use and for which application, as well as accelerate novel research. Here we present ComplexityMeasures.jl, an easily extendable and highly performant open-source software that implements a vast selection of complexity measures. The software provides 1530 measures with 3,834 lines of source code, averaging only 2.5 lines of code per exported quantity (version 3.5). This is made possible by its mathematically rigorous composable design. In this paper we discuss the software design and demonstrate how it can accelerate complexity-related research in the future. We carefully compare it with alternative software and conclude that ComplexityMeasures.jl outclasses the alternatives in several objective aspects of comparison, such as computational performance, overall amount of measures, reliability, and extendability. ComplexityMeasures.jl is also a component of the DynamicalSystems.jl library for nonlinear dynamics and nonlinear timeseries analysis and follows open source development practices for creating a sustainable community of developers.
What problem does this paper attempt to address?
### What problem does this paper attempt to solve?
This paper aims to solve the problems of scalability and performance of complexity and entropy measurement software in the field of nonlinear time - series analysis. Specifically:
1. **Diverse complexity measures**:
- In the literature on nonlinear time - series analysis, there are a large number of proposed "entropy" or "complexity" measures. These measures often have similar functions, but their large number makes it difficult to create a sustainable and comprehensive software.
- The paper points out that this diversity leads to conceptual and practical challenges, especially when choosing a measure suitable for a specific application.
2. **Limitations of existing software**:
- Existing software usually implements a separate function for each measure when dealing with these complexity measures, which results in a large code base, difficult maintenance, and is not easy to extend new measurement methods.
- In addition, existing software also has deficiencies in computational performance, reliability, ease of use, etc.
3. **Proposed new solution**:
- The paper proposes an open - source software named **ComplexityMeasures.jl**, aiming to unify and accelerate entropy and complexity time - series analysis.
- Through modular design, this software allows users to combine different coding methods, probability estimators, information measures, and estimation methods, thereby flexibly calculating various complexity measures.
- ComplexityMeasures.jl provides efficient performance, easy - to - extend functionality, and has concise code, which is convenient for maintenance and improvement.
4. **Specific goals**:
- **Unification**: Provide a unified framework so that researchers can conveniently compare and select different complexity measures.
- **Accelerate research**: Through efficient algorithms and optimized design, accelerate complexity - related research work.
- **Ease of use and extensibility**: Ensure that the software is easy to use and that new complexity measurement methods can be easily added.
In summary, this paper attempts to solve the problems of poor scalability, low performance, and difficult maintenance in current complexity measurement tools by developing the **ComplexityMeasures.jl** software, thereby providing a more powerful, flexible, and efficient tool for complexity research.