Using Tabled Logic Programming to Solve the Petrobras Planning Problem
Tabling has been used for some time to improve efficiency of Prolog programs by memorizing answered queries. The same idea can be naturally used to memorize visited states during search for planning. In this paper we present a planner developed in the Picat language to solve the Petrobras planning problem. Picat is a novel Prolog-like language that provides pattern matching, deterministic and non-deterministic rules, and tabling as its core modelling and solving features. We demonstrate these capabilities using the Petrobras problem, where the goal is to plan transport of cargo items from ports to platforms using vessels with limited capacity. Monte Carlo Tree Search has been so far the best technique to tackle this problem and we will show that by using tabling we can achieve much better runtime efficiency and better plan quality.
💡 Research Summary
The paper presents a planner for the Petrobras logistics planning problem that leverages the tabling mechanism of the Picat language. Petrobras is a real‑world benchmark where several identical vessels, each with limited cargo capacity and fuel, must transport cargo from two ports to multiple offshore platforms while respecting docking constraints, refueling needs, and operation durations. The objective is to minimize several metrics, most notably total fuel consumption, but also makespan, number of vessels used, waiting‑queue sizes, and docking costs.
Previous work on this benchmark includes classical and temporal planners expressed in PDDL, the Filuta planner, Monte‑Carlo Tree Search (MCTS), and a macro‑action approach implemented in B‑Prolog. Among them, MCTS achieved the best fuel consumption and makespan, while the B‑Prolog tabling attempt failed for instances with more than six cargo items because the state space exploded.
The authors’ contribution is threefold. First, they decompose the problem into a planning stage and a scheduling stage. The planning stage decides which actions (move, dock, refuel, load, unload) are required, taking into account fuel consumption and capacity limits, but ignoring temporal constraints. The scheduling stage then assigns concrete start times while respecting docking capacities and precedence relations. Because fuel consumption depends only on navigation actions, optimizing fuel can be performed entirely in the planning stage, guaranteeing that any feasible plan can be scheduled later.
Second, they design a symmetry‑breaking state representation. All vessels are identical; therefore a vessel is identified only by its location and current fuel level. Cargo items are identified by origin, destination, and weight. Both vessels and cargo are grouped into sorted lists (e.g.,
Comments & Academic Discussion
Loading comments...
Leave a Comment