Publications

header
Hello, world! This is a toast message.

CBX: Python and Julia packages for consensus-based interacting particle methods

arXiv: 2403.14470, 2024.

arXiv: 2403.14470, 2024.

@Article{BBG2024
	title={{CBX}: {P}ython and {J}ulia packages for
    consensus-based interacting particle methods},
	author={Bailo, Rafael and Barbaro, Alethea and Gomes, Susana N. and Riedl, Konstantin and Roith, Tim and Totzeck, Claudia and Vaes, Urbain},
	journal={Preprint arXiv: 2403.14470},
	year={2024},
	doi={10.48550/arXiv.2403.14470},
	archivePrefix={arXiv},
	arXivId={2403.14470},
	eprint={2403.14470},
}

We introduce CBXPy and ConsensusBasedX.jl, Python and Julia implementations of consensus-based interacting particle systems (CBX), which generalise consensus-based optimization methods (CBO) for global, derivative-free optimisation. The raison d'être of our libraries is twofold: on the one hand, to offer high-performance implementations of CBX methods that the community can use directly, while on the other, providing a general interface that can accommodate and be extended to further variations of the CBX family. Python and Julia were selected as the leading high-level languages in terms of usage and performance, as well as their popularity among the scientific computing community. Both libraries have been developed with a common ethos, ensuring a similar API and core functionality, while leveraging the strengths of each language and writing idiomatic code.

We introduce CBXPy and ConsensusBasedX.jl, Python and Julia implementations of consensus-based interacting particle systems (CBX), which generalise consensus-based optimization methods (CBO) for global, derivative-free optimisation. The raison d'être of our libraries is twofold: on the one hand, to offer high-performance implementations of CBX methods that the community can use directly, while on the other, providing a general interface that can accommodate and be extended to further variations of the CBX family. Python and Julia were selected as the leading high-level languages in terms of usage and performance, as well as their popularity among the scientific computing community. Both libraries have been developed with a common ethos, ensuring a similar API and core functionality, while leveraging the strengths of each language and writing idiomatic code.