examples/sample.c
author Alpar Juttner <alpar@cs.elte.hu>
Sun, 05 Dec 2010 17:35:23 +0100
changeset 2 4c8956a7bdf4
permissions -rw-r--r--
Set up CMAKE build environment
alpar@1
     1
/* sample.c */
alpar@1
     2
alpar@1
     3
#include <stdio.h>
alpar@1
     4
#include <stdlib.h>
alpar@1
     5
#include <glpk.h>
alpar@1
     6
alpar@1
     7
int main(void)
alpar@1
     8
{     glp_prob *lp;
alpar@1
     9
      int ia[1+1000], ja[1+1000];
alpar@1
    10
      double ar[1+1000], z, x1, x2, x3;
alpar@1
    11
s1:   lp = glp_create_prob();
alpar@1
    12
s2:   glp_set_prob_name(lp, "sample");
alpar@1
    13
s3:   glp_set_obj_dir(lp, GLP_MAX);
alpar@1
    14
s4:   glp_add_rows(lp, 3);
alpar@1
    15
s5:   glp_set_row_name(lp, 1, "p");
alpar@1
    16
s6:   glp_set_row_bnds(lp, 1, GLP_UP, 0.0, 100.0);
alpar@1
    17
s7:   glp_set_row_name(lp, 2, "q");
alpar@1
    18
s8:   glp_set_row_bnds(lp, 2, GLP_UP, 0.0, 600.0);
alpar@1
    19
s9:   glp_set_row_name(lp, 3, "r");
alpar@1
    20
s10:  glp_set_row_bnds(lp, 3, GLP_UP, 0.0, 300.0);
alpar@1
    21
s11:  glp_add_cols(lp, 3);
alpar@1
    22
s12:  glp_set_col_name(lp, 1, "x1");
alpar@1
    23
s13:  glp_set_col_bnds(lp, 1, GLP_LO, 0.0, 0.0);
alpar@1
    24
s14:  glp_set_obj_coef(lp, 1, 10.0);
alpar@1
    25
s15:  glp_set_col_name(lp, 2, "x2");
alpar@1
    26
s16:  glp_set_col_bnds(lp, 2, GLP_LO, 0.0, 0.0);
alpar@1
    27
s17:  glp_set_obj_coef(lp, 2, 6.0);
alpar@1
    28
s18:  glp_set_col_name(lp, 3, "x3");
alpar@1
    29
s19:  glp_set_col_bnds(lp, 3, GLP_LO, 0.0, 0.0);
alpar@1
    30
s20:  glp_set_obj_coef(lp, 3, 4.0);
alpar@1
    31
s21:  ia[1] = 1, ja[1] = 1, ar[1] =  1.0; /* a[1,1] =  1 */
alpar@1
    32
s22:  ia[2] = 1, ja[2] = 2, ar[2] =  1.0; /* a[1,2] =  1 */
alpar@1
    33
s23:  ia[3] = 1, ja[3] = 3, ar[3] =  1.0; /* a[1,3] =  1 */
alpar@1
    34
s24:  ia[4] = 2, ja[4] = 1, ar[4] = 10.0; /* a[2,1] = 10 */
alpar@1
    35
s25:  ia[5] = 3, ja[5] = 1, ar[5] =  2.0; /* a[3,1] =  2 */
alpar@1
    36
s26:  ia[6] = 2, ja[6] = 2, ar[6] =  4.0; /* a[2,2] =  4 */
alpar@1
    37
s27:  ia[7] = 3, ja[7] = 2, ar[7] =  2.0; /* a[3,2] =  2 */
alpar@1
    38
s28:  ia[8] = 2, ja[8] = 3, ar[8] =  5.0; /* a[2,3] =  5 */
alpar@1
    39
s29:  ia[9] = 3, ja[9] = 3, ar[9] =  6.0; /* a[3,3] =  6 */
alpar@1
    40
s30:  glp_load_matrix(lp, 9, ia, ja, ar);
alpar@1
    41
s31:  glp_simplex(lp, NULL);
alpar@1
    42
s32:  z = glp_get_obj_val(lp);
alpar@1
    43
s33:  x1 = glp_get_col_prim(lp, 1);
alpar@1
    44
s34:  x2 = glp_get_col_prim(lp, 2);
alpar@1
    45
s35:  x3 = glp_get_col_prim(lp, 3);
alpar@1
    46
s36:  printf("\nz = %g; x1 = %g; x2 = %g; x3 = %g\n",
alpar@1
    47
         z, x1, x2, x3);
alpar@1
    48
s37:  glp_delete_prob(lp);
alpar@1
    49
      return 0;
alpar@1
    50
}
alpar@1
    51
alpar@1
    52
/* eof */