# Simon Spoorendonk > Research-level output at startup velocity. > Location: Copenhagen, Denmark. Contact: simon@spoorendonk.dk. This file contains the complete content of the site in one document: profile, CV, work and publications. A shorter index is at https://spoorendonk.dk/llms.txt and a plain-text CV at https://spoorendonk.dk/cv.txt. Last updated: 2026-09-03. Canonical URL: https://spoorendonk.dk/llms-full.txt ## Profile - Name: Simon Spoorendonk - Location: Copenhagen, Denmark - Email: simon@spoorendonk.dk - Currently: Research and open source at the intersection of classical optimization and modern AI: solver libraries, published research, and optimization systems built with AI coding agents. - GitHub: https://github.com/spoorendonk - LinkedIn: https://www.linkedin.com/in/spoorendonk/ - Google Scholar: https://scholar.google.dk/citations?user=Sy8INIQAAAAJ&hl=en - ORCID: https://orcid.org/0009-0007-4304-6956 PhD computer scientist. Three-time founder in Copenhagen, two companies acquired. Twenty years of optimization and engineering — routing, scheduling, network flow. Friends with agents, fast-paced 0 → 1. ## Work ### Performance #### Subset-row inequalities Operations Research 56(2) · 2008 · 600+ citations Closed 8 Solomon benchmark instances that had stood unsolved. Cuts for the vehicle routing problem with time windows, with Mads Jepsen, Bjørn Petersen and David Pisinger. Each active cut adds a resource to the pricing problem, so a better bound is bought with a harder subproblem; the paper folds the cut contribution into the dominance criterion to make the trade pay. The cuts are now a standard component of state-of-the-art solvers. https://doi.org/10.1287/opre.1070.0449 #### Parallel pull labelling arXiv · 2025 · with Bjørn Petersen Around 18× over a baseline version of the same algorithm on hard instances, up to 274× at best, and 1.9–2.4× faster than an open implementation of the bucket-graph algorithm on the same hardware. Classical labelling pushes labels forward, so parallel writes collide. Pulling instead — each bucket gathers the labels reaching it — parallelises cleanly at the bucket level, with a dynamic bidirectional midpoint and a vectorised dominance check. https://doi.org/10.48550/arXiv.2511.01397 #### Bucket-graph labelling arXiv · 2026 · bucket-graph-spprc, C++23 1.3–2.35× faster than PathWyse, the main open-source comparator, in shifted geometric mean at an identical bound. bucket-graph-spprc, a header-only C++23 library implementing the bucket-graph labelling algorithm of Sadykov, Uchoa and Pessoa — their algorithm, and the pricing algorithm behind VRPSolver. A compile-time resource concept means a new variant is one seven-function interface, with no runtime dispatch; rank-1 cuts ship as one of five built-in resources. https://github.com/spoorendonk/bucket-graph-spprc ### Scale #### Tree-based multi-commodity flow arXiv · 2025 · with Bjørn Petersen Reverses a 1993 wall-clock conclusion at three orders of magnitude more scale: 1.4–1.9× faster on shifted geometric mean, 99× on the largest instance, solving 43–44 of 44 where the path-based formulation solves 38–42. Jones et al. found in 1993 that path-based decomposition converged in fewer iterations and ran faster. The convergence result still holds; the wall-clock one does not, because the master problem is 87–99% of runtime and the tree-based master is up to 32 times smaller at termination. Iterations were the wrong thing to count. https://doi.org/10.48550/arXiv.2509.24656 #### Routing in coso Open source · 2026 A hybrid genetic search, in the manner of HGS-CVRP and PyVRP: no optimality proof, and instance sizes an exact method cannot reach at all. Exact methods prove optimality, and that proof is expensive: it bounds the instance sizes reachable at all. This takes the opposite trade deliberately. For many real routing problems the proof is not worth its price. Knowing which trade a problem deserves is most of the work. coso is early development, the routing engine furthest along. https://github.com/spoorendonk/coso #### Capacitated profitable tour arXiv · 2026 A component study on a fully open MIP stack, with every separator and all benchmark scripts released, isolating what actually helps. A branch-and-cut solver for the capacitated profitable tour problem, where you choose which customers to serve as well as how to route them. The point of the paper is less the solver than the method: build it on an entirely open stack, release every separator and every script, and then take the pieces out one at a time to see which ones were carrying the result. https://doi.org/10.48550/arXiv.2607.04497 #### Primal heuristics for MIP Open source · 2026 Four modern primal heuristics — FeasibilityJump, FPR, LocalMIP and Scylla — implemented and benchmarked inside HiGHS. Branch-and-bound finds the optimum eventually; under a time limit what matters is the incumbent when the clock stops. Primal heuristics hunt for good feasible solutions alongside the search tree, using the relaxation and the solver’s own machinery rather than working around them. https://github.com/spoorendonk/mip-heuristics ### Software #### Flowty Founder & CEO · 2019 – 2026 Scheduling delivered in production with the Ørsted team, with industry pilots at DHL, Svitzer and Unifeeder. An optimization solver for planning and scheduling in logistics: multi-commodity flow, vehicle routing and resource-constrained shortest path, solved by branch-cut-and-price. Tech lead on the solver and its architecture; the master LP is solved with a GPU-accelerated PDLP and barrier hybrid. https://flowty.ai #### Research engineering 2026 – present Four preprints — two written since February, two rewritten from the ground up in the same period — with the solvers and benchmark scripts released open source. Working full time inside coding agents, implementing algorithms directly from research papers. Alongside the libraries above: mipx, a branch-and-cut MIP solver written from scratch; cbls, a constraint-based local search engine; and md2mip, which compiles a model written in prose into a standalone solver CLI. ### Method — Why any of this is checkable Operations research has a property most of computing does not: you can prove a solution is optimal, and the instances everyone benchmarks on are public, with best known results anyone can look up. A claim is reproducible or it is not. So the multi-commodity flow paper runs five LP backends spanning open-source and commercial, CPU and GPU, because a result that only holds under one solver is a property of that solver. It quantifies the mechanism rather than asserting it, publishes the counterexample where the method loses by a factor of eight along with the reason, and corrects a memory claim from the previous version down from 5x to 1.09x. The capacitated profitable tour study applies the same instinct to a whole solver: every separator and all benchmark scripts released on a fully open MIP stack. This is also what makes working quickly defensible. The pace is a fact rather than a boast only because each result is measured against public instances at a stated bound, by anyone who cares to re-run it. Speed without verification just accumulates error faster. ## CV Simon Spoorendonk Research-level output at startup velocity. Copenhagen, Denmark · simon@spoorendonk.dk GitHub: https://github.com/spoorendonk LinkedIn: https://www.linkedin.com/in/spoorendonk/ Google Scholar: https://scholar.google.dk/citations?user=Sy8INIQAAAAJ&hl=en ORCID: https://orcid.org/0009-0007-4304-6956 Web: https://spoorendonk.dk/ Last updated: 2026-09-03. Canonical URL: https://spoorendonk.dk/cv.txt PROFILE ------- PhD computer scientist. Three-time founder in Copenhagen, two companies acquired. Twenty years of optimization and engineering — routing, scheduling, network flow. Peer-reviewed publications in Operations Research, Transportation Science, EJOR and Networks, plus four current preprints. 1,500+ citations, h-index 15. My work usually starts with someone talking about a problem they can’t solve. If that sounds familiar, write to me. EXPERIENCE ---------- Research engineering (2026 – present) Optimization and modern AI: solver libraries, published research, and systems built with AI coding agents. Four preprints since February: two new, two rewritten from the ground up. Founder & CEO, Flowty (2019 – 2026) Optimization solver for planning and scheduling in logistics. Tech lead on the solver and its architecture. Delivered in production with Ørsted; pilots with DHL, Svitzer and Unifeeder. Co-Founder & CTO, Onlaw (2017 – 2018) Legal research platform built on an NLP pipeline for semantic search over unstructured documents. Acquired by Karnov Group in 2020. Co-Founder & CTO, Halfspace (2013 – 2018) AI and data science consultancy for maritime, energy, insurance and the public sector. Acquired by Accenture in 2025. Software developer, Edlund A/S (2012 – 2013) Actuarial software for pension and insurance, where correct and auditable results were the product. Independent consultant, Freelance (2011 – 2019) AI and decision-support projects for insurance, pension and asset allocation clients. Postdoc, DTU (2009 – 2011) Principal investigator on a DKK 1.5M grant from the Danish Council for Independent Research. Decomposition algorithms for transportation and scheduling, in collaboration with Maersk Line. PhD student, University of Copenhagen (2005 – 2008) Thesis: Cut and Column Generation. Visiting PhD student, GERAD, Montréal (2007) Resource-constrained shortest path algorithms with Guy Desaulniers and Jacques Desrosiers. Software developer, WHO Regional Office for Europe (2001 – 2005) Help desk assistant, WHO Regional Office for Europe (1999 – 2001) ADVISORY AND TEACHING --------------------- External examiner, Censorkorpset i Datalogi, Denmark (2026 – present) The national external examiner corps for computer science, covering the Danish universities. Startup mentor, DTU Science Park (2025 – present) Coaching deep-tech founders on technology choices and scaling. External examiner, DTU Management Engineering (2012 – present) External examiner for master's theses in operations research and optimization. External lecturer, DTU Management Engineering (2013 – 2014) EDUCATION --------- PhD in Computer Science, University of Copenhagen (2008) Thesis: Cut and Column Generation. MSc in Computer Science, University of Copenhagen (2005) SELECTED PUBLICATIONS --------------------- Subset-row inequalities applied to the vehicle-routing problem with time windows M. Jepsen, B. Petersen, S. Spoorendonk, D. Pisinger. Operations Research 56(2), 2008. https://doi.org/10.1287/opre.1070.0449 A branch-and-cut algorithm for the symmetric two-echelon capacitated vehicle routing problem M. Jepsen, S. Spoorendonk, S. Ropke. Transportation Science 47(1), 2013. https://doi.org/10.1287/trsc.1110.0399 Liner shipping cargo allocation with repositioning of empty containers B. D. Brouer, D. Pisinger, S. Spoorendonk. INFOR 49(2), 2011. https://doi.org/10.3138/infor.49.2.109 A hybrid adaptive large neighborhood search heuristic for lot-sizing with setup times L. F. Muller, S. Spoorendonk, D. Pisinger. European Journal of Operational Research 218(3), 2012. https://doi.org/10.1016/j.ejor.2011.11.036 Cutting planes for branch-and-price algorithms G. Desaulniers, J. Desrosiers, S. Spoorendonk. Networks 58(4), 2011. https://doi.org/10.1002/net.20471 A branch-and-cut algorithm for the capacitated profitable tour problem M. K. Jepsen, B. Petersen, S. Spoorendonk, D. Pisinger. Discrete Optimization 14, 2014. https://doi.org/10.1016/j.disopt.2014.08.001 PREPRINTS --------- An open, reproducible branch-and-cut for the capacitated profitable tour problem: a component study S. Spoorendonk. arXiv:2607.04497, 2026. https://arxiv.org/abs/2607.04497 bucket-graph-spprc: an extensible C++ library for the shortest path problem with resource constraints S. Spoorendonk. arXiv:2606.30847, 2026. https://arxiv.org/abs/2606.30847 A parallel pull labelling algorithm for the resource constrained shortest path problem B. Petersen, S. Spoorendonk. arXiv:2511.01397, 2025. https://arxiv.org/abs/2511.01397 Tree-based formulation for the multi-commodity flow problem S. Spoorendonk, B. Petersen. arXiv:2509.24656, 2025. https://arxiv.org/abs/2509.24656 OPEN SOURCE ----------- bucket-graph-spprc — Header-only C++23 bucket graph labeling for the SPPRC — the pricing subproblem in vehicle routing column generation. https://github.com/spoorendonk/bucket-graph-spprc cptp — Branch-and-cut solver for the capacitated profitable tour problem and open s–t path variants. https://github.com/spoorendonk/cptp coso — Typed model API and C++23 structure-aware engine for routing, scheduling, assignment, packing, network flow and lot sizing (early development). https://github.com/spoorendonk/coso mcfcg — Column generation for minimum-cost multicommodity flow with path- and tree-based Dantzig-Wolfe decompositions. https://github.com/spoorendonk/mcfcg mip-heuristics — Four modern MIP primal heuristics (FeasibilityJump, FPR, LocalMIP, Scylla) implemented and benchmarked inside HiGHS. https://github.com/spoorendonk/mip-heuristics cbls — Constraint-based local search (ViolationLS) for mixed discrete-continuous optimization — C++23 with Python bindings. https://github.com/spoorendonk/cbls mipx — A from-scratch branch-and-cut MIP solver in C++23 with Python bindings (early development). https://github.com/spoorendonk/mipx md2mip — Compile natural-language optimization models into standalone solver CLIs (Python + HiGHS). https://github.com/spoorendonk/md2mip ## Writing No posts published yet.