efficient Subjective Logic IMplementation in C++ providing Python interfaces
Project description
For the Reviewers
To run the evaluation scripts reproducing the paper presentations, please refer to the following install/use instructions for Python and C++
For geneal use, please follow the instructions below.
eSLIM++ - efficient Subjective Logic IMplementation in C++
eSLIM++ is intended to provide fast subjective logic calculus that can be embedded into high-performance applications. For this reason, it is developed in C++ and core functionality is CUDA compatible. Nevertheless, to provide user friendly access, Python bindings are provided, too.
Generally, eSLIM++ is developed to be used within the aduulm (Autonomous Driving @ Ulm University) framework at the Institut for Measurement-, Control-, and Microtechnology. Thus, some references, e.g., facilitating cmake marcos, are contained, but should not hinder any use outside aduulm. Further, it allows to be build using standalone CMake or, for example, if used within a ROS2 stack, using colcon, a more detailed description and instructions for installation are below.
Installation
eSLIM++ is available as Python package with Pypi and for Python usage can easly be installed with:
pip install eslimpp
After installation, eSLIM++ provides an importable python package called subjective_logic.
(May change to eslimpp in the future)
For using the C++ interface, the repository can be cloned, and build using cmake, e.g.,
git clone [link to repo]
cd eslimpp
mkdir build
cd build
cmake ..
# header-only build should be fairly fast, no multi-thread necessary
make install
If the Python bindings should be built for testing or similar, simply create a build directory in library/src/bindings and proceed similarly.
Here, some dependencies might be required, such as nanobind, and potentially, install paths must explicitly be defined.
Alternatively, the Python package can be built from source using pip
For this, run pip in the root directly
pip install [-e] .
The library can also be packaged for Pypi or similar, for this refer to the description, which serves as a small reminder.
When there are no changes in C++ or the bindings made by the user, it is recommended to install the Python package using pip.
Uninstallation
To remove eslimpp from your system, simply uninstall the pip package. Or, in case of C++ run the following in the build directory
make uninstall
Documentation
eSLIM++ provides doxygen and sphinx documentation, which is currently containing the docstrings from the source code. A more sophisticated and detailed documentation is in progress, adding figure and latex-formated equations etc. Information about how to build the documentation is available here.
Reproducable Publication Results
One of the core ideas behind eSLIM++ is to provide reproducible results of recent research results.
For this, the publication directory includes reference implementations to obtain results from certain publications.
As of now (time of publication), only the two most recent submissions to the MfI are included, to initially demonstrate the easy-to-use Python access and high-performance C++ application.
However, everyone using eSLIM++ is welcomed to contribute their own implementations for upcomming publications.
Instructions on how to run Python examples are provided here.
If C++ implementations are available, a detailed description on how to run them should be available for each example separately, as, depending on the use case, the prerequisites may differ greatly.
References
Most of the functions and operations of eSLIM++ have been published by various authors. The list below is meant to provide an overview of works which introduce the functionality that is available within this library. The numbers are references within the code at several points and the list is subject to change.
[1]
Jøsang, A. (2016). Subjective Logic: A Formalism for Reasoning Under Uncertainty. Springer International Publishing.
[2]
Jøsang, A., Zhang, J., & Wang, D. (2017). Multi-source trust revision. International Conference on Information Fusion (Fusion).
[3]
van der Heijden, R. W., Kopp, H., & Kargl, F. (2018). Multi-Source Fusion Operations in Subjective Logic. International Conference on Information Fusion (FUSION).
[4]
Wodtko, T., Griebel, T., Scheible, A., & Buchholz, M. (2024). Conflict Handling in Time-Dependent Subjective Networks. 27th International Conference on Information Fusion (FUSION).
[5]
Kaplan, L., Şensoy, M., Chakraborty, S., & de Mel, G. (2015). Partial observable update for subjective logic and its application for trust estimation. Information Fusion, 26, 66–83.
[6]
Scheible, A., Griebel, T., Herrmann, M., Hermann, C., & Buchholz, M. (2023). Track Classification for Random Finite Set Based Multi-Sensor Multi-Object Tracking. IEEE Symposium Sensor Data Fusion and International Conference on Multisensor Fusion and Integration (SDF-MFI).
[7]
Josang, A., Cho, J.-H., & Chen, F. (2018). Uncertainty Characteristics of Subjective Opinions. 21st International Conference on Information Fusion (FUSION).\
Applications
At the time of publication, eSLIM++ has already been use internally (addulm) to solve modern research questions. Partly, the library was directly used during the evaluation of these works, partly, works have been implemented using eSLIM++ after the publication. The list below should give the reader an impression of possible applications of eSLIM++, and, at the same time, may also provide some food for thoughts.
[1]
Wodtko, T., Griebel, T., Scheible, A., & Buchholz, M. (2024). Conflict Handling in Time-Dependent Subjective Networks. 27th International Conference on Information Fusion (FUSION).
[2]
Schumann, O., Wodtko, T., Buchholz, M., & Dietmayer, K. (2024). Self-Assessment of Evidential Grid Map Fusion for Robust Motion Planning. IEEE International Conference on Intelligent Transportation Systems (ITSC).
[3]
Scheible, A., Griebel, T., Herrmann, M., Hermann, C., & Buchholz, M. (2023). Track Classification for Random Finite Set Based Multi-Sensor Multi-Object Tracking. IEEE Symposium Sensor Data Fusion and International Conference on Multisensor Fusion and Integration (SDF-MFI).
[4]
Scheible, A., Griebel, T., & Buchholz, M. (2024, September 24). Self-Monitored Detection Probability Estimation for the Labeled Multi-Bernoulli Filter. IEEE 27th International Conference on Intelligent Transportation Systems (ITSC).\
Licence - Apache 2.0
The library is meant to be widely used in various applications, respectively, the licence was choosen. Community driven updates are highly welcomed, if doing so, please be aware of this licence, further details will follow (signing MR commits to accept license and copyright etc.)
Acompaning publication
Introducing this library, there is currently a paper under review at the IEEE International Conference on Multisensor Fusion and Integration. The reviewers are highly welcomed to check out the code and run the example scripts producing the results presented in this work. Details of the publication will follow, if applicable.
Citation
I am delighted, if eSLIM++ is used in other projects, which might get published at one point. In this case, I would kindly ask to cite the library with its introduction paper. A citation description will be available upon publication.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eslimpp-0.1.tar.gz.
File metadata
- Download URL: eslimpp-0.1.tar.gz
- Upload date:
- Size: 2.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cac47e306dcd78dabc83c255026ac13793d0460a4bd5daacd560d90e67de8c0b
|
|
| MD5 |
4e2e7a897b326370bc39cde37d6d7199
|
|
| BLAKE2b-256 |
37832fb61702f2f2eec0edec4aa2db80a4fe02daac273768fc9c458f81cc69be
|
File details
Details for the file eslimpp-0.1-cp312-abi3-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: eslimpp-0.1-cp312-abi3-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.12+, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d58409ed068309b553e1ae4ee1167ae0c2f8dafa4620fb86a48ee52271ada0c
|
|
| MD5 |
3ea79cf596d2d262f3a670f56d41ffa8
|
|
| BLAKE2b-256 |
df77585d7dc7e5150d95ef257b28649c141dd9a2f3272924d71ee96e0f0f02ee
|