# A New Hybrid Algorithm to Solve Winner Determination Problem in Multiunit Double Internet Auction

Authors: Mourad Ykhlef; Reem Alqifari
Journal: Mathematical Problems in Engineering
 (2015)

---

## Abstract

Solving winner determination problem in multiunit double auction has become an important E-business task. The main issue in double auction is to improve the reward in order to match the ideal prices and quantity and make the best profit for sellers and buyers according to their bids and predefined quantities. There are many algorithms introduced for solving winner in multiunit double auction. Conventional algorithms can find the optimal solution but they take a long time, particularly when they are applied to large dataset. Nowadays, some evolutionary algorithms, such as particle swarm optimization and genetic algorithm, were proposed and have been applied. In order to improve the speed of evolutionary algorithms convergence, we will propose a new kind of hybrid evolutionary algorithm that combines genetic algorithm (GA) with particle swarm optimization (PSO) to solve winner determination problem in multiunit double auction; we will refer to this algorithm as AUC-GAPSO.


---

## Body

## 1. Introduction

Internet auctions appeared on the scene in the mid-1990s and quickly became one of the most successful applications of electronic commerce [1]. Auction is defined as a market mechanism for accepting bids or offers from buyers or sellers and then used a set of rules to allocate goods. Double auction includes multiple sellers and multiple buyers in the same market where they are competing against each other for a variety of different items [2, 3]. In a multiunit double auction, each participant should determine how many units of an item and in which price he/she asks or bids. When a buyer’s bid exceeds or matches a seller’s ask, a trade will occur [4]. The most important issue in a double auction is how to allocate or match buyer with seller to maximize profit in the market. This problem is known as winner determination problem [5].There are two approaches to solve this problem: exact approach and evolutionary approach; the exact approach, such as linear programming or simplex method, gives the optimal solution but in exponential time while evolutionary approach, such as genetic algorithm (GA) [2, 6] and particle swarm optimization (PSO) [3], solves the problem in a short time without the guarantee of obtaining always the optimal solution. In [7] a parallel genetic algorithm hybridization with local search was proposed. Other metaheuristics have been also used in double auction like memetic algorithm, Tabu search; in [8] “a computational experience regarding four well-known metaheuristics (stochastic local search, Tabu search, genetic algorithms, and memetic algorithms) for solving the winner determination problem” has been conducted.Genetic algorithm is a general purpose search algorithm which uses principles inspired by natural genetic populations [9]. Particle swarm optimization (PSO) can be considered as an alternative to the standard GAs. The PSO was inspired by insect swarms and has been shown to be a competitor to the GA for optimization problems. Since then, several improved PSO general purpose algorithms have been developed [10, 11]. Both GA and PSO algorithms have shown good performance for some particular applications but not for other ones. For example, sometimes GAs outperformed PSO, but occasionally the opposite happened showing the typical application driven characteristic of any single technique. This is due to the different search method adopted by the two algorithms, the typical selection-crossover-mutation approach versus the velocity-position-global-local best communication [12–15].In order to improve the speed of convergence of existing multievolutionary algorithms, we will propose a new kind of hybrid evolutionary algorithm AUC-GAPSO that consists of combination of GA and PSO to solve winner determination problem in a multiunit double auction. AUC-GAPSO focuses on decreasing the time with good solution.The rest of the paper is organized as follows. Double auction is defined in Section2; however genetic algorithm and particle swarm optimization are defined in Section 3. Solving winner determination problem in double auction using our AUC-GAPSO algorithm is detailed in Section 4. Experimental results are reported in Section 5. We conclude this work in Section 6.


## 2. Double Auction

Double auction is referring to multiple buyers and sellers competing among each other. The double auction is divided into single-unit double auction and multiunit double auction [16]. In multiunit double auctions there are many sellers’ bids prices and many buyers’ bids for a variety of items with multiunit. Trade occurs when the buyers bid is greater than the sellers bids [2, 3, 17, 18]. Both the seller and the buyer have to determine the price and quantity of each specific item as follows:(1)Buyer⟶item,price,andquantitySeller⟶item,price,andquantity.The auctioneer assigns buyers to sellers based on their preferences; there are many sellers asks that may satisfy some buyers’ bids and vice versa. There are two kinds of double auctions: synchronous double auction (SDA) and asynchronous double auction (ASDA). Discrete or continuous time of the trading process is the main difference between SDA and ASDA. In the continuous double auction when the auctioneer finds compatible bids, it will match buyers and sellers and clear the market. On the contrary, the auctioneer in the synchronous auction gets all bids in a preset period of time and then makes the match and clears the market [2]. The factors that play roles in winners’ determination can be listed as follows [19].(i)
Aggregation: the market maker role in auction is to dissemble or reassemble boundless of items. The options include buy-side, sell-side aggregation or it may include both sides’ aggregation. However, if aggregation is not permitted, each bid and ask needs to be matched separately.(ii)
Divisibility: a divisible bid means that bidders can accept a trade of part of the quantity that they have specified at bidding while the indivisible bid means that bidders will reject the bid if the quantity is less than what they bid for [20].(iii)
There are homogeneous/heterogeneous goods.This paper focuses on two features of the auction which are price and quantity; we will not include other performance factors such as quality, warranty, shipping time, and cost. We are particularly interested in solving winner determination problem in a multiunit synchronous double auction using a hybridization of genetic algorithm and particle swarm optimization.


## 3. Genetic Algorithm and Particle Swarm Optimization

Genetic algorithm was inspired by Darwin’s theory about evolution [9]. Genetic algorithm can be defined as a particular class of evolutionary algorithms that uses techniques inspired by evolutionary biology such as inheritance, mutation, selection, and crossover. Genetic algorithm starts with a set of random solutions represented as chromosomes which are called population. The term chromosome usually refers to a candidate solution for a problem that is often encoded as a bit string. The “gene” is a part of chromosome. Crossover typically consists of exchanging genes between two single chromosomes (parents). Mutation is usually flipping the bit at randomly chosen genes. Forming a new population is driven by the previous populations using crossover and mutation. Hoping that, the new population will be better than the old one. Solutions which are selected to form new solutions (offspring) are selected according to their fitness; chances of reproducing are linked by their suitability. This is repeated until stop condition (e.g., number of populations or improvement of the best solution) is reached. Mostly, the genetic algorithm requires a fitness function which assigns a score to each chromosome in the current population [9].Particle swarm optimization (PSO) was originally proposed by Kennedy and Eberhart in 1995 [21]. Social behavior and movement dynamics of insects, birds, and fish were the main inspiration. The PSO algorithm is derived from a simplified social model that is closely linked to the swarming theory [22]. In PSO, individual particles of a swarm represent potential solutions. Each particle moves through the problem search space looking for an optimal or acceptable solution. The particles current positions are broadcasted to their neighboring particles. Velocity and the difference between its current positions (the best position found by its neighbors and the best position it has found so far) are the controllers of updating the position of each particle [23].A good comparison between PSO and GA can be found in [14] where the authors proved that the difference in computational cost between PSO and the GA is problem dependent. The authors of [14] also conclude that PSO outperforms the GA with a greater degree of difference in computational cost when used to solve unconstrained nonlinear problems with continuous variables and smaller when applied to constrained nonlinear problems with continuous or discrete variables. GA has been widely applied to solve complex optimization problems because it can control both discrete and continuous variables, in addition to nonlinear objective and constraint functions [24]. In contrast, PSO may face a problem with a constrained optimization problem [11]. However, both GA and PSO have strengths and weaknesses; hybridization of GA and PSO could lead to further advances that have been proved by [11–13, 15, 25]. In addition, the hybridization could be achieved by different ways or structure.In this paper, a hybridization of GA with PSO, called AUC-GAPSO, is proposed to overcome the limitations of GA and PSO and to combine their advantages. The convergence in GA has been controlled through crossover and mutation rates. In fact the decrease of inertia weight increases the swarm’s convergence. The main problem with PSO is that it prematurely converges [10] to stable point which can be avoided through the genetic operator (crossover and mutation).


## 4. Solving Winner Determination Problem in Double Auction Using AUC-GAPSO Algorithm

In this section, we describe the AUC-GAPSO algorithm for solving winner determination problem in multiunit double auction. We first explain how we represented the auction dataset in our formalism, and then we present our chromosome structure, encoding scheme, and particles. After that, we describe genetic operators and define the utility or fitness assignment and selection criteria. Finally, we give the algorithmic structure and the pseudocode of AUC-GAPSO algorithm.


### 4.1. Dataset

Dataset contains data which AUC-GAPSO algorithm is applied to, in order to match bidders. The sellers/buyers information contains bidder ID, item, max quantity, maximum price that the buyers are willing to pay or the minimum price that the sellers are willing to accept, and sensitivity to price and quantity. Table1 gives a sample of all possible matches of buyers and sellers; however Table 2 gives possible matches’ matrix that can be derived from Table 1.Table 1
Bidders information.
Bidder
Item
Quantity
Price
Price sensitivity
Quantity sensitivity
b1
1
10
14
2
1
b2
2
3
15
2
2
b3
1
5
12
1
1
s1
1
9
10
2
1
s2
2
3
14
2
1
s3
1
6
11
2
1Table 2
Possible matches matrix.
Buyer
Seller
Item
1
1
1
1
3
1
2
2
2
3
1
1
3
3
1


### 4.2. Chromosome

The chromosome in AUC-GAPSO represents all the winners with price and quantity of their winning bids. Also, in the chromosome we should match sellers with buyers. The size of chromosome is determined based on number of sellers, buyers, and items. Consequently, number of possible matches should be calculated to be equal to number of buyers multiplied by number of sellers for each item they bid/ask for.There are many types of encoding that we can choose based on the problem such as binary encodings [26], which are the most common type; many characters; real-valued encodings [20]; and integer encoding [9]. Chromosomes representation became an issue for the different auction problems based on the auction type. There are many alternatives to represent a chromosome based on other problem domains. To decide which one is the best representation to solve double auction problem, Goldberg in his 1989 textbook recommends that “the user should select a coding so that short, low-order schemata are relevant to the underlying problem and relatively unrelated to schemata over other fixed positions” and“the user should select the smallest alphabet that permits a natural expression of the problem” [27]. The main meaning behind these recommendations is that the appropriate choice of genetic representation depends on the problem. According to that, in our problem, we will choose real-valued representation because it is the suitable one for constrained optimization problem. The sample of Tables 1 and 2 is represented by the chromosome of Table 3 where each couple of genes (price P and quantity Q) belongs to one match of the possible matches’ matrix (Table 2); for example, buyer 1 and seller 1 won item 1 for price 13 and quantity 6.Table 3
Chromosome.
P
Q
P
Q
P
Q
P
Q
P
Q
13
6
12
4
15
3
10
3
11
2Moreover, it is important to obtain sellers asks and buyers bids. In order to have less space, that information in addition to item vector will be kept as datasets.


### 4.3. Particles

After representing the chromosomes, each chromosome has to be linked with a particle that includes PSO variables related to position and velocity. Chromosomes can update their position and velocity using(2)Vi+1=w∗Vi+c1∗r1⊗pi-xic2∗r2⊗pg-xi+c2∗r2⊗pg-xi,(3)xi+1=xi+Vi+1.Particles local and global best position can be updated by using(4)pi+1=piifpi≥xi+1xi+1ifpi<xi+1,(5)pg=pgifpg≥pipiifpg<pi,where i = [1⋯MaxPopulation] and w is called inertia weight which controls the influence of previous velocity vi on the new velocity vi+1. Variablevi denotes the velocity of the ith particle in the swarm, xi denotes particle position, pi denotes the personal best position, pg denotes the best position found by particles in its neighborhood, c1 and c2 are acceleration coefficients, and r1; r2 are random numbers, uniformly distributed in [0⋯1] which are used to maintain the diversity of the population. The symbol ⊗ denotes pointwise vector multiplication. The population size refers to number of particles in the iterations. As in the genetic algorithm, the initial populations are generated randomly. Eberhart and Shi proved that the performance of the PSO is not sensitive to the population size [12]. The maximum generations refer to the maximum number of generations allowed for the utility value to converge with the optimal solution [28]. Acceleration coefficients c1 and c2 [23, 29, 30] are two positive numbers such that c1+c2=4; c1 is a self-confidence factor to determine the relative influence of the cognitive component and c2 is a swarm confidence factor used to determine the relative influence of the social component.The PSO algorithm used a constant value for the inertia weightw; it could be equal to 0.9 as proposed by [30]. This inertia weight could also linearly decrease with respect to time [23, 31, 32]. Generally for initial stages of the search process, large inertia weight to enhance the global exploration is recommended while, for last stages, the inertia weight is reduced for local exploration [25, 28, 33]. The mathematical expression could be as follows:(6)Inertiaweightw=wmax⁡-wmax⁡-wmin⁡MaxIter+Iter,where wmax⁡ is an initial value of the inertia weight, wmin⁡ is a final value of the inertia weight, Iter is a current iteration, and MaxIter is the maximum number of allowable iterations. The values of wmax⁡ and wmin⁡ that we have been using in our algorithm are 0.9 and 0.4, respectively [23]. We will define the inertia weight w to linearly decrease from 0.9 to 0.4. During the first 5,000 iterations of our algorithm w will be decreased by 0.0001 and then stay constant at 0.4 for the next iterations.


### 4.4. Genetic Operators

Genetic algorithm uses genetic operators to generate the offspring of the existing population. In this section, we describe three operators of genetic algorithms that we used in our algorithm: selection, crossover, and mutation.


#### 4.4.1. Selection

Variety of techniques can be used by a genetic algorithm to select the chromosomes to be copied into the new population. In AUC-GAPSO algorithm, we used “Elitism,” where the fittest members of each generation are copied into the next generation.


#### 4.4.2. Crossover

Crossover is working to combine two or more solutions to create new one (i.e., offspring). It is used in a way to come up with possibly better solutions. In most crossover operators, selecting chromosome for crossing over is based on a probability known as crossover probability. In AUC-GAPSO algorithm, we have used uniform crossover operation; crossover can be applied as shown in Figure1.Figure 1
Crossover operator.


#### 4.4.3. Mutation

Mutation is the simplest operator but it is rarely happened. In mutation one or more chromosome genes values are altered randomly. The mutation is used to increase the variability of the population. Also, it ensures that every point in the search space will be reached. There are many mutation operators depending on the problem and the representation type. One of the most common mutations for the binary string is the bit-flip mutation. In contrast, in real-value encoding, the mutation is done by adding or subtracting a small number to the selected genes. The AUC-GAPSO mutation can be applied as illustrated in Figure2.Figure 2
Mutation operator.


### 4.5. Utility Function

The utility (or fitness according to GA literature) function is used to measure the performance of the chromosomes. In double auction the trade price alone is not ideal or makes the most profit for both sellers and buyers. Here we have the problem where we have to improve the reward of the double auction to match the ideal price and quantity and make the best profit for sellers and buyers according to their bids and predefined quantities. So how can we improve the reward for the auction bidders? It can be done through utility mechanism by improving how much bidders can gain in the auction process. The highest utility of the seller when it matches with the highest bid price of buyers, however the highest utility for buyers is reached when he get matched with lowest bid price of sellers. So, to design an efficient auction the utility should be maximized [2]. The most suitable utility function is to maximize sellers and buyers utility function.The utility function that can be solved as a linear programming problem to find the optimal solution was proposed by [34] where the authors represented the utility as the following linear equation: (7)Max⁡∑i=1m∑j=1n∑a=1kPi·j,a-Pi,aWILL·Qi·j,a+∑j=1n∑i=1m∑a=1kPj,aWILL-Pi·j,a·Qi·j,a.Consider the following constraints:(8)∑i=1mQi,a-∑j=1nQj,a=0∀i∈S,∀j∈B,∀a∈1,…,k,Pi·j,a≥Pi,aWILL∀i∈S,∀j∈B,∀a∈1,…,k,Pi·j,a≤Pj,aWILL∀i∈S,∀j∈B,∀a∈1,…,k,0≤Qi,a≤Qi,aMAX∀i∈S∪B,∀a∈1,…,k,where m is the total number of sellers, n is the total number of buyers, k represents total number of items, Pi·j,a is the price of item a traded between seller i and buyer j,  Qi·j,a is the quantity of item a traded between seller i and buyer j,  Pi,aWILL is seller i’s willingness to receive (the minimum acceptable selling price) for itema, Pj,aWILL is buyer i’s willingness to pay (the maximum acceptable buying price) for item a, S is set of sellers, in which there are |S|=m sellers, and B is the set of buyers, in which there are |B|=n buyers.We will use utility function of [2] where each bidder has his own utility function; therefore, he can specify his sensitivity or the range of acceptance of each feature (price and quantity). This utility function is shown as in(9)Max⁡∑i=1m∑j=1n∑a=1kf1iPi·j,a-Pi,aWILL·f2iQi·j,a+∑j=1n∑i=1m∑a=1kPj,aWILL-f1iPi·j,a·f2i(Qi·j,a)∀i∈S,∀j∈B,∀a∈1,…,k.We can see that the price and the quantity have been replaced with functions. The authors of [2] suggest two types of function the early-growth style and the late-growth style based on buyer/seller choice; early-growth style is concave downward. In contrast, the late-growth style is concave upward. In early-growth style the bidder has most influence in changing price or quantity. In the following Qi,aMAX means trader i’s maximum acceptable quantity for item a; t means the level of steepness (t=1,2,3,4,5).Early-growth equations are as follows:price:(10)f1iPi·j,a=-Pi·j,a-Pi,aWILLPj,aWILL-Pi,aWILL-12t+1·(Pj,aWILL-Pi,aWILL)+Pi,aWILL∀j∈B,∀a∈1,…,k;seller quantity:(11)f2iQi·j,a=-Qi·j,aQi,aMAX-12t+1·Qi,aMAX∀i∈S,∀j∈B,∀a∈1,…,k;buyer quantity:(12)f2iQi·j,a=-Qi·j,aQj,aMAX-12t+1·Qj,aMAX∀i∈S,∀j∈B,∀a∈1,…,k.Late-growth equations are as follows: price:(13)f1iPi·j,aPi·j,a-Pi,aWILLPj,aWILL-Pi,aWILL-12t·Pj,aWILL-Pi,aWILL+Pi,aWILL∀j∈B,∀a∈1,…,k;seller quantity:(14)f2iQi·j,a=Qi·j,aQi,aMAX-12t·Qi,aMAX∀i∈S,∀j∈B,∀a∈1,…,k;buyer quantity:(15)f2iQi·j,a=Qi·j,aQj,aMAX-12t·Qj,aMAX∀i∈S,∀j∈B,∀a∈1,…,k.The advantage of [2] utility is that the participant has the flexibility to change his preferences in each round while in [34] utility the participant has identical utility. The authors of [3] suggested a fuzzy utility function.


### 4.6. Termination

AUC-GAPSO operations applied for all parents in all iterations. At the end of an operation, new chromosomes (offspring) generated as a result of mutation and crossover operators. These chromosomes should be evaluated by using utility or fitness function. Therefore, AUC-GAPSO algorithm obtained the bestN chromosome, where N is the size of population in each generation. This process is repeated until a termination condition is reached. There are many termination conditions that can be used. In AUC-GAPSO the condition is either the maximum generation number (G) is reached or the global best (Pg) is not improved for a specific number of times. At the end, the best chromosome of the last iteration is considered as the fittest matching.


### 4.7. AUC-GAPSO Algorithm to Solve Winner Determination Problem in Multiunit Double Auction

In this section we present the algorithmic structure of AUC-GAPSO that we produced in addition to the description of its pseudocode. The flowchart of AUC-GAPSO algorithm is shown in Figure3. After finding the possible matches, the algorithm starts by initializing the population. Then, its fitness or utility value is determined for each chromosome. Subsequently, the following processes are repeated until the prespecified maximum number of generations is achieved or the global best is not improved for a predetermined period of times.Figure 3
AUC-GAPSO flowchart.The pseudocode of AUC-GAPSO is shown in Algorithm1. First, population size, maximum number of generations, and buyers and sellers bidding are taken as input. Then AUC-GAPSO algorithm works as follows.(1)
Loop counter and counter of global best improvement are set to zero.(2)
Find the possible matches from the bidding.(3)
Initial population is generated.(4)
Calculate the fitness (utility) for each chromosome using formula (9) and particle variables (velocity and position are set to zero while local and global best positions are set using formulas (4) and (5), resp.).(5)
Preserve global best, to be compared to the new one, in order to decide whether it is improved or not.(6)
Selection operation is conducted to find best chromosome in populationP and copy the best chromosome in the new population Pn.(7)
PopulationP is mutated and crossed-over based on the probability of crossover and mutation and then put into Pn.(8)
Calculate Pn fitness and particle variables value using formulas (9) and (2), (3), (4), and (5), respectively.(9)
Update CountPg according to the value of Pg. If the global best did not improve after the selection, between originalP and Pn, then the counter will be increased. This step takes advantage of PSO in order to reduce the time.(10)
Increase the loop counter.(11)
Check the termination condition. If the maximum generation number is reached or when the global best is not improved for a specific number of times (i.e., CountPg variable equals quarter maximum generation number), then stop the algorithm and putP into W, which have the fittest matches conducted from the algorithm. Otherwise, go to step (4).Algorithm 1:AUC-GAPSO algorithm.
Input:
population size:N
Maximum number of generations:G
Buyers input:B
Sellers input:S
Output:
Interesting Winners:W
Algorithm:
(1) Initializet = 0 and CountPg = 0
(2) Find possible matches fromB and S
(3) Generate populationP of size N
(4) For each chromosomei∈P
(4.1) Generate winners i from chromosome i
(4.2) Calculate fitness of winners i
(4.3) Initialize X0, V0, Pi, Pg
(5) OldPg = Pg
(6) For each chromosomei and i+1∈P
(6.1) Select the best chromosomes to be copied into Pn
(6.2) Mutate and crossover chromosome i with i+1
(6.3) Add reproduced chromosome to Pn
(6.4) Generate winners i from reproduced chromosome i
(6.5) Calculate fitness of winners i
(6.6) Update Vi, Xi, Pi, Pg
(7) If OldPg = Pg then
CountPg ++
Else
CountPg = 0
(8)t++
(9) If ((t > G) or (CountPg > (G/4))) then
get the fittest chromosomeC from P
W = C
Stop algorithm
Else
Go to Step (4)


## 4.1. Dataset

Dataset contains data which AUC-GAPSO algorithm is applied to, in order to match bidders. The sellers/buyers information contains bidder ID, item, max quantity, maximum price that the buyers are willing to pay or the minimum price that the sellers are willing to accept, and sensitivity to price and quantity. Table1 gives a sample of all possible matches of buyers and sellers; however Table 2 gives possible matches’ matrix that can be derived from Table 1.Table 1
Bidders information.
Bidder
Item
Quantity
Price
Price sensitivity
Quantity sensitivity
b1
1
10
14
2
1
b2
2
3
15
2
2
b3
1
5
12
1
1
s1
1
9
10
2
1
s2
2
3
14
2
1
s3
1
6
11
2
1Table 2
Possible matches matrix.
Buyer
Seller
Item
1
1
1
1
3
1
2
2
2
3
1
1
3
3
1


## 4.2. Chromosome

The chromosome in AUC-GAPSO represents all the winners with price and quantity of their winning bids. Also, in the chromosome we should match sellers with buyers. The size of chromosome is determined based on number of sellers, buyers, and items. Consequently, number of possible matches should be calculated to be equal to number of buyers multiplied by number of sellers for each item they bid/ask for.There are many types of encoding that we can choose based on the problem such as binary encodings [26], which are the most common type; many characters; real-valued encodings [20]; and integer encoding [9]. Chromosomes representation became an issue for the different auction problems based on the auction type. There are many alternatives to represent a chromosome based on other problem domains. To decide which one is the best representation to solve double auction problem, Goldberg in his 1989 textbook recommends that “the user should select a coding so that short, low-order schemata are relevant to the underlying problem and relatively unrelated to schemata over other fixed positions” and“the user should select the smallest alphabet that permits a natural expression of the problem” [27]. The main meaning behind these recommendations is that the appropriate choice of genetic representation depends on the problem. According to that, in our problem, we will choose real-valued representation because it is the suitable one for constrained optimization problem. The sample of Tables 1 and 2 is represented by the chromosome of Table 3 where each couple of genes (price P and quantity Q) belongs to one match of the possible matches’ matrix (Table 2); for example, buyer 1 and seller 1 won item 1 for price 13 and quantity 6.Table 3
Chromosome.
P
Q
P
Q
P
Q
P
Q
P
Q
13
6
12
4
15
3
10
3
11
2Moreover, it is important to obtain sellers asks and buyers bids. In order to have less space, that information in addition to item vector will be kept as datasets.


## 4.3. Particles

After representing the chromosomes, each chromosome has to be linked with a particle that includes PSO variables related to position and velocity. Chromosomes can update their position and velocity using(2)Vi+1=w∗Vi+c1∗r1⊗pi-xic2∗r2⊗pg-xi+c2∗r2⊗pg-xi,(3)xi+1=xi+Vi+1.Particles local and global best position can be updated by using(4)pi+1=piifpi≥xi+1xi+1ifpi<xi+1,(5)pg=pgifpg≥pipiifpg<pi,where i = [1⋯MaxPopulation] and w is called inertia weight which controls the influence of previous velocity vi on the new velocity vi+1. Variablevi denotes the velocity of the ith particle in the swarm, xi denotes particle position, pi denotes the personal best position, pg denotes the best position found by particles in its neighborhood, c1 and c2 are acceleration coefficients, and r1; r2 are random numbers, uniformly distributed in [0⋯1] which are used to maintain the diversity of the population. The symbol ⊗ denotes pointwise vector multiplication. The population size refers to number of particles in the iterations. As in the genetic algorithm, the initial populations are generated randomly. Eberhart and Shi proved that the performance of the PSO is not sensitive to the population size [12]. The maximum generations refer to the maximum number of generations allowed for the utility value to converge with the optimal solution [28]. Acceleration coefficients c1 and c2 [23, 29, 30] are two positive numbers such that c1+c2=4; c1 is a self-confidence factor to determine the relative influence of the cognitive component and c2 is a swarm confidence factor used to determine the relative influence of the social component.The PSO algorithm used a constant value for the inertia weightw; it could be equal to 0.9 as proposed by [30]. This inertia weight could also linearly decrease with respect to time [23, 31, 32]. Generally for initial stages of the search process, large inertia weight to enhance the global exploration is recommended while, for last stages, the inertia weight is reduced for local exploration [25, 28, 33]. The mathematical expression could be as follows:(6)Inertiaweightw=wmax⁡-wmax⁡-wmin⁡MaxIter+Iter,where wmax⁡ is an initial value of the inertia weight, wmin⁡ is a final value of the inertia weight, Iter is a current iteration, and MaxIter is the maximum number of allowable iterations. The values of wmax⁡ and wmin⁡ that we have been using in our algorithm are 0.9 and 0.4, respectively [23]. We will define the inertia weight w to linearly decrease from 0.9 to 0.4. During the first 5,000 iterations of our algorithm w will be decreased by 0.0001 and then stay constant at 0.4 for the next iterations.


## 4.4. Genetic Operators

Genetic algorithm uses genetic operators to generate the offspring of the existing population. In this section, we describe three operators of genetic algorithms that we used in our algorithm: selection, crossover, and mutation.


### 4.4.1. Selection

Variety of techniques can be used by a genetic algorithm to select the chromosomes to be copied into the new population. In AUC-GAPSO algorithm, we used “Elitism,” where the fittest members of each generation are copied into the next generation.


### 4.4.2. Crossover

Crossover is working to combine two or more solutions to create new one (i.e., offspring). It is used in a way to come up with possibly better solutions. In most crossover operators, selecting chromosome for crossing over is based on a probability known as crossover probability. In AUC-GAPSO algorithm, we have used uniform crossover operation; crossover can be applied as shown in Figure1.Figure 1
Crossover operator.


### 4.4.3. Mutation

Mutation is the simplest operator but it is rarely happened. In mutation one or more chromosome genes values are altered randomly. The mutation is used to increase the variability of the population. Also, it ensures that every point in the search space will be reached. There are many mutation operators depending on the problem and the representation type. One of the most common mutations for the binary string is the bit-flip mutation. In contrast, in real-value encoding, the mutation is done by adding or subtracting a small number to the selected genes. The AUC-GAPSO mutation can be applied as illustrated in Figure2.Figure 2
Mutation operator.


## 4.4.1. Selection

Variety of techniques can be used by a genetic algorithm to select the chromosomes to be copied into the new population. In AUC-GAPSO algorithm, we used “Elitism,” where the fittest members of each generation are copied into the next generation.


## 4.4.2. Crossover

Crossover is working to combine two or more solutions to create new one (i.e., offspring). It is used in a way to come up with possibly better solutions. In most crossover operators, selecting chromosome for crossing over is based on a probability known as crossover probability. In AUC-GAPSO algorithm, we have used uniform crossover operation; crossover can be applied as shown in Figure1.Figure 1
Crossover operator.


## 4.4.3. Mutation

Mutation is the simplest operator but it is rarely happened. In mutation one or more chromosome genes values are altered randomly. The mutation is used to increase the variability of the population. Also, it ensures that every point in the search space will be reached. There are many mutation operators depending on the problem and the representation type. One of the most common mutations for the binary string is the bit-flip mutation. In contrast, in real-value encoding, the mutation is done by adding or subtracting a small number to the selected genes. The AUC-GAPSO mutation can be applied as illustrated in Figure2.Figure 2
Mutation operator.


## 4.5. Utility Function

The utility (or fitness according to GA literature) function is used to measure the performance of the chromosomes. In double auction the trade price alone is not ideal or makes the most profit for both sellers and buyers. Here we have the problem where we have to improve the reward of the double auction to match the ideal price and quantity and make the best profit for sellers and buyers according to their bids and predefined quantities. So how can we improve the reward for the auction bidders? It can be done through utility mechanism by improving how much bidders can gain in the auction process. The highest utility of the seller when it matches with the highest bid price of buyers, however the highest utility for buyers is reached when he get matched with lowest bid price of sellers. So, to design an efficient auction the utility should be maximized [2]. The most suitable utility function is to maximize sellers and buyers utility function.The utility function that can be solved as a linear programming problem to find the optimal solution was proposed by [34] where the authors represented the utility as the following linear equation: (7)Max⁡∑i=1m∑j=1n∑a=1kPi·j,a-Pi,aWILL·Qi·j,a+∑j=1n∑i=1m∑a=1kPj,aWILL-Pi·j,a·Qi·j,a.Consider the following constraints:(8)∑i=1mQi,a-∑j=1nQj,a=0∀i∈S,∀j∈B,∀a∈1,…,k,Pi·j,a≥Pi,aWILL∀i∈S,∀j∈B,∀a∈1,…,k,Pi·j,a≤Pj,aWILL∀i∈S,∀j∈B,∀a∈1,…,k,0≤Qi,a≤Qi,aMAX∀i∈S∪B,∀a∈1,…,k,where m is the total number of sellers, n is the total number of buyers, k represents total number of items, Pi·j,a is the price of item a traded between seller i and buyer j,  Qi·j,a is the quantity of item a traded between seller i and buyer j,  Pi,aWILL is seller i’s willingness to receive (the minimum acceptable selling price) for itema, Pj,aWILL is buyer i’s willingness to pay (the maximum acceptable buying price) for item a, S is set of sellers, in which there are |S|=m sellers, and B is the set of buyers, in which there are |B|=n buyers.We will use utility function of [2] where each bidder has his own utility function; therefore, he can specify his sensitivity or the range of acceptance of each feature (price and quantity). This utility function is shown as in(9)Max⁡∑i=1m∑j=1n∑a=1kf1iPi·j,a-Pi,aWILL·f2iQi·j,a+∑j=1n∑i=1m∑a=1kPj,aWILL-f1iPi·j,a·f2i(Qi·j,a)∀i∈S,∀j∈B,∀a∈1,…,k.We can see that the price and the quantity have been replaced with functions. The authors of [2] suggest two types of function the early-growth style and the late-growth style based on buyer/seller choice; early-growth style is concave downward. In contrast, the late-growth style is concave upward. In early-growth style the bidder has most influence in changing price or quantity. In the following Qi,aMAX means trader i’s maximum acceptable quantity for item a; t means the level of steepness (t=1,2,3,4,5).Early-growth equations are as follows:price:(10)f1iPi·j,a=-Pi·j,a-Pi,aWILLPj,aWILL-Pi,aWILL-12t+1·(Pj,aWILL-Pi,aWILL)+Pi,aWILL∀j∈B,∀a∈1,…,k;seller quantity:(11)f2iQi·j,a=-Qi·j,aQi,aMAX-12t+1·Qi,aMAX∀i∈S,∀j∈B,∀a∈1,…,k;buyer quantity:(12)f2iQi·j,a=-Qi·j,aQj,aMAX-12t+1·Qj,aMAX∀i∈S,∀j∈B,∀a∈1,…,k.Late-growth equations are as follows: price:(13)f1iPi·j,aPi·j,a-Pi,aWILLPj,aWILL-Pi,aWILL-12t·Pj,aWILL-Pi,aWILL+Pi,aWILL∀j∈B,∀a∈1,…,k;seller quantity:(14)f2iQi·j,a=Qi·j,aQi,aMAX-12t·Qi,aMAX∀i∈S,∀j∈B,∀a∈1,…,k;buyer quantity:(15)f2iQi·j,a=Qi·j,aQj,aMAX-12t·Qj,aMAX∀i∈S,∀j∈B,∀a∈1,…,k.The advantage of [2] utility is that the participant has the flexibility to change his preferences in each round while in [34] utility the participant has identical utility. The authors of [3] suggested a fuzzy utility function.


## 4.6. Termination

AUC-GAPSO operations applied for all parents in all iterations. At the end of an operation, new chromosomes (offspring) generated as a result of mutation and crossover operators. These chromosomes should be evaluated by using utility or fitness function. Therefore, AUC-GAPSO algorithm obtained the bestN chromosome, where N is the size of population in each generation. This process is repeated until a termination condition is reached. There are many termination conditions that can be used. In AUC-GAPSO the condition is either the maximum generation number (G) is reached or the global best (Pg) is not improved for a specific number of times. At the end, the best chromosome of the last iteration is considered as the fittest matching.


## 4.7. AUC-GAPSO Algorithm to Solve Winner Determination Problem in Multiunit Double Auction

In this section we present the algorithmic structure of AUC-GAPSO that we produced in addition to the description of its pseudocode. The flowchart of AUC-GAPSO algorithm is shown in Figure3. After finding the possible matches, the algorithm starts by initializing the population. Then, its fitness or utility value is determined for each chromosome. Subsequently, the following processes are repeated until the prespecified maximum number of generations is achieved or the global best is not improved for a predetermined period of times.Figure 3
AUC-GAPSO flowchart.The pseudocode of AUC-GAPSO is shown in Algorithm1. First, population size, maximum number of generations, and buyers and sellers bidding are taken as input. Then AUC-GAPSO algorithm works as follows.(1)
Loop counter and counter of global best improvement are set to zero.(2)
Find the possible matches from the bidding.(3)
Initial population is generated.(4)
Calculate the fitness (utility) for each chromosome using formula (9) and particle variables (velocity and position are set to zero while local and global best positions are set using formulas (4) and (5), resp.).(5)
Preserve global best, to be compared to the new one, in order to decide whether it is improved or not.(6)
Selection operation is conducted to find best chromosome in populationP and copy the best chromosome in the new population Pn.(7)
PopulationP is mutated and crossed-over based on the probability of crossover and mutation and then put into Pn.(8)
Calculate Pn fitness and particle variables value using formulas (9) and (2), (3), (4), and (5), respectively.(9)
Update CountPg according to the value of Pg. If the global best did not improve after the selection, between originalP and Pn, then the counter will be increased. This step takes advantage of PSO in order to reduce the time.(10)
Increase the loop counter.(11)
Check the termination condition. If the maximum generation number is reached or when the global best is not improved for a specific number of times (i.e., CountPg variable equals quarter maximum generation number), then stop the algorithm and putP into W, which have the fittest matches conducted from the algorithm. Otherwise, go to step (4).Algorithm 1:AUC-GAPSO algorithm.
Input:
population size:N
Maximum number of generations:G
Buyers input:B
Sellers input:S
Output:
Interesting Winners:W
Algorithm:
(1) Initializet = 0 and CountPg = 0
(2) Find possible matches fromB and S
(3) Generate populationP of size N
(4) For each chromosomei∈P
(4.1) Generate winners i from chromosome i
(4.2) Calculate fitness of winners i
(4.3) Initialize X0, V0, Pi, Pg
(5) OldPg = Pg
(6) For each chromosomei and i+1∈P
(6.1) Select the best chromosomes to be copied into Pn
(6.2) Mutate and crossover chromosome i with i+1
(6.3) Add reproduced chromosome to Pn
(6.4) Generate winners i from reproduced chromosome i
(6.5) Calculate fitness of winners i
(6.6) Update Vi, Xi, Pi, Pg
(7) If OldPg = Pg then
CountPg ++
Else
CountPg = 0
(8)t++
(9) If ((t > G) or (CountPg > (G/4))) then
get the fittest chromosomeC from P
W = C
Stop algorithm
Else
Go to Step (4)


## 5. Experiments Results

The programming of AUC-GAPSO algorithm is done by using java Borland JBuilder environment on Intel Core 2 Duo 3 GHz computer with 4 GB RAM, running with Microsoft Windows 7. For controlling the parameters of GA part, the crossover and mutation rates are set at 70% and 30%, respectively. During the experiments, all the bidding, items, population size, and generation were given by the user. The output of the experiments is a file that includes the most suitable solution or matches (fittest chromosome), along with its fitness, for example, for the scenario where there are three buyers, three sellers, and two items (see Tables1 and 2). The output fittest solution obtained by AUC-GAPSO is given in Table 4.Table 4
AUC-GAPSO output.
Buyer
Seller
Item
Price
Quantity
Fitness
1
1
1
11.08
9
69.4508
1
3
1
11.76
1
2
2
2
15
1
3
1
1
10.18
1
3
3
1
11.02
4We conducted two experiments for AUC-GAPSO in order to test the speed and fitness or utility. First experiment set the population to 200 and the generation of [50⋯600] while the second experiment set the generation to 200 and the population of [50⋯600]. Referring to the result of AUC-GAPSO of Figure 4, it can be observed that AUC-GAPSO spends less time to be completed. In addition, in first experiment of AUC-GAPSO, increasing of the generation will not necessarily affect the increase of the spent time because its termination condition does not only depend on the generation (iteration), but also depends on the improvement cycle of the global best. On the other hand, in the second experiment (see Figure 4), increasing the population size will most likely increase the execution time; AUC-GAPSO took more time to apply the GA operators and calculate the PSO variables of each chromosome in the population. Figure 5 shows that increasing in the population or generation will not guarantee an improvement of the average fitness, and it could even make it worse.Figure 4
The effect on time by altering population/generation size.Figure 5
The effect on average fitness by altering population/generation size.


### 5.1. AUC-GA and AUC-GAPSO Comparison

For comparing AUC-GAPSO to only genetic based solution AUC-GA, we conducted two experiments for AUC-GA and two experiments for AUC-GAPSO. First experiment set the population to 200 and the generation of [50⋯600] while the second experiment set the generation to 200 and the population of [50⋯600]. Figure 6 shows the result of the first experiment, in both AUC-GA and AUC-GAPSO, related to increasing the generations. Figure 7 shows the result of the second experiment in both AUC-GAPSO and AUC-GA, related to increasing the population size. By comparing the graphs in Figures 6 and 7, we can observe that AUC-GAPSO has better performance than AUC-GA, especially in the time spent to extract the fittest matches. Therefore, we can conclude that it is better to use AUC-GAPSO rather than AUC-GA.Figure 6
Comparison between GA and GAPSO on effect of generation.Figure 7
Comparison between GA and GAPSO on effect of population size.We can also see from Figures6 and 7 that increasing the population and generation will not guarantee an improvement of the fitness; sometimes it even makes it worse. Moreover, even if AUC-GAPSO reduces the time, it is important to choose the right generation and population size, which means that we have to be careful in choosing the generation and population size. We think that it is better to use AUC-GAPSO with high population size and moderate generation to extract winners. This trade-off decision will prospectively guarantee good fitness in short time.


## 5.1. AUC-GA and AUC-GAPSO Comparison

For comparing AUC-GAPSO to only genetic based solution AUC-GA, we conducted two experiments for AUC-GA and two experiments for AUC-GAPSO. First experiment set the population to 200 and the generation of [50⋯600] while the second experiment set the generation to 200 and the population of [50⋯600]. Figure 6 shows the result of the first experiment, in both AUC-GA and AUC-GAPSO, related to increasing the generations. Figure 7 shows the result of the second experiment in both AUC-GAPSO and AUC-GA, related to increasing the population size. By comparing the graphs in Figures 6 and 7, we can observe that AUC-GAPSO has better performance than AUC-GA, especially in the time spent to extract the fittest matches. Therefore, we can conclude that it is better to use AUC-GAPSO rather than AUC-GA.Figure 6
Comparison between GA and GAPSO on effect of generation.Figure 7
Comparison between GA and GAPSO on effect of population size.We can also see from Figures6 and 7 that increasing the population and generation will not guarantee an improvement of the fitness; sometimes it even makes it worse. Moreover, even if AUC-GAPSO reduces the time, it is important to choose the right generation and population size, which means that we have to be careful in choosing the generation and population size. We think that it is better to use AUC-GAPSO with high population size and moderate generation to extract winners. This trade-off decision will prospectively guarantee good fitness in short time.


## 6. Conclusion

In this paper, we proposed a hybrid evolutionary algorithm AUC-GAPSO, which combined genetic and particle swarm optimization, to solve the winner determination problem in multiunit double auction. The AUC-GAPSO algorithm used the property of evolutionary algorithms that matches bidders in a short time. The proposed solution is focusing on maximizing all traders’ utility or fitness through optimization based on hybridization of GA operations and PSO parameters. The algorithmic components, including real-coded representation, selection, crossover, mutation operators, and particles variables, all contribute to achieving a runtime improvement. Experimental results demonstrated that AUC-GAPSO in double auction incorporates high performance concerning the time of execution. In addition, AUC-GAPSO reduced the time when compared to AUC-GA. Moreover, we exposed how it is important to be careful in choosing the right generation and population size. In the future, one can solve multi-item (combinatorial) multiunit double auction which can be achieved by introducing multiobjective evolutionary algorithm.



---

*Source: 639787-2015-06-01.xml*