PuLP, un modélisateur de problèmes de planification mathématique, utilise CBC-COIN comme solution par défaut, mais CBC-COIN a rencontré un problème qui a nécessité environ 15 heures de calcul, donc le solveur payé d'IBM. Je souhaite utiliser CPLEX. Je suis reconnaissant que les logiciels qui coûtent environ 27000 yens par mois pour les étudiants (ou dans un environnement académique) puissent être utilisés gratuitement ... Cependant, même si j'ai regardé certains sites où la procédure d'installation a été écrite, l'installation a pris beaucoup de temps car les informations sur le site étaient anciennes, donc je voudrais résumer la procédure d'installation cette fois. (Peut-être que cet article sera vu par les juniors lors du séminaire de l'année prochaine, je vais donc l'écrire aussi soigneusement que possible.) L'environnement est Windows 10 Home (version 64 bits), la version Python est 3.7.1 (ajoutée ici) et IBM ILOG CPLEX 12.10.0 est installé.
Tout d'abord, allez sur ici. Cliquez ensuite sur Get Student / Teacher Edition gratuitement (version anglaise). Ensuite, ILOG CPLEX Optimization Studio apparaîtra en bas à droite de la page indiquant Data Science, cliquez donc sur Registar ou connectez-vous pour accéder à cette ressource en dessous. Ensuite, il vous sera demandé de créer un compte, alors créez un compte en utilisant l'adresse e-mail émise par l'université. Après vous être connecté, la partie Registar ... de la page précédente deviendra "Download v12.10", alors cliquez dessus. Ensuite, je vais à la page intitulée Recherche par numéro de pièce, mais je ne comprends pas la partie supérieure, donc je n'entre rien et je fais défiler vers le bas de la page. Êtes-vous arrivé à la page de l'image ci-dessus? Ici, sélectionnez Tout n'est pas sélectionné, et celui qui convient à votre environnement PC est installé par le bas. Cette fois, il s'agit de la version 64 bits de Windows 10, c'est donc la deuxième en partant du haut. Si vous descendez plus bas, il vous sera demandé votre consentement, donc je suis d'accord avec je suis d'accord. Cliquez ensuite sur Télécharger maintenant et vous devriez voir l'écran ci-dessous. Cliquez sur installer / réinstaller Download Director Un écran comme celui-ci apparaîtra Cliquez sur Installer Download Director. IBM dans le monde ne peut pas endommager l'ordinateur! Cliquez sur Enregistrer avec une forte volonté. (Veuillez prendre la responsabilité de vos actions ...!) L'écran ne sera pas comme indiqué à l'étape 3, mais ce sera ???, mais si vous appuyez sur la fenêtre de fermeture, l'installation démarre (pour une raison quelconque).
Après cela, suivez les instructions à l'écran. Enfin, il vous sera demandé d'installer la dernière version de Visual Studio, alors téléchargez-la. Il semble que la dernière version de Java ait également été installée à un moment donné ... S'il y en a une ancienne avant d'installer la dernière version, un programme de désinstallation sera nécessaire, donc "Je veux utiliser CPLEX bientôt !!" Attendons sans être impatients ...
Enfin, tapez cplex à l'invite de commande (l'invite de commande est l'endroit où vous tapez les commandes directement dans votre PC, appuyez sur les touches Win + R en même temps, puis tapez cmd).
cmd.exe
Welcome to IBM(R) ILOG(R) CPLEX(R) Interactive Optimizer 12.10.0.0
with Simplex, Mixed Integer & Barrier Optimizers
Copyright IBM Corp. 1988, 2019. All Rights Reserved.
Type 'help' for a list of available commands.
Type 'help' followed by a command name for more
information on commands.
CPLEX>
Si cela devient, c'est un succès. Parfois, le PATH est en panne (j'ai arrêté mon PC, puis je l'ai rallumé et j'ai tapé cplex, où 'cplex' est une commande interne ou externe, un programme utilisable ou un fichier de commandes. Il n'est pas reconnu comme.), Et il devient ???.), Modifiez la variable d'environnement système et placez-la dans le PATH. Dans le cas par défaut, il doit être dans C: \ Program Files \ IBM \ ILOG \ CPLEX_Studio1210 \ cplex \ bin \ x64_win64.
Oh, sur l'invite de commande Tapez python,
>python
>>>import pulp
>>>pulp.pulpTestAll()
Entrez s'il vous plait.
>>> pulp.pulpTestAll()
Testing zero subtraction
Testing inconsistant lp solution
Testing continuous LP solution
Testing maximize continuous LP solution
Testing unbounded continuous LP solution
Testing Long Names
Testing repeated Names
Testing zero constraint
Testing zero objective
Testing LpVariable (not LpAffineExpression) objective
Testing Long lines in LP
Testing LpAffineExpression divide
Testing MIP solution
Testing MIP solution with floats in objective
Testing MIP relaxation
Testing feasibility problem (no objective)
Testing an infeasible problem
Testing an integer infeasible problem
Testing column based modelling
Testing dual variables and slacks reporting
Testing fractional constraints
Testing elastic constraints (no change)
Testing elastic constraints (freebound)
Testing elastic constraints (penalty unchanged)
Testing elastic constraints (penalty unbounded)
* Solver <class 'pulp.solvers.PULP_CBC_CMD'> passed.
Solver <class 'pulp.solvers.CPLEX_DLL'> unavailable
Testing zero subtraction
Testing inconsistant lp solution
Testing continuous LP solution
Testing maximize continuous LP solution
Testing unbounded continuous LP solution
Testing Long Names
Testing repeated Names
Testing zero constraint
Testing zero objective
Testing LpVariable (not LpAffineExpression) objective
Testing LpAffineExpression divide
Testing MIP solution
Testing MIP solution with floats in objective
Testing MIP relaxation
Testing feasibility problem (no objective)
Testing an infeasible problem
Testing an integer infeasible problem
Testing column based modelling
Testing column based modelling with empty constraints
Testing dual variables and slacks reporting
Testing fractional constraints
Testing elastic constraints (no change)
Testing elastic constraints (freebound)
Testing elastic constraints (penalty unchanged)
Testing elastic constraints (penalty unbounded)
* Solver <class 'pulp.solvers.CPLEX_CMD'> passed.
Solver <class 'pulp.solvers.CPLEX_PY'> unavailable
Solver <class 'pulp.solvers.COIN_CMD'> unavailable
Solver <class 'pulp.solvers.COINMP_DLL'> unavailable
Solver <class 'pulp.solvers.GLPK_CMD'> unavailable
Solver <class 'pulp.solvers.XPRESS'> unavailable
Solver <class 'pulp.solvers.GUROBI'> unavailable
Solver <class 'pulp.solvers.GUROBI_CMD'> unavailable
Solver <class 'pulp.solvers.PYGLPK'> unavailable
Solver <class 'pulp.solvers.YAPOSIB'> unavailable
>>>
Cependant, si la classe de solveur'pulp.solvers.CPLEX_CMD 'est transmise, CPLEX peut être sélectionné comme solveur dans pulp. Veuillez consulter ce document pour ce changement de solveur.
En supposant que les juniors du séminaire le verront plus tard, je mettrai un article de référence sur ce qu'est "passer le PATH". L'article de cette personne était très facile à comprendre! https://qiita.com/sta/items/63e1048025d1830d12fd
Je suis désolé s'il est déjà apparu, j'ai été surpris que CPLEX ait résolu le problème qui a pris 15 heures pour calculer avec COIN en moins d'une heure. Ayons une vie CPLEX amusante!
Recommended Posts