for Journals by Title or ISSN for Articles by Keywords help
 Subjects -> COMPUTER SCIENCE (Total: 1988 journals)     - ANIMATION AND SIMULATION (29 journals)    - ARTIFICIAL INTELLIGENCE (99 journals)    - AUTOMATION AND ROBOTICS (100 journals)    - CLOUD COMPUTING AND NETWORKS (63 journals)    - COMPUTER ARCHITECTURE (9 journals)    - COMPUTER ENGINEERING (9 journals)    - COMPUTER GAMES (16 journals)    - COMPUTER PROGRAMMING (23 journals)    - COMPUTER SCIENCE (1153 journals)    - COMPUTER SECURITY (45 journals)    - DATA BASE MANAGEMENT (13 journals)    - DATA MINING (32 journals)    - E-BUSINESS (22 journals)    - E-LEARNING (27 journals)    - ELECTRONIC DATA PROCESSING (21 journals)    - IMAGE AND VIDEO PROCESSING (40 journals)    - INFORMATION SYSTEMS (104 journals)    - INTERNET (92 journals)    - SOCIAL WEB (50 journals)    - SOFTWARE (33 journals)    - THEORY OF COMPUTING (8 journals) COMPUTER SCIENCE (1153 journals)
 The end of the list has been reached or no journals were found for your choice.
 Journal of Scheduling   [SJR: 1.053]   [H-I: 47]   [5 followers]  Follow         Hybrid journal (It can contain Open Access articles)    ISSN (Print) 1099-1425 - ISSN (Online) 1094-6136    Published by Springer-Verlag  [2353 journals]
• Two-agent flowshop scheduling to maximize the weighted number of
just-in-time jobs
• Authors: Yunqiang Yin; T. C. E. Cheng; Du-Juan Wang; Chin-Chia Wu
Pages: 313 - 335
Abstract: Abstract We consider the scheduling problem in which two agents (agents A and B), each having its own job set (containing the A-jobs and B-jobs, respectively), compete to process their own jobs in a two-machine flowshop. Each agent wants to maximize a certain criterion depending on the completion times of its jobs only. Specifically, agent A desires to maximize either the weighted number of just-in-time (JIT) A-jobs that are completed exactly on their due dates or the maximum weight of the JIT A-jobs, while agent B wishes to maximize the weighted number of JIT B-jobs. Evidently four optimization problems can be formulated by treating the two agents’ criteria as objectives and constraints of the corresponding optimization problems. We focus on the problem of finding the Pareto-optimal schedules and present a bicriterion analysis of the problem. Solving this problem also solves the other three problems of bicriterion scheduling as a by-product. We show that the problems under consideration are either polynomially or pseudo-polynomially solvable. In addition, for each pseudo-polynomial-time solution algorithm, we show how to convert it into a two-dimensional fully polynomial-time approximation scheme for determining an approximate Pareto-optimal schedule. Finally, we conduct extensive numerical studies to evaluate the performance of the proposed algorithms.
PubDate: 2017-08-01
DOI: 10.1007/s10951-017-0511-7
Issue No: Vol. 20, No. 4 (2017)

• Non-preemptive buffer management for latency sensitive packets
• Authors: Moran Feldman; Joseph (Seffi) Naor
Pages: 337 - 353
Abstract: Abstract The delivery of latency sensitive packets is a crucial issue in real-time applications of communication networks. Such packets often have a firm deadline and a packet becomes useless if it arrives after its deadline. The deadline, however, applies only to the packet’s journey through the entire network; individual routers along the packet’s route face a more flexible deadline. We study policies for admitting latency sensitive packets at a router. Each packet is tagged with a value. A packet waiting at a router loses value over time as its probability of arriving at its destination on time decreases. The router is modeled as a non-preemptive queue, and its objective is to maximize the total value of the forwarded packets. When a router receives a packet, it must either accept it (and delay future packets), or reject it immediately. The best policy depends on the set of values that a packet can take. We consider three natural sets: an unrestricted model, a real-valued model, where any value over 1 is allowed, and an integral-valued model. For the unrestricted model, we prove that there is no constant competitive ratio algorithm. For the real-valued model, we give a randomized 4-competitive algorithm and a matching lower bound (up to low order terms). We also provide a deterministic lower bound of $$\phi ^3 - {\varepsilon }\approx 4.236$$ , almost matching the previously known 4.24-competitive algorithm. For the integral-valued model, we describe a deterministic 4-competitive algorithm, and prove that this is tight even for randomized algorithms (up to low order terms).
PubDate: 2017-08-01
DOI: 10.1007/s10951-016-0474-0
Issue No: Vol. 20, No. 4 (2017)

• An exact algorithm for parallel machine scheduling with conflicts
• Authors: Daniel Kowalczyk; Roel Leus
Pages: 355 - 372
Abstract: Abstract We consider an extension of classic parallel machine scheduling where a set of jobs is scheduled on identical parallel machines and an undirected conflict graph is part of the input. Each node in the graph represents a job, and an edge implies that its two jobs are conflicting, meaning that they cannot be scheduled on the same machine. The goal is to find an assignment of the jobs to the machines such that the maximum completion time (makespan) is minimized. We present an exact algorithm based on branch and price that combines methods from bin packing, scheduling, and graph coloring, with appropriate modifications. The algorithm has a good computational performance even for parallel machine scheduling without conflicting jobs.
PubDate: 2017-08-01
DOI: 10.1007/s10951-016-0482-0
Issue No: Vol. 20, No. 4 (2017)

• An exact extended formulation for the unrelated parallel machine total
weighted completion time problem
• Authors: Kerem Bülbül; Halil Şen
Pages: 373 - 389
Abstract: Abstract The plethora of research on $$\mathcal {NP}$$ -hard parallel machine scheduling problems is focused on heuristics due to the theoretically and practically challenging nature of these problems. Only a handful of exact approaches are available in the literature, and most of these suffer from scalability issues. Moreover, the majority of the papers on the subject are restricted to the identical parallel machine scheduling environment. In this context, the main contribution of this work is to recognize and prove that a particular preemptive relaxation for the problem of minimizing the total weighted completion time (TWCT) on a set of unrelated parallel machines naturally admits a non-preemptive optimal solution and gives rise to an exact mixed integer linear programming formulation of the problem. Furthermore, we exploit the structural properties of TWCT and attain a very fast and scalable exact Benders decomposition-based algorithm for solving this formulation. Computationally, our approach holds great promise and may even be embedded into iterative algorithms for more complex shop scheduling problems as instances with up to 1000 jobs and 8 machines are solved to optimality within a few seconds.
PubDate: 2017-08-01
DOI: 10.1007/s10951-016-0485-x
Issue No: Vol. 20, No. 4 (2017)

• Continuous-time production, distribution and financial planning with
periodic liquidity balancing
• Authors: Wolfgang Albrecht; Martin Steinrücke
Pages: 219 - 237
Abstract: Abstract Due to the inevitable focus on core competencies, even small- and medium-sized companies are increasingly forced to form supply chain (SC) networks. However, their specific situation is often characterized by a lack of equity and limited access to capital markets, so that bank loans must then be used to initiate production and distribution. Within a short-term multi-day planning horizon, both operations and finance must be scheduled precisely in order to obtain practical instructions for each network partner and the network managers. For this purpose, continuous-time modeling is required. Additionally, a coordination of monetary consequences resulting from both site-specific operational events and network-wide financial transactions is necessary to prevent insolvency. As bank overdrafts can be used to overcome financial imbalances during short periods (e.g., days or even hours), appropriate time intervals for liquidity management should be determined. The implementation of these intervals requires discrete-time modeling. In this context, the main challenge is to combine both of the aforementioned modeling techniques within a common decision model. To address this problem, a novel mixed-integer nonlinear program (MINLP) is developed, which enables exact planning and scheduling of SC operations as well as related financial transactions on the one hand, and periodic liquidity balancing on the other hand. A numerical analysis was based on a test scenario with randomly generated data. As we found out that even small problem instances of the MINLP, e.g., a three-stage supply chain with three sites in each stage, were not computable with high-performance hardware and a commercial nonlinear standard solver, we additionally propose an equivalent linearized version of the decision model. The latter could be optimized within acceptable computation time using the CPLEX solver.
PubDate: 2017-06-01
DOI: 10.1007/s10951-016-0488-7
Issue No: Vol. 20, No. 3 (2017)

• The local–global conjecture for scheduling with non-linear cost
• Authors: Nikhil Bansal; Christoph Dürr; Nguyen Kim Thang; Óscar C. Vásquez
Pages: 239 - 254
Abstract: Abstract We consider the classical scheduling problem on a single machine, on which we need to schedule sequentially n given jobs. Every job j has a processing time $$p_j$$ and a priority weight $$w_j$$ , and for a given schedule a completion time $$C_j$$ . In this paper, we consider the problem of minimizing the objective value $$\sum _j w_j C_j^\beta$$ for some fixed constant $$\beta >0$$ . This non-linearity is motivated for example by the learning effect of a machine improving its efficiency over time, or by the speed scaling model. For $$\beta =1$$ , the well-known Smith’s rule that orders job in the non-increasing order of $$w_j/p_j$$ gives the optimum schedule. However, for $$\beta \ne 1$$ , the complexity status of this problem is open. Among other things, a key issue here is that the ordering between a pair of jobs is not well defined, and might depend on where the jobs lie in the schedule and also on the jobs between them. We investigate this question systematically and substantially generalize the previously known results in this direction. These results lead to interesting new dominance properties among schedules which lead to huge speed up in exact algorithms for the problem. An experimental study evaluates the impact of these properties on the exact algorithm A*.
PubDate: 2017-06-01
DOI: 10.1007/s10951-015-0466-5
Issue No: Vol. 20, No. 3 (2017)

• A parameterized complexity view on non-preemptively scheduling

• Authors: René van Bevern; Rolf Niedermeier; Ondřej Suchý
Pages: 255 - 265
Abstract: Abstract We study the problem of non-preemptively scheduling n jobs, each job j with a release time  $$t_j$$ , a deadline  $$d_j$$ , and a processing time  $$p_j$$ , on m parallel identical machines. Cieliebak et al. (2004) considered the two constraints $$d_j-t_j \le \lambda {}p_j$$ and $$d_j-t_j \le p_j +\sigma$$ and showed the problem to be NP-hard for any  $$\lambda >1$$ and for any  $$\sigma \ge 2$$ . We complement their results by parameterized complexity studies: we show that, for any  $$\lambda >1$$ , the problem remains weakly NP-hard even for  $$m=2$$ and strongly W[1]-hard parameterized by m. We present a pseudo-polynomial-time algorithm for constant m and  $$\lambda$$ and a fixed-parameter tractability result for the parameter m combined with  $$\sigma$$ .
PubDate: 2017-06-01
DOI: 10.1007/s10951-016-0478-9
Issue No: Vol. 20, No. 3 (2017)

• Optimal scheduling of contract algorithms with soft deadlines
• Authors: Spyros Angelopoulos; Alejandro López-Ortiz; Angèle Hamel
Pages: 267 - 277
Abstract: Abstract A contract algorithm is an algorithm which is given, as part of its input, a specified amount of allowable computation time, and may not return useful results if interrupted prior to that time. In contrast, an interruptible algorithm will always output some meaningful (albeit suboptimal) solution, even if interrupted during its execution. Simulating interruptible algorithms by means of schedules of executions of contract algorithms in parallel processors is a well-studied problem with significant applications in AI. In the standard model, the interruptions are hard deadlines in which a solution must be reported immediately at the time the interruption occurs. In this paper, we study the more general setting of scheduling contract algorithms in the presence of soft deadlines. In particular, we address the setting in which if an interruption occurs at time t, then the system is given an additional window of time $$w(t)\le c \cdot t$$ , for constant c, within which the simulation must be completed. We formulate extensions to performance measures of schedules under this setting and derive schedules of optimal performance for all concave functions w.
PubDate: 2017-06-01
DOI: 10.1007/s10951-016-0483-z
Issue No: Vol. 20, No. 3 (2017)

• A greedy approximation algorithm for minimum-gap scheduling
• Authors: Marek Chrobak; Uriel Feige; Mohammad Taghi Hajiaghayi; Sanjeev Khanna; Fei Li; Seffi Naor
Pages: 279 - 292
Abstract: Abstract We consider scheduling of unit-length jobs with release times and deadlines, where the objective is to minimize the number of gaps in the schedule. Polynomial-time algorithms for this problem are known, yet they are rather inefficient, with the best algorithm running in time $$O(n^4)$$ and requiring $$O(n^3)$$ memory. We present a greedy algorithm that approximates the optimum solution within a factor of 2 and show that our analysis is tight. Our algorithm runs in time $$O(n^2 \log n)$$ and needs only O(n) memory. In fact, the running time is $$O(n (g^*+1)\log n)$$ , where $$g^*$$ is the minimum number of gaps.
PubDate: 2017-06-01
DOI: 10.1007/s10951-016-0492-y
Issue No: Vol. 20, No. 3 (2017)

• Two-machine flowshop scheduling with three-operation jobs subject to a
fixed job sequence
• Authors: Bertrand M. T. Lin; F. J. Hwang; Jatinder N. D. Gupta
Pages: 293 - 302
Abstract: Abstract This paper studies the problem of scheduling three-operation jobs in a two-machine flowshop subject to a predetermined job processing sequence. Each job has two preassigned operations, which are to be performed on their respective dedicated machines, and a flexible operation, which may be processed on either of the two machines subject to the processing order as specified. Five standard objective functions, including the makespan, the maximum lateness, the total weighted completion time, the total weighted tardiness, and the weighted number of tardy jobs are considered. We show that the studied problem for either of the five considered objective functions is ordinary NP-hard, even if the processing times of the preassigned operations are zero for all jobs. A pseudo-polynomial time dynamic programming framework, coupled with brief numerical experiments, is then developed for all the addressed performance metrics with different run times.
PubDate: 2017-06-01
DOI: 10.1007/s10951-016-0493-x
Issue No: Vol. 20, No. 3 (2017)

• Algorithms for a special class of state-dependent shortest path problems
with an application to the train routing problem
• Authors: Lunce Fu; Maged Dessouky
Abstract: Abstract We study the state-dependent shortest path problem and focus on its application to the Single Train Routing Problem consisting of a rail network with only double-track segments, where the objective is to route one train through an empty network as fast as possible. We show that the Single Train Routing Problem is NP-hard. We investigate the solution properties and present sufficient conditions for optimality. Different conditions on the parameters are given to guarantee that certain local route selection is optimal. Then, a dynamic programming heuristic is introduced and conditions when the proposed heuristic can obtain the optimal solution in polynomial time are also discussed. Experimental results show the efficiency of the proposed heuristics for general problem settings.
PubDate: 2017-07-22
DOI: 10.1007/s10951-017-0535-z

• Online-bounded analysis
• Authors: Joan Boyar; Leah Epstein; Lene M. Favrholdt; Kim S. Larsen; Asaf Levin
Abstract: Abstract Though competitive analysis is often a very good tool for the analysis of online algorithms, sometimes it does not give any insight and sometimes it gives counter-intuitive results. Much work has gone into exploring other performance measures, in particular targeted at what seems to be the core problem with competitive analysis: The comparison of the performance of an online algorithm is made with respect to a too powerful adversary. We consider a new approach to restricting the power of the adversary, by requiring that when judging a given online algorithm, the optimal offline algorithm must perform at least as well as the online algorithm, not just on the entire final request sequence, but also on any prefix of that sequence. This is limiting the adversary’s usual advantage of being able to exploit that it knows the sequence is continuing beyond the current request. Through a collection of online problems, including machine scheduling, bin packing, dual bin packing, and seat reservation, we investigate the significance of this particular offline advantage.
PubDate: 2017-07-20
DOI: 10.1007/s10951-017-0536-y

• Multi-stage resource-aware scheduling for data centers with heterogeneous
servers
• Authors: Tony T. Tran; Meghana Padmanabhan; Peter Yun Zhang; Heyse Li; Douglas G. Down; J. Christopher Beck
Abstract: Abstract This paper presents a three-stage algorithm for resource-aware scheduling of computational jobs in a large-scale heterogeneous data center. The algorithm aims to allocate job classes to machine configurations to attain an efficient mapping between job resource request profiles and machine resource capacity profiles. The first stage uses a queueing model that treats the system in an aggregated manner with pooled machines and jobs represented as a fluid flow. The latter two stages use combinatorial optimization techniques to solve a shorter-term, more accurate representation of the problem using the first-stage, long-term solution for heuristic guidance. In the second stage, jobs and machines are discretized. A linear programming model is used to obtain a solution to the discrete problem that maximizes the system capacity given a restriction on the job class and machine configuration pairings based on the solution of the first stage. The final stage is a scheduling policy that uses the solution from the second stage to guide the dispatching of arriving jobs to machines. We present experimental results of our algorithm on both Google workload trace data and generated data and show that it outperforms existing schedulers. These results illustrate the importance of considering heterogeneity of both job and machine configuration profiles in making effective scheduling decisions.
PubDate: 2017-07-20
DOI: 10.1007/s10951-017-0537-x

• Offline first-fit decreasing height scheduling of power loads
• Authors: Anshu Ranjan; Pramod Khargonekar; Sartaj Sahni
Abstract: Abstract In this paper, we consider the problem of scheduling energy consumption loads in the setting of smart electric grids. Each load is characterized as a “job” by a start (arrival) time and a deadline by which a certain amount of electric energy must be delivered to the load. A job may be preemptable, i. e. it can be interrupted or non-preemptable. Specifically, we focus on scheduling a mixture of preemptable and non-preemptable jobs with the same arrival time and deadline with the goal of minimizing the peak power. We study and modify the first-fit decreasing height algorithm of the strip packing problem for this purpose. We prove its asymptotic performance bound: $$1.7 OPT + 1$$ and its tightness. The heuristic results in at most one preemption per job, and it can be implemented with $$O(n \log n + nq)$$ time complexity where q is the number of $$non-preemptable$$ jobs.
PubDate: 2017-06-21
DOI: 10.1007/s10951-017-0528-y

• A neighborhood for complex job shop scheduling problems with regular
objectives
• Authors: Reinhard Bürgy
Abstract: Abstract Due to the limited applicability in practice of the classical job shop scheduling problem, many researchers have addressed more complex versions of this problem by including additional process features, such as time lags, setup times, and buffer limitations, and have pursued objectives that are more practically relevant than the makespan, such as total flow time and total weighted tardiness. However, most proposed solution approaches are tailored to the specific scheduling problem studied and are not applicable to more general settings. This article proposes a neighborhood that can be applied for a large class of job shop scheduling problems with regular objectives. Feasible neighbor solutions are generated by extracting a job from a given solution and reinserting it into a neighbor position. This neighbor generation in a sense extends the simple swapping of critical arcs, a mechanism that is widely used in the classical job shop but that is not applicable in more complex job shop problems. The neighborhood is embedded in a tabu search, and its performance is evaluated with an extensive experimental study using three standard job shop scheduling problems: the (classical) job shop, the job shop with sequence-dependent setup times, and the blocking job shop, combined with the following five regular objectives: makespan, total flow time, total squared flow time, total tardiness, and total weighted tardiness. The obtained results support the validity of the approach.
PubDate: 2017-06-14
DOI: 10.1007/s10951-017-0532-2

• Discovering dispatching rules from data using imitation learning: A case
study for the job-shop problem
• Authors: Helga Ingimundardottir; Thomas Philip Runarsson
Abstract: Abstract Dispatching rules can be automatically generated from scheduling data. This paper will demonstrate that the key to learning an effective dispatching rule is through the careful construction of the training data, $$\{\mathbf {x}_i(k),y_i(k)\}_{k=1}^K\in {\mathscr {D}}$$ , where (i) features of partially constructed schedules $$\mathbf {x}_i$$ should necessarily reflect the induced data distribution $${\mathscr {D}}$$ for when the rule is applied. This is achieved by updating the learned model in an active imitation learning fashion; (ii) $$y_i$$ is labelled optimally using a MIP solver; and (iii) data need to be balanced, as the set is unbalanced with respect to the dispatching step k. Using the guidelines set by our framework the design of custom dispatching rules, for a particular scheduling application, will become more effective. In the study presented three different distributions of the job-shop will be considered. The machine learning approach considered is based on preference learning, i.e. which dispatch (post-decision state) is preferable to another.
PubDate: 2017-06-13
DOI: 10.1007/s10951-017-0534-0

• A hybrid scheduling approach for a two-stage flexible flow shop with batch
processing machines
• Authors: Yi Tan; Lars Mönch; John W. Fowler
Abstract: Abstract In this paper, we discuss a flexible flow shop scheduling problem with batch processing machines at each stage and with jobs that have unequal ready times. Scheduling problems of this type can be found in semiconductor wafer fabrication facilities (wafer fabs). We are interested in minimizing the total weighted tardiness of the jobs. We present a mixed integer programming formulation. The batch scheduling problem is NP-hard. Therefore, an iterative stage-based decomposition approach is proposed that is hybridized with neighborhood search techniques. The decomposition scheme provides internal due dates and ready times for the jobs on the first and second stage, respectively. Each of the resulting parallel machine batch scheduling problems is solved by variable neighborhood search in each iteration. Based on the schedules of the subproblems, the internal due dates and ready times are updated. We present the results of designed computational experiments that also consider the number of machines assigned to each stage as a design factor. It turns out that the proposed hybrid approach outperforms an iterative decomposition scheme where a fairly simple heuristic based on time window decomposition and the apparent tardiness cost dispatching rule is used to solve the subproblems. Recommendations for the design of the two stages with respect to the number of parallel machines on each stage are given.
PubDate: 2017-06-13
DOI: 10.1007/s10951-017-0530-4

• LP rounding and combinatorial algorithms for minimizing active and busy
time
• Authors: Jessica Chang; Samir Khuller; Koyel Mukherjee
Abstract: Abstract We consider fundamental scheduling problems motivated by energy issues. In this framework, we are given a set of jobs, each with a release time, deadline, and required processing length. The jobs need to be scheduled on a machine so that at most g jobs are active at any given time. The duration for which a machine is active (i.e., “on”) is referred to as its active time. The goal is to find a feasible schedule for all jobs, minimizing the total active time. When preemption is allowed at integer time points, we show that a minimal feasible schedule already yields a 3-approximation (and this bound is tight) and we further improve this to a 2-approximation via LP rounding techniques. Our second contribution is for the non-preemptive version of this problem. However, since even asking if a feasible schedule on one machine exists is NP-hard, we allow for an unbounded number of virtual machines, each having capacity of g. This problem is known as the busy time problem in the literature and a 4-approximation is known for this problem. We develop a new combinatorial algorithm that gives a 3-approximation. Furthermore, we consider the preemptive busy time problem, giving a simple and exact greedy algorithm when unbounded parallelism is allowed, i.e., g is unbounded. For arbitrary g, this yields an algorithm that is 2-approximate.
PubDate: 2017-06-10
DOI: 10.1007/s10951-017-0531-3

• Family scheduling with batch availability in flow shops to minimize
makespan
• Authors: Liji Shen; Jatinder N. D. Gupta
Abstract: Abstract This paper addresses a batch scheduling problem in flow shop production systems, where job families are formed based on setup similarities. In order to improve setup efficiency, we consider batching decisions in our solution procedure. Due to its high practical relevance, the batch availability assumption is also adopted in this study. In the presence of sequence-dependent setup times, it is proved that a permutation flow shop is generally not optimal. Therefore, our objective is to determine solutions with inconsistent batches, which essentially lead to non-permutation schedules, to minimize makespan. After examining structural properties, we develop a tabu search algorithm with multiple neighbourhood functions. Computational results confirm the remarkable benefits of batching decisions. Our algorithm also outperforms some well-known and well-performing approaches.
PubDate: 2017-05-22
DOI: 10.1007/s10951-017-0529-x

• The equivalence of two classical list scheduling algorithms for dependent
typed tasks with release dates, due dates and precedence delays
• Authors: Aurélien Carlier; Claire Hanen; Alix Munier Kordon
Abstract: Abstract We consider a finite set of unit time execution tasks with release dates, due dates and precedence delays. The machines are partitioned into k classes. Each task requires one machine from a fixed class to be executed. The problem is the existence of a feasible schedule. This general problem is known to be $$\mathcal {NP}$$ -complete; many studies were devoted to the determination of polynomial time algorithms for some special subcases, most of them based on a particular list schedule. The Garey–Johnson and Leung–Palem–Pnueli algorithms (respectively GJ and LPP in short) are both improving the due dates to build a priority list. They are modifying them using necessary conditions until a fixed point is reached. The present paper shows that these two algorithms are different implementations of the same generic one. The main consequence is that all the results valid for GJ algorithm are also for LPP and vice versa.
PubDate: 2017-02-14
DOI: 10.1007/s10951-016-0507-8

JournalTOCs
School of Mathematical and Computer Sciences
Heriot-Watt University
Edinburgh, EH14 4AS, UK
Email: journaltocs@hw.ac.uk
Tel: +00 44 (0)131 4513762
Fax: +00 44 (0)131 4513327

Home (Search)
Subjects A-Z
Publishers A-Z
Customise
APIs