Still worrying about mathematical modeling? Take you to take a look at the classic algorithms necessary in digital simulation competitions

 

Preface

Mathematical modeling competition is one of the most important competitions for undergraduates and graduate students, including the National College Student Mathematical Modeling Contest (commonly known as the "National Competition") and the American College Student Mathematical Modeling Competition (commonly known as "Meisai"). Achieving good results in these competitions will not only help to secure research and find a job, but more importantly, form a scientific thinking mode. The following are two matlab columns carefully compiled by the blogger, including entry to proficiency and actual combat content. Small partners who need it can subscribe according to their own needs.

MATLAB takes you from entry to master in 30 days

https://blog.csdn.net/wenyusuran/category_10614422.html

MATLAB in-depth understanding of advanced tutorial (with source code)

https://blog.csdn.net/wenyusuran/category_2239265.html

There are also application example source codes of various algorithms in the blogger's resources, and small partners who need it can pick it up.

 

image

 

 01 Monte Carlo algorithm

In 1946, three scientists Johnvon Neumann, Stan Ulam and Nick Metropolis from the Las Amos National Laboratory in the United States jointly invented the Monte Carlo method.

Monte Carlo method (Monte Carlo method), also known as random sampling or statistical simulation method, is a very important type of numerical calculation method guided by probability and statistics theory. This method uses random numbers (or more commonly pseudo-random numbers) to solve many computational problems.

Because the traditional empirical method cannot approximate the real physical process, it is difficult to obtain satisfactory results, while the Monte Carlo method can truly simulate the actual physical process, so the problem solving is very consistent with the reality, and very satisfactory results can be obtained.

The basic principles and ideas of the Monte Carlo method are as follows:

When the problem to be solved is the probability of a certain random event, or the expected value of a certain random variable, through a certain "experimental" method, the probability of this random event is estimated by the frequency of this event, or the random event is obtained Some numerical characteristics of the variable, and use it as the solution of the problem.

Give a chestnut to understand the Monte Carlo method intuitively:

Suppose we want to calculate the area of ​​an irregular graph, then the degree of irregularity of the graph is directly proportional to the complexity of analytical calculations (such as integration). How is the Monte Carlo method calculated? Suppose you have a bag of beans. Sprinkle the beans evenly on the figure, and then count how many beans there are in the figure. The number of beans is the area of ​​the figure. The smaller your beans and the more you sprinkle, the more accurate the results will be. Here we are going to assume that the beans are all on the same plane and there is no overlap between them.

image

The Monte Carlo method grasps the geometric quantity and geometric characteristics of the movement of things, and uses mathematical methods to simulate it, that is, conduct a digital simulation experiment. It is based on a probability model. According to the process described by this model, the results of simulation experiments are used as the approximate solution of the problem.

The Monte Carlo method is very different from the general calculation method. The general calculation method is very difficult to solve multi-dimensional or complex factors, while the Monte Carlo method is relatively simple to solve this problem. Its characteristics are as follows:

a. Track particles directly, with clear physical thinking and easy to understand;

b. The random sampling method is used to simulate the particle transport process more realistically, reflecting the law of statistical fluctuations;

c. It is not limited by the complexity of the system, such as multi-dimensional and multi-factors, and is a good method to solve the problem of particle transportation in complex systems.

and many more

 02 Data processing algorithms such as data fitting, parameter estimation, interpolation, etc.

We usually encounter a large amount of data to be processed, and the key to processing data lies in these algorithms, usually using Matlab as a tool.

Data fitting is used in mathematical modeling competitions. Many problems related to graphics processing are related to fitting. An example is the 1998 Mathematical Modeling American Contest A, the three-dimensional interpolation processing of biological tissue slices, and 94 A Questions about opening the road in the mountains, interpolation calculation of mountain altitude, and the noisy uproar of "SARS" that may be tested also need to use data fitting algorithms to observe the direction of the data for processing.

image

There are many ready-made functions that can be called in MATLAB for such problems. If you are familiar with MATLAB, these methods can be used with ease.

 03 Linear programming, integer programming, multiple programming, quadratic programming and other programming problems

Many problems in mathematical modeling competitions are related to mathematical programming. It can be said that many models can be reduced to a set of inequalities as constraints and several functional expressions as objective functions.

When encountering this type of problem, the solution is the key. For example, Problem B in 1998. Many inequalities can be used to describe the problem clearly. Therefore, it is more convenient to use Lindo, Lingo and other software to solve the problem after enumerating the plan. Therefore, you need to be familiar with these two. Software.

 04 Graph Theory Algorithm

There are many such problem algorithms, including: Dijkstra, Floyd, Prim, Bellman-Ford, maximum flow, binary matching and other problems.

For this type of graph algorithm, please refer to Introduction to Algorithms-Introduction to Algorithms, Chapter 22-Chapter 26 on Graph Algorithms.

image

 05 Computer algorithms such as dynamic programming, backtracking search, divide and conquer algorithm, branch and bound

In mathematical modeling competitions, for example, in 1992, problem B used branch and bound method, and problem B in 1997 was a typical dynamic programming problem. In addition, problem B in 1998 embodied the divide and conquer algorithm.

image

This aspect is similar to the problems in the ACM programming competition. It is recommended to look at the introduction to algorithms, and books related to computer algorithms such as "Computer Algorithm Design and Analysis" (Electronic Industry Press).

 06 Three classic algorithms of optimization theory: simulated annealing, neural network, genetic algorithm

The optimization theory has developed rapidly in the past ten years, and the three types of algorithms such as simulated annealing, neural networks, and genetic algorithms have developed rapidly.

In mathematical modeling competitions: for example, the simulated annealing algorithm for problem A in 1997, the neural network classification algorithm for problem B in 00, and the problem of problem B in 2001 can also use neural networks.

There is also a problem with the BP algorithm in 1989 in the US competition. The BP algorithm was just proposed in 1986 and tested in 1989, indicating that the competition questions may be an abstract embodiment of today's cutting-edge technology.

The Gamma Knife Problem of Problem B in 2003 is also the subject of current research. At present, the best algorithm is genetic algorithm.

image

 

 07 Grid Algorithm and Exhaustive Method

The grid algorithm is the same as the exhaustive method, except that the grid method is an exhaustive list of continuous problems.

For example, if an optimization problem is required in the case of N variables, then points are collected in the space where these variables are available. For example, if M+1 points are taken in the interval [a;b], then the loop needs to be performed (M+1 ) N operations, so the amount of calculation is very large.

In mathematical modeling competitions: For example, in 1997, question A and 99 question B can be searched by the grid method. This method is best performed in a computer with a faster calculation speed, and it must be done in a high-level language. It's good not to use MATLAB to make the grid, otherwise it will be too long.

Everyone is familiar with the exhaustive method, so needless to say.

 08 Some continuous discretization methods

The programming of most physical problems is related to this method. Physical problems reflect that we live in a continuous world, and computers can only process discrete quantities, so we need to discretely process continuous quantities.

This method is widely used and is related to many of the above algorithms. In fact, the grid algorithm, Monte Carlo algorithm, and simulated annealing all use this idea.

 09 Numerical Analysis Algorithm

Numerical analysis (numerical analysis) is a branch of mathematics, which mainly studies the algorithms of continuous mathematics (different from discrete mathematics).

If a high-level language is used for programming in the competition, then some commonly used algorithms in numerical analysis such as equation solving, matrix operations, function integration and other algorithms need to write additional library functions to call.

This type of algorithm is specifically designed for high-level languages. If you are using MATLAB or Mathematica, you don't need to prepare, because there are many functions in numerical analysis and general mathematical software is available.

 10 Image processing algorithm

In mathematical modeling competitions: For example, in the 01 year A question you need to read BMP images, the US 98 year question A requires you to know the three-dimensional interpolation calculation, and the 2003 question B requires more, not only programming calculations, but also processing , And there are many pictures to be shown in digital and analog papers, so image processing is the key. To do this kind of problem well, it is important to learn MATLAB well, especially the part of image processing.

image

Guess you like

Origin blog.csdn.net/wenyusuran/article/details/114093268