Skip to content

SahandTerami/LinearReservoirOptimization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 

Repository files navigation

Optimizing the Network Topology of a Linear Reservoir Computer

Theory

The goal of this paper is to develop an optimization framework for tuning the topology of a linear reservoir computer, making it competitive with its nonlinear counterpart while enhancing the interpretability of reservoir computing systems.

The governing equation for a conventional decoupled reservoir computer is: (See the paper for details on how it is computed based on a conventional coupled reservoir computer)

image

where q is the decoupled reservoir state, Λ is a diagonal matrix of eigenvalues, c is the input weight, and γ is a positive constant.

With the input and output frequencies of:

image

where a and b are the amplitudes of the input and output signals, respectively. ω is the frequency of the input signal. ϕ is the phase shift in the output signal.

By solving Eq. 9, the reservoir's state q can be expressed as in Eq. 14.

image

M and θ are according to Eq. 15

image

The reservoir state matrix in the frequency domain (Eq. 17) will be computed after taking the Fourier transformation of Eq. 14 and equating it to the Fourier transformation output signal. (To see details, check the paper)

image

The following optimization formulation, based on Eq. 17, is developed to determine the optimal eigenvalues and output weights.

image

Results

Results of the reservoir computer before and after optimization for a reservoir with 10 nodes and three distinct input frequencies:

10-node

Prerequisites

Before running the optimization code, please ensure that Julia is installed and the following packages are added: DelimitedFiles, JuMP, Ipopt, LinearAlgebra, MathOptInterface, and Distributions.

You can add these packages by running the following commands in the Julia REPL:

using Pkg

Pkg.add("JuMP")

Pkg.add("Ipopt")

Pkg.add("LinearAlgebra")

Pkg.add("Distributions")

Pkg.add("MathOptInterface")

Pkg.add("DelimitedFiles")

(The code is compatible with MATLAB version 2022a and later.)

How To Use The Code

1- To run the code, open "runapp.mlapp" in MATLAB.

2- Run the code from the Designer tab.

3- Replace the parameters with your own values, then click the "Initialize" button.

4- Fill the new empty fields with the parameters of your signals.

5- Click the "Run" button to start the optimization.

Citation

If you find our repo or paper useful, please cite us as follows:

Tangerami, S., Mecholsky, N. A., & Sorrentino, F. (2025). Optimizing the Network Topology of a Linear Reservoir Computer. arXiv:2509.23391. https://arxiv.org/abs/2509.23391

About

The code corresponds to the implementation used in the paper "Optimizing the Network Topology of a Linear Reservoir Computer." It implements a linear reservoir computing model where the network topology is optimized to enhance performance.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors