Truck loading schedule optimization using genetic algorithm for yard management

Truck loading schedule optimization using genetic algorithm for yard management Tadeusz Cekała, Zbigniew Telec, Bogdan Trawiński Wroclaw University of...
Author: Griselda Parks
2 downloads 1 Views 415KB Size
Truck loading schedule optimization using genetic algorithm for yard management Tadeusz Cekała, Zbigniew Telec, Bogdan Trawiński Wroclaw University of Technology, Department of Information Systems, Wybrzeże Wyspiańskiego 27, 50-370 Wrocław, Poland {zbigniew.telec, bogdan.trawinski}@pwr.edu.pl

Abstract. A new information system for order and yard management was implemented and deployed in a timber products company. The system was equipped with an innovative mechanism which automatically updates loading appointment schedule on the basis of current data of truck arrivals and departures. During a day the current schedule often becomes outdated due to various unexpected difficulties in loadings and unpredicted delays in trucks arrival. In the paper a genetic algorithm which is the core of the updating mechanism was presented. Penalty functions were employed in order to protect its solution against violating constraints. The algorithm was enhanced by additional processing just before computing the value of the fitness function. The improved genetic algorithm was experimentally evaluated both in terms of correctness and speed of producing the loading appointment schedule for a test problem. Moreover the simulation of its planned exploitation was performed using real-world data. The proposed genetic algorithm revealed better performance than the competitive particle swarm optimisation method as well as rescheduling made by the dispatchers manually. Keywords: loading schedule, genetic algorithm, particle swarm optimization, yard management, manufacturing company

1

Introduction

The problem of dock assignment and truck scheduling problem has been drawing the attention of many researchers recently. Most of works are devoted to the problem of cross docking where shipments are transferred directly from incoming to outgoing trucks without storage in between. In a cross docking model customers are known before the goods get to the warehouse and hence the two most expensive warehousing operations , i.e. storing and retrieving are eliminated. The reviews of earlier literature on o mathematical models cross-dock planning provided Agustina et al. [1], and and quantitative approaches for dock door assignment in cross-docking elaborated Shuib et al. [2]. The authors develop integer linear programming as well as non-linear dynamic programming models which typical objective is to minimize the total penalty of earliness and tardiness in incoming and outgoing trucks. Since dock assignment and truck scheduling problems are NP-hard various meta heuristic procedures have been proposed in literature to solve these models.

Vahdani and Zandieh [3] utilized five meta-heuristic algorithms: genetic algorithm), tabu search, simulated annealing, electromagnetism-like algorithm, and variable neighbourhood search to schedule the trucks in cross-dock terminals to minimize total operation time. In turn, Boloori Arabani et al. [4] applied five metaheuristics for scheduling of trucks in a cross-docking, namely genetic algorithm, tabu search, particle swarm optimization, ant colony optimization, and differential evolution. Liao et al. [5] proposed and experimentally evaluated three hybrid ant colony optimization and two hybrid simulated annealing algorithms, Madani-Isfahani [6] devised simulated annealing and firefly algorithms, Kuo [7] worked out variable neighborhood search heuristics and compared it with four simulated annealing algorithms. Naderi et al. [8] addressed a biobjective problem of truck scheduling in a cross-docking system and solved it using a multiobjective iterated greedy algorithm. Next they compared their algorithm with the subpopulation particle swarm optimization and strength Pareto evolutionary algorithm. Particle swarm optimization (PSO) approach was also applied to solve scheduling problems. PSO is an alternative to genetic algorithm population-based evolutionary computation technique which simulates the social behaviour of bird flocks or fish schools. A number of researchers utilize PSO to solve the discrete problem of timetable scheduling [9, 10, 11, 12]. In this paper we used the PSO approach for building an alternative truck loading schedule to conduct comparative analysis. The authors have long experience in using genetic algorithms for machine learning methods, e.g. to obtain optimal predictive ensemble models. We applied the selfadapting genetic algorithms to compose heterogeneous bagging ensembles [13].We have also explored the methods to predict from a data stream of real estate sales transactions based on ensembles of genetic fuzzy systems [14]. One of the main functions of the newly implemented and deployed information system in a timber products company is the management of a company yard. It includes noting the times when trucks arrive, enter loading bays, and leave the company yard. The loading appointment schedule is prepared in advance. The loading time is determined when an order is taken and then the transport operator is notified about the scheduled appointment. However during a working day it often happens that the current schedule becomes outdated. For example the time of loading a truck can be estimated imprecisely or unexpected difficulties can occur during loading process. Moreover, some trucks may be delayed and the others can arrive before the scheduled time. In such situations the dispatcher is obliged to improve the plan manually. This additional activity takes time and may cause unnecessary extra delays. The main purpose of the method presented in the paper is to update a daily loading plan automatically. In the paper a genetic algorithm, which is the core of the updating mechanism, was worked out and tested. Penalty functions were employed to protect the solution against violating constraints. An improvement introduced into the genetic algorithm significantly accelerates the minimization of evaluation function and reduces time needed to find a solution, was also proposed and evaluated. It is planned that proposed GA is executed systematically before each predetermined unit of time and produces an improved schedule for the rest of a working day. Such routine should result in shortening an average wait time of trucks at the company yard.

2 Genetic algorithm for loading schedule optimization The main properties of the proposed genetic algorithm for loading schedule optimization and the particle swarm optimization approach used for comparative evaluation are as follows. Coding chromosomes. Integer-coded chromosome representing the whole solution, i.e. the complete version of a daily loading appointment schedule was employed. The chromosome embraces all subsequent appointments (see Fig. 1). Each appointment is represented by two integer genes where the first one is the number of a loading bay (LB) and the second one indicates time (T) at which outbound truck enters the bay. The latter is expressed by the number of a half hour. Such representation of individuals protects the algorithm against generating unfeasible solutions during crossover operation. Crossover will produce neither doubling nor vanishing appointments because they are determined by the position in the chromosome and the length of the individual does not change during this operation.

Fig. 1. Structure of a chromosome

Genetic operators. Classic crossover operator is used and performed at the boundary points between appointments. In consequence crossover results in swapping a number of appointments between the individuals. In turn, mutation consists in replacing a given appointment by a new one comprising randomly drawn loading bay number and truck arrival time. Constraint handling. Two types of constraints are distinguished: strong and weak ones. The strong constraint says that only one truck can be assigned to a given loading bay at a given point of time, what means that the appointments cannot overlap. In turn, the weaker constraints concern the order the trucks should enter loading bays as well as the discrepancy between a new schedule and the original one. Penalty functions are used to handle constraints. Their values are proportional to the number of constraint violations by the schedule encoded in the chromosome and penalty coefficients depend on the type of a constraint. The stronger constraint the bigger value of this coefficient. Fitness function. The ultimate goal of the algorithm is to minimize the overall wait time during a day. Therefore, the fitness function is expressed by equation (1). 𝐹(𝑥) = �

𝑥𝑖 ∈𝑥

𝑔(𝑥𝑖 ) + 𝑃(𝑥)

(1)

where x denotes a given individual in the population, F(x) stands for the fitness function, xi – i-th appointment, g(xi) – rating of i-th appointment, and P(x) – penalty function. In turn, g(xi) is expressed by equation (2).

𝑔(𝑥𝑖 ) = �

𝑡𝑛𝑛 (𝑥𝑖 ) − 𝑡𝑎 (𝑥𝑖 ) |𝑡𝑛𝑛 (𝑥𝑖 ) − 𝑡𝑠 (𝑥𝑖 )|

𝑖𝑖 𝑡ℎ𝑒 𝑡𝑡𝑡𝑡𝑡 ℎ𝑎𝑎 𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑖𝑖 𝑡ℎ𝑒 𝑡𝑡𝑡𝑡𝑡 ℎ𝑎𝑎 𝑛𝑛𝑛 𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑦𝑦𝑦

(2)

where xi denotes an i-th appointment, ta(xi) – time of actual arrival of a truck, ts(xi) – time of originally scheduled entry of a truck, tns(xi) – time of newly scheduled entry of a truck. The penalty function P(x) is expressed by equation (3) as the sum of all penalties imposed on the individual. 5

𝑃(𝑥) = �

𝑗=1

𝑝𝑗 𝑣𝑗 (𝑥)

(3)

where x denotes a given individual in the population, pj stands for a penalty coefficient for the j-th constraint, and vj(x) – the number of violations of the j-th constraint by the schedule encoded in the individual. Five different penalties are taken into account. Penalty 1 is the penalty for overlapping appointments, v1(x) is the number of time units, i.e. half hours when the appointments overlap. Penalty 2 is the penalty for scheduling an appointment for a truck which has not arrived yet before that truck which stays already at a parking lot; v2(x) is the number of such pairs of appointments. Penalty 3 is the penalty for arranging an appointment for a delayed truck before that truck which has arrived on time; v3(x) is the number of such pairs of appointments. Penalty 4 is the penalty for making an appointment for a truck which has already arrived but its appointment time has not passed yet before that truck which entry time for a loading bay has been postponed; v4(x) is the number of such pairs of appointments. Penalty 5 is the penalty for moving an appointment for a truck which has not arrived yet to the time point which is earlier than originally scheduled one; v5(x) is the number of time units of such shift. Improvement of GA. An enhancement of the genetic algorithm applied to the preparation of the loading appointment schedule was devised. In each iteration each individual is improved just before the calculation of the fitness function. The scheduled appointments are moved to earlier time points provided: - a loading bay is vacant in time units before a given appointment, - if a truck has already arrived and its appointment is booked later than a current time point, - if a truck has not arrived yet and its appointment is booked for a later time point than previously scheduled. The appointments are moved to the earliest points of time when above conditions are still satisfied. This improvement prevents from the situation when a truck stays at a parking lot and at the same point there is an unoccupied loading bay. Particle Swarm Optimization. The competitive particle swarm optimisation method was elaborated to produce a loading appointment schedule. The particle is represented in the same way as in the GA chromosome. Constraints and fitness function are formulated analogously. The schema of PSO used in the experiments reported in the paper differed from classic one. The concept of self-mutation proposed by Chu et al. [10] was implemented. Moreover, the velocity vector to change particle positions was not used either. The exchange of genes, which represent appointments, among

individuals steps. 1. 2. 3.

was employed instead. The algorithm was composed of the following

Initialize randomly the population. Evaluate the fitness function for each particle. Memorize by the particles their previous best positions and the best position in the neighborhood. 4. Change randomly selected appointment in each particle. 5. For each particle copy one randomly selected appointment from its previous best position 6. For each particle copy one randomly selected appointment from the previous best position in its neighborhood 7. Evaluate the fitness function for each particle. 8. If a termination criterion is not met go to Step 3. 9. Return the best particle as the solution The random change of an appointment in a particle corresponds to the movement of a particle by a velocity vector in the classical PSO algorithm. In turn, copying an appointment from the particle’s best solution and from the best solution in the particle’s neighborhood are the equivalent of moving the particle toward its best solution and the best solution in its neighborhood respectively.

3 Experimental evaluation of proposed algorithm Two series of experiments were conducted to evaluate the proposed algorithm. First, single runs of the algorithm for a test problem in a fixed time of a day were done. The test data were created based on the experience of an operating timber products company and reflected main events which led to deteriorating the appointment schedule. Second, the algorithm was run for real-world data to simulate its daily routine. In this case the algorithm was executed each half an hour to produce an optimized loading plan for the rest of a working day. 3.1 Test problem and results The outdated schedule used in the experiments is illustrated in Fig. 2 in the form of a screenshot taken from the dispatcher module of the information system for yard management. The time point for running the algorithms was set to 12:00. At this hour all possible events which can distort the current loading schedule are considered, namely: - three trucks, which have arrived in time, cannot enter any loading bay according to the appointment because of delays in loading process, - two trucks are late, but one of them has already arrived, - one truck, which has arrived in time, will not be loaded on time because its appointed loading bay will be still occupied, - two trucks have arrived before their scheduled time. The task of tested algorithms is to reschedule all remaining appointments including the outdated appointments. The goal of subsequent series of runs was to tune GA

parameters such as crossover rate, mutation rate, population size, crossover count, elite count, tournament size, and selection method. Finally, GA and PSO as well as GA and improved GA algorithms with selected parameters were contrasted. Within each series the tested algorithms were executed ten times and the mean values of fitness, rating, and penalties were compared and their convergence was analysed.

Fig. 2. Illustration of outdated appointment schedule used in a test problem

The parameters of GA used by testing crossover rate are shown in Table 1 and the fitness, rating, and penalty values obtained for different probability of crossover are placed in Table 2. The fitness function attains the lowest values by crossover rate equal to 0.8 and 0.9. Due to faster convergence of GA by crossover rate 0.9, this value is used in the next experiments. Table 1. Parameters of GA by testing crossover rate Population size 80

Crossover type One-point

Mutation rate 0.1

Selection method Roulette wheel

Iteration number 1000

Table 2. Fitness, rating, and penalty values for different crossover rate Crossover rate 0.5 0.7 0.8 0.9 0.95

Fitness function 10789 11065 10435 10638 10795

Rating (sum) 9066 9567 8829 8871 8967

Penalty 1 500 100 400 300 500

Penalty 2 260 480 360 600 500

Penalty 3 246 174 228 162 120

Penalty 4 270 282 264 336 330

Penalty 5 447 462 354 369 378

The parameters of GA employed by testing mutation rate are presented in Table 3 and the fitness, rating, and penalty values obtained for different probability of mutation are shown in Table 4. The fitness function attains the lowest values by mutation rate equal to 0.3 and this value is used in the succeeding experiments. Table 3. Parameters of GA by testing mutation rate Population size 80

Crossover type One-point

Crossover rate 0.9

Selection method Roulette wheel

Iteration number 1000

Table 4. Fitness, rating, and penalty values for different mutation rate Mutation rate 0.05 0.1 0.2 0.3 0.4

Fitness function 11553 10236 9883 9800 10704

Rating (sum) 9495 8826 8745 8499 9096

Penalty 1

Penalty 2

Penalty 3

Penalty 4

Penalty 5

700 200 100 300 300

500 340 180 140 360

360 318 282 318 294

354 372 432 411 516

144 180 144 132 138

The parameters of GA applied by testing population size are presented in Table 5 and the fitness, rating, and penalty values obtained for different sizes are shown in Table 6. The fitness function gains the lowest values by population size equal to 80 chromosomes and this number is used in the subsequent experiments. Table 5. Parameters of GA by testing population size Crossover type One-point

Crossover rate 0.9

Mutation rate 0.3

Selection method Roulette wheel

Iteration number 1000

Table 6. Fitness, rating, and penalty values for different population size Population size 20 40 60 80 100

Fitness function 13467 11182 9962 9800 9954

Rating (sum) 9624 8865 8436 8499 8649

Penalty 1 1900 1200 500 300 200

Penalty 2 980 280 120 140 220

Penalty 3 174 150 132 132 150

Penalty 4 240 300 336 318 366

Penalty 5 549 387 438 411 369

The parameters of GA applied by testing the elite count are presented in Table 7 and the fitness, rating, and penalty values obtained for different elite count are shown in Table 8. The application of elitism resulted in substantial improvement of the fitness value. The best output was obtained by the elite count equal to 8, i.e. 10 percent of the population size. Moreover, the elitism eliminated the Penalty 1, i.e. the penalty for overlapping appointments; other penalties were also decreased.

Table 7. Parameters of GA by testing the elite count Population size 80

Crossover type One-point

Crossover rate 0.9

Mutation rate 0.3

Selection method Roulette wheel

Iteration number 1000

Table 8. Fitness, rating, and penalty values for different elite count Elite count 0 1 2 4 8 16

Fitness function 9931 5343 4816 4610 4180 4248

Rating (sum) 8640 4860 4440 4224 3798 3780

Penalty 1

Penalty 2

Penalty 3

Penalty 4

Penalty 5

200 0 0 0 0 0

200 60 40 20 40 0

156 78 48 24 66 90

420 192 138 174 174 216

315 153 150 168 102 162

The parameters of GA applied by testing the number of crossover points are presented in Table 9 and the fitness, rating, and penalty values obtained for different sizes are shown in Table 10. The differences were insignificant therefore the twopoint crossover was is used in the next experiments. Table 9. Parameters of GA by testing the number of crossover points Population size 80

Crossover rate 0.9

Mutation rate 0.3

Selection method Roulette wheel

Iteration number 1000

Table 10. Fitness, rating, and penalty values for different number of crossover points Crossover points 1 2 4

Fitness function 9800 9931 9828

Rating (sum) 8499 8640 8550

Penalty 1 300 200 200

Penalty 2 140 200 220

Penalty 3 132 156 180

Penalty 4 318 420 330

Penalty 5 411 315 348

The parameters of GA applied by comparing roulette and tournament selection methods are presented in Table 11 and the fitness, rating, and penalty values obtained for different sizes are shown in Table 12. The optimal value of tournament size equal to 5 was determined in an additional test. The faster and more efficient minimization of the fitness function occurred by tournament selection method. Table 11. Parameters of GA by comparing roulette and tournament selection methods Population size 80

Crossover type Two-point

Crossover rate 0.9

Mutation rate 0.3

Tourn. size

Elite

5

8

Iteration number 1000

Table 12. Fitness, rating, and penalty values for compared selection methods Selection Roulette Tournament

Fitness function 3984 3599

Rating (sum) 3657 3262

Penalty 1 0 0

Penalty 2 0 40

Penalty 3 129 75

Penalty 4 102 192

Penalty 5 85 73

Fig. 3 Performance comparison of GA and PSO algorithms

The performance of GA in comparison with the competitive PSO algorithm is depicted in Fig. 3. It is clearly seen that GA outperforms PSO significantly in terms of both fitness and convergence rate. The GA and PSO algorithms were run with previously tuned parameters. The performance of primary GA compared with the improved version of GA for the number of iterations up to 1000 is illustrated Fig. 4. Fitness, rating, and penalty values obtained for 1000 iterations are given in Table 13. It is clearly seen that improved GA surpasses substantially primary GA in respect of both fitness function and convergence rate.

Fig. 4 Performance comparison of primary and improved GAs

Table 13. Fitness, rating, and penalty values for compared primary and improved GAs Selection Primary Improved

Fitness function 3599 2857

Rating (sum) 3262 2433

Penalty 1 0 0

Penalty 2 40 40

Penalty 3 75 96

Penalty 4 192 270

Penalty 5 73 18

The primary and improved GAs were also tested with other stopping conditions, namely 100 iterations without fitness improvement. The results for fitness function, number of iterations, and execution time are depicted in Figures 5 a), b), and c) respectively. They confirm the superiority of the improved GA over the primary one.

Fig. 5 Performance comparison of GA and GA improved algorithms

3.2 Simulation for an operating company The ultimate goal of the proposed genetic algorithm is the regular correction of a loading appointment schedule during a working day. The algorithm is intended for running before a given time unit, e.g. each half an hour, and producing an optimized schedule for the rest of a day. The main evaluation criterion in this case is the mean wait time of all trucks during the whole day. In order to examine if the proposed improved GA ensures the shorter mean wait time real-world data were derived from an operating company. The data of a primary schedule and actual loading times were taken for the period of ten working days from the 5th to 16th May, 2014. The mean wait time was calculated for individual days. Based on these data the utilization of the proposed algorithm in real conditions was simulated. The algorithm was run 10 minutes before and 20 minutes after each hour to produce an updated schedule. The trucks entered loading bays according to the newly generated appointments. This procedure allowed for computation of the mean wait time provided by the algorithm for each day. The results for the operating company, where the schedule was corrected manually by the dispatchers, and improved GA are compared in Table 14 and Fig. 6. It is shown that thanks to GA the mean wait time decreased by 5 minutes i.e. almost 10 per cent. For a company the improvement of a given operating factor of 10% can be very important. Table 14. Comparison of mean wait time in the operating company and provided by GA Individual days Operating company Improved GA

1 75 66

2 51 47

3 42 36

4 77 71

5 49 42

6 37 38

7 60 54

8 64 60

9 60 56

10 72 67

Mean 58.7 53.7

Fig. 6 Comparison of mean wait time in the operating company and provided by GA

The t-test was performed in respect of mean wait time determined for the operating company and provided by the improved GA algorithm. The p-value was equal to 0.407, i.e. greater than the alpha level 0.05, thus the null hypothesis could not be rejected. It means that the differences between both results were not statistically significant. We could apply the t-test because we conducted earlier the Shapiro-Wilk and Levene tests. The former did not reject the null hypothesis that the samples came from a normally distributed population and the latter did not reject the null hypothesis that the population variances were equal. Hence, the assumptions underlying a t-test were satisfied.

4 Conclusions and Future Work A method for optimizing truck loading appointment schedule using a genetic algorithm was devised. The chromosomes represent the whole solution, i.e. loading appointment schedules. Each appointment is encoded in two genes comprising the number of a loading bay and time at which outbound truck should enter the bay respectively. Five different penalties were employed to protect the solution against violating constraints. The primary version of GA was enhanced by additional processing just before computing the value of the fitness function. The scheduled appointments are moved to earlier time points whenever it may result in a better solution. The proposed algorithm was evaluated experimentally using a test problem based on the experience of an operating timber products company. Moreover the simulation of its planned exploitation was performed using real-world data of loading trucks within two weeks. The results proved the usefulness of the algorithm to optimize the loading appointment schedule which becomes outdated during a working day. The proposed GA method outperformed an alternative approach to streamline loading trucks based on particle swarm optimization. During simulation of everyday exploitation at an operating company it turned out that the improved GA provided better appointment schedules than the dispatchers did manually.

It is planned to compare our GA based method with other nature inspired techniques such as ant colony optimization, artificial bee colony, and firefly algorithms and as well as with traditional simulated annealing and tabu search approaches. Moreover, the algorithm will be incorporated into the information system for yard management at the timber products company what allows for examining it during a longer period of time.

References 1.

2.

3. 4.

5.

6.

7. 8.

9.

10.

11.

12.

13. 14.

Agustina, D., Lee, C.K.M., Piplani, R.: A Review: Mathematical Models for Cross Docking Planning. International Journal of Engineering Business Management 2(2), 47-54 (2010) Shuib, A., Ashikin, W.N., Fatthi, W.A.: A Review on Quantitative Approaches for Dock Door Assignment in Cross-Docking. International Journal on Advanced Science, Engineering, Information Technology 2(5), 30-34 (2012) Vahdani, B., Zandieh, M.: Scheduling trucks in cross-docking systems: Robust metaheuristics. Computers & Industrial Engineering 58, 12–24 (2010) Boloori Arabani, A.R., Fatemi Ghomi, S.M.T., Zandiehb, M.: Meta-heuristics implementation for scheduling of trucks in a cross-docking system with temporary storage. Expert Systems with Applications 38(3), 1964–1979 (2011) Liao, T.W., Chang, P.C., Kuo, R.J., Liao, C.-J.: A comparison of five hybrid metaheuristic algorithms for unrelated parallel-machine scheduling and inbound trucks sequencing in multi-door cross docking systems. Applied Soft Computing 21, 180–193 (2014) Madani-Isfahani, M., Tavakkoli-Moghaddam, R., Naderi, B.: Multiple cross-docks scheduling using two meta-heuristic algorithms. Computers & Industrial Engineering 74, 129-138 (2014) Kuo, Y.: Optimizing truck sequencing and truck dock assignment in a cross docking system. Expert Systems with Applications 40, 5532–5541 (2013) Naderi, B., Rahmani, S., Rahman, S.: A Multiobjective Iterated Greedy Algorithm for Truck Scheduling in Cross-Dock Problems. Journal of Industrial Engineering, Article ID 128542, 12 pages (2014) Chen, R.-M., Shih, H.-F.: Solving University Course Timetabling Problems Using Constriction Particle Swarm Optimization with Local Search. Algorithms 6(2), 227-244 (2013) Chu, S.-C., Chen, Y.-T., Ho, J.-H.: Timetable Scheduling Using Particle Swarm Optimization, In: Proceedings of the First International Conference on Innovative Computing, Information and Control, ICICIC '06, Vol. 3, pp. 324-327 (2006) Kumar, A., Singh, K., Sharma, N.: Automated Timetable Generator Using Particle Swarm Optimization. International Journal on Recent and Innovation Trends in Computing and Communication 1(9), 686–692 (2013) Tassopoulos, I.X., Beligiannis, G.N.: A hybrid particle swarm optimization based algorithm for high school timetabling problems. Applied Soft Computing 12(11), 3472– 3489 (2012) Smętek, M., Trawiński, B.: Selection of Heterogeneous Fuzzy Model Ensembles Using Self-adaptive Genetic Algorithms, New Generation Computing 29:3, 309--327 (2011) Trawiński, B.: Evolutionary Fuzzy System Ensemble Approach to Model Real Estate Market based on Data Stream Exploration. Journal of Universal Computer Science 19:4, 539--562 (2013)

Suggest Documents