Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eslimpp-0.1.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eslimpp-0.1-cp312-abi3-manylinux_2_39_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.39+ x86-64

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

Hashes for eslimpp-0.1.tar.gz
Algorithm Hash digest
SHA256 cac47e306dcd78dabc83c255026ac13793d0460a4bd5daacd560d90e67de8c0b
MD5 4e2e7a897b326370bc39cde37d6d7199
BLAKE2b-256 37832fb61702f2f2eec0edec4aa2db80a4fe02daac273768fc9c458f81cc69be

See more details on using hashes here.

File details

Details for the file eslimpp-0.1-cp312-abi3-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for eslimpp-0.1-cp312-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 7d58409ed068309b553e1ae4ee1167ae0c2f8dafa4620fb86a48ee52271ada0c
MD5 3ea79cf596d2d262f3a670f56d41ffa8
BLAKE2b-256 df77585d7dc7e5150d95ef257b28649c141dd9a2f3272924d71ee96e0f0f02ee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page