Abstract

In this paper, we study the problem of developing new combinatorial generation algorithms. The main purpose of our research is to derive and improve general methods for developing combinatorial generation algorithms. We present basic general methods for solving this task and consider one of these methods, which is based on AND/OR trees. This method is extended by using the mathematical apparatus of the theory of generating functions since it is one of the basic approaches in combinatorics (we propose to use the method of compositae for obtaining explicit expression of the coefficients of generating functions). As a result, we also apply this method and develop new ranking and unranking algorithms for the following combinatorial sets: permutations, permutations with ascents, combinations, Dyck paths with return steps, labeled Dyck paths with ascents on return steps. For each of them, we construct an AND/OR tree structure, find a bijection between the elements of the combinatorial set and the set of variants of the AND/OR tree, and develop algorithms for ranking and unranking the variants of the AND/OR tree.

Highlights

  • Many information objects have a hierarchical or recursive structure

  • Kruchinin [24] introduces a method for developing combinatorial generation algorithms, which is based on the use of AND/OR trees

  • For solving the first problem, we propose to apply the theory of generating functions, since it is one of the basic approaches in modern combinatorics and generating functions are already known for many combinatorial sets

Read more

Summary

Introduction

Many information objects have a hierarchical or recursive structure In this case, a tree structure is a convenient form of representing such information objects. A tree structure is a convenient form of representing such information objects This allows us to describe an information object by a combinatorial set and apply combinatorial generation algorithms for it. Knuth [1] gives a detailed overview of the formation and development of the direction related to designing combinatorial algorithms. In this overview, special attention is paid to the procedure for traversing all possible elements of a given combinatorial set. Ruskey [2] introduces the concept of combinatorial generation and distinguishes the following four tasks in this area: Mathematics 2020, 8, 962; doi:10.3390/math8060962 www.mdpi.com/journal/mathematics

Objectives
Methods
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call