Closed 0Yassine0 closed 4 months ago
Bonne question. ExaModels n'est pas un backend de JuMP `a proprement parler (contrairement à SymbolicAD). Nous pouvons juste convertir un modèle JuMP vers ExaModels. L'interface n'est pas beaucoup documenté, comme le package est récent.
Pour tester ExaModels depuis un modèle JuMP, il faut faire :
model = Model()
# define your JuMP model
exa_model = ExaModels.ExaModel(model)
Cette conversion devrait marcher sur des modèles de controle optimal du moment que nous n'utilisons pas l'ancienne syntaxe JuMP (@NLconstraint
, @NLobjective
).
J'ai une question par rapport à la partie du backend. Task 2 : (JuMP, Ipopt, _backend, best_linear_solver), _backend in {JuMPDefault, SymbolicAD, ExaModel} de la discussion de https://github.com/orgs/control-toolbox/discussions/47#discussioncomment-8554416 De ce que j'ai compris, ExaModel est un modèle différent de ce qu'on propose en JuMP ( avec la possibilité de passer de l'un à l'autre) et contrairement à SymbolicAD les instructions n'étaient pas trop claires pour l'utilisation. ExaModel ne propose pas explicitement un sous type de
Nonlinear.AbstractAutomaticDifferentiation
( normalement c'est le type demandé pour le backend en JuMP) . Ma question c'est : est-ce que ça revient à une comparaison Modèle-Modèle ou je devrais trouver une manipulation pour l'utiliser avec un modèle JuMP.