A heuristic is a set of rules for solving problems or making decisions. In computer science, heuristics are the foundation of algorithms. Metaheuristics are larger principles or guidelines that establish the heuristics used to create algorithms.

Both heuristics and metaheuristics apply to computer programming. A heuristic applies to a specific problem, while a metaheuristic is a general guideline that is problem-independent. Developers use metaheuristics to produce consistent programming practices, while they develop heuristics for specific solutions.

For example, a software development team may build a search engine using both metaheuristics and heuristics. Below are examples of each:

Search Metaheuristics

The following metaheuristics apply to all search engines:

  1. create an index of searchable data to improve search efficiency
  2. use a "fuzzy search" to search for terms similar to keywords entered by the user, instead of only exact matches
  3. order results by most relevant to least relevant

Search Heuristics

The following heuristics may apply to a specific type of search engine:

  1. produce search results that are most relevant to the user's location
  2. customize search results based on information stored in the user's account
  3. use search history to provide a list of autocomplete search phrases

The first list above provides general guidelines for an effective search engine. The second list provides specific features a search engine should have. In some cases, heuristics and metaheuristics may overlap in their scope. The best way to distinguish between the two is to determine if it is a general rule (metaheuristic) or if it applies to a specific problem/solution (heuristic).

Updated December 5, 2020 by Per C.

quizTest Your Knowledge

Which of the following is not a valid octal number?

Correct! Incorrect!     View the Octal definition.
More Quizzes →

The Tech Terms Computer Dictionary

The definition of Metaheuristic on this page is an original definition written by the team. If you would like to reference this page or cite this definition, please use the green citation links above.

The goal of is to explain computer terminology in a way that is easy to understand. We strive for simplicity and accuracy with every definition we publish. If you have feedback about this definition or would like to suggest a new technical term, please contact us.

Sign up for the free TechTerms Newsletter

How often would you like to receive an email?

You can unsubscribe or change your frequency setting at any time using the links available in each email.

Questions? Please contact us.