aps-agent/server/engines/__init__.py

24 lines
1014 B
Python
Raw Normal View History

2026-07-21 11:05:57 +08:00
# ============================================================
# 排产引擎包(moduleId: server-engines, 可重生 ✅)
# RULE;CP = OR-Tools;HYBRID = RULE 热启动 + CP 改良;GA 仍 RULE 代跑留痕
2026-07-21 11:05:57 +08:00
# ============================================================
from server.engines.base import EngineParams, ISchedulingEngine
from server.engines.rule_engine import RuleEngine
from server.engines.pool_engine import PoolEngine
from server.engines.cp_engine import CpSatEngine, HybridEngine
2026-07-21 11:05:57 +08:00
__all__ = [
"EngineParams", "ISchedulingEngine", "RuleEngine", "PoolEngine",
"CpSatEngine", "HybridEngine", "get_engine",
]
2026-07-21 11:05:57 +08:00
def get_engine(engine_type: str) -> ISchedulingEngine:
"""引擎工厂:CP / HYBRID 真管线;GA 仍由 RULE 代跑并留 engineType。"""
kind = (engine_type or "RULE").upper()
if kind == "CP":
return CpSatEngine()
if kind == "HYBRID":
return HybridEngine()
return RuleEngine(requested_type=kind if kind in ("RULE", "GA") else "RULE")