IBM ILOG CP Optimizer Artelys Kalis Microsoft Solver Foundation Comet Choco Solver MINION Gecode



Documents pareils
Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique

Guide d installation JMap 5.0

Cours de Master Recherche

Service de lettre électronique sécurisée de bpost. Spécificités techniques

Environnements de développement (intégrés)

INSTALLATION CONFIGURATION D OWNCLOUD. La réponse informatique

Optimisation et Processus métier

Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG. EHRHARD Eric - Gestionnaire Parc Informatique

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Plateforme académique de partage de documents - owncloud

TECHNOLOGIE SOFTWARE DU FUTUR. Logiciel de gestion d entreprise pour le Web

Manuel logiciel client Java

1 Introduction et installation

Prise en compte des ressources dans les composants logiciels parallèles

Manuel d utilisation Logiciel (Communications Utility)

Configuration requise pour l utilisation de la plateforme EnlightKS Online Certification Management Services ET2.13 Juin 2011

INSTALLATION DE L AGENT CT EASY BACKUP LAN REV 1.0/

Vous pouvez à présent à reconfigurer votre messagerie en cliquant ici.

END OF SUPPORT. transtec Approche de la migration

Guide d installation de MySQL

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

Spécifications système. Démarrage de l application CertiBru-Res. Premier accès à l application à partir de cet ordinateur

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

vtiger CRM Pack de langue Manuel d instalation version Française 0.1

ArcGIS 10.1 for Server

Guide d installation de SugarCRM Open Source version 4.5.1

Programmation C. Apprendre à développer des programmes simples dans le langage C

Travail personnel sur ordinateur

Direction des Systèmes d'information

WINDOWS Remote Desktop & Application publishing facile!

Manuel d utilisation. Logiciel (Device Monitor) Pour les systèmes d imagerie numérique. Configuration requise Description générale

Tivoli Endpoint Manager Introduction IBM Corporation

TD/TP 1 Introduction au SDK d Android

Mise en place d un serveur DNS sous linux (Debian 6)

Grégoire de Lassence. Copyright 2006, SAS Institute Inc. All rights reserved.

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

Application de K-means à la définition du nombre de VM optimal dans un cloud

Vade mecum installation et configuration d une machine virtuelle V5.1.0

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

La place de SAS dans l'informatique décisionnelle

MailStore Server. La référence en matière d archivage d s

Vidyo : une maquette pour la visioconférence sur le poste de travail

Atelier individuel. Linux 101. Frédérick Lefebvre & Maxime Boissonneault frederick.lefebvre@calculquebec.ca U. Laval - Janv. 2014

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

CATALOGUE DES FORMATIONS LANGUES

Configuration système requise

Mac OS X en entreprise

Logiciel (Système d impression directe)

et de suivi de la corpulence des enfants

Bases Java - Eclipse / Netbeans

Sync-A-BOX et Duplicati. est une plateforme Cloud pour stocker et gérer vos données en ligne.

NAS 109 Utiliser le NAS avec Linux

II- Préparation du serveur et installation d OpenVpn :

Version Wraptor Laboratories. Installation de SpamWars 4.0 Édition Entreprise

ACCEDER A SA MESSAGERIE A DISTANCE

Travailler à l'ensimag avec son matériel personnel

Fiche Produit. Sauvegarde en ligne Kiwi Online

ACCÉDER A SA MESSAGERIE A DISTANCE

ECOLE POLYTECHNIQUE DSI. Utilisation des serveurs mandataires («proxy») avec les protocoles d usage courant

Les différentes méthodes pour se connecter

TP2 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

TP1. Outils Java Eléments de correction

Cyberclasse L'interface web pas à pas

Procédure d installation :

Prise en main d une Cyberclasse

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Délocaliser vos vidéos MEDIAplus

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Cours 1 : La compilation

VERSION 64 BITS DE SAS ET VOS FICHIERS MICROSOFT OFFICE 32-BITS

CATALOGUE DES OFFRES O2i INGÉNIERIE POUR LES PLATEFORMES ÉDITORIALES

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

EDITORIAL: Revente des produits U2 à Rocket Software

Gestion commerciale et administrative de l'entreprise Avec Microsoft Office 2010

E.N.T. Espace Numérique de Travail

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Les applications Internet

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Mise en œuvre des serveurs d application

MailStore Server 7 Caractéristiques techniques

ERP Service Negoce. Pré-requis CEGID Business version sur Plate-forme Windows. Mise à jour Novembre 2009

Gestion collaborative de documents

Atelier Le gestionnaire de fichier

Ethernet Industriel Réseaux Ethway Coupleur Ethernet sur Automates Programmables. Plan. Contexte

Fais ton site internet toi-même

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

TUTORIEL: INSTALLATION D'UN SERVEUR LOCAL SOUS WINDOWS 7 POUR APPINVENTOR version du 06/04/2013

Infrastructure Management

vtiger CRM Pack de langue Manuel d installation version Française ABOnline solutions. Tous droits réservés.

Mise à jour : Octobre 2011

CA ARCserve Family of Solutions Pricing and Licensing

Travailler à l'ensimag avec son matériel personnel

Microsoft Liste des Produits

Utilisation des ressources informatiques de l N7 à distance

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Transcription:

Lignes directrices Introduction à la Programmation par Contraintes TP 1. Présentation de l OPL Ruslan Sadykov INRIA Bordeaux Sud-Ouest 17 Novembre 2014 1 / 18 2 / 18 Logiciels disponibles pour résoudre des CSPs Payants IBM ILOG CP Optimizer, interfaces : C++, Java, IBM ILOG CPLEX Optimization Studio (OPL). Artelys Kalis, interfaces : C++, Java, Xpress-Mosel. Microsoft Solver Foundation, interfaces : CLS-compliant languages (C++, IronPython,...) Add-in Designer for Excel 2007. Comet (gratuit pour un usage académique), interface : un langage spécial (type C) Gratuits Choco Solver, interface : Java. MINION, interfaces : un fichier texte spécial, ESSENSE. Gecode, interface : C++. D autres sont mentionnés sur Wikipédia (article «Programmation par contraintes»). Exemple : affectation des fréquences Variables : F i fréquence affectée à l émetteur i. Variables additionnelles : S i = 0 si basse et 1 si haute. Contraintes : F i F j d ij, (i, j) ; all-different(f1,..., F 5 ). Contraintes additionnelles : element(s i, {0, 0, 0, 1, 1, 1, 1, F i ), i. gcc({s i i, {0, 1, 2, 3, 2, 3). T 1 3 T 5 T 2 T 4 T 3 3 3 / 18 4 / 18

Lignes directrices IBM ILOG CPLEX Optimization Studio Trial version : http ://www-01.ibm.com/software/integration/ optimization/cplex-cp-optimizer/ (Windows, Linux, Mac OS,...) 5 / 18 6 / 18 Déclaration des données et variables Le fichier avec les données /********************************************* * OPL 6.0.1 Model * File : frequencies.mod *********************************************/ using CP ; //!!!!! int nbfreqs =... ; int nbtrans =... ; range Freqs = 1..nbFreqs ; range Trans = 1..nbTrans ; int Diffs[Trans,Trans] =... ; int BasseHaute[Freqs] =... ; dvar int F[Trans] in Freqs ; dvar int S[Trans] in 0..1 ; /********************************************* * OPL 6.0.1 Data * File : frequencies.dat *********************************************/ nbfreqs = 7 ; nbtrans = 5 ; Diffs = [[0 3 0 0 2] [3 0 2 1 2] [0 2 0 3 1] [0 1 3 0 1] [2 2 1 1 0]] ; BasseHaute = [0 0 0 1 1 1 1] ; 7 / 18 8 / 18

Déclaration de la objective et des contraintes Trouver toutes les solutions minimize max(t in Trans) F[t] ; subject to { forall (ordered t1, t2 in Trans : Diffs[t1,t2] > 0) abs( F[t1] - F[t2] ) >= Diffs[t1,t2] ; alldifferent(f) ; forall (t in Trans) S[t] == element(bassehaute,f[t]) ; count(s,0) == 2 ; count(s,1) == 3 ; for (var t=1 ; t<=nbtrans ; t++) writeln("f["+t+"]="+f[t]) ; main { thisoplmodel.generate() ; cp.startnewsearch() ; var n=0 ; while (cp.next()) { n = n+1 ; write("solution -> ") ; writeln(n) ; for (var t=1 ; t<=thisoplmodel.nbtrans ; t++) writeln("\t F["+t+"]="+thisOplModel.F[t]) ; cp.endsearch() ; 9 / 18 10 / 18 Les contraintes existantes dans OPL Déclaration des heuristiques Arithmétiques (on peut utilisez min, max, count, abs, element). Logiques (&&,,!, =>,!=, ==). Explicites (allowedassignments, forbiddenassignments). Pour l ordonnancement (endbeforestart, endatstart, nooverlap,...) Specialisées (alldifferent, allmindistance, inverse, lex, pack) var fc = cp.factory ; var phase1 = fc.searchphase(f, fc.selectsmallest(fc.varindex(f)), fc.selectlargest(fc.value())) ; cp.setsearchphases(phase1) ; Évaluateurs des variables : varindex(dvar int[]) domainsize() domainmin() regretonmin() successrate() impact()... Évaluateurs des valeurs : value() valueimpact() valuesuccessrate() explicitvalueeval(int[],int[]) valueindex(int[]) 11 / 18 12 / 18

Paramétrage du solveur Utilisation de l OPL au CREMI var p = cp.param ; p.logperiod = 10000 ; p.searchtype = "DepthFirst" ; p.timelimit = 600 ; Les options : AllDiffInterenceLevel CountInferenceLevel ElementInferenceLevel BranchLimit TimeLimit LogVerbosity PropagationLog SearchType <number> <number>(in seconds) Quiet, Terse, Normal, Verbose Quiet, Terse, Normal, Verbose depthfirst, Restart, MultiPoint 1. Télécharger et desarchiver le modèle pour affectation des fréquences : www.math.u-bordeaux1.fr/~rsadykov/ teaching/mse3315c/tp/frequencies.zip 2. Ouvrir Terminal et connecter à un des serveur de calcul : ssh mcgonagall ou ssh trelawney 3. Executer la commande ou la mettre dans ~/.bashrc export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/ opt/local/cplex_studio/opl/bin/ x86-64_sles10_4.1 4. Aller dans le repertoire avec le modèle pour affectation des fréquences et exécuter oplrun frequencies.mod frequencies.dat 13 / 18 14 / 18 Utilisation d OPL au CREMI (2) Documentation se trouve à /opt/local/cplex_studio/doc/html/ en-us/documentation.html Lignes directrices ou pic.dhe.ibm.com/infocenter/ cosinfoc/v12r4/index.jsp Acces à l OPL de l extérieur du CREMI 1. Acceder à la machine d accueil du CREMI par ssh : ssh <login>@jaguar.emi.u-bordeaux1.fr 2. Connecter à un des serveurs de calcul : ssh mcgonagall ou ssh trelawney 15 / 18 16 / 18

Description du problème Une aciérie (steel mill) a un stock des plaques d acier (steel slabs) des tailles différentes. A partir de ces plaques, il faut produire les bandes d acier (steel coils) commandées de type différent. Chaque type des bandes d acier exige le processus de production différent encodé par une «couleur». Chaque commande (order) est caractérisé par le poids et le couleur de la bande d acier commandée. Chaque plaque d acier peut être utilisé pour la production des bandes d acier de deux couleurs différentes au plus. Le poids total des bandes d acier produites à partir d une même plaque d acier ne peut pas dépasser la capacité (ou la taille) de cette plaque. L objective est de minimiser la perte totale (la capacité inutilisée des plaques d acier). Informations pratiques Fichiers nécessaires se trouvent à Aide www.math.u-bordeaux1.fr/~rsadykov/ teaching/mse3315c/tp/stillmill.zip or : IDE and OPL > OPL > OPL keywords > or dexpr : IDE and OPL > OPL > OPL keywords > dexpr pack : IDE and OPL > OPL > OPL functions > pack 17 / 18 18 / 18