Závěrečná práce: Ondřej Hrdlička, učo 514205: Library for Boolean function manipulation in Rust and Python
Bakalářská práce
Library for Boolean function manipulation in Rust and Python
Anotace
Práce s booleovskými funkcemi je základním aspektem různých disciplín v informatice. V ekosystému jazyka Python existuje citelná mezera v oblasti vysoce výkonných knihoven určených k tomuto účelu. Tato práce tuto mezeru vyplňuje implementací nové knihovny pro manipulaci s booleovskými funkcemi v jazyce Rust, která podporuje reprezentaci booleovských funkcí ve formě stromů výrazů, pravdivostních tabulek …více
Abstract
Boolean function manipulation is a fundamental aspect of various disciplines in computer science. There is a notable gap in the Python ecosystem for high-performance libraries dedicated to this purpose. This thesis addresses this gap by implementing a new Boolean function manipulation library in Rust, which supports representations of Boolean functions as expression trees, truth tables, and binary …více
Zadání práce
Efficient manipulation of Boolean functions is one of the building blocks of many algorithms in the area of formal methods and exhaustive model analysis (for example in the case of Boolean networks in systems biology). Currently, there are libraries developed for this purpose that are using a wide range of data structures across many languages [1,2,3]. However, they are often not feature-complete or suffer from poor performance.
The goal of this thesis is to develop a library in the Rust programming language that:
- Supports manipulation of Boolean functions represented as (a) expressions, (b) tables, (c) binary decision diagrams;
- Can be used from Python using the PyO3 tool [4];
- Supports a reasonable subset of the relevant functionality provided by the state-of-the-art Python libraries PyEDA and SymPy [5, 6];
- Is reasonably performant compared to the other Python counterparts on a set of benchmarks selected by the student.
[1] https://pyeda.readthedocs.io/en/latest/
[2] https://crates.io/crates/bex
[3] https://crates.io/crates/biodivine-lib-bdd
[4] https://pyo3.rs/v0.18.1/
[5] https://pyeda.readthedocs.io/en/latest/
[6] https://www.sympy.org/en/index.html
28. 5. 2024 14:34, RNDr. Samuel Pastva, Ph.D., učo 410286
Přílohy
result_bdd_monotonicity.tsv
result_expr_cnf_pruned.tsv
result_expr_parser_pruned.tsv
result_expr_cnf.tsv
result_expr_parser.tsv
result_bdd_adder.tsv
biodivine-boolean-functions-code.zip
result_table_subst.tsv
Práce na příbuzné téma
Seznam prací, které mají shodná klíčová slova.
-
Frontend of the AEON Sketchbook application
Ing. Petr Ivičič -
Light-weight Rust orchestrator for data processing tasks
Ing. Lukáš Chudíček -
Využitie LLM na extrakciu formálnych vlastností biologických modelov z literatúry
Ing. Richard Harman -
Open data portal for smaller municipality
Mgr. Daniel Pecuch -
Gene Ontology Enrichment Analysis of Boolean Networks
Bc. et Bc. Dominik Zeman -
Open Source Voice Programming Assistant
Mgr. Andrej Hučko -
Konverzia interakčných sietí na čiastočne špecifikované Booleovské siete v nástroji CaSQ
Mgr. Bc. Ivan Frák -
Formal representation of graphical models of biological systems
Ing. Samuel Kulíšek




