optimization software (tsz. optimization softwares)
Funkció | Példa |
---|---|
Modell megfogalmazás | Matematikai formában vagy magas szintű nyelven |
Megoldó motorok futtatása | LP/QP/NLP/ILP megoldók |
Érzékenységvizsgálat | Árnyékárak, dual értékek |
Integráció más nyelvekkel | Python, R, C++, Java, MATLAB |
Vizualizáció, riportolás | Eredmények megjelenítése |
Név | Típus | Jellemzők |
---|---|---|
Gurobi | LP, MILP, QP, MIQP | Kiváló teljesítmény, Python API |
CPLEX | LP, MILP, QP | IBM termék, ipari szabvány |
SCIP | MILP, NLP, CSP | Szabad, akadémiai és ipari felhasználás |
GLPK | LP, MILP | Nyílt forráskódú, GNU projekt |
CBC | LP, MILP | COIN-OR projekt része, nyílt forráskódú |
XPRESS | LP, MILP, QP | Nagy ipari alkalmazások |
HiGHS | LP, MILP | Nagyon gyors, új nyílt forrású megoldó |
MOSEK | LP, QP, SOCP, SDP | Skálázható, nagy dimenziókra jó |
Név | Típus | Jellemző |
---|---|---|
NLopt | NLP, globális / lokális keresés | C++/Python |
Optuna | Hiperparaméter-optimalizálás | ML modellek tuningjához |
Pyomo | Általános modellezőnyelv Pythonban | Open-source |
CasADi | Nemlineáris, dinamikus rendszerekhez | Szimbolikus deriválás |
GEKKO | Python alapú NLP/DAE optimalizálás | Dinamikus folyamatok |
Név | Leírás |
---|---|
MiniZinc | Modellleíró nyelv, több megoldóval kompatibilis |
Google OR-Tools | CP-SAT, MIP, Routing, Vehicle Problems |
Choco Solver | Java-alapú constraint solver |
Z3 Solver | SMT solver, CSP és logikai problémákra is |
Könyvtár | Jellemző |
---|---|
cvxpy
|
Konvex optimalizálás, LP/QP/SOCP |
pulp
|
LP és MILP modellek Gurobi/CPLEX/CBC backenddel |
pyomo
|
Deklaratív modell nyílt forráskódú backendekkel |
scipy.optimize
|
Nemlineáris optimalizálás |
optuna
|
Hiperparaméter-keresés gépi tanuláshoz |
Problématípus | Javasolt eszköz |
---|---|
Lineáris programozás | Gurobi, CPLEX, HiGHS, CBC |
Egészértékű programozás | SCIP, CBC, XPRESS |
Konvex optimalizáció | cvxpy, MOSEK, SCS |
Nemlineáris optimalizálás | SciPy, GEKKO, CasADi |
Sztochasztikus | Pyomo, NLopt, heuristikus csomagok |
Constraint Satisfaction | OR-Tools, MiniZinc, Choco, Z3 |
pulp
-palfrom pulp import *
# Probléma definiálása
prob = LpProblem("Simple LP", LpMaximize)
x = LpVariable("x", lowBound=0)
y = LpVariable("y", lowBound=0)
# Célfüggvény
prob += 4*x + 3*y
# Korlátok
prob += 2*x + y <= 20
prob += x + 2*y <= 20
# Megoldás
prob.solve()
print(f"x = {x.varValue}, y = {y.varValue}, z = {value(prob.objective)}")
Megoldó | Licenc | Megjegyzés |
---|---|---|
Gurobi | Kereskedelmi (free academic) | |
CPLEX | Kereskedelmi (free academic) | |
CBC | Nyílt forráskódú (Eclipse Public License) | |
HiGHS | MIT licenc | |
MOSEK | Kereskedelmi | |
OR-Tools | Apache 2.0 – teljesen ingyenes | |
MiniZinc | Nyílt forrású (GPL) |
Jellemző | Leírás |
---|---|
Mire jó? | Modellezés, erőforrás-elosztás, ütemezés, ML tuning |
Problématípusok | LP, ILP, QP, NLP, CSP, MIP, SOCP, SDP |
Elérhető eszközök | Gurobi, CPLEX, CBC, cvxpy, OR-Tools, MiniZinc |
Használat | Python, C++, Java, MATLAB integráció |