
Complex systems science ( Mitchell, 2009) is the study of large collections of entities (of some type), where the global system behavior is a non-trivial result of the local interactions of the individuals, e.g., emergent consciousness from neurons, emergent cell behavior from gene regulatory networks and flocks determining their collective heading. More recently, it is increasingly being utilized for the design and analysis of complex self-organized systems ( Prokopenko et al., 2009). Information theory was originally introduced by Shannon (1948) to quantify fundamental limits on signal processing operations and reliable communication of data ( Cover and Thomas, 1991 MacKay, 2003). We present the principles behind the code design, and provide several examples to guide users. Furthermore, while written in Java, the toolkit can be used directly in MATLAB, GNU Octave, Python, and other environments. JIDT provides implementations for both discrete and continuous-valued data for each measure, including various types of estimator for continuous data (e.g., Gaussian, box-kernel, and Kraskov–Stögbauer–Grassberger), which can be swapped at run-time due to Java’s object-oriented polymorphism. For this purpose, it includes implementations of the transfer entropy and active information storage, their multivariate extensions and local or pointwise variants. That is, JIDT focuses on quantifying information storage, transfer, and modification, and the dynamics of these operations in space and time. While the toolkit provides classic information-theoretic measures (e.g., entropy, mutual information, and conditional mutual information), it ultimately focuses on implementing higher-level measures for information dynamics. We introduce the Java Information Dynamics Toolkit (JIDT): a Google code project, which provides a standalone (GNU GPL v3 licensed) open-source code implementation for empirical estimation of information-theoretic measures from time-series data. This trend has resulted in a strong uptake in the use of (Shannon) information-theoretic measures to analyze the dynamics of complex systems in these fields. 2CSIRO Digital Productivity Flagship, Marsfield, NSW, AustraliaĬomplex systems are increasingly being viewed as distributed information processing systems, particularly in the domains of computational neuroscience, bioinformatics, and artificial life.1Max Planck Institute for Mathematics in the Sciences, Leipzig, Germany.
