Abstract
Haydi (http://haydi.readthedocs.io) is a framework for generating discrete structures. It provides a way to define a structure from basic building blocks and then enumerate all elements, all non-isomorphic elements, or generate random elements in the structure. Haydi is designed as a tool for rapid prototyping. It is implemented as a pure Python package and supports execution in distributed environments. The goal of this paper is to give the overall picture of Haydi together with a formal definition for the case of generating canonical forms.
Authors were supported by grants of GACR 15-13784S and SGS No. SP2017/82, VŠB – Technical University of Ostrava, Czech Republic. Computational resources for testing on a super computer were provided by IT4Innovations as project OPEN-8-26.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
Built-in classes set and dict are optimized for lookups; however, Haydi needs fast comparison methods as will be seen later. haydi.Set and haydi.Map are stored in a sorted state to enable this.
- 8.
In Python 2, instances of different types are generally unequal, and they are ordered consistently but arbitrarily. Switching to Python 3 does not help us, since comparing incompatible types throws an error (e.g. \(\mathtt {3 < (1, 2)}\)), hence standard comparison cannot serve as ordering that we need for basic objects.
- 9.
- 10.
- 11.
References
Böhm, S., Beránek, J., Šurkovský, M.: NDPDA - data set. Technical report, VŠB - Technical University of Ostrava, Czech Republic (2017). http://verif.cs.vsb.cz/sb/data/ndpda_pairs-2017-12.pdf
Heuberger, C., Krenn, D., Kropf, S.: Automata in SageMath - combinatorics meet theoretical computer science. Discret. Math. Theoret. Comput. Sci. 18(3) (2016). http://dmtcs.episciences.org/1475
Lange, M., Friedmann, O.: The PGSolver collection of parity game solvers. Technical report, Ludwig-Maximilians-Universität-München (2009)
McKay, B.D.: Isomorph-free exhaustive generation. J. Algorithms 26(2), 306–324 (1998). https://doi.org/10.1006/jagm.1997.0898
McKay, B.D., Piperno, A.: Practical graph isomorphism, II. J. Symb. Comput. 60, 94–112 (2014). http://www.sciencedirect.com/science/article/pii/S0747717113001193
Černý, J.: Poznámka k. homogénnym experimentom s konečnými automatmi. Mat. Fyz. Cas SAV 14, 208–215 (1964)
Volkov, M.V.: Synchronizing automata and the Černý conjecture. In: Martín-Vide, C., Otto, F., Fernau, H. (eds.) LATA 2008. LNCS, vol. 5196, pp. 11–27. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-88282-4_4
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
A Function \(\mathtt {check\_automaton}\)
A Function \(\mathtt {check\_automaton}\)
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Böhm, S., Beránek, J., Šurkovský, M. (2018). Haydi: Rapid Prototyping and Combinatorial Objects. In: Ferrarotti, F., Woltran, S. (eds) Foundations of Information and Knowledge Systems. FoIKS 2018. Lecture Notes in Computer Science(), vol 10833. Springer, Cham. https://doi.org/10.1007/978-3-319-90050-6_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-90050-6_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-90049-0
Online ISBN: 978-3-319-90050-6
eBook Packages: Computer ScienceComputer Science (R0)