Artelys Knitro 16.0 : modélisez nativement les problèmes non linéaires, résolvez-les en parallèle

20 juillet 2026

Artelys a le plaisir d’annoncer la sortie de Knitro 16.0, une version majeure qui introduit deux fonctionnalités phares — un modeleur non linéaire natif et un solveur concurrent — ainsi que d’importantes améliorations de performance et de robustesse pour les problèmes d’optimisation non linéaire, mixte en nombres entiers et linéaire.

Modeleur non linéaire : modélisez nativement, sans callbacks 

Jusqu’à présent, la modélisation d’expressions non linéaires générales dans les API natives de Knitro nécessitait la mise en œuvre de callbacks d’évaluation : implémentation des dérivées, fourniture de la structure de la matrice; une tâche complexe, réservée aux experts ou déléguée à des couches de modélisation externes.

Avec Knitro 16.0, une nouvelle API de modélisation basée sur les expressions est disponible, permettant de construire directement des modèles non linéaires dans Knitro:

  • Arbres d’expressions intuitifs : définissez vos fonctions objectif et contraintes à l’aide d’opérateurs mathématiques naturels (opérations arithmétiques, puissances, exponentielles, logarithmes, fonctions trigonométriques et hyperboliques, etc.), avec la surcharge des opérateurs en Python qui offre une syntaxe légère et lisible.
  • Calcul automatique des dérivées : Knitro calcule nativement les dérivées de premier et de second ordre — plus besoin d’implémenter manuellement les gradients, Jacobiennes ou Hessiennes, ni de fournir la structure de la matrice.
  • Évaluations parallèles, déterministes et thread-safe : permettant d’exploiter pleinement les fonctionnalités parallèles de Knitro, telles que le multistart, les algorithmes mixtes en nombres entiers et la nouvelle option de résolution concurrente.
  • Détection avancée de structure : les sous-expressions linéaires et quadratiques sont automatiquement extraites du modèle non linéaire, permettant aux composants internes de Knitro (presolve, scaling, branch-and-bound) d’exploiter efficacement la structure du problème.

Exemple simple en Python :

import knitro

with knitro.Problem() as prob:

    x0 = prob.add_variable(lb=-1.5, ub=4.0)

    x1 = prob.add_variable(lb=-3.0, ub=3.0)

    prob.add_objective(prob.sin(x0 + x1) + (x0 – x1)**2)

Des performances en hausse sur les problèmes mixtes en nombres entiers

Knitro 16.0 améliore également l’efficacité et la robustesse des algorithmes existants :

 

  • De meilleures solutions plus rapidement sur les problèmes mixtes en nombres entiers : l’écart intégral primal par rapport aux meilleures solutions connues est réduit d’environ 25 % sur les problèmes MINLP convexes et de 30 % sur les problèmes de unit commitment hydroélectrique.
  • Améliorations du présolveur pour les problèmes mixtes en nombres entiers et quadratiques, contribuant à augmenter le nombre d’instances résolues sur nos jeux d’évaluation MINLP et MILP.

Solveur concurrent : une optimisation non linéaire plus rapide et plus robuste 

L’optimisation non linéaire est souvent difficile en pratique : non-convexité, contraintes dégénérées, convergence vers des points stationnaires non réalisables, d’autant plus qu’aucun paramétrage algorithmique ne fonctionne pour tous les problèmes à la fois.

Inspiré des approches concurrentes utilisées dans les solveurs LP et MIP, Knitro 16.0 introduit une nouvelle option de résolution concurrente pour les problèmes non linéaires :

  • Knitro exécute en parallèle plusieurs configurations algorithmiques, sélectionnées automatiquement en fonction des caractéristiques du problème, puis retourne la première solution optimale trouvée.
  • Cette approche améliore à la fois la robustesse, grâce à la diversité des configurations explorées et la rapidité, puisque la configuration la plus performante l’emporte.
  • La fonctionnalité s’active via une simple option (concurrent_solver=1) et une option déterministe permet également de garantir une reproductibilité complète des exécutions lorsque cela est nécessaire.

Les résultats observés sur nos benchmarks sont significatifs par rapport à Knitro 15.1 :

  • 100 % des instances résolues et des temps de calcul divisés par 2 sur notre benchmark pooling (problèmes QCQP non convexes appliqués notamment au raffinage pétrolier, aux mélanges industriels et au traitement des eaux usées).
  • 20 % plus rapide sur notre benchmark AC Optimal Power Flow, avec 99,9 % des cas du benchmark PGLib résolus à l’optimalité.
  • 60 % plus rapide sur les modèles quadratiques du benchmark QPLIB.

Combiné au nouveau modeleur non linéaire, dont les évaluations parallèles suppriment un important goulot d’étranglement, le solveur concurrent offre le meilleur niveau de performance jamais atteint par Knitro sur les problèmes non linéaires.

Disponibilité 

Le nouveau modeleur non linéaire est disponible dans les interfaces C, Python et AMPL de Knitro 16.0. Comme toujours, Knitro est disponible sous Windows, Linux et macOS (y compris sur architectures ARM) et l’interface Python peut être installée directement depuis PyPI (pip install knitro).

 

Modeleur non linéaire : modélisez nativement, sans callbacks 

Jusqu’à présent, la modélisation d’expressions non linéaires générales dans les API natives de Knitro nécessitait la mise en œuvre de callbacks d’évaluation : implémentation des dérivées, fourniture de la structure de la matrice; une tâche complexe, réservée aux experts ou déléguée à des couches de modélisation externes.

Avec Knitro 16.0, une nouvelle API de modélisation basée sur les expressions est disponible, permettant de construire directement des modèles non linéaires dans Knitro:

  • Arbres d’expressions intuitifs : définissez vos fonctions objectif et contraintes à l’aide d’opérateurs mathématiques naturels (opérations arithmétiques, puissances, exponentielles, logarithmes, fonctions trigonométriques et hyperboliques, etc.), avec la surcharge des opérateurs en Python qui offre une syntaxe légère et lisible.
  • Calcul automatique des dérivées : Knitro calcule nativement les dérivées de premier et de second ordre — plus besoin d’implémenter manuellement les gradients, Jacobiennes ou Hessiennes, ni de fournir la structure de la matrice.
  • Évaluations parallèles, déterministes et thread-safe : permettant d’exploiter pleinement les fonctionnalités parallèles de Knitro, telles que le multistart, les algorithmes mixtes en nombres entiers et la nouvelle option de résolution concurrente.
  • Détection avancée de structure : les sous-expressions linéaires et quadratiques sont automatiquement extraites du modèle non linéaire, permettant aux composants internes de Knitro (presolve, scaling, branch-and-bound) d’exploiter efficacement la structure du problème.

Exemple simple en Python :

import knitro

with knitro.Problem() as prob:

    x0 = prob.add_variable(lb=-1.5, ub=4.0)

    x1 = prob.add_variable(lb=-3.0, ub=3.0)

    prob.add_objective(prob.sin(x0 + x1) + (x0 – x1)**2)

Solveur concurrent : une optimisation non linéaire plus rapide et plus robuste 

L’optimisation non linéaire est souvent difficile en pratique : non-convexité, contraintes dégénérées, convergence vers des points stationnaires non réalisables, d’autant plus qu’aucun paramétrage algorithmique ne fonctionne pour tous les problèmes à la fois.

Inspiré des approches concurrentes utilisées dans les solveurs LP et MIP, Knitro 16.0 introduit une nouvelle option de résolution concurrente pour les problèmes non linéaires :

  • Knitro exécute en parallèle plusieurs configurations algorithmiques, sélectionnées automatiquement en fonction des caractéristiques du problème, puis retourne la première solution optimale trouvée.
  • Cette approche améliore à la fois la robustesse, grâce à la diversité des configurations explorées et la rapidité, puisque la configuration la plus performante l’emporte.
  • La fonctionnalité s’active via une simple option (concurrent_solver=1) et une option déterministe permet également de garantir une reproductibilité complète des exécutions lorsque cela est nécessaire.

Les résultats observés sur nos benchmarks sont significatifs par rapport à Knitro 15.1 :

  • 100 % des instances résolues et des temps de calcul divisés par 2 sur notre benchmark pooling (problèmes QCQP non convexes appliqués notamment au raffinage pétrolier, aux mélanges industriels et au traitement des eaux usées).
  • 20 % plus rapide sur notre benchmark AC Optimal Power Flow, avec 99,9 % des cas du benchmark PGLib résolus à l’optimalité.
  • 60 % plus rapide sur les modèles quadratiques du benchmark QPLIB.

Combiné au nouveau modeleur non linéaire, dont les évaluations parallèles suppriment un important goulot d’étranglement, le solveur concurrent offre le meilleur niveau de performance jamais atteint par Knitro sur les problèmes non linéaires.

Des performances en hausse sur les problèmes mixtes en nombres entiers

Knitro 16.0 améliore également l’efficacité et la robustesse des algorithmes existants :

 

  • De meilleures solutions plus rapidement sur les problèmes mixtes en nombres entiers : l’écart intégral primal par rapport aux meilleures solutions connues est réduit d’environ 25 % sur les problèmes MINLP convexes et de 30 % sur les problèmes de unit commitment hydroélectrique.
  • Améliorations du présolveur pour les problèmes mixtes en nombres entiers et quadratiques, contribuant à augmenter le nombre d’instances résolues sur nos jeux d’évaluation MINLP et MILP.

Disponibilité 

Le nouveau modeleur non linéaire est disponible dans les interfaces C, Python et AMPL de Knitro 16.0. Comme toujours, Knitro est disponible sous Windows, Linux et macOS (y compris sur architectures ARM) et l’interface Python peut être installée directement depuis PyPI (pip install knitro).

Nos ensembles de tests regroupent des bibliothèques académiques de référence (MINLPLib, QPLIB, PGLib, MIPLIB, etc.) ainsi que des problèmes issus d’applications clients dans les domaines des systèmes énergétiques, de la tarification, de l’optimisation de réseaux et des procédés industriels.

Pour en savoir plus sur Knitro 16.0 et ses capacités, visitez la documentation officielle ou consultez les notes de version détaillées.

Des exemples concrets utilisant différentes API sont également disponibles sur GitHub.

Essayez Knitro 16.0

 

Artelys Knitro 16.0 est maintenant disponible en téléchargement sur le site d’Artelys depuis votre espace client. Les utilisateurs peuvent découvrir les fonctionnalités du logiciel grâce à une version d’essai ou contacter l’équipe d’Artelys pour obtenir des informations sur les licences et les tarifs.

Cas d’application

 

Découvrez les cas d’utilisation qui transforment vos idées en réalités pratiques, en construisant un avenir où la technologie répond à des besoins réels de manière exceptionnelle avec Knitro.

Artelys Crystal HPC : Une plateforme de calcul haute performance intégrée et souveraine pour l’industrie

Artelys Crystal HPC : Une plateforme de calcul haute performance intégrée et souveraine pour l’industrie

— Les organisations qui exécutent des simulations complexes, des optimisations à grande échelle ou des calculs intensifs sur des données sensibles sont confrontées à un triple défi : sécuriser la puissance de calcul nécessaire à leurs ambitions, garantir la souveraineté des données et éviter des semaines de configuration avant d’obtenir les premiers résultats.

lire plus
Artelys ouvre ses bureaux en Suisse

Artelys ouvre ses bureaux en Suisse

— Artelys a le plaisir d’annoncer la création d’Artelys Switzerland, une nouvelle filiale basée à Sion. Cette expansion stratégique marque une étape importante dans la poursuite de la croissance de l’entreprise à l’internationale et témoigne de son engagement à accompagner au mieux ses clients sur le marché suisse et dans l’ensemble de la région DACH.

lire plus
Abonnez-vous à notre newsletter

(vous recevrez au maximum 2 mails par an)

Les données collectées seront exclusivement traitées par la société Artelys dans le but de vous tenir informé(e) des services et produits commercialisés par notre entreprise.

🛈

© ARTELYS • Tous droits réservés • Mentions légales

Pin It on Pinterest

Share This