# What is PyIBL?¶

PyIBL is a Python implementation of a subset of Instance Based Learning Theory (IBLT) [1]. It is made and distributed by the Dynamic Decision Making Laboratory of Carnegie Mellon University for making computational cognitive models supporting research in how people make decisions in dynamic environments.

Typically PyIBL is used by creating an experimental framework in the Python programming language, which uses one or more PyIBL Agent objects. The framework then asks these agents to make decisions, and informs the agents of the results of those decisions. The framework, for example, may be strictly algorithmic, may interact with human subjects, or may be embedded in a web site.

PyIBL is a library, or module, of Python code, useful for creating Python programs; it is not a stand alone application. Some knowledge of Python programming is essential for using it.

PyIBL is an ongoing project, and has been started with a small subset of IBLT. As it evolves it is expected that more and more of the IBLT will be encorporated into it. For example, PyIBL does not currently support similarity, spreading activation or deferred feedback, but those are planned for the near future. PyIBL is still sufficiently early in its development that future versions are likely to radically change some of the APIs exposed today, and some effort may be required to upgrade projects using the current version of PyIBL to a later version.

 [1] Cleotilde Gonzalez, Javier F. Lerch and Christian Lebiere (2003), Instance-based learning in dynamic decision making, Cognitive Science, 27, 591-635. DOI: 10.1016/S0364-0213(03)00031-4.