[Fwd: duplicate indices problem]
Andrew Makhorin <[email protected]>
| Newsgroups | gmane.comp.gnu.glpk |
|---|---|
| Message-ID | <[email protected]> |
-------- Forwarded Message -------- From: Karol Rydzewski <[email protected]> To: [email protected] Subject: duplicate indices problem Date: Tue, 19 Jun 2018 23:48:01 +0200 Hi, I have a problem with using glpk library in my solution. I am getting an error when running glp_load_matrix(problem, filled-1, X, Y, coeff) saying: "glp_load_mat: ia[1] = 1; ja[1] = 3; duplicate indices not allowed Error detected in file glpapi01.c at line 1032" However, I cannot get an idea on what I am doing wrong and I cannot find any clue anywhere. Please advice me how to get it working. My piece of code resulting in this is: unsigned i,j, k, filled; int *X,*Y; double *pathPerf, *coeff; glp_smcp smcp; glp_init_smcp(&smcp); smcp.msg_lev=GLP_MSG_DBG; //glp problem structure glp_prob *problem; problem=glp_create_prob(); //allocate memory for coeff data X=(int*)malloc(sizeof(int)*(pathsNo+1)); Y=(int*)malloc(sizeof(int)*(nodesNo+1)); coeff=(double*)malloc(sizeof(double)*(nodesNo+1)); //define number of rows and columns in the problem matrix glp_add_rows(problem, pathsNo); glp_add_cols(problem, nodesNo); //seting column's bounds for(i=1;i<=nodesNo;i++) glp_set_col_bnds(problem,i,GLP_LO,0.0,0); //right-hand values of each equation for(i=1;i<=pathsNo;i++) { glp_set_row_bnds(problem,i,PathsTab[i-1].performance,0); } filled=1; for(i=1;i<=pathsNo;i++) { for(j=1;j<=PathsTab[i-1].length;j++) { printf("%d:%d ",i,PathsTab[i-1].nodes[j-1]); X[filled]=i,Y[filled]=PathsTab[i-1].nodes[j-1],coeff[filled]=1.0; filled++; } printf("\n"); } for(i=1;i<nodesNo;i++) glp_set_obj_coef(problem, i, 0.0); glp_set_obj_dir(problem, GLP_MIN); for(unsigned j=1;j<=nodesNo;j++) { glp_set_obj_coef(problem, j, 1.0); glp_load_matrix(problem, filled-1, X, Y, coeff); glp_simplex(problem, &smcp); NodesTab[j-1].trustWrth[1]=glp_get_col_prim(problem,j); glp_set_obj_coef(problem,j, 0.0); } And the output I get is: 1:12 1:2 1:18 1:5 2:14 2:18 2:19 3:10 3:20 3:12 glp_load_mat: ia[1] = 1; ja[1] = 3; duplicate indices not allowed Error detected in file glpapi01.c at line 1032 Aborted (core dumped) Thank you, Karol