Ich habe LP-Task. Das Problem ist plötzlich aufgetreten. Ich benutze automatisierten Code für das Erstellen der Zielfunktion, Gleichungen und Einschränkungen, aus zwei Vektoren von Knoten und Linien, auch benutze ich die Methode zum Erstellen von Code meiner Tas im LPSolve-Format und schreibe es in Datei.
Zum Beispiel:LPSolve C++ - Quellbibliothek und IDE gibt verschiedene LP-Task-Lösung Ergebnisse
/* Objective function */
max: +y4 +y5 +y6;
/* Constraints */
n1: +x4 -y4 -z4_5_4 -z4_6_5 +z5_4_8 +z6_4_9 = 0;
n2: +x5 -y5 +z4_5_4 -z5_6_6 +z6_5_7 -z5_4_8 +z6_5_10 -z5_6_11 = 0;
n3: +x6 -y6 +z4_6_5 +z5_6_6 -z6_5_7 -z6_4_9 -z6_5_10 +z5_6_11 = 0;
/* Variable bounds */
x4 <= 16210;
x5 <= 16600;
x6 <= 17950;
y4 <= 15000;
y5 <= 15000;
y6 <= 15000;
z4_5_4 <= 2000;
z4_6_5 <= 2000;
z5_6_6 <= 1000;
z6_5_7 <= 1000;
z5_4_8 <= 2000;
z6_4_9 <= 2000;
z6_5_10 <= 1000;
z5_6_11 <= 1000;
Nach dem Erstellen und Schreiben von Gleichungen in der Datei ausführen ich den Solver:
int result = solve(lp);
Usualy für Aufgaben mit zufälligen Werten, ich habe wie diese bekam Ergebnisse:
Var-s Result
45000
x4 15000
x5 15000
x6 15000
y4 15000
y5 15000
y6 15000
z4_5_4 0
z4_6_5 0
z5_4_8 0
z5_6_11 0
z5_6_6 0
z6_4_9 0
z6_5_10 0
z6_5_7 0
Aber in der LPSolve IDE habe ich Ergebnisse wie folgt (und ich denke, es ist rigth Ergebnisse):
Var-s Result
45000
x4 16210
x5 16600
x6 12190
y4 15000
y5 15000
y6 15000
z4_5_4 400
z4_6_5 810
z5_4_8 0
z5_6_11 1000
z5_6_6 1000
z6_4_9 0
z6_5_10 0
z6_5_7 0
Auf einigem Forum habe ich gelesen, dass "1E-5" verwenden statt "0" und "1000" statt "1.0" als Koeffizienten in meiner Zielfunktion besser. Ich habe versucht, dies zu tun, und ich habe die gleichen Ergebnisse in Solver-IDE und in meinem Programm, aber die Ergebnisse wurden nicht für randome Werte in der Aufgabe geändert.
Also, ich brauche Ergebnisse wie in LPSolve IDE (wroten am Ende), aber benutze mein Programm. Wenn es möglich ist, bitte hilf mir.
Gebrauchte Versionen LPSolve v-5.5.2.3, v-5.5.2.0