docs: Update protocol docs and method selector improvements

- SYS_12: Add extractor library updates
- SYS_15: Add method selector documentation updates
- method_selector.py: Minor improvements to method selection logic

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Antoine
2025-12-07 19:10:45 -05:00
parent 0e04457539
commit c6f39bfd6c
3 changed files with 59 additions and 5 deletions

View File

@@ -486,12 +486,17 @@ class ProblemProfiler:
# Extract design variables
design_vars = config.get('design_variables', [])
profile.n_variables = len(design_vars)
profile.variable_names = [v['parameter'] for v in design_vars]
# Support both 'parameter' and 'name' keys for variable naming
profile.variable_names = [v.get('parameter') or v.get('name') for v in design_vars]
volume = 1.0
for var in design_vars:
name = var['parameter']
bounds = var.get('bounds', [0, 1])
name = var.get('parameter') or var.get('name')
# Support both 'bounds' array and 'min'/'max' fields
if 'bounds' in var:
bounds = var['bounds']
else:
bounds = [var.get('min', 0), var.get('max', 1)]
profile.variable_bounds[name] = (bounds[0], bounds[1])
profile.variable_types[name] = var.get('type', 'continuous')
volume *= (bounds[1] - bounds[0])
@@ -501,7 +506,11 @@ class ProblemProfiler:
objectives = config.get('objectives', [])
profile.n_objectives = len(objectives)
profile.objective_names = [o['name'] for o in objectives]
profile.objective_goals = {o['name']: o.get('goal', 'minimize') for o in objectives}
# Support both 'goal' and 'direction' keys for objective direction
profile.objective_goals = {
o['name']: o.get('goal') or o.get('direction', 'minimize')
for o in objectives
}
profile.is_multi_objective = profile.n_objectives > 1
# Extract constraints