Skip to content
Development
Skill

/algo-sc-routing

\"Solve vehicle routing problems to optimize delivery routes under capacity and time constraints. Use this skill when the user needs to plan delivery routes, minimize transportation costs, or optimize fleet utilization — even if they say 'delivery route optimization', 'fleet

From plugin
awesome-agent-skill
27200 skills4 commands

Claude Code

$ npx -y skills add charlieviettq/awesome-agent-skill --skill algo-sc-routing --agent claude-code

SKILL.md

algo-sc-routing.SKILL.md
name: "\"algo-sc-routing\""
description: "\"Solve vehicle routing problems to optimize delivery routes under capacity and time constraints. Use this skill when the user needs to plan delivery routes, minimize transportation costs, or optimize fleet utilization — even if they say 'delivery route optimization', 'fleet routing', or 'minimize driving distance'.\"."
allowed-tools: Read, Glob, Grep

Vehicle Routing Problem (VRP)

Overview

VRP determines optimal routes for a fleet of vehicles to serve a set of customers from a depot, minimizing total distance or cost. NP-hard — exact solutions only feasible for small instances (< 25 nodes). Practical solutions use heuristics (Clarke-Wright savings, sweep) or metaheuristics (simulated annealing, genetic algorithm).

When to Use

**Trigger conditions:**

  • Planning daily delivery routes for a fleet of vehicles
  • Minimizing total travel distance/time under capacity constraints
  • Optimizing route assignments across multiple vehicles

**When NOT to use:**

  • For single-vehicle route optimization (use TSP solvers)
  • For real-time dynamic routing with continuous order arrivals (use online algorithms)

Algorithm

IRON LAW: VRP Is NP-Hard — Exact Solutions Don't Scale
For n customers, the solution space grows factorially. Exact methods
(branch and bound) work for n < 25. For real-world problems (50-1000+
customers), heuristics are REQUIRED. A good heuristic solution within
5% of optimal is far more valuable than an optimal solution that takes
hours to compute.

Phase 1: Input Validation

Collect: depot location, customer locations and demands, vehicle capacity, number of vehicles, time windows (if applicable), distance/time matrix. **Gate:** All locations geocoded, demand doesn't exceed vehicle capacity per customer.

Phase 2: Core Algorithm

**Clarke-Wright Savings Heuristic:** 1. Start with each customer on its own route (depot → customer → depot) 2. Compute savings for merging route pairs: s(i,j) = d(depot,i) + d(depot,j) - d(i,j) 3. Sort savings descending 4. Merge routes greedily if capacity constraint allows 5. Improve with 2-opt (swap edges within routes) and or-opt (move customers between routes)

Phase 3: Verification

Check: all customers visited exactly once, no vehicle exceeds capacity, all routes start and end at depot. Compare total distance against lower bound. **Gate:** All constraints satisfied, solution within 10% of lower bound.

Phase 4: Output

Return routes with sequence, distance, and load.

Output Format

{
  "routes": [{"vehicle": 1, "sequence": ["depot", "C3", "C7", "C1", "depot"], "distance_km": 45, "load": 850, "capacity": 1000}],
  "summary": {"total_distance_km": 180, "vehicles_used": 4, "utilization_avg": 0.82},
  "metadata": {"customers": 30, "method": "clarke_wright_2opt", "computation_ms": 150}
}

Examples

Sample I/O

**Input:** 10 customers, 2 vehicles (cap=500), depot at center **Expected:** 2 routes, each serving ~5 customers, total distance minimized by geographic clustering.

Edge Cases

| Input | Expected | Why | |-------|----------|-----| | One customer demand > capacity | Infeasible or split delivery | Need split delivery VRP variant | | All customers co-located | Minimal routing, capacity-limited trips | Distance is trivial, trips determined by load | | Tight time windows | More vehicles needed | Time constraints may prevent full-capacity routes |

Gotchas

  • **Distance matrix quality**: Road distance ≠ Euclidean distance. Use actual road network distances (Google Maps, OSRM) for practical routing.
  • **Time windows add complexity**: VRPTW (VRP with Time Windows) is significantly harder. Customers requiring specific delivery windows fragment routes.
  • **Dynamic vs static**: Real-world routing has cancellations, additions, and traffic. Plan static routes but allow dynamic re-optimization.
  • **Driver constraints**: Maximum driving hours, break requirements, and overtime costs add practical constraints not in the basic model.
  • **Return to depot**: Standard VRP assumes routes return to depot. Open VRP (routes end at last customer) needs different formulation.

References

  • For Clarke-Wright algorithm implementation, see `references/clarke-wright.md`
  • For metaheuristic approaches (SA, GA), see `references/metaheuristics.md`
Read more
@charlieviettq
Ships withawesome-agent-skill

Curated skill pack for LLM agents in engineer and science workflow (Cursor & Claude ready).

Stars on GitHub

Momentum

stars in total
27
Star history of charlieviettq/awesome-agent-skill on GitHub, a chart by star-history.com

Other skills on awesome-agent-skill.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about algo-sc-routing.

Which coding agents can use algo-sc-routing?
algo-sc-routing installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.