{"adoption": {"forks": 389, "observed_at": "2026-08-28T04:04:34.506619+00:00", "stars": 1383}, "canonical_url": "https://ross.abutalabs.com/products/attention-learn-to-route", "card": {"archived": false, "artifact_type": "library", "description": "Attention based model for learning to solve different routing problems", "domain": ["machine-learning", "deep-learning"], "enriched": true, "function": ["machine-learning", "deep-learning", "reinforcement-learning", "llm-training"], "health_score": 20, "homepage": null, "language": "Jupyter Notebook", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["wouterkool/attention-learn-to-route"], "name": "wouterkool/attention-learn-to-route", "platform": ["python", "cross-platform"], "pushed_at": "2024-08-04T11:28:45+00:00", "repo": "wouterkool/attention-learn-to-route", "stars": 1383, "tags": ["combinatorial-optimization", "travelling-salesman-problem", "vehicle-routing-problem", "reinforcement-learning", "transformer", "attention-model", "iclr-2019", "pytorch", "research-code", "algorithms", "research", "gpu"], "topics": [], "urls": [], "use_cases": ["train a neural network to solve TSP instances", "learn to solve vehicle routing problems with deep learning", "reproduce results from the Attention Learn to Solve Routing Problems paper", "benchmark neural combinatorial optimization models", "experiment with REINFORCE and rollout baselines for routing problems", "generate and validate routing problem datasets"], "what_it_is": "A PyTorch implementation of the attention-based neural model from the ICLR 2019 paper 'Attention, Learn to Solve Routing Problems!', trained with REINFORCE and a greedy rollout baseline. It learns to solve combinatorial routing problems including TSP, VRP, Orienteering Problem, and (Stochastic) Prize Collecting TSP.", "when_to_avoid": ["you need an actively maintained library - the author recommends rl4co or RLOR instead", "you need production routing solvers rather than research code", "you want exact or heuristic solvers like OR-Tools or LKH"], "when_to_choose": ["you want to reproduce or build on the ICLR 2019 attention model for routing problems", "you need pretrained models for TSP, VRP, OP, or PCTSP research", "you are studying neural combinatorial optimization with REINFORCE"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/attention-learn-to-route", "repo": "wouterkool/attention-learn-to-route", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.506619+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:40:05.026657+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "03ecd7ad37ef244360b948913b5e79e9e5fd31730a5c5469061027dc991a58df", "fetched_at": "2026-08-28T04:04:34.506619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wouterkool/attention-learn-to-route"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.506619+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:40:05.026657+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "03ecd7ad37ef244360b948913b5e79e9e5fd31730a5c5469061027dc991a58df", "fetched_at": "2026-08-28T04:04:34.506619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wouterkool/attention-learn-to-route"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:40:05.026657+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "03ecd7ad37ef244360b948913b5e79e9e5fd31730a5c5469061027dc991a58df", "fetched_at": "2026-08-28T04:04:34.506619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wouterkool/attention-learn-to-route"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.506619+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.506619+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.506619+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:40:05.026657+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "03ecd7ad37ef244360b948913b5e79e9e5fd31730a5c5469061027dc991a58df", "fetched_at": "2026-08-28T04:04:34.506619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wouterkool/attention-learn-to-route"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.506619+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.506619+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:40:05.026657+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "03ecd7ad37ef244360b948913b5e79e9e5fd31730a5c5469061027dc991a58df", "fetched_at": "2026-08-28T04:04:34.506619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wouterkool/attention-learn-to-route"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.506619+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.506619+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.506619+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:40:05.026657+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "03ecd7ad37ef244360b948913b5e79e9e5fd31730a5c5469061027dc991a58df", "fetched_at": "2026-08-28T04:04:34.506619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wouterkool/attention-learn-to-route"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.506619+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:34.506619+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:40:05.026657+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "03ecd7ad37ef244360b948913b5e79e9e5fd31730a5c5469061027dc991a58df", "fetched_at": "2026-08-28T04:04:34.506619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wouterkool/attention-learn-to-route"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:40:05.026657+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "03ecd7ad37ef244360b948913b5e79e9e5fd31730a5c5469061027dc991a58df", "fetched_at": "2026-08-28T04:04:34.506619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wouterkool/attention-learn-to-route"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:40:05.026657+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "03ecd7ad37ef244360b948913b5e79e9e5fd31730a5c5469061027dc991a58df", "fetched_at": "2026-08-28T04:04:34.506619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wouterkool/attention-learn-to-route"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:40:05.026657+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "03ecd7ad37ef244360b948913b5e79e9e5fd31730a5c5469061027dc991a58df", "fetched_at": "2026-08-28T04:04:34.506619+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wouterkool/attention-learn-to-route"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3086, "days_push": 759, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}