Skip to content

Commit a618ca5

Browse files
committed
foo
1 parent e38616b commit a618ca5

1 file changed

Lines changed: 26 additions & 1 deletion

File tree

.reports/action_options.md

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -417,12 +417,37 @@ solve(ocp; init=x, i=y)
417417

418418
# Conflit action/stratégie : si Ipopt déclare aussi `display`
419419
solve(ocp; display=false)
420-
# → action gagne : display=false pour l'orchestrateur
420+
# → action gagne : display=false pour l'orchestrateur uniquement
421421

422422
solve(ocp; display=route_to(ipopt=false))
423423
# → stratégie gagne : display=false pour Ipopt uniquement
424+
# (mais si Ipopt ne déclare pas `display`, erreur "option inconnue")
424425
```
425426

427+
## Limitation : impossible de passer une option à la fois à l'action ET à une stratégie
428+
429+
En mode descriptif, `extract_options` **retire** l'option d'action de `kwargs` avant que
430+
le routeur de stratégies ne la voie. Une option ne peut donc avoir qu'un seul propriétaire
431+
dans un appel donné.
432+
433+
**Si l'utilisateur veut passer `display=false` à la fois à l'orchestrateur et à Ipopt**,
434+
il doit utiliser le **mode explicite** :
435+
436+
```julia
437+
# Mode explicite : contrôle total
438+
solver = CTSolvers.Ipopt(display=false) # display=false pour Ipopt
439+
solve(ocp; solver=solver, display=false) # display=false aussi pour l'orchestrateur
440+
```
441+
442+
C'est cohérent avec la philosophie des deux modes :
443+
444+
- **Mode descriptif** — simplicité : l'orchestrateur gère tout, les options sont routées
445+
automatiquement. Les options d'action ont la priorité.
446+
- **Mode explicite** — contrôle total : l'utilisateur construit les composants lui-même
447+
et peut passer n'importe quelle option à n'importe quel composant.
448+
449+
> Cette limitation doit être documentée dans la docstring de `CommonSolve.solve`.
450+
426451
---
427452

428453
## Fichiers à modifier — récapitulatif

0 commit comments

Comments
 (0)