Description
CPLEX Optimizer fournit des solveurs de programmation mathématique flexibles et hautes performances pour les problèmes de programmation linéaire, de programmation mixte en nombres entiers, de programmation par contraintes et de programmation à contraintes quadratiques. Ces solveurs incluent un algorithme parallèle distribué pour la programmation mixte en nombres entiers afin de tirer parti de plusieurs ordinateurs pour résoudre des problèmes difficiles.
Mise en place de l’environnement
- Chargement du module cplex
ml optimizer/cplex
ou
ml optimizer/cplex/12.8.0
- Version disponible : 22.1.1.0 (version limitée) et 12.8.0 (version académique)
Tutoriels
Accès au logiciel
- Chargement du module cplex
- Taper en ligne de commande
cplex
$ ml optimizer/cplex/22.1.1.0
$ cplex
Welcome to IBM(R) ILOG(R) CPLEX(R) Interactive Optimizer Community Edition 22.1.1.0
with Simplex, Mixed Integer & Barrier Optimizers
5725-A06 5725-A29 5724-Y48 5724-Y49 5724-Y54 5724-Y55 5655-Y21
Copyright IBM Corp. 1988, 2022. All Rights Reserved.
Type 'help' for a list of available commands.
Type 'help' followed by a command name for more
information on commands.
CPLEX> help
add add constraints to the problem
baropt solve using barrier algorithm
change change the problem
display display problem, solution, or parameter settings
enter enter a new problem
feasopt find relaxation to an infeasible problem
help provide information on CPLEX commands
mipopt solve a mixed integer program
netopt solve the problem using network method
optimize solve the problem
populate get additional solutions for a mixed integer program
primopt solve using the primal method
quit leave CPLEX
read read problem or advanced start information from a file
set set parameters
tools tools for analysis and debugging of models
tranopt solve using the dual method
write write problem or solution information to a file
xecute execute a command from the operating system
Enter enough characters to uniquely identify commands & options. Commands can be
entered partially (CPLEX will prompt you for further information) or as a whole.
CPLEX> quit
Lancement d’un job
Pour ce lancement de jobs, nous avons besoins de 2 fichier en entrée en plus du script de lancement :
- le fichier contenant le problème à résoudre
- un fichier de commandes
cplex
Description de l’exemple jouet
Minimiser – x1 – 2 x2 – 3 x3 avec les contraintes suivantes :
- x1 + x2 + x3 <= 20
- x1 – 3 x2 + x3 <= 30
- 3 x1 + 2 x2 – x3 >= 100
- x3 – 4 x4 <= 40
- 0 <= x1 <= 40
- x2 >= 10
- 0 <= x3 <= 100
- Toutes les autres variables sont >= 0.
Fichier example.mps contenant le problème
NAME
ROWS
N obj
L c1
L c2
G c3
L c4
COLUMNS
x1 obj -1 c1 -1
x1 c2 1 c3 3
x2 obj -2 c1 1
x2 c2 -3 c3 2
x3 obj -3 c1 1
x3 c2 1 c3 -1
x3 c4 1
x4 c4 -4
RHS
rhs c1 20 c2 30
rhs c3 100 c4 40
BOUNDS
UP bnd x1 40
LO bnd x2 10
UP bnd x3 100
ENDATA
Fichier de commande cplex
Les commandes suivantes demandent de trouver :
- une optimisation du problème décrit dans le fichier example.mps
- d’afficher le problème
- d’afficher la solution pour les 4 variables x1, x2, x3 et x4
- afficher la qualité de la solution
- puis de quitter
cplex
read example.mps
optimize
display problem all
display solution variables 1-4
display solution quality
quit
Script de lancement de job cplex
On suppose que le script s’appelle launch_cplex.sh
#!/bin/sh
#SBATCH --job-name=test_cplex
#SBATCH --partition=normal-amd # submission queue
#SBATCH --time=1:00:00 # 1-1 means one day and one hour
#SBATCH --mem=8G # T-tera, G-giga, M-mega
#SBATCH --cpus-per-task=1
#SBATCH --ntasks-per-node=1
#SBATCH --nodes=1
ml optimizer/cplex
cplex -f mycplexcommands.txt
Soumission du job
sbatch launch_cplex.sh
Recherche d’exemples
Voici une commande pour rechercher d’autres exemples jouets :
ml help optimizer/cplex