-
Notifications
You must be signed in to change notification settings - Fork 528
Open
Description
I use your code, and this have issues when I run this program
Maximize p = x + y subject to 2x + y <= 4, x + 2y <= 3
I solve it changing findEnteringColumn function
`// finds the next entering column
private int findEnteringColumn(){
//float[] values = new float[cols];
//int location = 0;
int count = 0;
for(int pos = 0; pos < cols-1; pos++){
if(table[rows-1][pos] < 0){
return pos;
//System.out.println("negative value found");
//count++;
}
}
return -1; // This case never exist
/*
if(count > 1){
for(int i = 0; i < cols-1; i++)
values[i] = Math.abs(table[rows-1][i]);
location = findLargestValue(values);
} else location = count - 1;
return location;
*/
}`
To validate I use this web https://www.zweigmedia.com/RealWorld/simplex.html
My complete code is here
`/*
- To change this license header, choose License Headers in Project Properties.
- To change this template file, choose Tools | Templates
- and open the template in the editor.
*/
package lp.LPObjects;
import lp.LPObjects.Simplex.ERROR;
/**
-
Use this class to test LP programs
-
@author Miguel Angel Ramos Valdovinos
*/
public class prueba {public static void main(String[] args) {
float[][] table = new float[3][6]; table[0][0] = 2; table[0][1] = 1; table[0][2] = 1; table[0][3] = 0; table[0][4] = 0; table[0][5] = 4; table[1][0] = 1; table[1][1] = 2; table[1][2] = 0; table[1][3] = 1; table[1][4] = 0; table[1][5] = 3; table[2][0] = -1; table[2][1] = -1; table[2][2] = 0; table[2][3] = 0; table[2][4] = 1; table[2][5] = 0; Simplex solv = new Simplex(2, 5); solv.fillTable(table); solv.print(); boolean cont = true; while (cont){ ERROR res = solv.compute(); if (res == ERROR.IS_OPTIMAL || res == ERROR.UNBOUNDED){ cont = false; } solv.print(); }}
}
`
Metadata
Metadata
Assignees
Labels
No labels