Je recherche une implémentation existante de la méthode simplex (méthode unique) pour résoudre un problème de programmation linéaire pour une raison quelconque. Pour ceux qui sont faibles et ne veulent pas lire les solveurs OSS (COIN-OR CLP, GLPK, etc.) qui ont été critiqués avec C / C ++ Notez qu'il s'agit d'une implémentation Python relativement crédible. Ce n'est pas une méthode simple de Nelder-Mead.
scipy.optimize.linprog https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.optimize.linprog.html scipy est une bibliothèque bien connue pour les calculs numériques Python. Récemment, l'implémentation de la méthode unitaire par Python a été ajoutée.
Les packages de calcul numérique dans le langage LL fournissent généralement des méthodes pour résoudre les problèmes d'optimisation, mais je pense que le contenu n'est souvent qu'une liaison d'un solveur existant. C'est bien d'avoir une implémentation pure Python. C'est une bibliothèque avec beaucoup d'utilisateurs, et il y a du code de test, donc quand il s'agit d'une implémentation pure dans le langage LL, je pense que c'est probablement à propos de cela.
cylp https://github.com/coin-or/CyLP Ce n'est pas une implémentation Python de la méthode simplex, Une bibliothèque qui vous permet de personnaliser des solveurs écrits en C ++ appelés CLP et CBC avec Python. La conception détaillée est décrite dans cet article.
Pour ceux qui veulent simplement mettre en œuvre la règle du pivot oléore, je pense qu'elle peut être utilisée à la fois pour la vitesse de calcul et la simplicité. Les règles de pivot peuvent être n'importe quoi, mais même si vous avez une fonction de rappel que vous souhaitez appeler pour chaque itération de la méthode unit, vous pouvez le faire avec cylp.
Si vous lisez autour de Implémentation des règles de Dantzig, vous comprendrez sûrement, PivotPythonBase
Vous pouvez exécuter la méthode simple de la règle de pivot oleore en implémentant certaines des interfaces de.
De plus, si vous regardez https://github.com/coin-or/CyLP/blob/master/cylp/py/pivots/, vous trouverez des implémentations de diverses règles de pivot, afin que vous puissiez étudier.
Au moment de ma confirmation, la transition vers la série Python 3 n'est pas encore terminée, mais j'arrive à la pull request, donc cette branche Si vous utilisez, vous pourrez peut-être utiliser cylp avec Python3.
Recommended Posts