Sie sind nicht angemeldet.

  • Anmelden

nC_Des

Profi

  • »nC_Des« ist der Autor dieses Themas

Beiträge: 1 359

Wohnort: Nordhessen / Berlin

Beruf: GER

  • Nachricht senden

1

22.10.2009, 01:44

lp-Dateien - Wie lösen?

Hallo liebe Masters-Community!

Ich brauche mal wieder Hilfe!

....naja..es geht also um das Lösen linerarer Optimierungsprobleme.

Ich habe hier mit einigen lp-Dateien zu tun, die mit zimpl aus einer .zpl gemacht wurden. (Diese zpl habe ich selbst geschrieben.)

Zimpl wird wohl nur in Darmstadt, Bayreuth, Augsburg und Berlin verwendet, da diese Unis das wohl mit dem ZIB (Zuse Institut Berlin) entwickelt haben.

Wenn einer das kennt, perfekt, wenn nicht, kann jemand vielleicht was mit den .lp Dateien anfangen, das scheint ein allgemein verwendetes Dateiformat für so lineare Optimierungsprobleme zu sein.

Uns wurden nun zum Lösen der in so lp Dateien spezifizierten Probleme die "Programme" cplex oder SoPlex empfohlen. Soweit so gut.

Mein Problem: Ich nutze Windows (64bit) (Ich will ja irgendwie Age spielen können und Fernsehen gucken) und bin nicht bereit wegen diesem Programm Linux zu installieren und jedesmal zum Lösen der Probleme das Betriebssystem wechseln zu müssen.

Das habe ich bisher versucht:

1. SoPlex heruntergeladen (Version 1.4.2). Das Ganze ist ein tgz-Archiv mit einer Makefile Datei etc. (C++ wohl), also schönes Unix-Krams. Ich habe cygwin (emuliert wohl eine Unix Umgebung unter Windows) installiert und versucht, es darüber zu installieren und zum Laufen zu bringen, was aber nicht ging (kA, wie ich bei CygWin was installiere). Außerdem soll CygWin auch in der Lage sein aus den Source dateien eine exe zu machen, die ich in die Windows-Eingabeaufforderung einbinden kann. Das wäre natürlich das Beste, aber der Befehl "make" liefert diverse Fehler (can not found blabla)

2. Alternativ cplex versucht herunterzuladen, aber das scheint keine Freeware zu sein. Auf dem Server irgendeiner Uni gab es dann eine Version, die aber mit AMPL und nicht mit meinem ZIMPL arbeitet. Dieses cplex ist da so fest im AMPL integriert, dass ich nicht in der Lage bin, meine lp-Dateien da einzulesen (Oder geht das mit AMPL?). Ampl scheint wohl ein alternatives Programm zum Schreiben eines Optimierungsproblems zu sein.



Daher meine Fragen:
Wer hat Erfahrung mit linearen Optimierungsprogrammen (speziell lp-Dateien) und Windows?
Wer hat schonmal CygWin benutzt und kann mir daher weiter helfen?

2

22.10.2009, 01:49

Ich nicht. Tut mir leid.

nC_Des

Profi

  • »nC_Des« ist der Autor dieses Themas

Beiträge: 1 359

Wohnort: Nordhessen / Berlin

Beruf: GER

  • Nachricht senden

3

22.10.2009, 01:57

Also LPSolve (was auch immer das ist) soll sowas auch irgendwie können, kommt mir aber mit Syntax-Fehlern (wenn ich versuche es auf meine lp-Datei loszulassen). Zur Information...so sieht zB eine lp-Datei aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
\ This file was automatically generated by Zimpl
\ set constraint_names := { read FILE as "<1s>" use 3 comment "#" };
\ param constraint_values[constraint_names] := read FILE as "<1s> 2n" use 3 comment "#";
\ set items := { read FILE as "<1s>" skip 3 comment "#" };
\ param price[items] := read FILE as "<1s> 2n" skip 3 comment "#";
\ param cost[items] := read FILE as "<1s> 3n" skip 3 comment "#";
\ param hours[items] := read FILE as "<1s> 4n" skip 3 comment "#";
\ do print items;
\ var x[items] >= 0;
\ maximize profit:  sum <i> in items: x[i] * price[i];
\ subto machine_hours:  sum <i> in items : x[i] * hours[i] <= constraint_values["hours"];
\ subto max_money:  sum <i> in items : x[i] * ( cost[i] - ( constraint_values["reuse"] / 100 * price[i] ) )  <= constraint_values["money"];
\Problem name: program.zpl
Maximize
   profit:  +5 x$bourbon +4.5 x$whiskey
Subject to
   machine_hours_1:
      +4 x$whiskey +3 x$bourbon <= 20000
   max_money_1:
      +0.2 x$whiskey + x$bourbon <= 4400
Bounds
  0 <= x$bourbon <= +inf
  0 <= x$whiskey <= +inf
End



Oben das auskommentiere (?) ist die von mir geschriebene zpl-Datei und der untere Teil ist wohl die lp Datei an sich, wobei ich mir absolut nicht sicher bin, dass die so richtig ist. Wie gesagt, ich habe bisher noch nie damit gearbeitet.

4

22.10.2009, 02:05

Linux live cd?!

sylence

Administrator

Beiträge: 1 863

Wohnort: Dresden

Beruf: GER

  • Nachricht senden

5

22.10.2009, 02:42

Cygwin ist da eher ungeeignet, du müsstest halt alle möglichen Abhängigkeiten von SoPlex manuell nachkompilieren. Ich würde an deiner Stelle Virtualisierung verwenden, z.B. eine VirtualBox mit irgendeinem Linux drinnen.

6

22.10.2009, 11:30

RE: lp-Dateien - Wie lösen?

Zitat

Original von nC_Des
Mein Problem: Ich nutze Windows (64bit) (Ich will ja irgendwie Age spielen können und Fernsehen gucken) und bin nicht bereit wegen diesem Programm Linux zu installieren und jedesmal zum Lösen der Probleme das Betriebssystem wechseln zu müssen.

Genau das wäre aber sicher die einfachste Lösung. So ein riesen Aufwand ist es ja nicht, mal kurz neu zu booten...

7

22.10.2009, 11:44

selbst ich noob hab linux mit virtual box zum laufen gebracht...find ich angenehm

8

22.10.2009, 16:22

Hättest du mal einen Aussagekräftigen Titel gewählt und vor allem das Akronym nicht klein geschrieben, dann hätte ich hier auch gestern schon reingeschaut.

Es gibt auch genügend Linear Porgramming Solver für Windows.

Schau mal hier:
http://wiki.mcs.anl.gov/NEOS/index.php/O…_Software_Guide

GLPK (GNU Linear Programming Kit)
A Matlab MEX Interface for the GLPK library

Ansonsten bietet http://www.lindo.com/ ein Programm Namens "Lingo" in einer kostenlosen Studentenversion an. Damit kannst du Probleme bis 300 Variablen etc. lösen.

AMPL kann ich dir geben.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »AtroX_Worf« (22.10.2009, 16:25)


9

22.10.2009, 21:02

könnte dir auch GAMS empfehlen als programm zum lösen von LPs (das nutzt die gängisten solver wie cplex etc etc). vorteil: algrebraisches modelleriungssystem und kannst auch sowas wie matrizenberechnungen mit einbauen. der einstieg ist leider nicht so leicht weil das programm sehr mächtig ist (im vergleich zu 2 zeilen bei lingo brauchst du bei gams ne halbe zeile). in der testversion sind ein paar solver mit drin, aber natürlich variablenbeschränkung:
www.gams.com

nC_Des

Profi

  • »nC_Des« ist der Autor dieses Themas

Beiträge: 1 359

Wohnort: Nordhessen / Berlin

Beruf: GER

  • Nachricht senden

10

22.10.2009, 22:14

Danke soweit! :)
Ich werde mich mal damit beschäftigen und dann nochmal melden.