optimization

loadMps

Beschreibung

Lädt eine Zeichenfolge, die eine mathematische Programmieraufgabe im MPS-Format (Mathematical Programming System) enthält, in eine CAS-Datentabelle. Diese Tabelle kann dann von anderen Optimierungsaktionen wie `solveLp` oder `solveMilp` verwendet werden, um das Problem zu lösen. Das MPS-Format ist ein Standardformat für die Darstellung von linearen und gemischt-ganzzahligen Programmierproblemen.

optimization.loadMps <result=results> <status=rc> / casOut={...}, format="FIXED" | "FREE", maxLength=integer, mpsFileString="string";
Einstellungen
ParameterBeschreibung
casOutGibt die Ausgabedatentabelle an, die im MPS-Format vorliegt und an die Solver übergeben werden kann.
formatGibt an, ob der Inhalt des Parameters `mpsFileString` im festen (FIXED) oder freien (FREE) Format vorliegt.
maxLengthGibt die maximale Länge des Variablen- oder Constraint-Namens an. Der Standardwert ist 8.
mpsFileStringGibt die Zeichenfolge an, die den gesamten Inhalt einer .mps-Datei enthält.
Erstellung eines MPS-Datei-Strings

Dieser Code erstellt eine SAS-Makrovariable, die eine einfache lineare Programmierungsaufgabe im MPS-Format enthält. Diese Zeichenfolge wird dann verwendet, um die Aktion `loadMps` aufzurufen.

Kopiert!
1%let mps_string = %str(NAME PROB1
2ROWS
3 N COST
4 L R1
5 G R2
6COLUMNS
7 X1 COST 1 R1 1
8 X1 R2 1
9 X2 COST 2 R1 1
10 X2 R2 -1
11 X3 COST -1 R1 -2
12 X3 R2 1
13RHS
14 RHS1 R1 5
15 RHS1 R2 0
16ENDATA
17);

Beispiele

Dieses Beispiel zeigt, wie man einen einfachen MPS-String im festen Format (Standard) lädt und eine CAS-Tabelle erstellt.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 optimization.loadMps /
3 mpsFileString="&mps_string."
4 casOut={name='mps_data_table', replace=true};
5RUN;
Ergebnis :
Die Aktion erstellt eine CAS-Tabelle mit dem Namen 'mps_data_table' in der aktuellen Caslib, die die im MPS-String definierten Optimierungsproblemdaten enthält.

Dieses Beispiel zeigt, wie man einen MPS-String im freien Format lädt, wobei eine maximale Länge für Variablennamen von 32 Zeichen angegeben wird. Dies ist nützlich für Probleme mit beschreibenden Variablennamen.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1%let mps_string_free = %str(NAME example_free
2ROWS
3 N OBJECTIVE
4 L CONSTRAINT_ONE
5 G CONSTRAINT_TWO
6COLUMNS
7 VERY_LONG_VARIABLE_NAME_1 OBJECTIVE 1.5 CONSTRAINT_ONE 1
8 VERY_LONG_VARIABLE_NAME_1 CONSTRAINT_TWO 1
9 VERY_LONG_VARIABLE_NAME_2 OBJECTIVE 2.5 CONSTRAINT_ONE 1
10 VERY_LONG_VARIABLE_NAME_2 CONSTRAINT_TWO -1
11RHS
12 RHS_VECTOR CONSTRAINT_ONE 15
13 RHS_VECTOR CONSTRAINT_TWO -3
14ENDATA
15);
16PROC CAS;
17 optimization.loadMps /
18 mpsFileString="&mps_string_free."
19 FORMAT="FREE"
20 maxLength=32
21 casOut={name='mps_data_table_free', replace=true};
22RUN;
Ergebnis :
Erstellt eine CAS-Tabelle mit dem Namen 'mps_data_table_free', die die Daten aus dem frei formatierten MPS-String enthält. Längere Variablennamen werden dank der Option `maxLength=32` korrekt verarbeitet.

FAQ

Was ist der Zweck der `loadMps`-Aktion?
Welche Parameter sind für die `loadMps`-Aktion erforderlich?
Was gibt der `format`-Parameter an?
Wofür wird der Parameter `maxLength` verwendet?