Problem-solving is commonly known as the method to reach the desired goal or finding a solution to a given situation. In computer science, problem-solving refers to artificial intelligence techniques, including various techniques such as forming efficient algorithms, heuristics, and performing root cause analysis to find desirable solutions. In Artificial Intelligence, the users can solve the problem by performing logical algorithms, utilizing polynomial and differential equations, and executing them using modeling paradigms. There can be various solutions to a single problem, which are achieved by different heuristics. Also, some problems have unique solutions. It all rests on the nature of the given problem.

**Table of contents:**

- Examples of Problems in Artificial Intelligence
- What is a Reflex Agent?
- Problem Solving Techniques
- Heuristics
- Searching Algorithms
- Types of Uninformed Searching Algorithms
- Evolutionary Computation
- Genetic Algorithms

## Examples of Problems in Artificial Intelligence

The developers worldwide are using artificial intelligence to automate systems for efficient utilization of time and resources. Some of the most common problems encountered in day to day life are games and puzzles. These can be solved efficiently by using artificial intelligence algorithms. Ranging from mathematical puzzles including crypto-arithmetic and magic squares, logical puzzles including Boolean formulas and N-Queens to popular games like Sudoku and Chess, these problem-solving techniques are used to form a solution for all these. Therefore, some of the most prevalent problems that artificial intelligence has resolved are the following:

- Chess
- N-Queen problem
- Tower of Hanoi Problem
- Travelling Salesman Problem
- Water-Jug Problem

## What is a Reflex Agent?

There are five primary agents used in Artificial Intelligence based on their capability of perceiving intelligence. These agents are the following:

- Simple Reflex Agents
- Model-Based Reflex Agents
- Goal-Based Agents
- Utility-Based Agents
- Learning Agents

These agents prove helpful in the mapping of states and actions. While solving a complex problem, these agents often fail to comprehend the next step adequately; thus, problem-solving agents solve such scenarios. These agents use techniques like B-tree and heuristic algorithms to solve the problems using artificial intelligence.

## Problem Solving Techniques

Artificial Intelligence is beneficial for solving complex problems due to its efficient methods of solving. Following are some of the standard problem-solving techniques used in AI:

## Heuristics

The heuristic method helps comprehend a problem and devises a solution based purely on experiments and trial and error methods. However, these heuristics do not often provide the best optimal solution to a specific problem. Instead, these undoubtedly offer efficient solutions to attain immediate goals. Therefore, the developers utilize these when classic methods do not provide an efficient solution for the problem. Since heuristics only provide time-efficient solutions and compromise the accuracy, these are combined with optimization algorithms to improve efficiency.

### Example: Travelling Salesman Problem

The most common example of using heuristic is the Travelling Salesman problem. There is a provided list of cities and their distances. The user has to find the optimal route for the Salesman to return to the starting city after visiting every city on the list. The greedy algorithms solve this NP-Hard problem by finding the optimal solution. According to this heuristic, picking the best next step in every current city provides the best solution.

## Searching Algorithms

Searching is one of the primary methods of solving any problem in AI. Rational agents or problem-solving agents use these searching algorithms to find optimal solutions. These problem-solving agents are often goal-based and utilize atomic representation. Moreover, these searching algorithms possess completeness, optimality, time complexity, and space complexity properties based on the quality of the solution provided by them.

### Types of Searching Algorithms

There are following two main types of searching algorithms:

- Informed Search
- Uninformed Search

### Informed Search

These algorithms use basic domain knowledge and comprehend available information regarding a specified problem as a guideline for optimal solutions. The solutions provided by informed search algorithms are more efficient than uninformed search algorithms.

### Types of informed Search Algorithms

There are following main two types of informed search algorithms:

- Greedy Search
- A * Search

### Uninformed Search

These algorithms do not have the privilege of using basic domain knowledge, such as the desired goal’s closeness. It contains information regarding traversing a tree and identifying leaf and goal nodes. Uninformed search also goes by the name of blind search because while traversing, there is no specific information about the initial state and test for the goal. This search goes through every node till reaching the desired destination.

## Types of Uninformed Searching Algorithms

There are following main five types of uninformed search algorithms:

- Breadth-First Search
- Depth First Search
- Uniform Cost Search
- Iterative Deepening Depth First Search
- Bidirectional Search

## Evolutionary Computation

This problem-solving method utilizes the well-known evolution concept. The theory of evolution works on the principle of survival of the fittest. It states that the organism which can cope well with their environment in a challenging or changing environment and reproduce, their future generations gradually inherit the coping mechanism, generating the diversity in new child organisms. In this way, the new organisms are not mere copies of the old ones but have the mixes of characteristics that go along with that harsh environment. Humans are the most prominent example of the evolution process who have evolved and diversified because of the accumulation of favorable mutations over countless generations.

In AI, the evolution concept refers to the trial and error technique:

- Randomly change the old solution to come up with the new one. Does it give better results? If yes, then keep and throw away the rest of the solutions. If not, then discard it.
- Go to point 1.

## Genetic Algorithms

The evolution theory is the basis of the genetic algorithms. These algorithms use the direct random search method. The developers calculate the fit function to cross the two fittest options to create a favorable child. The developers gather the population data and then evaluate each member to calculate every one’s fitness. It is estimated by how well each member fits with the desired requirement. Then the developers use various selection methods to keep the best members. Some of the ways are the following:

- Rank Selection
- Tournament Selection
- Steady Selection
- Roulette Wheel Selection (Fitness Proportionate Selection)
- Elitism

Although genetic algorithms do not always work best, they do not break easily, and the inputs change slightly. The developers commonly use genetic algorithms to generate a high-level solution to optimization and search problems by relying on bio-inspired operations such as mutation, crossover, and selection.

The problem-solving techniques help in improving the performance of programs. The AI-based searching algorithms provide high precision and maximum accuracy to results. These algorithms are faster than others in execution and offer multiple searching methods depending upon the problem faced. Implementing heuristics allows devising to conceptually more straightforward algorithms with cheaper computational cost compared to using optimal algorithms. Evolutionary computations also help in optimization and search problems. Overall, these techniques are the basis for solving high-level problems in AI such as chess algorithm, hill-climbing problem.