OSTRICH - Optimization Software Toolkit
    OSTRICH, developed by L. Shawn Matott, is a model-independent multi-algorithm paralell-friendly optimization and parameter estimation tool that implements numerous model-independent optmization and calibration (parameter estimation) algorithms, including:

      DDS Algorithms
    • Dynamically Dimensioned Search (DDS)
    • Asynchronous Parallel Dynamically Dimensioned Search (PDDS)
    • Discrete Dynamically Dimensioned Search (DDDS)
    • Pareto Archived Dynamically Dimensioned Search (PADDS)
    • Parallel Pareto Archived Dynamically Dimensioned Search (ParaPADDS)
    • Dynamically Dimensioned Search - Approximation of Uncertainty (DDS-AU)
    • Note: PADDS and ParaPADDS are multi-objective optimizers

      PSO Algorithms
    • Particle Swarm Optimization (PSO)
    • Asynchronous Parallel Particle Swarm Optimization (APPSO)
    • PSO with GML 'polishing' (PSOGML)

    • Other Evolutionary or Heuristic Algorithms
    • Shuffled Complex Evolution (SCE)
    • Genetic Algorithm (real- and binary-coded) (RGA, BGA)
    • Simulated Annealing (3 variants) (SA, VSA, CSA)
    • Big Bang-Big Crunch (BBBC)
    • Balanced Exploration-Exploitation Random Search (BEERS)
    • Simple Multi-Objective Optimization Test Heuristic (SMOOTH)

    • Gauss-Marquardt-Levenberg (GML) Algorithms
    • Gauss-Marquardt-Levenberg (GML) non-linear regression
    • Multi-Start GML with Trajectory Repulsion (MSGML)

    • Other Gradient-based or Deterministic Algorithms
    • Powell's Method
    • Fletcher-Reeves
    • Steepest Descent
    • Exhaustive (Grid) Search

    • Uncertainty-based Search Algorithms
    • Generalized Likelihood Uncertainty Estimation (GLUE)
    • Metropolis-Hastings Markov Chain Monte Carlo (MCMC)
    • DDS-AU

    • Utilities for Sensitivty and Uncertainty Analysis
    • Regression Statistics (Local Sensitivity Analysis)
    • User-specified Model Evaluations

    NEW! OSTRICH v17.12.19 now available!

    OSTRICH versions are tagged according to their build date. The naming convention for OSTRICH versions is YY.MM.DD (YEAR.MONTH.DATE). Thus, v17.12.19 was built December 19th, 2017.

    OSTRICH supports MPI-based parallel processing on both Windows and Linux machines! The parallel version of OSTRICH is called OstrichMPI and can be launched using mpirun or mpiexec. The Windows version now uses MS-MPI, which must be installed separately. Linux users should use the launcher of a separate package like openmpi, mpich, mvapich2, intel-mpi, or platform mpi.

    The download also contains some working examples that illustrate a variety of OSTRICH features.



      Click here or on the icon at left to download the user manual, demos, source code, and executables for Windows and Linux.


    Citing OSTRICH:

    Matott, LS. 2017. OSTRICH: an Optimization Software Tool, Documentation and User's Guide, Version 17.12.19. 79 pages, University at Buffalo Center for Computational Research, http://www.civil.uwaterloo.ca/envmodelling/Ostrich.html.


    OSTRICH User's Group:

    Dr. Kangsheng Wu has created a google group for OSTRICH users, with a focus on using OSTRICH in hydrological model auto calibrations: https://groups.google.com/d/forum/ostrich-user-group