10 releases

0.2.2 Feb 22, 2021
0.2.1 Feb 22, 2021
0.1.6 Feb 13, 2021

#919 in Science

MIT license

770 lines

Build Status Crates.io docs.rs


This is an implementation of the Cognitively-Inspired Simulated Annealing Teams (CISAT) Framework in Rust.

This is currently an incomplete implementation. Progress on CISAT characteristics includes:

  • Multi-agency
  • Organic interaction timing
  • Quality-informed solutions haring
  • Quality bias reduction
  • Self-bias
  • Operational learning
  • Locally-sensitive search
  • Satisficing


Here is a basic examples of usage

use cisat::{Cohort, Parameters, problems::Ackley};
fn main() {
    let mut x = Cohort::<Ackley>::new(Parameters::default());


    println!("{:?}", x);

You can also implement new problem, agent, and team types using the Solution, AgentMethods, and TeamMethods traits, respectively. This allows significant flexibility within the basic CISAT structure.


Aspects of CISAT have been published in several places. You can learn more about it here:

  1. McComb, C., Cagan, J., & Kotovsky, K. (2015). Lifting the Veil: Drawing insights about design teams from a cognitively-inspired computational model. Design Studies, 40, 119-142. doi:10.1016/j.destud.2015.06.005. PDF
  2. McComb, C., Cagan, J., & Kotovsky, K. (2016). Drawing inspiration from human design teams for better search and optimization: The heterogeneous simulated annealing teams algorithm. Journal of Mechanical Design, 138(4). doi:10.1115/1.4032810. PDF
  3. McComb, C., Cagan, J., & Kotovsky, K. (2017). Capturing human sequence-learning abilities in configuration design tasks through markov chains. Journal of Mechanical Design, 139(9). doi:10.1115/1.4037185. PDF
  4. McComb, C., Cagan, J., & Kotovsky, K. (2017). Optimizing design teams based on problem properties: computational team simulations and an applied empirical test. Journal of Mechanical Design, 139(4). doi:10.1115/1.4035793. PDF


~289K SLoC