This catalog lists classical LP problems suitable for showcasing the Dantzig DSL capabilities, organized by complexity and feature coverage.
- Problem: Maximize/minimize a linear function over a polygon
- Variables: 2 continuous variables
- Constraints: 3-4 linear constraints
- DSL Features: Basic variable definition, simple constraints, objective function
- Educational Value: Perfect introduction to LP basics
- Problem: Optimize production mix for 2 products with resource constraints
- Variables: 2-3 continuous variables (production quantities)
- Constraints: 2-3 resource constraints (labor, materials)
- DSL Features: Model parameters, basic constraints, objective maximization
- Real-world relevance: Classic business optimization
- Problem: Minimize cost while meeting nutritional requirements
- Variables: 3-4 food types
- Constraints: 2-3 nutritional requirements
- DSL Features: Constant parameters, inequality constraints
- Problem: Allocate limited resources among competing activities
- Variables: 2-3 activities
- Constraints: 2-3 resource limits
- DSL Features: Pattern-based constraints, model parameters
- Problem: Maximize expected return for given risk tolerance
- Variables: 5-8 investment options
- Constraints: Budget, risk limits, diversification requirements
- DSL Features: Quadratic constraints, parameter arrays, complex objective
- Complexity: Portfolio selection with multiple objectives
- Problem: Minimize shipping costs between suppliers and customers
- Variables: 3-4 suppliers × 3-4 customers = 9-16 decision variables
- Constraints: Supply capacity, demand requirements
- DSL Features: Pattern-based variable creation, sum constraints, matrix-like operations
- Showcases: Generator syntax, indexed variables
- Problem: Assign workers to tasks to minimize total cost
- Variables: 4-5 workers × 4-5 tasks = 16-25 binary variables
- Constraints: Each worker assigned to exactly one task, each task gets exactly one worker
- DSL Features: Binary variables, equality constraints, permutation constraints
- Showcases: Integer programming, combinatorial optimization
- Problem: Minimize waste when cutting raw materials
- Variables: 5-7 cutting patterns (binary)
- Constraints: Meet demand for different lengths, resource limits
- DSL Features: Binary variables, pattern generation, waste minimization
- Problem: Determine optimal locations for facilities and assignment
- Variables: Binary variables for facility locations (3-5 locations)
- Variables: Assignment variables (facilities × customers)
- Constraints: Fixed costs, capacity limits, demand satisfaction
- DSL Features: Mixed-integer programming, fixed charge constraints
- Problem: Select subset of projects to maximize profit within budget
- Variables: Binary variables for each project (5-8 projects)
- Constraints: Budget limit, dependency relationships
- DSL Features: Binary variables, interdependent constraints
- Problem: Complex production scheduling with time periods
- Variables: 4-6 products × 3-4 time periods = 12-24 variables
- Constraints: Resource capacity, demand satisfaction, inventory levels
- DSL Features: Time-indexed variables, inventory constraints, rolling planning
- Problem: Minimize transportation costs in a network
- Variables: Edge flow variables (10-15 edges)
- Constraints: Flow conservation at nodes, capacity limits
- DSL Features: Network structure, node-arc incidence, capacity constraints
- Showcases: Graph-based modeling, conservation laws
- Problem: Optimize inventory policies under uncertainty
- Variables: Order quantities, inventory levels (scenario-dependent)
- Constraints: Demand satisfaction, inventory capacity
- DSL Features: Scenario-based modeling, expectation objectives
- Problem: Optimize under uncertainty in parameters
- Variables: Decision variables with uncertainty sets
- Constraints: Robust constraints (worst-case scenarios)
- DSL Features: Uncertainty modeling, robust formulations
- Problem: Optimize multiple conflicting objectives
- Variables: Decision variables (8-12 variables)
- Constraints: Multiple constraint sets
- Objectives: Multiple objective functions (Pareto frontier)
- DSL Features: Multi-objective formulation, Pareto optimization
- Problem: Portfolio optimization with quadratic risk term
- Variables: Investment amounts (6-10 variables)
- Constraints: Budget, minimum/maximum allocations
- Objective: Quadratic utility function
- DSL Features: Quadratic terms, risk-return optimization
- Problem: Cost functions with breakpoints
- Variables: Quantity variables, piecewise linear approximations
- Constraints: Piecewise linear constraints
- DSL Features: Linearization techniques, breakpoint handling
- Problem: Production planning with setup costs and logical conditions
- Variables: Continuous production variables, binary setup variables
- Constraints: Logical implications, big-M constraints
- DSL Features: Logical constraints, indicator variables, big-M formulation
- Problem: Flow of multiple commodities through network
- Variables: Flow for each commodity on each edge
- Constraints: Capacity limits, demand satisfaction for each commodity
- DSL Features: Multi-dimensional indexing, commodity separation
- Problem: Schedule resources considering uncertainty
- Variables: Binary variables for time slots
- Constraints: Resource availability, robustness requirements
- DSL Features: Binary variables, temporal constraints, robustness
- Continuous: Basic production, transportation, portfolio optimization
- Binary: Assignment, facility location, timetabling, project selection
- Integer: Mixed-integer problems, cutting stock, scheduling
- Equality: Assignment problem, flow conservation
- Inequality: Resource constraints, capacity limits
- Bounds: Variable limits, capacity constraints
- Logical: Conditional constraints, implications
- Network: Flow conservation, capacity constraints
- Linear: Most classic LP problems
- Quadratic: Portfolio optimization, risk minimization
- Multi-objective: Trade-off optimization, Pareto problems
- Generator syntax:
variables("x", [i <- 1..n], :continuous) - Pattern-based constraints:
[i <- 1..n], sum(x[i]) <= capacity - Model parameters: Runtime data integration
- Nested expressions: Complex mathematical formulations
- Multiple objectives: Multi-criteria optimization
- Integer programming: Binary and integer variables
- Start simple: Two-variable LP, basic production planning
- Add complexity: Transportation, assignment, portfolio optimization
- Introduce integers: Project selection, facility location
- Advanced features: Multi-objective, robust optimization
- Specialized applications: Network flows, stochastic problems
- Scalability: Keep variable counts moderate (5-20) for laptop computation
- Feature coverage: Each problem should showcase 2-3 DSL features
- Real-world relevance: Focus on practical, recognizable problem types
- Educational value: Clear problem statements with expected solutions
- Complexity progression: Smooth learning curve from basic to advanced This catalog lists classical LP problems suitable for showcasing the Dantzig DSL capabilities, organized by complexity and feature coverage.
- Problem: Maximize/minimize a linear function over a polygon
- Variables: 2 continuous variables
- Constraints: 3-4 linear constraints
- DSL Features: Basic variable definition, simple constraints, objective function
- Educational Value: Perfect introduction to LP basics
- Problem: Optimize production mix for 2 products with resource constraints
- Variables: 2-3 continuous variables (production quantities)
- Constraints: 2-3 resource constraints (labor, materials)
- DSL Features: Model parameters, basic constraints, objective maximization
- Real-world relevance: Classic business optimization
- Problem: Minimize cost while meeting nutritional requirements
- Variables: 3-4 food types
- Constraints: 2-3 nutritional requirements
- DSL Features: Constant parameters, inequality constraints
- Problem: Allocate limited resources among competing activities
- Variables: 2-3 activities
- Constraints: 2-3 resource limits
- DSL Features: Pattern-based constraints, model parameters
- Problem: Maximize expected return for given risk tolerance
- Variables: 5-8 investment options
- Constraints: Budget, risk limits, diversification requirements
- DSL Features: Quadratic constraints, parameter arrays, complex objective
- Complexity: Portfolio selection with multiple objectives
- Problem: Minimize shipping costs between suppliers and customers
- Variables: 3-4 suppliers × 3-4 customers = 9-16 decision variables
- Constraints: Supply capacity, demand requirements
- DSL Features: Pattern-based variable creation, sum constraints, matrix-like operations
- Showcases: Generator syntax, indexed variables
- Problem: Assign workers to tasks to minimize total cost
- Variables: 4-5 workers × 4-5 tasks = 16-25 binary variables
- Constraints: Each worker assigned to exactly one task, each task gets exactly one worker
- DSL Features: Binary variables, equality constraints, permutation constraints
- Showcases: Integer programming, combinatorial optimization
- Problem: Minimize waste when cutting raw materials
- Variables: 5-7 cutting patterns (binary)
- Constraints: Meet demand for different lengths, resource limits
- DSL Features: Binary variables, pattern generation, waste minimization
- Problem: Determine optimal locations for facilities and assignment
- Variables: Binary variables for facility locations (3-5 locations)
- Variables: Assignment variables (facilities × customers)
- Constraints: Fixed costs, capacity limits, demand satisfaction
- DSL Features: Mixed-integer programming, fixed charge constraints
- Problem: Select subset of projects to maximize profit within budget
- Variables: Binary variables for each project (5-8 projects)
- Constraints: Budget limit, dependency relationships
- DSL Features: Binary variables, interdependent constraints
- Problem: Complex production scheduling with time periods
- Variables: 4-6 products × 3-4 time periods = 12-24 variables
- Constraints: Resource capacity, demand satisfaction, inventory levels
- DSL Features: Time-indexed variables, inventory constraints, rolling planning
- Problem: Minimize transportation costs in a network
- Variables: Edge flow variables (10-15 edges)
- Constraints: Flow conservation at nodes, capacity limits
- DSL Features: Network structure, node-arc incidence, capacity constraints
- Showcases: Graph-based modeling, conservation laws
- Problem: Optimize inventory policies under uncertainty
- Variables: Order quantities, inventory levels (scenario-dependent)
- Constraints: Demand satisfaction, inventory capacity
- DSL Features: Scenario-based modeling, expectation objectives
- Problem: Optimize under uncertainty in parameters
- Variables: Decision variables with uncertainty sets
- Constraints: Robust constraints (worst-case scenarios)
- DSL Features: Uncertainty modeling, robust formulations
- Problem: Optimize multiple conflicting objectives
- Variables: Decision variables (8-12 variables)
- Constraints: Multiple constraint sets
- Objectives: Multiple objective functions (Pareto frontier)
- DSL Features: Multi-objective formulation, Pareto optimization
- Problem: Portfolio optimization with quadratic risk term
- Variables: Investment amounts (6-10 variables)
- Constraints: Budget, minimum/maximum allocations
- Objective: Quadratic utility function
- DSL Features: Quadratic terms, risk-return optimization
- Problem: Cost functions with breakpoints
- Variables: Quantity variables, piecewise linear approximations
- Constraints: Piecewise linear constraints
- DSL Features: Linearization techniques, breakpoint handling
- Problem: Production planning with setup costs and logical conditions
- Variables: Continuous production variables, binary setup variables
- Constraints: Logical implications, big-M constraints
- DSL Features: Logical constraints, indicator variables, big-M formulation
- Problem: Flow of multiple commodities through network
- Variables: Flow for each commodity on each edge
- Constraints: Capacity limits, demand satisfaction for each commodity
- DSL Features: Multi-dimensional indexing, commodity separation
- Problem: Schedule resources considering uncertainty
- Variables: Binary variables for time slots
- Constraints: Resource availability, robustness requirements
- DSL Features: Binary variables, temporal constraints, robustness
- Continuous: Basic production, transportation, portfolio optimization
- Binary: Assignment, facility location, timetabling, project selection
- Integer: Mixed-integer problems, cutting stock, scheduling
- Equality: Assignment problem, flow conservation
- Inequality: Resource constraints, capacity limits
- Bounds: Variable limits, capacity constraints
- Logical: Conditional constraints, implications
- Network: Flow conservation, capacity constraints
- Linear: Most classic LP problems
- Quadratic: Portfolio optimization, risk minimization
- Multi-objective: Trade-off optimization, Pareto problems
- Generator syntax:
variables("x", [i <- 1..n], :continuous) - Pattern-based constraints:
[i <- 1..n], sum(x[i]) <= capacity - Model parameters: Runtime data integration
- Nested expressions: Complex mathematical formulations
- Multiple objectives: Multi-criteria optimization
- Integer programming: Binary and integer variables
- Start simple: Two-variable LP, basic production planning
- Add complexity: Transportation, assignment, portfolio optimization
- Introduce integers: Project selection, facility location
- Advanced features: Multi-objective, robust optimization
- Specialized applications: Network flows, stochastic problems
- Scalability: Keep variable counts moderate (5-20) for laptop computation
- Feature coverage: Each problem should showcase 2-3 DSL features
- Real-world relevance: Focus on practical, recognizable problem types
- Educational value: Clear problem statements with expected solutions
- Complexity progression: Smooth learning curve from basic to advanced