Plans Coupants et Branch-and-bound
|
|
- Salomé Sylvain
- il y a 8 ans
- Total affichages :
Transcription
1 Plans Coupants et Branch-and-bound Pierre Bonami Optimisation Combinatoire, Masters II, ID et IF 18 décembre 2012
2 2 idées algorithmiques On considère un problème en nombres entiers z PLM = min{c T x : Ax b, x 0, x j Z, j = 1,...,p}. (PLM)
3 2 idées algorithmiques On considère un problème en nombres entiers z PLM = min{c T x : Ax b, x 0, x j Z, j = 1,...,p}. (PLM) x = (6, 1 2 ) Soit x l optimum de la relaxation continue z PL = min{c T x : Ax b, x 0}. (PL) 1. Si, j = 1,...,p, x j Z, x résoud (PLM) et z PL = z PLM. 2. Si on connait une solution ˆx de (PLM) de cout ẑ z PL, ˆx est optimale.
4 Branchement Si 1. et 2. ne sont pas vérifiés, ĵ {1,...,p} tel que x j Z). On crée deux nouveaux problèmes, où on ajoute respectivement les contraintes xĵ xĵ et xĵ xĵ x = (6, 1 2 )
5 Branchement Si 1. et 2. ne sont pas vérifiés, ĵ {1,...,p} tel que x j Z). On crée deux nouveaux problèmes, où on ajoute respectivement les contraintes xĵ xĵ et xĵ xĵ x 2 1 x = (6, 1 2 ) x 2 0
6 Branchement Si 1. et 2. ne sont pas vérifiés, ĵ {1,...,p} tel que x j Z). On crée deux nouveaux problèmes, où on ajoute respectivement les contraintes xĵ xĵ et xĵ xĵ x 2 1 x = (6, 1 2 ) x 2 0 Nécessairement, l optimum de (PLM) est dans un des deux sous-problèmes. On applique récursivement les règles 1. et 2.
7 Plans coupants Soit X = {Ax b, x 0, x j Z, j = 1,...,p}. Comme x minimize la relaxation continue et x X, on a x conv(x) (x est une solution de base de (PL)). Th. de Séparation si P est convexe et ˆx P, hyperplan α T x = β tel que α T x β x P et α Tˆx β. x = (6, 1 2 )
8 Plans coupants Soit X = {Ax b, x 0, x j Z, j = 1,...,p}. Comme x minimize la relaxation continue et x X, on a x conv(x) (x est une solution de base de (PL)). Th. de Séparation si P est convexe et ˆx P, hyperplan α T x = β tel que α T x β x P et α Tˆx β. x = (6, 1 2 ) 1. Problème de séparation : Trouver α T x = β séparant X et ˆx. 2. Ajouter α T x β à (PL) et répéter les étapes (re-résoudre PL, vérifier 1. et 2.,...).
9 Plans coupants Soit X = {Ax b, x 0, x j Z, j = 1,...,p}. Comme x minimize la relaxation continue et x X, on a x conv(x) (x est une solution de base de (PL)). Th. de Séparation si P est convexe et ˆx P, hyperplan α T x = β tel que α T x β x P et α Tˆx β. x = (6, 1 2 ) 1. Problème de séparation : Trouver α T x = β séparant X et ˆx. 2. Ajouter α T x β à (PL) et répéter les étapes (re-résoudre PL, vérifier 1. et 2.,...).
10 Setup pour branch-and-bound Pour simplifier, on considère le problème en variables 0-1 (la généralisation aux variables entières est évidente) z PLM 01 = min cx Ax b x 0 x i {0,1} i = 1,...,n (PLM-01) Pour sous ensembles de variables F 0, F 1 disjoints donnés. On définit LP(F 0,F 1 ) : z LP(F0,F 1 ) = min cx Ax b x 0 (LP(F 0,F 1 )) x i = 0, i F 0, x i = 1, i F 1
11 Algorithme branch-and-bound Initialisation. L {(, )}. ub =. x NULL. Fin? Si L =, la solution x est optimale. Selectionner un noeud. Choisir un problème N i = (F 0,F 1 ) dans L. Evaluer. Résoudre LP(F 0,F 1 ). Si le problème n est pas réalisable aller en 1, sinon soit ˆx i sa solution. Élaguer. Si cˆx i ub, aller en 1. Si ˆx i est entier : ub cˆx i, x ˆx i, enlever de L tous les problèmes avec cˆx j ub puis aller en 1. Sinon aller en 5. Diviser Choisir j tel que ˆx i j Z, ajouter à L les deux sous problème (F O {j},f 1 ) et (F O,F 1 {j}). Aller en 1.
12 Exemple max 9x 1 +5x 2 x 1 6 4x 1 +9x 2 35 x 1 3x 2 1 3x 1 +2x 2 19 x Z 2 +
13 Exemple max 9x 1 +5x 2 x 1 6 4x 1 +9x 2 35 x 1 3x 2 1 3x 1 +2x 2 19 x Z 2 +
14 Exemple max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 lb = 56,5 x 2 Z x Z 2 + ub = x = (6, 1 2 )
15 Exemple max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 lb = 56,5 x 2 Z x 2 0 x 2 1 x Z 2 + ub = x 2 1 x 2 0
16 Exemple lb = 56,5 max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x Z 2 + x 2 0 x 2 1 lb = 56 x 1 Z ub = x = ( 17 3,1)
17 Exemple lb = 56,5 max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x 2 0 x 2 1 lb = 56 x 1 Z x Z 2 + x 1 5 x 1 6 ub = x 1 5 x 1 6
18 Exemple lb = 56,5 max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x 2 0 x 2 1 lb = 56 x Z 2 + x 1 5 x 1 6 ub = lb = x 2 Z x = (5, 13 9 )
19 Exemple lb = 56,5 max 9x 1 +5x 2 x 1 6 x 2 0 x 2 1 x 1 3x 2 1 3x 1 +2x 2 19 lb = 56 x Z 2 + x 1 5 x 1 6 ub = lb = x 2 Z x 2 2 x 2 1 x 2 2 x 2 1
20 Exemple lb = 56,5 max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x Z 2 + x 2 0 x 2 1 x 1 5 lb = 56 x 1 6 ub = 51 lb = x = (5,1) x 2 1 x 2 2 lb = 51 x Z n
21 Exemple max 9x 1 +5x 2 x 1 6 x 2 0 x 2 1 x 1 3x 2 1 3x 1 +2x 2 19 lb = 56 x Z 2 + x 1 5 x 1 6 ub = 51 lb = x 2 2 x 2 1 x 2 2 x 1 5 lb = 51 x Z n lb =
22 Exemple max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x Z 2 + x 2 0 x 2 1 x 1 5 lb = 56 x 1 6 ub = 51 lb = lb = x 1 6 x 2 1 x 2 1 x 2 2 lb = 51 x Z n
23 Exemple max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x Z 2 + x 2 0 x 2 1 x 1 5 lb = 56 x 1 6 ub = 51 lb = x 2 0 x 2 1 x 2 2 lb = 51 x Z n
24 Exemple max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x 2 0 lb = 54 x Z n x 2 1 lb = 56 x Z 2 + ub = 54 x 1 5 lb = x 1 6 x 2 1 x 2 2 x = (6,0) x 2 0 lb = 51 x Z n
25 Rendre le branch-and-bound efficace L algorithme a un temps de calcul exponentiel. En pratique l algorithme peut être rendu relativement efficace grâce à un certain nombre de choix : Avoir une bonne formulation. Trouver des solutions réalisables de manière heuristique (tabou, local search,...) pour faire baisser la borne supérieure rapidement. Bien Choisir la variable de branchement. Bien choisir l ordre dans lequel les sous problèmes sont explorés. Pour faire tous ces choix, aucune garantie théorique valable ne peut être donnée en générale... Raisonnement heuristique : essayer d avoir les meilleures bornes de manière à élaguer le plus tôt possible.
26 Parties de l algorithmes pouvant être changées 0. Initialisation. L {(, )}. C =, ub =. x NULL. 1. Fin? Si L =, la solution x est optimale. 2. Selectionner un noeud. Choisir un problème N i = (F 0,F 1 ) dans L. 3. Evaluer. Résoudre LP(C,F 0,F 1 ). Si le problème n est pas réalisable aller en 1, sinon soit ˆx i sa solution. 4. Élaguer. Si cˆx i ub, aller en 1. Si ˆx i est entier : ub cˆx i, enlever de L tous les problèmes avec cˆx j ub puis aller en 1. Sinon aller en Diviser Choisir j tel que ˆx i j Z, ajouter à L les deux sous problème (F O {j},f 1 ) et (F O,F 1 {j}). Aller en 1.
27 Exemple bis (en explorant la branche gauche d abord) max 9x 1 +5x 2 x 1 6 4x 1 +9x 2 35 x 1 3x 2 1 3x 1 +2x 2 19 x Z 2 +
28 Exemple bis (en explorant la branche gauche d abord) max 9x 1 +5x 2 x 1 6 4x 1 +9x 2 35 x 1 3x 2 1 3x 1 +2x 2 19 x Z 2 +
29 Exemple bis (en explorant la branche gauche d abord) max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x Z 2 + lb = 56,5 x 2 Z ub = x = (6, 1 2 )
30 Exemple bis (en explorant la branche gauche d abord) max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x Z 2 + lb = 56,5 x 2 Z x 2 0 x 2 1 ub = x 2 1 x 2 1
31 Exemple bis (en explorant la branche gauche d abord) lb = 56,5 max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x 2 0 x 2 1 lb = 54 x Z n x Z 2 + ub = 54 x = (6,0)
32 Exemple bis (en explorant la branche gauche d abord) lb = 56,5 max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x Z 2 + x 2 0 lb = 54 x Z n x 2 1 lb = 56 x 1 Z ub = 54
33 Exemple bis (en explorant la branche gauche d abord) lb = 56,5 max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x Z 2 + x 2 0 lb = 54 x Z n x 2 1 lb = 56 x 1 Z ub = 54 x 1 5 x 1 6
34 Exemple bis (en explorant la branche gauche d abord) lb = 56,5 max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x 2 0 lb = 54 x Z n x 2 1 lb = 56 x Z 2 + x 1 5 x 1 6 ub = 54
35 Exemple bis (en explorant la branche gauche d abord) lb = 56,5 max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x 2 0 lb = 54 x Z n x 2 1 lb = 56 x Z 2 + ub = 54 x 1 5 x 1 6 lb =
36 Exemple bis (en explorant la branche gauche d abord) max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x 2 0 lb = 54 x Z n x 2 1 lb = 56 x Z 2 + ub = 54 x 1 5 x 1 6 lb =
37 Exemple bis (en explorant la branche gauche d abord) max 9x 1 +5x 2 x 1 6 x 1 3x 2 1 3x 1 +2x 2 19 x Z 2 + ub = 54 x 2 0 lb = 54 x Z n x 2 1 x 1 5 lb = 56 x 1 6 lb =
38 Choisir un problème Le but est à la fois de trouver rapidement des bonnes solutions (pour faciliter l élaguage) et de ne pas explorer des nœuds de coût trop mauvais. Profondeur d abord : minimise l espace mémoire, mais peut être très lent si une bonne solution n est pas trouvée vite. En choissant le nœud qui donne la meilleure borne (best-bound) : minimise le nombre de nœud, mais peut demander beaucoup d espace mémoire. Une bonne approche est de combiner les deux : on plonge dans l arbre jusqu à une feuille et on remonte au nœud qui donne la meilleure borne.
39 Choix de la variable de branchement Le but est de choisir la variable qui donnera le plus petit arbre. Soit ˆx i la solution du nœud. On note f j = ˆx j i ˆxi j la partie fractionnaire de cette solution. 1. Choisir la variable la plus fractionnaire : ĵ maximisant : min{f j,1 f j } (pas très bon). 2. Pseudo-coûts. 3. Strong branching.
40 Pseudo-Coûts Idée Au cours de la recherche, on va brancher plusieurs fois sur la même variables. Collectons des statistiques sur l effet de brancher sur chaque variable, au fur et à mesure de l algorithme. À chaque nœud utilisons ces statistiques pour faire le choix. Implémentation ψ + j /ψ j changement moyen de l objectif quand on branche sur la variable j à droite ou à gauce. Après chaque branchement on met à jour ψ + j ou ψ j. A chaque nœud on utilise ψ + j et ψ j pour prédire le changement : ψ j = min{f i j ψ i,(1 f i j )ψ + j }+2max{f i j ψ i,(1 f i j )ψ + j }
41 Strong-branching À chaque nœud essayons plusieurs candidats en simulant le branchement :
42 Strong-branching À chaque nœud essayons plusieurs candidats en simulant le branchement : x 1 x 1 x 1 x 1 x 1
43 Strong-branching À chaque nœud essayons plusieurs candidats en simulant le branchement : x 1,x 2,... x 2 x 2 x 2 x 2
44 Strong-branching À chaque nœud essayons plusieurs candidats en simulant le branchement : x 1,x 2,... x i x i x i x i Si pour un j les deux descendants sont irréalisables : élaguage.
45 Strong-branching À chaque nœud essayons plusieurs candidats en simulant le branchement : x 1,x 2,... x i x i x i x i Si pour un j les deux descendants sont irréalisables : élaguage. Si pour un j une des deux descendants est irréalisable fixe la variable.
46 Strong-branching À chaque nœud essayons plusieurs candidats en simulant le branchement : x 1,x 2,... x i x i x i x i Si pour un j les deux descendants sont irréalisables : élaguage. Si pour un j une des deux descendants est irréalisable fixe la variable. Choisis la variable j avec deux descendants réalisables et le meilleur potentiel.
47 Peut être combiné avec les pseudo-coûts On fait strong-branching η fois pour chaque variable ensuite on utilise les pseudo-coûts. Strong-branching À chaque nœud essayons plusieurs candidats en simulant le branchement : x 1,x 2,... x i x i x i x i Si pour un j les deux descendants sont irréalisables : élaguage. Si pour un j une des deux descendants est irréalisable fixe la variable. Choisis la variable j avec deux descendants réalisables et le meilleur potentiel.
48 Algorithme de Plans Coupants PLNE Soit P =: {x R n + : Ax b} et X := P {x : x i Z, i = 1,...,p}. On considère le problème : min c T x x X 0. Initialisation. C R \. 1. Relaxation Résoudre min{c T x : x P C}. Soit x la solution. Aller en Fin? Si x i Z, i = 1...,p, FIN, sinon Aller en Séparation Trouver α,β tel que α T x < β et α T x β pour tout x X. C {α T x β}. Aller en 1.
49 Branch-and-cut Combinaison de l algorithme de plans coupants et du branch-and-bound. Dans la boucle de traitement des nœuds, on insère la possibilité de renforcer la formulation avec des coupes.
50 0. Initialisation. L {(, )}. C =, ub =. x NULL. 1. Fin? Si L =, la solution x est optimale. 2. Selectionner un noeud. Choisir un problème N i = (F 0,F 1 ) dans L. 3. Evaluer. Résoudre LP(C,F 0,F 1 ). Si le problème n est pas réalisable aller en 1, sinon soit ˆx i sa solution. 4. Élaguer. Si cˆx i ub, aller en 1. Si ˆx i est entier : ub cˆx i, enlever de L tous les problèmes avec cˆx j ub puis aller en 1. Sinon aller en Couper ou Diviser? Choisir soit de générer des coupes soit de diviser, aller en 6 ou 7 selon le choix. 6. Couper Résoudre le problème de séparation pour ˆx i de manière à générer une ou plusieurs coupes. Aller en Diviser Choisir j tel que ˆx i j Z, ajouter à L les deux sous problème (F O {j},f 1 ) et (F O,F 1 {j}). Aller en 1.
51 Deuxième partie II Usage d un solveur de PLNE : GLPK
52 Solveurs de PLNE Plusieurs logiciels proposent des implémentations de l algorithme de branch-and-cut pour la PLNE. Parmi les meilleurs 1. IBM CPLEX, Commercial, 2. FICO XPRESS, Commercial, 3. GuRoBi, Commercial, 4. SCIP, Académique, gratuits pour les universités, 5. COIN-OR Cbc, Open source GLPK est un solveur open-source (GPL) un peu moins évolué mais dont les interfaces sont similaires aux principaux solveurs. Interfaces Différentes interfaces vers les solveurs : Fichiers textes : formats MPS et LP. Modeleurs : pour prototyper rapidement un modèle. Languages de programmation (C et C++) : plus rapide et permet d adapter l algorithme à une application.
53 Interfaces des solveurs solveur C C++ 1 CLI 2 Python Modeleurs CPLEX x x x x Ampl, Aims, OPL, GAMS XPRESS x x 3 x - Mosel, GAMS GuRoBi x x Aims, Ampl, GAMS SCIP x x - Zimpl Cbc x x - GnuMP, Ampl, GAMS Glpk x x - GnuMp 1. Aussi Java et ṄET 2. Command Line Interface : ligne de commande 3. Aussi Java et ṄET 4..NET
54 Glpk Fait partie du projet GNU. Développé en Russie par Andrew Makhorin (Moscow Aviation Institute). Code source en C. Implémente une méthode de Simplexe, un branch-and-cut et un language de modélisation. Disponible dans la plupart des distributions linux. Un package est disponible pour Windows. Sous MacOS X, disponible dans MacPorts. Code propre et bien documenté.
55 Modélisation avec GnuMP Permet le prototypage rapide d un modèle. Le modèle est dans un fichier.mod Les données dans un fichier.dat Le language de moélisation est basé sur la notion d ensembles. Les modèles peuvent ensuite être résolu avec le programme glpsol. Exemple pour le problème de localisation d entrepots : avec les fichiers... glpsol -m UFL.mod -d UFL.dat
56 UFL.mod param n;#dépots param m;#clients set N:=1..n;#dépots set M:=1..m;#clients param f{j in N}; param c{i in M, j in N}; var x{i in M, j in N} >=0; var y{j in N} binary; minimize cost: sum{i in M, j in N} c[i,j] * x[i,j] + sum{j in N} f[j] * y[j]; s.t. affectation{i in M} : sum{j in N} x[i,j] = 1; cout_fixe{i in M, j in N} : x[i,j] <= y[j]; end
57 UFL.dat param n := 60;#dépots param m := 100; #clients param: f := ; param: c := ; end;
58 API C pour GLPK Les fonctions sont dans le fichier glpk.h (à inclure) Toutes les fonctions commencent par le préfixe glp. Principale difficulté : Les tableaux sont numérotés à partir de 1.
59 Initialization La principale structure de données glp prob. Création d un problème : glp_prob * glp_create_prob(); Nommer le problème : glp_set_prob_name(glp_prob lp*,const char * nom); Nommer l objectif : glp_set_obj_name(glp_prob*lp, const char * nom); Choix de la direction d optimisation (sens = GLP MIN/GLP MAX) glp_set_obj_dir(glp_prob *lp,int sens); Spécification du nombre de contraintes : glp_add_rows(glp_prob *lp, int n_rows); Spécification du nombre de variables : glp_add_cols(glp_prob *lp, int n_cols); Libération de la mémoire : glp_delete_prob(glp_prob *lp);
60 Spécification des variables Nom de la variable (j 1) : glp_set_col_name(glp_prob *lp, int j, const char *nom); Spécifie les bornes : glp_set_col_bnds(glp_prob *lp, int j, int type, double inf, double sup); où type est GLP LO variable avec borne inf seulement, GLP UP var. avec une borne sup, GLP DB bornes inf et sup, GLP FR non bornée. Spécifie le coût glp_set_obj_coef(glp_prob *lp, int j, double c); Type de la variable glp_set_col_kind(glp_prob *lp, int j, int type); (où type est GLP CV pour continue, GLP IV pour entière, et GLP BV pour binaire)
61 Écriture des contraintes Pour écrire la contrainte i du problème de la forme ax{,,=}b (on compte i à partir de 1). Spécification du nom de la contrainte : glp_set_row_name(glp_prob *lp, int i, const char * name); Spécification des bornes : glp_set_row_bnds(glp_prob *lp, int i, int sense, double b, double b); 1. GLP FX est pour une contrainte ax = b. 2. GLP UP pour une contrainte ax b. 3. GLP LO pour une contrainte ax b. Spécification du membre de gauche. On stocke les indices non-nuls dans le tableau row idx et les valeurs dans row val : glp_set_mat_row(glp_prob *lp, int i, int n, int [] row_idx, double [] row_val);
62 Exemple d écriture d une contrainte Pour écrire la contrainte 2x 1 +10x 4 +5x 10 1 : row idx = n/u row val = n/u glp_set_row_bnds(lp, i, GLP_LO, 1, 1); glp_set_mat_row(lp, i, 3, row_idx, row_val); 5. l élément 0 du tableau n est pas utilisé
63 Optimiser, récupérer les résultats Ecrit le problème dans un fichier LP glp_write_lp(glp_prob *lp, NULL, const char * nom); Résoud la relaxation continue glp_simplex(glp_prob *lp, NULL); Initializations des paramètres pour la résolution en nombres entiers glp_iocp param; glp_init_iocp(¶m); Résolution d un PLM glp_intopt(glp_prob *lp, glp_iocp * param); Réecupération de la valeur objective du PLM double glp_mip_obj_val(glp_prob *lp); Récupération de la valeur d une variable double glp_mip_col_val(glp_prob *lp, int j);
64 Exemple : UFL Écriture d un problème. Optimisation Résultats On considère la version avec demandes non-unitaires du problème de localisation d entrepots (formulation faible) : n m n min c ij x ij + y j f j j=1 i=1 tel que n x ij = d i j=1 m m x ij = ( d i )y j i=1 y j {0,1} x ij [0,d i ] i=1 j=1 i = 1,...,m j = 1,...,n j = 1,...,n i = 1,...,m,j = 1,...,n.
65 Troisième partie III Fonctionnalités avancées de GLPK
66 Fonctions callback GLPK implémente un algorithme de branch-and-cut pour la programmation en nombres entiers. Une implémentation de coupes de Gomory est incluse. L utilisateur peut ajouter des méthodes supplémentaires adaptées à son application pour améliorer l efficacité du solveur. Pour ce faire, le mécanisme adopté est celui d une fonction callback. La fonction callback doit être écrite par l utilisateur est sera appelée par GLPK pendant l optimisation dans plusieurs endroit du branch-and-cut.
67 0. Initialisation. L {(, )}. C =, ub =. x NULL. 1. Fin? Si L =, la solution x est optimale. 2. Selectionner un noeud. Choisir un problème N i = (F 0,F 1 ) dans L. 3. Evaluer. Résoudre LP(C,F 0,F 1 ). Si le problème n est pas réalisable aller en 1, sinon soit ˆx i sa solution. 4. Élaguer. Si cˆx i ub, aller en 1. Si ˆx i est entier : ub cˆx i, enlever de L tous les problèmes avec cˆx j ub puis aller en 1. Sinon aller en Couper ou Diviser? Choisir soit de générer des coupes soit de diviser, aller en 6 ou 7 selon le choix. 6. Couper Résoudre le problème de séparation pour ˆx i de manière à générer une ou plusieurs coupes. Aller en Heuristique Essayer de trouver une solution réalisable de manière heuristique. 8. Diviser Choisir j tel que ˆx j i. Créer sous-problèmes, aller en 1.
68 Définition de la fonction callback La fonction callback doit être définie comme ayant deux arguments : ma_fonction(glp_tree * tree, void * info); glp tree est une structure GLPK stockant les informations sur l optimisation. info peut-être utilisé par l utilisateur pour passer des données externes. Le nom de la fonction callback doit ensuite être donnée à GLPK dans le champ cb func de la structure glp iocp. On peut passer les données externes dans cb info.
69 Exemple On définit une calback : generateur(glp_tree * tree, void * info); On crée une instance de la structure glp iocp à laquelle on passe le nom de la fonction : glp_prob * lp = glp_create_prob(); glp_iocp param; glp_init_iocp(¶m); param.cb_func = generateur; /* eventuellement*/ parma.cb_info = mes_donnees; Pour optimiser le problème, on appelle la fonction int opt avec lp et param comme paramètres : glp_intopt(lp, ¶m);
70 Routines de bases pouvant être appelées dans la callback int ios reason(glp tree *) : Indique l endroit d où la callback a été appelée en retournant : GLP ISELECT selection de sous-problème; GLP IPREPRO preprocessing; GLP IHEUR heuristique; GLP ICUTGEN génération de coupe; GLP IBRANCH variable de branchement; glp prob *glp ios get prob(glp tree *tree) : retourne le sous-problème (programme linéaire en cours de traitement). Au travers du pointeur retourné, on peut accéder aux données du problème, la solution courante,...
71 Exemple On veut faire un générateur de coupe. void generateur(glp_tree * tree, void * info){ int reason = glp_ios_reason(tree); if(reason!= GLP_ICUTGEN)/* quitte si autre que icutgen*/ return; glp_prob * prob = glp_ios_get_prob(tree); int n = glp_get_num_cols(prob);/*nombre de variables*/ int m = glp_get_num_rows(prob);/*nombre de contraintes*/... return; }
72 Principales Routines spécifique Si GLP ISELECT, spécifie à GLPK le prochain problème comme celui de numéro p : void glp_ios_select_node(glp_tree *tree, int p); Si GLP IHEUR, spécifie à GLPK une nouvelle solution entière x : int glp_ios_heur_sol(glp_tree *tree, const double x[]); Si GLP IBRANCH : int glp_ios_can_branch(glp_tree *tree, int j); indique on peut brancher sur la variable j (elle n est pas fixée). void glp_ios_branch_upon(glp_tree *tree, int j, int sel); Spécifie à GLPK de brancher sur la variable j et d explorer en premier le nœud de gauche (sel = GLP DN BRNCH), de droite (sel = GLP UP BRNCH), de choisir lui même (sel = GLP NO BRNCH).
73 Routines spécifique (suite) Si GLP ICUTGEN : int glp_ios_add_row(glp_tree *tree, const char *name, int klass, int flags, int len, const int ind[], const double val[], int type, double rhs); Ajoute une coupe. name donne un nom à la coupe (peut être NULL. klass : un nombre entre 101 et 200. flags : non utilisé. len : nombre d éléments non-nuls dans la contrainte. ind[] : indices des éléments non-nuls. val[] : valeurs des éléments non-nuls. type : GLP LO si la contrainte est, GLP UP si la contrainte est. rhs : membre de droite.
74 Exemple de génération de coupe Génère l inegalité x i +x j +x k 1 ind[1] = i, val[1] = 1.0; ind[2] = j, val[2] = 1.0; ind[3] = k, val[3] = 1.0; glp_ios_add_row(tree, NULL, 101, 0, 3, ind, val, GLP_UP, 1.0);
75 Exemple : UFL Ajout des coupes x ij d i y j pour tout i = 1,...,m, j = 1,...,n.
Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/
Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation
Plus en détailLa programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique
La programmation linéaire : une introduction Qu est-ce qu un programme linéaire? Qu est-ce qu un programme linéaire? Exemples : allocation de ressources problème de recouvrement Hypothèses de la programmation
Plus en détailProgrammation linéaire
1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit
Plus en détailLes structures de données. Rajae El Ouazzani
Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l
Plus en détailTravaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
Plus en détailCours de Master Recherche
Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction
Plus en détailProgrammation Linéaire - Cours 1
Programmation Linéaire - Cours 1 P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 265 Ouvrages de référence V. Chvátal - Linear Programming, W.H.Freeman, New York, 1983.
Plus en détailLes arbres binaires de recherche
Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s
Plus en détailPlan du cours 2014-2015. Cours théoriques. 29 septembre 2014
numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour
Plus en détailInfo0804. Cours 6. Optimisation combinatoire : Applications et compléments
Recherche Opérationnelle Optimisation combinatoire : Applications et compléments Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 17 février 2014 Plan de
Plus en détailJade. Projet Intelligence Artificielle «Devine à quoi je pense»
Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges
Plus en détailArbres binaires de recherche
1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de
Plus en détailLe langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Plus en détailChapitre 5 : Flot maximal dans un graphe
Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détail1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert
1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes
Plus en détailProgrammation mathématique Discrète et Modèles Linéaires
Université Pierre et Marie Curie Master IAD Module PDML Programmation mathématique Discrète et Modèles Linéaires Pierre Fouilhoux pierre.fouilhoux@lip6.fr 29 septembre 2013 Table des matières I Programmation
Plus en détailintroduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives
introduction Chapitre 5 Images récursives http ://univ-tln.fr/~papini/sources/flocon.htm Récursivité http://www.poulain.org/fractales/index.html Image qui se contient elle-même 1 Exemples mathématiques
Plus en détailProgrammation linéaire
Programmation linéaire DIDIER MAQUIN Ecole Nationale Supérieure d Electricité et de Mécanique Institut National Polytechnique de Lorraine Mathématiques discrètes cours de 2ème année Programmation linéaire
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détailExercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA
75. Un plombier connaît la disposition de trois tuyaux sous des dalles ( voir figure ci dessous ) et il lui suffit de découvrir une partie de chacun d eux pour pouvoir y poser les robinets. Il cherche
Plus en détailSujet 4: Programmation stochastique propriétés de fonction de recours
Sujet 4: Programmation stochastique propriétés de fonction de recours MSE3313: Optimisation Stochastiqe Andrew J. Miller Dernière mise au jour: October 19, 2011 Dans ce sujet... 1 Propriétés de la fonction
Plus en détailARBRES BINAIRES DE RECHERCHE
ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailChapitre 7. Récurrences
Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,
Plus en détailNouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires
Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Julien Jorge julien.jorge@univ-nantes.fr Laboratoire d Informatique de Nantes Atlantique,
Plus en détailNouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires
Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires Julien Jorge, Xavier Gandibleux Laboratoire d Informatique de Nantes Atlantique
Plus en détailContrainte de flot pour RCPSP avec temps de transfert
Contrainte de flot et x-rcpsc T 1 Contrainte de flot pour RCPSP avec temps de transfert PS temp, s ij Cmax BENOIST Thierry BOUYGUES/e-Lab DIAMANTINI Maurice ENSTA/LMA Contrainte de flot et x-rcpsc T Présentation
Plus en détailSTAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Plus en détailOptimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications
Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications A. Optimisation sans contrainte.... Généralités.... Condition nécessaire et condition suffisante
Plus en détailAnnexe 6. Notions d ordonnancement.
Annexe 6. Notions d ordonnancement. APP3 Optimisation Combinatoire: problèmes sur-contraints et ordonnancement. Mines-Nantes, option GIPAD, 2011-2012. Sophie.Demassey@mines-nantes.fr Résumé Ce document
Plus en détail4 Exemples de problèmes MapReduce incrémentaux
4 Exemples de problèmes MapReduce incrémentaux 1 / 32 Calcul des plus courtes distances à un noeud d un graphe Calcul des plus courts chemins entre toutes les paires de noeuds d un graphe Algorithme PageRank
Plus en détailApplication de K-means à la définition du nombre de VM optimal dans un cloud
Application de K-means à la définition du nombre de VM optimal dans un cloud EGC 2012 : Atelier Fouille de données complexes : complexité liée aux données multiples et massives (31 janvier - 3 février
Plus en détailLe prototype de la fonction main()
Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détailArbres binaires de décision
1 Arbres binaires de décision Résumé Arbres binaires de décision Méthodes de construction d arbres binaires de décision, modélisant une discrimination (classification trees) ou une régression (regression
Plus en détailCompression de Données - Algorithme de Huffman Document de Conception
ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs
Plus en détailINFO-F-310 - Algorithmique 3 et Recherche Opérationnelle
INFO-F- - Algorithmique et Recherche Opérationnelle Yves De Smet Bernard Fortz - Table des matières I Introduction Aide à la décision et modèles mathématiques Quelques exemples de modèles mathématiques
Plus en détailConception de réseaux de télécommunications : optimisation et expérimentations
Conception de réseaux de télécommunications : optimisation et expérimentations Jean-François Lalande Directeurs de thèse: Jean-Claude Bermond - Michel Syska Université de Nice-Sophia Antipolis Mascotte,
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailCours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques
Université Mohammed V, Faculté des Sciences de Rabat Laboratoire de Recherche Mathématiques, Informatique et Applications Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques MASTER
Plus en détailIntroduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université
Plus en détailCours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Plus en détailPrénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailProgrammation par contraintes. Laurent Beaudou
Programmation par contraintes Laurent Beaudou On se trouve où? Un problème, une solution : la solution est-elle une solution du problème? simulation, vérification 2 On se trouve où? Un problème, une solution
Plus en détailMISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année
2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par
Plus en détailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Plus en détailProgrammation Par Contraintes
Programmation Par Contraintes Cours 2 - Arc-Consistance et autres amusettes David Savourey CNRS, École Polytechnique Séance 2 inspiré des cours de Philippe Baptiste, Ruslan Sadykov et de la thèse d Hadrien
Plus en détailLambda! Rémi Forax Univ Paris-Est Marne-la-Vallée
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant
Plus en détailCours de Programmation Impérative: Zones de mémoires et pointeurs
Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien
Plus en détailIntroduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
Plus en détailResolution limit in community detection
Introduction Plan 2006 Introduction Plan Introduction Introduction Plan Introduction Point de départ : un graphe et des sous-graphes. But : quantifier le fait que les sous-graphes choisis sont des modules.
Plus en détailÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab
ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab notre compétence d'éditeur à votre service créée en juin 2010, Scilab enterprises propose services et support autour
Plus en détailGrandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test
Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite
Plus en détailFIMA, 7 juillet 2005
F. Corset 1 S. 2 1 LabSAD Université Pierre Mendes France 2 Département de Mathématiques Université de Franche-Comté FIMA, 7 juillet 2005 Plan de l exposé plus court chemin Origine du problème Modélisation
Plus en détailProgrammation système I Les entrées/sorties
Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les
Plus en détailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailProgrammation MacOSX / ios
Programmation MacOSX / ios Master Ingénierie Informatique 2011-2012 Jean-Baptiste.Yunès@liafa.jussieu.fr deux extensions objets de C : C++ (Stroustrup) Objective-C (Cox & Love) ajout de constructions à
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailContributions à l expérimentation sur les systèmes distribués de grande taille
Contributions à l expérimentation sur les systèmes distribués de grande taille Lucas Nussbaum Soutenance de thèse 4 décembre 2008 Lucas Nussbaum Expérimentation sur les systèmes distribués 1 / 49 Contexte
Plus en détailBIRT (Business Intelligence and Reporting Tools)
BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»
Plus en détailTp 1 correction. Structures de données (IF2)
Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que
Plus en détail6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr
6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure
Plus en détailCahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7
Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones
Plus en détailUE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Plus en détailQuelques algorithmes simples dont l analyse n est pas si simple
Quelques algorithmes simples dont l analyse n est pas si simple Michel Habib habib@liafa.jussieu.fr http://www.liafa.jussieu.fr/~habib Algorithmique Avancée M1 Bioinformatique, Octobre 2008 Plan Histoire
Plus en détailCHAPITRE VIII : Les circuits avec résistances ohmiques
CHAPITRE VIII : Les circuits avec résistances ohmiques VIII. 1 Ce chapitre porte sur les courants et les différences de potentiel dans les circuits. VIII.1 : Les résistances en série et en parallèle On
Plus en détailIRL : Simulation distribuée pour les systèmes embarqués
IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation
Plus en détailTD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Plus en détailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Plus en détail1 Introduction et installation
TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on
Plus en détailArchitecture des ordinateurs
Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?
Plus en détailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plus en détail1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7
Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailInitiation à l algorithmique
Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailChapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
Plus en détailCommunications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes
Loris MARCHAL Laboratoire de l Informatique du Parallélisme Équipe Graal Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Thèse réalisée sous la direction
Plus en détailLes structures. Chapitre 3
Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre
Plus en détailUtilisation d objets : String et ArrayList
Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons
Plus en détailGestion mémoire et Représentation intermédiaire
Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailExcel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur
Excel Avancé Plan Outils de résolution La valeur cible Le solveur Interactivité dans les feuilles Fonctions de recherche (ex: RechercheV) Utilisation de la barre d outils «Formulaires» Outils de simulation
Plus en détailConstruire des plug-ins pour SAS Management Console SAS 9.1
Construire des plug-ins pour SAS Management Console SAS 9.1 Janvier 2005 Sommaire 1 INTRODUCTION... 3 1.1 OBJECTIFS... 3 1.2 PERIMETRE... 3 2 LES COMPOSANTS DE SAS MANAGEMENT CONSOLE... 4 3 LA CONSTRUCTION
Plus en détailExercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT
Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,
Plus en détailUtilisation du backtrack intelligent dans un branch-and-bound Application au problème d Open-Shop
Utilisation du backtrack intelligent dans un branch-and-bound Application au problème d Open-Shop Narendra Jussien et Christelle Guéret École des Mines de Nantes 4 rue Alfred Kastler BP 20722 F-44300 Nantes
Plus en détailPROJET 1 : BASE DE DONNÉES REPARTIES
PROJET 1 : BASE DE DONNÉES REPARTIES GESTION D UNE BANQUE Elèves : David Bréchet Frédéric Jacot Charles Secrétan DONNÉES DU PROJET SSC - Bases de Données II Laboratoire de Bases de Données BD réparties
Plus en détailLe protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP
Résolution d adresses et autoconfiguration Les protocoles ARP, RARP, TFTP, BOOTP, DHCP Le protocole ARP (Address Resolution Protocol) Se trouve au niveau de la couche réseau Interrogé par le protocole
Plus en détailSeance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.
Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece
Plus en détailTP : Gestion d une image au format PGM
TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Plus en détailArguments d un programme
Arguments d un programme L2 SPI, Bruno Jacob 1 Arguments Quand on appelle un programme dans un environnement UNIX ou MS- DOS, on compose une ligne de commandes de la forme : nom-du-programme argument1
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailCours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. E-mail address: Nicolas.Thiery@u-psud.fr URL: http://nicolas.thiery.
Cours de Recherche Opérationnelle IUT d Orsay Nicolas M. THIÉRY E-mail address: Nicolas.Thiery@u-psud.fr URL: http://nicolas.thiery.name/ CHAPTER 1 Introduction à l optimisation 1.1. TD: Ordonnancement
Plus en détailÉléments de programmation et introduction à Java
Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques
Plus en détail