CPLEX

      Commentaires fermés sur CPLEX

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

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

Documentation