Adapt Optimisation¶
adapt_optimisation — mvp.adapt_optimisation
Cluster: ML & Optimisation | Type: component | MCP Tools: 27
Overview¶
adapt_optimisation provides a curated optimisation adapter with audited backend-native extension operations. The curated tier exposes stable scipy/grid/random, metaheuristic, multi-objective, function registry, result, and advisory operations; the native tier exposes selected backend-native capabilities through explicit MCP operations with schemas, allowlists, resource bounds, safety guards, capability discovery, and normalised degradation reporting. It is not a full unrestricted adapter over SciPy, pyMetaheuristic, or pyMultiobjective.
Launch caveat
adapt_optimisation is a numerical optimisation utility, not a domain workflow by itself. It is most useful when a recipe, agent, or user has already translated the business problem into an objective function, bounds, and constraints. For non-technical users, prefer workflow templates or job agents that frame the optimisation problem in domain language, then call this component under the hood.
When to use:
- Minimising objective functions with scipy or metaheuristic solvers
- Hyperparameter tuning via grid, random, or population-based search
- Benchmarking optimisation methods against standard test functions
- Solving a domain problem after a workflow has expressed the target as a measurable objective
Example:
from mvp.adapt_optimisation import AdaptOptimisationBlock, OptimisationInput
block = AdaptOptimisationBlock(name="opt")
result = block.infer(OptimisationInput(fn_name="sphere", bounds=[[-5, 5], [-5, 5]]))
# result.ok → True; result.value → OptimisationOutput with x_opt and f_opt
Works well with: adapt_pygad, adapt_sklearn, formal_methods
Public API¶
AdaptOptimisationBlock(AIBlock[OptimisationInput, OptimisationOutput, None])¶
Wraps scipy.optimize.minimize (if available) with a grid-search fallback,
| Field | Type | Default |
|---|---|---|
name | str | 'adapt_optimisation' |
resource_bounds | ResourceBounds \| None | None |
usage | ResourceUsage | field(default_factory=ResourceUsage) |
agentic_planner | OptimisationPlanner \| None | None |
Methods:
infer(data: OptimisationInput) -> Result[OptimisationOutput]¶
bias() -> dict¶
OptimisationInput(BaseModel)¶
Input to AdaptOptimisationBlock.
| Field | Type | Default |
|---|---|---|
op | Literal['solve', 'optimise', 'optimize', 'info', 'recommend'] | 'solve' |
fn_name | str | 'sphere' |
bounds | list[list[float]] | Field(default_factory=lambda: [[-1.0, 1.0]]) |
method | Literal['scipy', 'grid'] | 'scipy' |
max_evals | int | 200 |
minimize | bool | True |
n_objectives | int | 1 |
multimodal_hint | bool | False |
expression | str | '' |
pts_per_dim | int | 0 |
run_mode | str | 'beta' |
reviewer_signature | str | '' |
OptimisationOutput(BaseModel)¶
Output from AdaptOptimisationBlock.
| Field | Type | Default |
|---|---|---|
x_opt | list[float] | Field(default_factory=list) |
f_opt | float | 0.0 |
n_evals | int | 0 |
converged | bool | False |
method | str | '' |
fn_name | str | '' |
degraded | bool | False |
degradation_reason | str | '' |
solver_rationale | str | '' |
convergence_tolerance | float | 0.0 |
constraint_violations | list[str] | Field(default_factory=list) |
backend_used | str | '' |
fallback_reason | str | '' |
seed | int \| None | None |
acceptance | Literal['acceptable', 'incomplete', 'degraded', 'infeasible'] | 'acceptable' |
ranked_algorithms | list[str] | Field(default_factory=list) |
recommendation_rationale | str | '' |
eligible_algorithms | list[str] | Field(default_factory=list) |
agentic_evidence | dict | Field(default_factory=dict) |
requires_fallback | bool | False |
diverged_from_floor | bool | False |
deterministic_floor_rank | list[str] | Field(default_factory=list) |
completion_state | str | '' |
Methods:
optimal_x() -> list[float]¶
Backward-compatible alias used by older job recipes.
optimal_f() -> float¶
Backward-compatible alias used by older job recipes.
AdaptOptimisationMCPBlock(AIBlock[MCPOptimisationInput, MCPOptimisationOutput, dict])¶
| Field | Type | Default |
|---|---|---|
name | str | 'adapt_optimisation_mcp' |
db_path | str | ':memory:' |
resource_bounds | ResourceBounds \| None | None |
usage | ResourceUsage | field(default_factory=ResourceUsage) |
state | dict | field(default_factory=dict) |
Methods:
infer(data: MCPOptimisationInput) -> Result[MCPOptimisationOutput]¶
MCPOptimisationInput(BaseModel)¶
| Field | Type | Default |
|---|---|---|
op | Literal['run_scipy', 'run_grid', 'run_random', 'run_pso', 'run_ga', 'run_de', 'run_sa', 'run_gwo', 'run_whale', 'run_firefly', 'run_nsga2', 'run_nsga3', 'run_moead', 'fn_register', 'fn_list', 'fn_evaluate', 'result_list', 'result_compare', 'result_delete', 'native_capability_info', 'native_describe_method', 'native_validate_problem', 'native_run_method', 'native_result_schema', 'get_info', 'recommend_algo', 'list_patterns'] | required |
fn_name | str | 'sphere' |
fn_names_json | str | '[]' |
bounds | list[list[float]] | Field(default_factory=lambda: [[-5.0, 5.0], [-5.0, 5.0]]) |
minimize | bool | True |
max_evals | int | 500 |
n_samples | int | 200 |
seed | int | -1 |
x0_json | str | '[]' |
scipy_method | str | 'lbfgsb' |
pts_per_dim | int | 0 |
iterations | int | 200 |
population_size | int | 50 |
swarm_size | int | 50 |
w | float | 0.9 |
c1 | float | 2.0 |
c2 | float | 2.0 |
mutation_rate | float | 0.1 |
F | float | 0.9 |
Cr | float | 0.5 |
initial_temp | float | 1.0 |
final_temp | float | 0.0001 |
alpha | float | 0.9 |
pack_size | int | 10 |
n_fireflies | int | 25 |
ff_alpha | float | 0.5 |
beta | float | 1.0 |
gamma | float | 1.0 |
n_reference_points | int | 10 |
n_neighbors | int | 5 |
generations | int | 100 |
expression | str | '' |
x_json | str | '[]' |
notes | str | '' |
run_ids_json | str | '[]' |
run_id | str | '' |
limit | int | 20 |
algorithm | str | '' |
request_id | str | '' |
task_id | str | '' |
native_backend | str | '' |
native_action | str | '' |
native_method | str | '' |
native_options | dict[str, Any] | Field(default_factory=dict) |
native_bounds | list[list[float]] | Field(default_factory=list) |
max_iterations | int | 1000 |
max_evaluations | int | 10000 |
allow_fallback | bool | False |
timeout_sec | float | 0.0 |
stall_patience | int | 30 |
stall_tol | float | 1e-08 |
max_pareto_size | int | 100 |
run_mode | str | 'beta' |
reviewer_signature | str | '' |
MCPOptimisationOutput(BaseModel)¶
| Field | Type | Default |
|---|---|---|
op | str | required |
ok | bool | True |
message | str | '' |
run_id | str | '' |
algorithm | str | '' |
fn_name | str | '' |
x_opt | list[float] | Field(default_factory=list) |
f_opt | float | 0.0 |
n_evals | int | 0 |
converged | bool | False |
runtime_ms | float | 0.0 |
pareto_front | list[dict] | Field(default_factory=list) |
runs | list[dict] | Field(default_factory=list) |
functions | list[dict] | Field(default_factory=list) |
value | float | 0.0 |
metadata | dict | Field(default_factory=dict) |
count | int | 0 |
degraded | bool | False |
degradation_reason | str | '' |
completion_state | Literal['verified', 'qualified-draft', 'blocked-escalated'] | 'qualified-draft' |
warning_card | dict | Field(default_factory=dict) |
evidence | list[dict] | Field(default_factory=list) |
request_id | str | '' |
task_id | str | '' |
backend_requested | str | '' |
backend_used | str | '' |
fallback_used | bool | False |
fallback_reason | str | '' |
acceptance | str | 'accepted' |
MCP Tools¶
| Operation | Source |
|---|---|
run_scipy | optimisation_mcp |
run_grid | optimisation_mcp |
run_random | optimisation_mcp |
run_pso | optimisation_mcp |
run_ga | optimisation_mcp |
run_de | optimisation_mcp |
run_sa | optimisation_mcp |
run_gwo | optimisation_mcp |
run_whale | optimisation_mcp |
run_firefly | optimisation_mcp |
run_nsga2 | optimisation_mcp |
run_nsga3 | optimisation_mcp |
run_moead | optimisation_mcp |
fn_register | optimisation_mcp |
fn_list | optimisation_mcp |
fn_evaluate | optimisation_mcp |
result_list | optimisation_mcp |
result_compare | optimisation_mcp |
result_delete | optimisation_mcp |
native_capability_info | optimisation_mcp |
native_describe_method | optimisation_mcp |
native_validate_problem | optimisation_mcp |
native_run_method | optimisation_mcp |
native_result_schema | optimisation_mcp |
get_info | optimisation_mcp |
recommend_algo | optimisation_mcp |
list_patterns | optimisation_mcp |