Spaces:
Sleeping
Sleeping
File size: 1,159 Bytes
177c40c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
"""
Solver configuration.
This file configures the SolverForge optimization engine:
- Solution class (what to optimize)
- Entity classes (what to assign)
- Constraint provider (business rules)
- Termination config (when to stop)
"""
from solverforge_legacy.solver import SolverManager, SolverFactory, SolutionManager
from solverforge_legacy.solver.config import (
SolverConfig,
ScoreDirectorFactoryConfig,
TerminationConfig,
Duration,
)
from .domain import Schedule, Task
from .constraints import define_constraints
# Solver configuration
solver_config = SolverConfig(
solution_class=Schedule,
entity_class_list=[Task],
score_director_factory_config=ScoreDirectorFactoryConfig(
constraint_provider_function=define_constraints
),
termination_config=TerminationConfig(
# Stop after 30 seconds (adjust for your problem size)
spent_limit=Duration(seconds=30)
),
)
# Create solver manager (handles async solving)
solver_manager = SolverManager.create(SolverFactory.create(solver_config))
# Create solution manager (for score analysis)
solution_manager = SolutionManager.create(solver_manager)
|