How corail-research/seapearl.jl works
SeaPearl is a Julia constraint-programming solver with classic heuristic-driven solving and an RL-driven mode that learns value-selection heuristics while solving generated problem instances. Its documented workflow combines a CP model and search choices with optional RL agents, state representations, rewards, and training/evaluation. The tree also shows substantial parser, constraint, and graph/NN subsystems; their internal connections are not asserted because no source excerpts were provided. Edges below are limited to relationships stated in the README.
Main entry points: training.jl Training · learnedheuristic.jl Learned Heuristic · RL.jl RL Agent · representation.jl State Representation
Components 20
Constraint Programming
- CP Model
src/CP/core/model.jl - CP Variables
src/CP/variables/variables.jl - CP Constraints
src/CP/constraints/constraints.jl - CP Solver
src/CP/core/solver.jl - Search Strategies
src/CP/core/search/strategies.jl - Variable Heuristics
src/CP/variableselection/variableselection.jl - Value Heuristics
src/CP/valueselection/valueselection.jl
Learning and Representation
- Learned Heuristic
src/CP/valueselection/learning/learnedheuristic.jl - RL Agent
src/RL/RL.jl - State Representation
src/RL/representation/representation.jl - Featured Graphs
src/RL/utils/featuredgraph/featuredgraph.jl - Graph Networks
src/RL/nn_structures/nn_structures.jl - Reward Functions
src/CP/valueselection/learning/rewards/rewards.jl
Problem Inputs
- Instance Generator
src/datagen/datagen.jl - Problem Generators
src/datagen
Training and Evaluation
Model Interfaces
- Problem Parser
src/parser/parser.jl
Other components
- Researcher
Connections 20
- Researcher → Variable Heuristics: declares
README.md - Researcher → Value Heuristics: declares
README.md - Researcher → CP Model: creates
README.md - Researcher → CP Variables: adds variables
README.md - Researcher → CP Constraints: adds constraints
README.md - Researcher → Learned Heuristic: declares
README.md - Researcher → RL Agent: defines
README.md - Researcher → State Representation: may customize
README.md - Researcher → Reward Functions: may customize
README.md - Researcher → Instance Generator: creates
README.md - Researcher → Training: launches
README.md - Training → Instance Generator: uses
README.md - Training → Search Strategies: uses
README.md - Training → Evaluator: uses
README.md - Training → Variable Heuristics: uses
README.md - Training → Learned Heuristic: trains
README.md - Evaluator → Metrics: reports
README.md - State Representation → Featured Graphs: uses graph inputs
README.md - RL Agent → Graph Networks: uses approximator
README.md - Learned Heuristic → RL Agent: uses
README.md