Artelys Knitro

langage de programmation

Artelys Knitro[1] est un solveur d'optimisation commercial spécialisé dans la résolution de problèmes d'optimisation non linéaire.

Artelys Knitro
Date de première version
Auteur
  • Richard Waltz
  • Jorge Nocedal
  • Todd Plantenga
  • Richard Byrd
Développeur Artelys
Dernière version 14.0 (le 30 janvier 2024, il y a 3 mois)
Écrit en C
Système d'exploitation Multiplateforme
Licence Logiciel commercial
Site web Artelys Knitro

KNITRO – (nom initial) pour "Nonlinear Interior point Trust Region Optimization" (le "K" est silencieux) – a été co-fondé par Richard Waltz, Jorge Nocedal, Todd Plantenga et Richard Byrd. La première version sortie en 2001 est née des travaux de recherche menés au sein de l'université de Northwestern (par le biais de Ziena Optimization LLC) et est désormais développé par Artelys.

Les problèmes d'optimisation doivent être passés au solveur sous leur forme mathématique et il est préférable de lui fournir un moyen de calculer les dérivées sous forme de matrice creuse. Knitro peut approximer les dérivées du problème mais les performances sont généralement accrues lorsque les dérivées exactes sont fournies. Il est également possible d'utiliser un langage de modélisation qui calculera automatiquement les dérivées et appellera Knitro depuis l’environnement de modélisation.

Classes de problèmes résolus par Artelys Knitro modifier

Knitro est spécialisé dans les problèmes d'optimisation non linéaire mais peut également résoudre :

  • Problèmes d’optimisation non linéaire généraux (NLP), notamment non convexes ;
  • Systèmes d'équations non linéaires ;
  • Problèmes linéaires (LP) ;
  • Problèmes quadratiques (QP/QCQP/SOCP), convexes et non convexes ;
  • Problèmes de moindre-carrés / régression linéaire et non linéaire ;
  • Problèmes avec contraintes de complémentarités (MPCC/MPEC) ;
  • Problèmes non linéaires en variables mixtes (MIP/MINLP) ;
  • Problèmes boîte noire (DFO) : type de problème pour lesquels les dérivées ne sont pas disponibles.

Algorithmes intégrés au solveur modifier

Artelys Knitro contraint une large gamme d'algorithmes d'optimisation.

Algorithmes dédiés à l'optimisation non linéaire (NLP) modifier

Knitro contient quatre algorithmes dédiés à l'optimisation non linéaire[2] dont deux reposent sur des méthodes de points intérieurs et les deux autres sur des méthodes de type Active set. Ces algorithmes ont des caractéristiques très différentes (et complémentaires) : les Méthodes de points intérieurs suivent un chemin à l'intérieur de l'espace réalisable alors que les méthodes active set ont tendance à rester à la frontière de l'espace réalisable. La présence d’algorithmes aux propriétés différentes permet de passer d'un algorithme à l'autre durant la résolution. Une option multistart permet de lancer les algorithmes depuis différents points de l'espace réalisable et ainsi essayer d'obtenir un minimum global.

Algorithmes dédiés à l'optimisation non linéaire en variables mixtes (MINLP) modifier

Artelys Knitro comprend également des algorithmes permettant de résoudre des problèmes d'optimisation (linéaire ou non) comportant des variables binaires et entières. Il inclut notamment trois algorithmes permettant de résoudre des problèmes en variables mixtes (MIP/MINLP) [3] :

Principales fonctionnalités modifier

Artelys Knitro est compatible avec une large gamme de langages de programmation et de modélisation[4] :

  • Programmation orientée objet avec C++, C#, Java and Python
  • Programmation matricielle avec Julia, C, Fortran, MATLAB, and R
  • Langages de modélisation: AIMMS, AMPL, GAMS, and MPL
  • Interface avec Excel par le biais de Frontline System

Artelys Knitro possède également plusieurs fonctionnalités majeures :

  • Nombreuses options disponibles[5] et un tuner automatique
  • Multistart (parallélisable) pour l'optimisation globale
  • Outils intégrés d'approximation et de vérification des dérivées
  • Présolveur intégré

Plateformes supportées modifier

Artelys Knitro est disponible sur les plateformes suivantes :

  • Windows 64
  • Linux 64
  • MacOS 64
  • Les processeurs ARM pour l'optimisation embarquée[6]

Notes et références modifier

Annexes modifier

Bibliographie modifier

Liens externes modifier