# Introduction

Suppose you are looking to buy a house in a city at a reasonable price. You are probably looking to choose the best home based on your budget. So a simple and algorithmic solution is to start with the cheapest houses in the city and check all the houses in the city one by one from street to street in the most expensive houses. In This way, you can find the best house after examining all the houses in the city. But the important thing is that it takes several years! So you will probably go for another method.

The example above was a case of a normal algorithm. The algorithm told you to look at all the houses in the city one by one and then choose the best one. This algorithm guarantees that you will definitely choose the best house, but instead, it is very slow and in fact, it does not cost you time at all (to visit all the houses).

So what comes to mind?

Suppose you have already heard from your friends that in some areas, there are houses with affordable prices. In fact, instead of visiting all the houses in the city according to a definite and definite algorithm, you were able to use your initiative and exploration (based on previous experience) to quickly limit your choices and choose a house that fits your budget. As you probably know, this house was probably not the best house, but considering the time it saved, it seemed like a sensible choice.

In the example above, the second method was the Heuristic method. In fact, you used the knowledge you already had and reached a level of reasonable optimality (instead of choosing the best definitive option).

## Heuristic

In fact, the first method (visiting all the houses) is known as the Brute Force method, and the second method is known as a heuristic. That is, we have a series of algorithms that can search and view all the data, can give a completely accurate and definite answer. These algorithms are slow and naturally useless for problems with large data and dimensions. In contrast, there are a number of other algorithms that can take the initiative to search for specific pieces of data, thereby speeding up response generation. Innovative algorithms, however, do not guarantee that the answer obtained is the best possible answer. This means that if you look further, you will probably find a better answer. As we saw in the example above, an innovative approach requires knowing the problem. In other words, an innovative algorithm will be responsive to a particular problem.

## Meta Heuristic

This is where a number of other algorithms come into play that can search for optimal points without knowing the problem. These methods, which are the subject of the current course, are metaheuristic algorithms or Meta-Heuristic. In fact, meta-heuristic algorithms are able to solve a problem with reasonable speed and accuracy without knowing the problem, by providing a general solution. Moreover, these methods are called Problem Independent.

Algorithms such as binary search or dynamic programming belong to the first category (Brute Force) and algorithms such as genetics or ant colony fall into the category of meta-heuristic algorithms.