2016-07-29 13 views
0

Ich versuche ein Modell in Java mit Cplex zu lösen. Und ich muss dafür die spaltenbasierte Modellierung verwenden. Mein Problem ist ähnlich dem folgenden Problem:Spaltenbasierte Modellierung in Cplex

minimize 500x1 - x2 
subject to 5x1 <= 10 
      5x1 - 3x2 <=10 

Ich weiß, dass ich eine neue Spalte für jede Entscheidungsvariable erstellen muss. Muss ich zum Hinzufügen der zweiten Integritätsbedingung eine neue Spalte für x1 erstellen oder kann ich dieselbe Spalte verwenden, die ich für die erste Integritätsbedingung verwendet habe?

+0

Ich denke, wenn Sie eine neue Spalte erstellen, entspricht das dem Erstellen einer neuen Variablen. Wenn Sie also eine andere Spalte für x1 erstellen, haben Sie in Ihrem Modell zwei separate 'x1'-Variablen, die nicht Ihren Erwartungen entsprechen. Ich denke, du solltest die erste Spalte wiederverwenden. – TimChippingtonDerrick

+0

Vielen Dank Tim. Das war sehr hilfreich. Wenn es Ihnen nichts ausmacht, kann ich Ihnen noch eine Frage stellen? Ich habe eine Einschränkung in meinem Modell, die Doppelsummierung verwendet. Aber dafür konnte ich kein passendes Beispiel finden. Hast du zufällig so etwas bemerkt? Ich schätze es sehr, dass Sie mir hier helfen. – Dipta

Antwort

0

Es sollte nur funktionieren, wenn Sie das Offensichtliche tun. Ein nützlicher Trick besteht darin, CPLEX dazu zu bringen, sein internes Modell als LP-Datei auszugeben, die relativ einfach zu lesen ist, und Sie können dann überprüfen, ob das Modell das ist, was Sie beabsichtigt haben. Ich finde es immer noch viel einfacher, meine Modelle in einem mehr algebraischen Stil zu schreiben, der dem ähnelt, was Sie in der gespeicherten LP-Datei erhalten. Das Erstellen eines Modells durch explizites Ändern der Koeffizienten in der Matrix ist viel komplexer, da es mehr Sorgfalt bei der Indizierung erfordert.

+0

Vielen Dank. Ich schätze das sehr. – Dipta

+0

Tim, ich möchte einen anderen Gefallen bitten. Wie summiere ich die zwei Begriffe mit zwei verschiedenen Variablen in meiner Zielfunktion oder in meinen Einschränkungen? – Dipta