GECCO 2020 Competition on Dynamic Stacking Optimization in Uncertain Environments

tl;dr: In this competition your goal is to write a policy that optimizes crane actions in simulated environments. Your policy receives the current simulation state as input whenever there is a change and may send a crane schedule in response that contains moves for the crane, e.g. relocate block 15 from stack 1 to stack 2. You have to run your policy on your own machine communicating with our simulation environment in real time. You can develop and test your policy against various training settings and score it for a final ranking against unknown settings. The policies are ranked based on a lexicographic objective as explained further below and in more detail in the Documentation. A leaderboard is available.

GECCO 2020: This competition is hosted as part of the GECCO 2020 conference (link). It is not required to attend the conference in order to participate. You must however register an account at this site here and provide a valid e-mail address in order to participate.

Motivation: Stacking problems are central to multiple billion-dollar industries. The container shipping industry needs to stack millions of containers every year. In the steel industry the stacking of steel slabs, blooms, and coils needs to be carried out efficiently, affecting the quality of the final product. The immediate availability of data thanks to the continuing digitalization of industrial production processes makes the optimization of stacking problems in highly dynamic environments feasible.

Rules: Everyone is invited to participate in this competition. The results will be presented during the GECCO 2020 conference in Cancun, Mexico from July, 8th to 12th where the winner and possibly runner-ups will be announced. It is not required to attend the GECCO conference in order to participate in this competition, though we cannot guarantee that we can mail the prize anywhere in the world. We will however forward the official certificate to the winner through mail.

Deadline: To be eligible for winning the competition you must complete all scoring simulation runs before Sunday June, 28 2020 (anywhere in the world). You have 0 days 00 hours 0 minutes 0 seconds until the competition closes.

About: This competition is hosted by Andreas Beham, Stefan Wagner, Sebastian Raggl, and Johannes Karder at the University of Applied Sciences Upper Austria ( Hagenberg Campus within the research project Josef Ressel Center for Adaptive Optimization in Dynamic Environments ( led by Stefan Wagner and funded by the Christian Doppler Forschungsgesellschaft ( If you have any questions, comments, or suggestions, please don't hesitate to contact us at!


In this competition a dynamic environment is provided that represents a simplified, but realistic stacking scenario. It is characterized by three types of stacks called Arrival, Buffer, and Handover as well as a Crane which relocates Blocks between the stacks.

Each of the stacks has a certain capacity. If the capacity is full, no more blocks can be put on the stack. There is an upstream process that spawns new blocks and inserts them at the bottom of the arrival stack. However, if the arrival location is full, the upstream process is delayed which is strongly undesired.

Objective #1 (min): The first objective is to avoid delays in the upstream process.

To avoid such a state, there is a range of buffer stacks that may be used to store blocks for some time. Blocks may only leave the system when they have reached a Ready Date, but should leave it before their Due Date. Blocks must remain either at the arrival stack (at the risk of blocking the upstream process) or at a buffer stack. To remove a block it must be put on the handover stack, after which the handover is unavailable for some time.

Objective #2 (max): The second objective is to deliver as many blocks as possible on time.

A crane is available to perform block relocations within the stacks. This crane can pick up one block at a time from either the arrival or buffer stacks and drop it off at either a buffer or the handover stack. Such a relocation is typically composed of four steps:
(1) move to the stack where a block has to be picked up
(2) grab the topmost block from the stack
(3) move to the stack where the block should be dropped off
(4) release the block on top of the stack.
In this competition the crane is always available and performs all orders with perfect accuracy. Nevertheless, its use should be minimized to save energy and reduce wear.

Objective #3 (min): The third objective is to perform as few crane operations as possible.

It is your task to develop policies which organize the sequence of relocations such that the above objectives are optimized starting from the most important objective (#1) and proceeding in a lexicographic order.

Your policy does not have all information about the world, i.e., it does not know when blocks become ready, it does not know the time required to move a certain block, the time a delivery requires, and the time a new block is produced. However, you will receive estimates about these variables as you progress in the simulation. In addition the performance indicators will be promptly updated and also be available to the policy.

Prize: In addition to a prestigious certificate, the winner(s) receive a selection of exquisite Austrian sweets :-)

If you are interested, please create a user account on this website so that we can associate the simulation runs and performances with your user. If you want to quickly dive into experimenting within about 15 minutes, head over to the Getting started section or explore the in-depth Documentation. Have fun!