Znam zasadę działania metody dualnego simplexu. Wiem w jaki sposób wyznacza rozwiązanie optymalne. Mój problem tkwi w tym, że podając dane wejściowe, program liczy kompletnie nie tak jak powinien. Przypuszczam, że popełniam błąd przy wprowadzaniu danych. Opiszę jak je wprowadzam:
1. Na początku program daje mi wybór czy liczę minimum czy maximum. Ja chcę policzyć minimum więc wciskam "1" i enter.
2. Program daje mi komendę "Enter no. of variables:". Moje zmienne to x1 oraz x2, a więc jest ich 2. Wciskam "2".
3. Program daje komendę "Enter no. of constraints:". Mam trzy równania ograniczające, a więc wpisuję "3".
4. Program daje komendę "Enter coefficients of objective function:" Moja funkcja celu (czyli to min x0=1x1+1x2) ma dwa współczynniki, każdy z nich ma wartość 1. Wpisuję więc "1", daję enter. Następnie podaję drugi współczynnik czyli znowu "1" i enter.
5. I w tym punkcie zaczyna się problem. Muszę jakoś wpisać te 3 równania ograniczające. Odpowiada za to z pewnością poniższy kod:
void Tablaeu(double **A,double *Z,int m,int n) {
cout<<"Enter Constraints: ";
char sign,g='>';
for(int i=0;i<m;i++) {
for(int j=0;j<n;j++) cin>>A[i][j];
cin>>sign;
cin>>A[i][n];
if(sign==g) {
for(int j=0;j<=n;j++) A[i][j]*=-1;
}
}
for(int i=0;i<n;i++) A[m][i]=-1*Z[i];
A[m][n]=0;
}
Próbowałem na różne sposoby, ale wystarczy, że wpiszę znak ">=" i już przy wpisywaniu pierwszego ograniczenia program podaje wynik. Jeśli ktoś ma pomysł jak wpisać poprawnie te ograniczenia to będę wdzięczny za podpowiedź.