What is a combination of algorithms and combinations?

Source: Internet
Author: User
What is a combination of algorithms and combinations? Excerpt from combinatorial algorithms. Generation, enumeration, and search by Donald L. kreher/Douglas R. Stinson
Translated by Liu Jianwen (http://blog.csdn.net/keminlau)

What is a composite algorithm?

In this book, our main interest is to study some algorithms involving composite structures. These algorithms can be classified in non-forms based on the purpose of the algorithm (desired purpose:

Generation: Construct the whole of a certain type of Composite Structure

Examples of composite structures can be: Set (subsets), arrangement, Division (partitions), tree, and Catalan families. The generation algorithm lists all objects based on the specified order, such as Lexicographic Order ). This (before the entire sequence is completely generated) is of great value to determine the position of an object in the generated sequence in advance (desirable ). This leads to a topic-ranking and unranking. This topic is detailed in chapter II and III.

Kemin: the so-called "structure" refers to the existence of "order" relationships. The problem is whether such "order" is equal or biased. Are there any other possible order relationships?
In addition, composite Mathematics (Jiayu) is also called composite design. It is used to study the existence and construction of a configuration (subset system) that meets certain specific requirements.

Enumeration: calculates the total number of composite structures of a specific type.

The previous generation algorithm itself is also an enumeration algorithm, because every time an object is generated, a composite structure is enumerated. However, this is not the case. A combined structure counting algorithm is not a generation algorithm. It is easier to calculate the total number of different composite structures of a special type than to generate them. For example, calculate the number of combinations:
How many combinations of k elements are getting from n elements is much harder than generating these combinations.

In many cases, two objects with different forms have the "same" structure. This phenomenon is called homogeneous (the concept of formalizing formalized is "homogeneous ). For example, if we transform the nodes of the same graph into another thing, the two graphs are homogeneous, but the nodes represent the content of different problems.

Search: Search for at least one example of a specific type of combination structure (if any ).

A typical example of a search problem is to find the Clique value of the size of a graph structure ). Generating algorithms can be used to search for a specific type of composite structure, but this method is inefficient for many questions (Kemin: Why is it inefficient? Generate "yes", no matter "good "?). In general, it is easier to search for a structure than to enumerate the total number of Composite Structures and generate these composite structures. In other words, the search algorithm is easier to implement than the Count algorithm and the generate algorithm.

A variant of the search problem isOptimization Problems. The optimization algorithm tries to find the optimal (optimal) Example of a combination structure. So what is best? The definitions of the best standards for each specific combination structure or problem are different. The general scale is profit or cost ). For example, the biggest threshold of a graph is to find the maximum size of a graph structure, that is, the maximum number of nodes contained in the graph.

In addition, because all the productive or social activities that humans are engaged in are purposeful and their behaviors are always carried out under the control of specific values or aesthetic orientations, we often face the Decision-Making Problem of solving a feasible or even optimal solution. It can be said that the optimization idea is the soul of mathematical modeling. As a special branch of mathematics, the optimization method has a wide range of practical applications.

What is a combination problem?

Based on the different nature of the answer, we can divide the combined question into different types: determining the question, searching the question, the best value question, and the optimization question. See the four variants of the problem:

Describe the problem)

Instance:
Value: P1, P2 ,..., Pn-1;
Weigh w0, W2 ,..., Wn-1;
Capacity m; and target value p
Please:
Whether to store N-tuples [x0, X1 ,..., Xn-1] ε {0, 1} ^ n satisfied
Σ (I = 0, n-1) PI • xi ≥ p
And
Σ (I = 0, n-1) WI • Xi ≤ m?

 

The answer to the question is "yes" and "no ". To solve the problem determination algorithm, you only need to provide a correct "yes" and "no" for each problem instance.

Search)

Instance:
Value: P1, P2 ,..., Pn-1;
Weigh w0, W2 ,..., Wn-1;
Capacity m; and target value p
Find out:
N-tuples [x0, X1 ,..., Xn-1] ε {0, 1} ^ n satisfied
Σ (I = 0, n-1) PI • xi ≥ p
And
SIGMA (I = 0, n-1) WI • Xi ≤ m

If such a tuple exists

The search question is almost exactly the same as the query question, except that the answer to the question is an N-tuple that meets the condition, not just "yes" and "no ".

Optimal Value)

Instance:
Value: P1, P2 ,..., Pn-1;
Weigh w0, W2 ,..., Wn-1;
Capacity m;
Find out the maximum value of P = Σ (I = 0, n-1) PI • Xi, meeting
SIGMA (I = 0, n-1) WI • Xi ≤ m
And
N-tuples [x0, X1 ,..., Xn-1] ε {0, 1} ^ n

The instance with the best value has no specific target value, and it is the maximum value.

Optimization)

Instance:
Value: P1, P2 ,..., Pn-1;
Weigh w0, W2 ,..., Wn-1;
Capacity m;
Find out: N-tuples [x0, X1 ,..., Xn-1] ε {0, 1} ^ n satisfied
P = Σ (I = 0, n-1) PI • Xi is the maximum value,
And
SIGMA (I = 0, n-1) WI • Xi ≤ m

The optimization problem is very similar to the best value problem. The only difference is that the optimization problem is to find the n-tuples [x0, X1 ,..., Xn-1] ε {0, 1} ^ N, not just a value.

Optimization problems generally have some constraints to be met. A n-tuples that meet the constraints are called feasible solutions ). For example, in the above question, the N tuples [x0, X1 ,..., Xn-1] ε {0, 1} ^ n can meet the condition Σ (I = 0, n-1) WI • Xi ≤ m is called feasible n tuples. Each feasible solution (N tuples) has a corresponding target function. The variable is generally an integer or a real number to calculate the best value. In the above problem, the target function is P = Σ (I = 0, n-1) PI • Xi maximum.

 

This book is intended to serve as an introduction to the general use of composite algorithms. Textbooks on composite algorithms were available in 1970s, but they are outdated. The current textbooks are not too comprehensive (only about algorithm theory), but too specialized (about graph algorithms ). We feel it is necessary to compile a less extensive and less specialized textbook on composite algorithms. It focuses on the basic technology of Composite Algorithm Design-generating algorithms, counting algorithms, and search algorithms.
This book provides a moderate amount of mathematical knowledge, which is necessary to understand algorithms.
The code in the book can be downloaded on the following website: http://www.math.mtu.edu /~ Kreher/cages.html

The book is organized into eight chapters.
Chapter 1 provides some background and notation for fundamental concepts that are used throughout the book.
Chapters 2 and 3 are concerned with the generation of elementary combinatorial objects such as subsets and permutations, to name two examples.
Chapter 4 presents the important combinatorial search technique called backtracking. It contains des a discussion of pruning methods, and the maximum clique problem is studied in detail.
Chapter 5 gives an overview of the relatively new area of heuristic search algorithms, including hill-climbing, simulated annealing, Tabu Search and genetic algorithms.
In chapter 6, we study several basic algorithms for permutation groups, and how they are applied in solving certain combinatorial enumeration and search problems.
Chapter 7 uses techniques from the previous chapter to develop algorithms for testing isomorphism of combinatorial objects.
Finally, chapter 8 discusses the technique of basis ction, which is an important technique in solving certain combinatorial search problems.

 

    Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.