1 Introduction

Game theory can be defined as the science of modeling and evaluation of the behavior of decision-making systems. Game theory is trying to obtain the mathematical behavior of a system in a strategic or game-based manner, in which, the individual’s success in the choosing process depends on the choice of others. In other words, one of the goals of the game theory is to predict possible events of decision-making games [119]. Therefore, the concepts of game theory can be used in an environment where the roles and actions of multiple agents affect each other. The ultimate goal of the game theory is to find the optimal solution(s) for players. This theory, which was founded more than half a century ago, has been used to investigate issues of various sciences, including computer science [151]. Computer networks [3, 97, 102, 140], distributed computing [1, 2, 52, 57], data warehousing and mining [11, 66, 74, 154,155,156, 158,159,160, 180], cloud computing [7, 25, 46, 127, 169, 183], and decision support systems [8, 69, 157] are some of the most popular issues in the computer science which can be modeled as a game theory problem.

Optimization means that we look for the values among the parameters of a function which minimize or maximize that function. The set of all appropriate values for these parameters is called possible solutions, and the best value of the set of possible solutions is called the optimal solution. Considering the importance of optimization in different research domains, several optimization methods have been presented so far. The optimization algorithms, which cover both types of maximization and minimization issues, have many applications in resource allocation, scheduling, decision making, etc. [135].

Game theory and optimization have a conceptual overlap. In other words, the game theory is a kind of approximating optimization. In this paper, we review the combined use of game theory and optimization methods in optimization problems. This combination is possible in three different ways. In the first case, game theory is used to improve the optimization algorithms [29, 84, 138]; in the second one, it is possible to solve the games of a game theory problem using optimization methods [96, 121, 179]; and finally in the third case, game theory and optimization algorithms can be used together to solve a problem [26, 82, 148].

The remaining parts of the paper are organized as follows: Sect. 2 describes the basic concepts of the game theory and existing types of games. In Sect. 3, optimization is defined and its algorithms are introduced. Classification of the combined use of game theory and optimization algorithms is presented in Sect. 4, and the related researches of its different categories are reviewed and evaluated. The future direction for related researches is represented in Sect. 5, and finally, the conclusion of the review is given in Sect. 6.

2 Concepts of Game Theory

In this section, we introduce the most important concepts of the game theory and the most important types of games. The basic concepts of game theory are as follows:

  • Game Game is a model of an interactive state between entities or groups of entities.

  • Player Players are the basic entities of the games. This entity is the decision maker of the game that can be a person, a group, a concept, and so on.

  • State States are the possible situations of the game that the players can be in.

  • Action The set of all possible works that players of the game can do in different states is called actions.

  • Payoff The score that awarded to the action of a player in a game (or in one step of the game) is called payoff which can be positive or negative.

  • Strategy A player’s strategy is the complete set of actions that player can do in each state of the game. Each player has a number of strategies that can be selected based on the conditions and the objective(s).

  • Equilibrium Equilibrium is the point of a game at which no player tends to change, and any change leads to worsening the payoffs of all players.

2.1 Types of Strategies

Strategies of the game theory are divided into two categories of pure strategy and mixed strategy. A pure strategy completely determine the playing strategies of players. This strategy defines the action that a player must do for any state. A player’s strategic set is a set of pure strategies which is possible for that player. Each player has optimized strategy (strategies) and the value of the game is the same for all players [119]. Several researches have used pure strategy for their game theory-based methods [20, 42, 47, 70, 76, 77, 130, 173, 181, 184].

A mixed strategy is the assignment of a probability to any pure strategy. This strategy allows a player to randomly choose a pure strategy. Because probabilities are continuous, there are infinite mixed strategies for a player, even if the set of pure strategies is finite. It is obvious that a pure strategy can be considered as a special case of mixed strategy in which a specific pure strategy is selected with probability 1, and the other strategies are selected with probability 0. Each player can choose the pure strategy or the mixed strategy for decision making. For deterministic actions, the pure strategies, and for probabilistic actions, mixed strategies are selected [119]. Mixed strategies have been used in different game theory-based methods of the literature [33, 34, 39, 64, 92, 129, 132, 145].

2.2 Nash Equilibrium

The point in which none of the players of the game tends to change is the equilibrium point. The Nash equilibrium is a game action profile, in which, assuming constant actions for other players, condition of each player will be worse by each change. In other words, it is an action profile that does not motivate players to change their conditions, assuming constant actions for other players [55, 168]. The Nash equilibrium concept is used to analyze the results of the strategic interaction of several decision makers. In other words, the Nash equilibrium is a way to predict the results of the dependent decisions which are simultaneously made by several players.

2.3 Types of Games

Games can be categorized based on various features in the game theory. To solve a problem using the game theory, depending on the nature of the problem, the appropriate type of the game should be selected. In this sub-section we introduce some types of the games. There are also some other categories of the types of the games. In this subsection, the most important categories of game types are represented.

2.3.1 Static Games Versus Dynamic Games

The game in which the players make their decisions simultaneously is a static game. In this way, each player does not know anything about the other’s decisions when making a decision [182]. Static games have been used in some of researches of this area [40, 54, 59, 60, 86, 103, 123]. A dynamic game is a game in which players do not necessarily perform their actions simultaneously. In this way, players will consider the made decisions of other players in their next decisions. A static game is a special case of dynamic games. In a dynamic game, some actions can be performed simultaneously and some other action can be performed at different times [182]. Various researches have used dynamic game for optimization [5, 12, 22, 24, 61, 98, 99, 107, 171, 196].

2.3.2 Zero-Sum Games Versus Non Zero-Sum Games

Zero-sum games are the games that their total value is constant during the game and will not decrease or increase. In these games, one player’s profit is associated with the loss of another player. Zero-sum game is a win-loss game and there is always a loser for each winner. As an example in a two-player game, the zero-sum game condition is defined as Eq. (1).

$$u_{1} (s_{1} ,s_{2} ) + u_{2} (s_{1} ,s_{2} ) = 0$$
(1)

In which, ui and si are the utility and strategy of the player i, respectively. Obviously, Eq. (1) means that \(u_{1} = - u_{2}\) [182]. There exist some examples of using zero-sum games for different application in the literature [27, 31, 41, 50, 89, 108, 113, 126, 139].

In contrast, there are strategies in the non zero-sum games that are beneficial to all players. In other words, the total sum of the profits and losses of the involved players is less than or more than zero [182]. Non zero-sum games have been also used for various applications [15, 81, 89, 90, 131, 137, 149, 150, 194].

2.3.3 Cooperative Games Versus Non Cooperative Games

If players compete individually in a game and try to raise their own profits alone, then it is a non-cooperative game. Non-cooperative games focus on individual player’s strategies and predicting their selected strategies [18, 19, 35, 44, 88, 105, 115, 162, 178, 187, 189, 193].

On the other hand, if in a game, different groups of players form several coalitions try to take advantage of their coalition, then that game will be cooperative. For example, if the set of players is N = {1, 2, 3, 4, 5, 6}, one of the players’ coalition states can be {{1, 2, 3}, {4, 5}, {6}} [18, 28, 3651, 59, 63, 95, 146, 174, 176].

2.4 Evolutionary Game Theory

Evolutionary game theory means the theoretical application of games in evolving populations in biology. In this theory, instead of direct analysis of the properties of a game, a community of players with different strategies is simulated and uses natural selection methods for their evolution. Evolutionary game theory provides a framework for concepts, strategies, and analyzes which can model Darwin’s competition [152]. There are two different approaches of evolutionary game theory. The first approach uses the concept of sustainable evolutionary strategy as the basic tool of analysis. The second approach generates a clear pattern of the process of changing of strategies in the society and investigates the characteristics of its evolutionary process. One of the most important differences between the evolutionary game theory and classic game theory is the assumption of the wisdom of players. In the classic game theory, it is always assumed that players are wise and intelligent. However, using the evolutionary game theory, provide the possibility of entrance of non-intelligent players to the game. Furthermore, when the classic game theory is not able to predict the equilibrium (multiple equilibrium situations), evolutionary game theory can determine the point or points of equilibrium based on its own equilibrium-solving process [152]. Recently, evolutionary game theory have been used in several applications [9, 71, 100, 112, 144, 172, 197].

3 Optimization

Optimization is the ability to find the best solution among existing solutions. Optimization techniques are exploited in the design and maintenance of many engineering, economic and even social systems to minimize the costs or maximize profits. Due to the widespread use of optimization in different sciences, this topic has grown a lot, so that it is studied in mathematics, management, industry, computers, and many other branches of science, and different titles, such as mathematical programming, are used to refer it. To solve an optimization problem, it must be modeled. Modeling means that we describe the problem with variables and mathematical relations, so that it simulates the problem of optimization. To develop the mathematical model of an optimization problem, the following four components should be fully characterized:

  1. 1.

    The set of optimization variables x1, x2…, xn.

  2. 2.

    The objective function f(x) that applies on the optimization variables and returns a real value. This objective fuction should be minimized or maximized (optimized) during the optimization process.

  3. 3.

    A set of equality or non-equality constraints that should hold on the optimization variables.

  4. 4.

    The domain sets D1, D2,…, Dn as the domains of the optimization variables x1, x2,…, xn.

Most optimization problems can be described completely by specifying the four mentioned components. It is also possible that an optimization problem has no constraint or its optimization variables’ domains are the entire space [135].

There is no comprehensive categorization for optimization methods and they can be categorized from different specific perspectives. For example, optimization methods can be categorized based on the number of their objective functions [104], using probabilistic or deterministic methods [124], using nature-inspired methods [16], etc.

In general, optimization methods can be divided into two groups of deterministic (or exact) (classic) methods [109] and approximate (or random) (modern) methods [122]. The deterministic methods are capable of finding the optimal solution in a precise manner. Since a lot of computational processes are required to optimization of NP-hard problems, the deterministic methods are not appropriate for optimizing such problems and their execution times grow exponentially with the dimensions of the problems. Random methods are able to find proper solutions (close to optimal) for short-time solving of NP-hard problems [122]. Each of these categories can also be subdivided into other sub-categories. The most popular classic and modern optimization methods are listed in Table 1.

Table 1 The most popular classic and modern optimization methods

There are also other algorithms that can be grouped into classic and modern algorithms. Only the most important algorithms are outlined here.

3.1 Multi-Objective Optimization

Multi-objective optimization is one of the most common and widely used research areas among optimization topics. In multi-objective optimization, we deal with problems that have two or more objective functions which are often in conflict. In this type of problem, you must simultaneously optimize all objective functions. Optimization of these functions can be minimization or maximization of all functions or a combination of minimization and maximization [161]. Such problems are being increasingly discussed in various branches of basic science, engineering, and economics, and thus, appropriate methods for solving them is required. For modeling of multi-objective optimization problems, we have the components optimization variables, constraints, and domains similar to single-objective optimization problems modeling, and k numbers of objective functions f1(x),…, fk(x), Which defined as Eq. (2).

$$F\left( x \right) \, = \, \left[ {f_{1} \left( x \right), \ldots , \, f_{k} \left( x \right)} \right]^{T}$$
(2)

By having several objective functions instead of an objective function, the concept of optimality is changed. This is because, in multi-objective optimization problems, instead of finding a solution to global optimization, it is always important to find an appropriate compromise and intermediate. For this purpose, “pareto” presented another concept of optimality. A solution X ε Ω is pareto optimal (with respect to the space Ω) if and only if there is no X’ε Ω such that \(v = F\left( {X^{\prime } } \right) = \left( {f_{1} \left( {x^{\prime } } \right), \ldots , \, f_{k} \left( {x^{\prime } } \right)} \right)\) dominates \(u = F\left( X \right) = \left( {f_{1} \left( x \right), \ldots , \, f_{k} \left( x \right)} \right)\) [32].

4 Combined Use of Game Theory and Optimization

The game theory and optimization are conceptually close to each other. Game theory can be considered as a kind of random optimization. In many studies, games theory and optimization have been used together, or one of them has been used in another’s solution. In this section, we present a new general categorization of researches of this area. This categorization is depicted in Fig. 1. We use four factors to categorize the combination of optimization methods and game theory. These four factors are using classic or modern methods of optimization, the type of the optimization method, single-objective or multi-objective optimization method, and the type of the game theory. In the following, we examine these four factors and represent the levels of our classification.

Fig. 1
figure 1

Combined use of game theory and optimization methods

  • First level: classic or modern optimization

In the first level, using a classic or a modern optimization method is considered. Accordingly, this level is divided into two classic and modern categories.

  • Second level: Type of optimization method

The second level of classification is based on the type of the used optimization method. The most popular types of classic and modern optimization were introduced in Table 1. Based on researches of this area, classic methods at this level are divided into seven categories: linear programming, non-linear programming, quadratic programming, integer programming, mixed integer linear programming, stochastic programming, and convex optimization. Based on the researches of this field, modern algorithms can be also divided into nine categories, including genetic algorithm, Imperialist competitive algorithm, ant colony optimization, particle swarm optimization, simulated annealing, shuffled frog leaping, differential evolution, tabu search, and coral reefs optimization algorithm.

  • Third level: Single-objective or multi-objective

In the third level, the single-objective or multi-purpose optimization problem is considered.

  • Forth level: Type of game theory

At this level, the type of game theory is considered. Game theory types include classic game theory and evolutionary game theory. Classic game theory can be also divided into non-cooperative game theory and cooperative game theory. Researches can be divided into at most two categories of classic and evolutionary game theories.

4.1 Classic Optimization Methods

In this section, we will review the combined use of game theory and optimization methods. Since the classic methods provide a precise optimization and game theory is a kind of random optimization, classic methods have been usually used to solve game theory problems. In some cases, they have been used together to solve a specific problem.

4.1.1 Linear Programming

In an optimization problem, if the objective function(s) and all constraint functions are linear, then that problem is a linear programming problem. In fact, linear programming is a method that finds the minimum or maximum value of a linear function on a convex polygon. This convex polygon is in fact a graphical representation of some inequality constraints over the functions’ variables. Linear programming can achieve the best result in some specific conditions [30]. There are many algorithms for solving linear programming problems, including simplex algorithm, criss-cross algorithm, Karmarkar’s algorithm, affine scaling, etc.

A lot of research has been carried out on the combined use of game theory and linear programming [48, 96, 106]. In most of these studies, a game has been solved using linear programming. That is, the game’s Nash equilibrium is calculated. In these researches, both single-objective and multi-objective optimizations have been considered.

A matrix game has at least one answer. In general, a positive-matrix game can be modeled as a dual linear programming problem. Hence, simplex algorithm can find the answer(s) of a matrix game. The steps to solve a simulated game as a linear programming problem using the simplex algorithm are as follows [48].

  1. 1.

    Create the matrix of the game.

  2. 2.

    If the solution is completely clear, set it as the obtained solution of the problem.

  3. 3.

    Check the dominance of the rows and columns. All dominated rows and columns should be eliminated in this step.

  4. 4.

    Make sure the amount of the game is positive. To do this, just add the resulted value of subtracting the largest negative entry of the matrix from 1, to all matrix entries. Consider this added value (if any) as k.

  5. 5.

    Suppose G is the m × n matrix of the game. Consider e as n-component row vector which all of its entries are 1, and f as m-component column vector which all of its entries are 1. Also consider z as n-component row vector and x as m-component column vector. Given the mentioned assumptions, create the following matrix:

    G

    f

    e

    0

  6. 6.

    Run the simplex algorithm to the point that all indicators are non-positive. Calculate the optimal answers to the dual linear programming problem as z0 and x0, and assume that t = z0 and f = ex0. We know that t > 0.

  7. 7.

    The answers of the main matrix can be calculated using following equations:

    $$p^{0} = \frac{{z^{0} }}{t}, q^{0} = \frac{{x^{0} }}{t}, {\text{and}} v = \frac{1}{t} - k$$

Eliminated rows and columns will be replaced by additional zero components in strategy vectors. The type of game that is considered in this method is non-cooperative.

In [96], there is a way to solve cooperative games. In this strategy, for each coalition, a real-value variable is considered. The value of this variable is equal to the total amount of benefits of the members of the coalition. The appropriate coalitions are selected in the game based on this real value. In this way, the game is modeled as a dual linear programming problem.

In [106], an iterative approach is presented to solve the multi-objective linear programming problem based on the principles of game theory. This method is actually provided for solving the problem of optimizing the utilities of several decision makers at the same time and with the same constraints. Decision makers are players of the game and form coalitions to solve the problem. So the game is a cooperative one. The proposed method consists of a basic phase and repeats this phase to a satisfactory level. This phase involves solving a single linear programming problem, which is easy to accomplish. The unique answers generated in different iterations are the objective indicators. These indicators are used as guidelines for determining the strategy of the next iteration, and this work continues until the game reaches the equilibrium. The main advantage of this method is that it can be easily extended to multi-objective non-linear programming problems. Therefore, it is appropriate in order to solve a range of optimization problems. Lucchetti [96] and Matejas and Peric [106] show that the linear programming can easily complete a game and find point(s) of equilibrium.

4.1.2 Non-Linear Programming

If at least one of the objective functions or constraint functions of an optimization problem is not linear, that problem is called non-linear programming problem. Some of the most popular algorithms for solving the non-linear programming problems are the Lagrangian and the gradient descendant methods [14].

In [72], by combining multi-objective optimization method and evolutionary game theory, a multi-frequency offsets estimation method was proposed. Multi-frequency offsets estimation is a multi-objective search, which is presented as a non-linear programming problem with several objective functions. In this way, different frequency offsets were considered as players in the evolutionary game theory to turn the problem into find an equilibrium point in the game. Thus, evolutionary game theory can solve a multi-objective nonlinear programming problem. The main advantage of the mentioned method is to avoid an objective function has several optimum solutions.

4.1.3 Quadratic Programming

If the objective function is a quadratic one and all of the constraint functions are linear, then it is quadratic programming problem. The quadratic programming problem is a special case of non-linear programming problem that is closest to the linear programming problems. Traditional quadratic programming models require certain parameters with constant values. This model is widely used to solve real world problems [120]. Researches conducted on the combined use of the game theory and the quadratic programming has not made much progress, and very few studies have been presented in this regard. One research on the combination of the game theory and the quadratic programming is presented in [101]. In this research, a method is proposed to find the Nash equilibrium in a game using quadratic programming. The game considered in this study had two players and was a non-zero sum game. This research proved that a point is the Nash equilibrium point in a game, if and only if, it is the answer of a quadratic programming problem. The quadratic programming problem should be considered as a game-related dual linear programming problem to solve zero-sum games. The main drawback of this method is that it only considers dual games with pure strategy and thus, is not suitable for a wide range of games. Furthermore, the number of strategy sets should also be limited in this method.

4.1.4 Integer Programming

Integer programming is an optimization problem, in which, the domains of the optimization variables (Di) are integer set (Z). This type of problem has many applications in real problems, since many variables are integers in the real world [166]. Given the type of objective functions in optimization problems, integer programming can be combined with other classic optimization methods, and creates new optimization categories that can be effective in various applications.

In [190], the basis of the optimization is integer programming. In this study, a framework and an algorithm for supply chain design and operations were presented. This framework is based on mixed integer bilevel programming and is modeled as a Stackelberg game with one leader and one follower. The game is non-cooperative. The followers can have discrete decisions in this game and this is the main advantage of this framework. It is also a flexible framework and can be expanded with different types of optimization and different types of objective functions.

4.1.5 Mixed Integer Linear Programming

Mixed integer linear programming is a special type of optimization which is similar to linear programming (with linear objective function), except that the domain of some of the variables of the problem can be non-integer numbers. Since most integer programming problems are linear, all available methods and tools can be used in this area. Also, the use of integer variables adds a lot of abilities to the modeling process that can not be done in linear programming [175].

In [198], a scheduling mechanism for managing the demands of home and neighborhood area in smart grids is provided based on mixed integer linear programming and game theory. This mechanism is presented in two centralized and distributed modes. In centralized mode, the scheduling mechanism is first described as a linear programming problem. However, in the following, given the specific constraints of the problem, mixed integer linear programming is used to formulate the problem. To solve the formulated problem in centralized mode, branch and bound method have been used. In distributed mode, the problem is modeled as a distributed mixed integer linear programming problem. The problem has been then solved with the help of a cooperative game. In this game, players are users who are connected to the neighborhood/local area network. The set of strategies is also daily consumption schedules. In this study, mixed integer linear programming has been well utilized, but the game theory has been used only in one state.

In [191], a method for designing a supply chain with high tactical decision-making power was provided through different optimization metrics (multi-objective). In the proposed method, the problem of optimization was formulated as a mixed integer linear programming problem and integrated with the game theory. The problem of optimization in this research is solved by the ε-constraint method. The approach is intended for both cooperative and competitive environments. The game theory is used here as a tool to support decision-making in order to deal with uncertainty in the competitive scenario. In this method, the proposed game is non-zero sum and the players are the supply chains. In the experimental results of this research showed that the proposed method could make stronger decisions.

4.1.6 Stochastic Programming

Stochastic programming is a kind of mathematical programming in which data includes random elements. In fact, in stochastic programming, some of the optimization variables or some of the parameters are random. In the real world, the parameters of optimization problems are generally uncertain, and stochastic programming can serve as a framework for modeling uncertain optimization problems. Stochastic programming uses the probability distribution of uncertain parameters for modeling and solving optimization problems [147].

In [29], a model has been proposed to create optimal bidding strategies for trading wind power in a competitive electricity market. The purpose of this model is to maximize the total profit of the producers in both the energy market and the bilateral reserve market. The proposed model has been created using stochastic programming and game theory. The optimization variables were wind power output, hourly location marginal price, real-time price, and bilateral market price clearing, which were uncertain (random) variables. The reserve price was determined using the game theory. In fact, game theory has been used to address the uncertainty of other market participants’ behaviors. In the game, energy producers were considered as players. The proposed model in this research was an appropriate application model and it could reduce the risk of losing money.

4.1.7 Convex Optimization

Finding at least one convex function among a set of convex functions is called convex optimization. Convex function is a continuous function that if two arbitrary points are considered on this function, the dotted line of these two points always lies above the graph of the function. In an optimization problem, when the objective function(s), the constraints functions, and the domains of the optimization variables are all convex, we have a convex optimization problem. The main advantage of this type of optimization problem is that every local optimal point is also a global optimal point, and any optimization algorithm that finds a local optimal point actually finds a global optimal point [17].

No significant research has been carried out on combining convex optimization and game theory. In [143], the combined use of variation inequality, convex optimization, and game theory has been investigated. This research consists of two parts. In the first part of the study, the basic concepts of variation inequality, convex optimization, and game theory were investigated to use in communication and signal processing communities. In the second part, the results of the first part were used to solve some of the problems of wireless ad hoc networks. The main emphasis of this research is on variation inequality and convex optimization and game theory is marginally used.

A summary of the researches which combine game theory and classic optimization methods can be seen in Table 2. The number of citations of each study of Table 2 is counted up to November 2018.

Table 2 A summary of studies related to game theory and classic optimization methods

4.2 Modern Optimization Methods

In this section, we will review the combined use of game theory and modern methods of optimization. Given the fact that modern optimization methods are approximate (randon) and game theory is also an approximated optimization, combined use of game theory and modern optimization methods is expected to have various applications. It is also expected that using each approach can improve the problem solving of the other one.

4.2.1 Genetic Algorithm

Genetic algorithm is a search technique to find an approximate solution for optimization and search problems. Genetic algorithm is a special type of evolutionary algorithms that uses biology evolutionary techniques such as heritability and mutation. It is a repetition-based algorithm, most of which are selected as random processes [67]. In the genetic algorithm, first, several answers are generated for the problem randomly or algorithmically. This set of answers is called the initial population and each answer is called a chromosome. Then, using the genetic algorithm operators, the best selected chromosomes are combined with each other and produce a mutation. Further, the current population is combined with a new population that results from the combination and mutation in the chromosomes. This process is repeated as long as the termination condition of the algorithm is established and the final result is obtained.

One of the modern optimization algorithms which have been used in many applications in combination with the game theory is the genetic algorithm. These applications have been presented in both types of single-objective and multi-objective optimizations, and in the both types of classic and evolutionary game theory [78, 93, 118, 125, 138, 148].

In [138], the genetic algorithm learning is modeled as an evolutionary game theory. The study showed that the genetic algorithm learning is an evolutionary game, in addition to an evolutionary process. This aspect of the genetic algorithm learning concept is very suitable for economic applications. In this research, three propositions have been stated. Each genetic algorithm is a dynamic game; each genetic algorithm is an evolutionary game; in the genetic algorithm learning process, the population tends to move toward a Nash equilibrium point. Given these three propositions, the main solution was presented.

In [148], a combined approach was introduced to solve the generation expansion planning in the pool market. This approach is a combination of game theory and genetic algorithm. The proposed algorithm is divided into two levels of master and slave. At the master level, a modified game theory was suggested to evaluate the contrast of generation company by independent system operator. At the slave level, an improved genetic algorithm was used to find the best solution for each manufacturing company to decide on investment. In this application, the game theory and the genetic algorithm were used separately in two phases to solve a particular problem. Although the game theory and the genetic algorithm are not modeled together, the results of optimization in this method are still satisfactory.

Konak et al. [78] proposed a new solution for reliable server assignment under attacks. The problem was modeled as a bi-level optimization problem in which the network designer acted as leader and the attacker acted as a follower. A game theory-based genetic algorithm was proposed to solve this bi-linear optimization problem. The game network designer and the attacker are two players of the game, which are interacting with a payoff matrix. There are two categories of population for the genetic algorithm; each category is associated with one player. Since the problem is NP-hard, it seems necessary to use modern optimization algorithms. The performance of the proposed combined approach is much better than the pure genetic algorithm. The other advantage of the proposed method is that it can be easily modeled for other two-level optimization problems of a similar structure.

Several multi-objective problems have also been solved with the help of genetic algorithm and game theory. For example, in [125], a game theory-based genetic algorithm method for solving the multi-objective optimization problem of DDM-nozzle in distributed environments was presented. In this method, the string representing the answer is divided into two parts, each part being considered as a player. Each player has a duty to optimize its part. That is, each player is associated with an objective function. A population is also considered for each player. The game is non-cooperative. This method had better performance than the cooperative games provided in this area. The use of game theory in this study made it easier for parallelization. In [118], a method for designing water distribution networks was proposed using game theory and genetic algorithm. This was a multi-objective problem. One of the objective functions aimed to minimize cost and the other function aimed to maximize pressure. In this method, the features of the genetic algorithm were well used, and in each step of the algorithm, a large number of solutions were updated and improved. The best solution is selected by the game theory. The method presented in this study had a good performance compared to other available methods. In [93], a model was proposed to solve the land-use spatial optimization problem. Land-use spatial is a complex decision-making optimization problem that deals with several opposite objective functions. In the mentioned research, suitability and compactness in land-use were considered as goals. The proposed model combines game theory and genetic algorithm. The genetic algorithm was repeated to optimize the spatial layout of each type of land-use. The structure of the grid was used to display the chromosomes, because it could easily be used to indicate the area under study (ground units).

4.2.2 Imperial Competitive Algorithm

Imperialist Competitive Algorithm is a method in the field of evolutionary computing that seeks the optimal solution for various problems. This algorithm provides a method for solving optimization problems by mathematical modeling of the socio-political evolution process. Each element of the population of this algorithm is called a country. Countries are divided into colonies and imperialists. Each imperialist, depending on his power, controls a number of colonial countries and forms an empire. For the division of colonies between the imperialists, each imperialist will be given a number of colonies, which this number is proportional to its strength. The policy of assimilation, imperialistic competition, and revolution are the core of this algorithm. The algorithm continues until a convergence condition is fulfilled or until the total number of iterations is completed. Finally, all the empires will fall, and we will have only one empire, and the rest of the countries will be under the control of this single empire [10].

Given the structure of the imperialist competition algorithm, it can be seen that it can be a good option for use in game theory. In [133], imperialist competition algorithm was used as a tool for finding the equilibrium point in game theory in multi-objective problems. The game is considered non-cooperative. In this method, one player is considered each objective function and for each player, an imperialist competition algorithm is executed separately to optimize its solution. The initial selection of players in the first iteration is random. The game will be continued until all objective functions are optimized and reach the Nash equilibrium point. The proposed method has a better performance than the genetic algorithm and is stronger in terms of convergence. But the main advantage of the proposed method is that it can be used to solve various games and even solve many of the multi-objective optimization problems.

4.2.3 Ant Colony Optimization

An ant colony optimization is inspired by the behavior of natural ants that lives in large sets together and is one of the most efficient algorithms for solving optimization problems. An ant colony algorithm is a clear example of collective intelligence, in which factors that have not high abilities, can work together and get together very well. This algorithm is used to solve a wide range of optimization problems [37].

One of the most important and most interesting behaviors of ants is their behavior to find food, and in particular how to find the shortest route between food and colony. This kind of behavior of the ants has a kind of massive intelligence. In the real world of ants, they first accidentally go to find food. They then go back to the colony and leave the pheromone. When the other ants find this path, sometimes leave the wanderer and follow it. Then, if they come to the food, they will go home and leave the other side behind them, in other words, strengthen the previous path. The pheromone evaporates over time. When an ant finds a good path from home to food, the rest of the ants are more likely to follow the same path, and by continually reinforcing that path and evaporating other tracks, all the ants are also traversed. The goal of an ant colony algorithm is to imitate this behavior by artificial ants.

In [128], a method to optimize social information in opportunistic networks was proposed based on the ant colony algorithm and game theory. Losing data and disconnecting is a common problem in opportunistic networks and social information has a big role in reducing this problem. In fact, in this research, a new routing method was proposed to determine the relative importance of the network nodes for solving the mentioned problem. In this research, the game theory is used to find the shapley value of each node. Shapley value shows the nodes’ participation in the network. The shortest paths are also calculated by the Dijkstra algorithm. This information is considered along with the random path as the input of the ant colony optimization algorithm. The ant colony algorithm uses pheromone and updates it to find the deviation of social information between nodes. The advantage of the proposed method is to increase the probability of delivery and to reduce delay in comparison with other similar methods in this field.

In [82], a method for the rapid broadcasting of essential messages and for increasing the life of the network in the wireless body area network was presented using the ant colony algorithm and the game theory. In this method, an ant colony algorithm is used to find the shortest path to send the required message through the sensor nodes. The game theory is also used to increase network lifetime. The game is considered as a static game with mixed strategies. In this application the game theory and ant colony algorithm are completely separate in two different domains, and their features and their advantages are not used concurrently. In the real world, this approach can be used well as a tool for diagnosing a disease and remote treating a patient using telecommunication technology.

4.2.4 Particle Swarm Optimization

The particle swarm optimization is a population-based global optimization technique. This technique is inspired by the social behavior of birds for food search. Due to its simple search mechanism, computational efficiency, and easy implementation, this technique has been widely used in many optimization problems. Each particle (which is a solution) is defined in this algorithm by the velocity vector and position vector in the search space. In each repetition, the new particle position is defined according to the velocity vector and position vector in the search space. At each time interval, the positions of particles are updated according to the current velocity vectors, the best positions found by that particles, and the best position found by the best particle in the group. That is, each particle continues to search in the space of the problem by looking for optimal particle in the current state. Therefore, this algorithm optimizes the problem by updating particles in iterations [75].

Particle swarm optimization algorithm has been used in many researches along with game theory. These researches have been presented in the field of optimization of single-objective problems as well as optimization of multi-objective problems. Both classic game theory and evolutionary game theory have been also used in conjunction with the particle swarm optimization algorithm [26, 84, 91, 114, 116, 179].

An optimization algorithm is presented in [91], which has combined the particle swarm optimization and the evolutionary game theory. In this algorithm, the particles are considered as players in the evolutionary game. These players will seek the most profit by choosing the right strategies. The space of strategies is the same as the search space of the particle swarm algorithm. The fitness function is also considered as payoff function. In this study, the multi-start technique has been also introduced to overcome premature convergence. The most important advantage of the proposed algorithm is its proper convergence. The algorithm also performs better than standard particle swarm algorithm.

A new hybrid optimization algorithm has been also proposed in [84] using an enhanced particle swarm algorithm and evolutionary game theory. In this algorithm, the mass of particles is the same as our population. Each particle is considered as a player with three strategies. These three strategies are tracking own memory, tracking the best neighbor, or moving just by inertia. The payoff value is also the average performance that is obtained by tracking a strategy. In this study, another algorithm is proposed to overcome the potential premature convergence. The second algorithm is based on the combination of the first algorithm and the standard particle swarm algorithm. The second algorithm consists of two types of particles, one relating to the first algorithm, and another to the particle swarm algorithm. The main advantage of this research was that, in contrast to previous studies whose results had been empirically investigated, in this research the efficiency of the presented methods was proved theoretically.

Wang et al. [179] investigated the effect of using the particle swarm algorithm to update strategies for the evolution of cooperation in prisoner’s dilemma and Snowdrift games on a square lattice. In this research, a model has been introduced for updating strategies in these games in an evolutionary manner, using the particle swarm algorithm. Experimental results showed that using the strategy update mechanism based on the particle swarm algorithm could promote collaboration in both games. This research provides an overview of the evolution of collaboration in these two games, which can be useful in understanding collaboration in natural and social systems.

In the mentioned previous studies, evolutionary game theory was used along with the particle swarm algorithm. In [114], a method for solving generation expansion planning in the pool market was presented using classic game theory and particle swarm algorithm. The proposed algorithm is divided into two levels of master and slave. At the master level, a modified game theory was suggested to evaluate the contrast of generating companies by independent system operator. At the slave level, the particle swarm algorithm was used to find the best solution for each manufacturing company to decide on investment. In this method, game theory and particle swarm algorithm are used separately to solve this problem. The authors of this study have also proposed a combined method of the game theory and genetic algorithm which have been examined in the genetic algorithm section. Comparing the results of these two methods, it can be concluded that, by combining the game theory and the particle swarm algorithm, more benefit can be gained in comparison with the combine use of the game theory and the genetic algorithm.

In [116], a combinational framework of game theory and particle swarm algorithm has been proposed to solve the problem of generation expansion planning in the power market. This framework consists of three levels. The first level is a PSO-based optimizer that provides optimal generation expansion plans. The second level is a coordinator that responsible for clearing market prices, maintaining open dynamicity, and maintaining system security. The third level is a demand block that considers the interactions of the demand entities. The game theory has been used as a decision support tool in competitive situations. For this purpose, a Stackelberg game has been introduced that includes three types of players, namely leader, suppliers and demand entities. In this research, game theory is used to model the problem and the particle swarm algorithm is a part of the framework which is responsible to optimization.

In [26], a new method for publishing collaborative content in multimedia clouds has been presented. This method is based on the particle swarm optimization algorithm, game theory, and evolutionary game theory. In this method, the optimal number of service users and non-service users in each location-based multimedia user group is determined by an improved particle swarm algorithm. Also, a game-based matching technique is proposed to determine the match between service users and non-service users. In order to avoid the blindness and selfishness of non-service users in the selection of service users, an evolutionary game is used. A Stackelberg game is also used to obtain optimal pricing policies and bandwidth allocations for service users. The proposed method in this research reduces the average publishing time of content and total cost of multimedia cloud users. Particle swarm algorithm, game theory, and evolutionary game theory are used for different purposes and separately in this research.

4.2.5 Simulated Annealing

Simulated annealing algorithm is a simple and effective optimization algorithm for solving optimization problems. Due to its ability to solve different problems and specially to find the absolute minimum value, it is a very important modern optimization algorithm. The simulated annealing algorithm starts the optimization process with an initial solution and then moves to neighboring solutions in an iterating loop. If the neighbor’s solution is better than the current one, the algorithm puts it as the current solution, otherwise the algorithm accepts it as the current solution with the probability exp(-ΔE/T). ΔE is the difference between the values of the objective function for the current solution and the neighboring solution, and T is a parameter called temperature. At each temperature, several iterations are executed, and then the temperature is slowly reduced. In the initial steps, the temperature is set very high, so it is more likely to accept worse solutions. With the gradual reduction of temperature, in the final steps, there will be less chance of accepting worse solutions, and so the algorithm converges to a good solution [164].

In [121], researchers have used simulated annealing algorithms to find points of equilibrium in a game. A method for solving games using simulated annealing algorithms was presented. In this study, a special version of the simulated annealing algorithm called fuzzy adaptive simulated annealing has been introduced. Since the population-based simulated annealing algorithm is not available, a multi-start version is used in this method, which includes a pre-processing step. With this step, the algorithm is able to find some promising starting points. These points help the algorithm not be caught in the local minima. Unlike many of the modern algorithms that may not find all the points of equilibrium in a problem (that has more than one point of equilibrium); the proposed method will find all the points of equilibrium in the problem. Thus, it can be said that the remarkable advantage of the combination of game theory and simulated annealing algorithm is that it can be used to find all the points of equilibrium (if any) in the games. Another advantage of this method is that it does not pay attention to a particular type of game and the simplest game is considered. Therefore, this method is applicable to any type of game.

4.2.6 Shuffled Frog Leaping Algorithm

Shuffled frog leaping algorithm is an evolutionary and population-based algorithm. This algorithm is fast and has great global search capability. Shuffled frog leaping algorithm combines deterministic and random methods. The deterministic method allows the algorithm to exchange messages efficiently. The random method guarantees the flexibility and resilience of the algorithm. The algorithm starts with random selection of frog groups (a set of solutions). Then, groups of frogs are divided into several subgroups. Each of these subgroups can perform local search independently and in a different way. This algorithm uses the memetic method to search locally among frogs subgroups. Frogs of a subgroup can affect other frogs in the same subgroup and thus, frogs evolve in this subgroup. To achieve a good objective, the weights of good frogs should be increased and the weights of bad frogs should be decreased. After the evolution of some memetics, subgroups are combined. This combination causes that the memetics are optimized in the global domain and new subgroups of frogs are created. Local search and global search are combined to satisfy the convergence condition. The rapid convergence is one of the most prominent advantages of the shuffled frog leaping algorithm [43].

A combined method of game theory and shuffled frog leaping algorithm for bandwidth scheduling in the networked learning control system have been presented in [188]. In the study, the resource allocation problem is modeled as a non-cooperative and fair game and it is proved that there is only a unique equilibrium point for the game. An improved shuffled frog leaping algorithm was proposed in this study with a combination of local search and information exchange between network groups. The advantage of the proposed method is that the convergence rate is very high.

4.2.7 Differential Evolution

Differential evolution is a random and population-based optimization algorithm. This algorithm is presented to overcome the main drawback of the genetic algorithm, namely the lack of local search. The main difference between the genetic algorithm and the differential evolution algorithm is the “selection” operator. In the selection operator of the genetic algorithm, the chances of choosing a solution as one of the parents depends on its merits, however, in the differential evolution algorithm, all the solutions have the same chance of being choosed and their selection chances do not depend on their merits. When a new solution was generated using a self-adjusting mutation operator and the crossover operator, the new solution is compared with the previous one and will be replaced if it is better. In this algorithm, unlike other algorithms, to create new generation, the mutation operator is applied before applying the crossover operator. In a differential evolution algorithm, no particular distribution is used for applying the mutation operator, but the length of the mutation step is equal to the value of the distance between the current members. To create the initial population, uniform distribution is usually used. At each step of the algorithm, the members approach each other and this convergence will lead to find an optimal solution [163].

In [49], a method is proposed to design a nano-CMOS voltage-controlled oscillator, which is a multi-objective problem. The proposed method is based on the combination of three algorithms, namely, particle swarm optimization, differential evolution algorithm, and an improved differential evolution algorithm that has been developed with evolutionary game theory. In the third algorithm, a combined use of evolutionary games and differential evolution algorithm has been considered. Evolutionary game theory is used here as a self-adjusting mechanism in the differential evolution algorithm. The performance of the proposed method was better, in terms of the quality of the solution, than the solution which was obtained from the standard differential evolution algorithm and its solution was more optimal. The cost of finding more optimal solutions for the proposed method was the execution time. The required time to find the solution using the proposed method is twice the execution time of the standard differential evolution algorithm.

A combined method of game theory and differential evolution algorithm has been represented in [21] to solve the multi-objective problem of trajectory optimization of space maneuver vehicles. In this research, a modified game theory-based approach based on an adaptive differential evolution algorithm has been proposed to find the solution of the problem. The differential evolution algorithm in this method uses two types of crossovers, binomial and exponential. It also uses a consistent strategy to update the mutation operator. To increase the quality of the solutions, control logic is also considered in the proposed framework. The proposed method in this study has more appropriate convergence speed comparing other methods of this area. Also, the quality of the solutions obtained by this method is appropriate.

4.2.8 Tabu Search

Tabu search is an optimization algorithm that can solve various optimization problems, especially graph-based problems and combinatorial problems. This algorithm works almost like local search algorithms, except that it uses tabu list to avoid getting stuck at a local optimal point. Tabu search algorithm starts from an initial solution and then, the algorithm chooses the best solution of the neighbors. If this solution is not in the tabu list, the algorithm moves to the neighbor’s solution; otherwise, the algorithm will check the breathing criterion. Based on the breathing criterion, if the neighbor’s solution is the best solution so far, the algorithm will move to it, even if that solution is in the tabu list. After this moving, the tabu list is updated and the previous move, by which we proceeded to the neighbor’s solution, is placed in the tabu list in order to prevent the algorithm from returning to that solution and creating a cycle. After placing the previous move on the tabu list, a number of moves that were previously on the tabu list will be removed from the list. The duration of movement in the tabu list is determined by a parameter called tabu tenure. Moving from the current solution to the neighbor’s solutions continues to the end condition [53].

A method for finding Nash equilibrium in games has been presented in [165], using tabu search and best-response dynamics. The games in this research have n players and pure strategies. To solve games with these features, we need to create a payoff matrix. If the number of players is high, creating a payoff matrix would be difficult and would require a lot of calculations. The proposed method does not require the total payoff matrix, and only creates payoffs that are related to the search. Tabu search helps to avoid the problem of loop in the proposed method. There is a general tabu list in the case of explicit memory, however in the case of using attribute-based memory; there will be an individual tabu list for each player. One of the conditions for stopping in this method is to find the Nash equilibrium and the other stop condition is to exceed the allowed number of iterations. The proposed method is appropriate in terms of execution time because it does not require full payoff matrix. The main drawback of the proposed method is that it only considers games with pure strategies and does not pay attention to the games with mixed strategies.

4.2.9 Coral Reefs Optimization Algorithm

The coral reefs algorithm is a natural-inspired evolutionary optimization method based on the simulation of coral reefs processes. The coral reefs algorithm begins with the initial population corals in a square grid (reef). Cells of the square grid are empty in the beginning of the algorithm. Using sexual and asexual reproduction operators, the reproduction process of corals are simulated. To form the coral reefs, a coral larva tries to find a place on the reef. This placement depends on the power of the larva (how much the solution is appropriate), or the amount of the chance to find an empty place. At the end of each step of the algorithm, corals depredation process is performed to eliminate inappropriate solutions to ensure the existence of empty space in the reefs for the next steps. The steps continue to the end condition [142].

In [45], a new method has been presented for managing elastic resources allocation in cloud environments using the coral reefs optimization and game theory. This is a multi-objective optimization to maximize demand satisfaction and to minimize cost and resource consumption. In this method, the coral reefs algorithm is used to model cloud elasticity in a cloud-data center. The game theory optimizes the resource reallocation schema with respect to the cloud provider’s goals, and actually provides the solution of the problem. Players of this game are virtual machines. The advantage of the proposed method is the convergence speed in very large clouds. It also has great scalability and can work well with a large number of virtual machines and large clouds.

A summary of the researches which combine game theory and modern optimization methods can be seen in Table 3. The number of citations of each study of Table 3 is counted up to November 2018.

Table 3 A summary of studies related to game theory and modern optimization methods

4.3 Hybrid Methods

In addition to the researches which are discussed in the previous sub-sections, there are other researches that use the combination game theory and optimization methods. These studies cannot be categorized in the proposed structure, as they do not directly use a classic or a modern optimization algorithm. Some of other researchers have combined the game theory with a number of classic or modern optimization methods. The most important researches of this extra category have been represented in [4, 65, 83, 87, 134, 185, 186, 195]. We will look at these studies in this sub-section in a nutshell.

The research presented in [134] is a basic research in the field of multi-objective optimization using game theory, which is based on many of the classic methods. In [87], a combined game-based algorithm is proposed to optimize the integrated process planning and scheduling (IPPS) problem in production systems. The problem was first modeled using the game theory and then, was solved using a hybrid algorithm that combines the genetic algorithm and tabu search. In [83], a new multi-objective optimization method was proposed to solve the dynamic weapon target assignment problem with evolutionary game theory. In the proposed method, for each objective function, a solution is obtained first. Then every solution is considered as a player in a game, and the winner of the game will be the final solution to the problem. In [185], a dynamic method was developed for determining the placement of virtual machines in data centers using evolutionary game theory. In this research, it has been proved that the proposed method can provide optimal solutions. Xiao et al. [186] has presented a new method for multi-disciplinary design optimization in non-cooperative environments based on game theory. The proposed method is based on the programming of gene expression. [4] examined recent methods for optimizing energy consumption and increasing the lifetime of the network using game theory in wireless sensor networks. This research provides an overview of the applications of game theory in wireless sensor networks and their various optimization problems. In Zhao et al. [195], using an algebraic formulation and optimization control, a new approach is proposed to optimize a class of dynamic games with random inputs. In this study, games are considered as a network evolutionary game, which is formulated based on the Markov process. In [65], a sequential game has been developed to solve the multi-objective clustering problem. The main objective of this method is to optimize the inherently conflicting goals. This method is very appropriate for medium-size datasets.

A summary of the researches which combine game theory and hybrid optimization methods can be seen in Table 4. The number of citations of each study of Table 4 is counted up to November 2018.

Table 4 A summary of studies related to game theory and hybrid optimization methods

5 Directions for Future Researches

Considering the works reviewed in the previous section, we can find that the combination of game theory and optimization methods is common and popular research area. By combining the game theory and various optimization algorithms, new methods for optimization can be presented and existing optimization methods can be improved. This hybrid use can be also exploited in various applications. Here is some of the research areas of the combined use of game theory and optimization methods.

5.1 Presenting New Methods Based on Proposed Categorization

The proposed categorization shows that there are many categories in which, no research has yet been provided. For example, there is no game theory-based multi-objective integer programming optimization approaches. Evolutionary games can be also used to improve the efficiency of this category of optimization. There are also such conditions for ant colony algorithms in the modern optimization branch. No combined method for multi-objective optimization using ant colony algorithms and classic or evolutionary game theory has been represented in the literature. Furthermore, it is possible to complete the proposed categorization by introducing combined game theory-based optimizations using other optimization methods, such as Gray Wolf Algorithm [111], Moth Flame Algorithm [110] and Bees Colony Algorithm [73].

5.2 More Attention to Modern Algorithms Based One Solution

Considering the modern methods studied in this study, it can be concluded that most researches in the field of optimization are based on population-based algorithms such as genetic algorithm, ant colony algorithm, particle swarm optimization, and imperialist competition algorithm. The works performed in the field of algorithms based on one solution are limited to only two simulated annealing and tabu search. It is possible to use other such algorithms, including GRASP search [153], variable neighborhood search [62], guided local search [177] and iterated local search [94] in combination with the game theory.

5.3 Use of Combined Methods in Other Applications

In many reviewed studies, combined methods based on game theory and optimization algorithms are presented to solve a particular problem. In addition to the raised issues, combined methods can be used in various applications. Examples include data mining, decision support systems, computer networks, and etc.

6 Conclusion

The game theory is a set of analytical tools that can be used to model strategic situations. The main objective of game theory is to find an optimal solution for players. Optimization is the process of finding the best (optimal) solution among existing solutions. In the simplest case, the goal of optimization problem is maximizing or minimizing a real function. Optimization can be deterministic or random. Game theory can act as a random optimization. Due to the proximity of the concept of game theory and optimization, many studies have used their combination to solve various problems. Also, in some studies, one of them has been used to improve the other. In this article, we have reviewed the studies that combine game theory and optimization algorithms and have also presented a new categorization for these studies. The proposed categorization is based on four factors including classic or modern optimization, the type of optimization method, single- or multi-objectives optimization and the type of game theory. Using this categorization, methods that use the combination of games theory and optimization algorithms can be better studied, and thus, new research can be presented in this regard.