--- language: en tags: - graph-neural-networks - combinatorial-optimization - tsp - floydnet - diffusion-models - pytorch license: mit datasets: - ocxlabs/FloydNet_TSP_demo --- # FloydNet (Non-Metric TSP / Explicit TSP) ## Model Summary **FloydNet** is a graph reasoning architecture designed to mimic the execution of algorithms via a learned, global Dynamic Programming operator. This checkpoint (`_exp`) is trained to solve the **Non-Metric (Explicit) Traveling Salesman Problem**, where edge weights are generic integers and do not necessarily obey the triangle inequality. Unlike standard GNNs that rely on local message passing, FloydNet maintains and refines a global all-pairs relationship tensor, achieving 3-WL (2-FWL) expressive power. ## Model Details * **Model ID:** `ocxlabs/FloydNet_TSP_exp` * **Architecture:** FloydNet (Deep relational layers with Pivotal Attention) * **Task:** General Traveling Salesman Problem (Non-Metric) * **Paper:** [FloydNet: A Learning Paradigm for Global Relational Reasoning](https://arxiv.org/abs/2601.19094) * **Demo Dataset:** [ocxlabs/FloydNet_TSP_demo](https://huggingface.co/datasets/ocxlabs/FloydNet_TSP_demo) ## Performance On General TSP instances (N=100-200), FloydNet demonstrates capabilities significantly exceeding strong heuristics: * **Optimality:** Achieves an optimality rate of **99.8%** (with 10 samples) on held-out graphs, compared to **38.8%** by the Linkern heuristic. * **Exact Solutions:** On single-solution instances, it finds the exact optimal tour in **92.6%** of cases. ## Usage: Inference & Evaluation Reproducing TSP results at full scale is computationally heavy. For convenience, we provide a small demo dataset and pre-trained checkpoints. ### 1. Preparation Download the demo dataset from [Hugging Face](https://huggingface.co/datasets/ocxlabs/FloydNet_TSP_demo). Unzip it and place the extracted folder under `example/data/`. ### 2. Inference Run inference in `--test_mode` using `torchrun`. The command below assumes a single-node setup with 8 GPUs. Ensure `--subset` is set to `exp`. ```bash source .venv/bin/activate cd example torchrun \ --nproc_per_node=8 \ -m TSP.run \ --subset exp \ --output_dir ./outputs/TSP_exp \ --load_checkpoint path/to/TSP_exp/epoch_01000.pt \ --test_mode \ --split_factor 1 \ --sample_count_per_case 10