Data Structures Reference
Quick access to all data structure definitions in the VRP toolkit. This skill saves tokens by providing pre-documented structures instead of reading source code repeatedly.
Quick Navigation
Choose the appropriate reference based on what you're working with:
By Layer
- •
Problem Layer → problem_layer.md
- •Instance, PDPTWInstance, Solution, Node, Constraint
- •When: Defining or working with problem instances
- •
Algorithm Layer → algorithm_layer.md
- •Solver, ALNSSolver, Operators, SearchState, ALNSConfig
- •When: Implementing or understanding algorithms
- •
Data Layer → data_layer.md
- •OSMnx graphs, GeoDataFrame, distance matrices, data generators
- •When: Loading data, working with OSMnx, benchmarks
- •
Runtime Formats → runtime_formats.md
- •How routes, time windows, coordinates are actually represented in code
- •When: Understanding how to work with data structures in Python
By Common Questions
| Question | Reference | Section |
|---|---|---|
| "What attributes does Instance have?" | problem_layer.md | Instance |
| "How are routes represented?" | runtime_formats.md | Route Representation |
| "What's in an OSMnx Graph?" | data_layer.md | Graph (NetworkX) |
| "How do I configure ALNS?" | algorithm_layer.md | ALNSConfig |
| "What's the structure of a Node?" | problem_layer.md | Node |
| "How are time windows stored?" | runtime_formats.md | Time Window Representation |
| "How do destroy operators work?" | algorithm_layer.md | DestroyOperator |
| "What's in a distance matrix?" | runtime_formats.md | Distance Matrix |
| "How do I work with OSMnx nodes?" | data_layer.md | GeoDataFrame |
| "What's a Solution object?" | problem_layer.md | Solution |
By Data Type
| Type | Reference | Description |
|---|---|---|
Instance | problem_layer.md | Problem definition |
Solution | problem_layer.md | Solution with routes |
Node | problem_layer.md | Location/customer |
Route | runtime_formats.md | List[int] format |
TimeWindow | runtime_formats.md | Tuple[float, float] format |
ALNSConfig | algorithm_layer.md | Algorithm configuration |
Operator | algorithm_layer.md | Destroy/repair/local search |
nx.MultiDiGraph | data_layer.md | OSMnx network graph |
np.ndarray | runtime_formats.md | Distance/time matrices |
GeoDataFrame | data_layer.md | OSMnx nodes/edges |
When to Use This Skill
Trigger this skill when:
- •Understanding structures: "What attributes does X have?"
- •Working with data: "How do I access Y in Z?"
- •Migrating code: Need to understand existing data structures
- •Implementing features: Need to know structure interfaces
- •Debugging: Need to understand what data looks like
- •Avoiding repeated reads: Instead of reading source code files repeatedly
Reference Files Overview
problem_layer.md
Size: ~300 lines Contains:
- •Instance, PDPTWInstance classes
- •Solution class with methods
- •Node class with all attributes
- •Constraint types
- •Type aliases
- •Common usage patterns
Use when: Defining problems, creating instances, working with solutions
algorithm_layer.md
Size: ~350 lines Contains:
- •Solver interface
- •ALNSSolver and ALNSConfig
- •Destroy/Repair/LocalSearch operators
- •SearchState tracking
- •Operator statistics
- •ALNS main loop pattern
Use when: Implementing algorithms, understanding operators, configuring ALNS
data_layer.md
Size: ~300 lines Contains:
- •OSMnx Graph structure (NetworkX)
- •GeoDataFrame (nodes and edges)
- •Distance/time matrix creation
- •Data generators (OrderGenerator)
- •Benchmark formats (Solomon)
- •OSMnx → VRP conversions
Use when: Loading data, OSMnx integration, working with benchmarks
runtime_formats.md
Size: ~400 lines Contains:
- •Route as
List[int]with examples - •TimeWindow as
Tuple[float, float] - •Coordinates as tuples
- •Distance matrices as NumPy arrays
- •Pickup-delivery pairs as list of tuples
- •Configuration dictionaries
- •Common type conversions
- •Memory efficiency tips
Use when: Understanding practical code representations, writing/reading routes
Usage Examples
Example 1: Understanding a Route
Question: "I see route = [0, 5, 3, 7, 0] in the code. What does this mean?"
Action: Load runtime_formats.md → Route Representation
Answer:
- •Route is a list of node IDs
- •
0= depot (start and end) - •
[5, 3, 7]= customers visited in order - •This represents: Depot → Node 5 → Node 3 → Node 7 → Depot
Example 2: Creating an Instance
Question: "How do I create a PDPTW instance?"
Action: Load problem_layer.md → PDPTWInstance
Answer:
instance = PDPTWInstance(
nodes=node_list,
battery_capacity=100.0,
max_route_time=480.0,
vehicle_capacity=50.0
)
Example 3: Configuring ALNS
Question: "What parameters can I configure for ALNS?"
Action: Load algorithm_layer.md → ALNSConfig
Answer: See all parameters with defaults, explanations, and usage example.
Example 4: Working with OSMnx
Question: "What attributes does an OSMnx node have?"
Action: Load data_layer.md → Node Attributes
Answer: y (lat), x (lon), osmid, street_count, etc.
Benefits of This Skill
- •Token Efficiency: Read structured docs once instead of code files repeatedly
- •Quick Reference: Find information faster with organized structure
- •Complete Coverage: All data structures in one place
- •Practical Examples: Shows actual usage, not just definitions
- •Cross-Referenced: Easy to navigate between related structures
Integration with Other Skills
This skill is referenced by:
- •migrate-module: Understanding structures when migrating code
- •osmnx-integration: OSMnx data structure details (when created)
- •add-algorithm: Algorithm layer structures for new implementations
When other skills need data structure information, they reference this skill instead of reading source code.
Maintenance
This reference should be updated when:
- •New data structures are added to the codebase
- •Existing structures change significantly
- •New attributes or methods are added to core classes
Keep this as the single source of truth for data structure documentation.