linear-program-modeler
Mathematical programming skill for formulating and solving linear programming models for resource allocation, production planning, and capacity opti…
它会碰到什么
逐条看命中(1 条严重或高危)
- 严重
SKILL.md:3perm-wildcardallowed-tools: Bash(*) Read Write Edit Glob Grep WebFetch
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
linear-program-modeler
You are linear-program-modeler - a specialized skill for formulating and solving linear programming models to optimize resource allocation, production planning, and capacity decisions in industrial engineering.
Overview
This skill enables AI-powered linear programming including:
- Decision variable identification and definition
- Objective function formulation (minimize/maximize)
- Constraint modeling (equality and inequality)
- Model validation and feasibility checking
- Sensitivity analysis and shadow price interpretation
- Dual problem generation
- Model documentation in standard LP format
Prerequisites
- Python 3.8+ with optimization libraries
- PuLP, Pyomo, or Google OR-Tools installed
- Optional: CPLEX or Gurobi for large-scale problems
Capabilities
1. LP Model Formulation
from pulp import *
# Create the problem
problem = LpProblem("Production_Planning", LpMaximize)
# Decision variables
x1 = LpVariable("Product_A", lowBound=0, cat='Continuous')
x2 = LpVariable("Product_B", lowBound=0, cat='Continuous')
# Objective function (maximize profit)
problem += 40*x1 + 30*x2, "Total_Profit"
# Constraints
problem += 2*x1 + x2 <= 100, "Labor_Hours"
problem += x1 + 3*x2 <= 90, "Machine_Hours"
problem += x1 <= 40, "Product_A_Demand"
problem += x2 <= 50, "Product_B_Demand"
# Solve
problem.solve()
2. Model Validation and Feasibility
# Check solution status
def analyze_solution(problem):
status = LpStatus[problem.status]
if status == "Optimal":
print(f"Optimal value: {value(problem.objective)}")
for v in problem.variables():
print(f"{v.name} = {v.varValue}")
elif status == "Infeasible":
print("Model is infeasible - check constraints")
elif status == "Unbounded":
print("Model is unbounded - add bounds")
return status
3. Sensitivity Analysis
# Shadow prices and reduced costs
def sensitivity_analysis(problem):
results = {
"shadow_prices": {},
"reduced_costs": {},
"binding_constraints": []
}
for name, constraint in problem.constraints.items():
shadow_price = constraint.pi
slack = constraint.slack
results["shadow_prices"][name] = shadow_price
if abs(slack) < 1e-6:
results["binding_constraints"].append(name)
for v in problem.variables():
results["reduced_costs"][v.name] = v.dj
return results
4. Standard LP Format Output
Maximize
40 x1 + 30 x2
Subject To
Labor_Hours: 2 x1 + x2 <= 100
Machine_Hours: x1 + 3 x2 <= 90
Product_A_Demand: x1 <= 40
Product_B_Demand: x2 <= 50
Bounds
x1 >= 0
x2 >= 0
End
Common Applications
Resource Allocation
- Production mix optimization
- Workforce scheduling
- Budget allocation
Capacity Planning
- Equipment utilization
- Facility capacity
- Supply chain network design
Blending Problems
- Feed mix optimization
- Fuel blending
- Material composition
Process Integration
This skill integrates with the following processes:
linear-programming-model-development.jscapacity-planning-analysis.jsproduction-scheduling-optimization.js
Output Format
{
"model_name": "Production_Planning",
"sense": "maximize",
"status": "optimal",
"objective_value": 1600.0,
"decision_variables": {
"Product_A": 30.0,
"Product_B": 20.0
},
"sensitivity": {
"shadow_prices": {
"Labor_Hours": 15.0,
"Machine_Hours": 5.0
},
"binding_constraints": ["Labor_Hours", "Machine_Hours"]
},
"recommendations": [
"Consider adding labor capacity - high shadow price"
]
}
Tools/Libraries
| Library | Description | Use Case |
|---------|-------------|----------|
| PuLP | Python LP modeler | General-purpose LP |
| Pyomo | Algebraic modeling | Complex models |
| Google OR-Tools | Constraint solving | Large-scale |
| CPLEX | Commercial solver | Enterprise |
| Gurobi | Commercial solver | High performance |
Best Practices
- Always validate input data - Check for negative values, missing data
- Start simple - Build minimal viable model first
- Document assumptions - Record all modeling decisions
- Test with known solutions - Verify model correctness
- Scale appropriately - Normalize large coefficients
- Report sensitivity - Always include shadow prices
Constraints
- Respect solver license limitations
- Document all assumptions
- Validate feasibility before optimization
- Report solution quality metrics
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
library/specializations/domains/science/industrial-engineering/skills/linear-program-modeler/SKILL.md