[PYTHON] [Version étudiante] Je n'avais pas beaucoup d'informations sur la procédure d'installation de CPLEX, alors je l'ai écrite.

introduction

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é.

Procédure d'installation

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. IBM Software Downloads - Google Chrome 2019_12_12 21_01_38.png Ê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. IBM Software Downloads - Google Chrome 2019_12_12 21_11_12.png Cliquez sur installer / réinstaller Download Director IBM Download Director のインストール - Google Chrome 2019_12_12 21_12_55.png Un écran comme celui-ci apparaîtra Cliquez sur Installer Download Director. IBM Download Director のインストール - Google Chrome 2019_12_12 21_13_09.png IBM dans le monde ne peut pas endommager l'ordinateur! Cliquez sur Enregistrer avec une forte volonté. (Veuillez prendre la responsabilité de vos actions ...!) IBM Download Director Setup 2019_12_12 21_14_26.png 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

en conclusion

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

[Version étudiante] Je n'avais pas beaucoup d'informations sur la procédure d'installation de CPLEX, alors je l'ai écrite.
Je n'ai pas compris le comportement d'argsort de numpy, donc je vais le résumer
Je n'ai pas compris le redimensionnement de TensorFlow, alors je l'ai résumé visuellement.
J'ai regardé les méta-informations de BigQuery et essayé de les utiliser
[Super basiques de Python] J'ai appris les bases des bases, donc je l'ai résumé brièvement.
Le cas où l'installation de pip est devenue plus facile avant que je ne le sache
À propos de l'environnement virtuel de Python version 3.7
Je ne connaissais pas les bases de Python
[Examen d'ingénieur d'information de base] J'ai écrit l'algorithme de la méthode de division mutuelle euclidienne en Python.
D'une manière ou d'une autre, le code que j'ai écrit a fonctionné et j'ai été impressionné, alors je vais le poster
Le calcul d'une question d'examen d'entrée était difficile à penser, alors j'ai laissé ça à python après tout