next up previous contents
suivant: Le plus beau métier monter: Corrigés des programmes précédent: Knapsack par recherche exhaustive   Table des matières

Prise en main de GLPK

introGLPK.c


#include<stdio.h>
#include"glpk.h"

int main()
{
  LPX* lp = lpx_create_prob();
  double coeffs[10]; 
  int cols[10], rows[10];
  int k = 1;
  lpx_set_obj_dir(lp, LPX_MAX);
  lpx_add_cols(lp, 3); 
  lpx_set_obj_coef(lp, 1, 4);
  lpx_set_obj_coef(lp, 2, 6);
  lpx_set_obj_coef(lp, 3, 2);
  lpx_set_col_bnds(lp, 1, LPX_LO, 0.0, 0.0);
  lpx_set_col_bnds(lp, 2, LPX_LO, 0.0, 0.0);
  lpx_set_col_bnds(lp, 3, LPX_LO, 0.0, 0.0);
  lpx_add_rows(lp, 3); 
  lpx_set_row_bnds(lp, 1, LPX_UP, 0.0, 12.);
  lpx_set_row_bnds(lp, 2, LPX_UP, 0.0, 3.);
  lpx_set_row_bnds(lp, 3, LPX_UP, 0.0, 6.);
  coeffs[k] = 3.; rows[k] = 1; cols[k] = 1; k++;
  coeffs[k] = 7.; rows[k] = 1; cols[k] = 2; k++;
  coeffs[k] = 1.; rows[k] = 1; cols[k] = 3; k++;
  coeffs[k] = 0.6; rows[k] = 2; cols[k] = 1; k++;
  coeffs[k] = 3; rows[k] = 2; cols[k] = 2; k++;
  coeffs[k] = 2.8; rows[k] = 2; cols[k] = 3; k++;
  coeffs[k] = 9.; rows[k] = 3; cols[k] = 1; k++;
  coeffs[k] = 0.08; rows[k] = 3; cols[k] = 2; k++;
  coeffs[k] = 5.; rows[k] = 3; cols[k] = 3; k++;
  lpx_load_matrix(lp, 9, rows, cols, coeffs);
  lpx_simplex(lp);
  printf("fonction obectif = %lf\n", lpx_get_obj_val(lp));
  for(k = 1 ; k <= 3 ; k++)
    printf("x_%d = %lf\n", k, lpx_get_col_prim(lp, k));
  lpx_delete_prob(lp);
  return 0;
}


next up previous contents
suivant: Le plus beau métier monter: Corrigés des programmes précédent: Knapsack par recherche exhaustive   Table des matières
klaus 2010-08-05