2013-03-16 13 views
6

Ich habe ein Problem mit AMPL konfrontiert. Ich verwende eine 32-Bit-Version von Linux OS. Ich versuche, ein einfaches lineares Programmproblem zu lösen, aber ich kann nicht verstehen, was falsch ist ... Hier ist Modell, Datendateien und Session-Skript. Die Antwort auf den Befehl "lösen" lautet: "Minos" kann nicht gefunden werden. Aber der Löser ist momentan in meinem Ordner! Das Ändern der Solver hilft nicht. Irgendwelche Vorschläge?AMPL kann "Minos" nicht finden

Modell des Problems:

param n; 
param t; 
param p{i in 1..n}; 
param r{i in 1..n}; 
param m{i in 1..n}; 
#Declaration of variables 
var x {i in 1..n} >=0; 
#Objective Function 
maximize revenues: sum {i in 1..n} p[i]*x[i] ; 
#Constraints 
subject to Aval_Time: sum{i in 1..n} x[i]/r[i]<=t; 
subject to Max_Flavor {i in 1..n}: x[i]<=m[i]; 

Daten des Problems:

param n := 4;# No of Flavors 
param t := 40; # Total labor hour in a week 
param p := 1 1 2 1.5 3 1 4 1.5; # Revenue per package flavor i 
param r := 1 40 2 30 3 50 4 20; # Production rate of package flavor i 
param m := 1 1000 2 900 3 500 4 800; # Maximum demand package flavor i 

AMPL Sitzung:

reset; 
model example2.mod; 
data example2.dat; 
solve; 
display x; 

Antwort des Systems:

nicht gefunden " Minos "

Antwort

5

Die Fehlermeldung versucht Ihnen zu sagen, dass der Löser fehlt. AMPL löst Ihr Problem nicht, es transformiert nur Ihr Modell in eine Form, die für den Löser geeignet ist, übergibt diese an den Löser und die tatsächliche Lösung wird vom Löser ausgeführt. Das ist ungefähr die Fehlermeldung.

Sie benötigen einen Solver, um dieses Problem zu beheben. Download und der Extrakt der Minos Solver. Machen Sie es ausführbares: In der Bash-Shell (nicht die AMPL Schale) geben Sie den folgenden:

chmod +x minos 

Sie haben auch AMPL sagen, wo der Solver ist, bevor Sie den solve; Befehl ausgeben. Vor dem Befehl lösen, Ausgabe dies entweder in dem AMPL Shell oder in Ihrer Modelldatei:

option solver "/path/to/minos"; 

wo Sie /path/to/minos nach der Installation zu ändern.

Das ist alles.

+0

Hmm ... Ich weiß, dass AMPL das Problem nicht direkt löst.Der Minos-Solver wurde bereits heruntergeladen und extrahiert. Das ausführbare Flag (chmod + x) ist wahr. Darüber hinaus befindet sich diese Binärdatei in derselben Ableitung, in der sich meine AMPL befindet. Aber es funktioniert immer noch nicht und die AMPL zeigt mir diese Fehlermeldung (kann keine "Minos" finden) ... –

+0

@RomanDryndik Hast du den 'Option Solver"/Pfad/zu/Minos ";' schlug ich in meiner Antwort vor ? – Ali

+0

Ja, ich habe es versucht, aber es hat nicht geholfen. –

4

Auf Unix- und Unix-ähnlichen Betriebssystemen wie Linux befindet sich das aktuelle Verzeichnis normalerweise nicht auf der search path. Sie haben folgende Möglichkeiten:

  • Verwenden option solver './minos'; vor dem solve Befehl.
  • Ähnlich wie oben, aber verwenden Sie den absoluten Pfad zu Minos, wie von Ali vorgeschlagen.
  • Fügen Sie den Pfad zu dem AMPL-Verzeichnis zur Umgebungsvariablen PATH hinzu. als /usr/local/bin
1

Entschuldigung für die Verzögerung meiner Antwort

  • Copy (oder einen symbolischen Link erstellen) minos in ein Verzeichnis auf dem solche Suchpfad. Das Problem wurde durch Ausführen des folgenden Befehls

    option solver "./minos"; 
    

    im Ordner mit AMPL gelöst. Vielen Dank.