Mathematisches Modell mit Cplex loesen

Neue Frage »

Saniiii Auf diesen Beitrag antworten »
Mathematisches Modell mit Cplex loesen
Meine Frage:
Kann man mit Cplex ein allgemeines mathematischen Modell aufstellen und loesen ohne das Verwenden von Java, C++,... ?



Meine Ideen:
Ein Problem, das mit allen Parametern gegeben ist, kann mit Cplex geloest werden


Folgende TERMINAL-EINGABE liefert ein Ergebnis mit Cplex:

enter new problem

maximize 12x1-9x2+4x3
subject to
1x1+0x2+4x3 <=5
0x1+0x2+1x3 <= 5
-4x1-7x2+5x3 <=0
-3x1+7x2-4x3 <=-1
1x1+0x2-7x3<=5
-4x1+3x2-1x3<=-3
bounds
x1 free
x2 free
x3 free
end

optimize

display solution variables x1-x3


ABER wir finden keinen Ansatz, um ein allgemeines Modell zu modellieren und dann durch Aenderung von Parametern oefter zu loesen. Wir wollen also eine File.lp erstellen, in der allgemeine Parameter verwendet werden.

Hier unser Versuch in OPL:

int NbVehicles = ...;
int NbCustomers = ...;
int NbDepot = ...;
int NbVertices = ...;

range Vehicles = 1..NbVehicles;
range Customers = 1..NbCustomers;
range Depot = 0 NbCustomers+1;
range Vertices0 = 0..Nb Customers;
range VerticesN_1 = 1..NbCustomer+1;
range Vertices = 0..NbCustomer+1;


int Cost[Vertices][Vertices] = ...;
int Capacity = ...;
int Demand[Vertices] = ...;

dvar boolean x[Vertices][Vertices][Verhicles];
dvar int Load[Vertices][Vehicles];


maximize
sum(k in Vehicles, i in Vertices0, j in VerticesN_1) Cost[i][j]*x[i][j][k]

subject to {
forall(i in Customers)
ctConnectivity:
sum(k in Vehicles, i in VerticesN_1) x[i][j][k] == 1;


forall(k in Vehicles)
ctLeavingDepot:
sum(j in VerticesN_1) x[0][j][k]== 1;

forall(k in Vehicles)
ctReturningDepot:
sum(i in Vertices0) x[i][NbCustomers+1][k]== 1;

forall(k in Vehicles, j in Customers)
ctFlowconservations:
sum(i in Vertices0) x[i][j][k] - sum(i in VerticesN_1) x[j][i][k] == 0;

forall(k in Vehicles, i in Vertices0, j in VerticesN_1)
ctRemainingLoad:
0 <= Load[j][k] <= Load[i][k] - Demand[i]* x[i][j][k] + Capacity*(1-x[i][j][k]);

forall(k in Vehicles)
0 <= Load[0][k] <= C;

end


Wir wissen aber auch nicht, wie wir die Daten fuer die Parameter in Form von einer externen Datei mit dieser verknuepfen koennen und diese dann Cplex uebergeben koennen.

Kann uns jemand weiterhelfen?

Vielen Dank schonmal im Voraus.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »