Comment choisir un entier solveur de programmation linéaire?
Je suis novice pour l'entier de programmation linéaire.
J'ai l'intention d'utiliser un entier solveur de programmation linéaire à résoudre mon problème d'optimisation combinatoire.
Je suis plus familier avec le C++/programmation orientée objet sur une IDE.
Maintenant, je suis à l'aide de NetBeans avec Cygwin pour écrire mes applications que la plupart du temps.
Puis-je vous demander si il est un outil facile à utiliser le solveur ILP pour moi?
Ou cela dépend du problème que je veux résoudre ? Je suis en train de faire certaines ressources de la cartographie de l'optimisation. S'il vous plaît laissez-moi savoir si tout complément d'information est nécessaire.
Merci beaucoup, Cassie.
Vous devez vous connecter pour publier un commentaire.
Si ce que vous voulez est linéaire mixed integer programming, alors je voudrais signaler des pièces de Monnaie OU (et en particulier pour le module de la SRC). C'est un logiciel Libre (discours)
Vous pouvez soit l'utiliser avec une langue spécifique, ou de l'utilisation de C++.
Utiliser C++ si vous avez des données nécessite beaucoup de prétraitement, ou si vous voulez mettre les mains dans le solveur (choix des points de pivot, génération de colonnes, l'ajout de coupes et ainsi de suite...).
Utilisation intégrée de la langue si vous voulez utiliser le solveur comme une boîte noire (vous êtes simplement intéressé par le résultat et le problème est facile ou classique assez pour être résolu, sans tordre).
Mais dans les balises de vous citer les algorithmes génétiques et les graphes algorithmes. Peut-être que vous devriez commencer par mieux defing votre problème...
Pour les graphes que j'aime beaucoup Boost::Graph
J'ai utilisé lp_solve ( http://lpsolve.sourceforge.net/5.5/ ) à quelques reprises avec succès. Il est mature, riche en fonctionnalités et est très bien documenté avec beaucoup de bons conseils si votre programmation linéaire compétences sont rouillés. L'entier de programmation linéaire n'est pas juste un add-on, mais est fortement souligné avec ce package.
Viens de remarquer que vous dites que vous êtes un "débutant" à ce. Bien, alors je recommande fortement ce paquet étant donné que la documentation est riche d'exemples et de douceur de tutoriels. D'autres paquets que j'ai essayé ont tendance à supposer beaucoup de l'utilisateur.
Pour les grands problèmes, vous pourriez regarder AMPL, qui est une optimisation interprète avec beaucoup de backend solveurs disponibles. Il s'exécute en tant que un processus séparé; C++ serait utilisé pour écrire les données d'entrée.
Alors vous pourriez essayer différentes state-of-the-art solveurs.
Regarder dans GLPK. Vient avec quelques exemples, et travaille avec un sous-ensemble de l'AMPL, même si à mon humble avis qui fonctionne le mieux quand vous vous en tenez à C/C++ pour le modèle de configuration. Copes avec de jolies gros modèles trop.
La Programmation Linéaire de Wikipedia couvre quelques algorithmes différents que vous pourriez faire quelques recherches pour voir ce qui fonctionnera le mieux pour vous. Aide ou avez-vous été vouloir quelque chose de plus spécifique?