{
  "schema": "optfin.optimization-problem-atlas.v1",
  "version": "1.0.0",
  "updated": "2026-07-26",
  "purpose": "A living public map of optimization problem families, methods, applications, and educational paths. It is a taxonomy, not a claim that one method solves every instance.",
  "groups": [
    {
      "id": "allocation",
      "label": "Allocation and selection",
      "description": "Choose, assign, or distribute scarce resources under capacity, eligibility, fairness, and value constraints."
    },
    {
      "id": "time",
      "label": "Time and scheduling",
      "description": "Coordinate jobs, people, machines, classrooms, appointments, and projects through time."
    },
    {
      "id": "space",
      "label": "Routing, packing, and location",
      "description": "Move through networks, use physical space, and place facilities or services where they create the strongest result."
    },
    {
      "id": "network",
      "label": "Networks and graphs",
      "description": "Design, connect, partition, protect, and operate systems whose structure is a graph."
    },
    {
      "id": "uncertainty",
      "label": "Uncertainty and multiple objectives",
      "description": "Make decisions when information changes, scenarios disagree, or several objectives matter at once."
    },
    {
      "id": "continuous",
      "label": "Continuous and mathematical programming",
      "description": "Optimize quantities, controls, portfolios, flows, and physical systems over continuous or mixed decision spaces."
    },
    {
      "id": "learning",
      "label": "Learning-guided and hybrid optimization",
      "description": "Combine exact methods, heuristics, metaheuristics, machine learning, and human knowledge with explicit validation."
    }
  ],
  "problems": [
    {
      "id": "assignment",
      "name": "Assignment",
      "group": "allocation",
      "question": "Who or what should be matched to each task, role, resource, or destination?",
      "methods": ["Hungarian algorithm", "min-cost flow", "MILP", "constraint programming"],
      "fields": ["workforce", "education", "healthcare", "mortgage operations", "public services"]
    },
    {
      "id": "matching",
      "name": "Matching and stable matching",
      "group": "allocation",
      "question": "How can two sides be paired while respecting preferences, eligibility, stability, or fairness?",
      "methods": ["Gale-Shapley", "weighted matching", "integer programming"],
      "fields": ["school choice", "organ exchange", "employment", "market design"]
    },
    {
      "id": "knapsack",
      "name": "Knapsack and portfolio selection",
      "group": "allocation",
      "question": "Which opportunities should be selected when value competes for a limited budget, time, or capacity?",
      "methods": ["dynamic programming", "branch and bound", "FPTAS", "metaheuristics"],
      "fields": ["capital planning", "product roadmaps", "grants", "marketing", "personal finance"]
    },
    {
      "id": "set-cover",
      "name": "Set cover and maximum coverage",
      "group": "allocation",
      "question": "What is the smallest collection that covers every requirement, or the best coverage possible under a limit?",
      "methods": ["greedy approximation", "integer programming", "primal-dual methods"],
      "fields": ["emergency services", "testing", "sensor placement", "curriculum design"]
    },
    {
      "id": "resource-allocation",
      "name": "Fair resource allocation",
      "group": "allocation",
      "question": "How should scarce resources be shared when efficiency, equity, priority, and rights all matter?",
      "methods": ["multiobjective optimization", "fair division", "lexicographic optimization"],
      "fields": ["public policy", "water", "healthcare", "education", "disaster response"]
    },
    {
      "id": "job-shop",
      "name": "Job-shop and flow-shop scheduling",
      "group": "time",
      "question": "In what order should jobs use machines or stages to reduce delay, cost, or idle capacity?",
      "methods": ["disjunctive graphs", "CP-SAT", "MILP", "tabu search", "genetic algorithms"],
      "fields": ["manufacturing", "laboratories", "document processing", "construction"]
    },
    {
      "id": "project-scheduling",
      "name": "Resource-constrained project scheduling",
      "group": "time",
      "question": "When should dependent activities occur when people, equipment, money, and time are limited?",
      "methods": ["critical path", "branch and bound", "constraint programming", "large neighborhood search"],
      "fields": ["construction", "software", "research", "product delivery"]
    },
    {
      "id": "rostering",
      "name": "Workforce rostering",
      "group": "time",
      "question": "How can shifts cover demand while respecting skills, labor rules, preferences, and fatigue?",
      "methods": ["column generation", "MILP", "constraint programming", "local search"],
      "fields": ["hospitals", "airlines", "retail", "call centers", "public safety"]
    },
    {
      "id": "timetabling",
      "name": "Timetabling",
      "group": "time",
      "question": "How can events, rooms, teachers, students, and constraints fit into a usable calendar?",
      "methods": ["graph coloring", "constraint programming", "hyperheuristics"],
      "fields": ["schools", "universities", "conferences", "sports"]
    },
    {
      "id": "appointment",
      "name": "Appointment and queue scheduling",
      "group": "time",
      "question": "How should appointments be placed when service times, no-shows, urgency, and waiting costs vary?",
      "methods": ["stochastic programming", "simulation optimization", "queueing models"],
      "fields": ["healthcare", "government services", "banking", "customer support"]
    },
    {
      "id": "tsp",
      "name": "Traveling Salesman Problem",
      "group": "space",
      "question": "What is the shortest or least costly tour that visits every required location?",
      "methods": ["branch and cut", "dynamic programming", "Lin-Kernighan", "ant colony optimization"],
      "fields": ["logistics", "robotics", "genomics", "manufacturing"]
    },
    {
      "id": "vehicle-routing",
      "name": "Vehicle Routing Problem",
      "group": "space",
      "question": "How should multiple vehicles serve demand under capacity, time, driver, and service constraints?",
      "methods": ["branch-price-and-cut", "large neighborhood search", "tabu search", "hybrid genetic search"],
      "fields": ["delivery", "waste collection", "school transport", "humanitarian logistics"]
    },
    {
      "id": "arc-routing",
      "name": "Arc and rural routing",
      "group": "space",
      "question": "How should required roads, pipes, lines, or edges be serviced rather than only visiting points?",
      "methods": ["route-first cluster-second", "cutting planes", "path scanning", "memetic algorithms"],
      "fields": ["postal service", "snow removal", "utility inspection", "street maintenance"]
    },
    {
      "id": "bin-packing",
      "name": "Bin packing",
      "group": "space",
      "question": "How can items fit into the fewest containers while respecting dimensions, compatibility, or balance?",
      "methods": ["first-fit decreasing", "branch and price", "column generation", "metaheuristics"],
      "fields": ["shipping", "cloud computing", "warehousing", "memory allocation"]
    },
    {
      "id": "cutting-stock",
      "name": "Cutting stock and nesting",
      "group": "space",
      "question": "How should material be cut or nested to meet demand with minimal waste?",
      "methods": ["column generation", "pattern enumeration", "guillotine-cut dynamic programming"],
      "fields": ["steel", "paper", "textiles", "wood", "glass"]
    },
    {
      "id": "facility-location",
      "name": "Facility location",
      "group": "space",
      "question": "Where should facilities, warehouses, clinics, schools, chargers, or services be placed?",
      "methods": ["p-median", "p-center", "Benders decomposition", "Lagrangian relaxation"],
      "fields": ["healthcare", "logistics", "education", "energy", "retail"]
    },
    {
      "id": "network-flow",
      "name": "Network flow",
      "group": "network",
      "question": "How should material, energy, information, people, or money flow through a network?",
      "methods": ["max flow", "min-cost flow", "multicommodity flow", "decomposition"],
      "fields": ["transport", "telecommunications", "finance", "water", "supply chains"]
    },
    {
      "id": "network-design",
      "name": "Network design",
      "group": "network",
      "question": "Which links and capacities should be built to create a resilient, affordable network?",
      "methods": ["mixed-integer programming", "cut generation", "robust optimization"],
      "fields": ["roads", "broadband", "energy grids", "water systems", "cloud infrastructure"]
    },
    {
      "id": "graph-coloring",
      "name": "Graph coloring",
      "group": "network",
      "question": "How can conflicting entities receive compatible labels, times, channels, or resources?",
      "methods": ["branch and bound", "DSATUR", "SAT", "local search"],
      "fields": ["frequency assignment", "timetabling", "register allocation", "testing"]
    },
    {
      "id": "graph-partition",
      "name": "Graph partitioning and community structure",
      "group": "network",
      "question": "How can a network be divided into coherent regions while controlling cut cost and balance?",
      "methods": ["spectral methods", "multilevel partitioning", "semidefinite relaxation", "local refinement"],
      "fields": ["parallel computing", "social networks", "territory design", "biology"]
    },
    {
      "id": "interdiction",
      "name": "Interdiction and network protection",
      "group": "network",
      "question": "Which failures or attacks matter most, and where should protection or redundancy be added?",
      "methods": ["bilevel optimization", "robust optimization", "game theory"],
      "fields": ["infrastructure", "cybersecurity", "supply chains", "public safety"]
    },
    {
      "id": "stochastic",
      "name": "Stochastic programming",
      "group": "uncertainty",
      "question": "What should be decided now when future demand, prices, travel times, or events are uncertain?",
      "methods": ["scenario trees", "sample average approximation", "stochastic decomposition"],
      "fields": ["energy", "finance", "agriculture", "logistics", "healthcare"]
    },
    {
      "id": "robust",
      "name": "Robust optimization",
      "group": "uncertainty",
      "question": "Which decision remains acceptable across a defined range of adverse conditions?",
      "methods": ["uncertainty sets", "distributionally robust optimization", "adjustable robustness"],
      "fields": ["supply chains", "energy", "portfolio design", "infrastructure"]
    },
    {
      "id": "multiobjective",
      "name": "Multiobjective optimization",
      "group": "uncertainty",
      "question": "How can cost, speed, fairness, emissions, risk, quality, and resilience be compared without hiding tradeoffs?",
      "methods": ["Pareto frontiers", "epsilon constraint", "goal programming", "evolutionary methods"],
      "fields": ["public policy", "healthcare", "climate", "engineering", "business"]
    },
    {
      "id": "dynamic",
      "name": "Dynamic and online optimization",
      "group": "uncertainty",
      "question": "How should a decision adapt as new information arrives and the system changes?",
      "methods": ["dynamic programming", "model predictive control", "online algorithms", "rolling horizon"],
      "fields": ["mobility", "energy", "inventory", "pricing", "operations"]
    },
    {
      "id": "linear-programming",
      "name": "Linear programming",
      "group": "continuous",
      "question": "How can continuous resources be optimized when objectives and constraints are linear?",
      "methods": ["simplex", "interior point", "decomposition"],
      "fields": ["production", "blending", "transport", "finance", "planning"]
    },
    {
      "id": "mixed-integer",
      "name": "Mixed-integer programming",
      "group": "continuous",
      "question": "How can discrete choices and continuous quantities be optimized in one model?",
      "methods": ["branch and bound", "branch and cut", "Benders decomposition", "Lagrangian relaxation"],
      "fields": ["energy", "logistics", "manufacturing", "finance", "policy"]
    },
    {
      "id": "nonlinear",
      "name": "Nonlinear and nonconvex optimization",
      "group": "continuous",
      "question": "How can systems be optimized when relationships curve, interact, or contain local optima?",
      "methods": ["gradient methods", "sequential quadratic programming", "global optimization", "spatial branch and bound"],
      "fields": ["engineering", "economics", "machine learning", "chemical processes"]
    },
    {
      "id": "optimal-control",
      "name": "Optimal control",
      "group": "continuous",
      "question": "What sequence of controls best guides a changing physical or operational system?",
      "methods": ["Pontryagin principle", "dynamic programming", "model predictive control"],
      "fields": ["robotics", "aerospace", "energy", "water", "medicine"]
    },
    {
      "id": "constraint-programming",
      "name": "Constraint programming and CP-SAT",
      "group": "learning",
      "question": "How can rich logical, scheduling, and combinatorial rules be propagated before and during search?",
      "methods": ["constraint propagation", "CP-SAT", "lazy clause generation"],
      "fields": ["scheduling", "configuration", "rostering", "planning"]
    },
    {
      "id": "metaheuristics",
      "name": "Metaheuristics",
      "group": "learning",
      "question": "How can large or difficult search spaces be explored when exact optimization is too costly?",
      "methods": ["tabu search", "simulated annealing", "genetic algorithms", "ant colony", "particle swarm"],
      "fields": ["routing", "scheduling", "design", "portfolio search", "planning"]
    },
    {
      "id": "hyperheuristics",
      "name": "Hyperheuristics and algorithm selection",
      "group": "learning",
      "question": "Which heuristic, neighborhood, or solver should be selected for this instance and stage?",
      "methods": ["portfolio methods", "automated configuration", "reinforcement learning", "racing"],
      "fields": ["universal solvers", "scheduling", "routing", "SolVida AI orchestration"]
    },
    {
      "id": "learning-guided-search",
      "name": "Learning-guided exact search",
      "group": "learning",
      "question": "How can learned predictions guide branching, cuts, neighborhoods, or decomposition without weakening validation?",
      "methods": ["imitation learning", "graph neural networks", "reinforcement learning", "surrogate models"],
      "fields": ["MILP", "SAT", "routing", "network design", "industrial optimization"]
    },
    {
      "id": "simulation-optimization",
      "name": "Simulation optimization",
      "group": "learning",
      "question": "How can decisions improve when the system can be simulated but not expressed completely in closed form?",
      "methods": ["Bayesian optimization", "ranking and selection", "surrogate optimization", "evolution strategies"],
      "fields": ["healthcare", "manufacturing", "transport", "digital twins", "service operations"]
    }
  ],
  "methodFamilies": [
    "exact algorithms",
    "approximation algorithms",
    "mathematical programming",
    "constraint programming",
    "decomposition",
    "dynamic programming",
    "heuristics",
    "metaheuristics",
    "hyperheuristics",
    "simulation optimization",
    "learning-guided optimization",
    "human-in-the-loop optimization"
  ],
  "culturalPrinciples": [
    "Objectives must be discussed with the people affected; a mathematical optimum does not define community values.",
    "Local language, institutions, geography, infrastructure, history, and informal practices can change the model.",
    "Efficiency, fairness, resilience, dignity, and access may conflict and should remain visible as tradeoffs.",
    "Examples and teaching materials should be adapted without implying that one culture is the default.",
    "Sensitive public decisions require participatory design, transparent assumptions, and accountable human review."
  ]
}
