Moving Targets via AIDDL
A Python library that integrates machine learning with constraint optimization using the AI Domain Definition Language.
This library implements the moving targets algorithm, which integrates machine learning and constraint processing in a decoupled way. The main idea is that the leaner and constraint solver take turns moving the output vector until the algorithm converges. The AI Domain Definition Language (AIDDL) allows to create models for integrated AI system. In this library, we use AIDDL to extend a standard machine learning problem with constraints that can, for instance, impose fairness measures.
Language of the library: Python, AIDDL
Environment: Tested on Ubuntu with Python 3.7.
Additional Information: Currently, this library supports constraints on lower/upper bounds, balance, DIDI, equal opportunity, and equalized odds. Machine learning is enabled through a scikit-learn wrapper or the learners provided by the AIDDL Common library. Supported constraint solvers are PySMT, and Google OR-Tools, and IBM's CPLEX
Jointly developed by: Örebro University and the University of Bologna.