struct EQSearch <: DataDrivenDiffEq.AbstractDataDrivenAlgorithm

Options for using SymbolicRegression.jl within the solve function. Automatically creates Options with the given specification. Sorts the operators stored in functions into unary and binary operators on conversion.


  • weights

    Optionally weight the loss for each y by this value (same shape as y) Default: nothing

  • numprocs

    The number of processes to use, if you want EquationSearch to set this up automatically. Default: nothing

  • procs

    If you have set up a distributed run manually with procs = addprocs() and @everywhere, pass the procs to this keyword argument. Default: nothing

  • addprocs_function

    If using multiprocessing (parallelism=:multithreading), and are not passing procs manually, then they will be allocated dynamically using addprocs. However, you may also pass a custom function to use instead of addprocs. This function should take a single positional argument, which is the number of processes to use, as well as the lazy keyword argument. For example, if set up on a slurm cluster, you could pass addprocsfunction = addprocsslurm, which will set up slurm processes. Default: nothing

  • parallelism

    What parallelism mode to use. The options are :multithreading, :multiprocessing, and :serial. Multithreading uses less memory, but multiprocessing can handle multi-node compute. If using :multithreading mode, the number of threads available to julia are used. If using :multiprocessing, numprocs processes will be created dynamically if procs is unset. If you have already allocated processes, pass them to the procs argument and they will be used. You may also pass a string instead of a symbol. Default: :serial

  • runtests

    Whether to run (quick) tests before starting the search, to see if there will be any problems during the equation search related to the host environment Default: true

  • eq_options

    Options for 'EquationSearch' Default: SymbolicRegression.Options()