Skip to main content

Haydi: Rapid Prototyping and Combinatorial Objects

  • Conference paper
  • First Online:
Foundations of Information and Knowledge Systems (FoIKS 2018)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    https://pypy.org/.

  2. 2.

    https://github.com/dask/distributed.

  3. 3.

    https://docs.it4i.cz/salomon/introduction/.

  4. 4.

    http://haydi.readthedocs.io/.

  5. 5.

    http://doc.sagemath.org/html/en/reference/combinat/sage/combinat/tutorial.html.

  6. 6.

    https://www.maplesoft.com/support/help/Maple/view.aspx?path=combstruct.

  7. 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. 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. 9.

    https://github.com/dask/distributed.

  10. 10.

    https://networkx.github.io/.

  11. 11.

    https://github.com/spirali/qit.

References

  1. 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

  2. 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

  3. Lange, M., Friedmann, O.: The PGSolver collection of parity game solvers. Technical report, Ludwig-Maximilians-Universität-München (2009)

    Google Scholar 

  4. McKay, B.D.: Isomorph-free exhaustive generation. J. Algorithms 26(2), 306–324 (1998). https://doi.org/10.1006/jagm.1997.0898

    Article  MathSciNet  MATH  Google Scholar 

  5. McKay, B.D., Piperno, A.: Practical graph isomorphism, II. J. Symb. Comput. 60, 94–112 (2014). http://www.sciencedirect.com/science/article/pii/S0747717113001193

    Article  MathSciNet  Google Scholar 

  6. Černý, J.: Poznámka k. homogénnym experimentom s konečnými automatmi. Mat. Fyz. Cas SAV 14, 208–215 (1964)

    Google Scholar 

  7. 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

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jakub Beránek .

Editor information

Editors and Affiliations

A Function \(\mathtt {check\_automaton}\)

A Function \(\mathtt {check\_automaton}\)

figure k

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG, part of Springer Nature

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics