From Chat to Action: The Power of Numeric Planning with the GOOSE Framework

Anna Alexandra Grigoryan
7 min readNov 1, 2024

--

Beyond Large Language Models

We’re living in an era where AI can write essays, compose music, and even hold conversations with us. The fascination with LLMs is justified – these models are powerful and versatile. But AI’s potential goes far beyond language processing. To achieve real-world, adaptable intelligence, we need systems that can dynamically plan, solve complex problems, and make real-time decisions.

That’s where numeric planning and advanced graph-based methods come into play. Inspired by recent research on Graph Learning for Numeric Planning (referred to as the “GOOSE framework” in the paper), these innovations open up groundbreaking possibilities for AI in real-world applications.

Imagine autonomous robots in a warehouse. Each one navigates 1000s of aisles, coordinates with others, manages battery life, and reroutes around moving obstacles. Science fiction or the power of numeric planning?

In this post, we’ll introduce numeric planning, the GOOSE framework as proposed in the paper, and explore how these methods solve real-world challenges that traditional planning cannot. By the end, we will see how combining numeric planning can unlock entirely new possibilities in AI.

Why Classical Planning Falls Short

Classical planning is the foundation for many decision-making algorithms, offering a structured approach to achieve a goal through a sequence of predefined actions. This method is perfect for predictable, rule-based tasks, like simple robotic navigation or puzzle-solving. However, in complex, real-world environments, classical planning faces two major limitations:

Binary, Rigid States: Classical planning uses discrete, “yes/no” states (e.g., “door is open or closed”). But real-world applications often need continuous adjustments.

Imagine a delivery drone navigating city streets. It must track battery levels, manage fuel, and respond to variable conditions – all of which require continuous reasoning.

Lack of Real-Time Adaptability: In dynamic environments, such as warehouses with moving obstacles and multiple robots, classical planning struggles to adapt on the fly. It cannot process the ever-changing numeric constraints that real-world applications demand.

Numeric Planning 101

As described in the GOOSE paper, numeric planning extends classical planning by incorporating numeric variables – continuous values that allow for fine-grained adjustments. This enables a more sophisticated and adaptable form of AI that’s capable of real-world problem-solving.

Picture a team of robots navigating a warehouse. To fulfill their tasks, these robots need to:

• Track and optimize battery levels.

• Dynamically reroute to avoid congestion and minimize delays.

• Coordinate paths with other robots to avoid collisions.

Each of these tasks involves balancing numeric constraints. Numeric planning allows robots to make nuanced, real-time adjustments, something that classical planning simply cannot achieve.

The Advantage: Numeric planning enables decision-making that is truly dynamic, adaptable, and suited to real-world environments. This makes it ideal for applications like autonomous vehicles, smart city infrastructure, and multi-robot coordination.

Key Concepts Defined: Graphs and Kernels

To understand why the GOOSE framework is a breakthrough in numeric planning, we need to break down a few core concepts highlighted in the paper.

Graph Representation in Numeric Planning

Graphs allow us to model numeric planning problems in a way that captures both relationships and constraints. Each state, action, or constraint is represented as a node or edge in a graph, where:

Nodes represent objects or states (e.g., robot locations, obstacles).

Edges define relationships and transitions between nodes.

Graphs enable AI systems to map both symbolic and numeric variables, making them ideal for environments with complex dependencies.

Graph Kernel

Graph kernels are mathematical tools for measuring similarity between graphs. By transforming graph structures into a feature space, graph kernels allow to analyze complex data relationships and learn optimal paths based on these structures.

Importance in Numeric Planning: In numeric planning, graph kernels make it possible to model the relationships between both discrete variables (like obstacles) and continuous variables (like battery level). This hybrid approach provides a structured yet flexible method for evaluating decisions.

CCWL Kernel: The Power of Combined Features

The Continuous Categorical Weisfeiler-Lehman (CCWL) Kernel, as proposed in the GOOSE framework, is a specialized graph kernel designed to process both discrete and continuous attributes. This kernel is uniquely suited for numeric planning because it allows the model to evaluate nodes with both binary (e.g., is obstacle) and continuous (e.g., battery level) data, a necessity for real-world decision-making.

Now Introducing GOOSE: The Framework for Numeric Planning

The GOOSE (Graphs Optimised for Search Evaluation) framework, as proposed in the paper, combines graph-based techniques with innovative heuristics to create a powerful numeric planning tool.

How GOOSE Tackles Numeric Planning:

1. Numeric Graph Representation (νILG): GOOSE constructs a Numeric Instance Learning Graph (νILG) that maps all objects, states, and goals in a numeric planning problem. Nodes represent elements like robots, obstacles, and target locations, and each node contains both continuous and categorical attributes.

2. CCWL Kernel for Graph Learning: GOOSE leverages the CCWL kernel to evaluate graph structures, capturing the relationships between numeric and symbolic constraints. This enables it to make adaptive, data-driven decisions by evaluating paths based on both numeric and categorical features.

3. Ranking-Based Heuristic: Instead of calculating absolute costs, GOOSE uses a ranking-based heuristic to prioritize actions. By ranking potential actions based on proximity to the goal while balancing constraints like battery life, GOOSE can efficiently navigate complex environments without needing extensive computation.

Here’s a simplified architecture diagram illustrating how the GOOSE framework functions in a warehouse navigation scenario:

+-------------------------------------------------------------+
| Numeric Planning |
| with GOOSE Framework |
+-------------------------------------------------------------+
| 1. Numeric Graph Representation (νILG) |
| - Maps warehouse layout as graph |
| - Nodes represent locations with attributes: |
| - Battery level, obstacle, target |
| |
| 2. Continuous Categorical Weisfeiler-Lehman (CCWL) Kernel |
| - Processes both continuous (e.g., battery) and |
| categorical features (e.g., obstacles) |
| - Captures complex relationships for numeric planning |
| |
| 3. Ranking-Based Heuristic |
| - Prioritizes actions by ranking nodes based on |
| battery level, proximity to target, and obstacles |
| - Selects optimal moves dynamically |
+-------------------------------------------------------------+
| Output |
| Robot Path and Battery Level after Navigating Warehouse |
+-------------------------------------------------------------+

Real-World Applications of Numeric Planning and GOOSE

Let’s look at some example applicatons of the proposed approach.

Warehouse Robotics

Autonomous robots in warehouses must manage battery life, avoid congestion, and dynamically adjust routes based on real-time inventory needs. Numeric planning allows these robots to make split-second decisions that maximize efficiency while balancing multiple constraints.

Urban Traffic Management for Self-Driving Cars

In urban traffic, self-driving cars need to maintain safe distances, optimize routes, and dynamically respond to traffic conditions-numeric planning approach enables these vehicles to make real-time, adaptive decisions that enhance safety and efficiency.

Smart Grid Energy Distribution

Smart grids balance energy supply and demand in real time, accounting for constraints like grid capacity and renewable energy availability. Numeric planning helps distribute power efficiently across a city, optimizing resource use.

Healthcare Resource Allocation

Hospitals allocate resources like ICU beds and medical staff in real time. Numeric planning ensures optimal resource use by balancing staff availability, patient demand, and equipment constraints, leading to better outcomes.

Autonomous Farming Systems

In agriculture, autonomous systems need to manage tasks like irrigation and fertilization based on soil moisture, crop health, and weather forecasts. Numeric planning enables these systems to optimize resource use and adapt to environmental changes.

Implementing GOOSE in Python: A Warehouse Navigation Simplified Example

The GOOSE framework proposes a foundational approach of how numeric planning can be implemented in real-world applications. In this example, we’ll build a simplified Python implementation inspired by the framework to showcase warehouse navigation.

Steps:

1. Graph Setup: Define the warehouse as a graph where each node represents a position with attributes for battery level and obstacles.

2. GOOSE Robot Class: Create a class that models a robot’s pathfinding, tracking its battery and route.

3. Ranking Heuristic: Use a CCWL-inspired heuristic to prioritize moves based on distance and battery.

4. Pathfinding Algorithm: Dynamically select the best path to navigate around obstacles efficiently.

import networkx as nx
import numpy as np

# Warehouse grid graph
warehouse_size = (5, 5)
G = nx.grid_2d_graph(*warehouse_size)

# Define obstacles and target
target_node = (4, 4)
obstacles = [(2, 2), (3, 3)]
battery_capacity = 10

# Node features
for node in G.nodes():
G.nodes[node]['obstacle'] = 1 if node in obstacles else 0
G.nodes[node]['target'] = 1 if node == target_node else 0
G.nodes[node]['battery_level'] = battery_capacity

class GooseRobot:
def __init__(self, start_position, battery_level):
self.position = start_position
self.battery_level = battery_level
self.path = [start_position]

def move(self, new_position):
if self.battery_level > 0 and G.nodes[new_position]['obstacle'] == 0:
self.position = new_position
self.path.append(new_position)
self.battery_level -= 1
return True
return False

# CCWL-inspired heuristic
def ranking_heuristic(robot, target):
x, y = robot.position
target_x, target_y = target
distance = abs(x - target_x) + abs(y - target_y)
return distance if robot.battery_level > distance else float('inf')

# Pathfinding
def navigate_with_goose(robot, target):
while robot.position != target and robot.battery_level > 0:
neighbors = list(G.neighbors(robot.position))
neighbors.sort(key=lambda pos: ranking_heuristic(robot, target))
for neighbor in neighbors:
if robot.move(neighbor):
break
else:
print("Path blocked or insufficient battery!")
break
return robot.path

# Execution
robot = GooseRobot(start_position=(0, 0), battery_level=battery_capacity)
robot_path = navigate_with_goose(robot, target_node)
print("Robot Path:", robot_path)
print("Remaining Battery:", robot.battery_level)

Wrapping it up

GOOSE represents the future of decision-making in AI. When combined with LLMs, techniques like this can drive breakthroughs across industries, enabling AI to tackle complex, dynamic, and constraint-heavy environments. In the journey beyond language, GOOSE shows us how AI can evolve into a truly adaptive, real-world problem solver.

--

--

Anna Alexandra Grigoryan
Anna Alexandra Grigoryan

Written by Anna Alexandra Grigoryan

red schrödinger’s cat thinking of doing something brilliant

No responses yet