This file is indexed.

/usr/share/doc/libglpk-java/examples/java/Mip.java is in libglpk-java 1.0.18-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import org.gnu.glpk.GLPK;
import org.gnu.glpk.GLPKConstants;
import org.gnu.glpk.SWIGTYPE_p_double;
import org.gnu.glpk.SWIGTYPE_p_int;
import org.gnu.glpk.glp_prob;
import org.gnu.glpk.glp_iocp;

public class Mip {
//    Maximize z =  17 * x1 + 12* x2
//    subject to
//      10 x1 + 7 x2 <= 40
//         x1 +   x2 <=  5
//    where,
//      0.0 <= x1  integer
//      0.0 <= x2  integer

  public static void main(String[] arg)
  {
    glp_prob lp;
    glp_iocp iocp;
    SWIGTYPE_p_int ind;
    SWIGTYPE_p_double val;
    int ret;

//  Create problem    
    lp = GLPK.glp_create_prob();
    System.out.println("Problem created");
    GLPK.glp_set_prob_name(lp, "myProblem");

//  Define columns
    GLPK.glp_add_cols(lp, 2);
    GLPK.glp_set_col_name(lp, 1, "x1");
    GLPK.glp_set_col_kind(lp, 1, GLPKConstants.GLP_IV);
    GLPK.glp_set_col_bnds(lp, 1, GLPKConstants.GLP_LO, 0, 0);
    GLPK.glp_set_col_name(lp, 2, "x2");
    GLPK.glp_set_col_kind(lp, 2, GLPKConstants.GLP_IV);
    GLPK.glp_set_col_bnds(lp, 2, GLPKConstants.GLP_LO, 0, 0);

//  Create constraints
    GLPK.glp_add_rows(lp, 2); 
    GLPK.glp_set_row_name(lp, 1, "c1");
    GLPK.glp_set_row_bnds(lp, 1, GLPKConstants.GLP_UP, 0, 40);
    ind = GLPK.new_intArray(3);
    GLPK.intArray_setitem(ind, 1, 1);
    GLPK.intArray_setitem(ind, 2, 2);
    val = GLPK.new_doubleArray(3);
    GLPK.doubleArray_setitem(val, 1, 10);
    GLPK.doubleArray_setitem(val, 2,  7);
    GLPK.glp_set_mat_row(lp, 1, 2, ind, val);

    ind = GLPK.new_intArray(3);
    GLPK.intArray_setitem(ind, 1, 1);
    GLPK.intArray_setitem(ind, 2, 2);
    val = GLPK.new_doubleArray(3);
    GLPK.glp_set_row_name(lp, 2, "c2");
    GLPK.glp_set_row_bnds(lp, 2, GLPKConstants.GLP_UP, 0, 5);
    GLPK.doubleArray_setitem(val, 1, 1);
    GLPK.doubleArray_setitem(val, 2, 1);
    GLPK.glp_set_mat_row(lp, 2, 2, ind, val);

//  Define objective 
    GLPK.glp_set_obj_name(lp, "obj");
    GLPK.glp_set_obj_dir(lp, GLPKConstants.GLP_MAX);
    GLPK.glp_set_obj_coef(lp, 0, 0);
    GLPK.glp_set_obj_coef(lp, 1, 17);
    GLPK.glp_set_obj_coef(lp, 2, 12);

//  solve model
    iocp = new glp_iocp();
    GLPK.glp_init_iocp(iocp);
    iocp.setPresolve(GLPKConstants.GLP_ON);
//  GLPK.glp_write_lp(lp, null, "yi.lp");
    ret = GLPK.glp_intopt(lp, iocp);
    
    
//  Retrieve solution
    if (ret == 0) {
      write_mip_solution(lp);
    }
    else {
      System.out.println("The problemcould not be solved");
    };
    
    // free memory
    GLPK.glp_delete_prob(lp);
  }  
  
  /**
   * write integer solution
   * @param mip problem
   */
  static void write_mip_solution(glp_prob lp)
  {
    int i;
    int n;
    String name;
    double val;
    
    name = GLPK.glp_get_obj_name(lp);
    val  = GLPK.glp_mip_obj_val(lp);
    System.out.print(name);
    System.out.print(" = ");
    System.out.println(val);
    n = GLPK.glp_get_num_cols(lp);
    for(i=1; i <= n; i++)
    {
      name = GLPK.glp_get_col_name(lp, i);
      val  = GLPK.glp_mip_col_val(lp, i);
      System.out.print(name);
      System.out.print(" = ");
      System.out.println(val);
    }
  }
}