• No se han encontrado resultados

The candidate agent list is another feature for CLS to solve GAP. From the problem data sets, we observe that resource consumed by a job for some agents may have a very high value. In this case, when that demand is processed, it is very likely to exceed the capacity of an agent. In contrast, a job processed by some agents may have a very low profit compared with the other agents for that job. In this case assigning that agent to the job is very unlikely to lead to the maximum total profit. We aim to exploit this information to get rid of the unpromising agents at the beginning of the search. This helps increase the efficiency of CLS in two ways: 1) CLS starts with a good initial solution and 2) it limits the size of the search space within promising regions.

Since the trade-off between getting high total profit and using low demand is a major problem, to obtain a good candidate agent list we first calculate a relative demand index and a relative profit index for all assignments of job j to agent i. Then these two indices are combined into a demand-profit index. To make use of this strategy, a candidate agent list for all jobs is sorted in descending order of the demand-profit index. This index is used to restrict the number of potential agents for each job and guide the search in choosing good moves.

A relative demand index represents an estimated chance of assigning the demand of job j to agent i in an optimal solution. The index is weighted both by the agent capacity and by the other agents’ demand in each job. A large demand consumed in each job tends to violate the agent capacity; therefore it is unlikely to be selected by the algorithm. To obtain a relative

demand index, the mean and standard deviation of the demand are used. The relative demand index Uij is calculated by the following steps:

To simplify our discussion, let uij be the proportion of agent capacity i to demand j, i.e.

ij i

ij b a

u = / ;

µ

uj and

σ

ujbe the mean and standard deviation of uij over all agents; Luj be a variation limit for uij, i.e. Luj =

µ

uj

σ

uj.

Step 1 If uij is greater than Luj, ∆uij =uijLuj, otherwise ∆uij =0.

Step 2 Calculate the relative demand index =

i ij

ij

ij u u

U / for all i, j

The variation limit Luj handles the demand variation of agents in each job. uij greater than this variation limit means that the demand placed on agent i by job j is small, and the assignment tends to be chosen by the algorithm. The smaller uij is the less likely it is that agent i would process job j. The difference between uij and the variation limit (i.e.

uj ij

ij u L

u = −

) is used to measure how much uij varies from the variation limit. Suppose that a demand required to process job j by agent i, aij is given in Table 6.4.

aij 1 2 3 4 5 6 7 bi

1 14 23 8 16 8 25 25 36 2 23 22 11 11 12 10 7 34 3 6 22 24 10 24 9 11 38 4 8 14 9 5 6 19 6 27 5 13 13 10 20 25 16 10 33

Table 6.4: An example of the demand matrix

Table 6.5 gives the corresponding values of the relative demand index Uij obtained by the above procedure.

Uij 1 2 3 4 5 6 7

1 0.13 0.06 0.43 0.06 0.40 0.03 0.00

2 0.01 0.05 0.18 0.18 0.18 0.34 0.36

3 0.53 0.13 0.00 0.27 0.02 0.47 0.17

4 0.21 0.23 0.17 0.49 0.40 0.03 0.31

5 0.12 0.53 0.22 0.00 0.00 0.13 0.15

Table 6.5: The relative demand index

A relative profit index represents an estimated possibility of the profit of job j processed by agent i contributing to the maximum total profit. The index is weighted both by the maximum profit for agent iand by the other agents’ associated profit for that job. The mean

and standard deviation of profit are used to handle profit variation. The relative profit index

Vij can be obtained similar to the relative demand index:

Let vij be the proportion of profit i to the maximum profit for agent i,

{

p j n

}

p

vij = ij/max ij : =1,2,3,..., ;

µ

vj and

σ

vj be the mean and standard deviation of vij over all agents; Lvj be a variation limit for vij, i.e. Lvj =

µ

vj

σ

vj.

Step 1 If vij is greater than Lvj, ∆vij =vijLvj, otherwise ∆vij =0.

Step 2 Calculate the relative profit index =

i ij

ij

ij v v

V / for all i, j.

Suppose that the profit of job j processed by agent i, pij is given in Table 6.6.

pij 1 2 3 4 5 6 7

(max)

pi

1 22 18 24 15 20 18 16 24 2 21 16 17 16 19 25 17 25 3 16 25 24 16 17 19 20 25 4 22 22 20 16 19 17 25 25 5 15 15 21 25 16 16 22 25

Table 6.6: An example of the profit matrix

Table 6.7 shows the relative profit index is obtained from the above procedure.

Vij 1 2 3 4 5 6 7

1 0.38 0.17 0.40 0.10 0.44 0.18 0.00

2 0.28 0.04 0.00 0.12 0.25 0.53 0.02

3 0.01 0.47 0.37 0.12 0.05 0.19 0.19

4 0.33 0.32 0.10 0.12 0.25 0.08 0.48

5 0.00 0.00 0.16 0.56 0.00 0.02 0.31

Table 6.7: The relative profit index

Now, the demand-profit index Wij can be obtained, i.e. Wij =

(

Uij +Vij

)

/2. A high value of

Wij indicates a high estimated chance of assigning job j to agent i with maximum feasible total profit. The demand-profit index is shown in Table 6.8.

Wij 1 2 3 4 5 6 7

1 0.25 0.11 0.41 0.08 0.42 0.10 0.00

2 0.14 0.04 0.09 0.15 0.22 0.44 0.19

3 0.27 0.30 0.17 0.19 0.04 0.33 0.18

4 0.27 0.28 0.14 0.30 0.33 0.05 0.40

5 0.06 0.27 0.19 0.28 0.00 0.07 0.23

Table 6.8: The demand-profit index

Then, the candidate agent list for each job is sorted in descending order of the demand-profit index Wij, which is shown in Table 6.9.

Candidate list 1 2 3 4 5 6 7

1 3 3 1 4 1 2 4

2 4 4 5 5 4 3 5

3 1 5 3 3 2 1 2

4 2 1 4 2 3 5 3

5 5 2 2 1 5 4 1

Table 6.9: The candidate agent list for each job

The candidate list parameter C is introduced to let us limit the number of candidate agents empirically at the beginning of the search and the algorithm starts with an initial random assignment within the number of candidate agents specified by the parameter C. Then the search algorithm only evaluates a job assigned to the limited number of promising agents.

This helps reduce the computational effort significantly and targets the search for an optimal solution. For example, in Table 6.9, setting C = 3, agent 3, 4, and 1 are only considered for job 1.

For GAP, it is the first time that the variations of demand and profit are considered, and the trade-off between them is handled by the relative demand-profit index. The design of this technique is similar to that of timeslot violation discussed in Section 4.3.2. The use of the candidate agent list is fruitful because practitioners with little computer background can easily modify the relative demand-cost index in order to improve the performance of the solving algorithm. To test the performance of CLS with the candidate agent list, we performed the experiments with the same data set and parameters as used in the previous experiments. The candidate list parameter C is set manually. For all test problems, we

initially performed a few runs in order to determine good values of the parameter. Firstly, the parameter was roughly set to 50-60% of the number of agents for each test problem. We then slightly increased the value of the parameter whether it resulted in any improvement on the quality of solutions. The results are shown in Table 6.10.

Problem m n Optimal Best σ Avg. time

Problem m n Optimal Best σ Avg. time

Table 6.10: Results – CLS with candidate agent list

From Table 6.10, we observe that CLS with candidate agent list performs very well. For small-sized problems, in many cases, it finds optimal solutions or very near optimal solutions within little computational time. However, the candidate agent list strategy becomes less powerful when the number of agents and jobs increases. This may be because the trade-off between total profit and infeasibility becomes less clear and the search space cannot further be limited and intensified using the candidate agent list strategy.

Note that from our experiments, all three extensions (two-variables selection, refined improvement, and candidate agent list) improve on the results of CLS alone and do not

significantly increase run time. This indicates the usefulness of using CLS with all these extensions.