lincs (Learn and Infer Non Compensatory Sortings) is a collection of MCDA algorithms, usable as a C++ library, a Python (3.7+) package and a command-line utility.
lincs is licensed under the GNU Lesser General Public License v3.0 as indicated by the two files COPYING and COPYING.LESSER.
@todo (When we have a paper to actually cite) Add a note asking academics to kindly cite our work.
lincs is available for install from the Python package index. Its documentation and its source code are on GitHub.
Questions? Remarks? Bugs? Want to contribute? Open an issue or a discussion!
lincs is developed by the MICS research team at CentraleSupélec.
Its main authors are (alphabetical order):
- Laurent Cabaret (performance optimization)
- Vincent Jacques (engineering)
- Vincent Mousseau (domain expertise)
- Wassila Ouerdane (domain expertise)
It's based on work by:
- Olivier Sobrie (The "weights, profiles, breed" learning strategy for MR-Sort models, and the profiles improvement heuristic, developed in his Ph.D thesis, and implemented in Python)
- Emma Dixneuf, Thibault Monsel and Thomas Vindard (C++ implementation of Sobrie's heuristic)
@todo Add links to the fundamental articles for NCS.
@todo Add links to the articles that define other learning methods we re-implement.
You should be able to use lincs without being a specialist of MCDA and/or NCS models. Just follow the Get started section below.
lincs is designed to be easy to extend with new algorithms of even replace parts of existing algorithms. See our contributor guide for more details.
lincs also provides a benchmark framework to compare algorithms (@todo Implement and document). This should make it easier to understand the relative strengths and weaknesses of each algorithm.
Starting with version 1.0.0, lincs tries to apply semantic versioning at a code level: upgrading patch and minor releases should not require changes in client code but may require you to recompile and link it.
Depending on your favorite approach, you can either start with our hands-on "Get started" guide or with our conceptual overview documentation. The former will show you how to use our tools, the latter will explain the concepts behind them: what's MCDA, what are NCS models, etc. If in doubt, start with the conceptual overview. We highly recommend you read the other one just after.
Once you've used lincs a bit, you can follow up with our user guide and reference documentation.
See our contributor guide.