## 1 Introduction  
The storage yard of an automated container terminal is a buffer area where the import and export containers are stored temporarily. The import containers, after being discharged from the vessels, are delivered to the storage yard and then stored there until they are carried out for road or rail transportation. The export containers carried in from the inland dwell at the storage yard until they are loaded onto vessels for sea transportation. Being an interface between the seaside and the landslide, the storage yard often becomes a bottleneck for the whole logistics flow within a terminal. The delay of vessel operations caused by the delayed operations at the storage yard is among the major obstacles of enhancing the productivity of a terminal. The storage yard of an automated container terminal usually consists of dozens of rectangular _blocks_, each of which accommodates hundreds of container stacks. Each block is typically equipped with two rail-mounted, automated stacking cranes (ASC) for container handling. These two ASCs are usually of an equal size and cannot move across each other, thus being prone to mutual _interference_ at close range. For efficient operations at a block, these ASCs need to be carefully scheduled to process the requested jobs, so that the cooperation between the two ASCs is maximized, while minimizing the interferences. In this paper, we tried to achieve this goal by optimizing the _crane dispatching policy_ that decides which ASC should process which job, in which order. The crane dispatching policy recommends a job to be conducted next by the ASC that has just finished its previously assigned job. If the policy can recommend the jobs to the ASCs in such a way that the workloads of the two ASCs are as balanced as possible (and the interferences are minimized), then the crane utilization can be maximized [1]. Many previous works on crane scheduling take the approach of rolling horizon search, in which an optimal crane schedule (to process the jobs within a horizon) is searched repeatedly, at regular intervals [1; 2; 3; 4; 5; 6; 7]. Although better than those obtained with simple heuristic dispatching rules, the crane schedules obtained with the rolling horizon approach can still be myopic, due to the rather short length of the scheduling horizon. Increasing the length of the horizon, however, is not easy as the search space becomes large, and thus, the problem cannot be solved (i.e., cranes cannot be scheduled) in real time under an _online_ setting. Our crane dispatching policy has the potential to overcome the problem of making myopic decisions, as it is optimized through an _offline_ search, in which each candidate policy is evaluated through simulations of diverse (and long enough) scenarios of operations at a block. The crane dispatching policy proposed in this paper can be viewed as a multi-criteria heuristic. Unlike simple heuristics, such as the _earliest-deadline-first_ or _nearest-job-first_ heuristics, that are based on a single criterion, our policy uses a multi-criteria _scoring function_ to make a selection from various candidate choices. This scoring function calculates the score of each candidate choice by a weighted summation of the evaluations on multiple criteria, each of which was designed to measure how good a choice was, from its own perspective. The score by weighted summation depends on the respective weights of these criteria, and thus, a different weight vector gives rise to a different best candidate, a weight vector can be deemed as a dispatching policy. To find a good policy, we conducted a search in the space of weight vectors, i.e., in the _policy space_, where a candidate weight vector was evaluated by applying the corresponding scoring function to decision makings for dispatching in various operational scenarios and observing the resulting performance. If these training scenarios are long and diverse enough, we can learn a good policy that is not myopic, but at the cost of a long computation time.